diff --git a/.dir-locals.el b/.dir-locals.el index 203343f0842..5e73e0d9acd 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -3,8 +3,6 @@ (fill-column . 70))) (c-mode . ((c-file-style . "GNU"))) (objc-mode . ((c-file-style . "GNU"))) - ;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work. - ;; See admin/notes/bugtracker. (log-edit-mode . ((log-edit-rewrite-fixes "[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1") (log-edit-font-lock-gnu-style . t) diff --git a/.gitignore b/.gitignore index ad4324e8e22..d05352e7124 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,265 @@ -configure -aclocal.m4 -compile -config.guess -config.sub -depcomp -install-sh -missing +# Files that Git should ignore in the Emacs source directory. + +# Copyright 2009-2014 Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs 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 3 of the License, or +# (at your option) any later version. + +# GNU Emacs 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 GNU Emacs. If not, see . + + +# Currently we assume only Git 1.7.1 (April 2010) or later, so this +# file does not rely on "**" in patterns. The "**" feature was added +# in Git 1.8.2 (March 2013). + + +# Built by 'autogen.sh'. +/aclocal.m4 +/configure +build-aux/compile +build-aux/config.guess +build-aux/config.sub +build-aux/depcomp +build-aux/install-sh +build-aux/missing lib/Makefile.in src/config.in -autom4te.cache -makefile -TAGS -*~ -/README.W32 -/bin/ -/site-lisp/ -/leim/ja-dic/ -etc/refcards/*.aux -etc/refcards/*.log +# Built by 'configure'. +Info.plist +InfoPlist.strings +Makefile +!admin/charsets/Makefile +!etc/refcards/Makefile +!test/automated/data/flymake/Makefile +!test/indent/Makefile +makefile +/*.cache +/confdefs.h +/config.status +/configure.lineno +src/config.h +src/epaths.h + +# C-level sources built by 'make'. +lib/alloca.h +lib/arg-nonnull.h +lib/byteswap.h +lib/c++defs.h +lib/dirent.h +lib/errno.h +lib/execinfo.h +lib/fcntl.h +lib/getopt.h +lib/inttypes.h +lib/libgnu.a +lib/signal.h +lib/std*.h +!lib/std*.in.h +lib/string.h +lib/sys/ +lib/time.h +lib/unistd.h +lib/warn-on-use.h +src/buildobj.h +src/globals.h + +# Lisp-level sources built by 'make'. +*cus-load.el +*loaddefs.el +leim/changed.misc +leim/changed.tit +lisp/cedet/semantic/bovine/c-by.el +lisp/cedet/semantic/bovine/make-by.el +lisp/cedet/semantic/bovine/scm-by.el +lisp/cedet/semantic/wisent/javat-wy.el +lisp/cedet/semantic/wisent/js-wy.el +lisp/cedet/semantic/wisent/python-wy.el +lisp/cedet/srecode/srt-wy.el +lisp/eshell/esh-groups.el +lisp/finder-inf.el +lisp/leim/ja-dic/ +lisp/leim/leim-list.el +lisp/leim/quail/4Corner.el +lisp/leim/quail/ARRAY30.el +lisp/leim/quail/CCDOSPY.el +lisp/leim/quail/CTLau.el +lisp/leim/quail/CTLau-b5.el +lisp/leim/quail/ECDICT.el +lisp/leim/quail/ETZY.el +lisp/leim/quail/PY-b5.el +lisp/leim/quail/PY.el +lisp/leim/quail/Punct.el +lisp/leim/quail/Punct-b5.el +lisp/leim/quail/QJ.el +lisp/leim/quail/QJ-b5.el +lisp/leim/quail/SW.el +lisp/leim/quail/TONEPY.el +lisp/leim/quail/ZIRANMA.el +lisp/leim/quail/ZOZY.el +lisp/leim/quail/quick-b5.el +lisp/leim/quail/quick-cns.el +lisp/leim/quail/tsang-b5.el +lisp/leim/quail/tsang-cns.el +lisp/subdirs.el + +# Dependencies. +.deps/ +deps/ + +# Logs and temporaries. +*.log +*.tmp + +# Time stamps. +stamp_BLD +src/gl-stamp +src/stamp-h.in +src/stamp-h1 + +# Object files and debugging. +*.a +*.dSYM/ +*.core +*.elc +*.o +*.res +[0-9]*.core +core +core.*[0-9] +oo/ +oo-spd/ +src/*.map + +# Tests. +test/indent/*.new +test/biditest.txt + +# ctags, etags. +TAGS + +# GNU global. +GPATH +GSYMS +GRTAGS +GTAGS + +# GNU idutils. +ID + +# Executables. +*.exe +a.out +lib-src/blessmail +lib-src/ctags +lib-src/ebrowse +lib-src/emacsclient +lib-src/etags +lib-src/hexl +lib-src/make-docfile +lib-src/movemail +lib-src/profile +lib-src/test-distrib +lib-src/update-game-score +nextstep/Cocoa/Emacs.base/Contents/Info.plist +nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj +nextstep/Emacs.app/ +nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop +nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist +src/bootstrap-emacs +src/emacs +src/emacs-[0-9]* +src/temacs + +# Character-set info. +admin/charsets/*.el +admin/charsets/*.map +admin/charsets/jisx2131-filter +admin/unidata/unidata.txt +lisp/international/charprop.el +lisp/international/uni-*.el + +# Documentation. +*.aux +*.cm +*.cms +*.cp +*.cps +*.dvi +*.fn +*.fns +*.html +*.info +*.ky +*.kys +*.op +*.ops +*.pdf +!doc/lispintro/cons-*.pdf +!doc/lispintro/drawers.pdf +!doc/lispintro/lambda-*.pdf +!etc/refcards/gnus-logo.pdf +*.pg +*.pgs +*.pj +*.pjs +*.ps +*.sc +*.scs +*.tg +*.tgs +*.toc +*.tp +*.tps +*.vr +*.vrs +doc/emacs/emacsver.texi +doc/man/emacs.1 +doc/misc/cc-mode.ss +etc/DOC +etc/refcards/emacsver.tex info/dir -info/*.info + +# Version control and locks. +*.orig +*.rej +*~ +.#* +\#*\# +[0-9]*.patch + +# Built by 'make install'. +etc/emacs.tmpdesktop + +# Distribution directories. +/emacs-[1-9]*/ + +# Microsoft-related builds and installations. +*.in-h +_* +!build-aux/snippet/_Noreturn.h +/bin/ +/BIN/ +/data/ +etc/icons/ +lib/cxxdefs.h +lib/SYS/ +/libexec/ +/lock/ +/README.W32 +/share/ +/site-lisp/ +nt/emacs.rc +nt/emacsclient.rc +src/gdb.ini +/var/ diff --git a/CONTRIBUTE b/CONTRIBUTE new file mode 100644 index 00000000000..dc6fd71624a --- /dev/null +++ b/CONTRIBUTE @@ -0,0 +1,338 @@ +Copyright (C) 2006-2014 Free Software Foundation, Inc. +See end for license conditions. + + + Contributing to Emacs + +Emacs is a collaborative project and we encourage contributions from +anyone and everyone. If you want to contribute in the way that will +help us most, we recommend (1) fixing reported bugs and (2) +implementing the feature ideas in etc/TODO. However, if you think of +new features to add, please suggest them too -- we might like your +idea. Porting to new platforms is also useful, when there is a new +platform, but that is not common nowadays. + +For documentation on Emacs (to understand how to implement your +desired change), refer to: + +- the Emacs Manual + http://www.gnu.org/software/emacs/manual/emacs.html + (info "(Emacs)Top") + +- the Emacs Lisp Reference Manual + http://www.gnu.org/software/emacs/manual/elisp.html + (info "(elisp)Top") + +- http://www.gnu.org/software/emacs + +- http://www.emacswiki.org/ + +There are many ways to contribute to Emacs: + +- implement a new feature, and submit a patch (see "Submitting + Patches" below). + +- answer questions on the Emacs user mailing list + https://lists.gnu.org/mailman/listinfo/help-gnu-emacs + +- write documentation, either on the wiki, or in the Emacs source + repository (see "Submitting Patches" below) + +- find and report bugs; use M-x report-emacs-bug + +- check if existing bug reports are fixed in newer versions of Emacs + http://debbugs.gnu.org/cgi/pkgreport.cgi?which=pkg&data=emacs + +- develop a package that works with Emacs, and publish it on your own + or in Gnu ELPA (see admin/notes/elpa). + +Here are some style and legal conventions for contributors to Emacs: + + +* Coding Standards + +Contributed code should follow the GNU Coding Standards +(http://www.gnu.org/prep/standards/ - may also be available in info on +your system). + +If it doesn't, we'll need to find someone to fix the code before we +can use it. + +Emacs has additional style and coding conventions: + +- the "Tips" Appendix in the Emacs Lisp Reference + http://www.gnu.org/software/emacs/manual/html_node/elisp/Tips.html + (info "(elisp)Tips"). + +- Avoid using `defadvice' or `eval-after-load' for Lisp code to be + included in Emacs. + +- Remove all trailing whitespace in all source and text files. + +- Emacs has no convention on whether to use tabs in source code; + please don't change whitespace in the files you edit. + +- Use ?\s instead of ? in Lisp code for a space character. + +* Copyright Assignment + +The FSF (Free Software Foundation) is the copyright holder for GNU Emacs. +The FSF is a nonprofit with a worldwide mission to promote computer +user freedom and to defend the rights of all free software users. +For general information, see the website http://www.fsf.org/ . + +Generally speaking, for non-trivial contributions to GNU Emacs we +require that the copyright be assigned to the FSF. For the reasons +behind this, see: http://www.gnu.org/licenses/why-assign.html . + +Copyright assignment is a simple process. Residents of some countries +can do it entirely electronically. We can help you get started, and +answer any questions you may have (or point you to the people with the +answers), at the emacs-devel@gnu.org mailing list. + +(Please note: general discussion about why some GNU projects ask +for a copyright assignment is off-topic for emacs-devel. +See gnu-misc-discuss instead.) + +A copyright disclaimer is also a possibility, but we prefer an assignment. +Note that the disclaimer, like an assignment, involves you sending +signed paperwork to the FSF (simply saying "this is in the public domain" +is not enough). Also, a disclaimer cannot be applied to future work, it +has to be repeated each time you want to send something new. + +We can accept small changes (roughly, fewer than 15 lines) without +an assignment. This is a cumulative limit (e.g. three separate 5 line +patches) over all your contributions. + +* Getting the Source Code + +The current working version of the Emacs source code is stored in a +git repository on the Savannah web site +(http://savannah.gnu.org/projects/emacs). It is important to write +your patch based on the current working version. If you start from an +older version, your patch may be outdated (so that maintainers will +have a hard time applying it), or changes in Emacs may have made your +patch unnecessary. + +After you have downloaded the repository source, you should read the file +INSTALL.REPO for build instructions (they differ to some extent from a +normal build). + +* Submitting Patches + +Every patch must have several pieces of information before we +can properly evaluate it. + +When you have all these pieces, bundle them up in a mail message and +send it to the developers. Sending it to bug-gnu-emacs@gnu.org +(which is the bug/feature list) is recommended, because that list +is coupled to a tracking system that makes it easier to locate patches. +If your patch is not complete and you think it needs more discussion, +you might want to send it to emacs-devel@gnu.org instead. If you +revise your patch, send it as a followup to the initial topic. + +** Description + +For bug fixes, a description of the bug and how your patch fixes it. + +For new features, a description of the feature and your implementation. + +** ChangeLog + +A ChangeLog entry as plaintext (separate from the patch). + +See the existing ChangeLog files for format and content. Note that, +unlike some other projects, we do require ChangeLogs for +documentation, i.e. Texinfo files. + +Ref: "Change Log Concepts" node of the GNU Coding Standards Info +Manual, for how to write good log entries. +http://www.gnu.org/prep/standards/html_node/Change-Log-Concepts.html + +When using git, commit messages should use ChangeLog format, with a +single short line explaining the change, then an empty line, then +unindented ChangeLog entries. (Essentially, a commit message should +be a duplicate of what the patch adds to the ChangeLog files. We are +planning to automate this better, to avoid the duplication.) You can +use the Emacs functions log-edit-add-to-changelog or +log-edit-insert-changelog to ease this process. + +** The patch itself. + +If you are accessing the Emacs repository, make sure your copy is +up-to-date (e.g. with 'git pull'). You can commit your changes +to a private branch and generate a patch from the master version +by using + git format-patch master +Or you can leave your changes uncommitted and use + git diff +With no repository, you can use + diff -u OLD NEW + +** Mail format. + +We prefer to get the patches as plain text, either inline (be careful +your mail client does not change line breaks) or as MIME attachments. + +** Please reread your patch before submitting it. + +** Do not mix changes. + +If you send several unrelated changes together, we will ask you to +separate them so we can consider each of the changes by itself. + +** Do not make formatting changes. + +Making cosmetic formatting changes (indentation, etc) makes it harder +to see what you have really changed. + + +* Supplemental information for Emacs Developers. + +An "Emacs Developer" is someone who contributes a lot of code or +documentation to the Emacs repository. + +** Write access to the Emacs repository. + +Once you become a frequent contributor to Emacs, we can consider +giving you write access to the version-control repository. Request +access on the emacs-devel@gnu.org mailing list. + +** Using the Emacs repository + +Emacs uses git for the source code repository. + +See http://www.emacswiki.org/emacs/GitQuickStartForEmacsDevs to get +started, and http://www.emacswiki.org/emacs/GitForEmacsDevs for more +advanced information. + +Alternately, see admin/notes/git-workflow. + +If committing changes written by someone else, make the ChangeLog +entry in their name, not yours. git distinguishes between the author +and the committer; use the --author option on the commit command to +specify the actual author; the committer defaults to you. + +** Changelog notes + +- Emacs generally follows the GNU coding standards when it comes to + ChangeLogs: + http://www.gnu.org/prep/standards/html_node/Change-Logs.html . One + exception is that we still sometimes quote `like-this' (as the + standards used to recommend) rather than 'like-this' (as they do + now), because `...' is so widely used elsewhere in Emacs. + +- There are multiple ChangeLogs in the emacs source; roughly one per + high-level directory. The ChangeLog entry for a commit belongs in the + lowest ChangeLog that is higher than or at the same level as any file + changed by the commit. + +- Preferred form for several entries with the same content: + + * help.el (view-lossage): + * kmacro.el (kmacro-edit-lossage): + * edmacro.el (edit-kbd-macro): Fix docstring, lossage is now 300 keys. + + (Rather than anything involving "ditto" and suchlike.) + +- In ChangeLog files, there is no standard or recommended way to + identify revisions. + + One way to identify revisions is by quoting their summary line. + Another is with an action stamp - an RFC3339 date followed by ! + followed by the committer's email - for example, + "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my previous commit" + will suffice. + +- There is no need to make separate change log entries for files such + as NEWS, MAINTAINERS, and FOR-RELEASE, or to indicate regeneration + of files such as 'configure'. "There is no need" means you don't + have to, but you can if you want to. + +** branches + +Development normally takes places on the trunk. +Sometimes specialized features are developed on separate branches +before possibly being merged to the trunk. + +Development is discussed on the emacs-devel mailing list. + +Sometime before the release of a new major version of Emacs a "feature +freeze" is imposed on the trunk, to prepare for creating a release +branch. No new features may be added to the trunk after this point, +until the release branch is created. This freeze is announced on the +emacs-devel mailing list, and not anywhere else. + +The trunk branch is named "master" in git; release branches are named +"emacs-nn" where "nn" is the major version. + +You must follow emacs-devel to know exactly what kinds of changes are +allowed on what branch at any time. Announcements about the freeze +(and other important events) will contain "ANNOUNCE" in the subject. + +If you are fixing a bug that exists in the current release, be sure to +commit it to the release branch; it will be merged to the master +branch later. + +However, if you know that the change will be difficult to merge to the +trunk (eg because the trunk code has changed a lot), you can apply the +change to both trunk and branch yourself. Indicate in the release +branch commit log that there is no need to merge the commit to the +trunk; start the commit message with "Backport:". gitmerge.el will +then exclude that commit from the merge to trunk. + + +** Other process information + +See all the files in admin/notes/* . In particular, see +admin/notes/newfile, see admin/notes/repo. + +** Emacs Mailing lists. + +Discussion about Emacs development takes place on emacs-devel@gnu.org. + +Bug reports and fixes, feature requests and implementations should be +sent to bug-gnu-emacs@gnu.org, the bug/feature list. This is coupled +to the tracker at http://debbugs.gnu.org . + +You can subscribe to the mailing lists, or see the list archives, +by following links from http://savannah.gnu.org/mail/?group=emacs . + +** Document your changes. + +Any change that matters to end-users should have an entry in etc/NEWS. + +Think about whether your change requires updating the documentation +(both manuals and doc-strings). If you know it does not, mark the NEWS +entry with "---". If you know that *all* the necessary documentation +updates have been made, mark the entry with "+++". Otherwise do not mark it. + +** Understanding Emacs Internals. + +The best way to understand Emacs Internals is to read the code, +but the nodes "Tips" and "GNU Emacs Internals" in the Appendix +of the Emacs Lisp Reference Manual may also help. + +The file etc/DEBUG describes how to debug Emacs bugs. + + + +This file is part of GNU Emacs. + +GNU Emacs 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 3 of the License, or +(at your option) any later version. + +GNU Emacs 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 GNU Emacs. If not, see . + +Local variables: +mode: outline +paragraph-separate: "[ ]*$" +end: diff --git a/ChangeLog b/ChangeLog index 2dfef7037fe..7e68314438d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,591 @@ +2014-12-23 Paul Eggert + + Merge from gnulib + 2014-12-20 utimens: remove unnecessary assert + 2014-12-16 stdalign: port better to HP compilers + 2014-12-16 stdalign: work around Apple GCC 4.0 bug + * lib/stdalign.in.h, lib/utimens.c, m4/stdalign.m4: Update from gnulib. + +2014-12-14 Paul Eggert + + Spelling fixes + All uses changed. + * lib-src/etags.c (analyze_regex): Rename from analyse_regex. + * lisp/cedet/semantic/lex-spp.el: + (semantic-lex-spp-analyzer-do-replace): + Rename from semantic-lex-spp-anlyzer-do-replace. + * lisp/emacs-lisp/cconv.el (cconv--analyze-use): + Rename from cconv--analyse-use. + (cconv--analyze-function): Rename from cconv--analyse-function. + (cconv-analyze-form): Rename from cconv-analyse-form. + * src/regex.c (analyze_first): Rename from analyze_first. + +2014-12-14 Glenn Morris + + * make-dist: No more lib-src/grep-changelog. + + * INSTALL.REPO: Revert 2014-12-06 change. + +2014-12-13 Paul Eggert + + * lib/gnulib.mk: Regenerate. + +2014-12-13 Paul Eggert + + Git ignore lib/std*.h + * .gitignore: Add lib/std*.h, to ignore stdarg.h, stdbool.h, and + stddef.h. Remove subsumed entries. + Add !lib/std*.in.h, so as to not ignore the .in.h files. + +2014-12-13 Paul Eggert + + Port commit-msg to mawk + Problem reported by Ted Zlatanov in: + http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg01093.html + * build-aux/git-hooks/commit-msg (space, non_space, non_print): + New vars. Use them as approximations to POSIX bracket expressions, + on implementations like mawk that do not support POSIX regexps. + + Improve commit-msg messages and autosquash + Problem reported by Michal Nazarewicz in Bug#19337. + * build-aux/git-hooks/commit-msg: Add "commit message" to + diagnostics. Distinguish better between tabs and other + unprintable chars in diagnostics. Don't complain if a prefix + "fixup! " or "squash! " makes a summary line too long. + +2014-12-13 Paul Eggert + + Port commit-message checking to FreeBSD 9. + This fixes a bug reported by Jan Djärv in: + http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00704.html + along with some other issues I noticed while testing with FreeBSD. + * build-aux/git-hooks/commit-msg: Prefer gawk if available. + Prefer en_US.UTF-8 to en_US.utf8, as it's more portable. + Work around bug in FreeBSD 9 awk, where /[[:cntrl:]]/ matches + ordinary text characters. + Be less tricky about quoting "'" in a shell script. + +2014-12-13 Stefan Monnier + + * .gitignore: Ignore autosave files. + +2014-12-12 Paul Eggert + + Merge from gnulib + 2014-12-12 stddef: support C11's max_align_t + 2014-12-11 unistd: fix iOS check conditional + 2014-12-08 apply _GL_ATTRIBUTE_PURE to some inline functions + 2014-12-02 support GNU format printf and scanf on mingw + * lib/stat-time.h, lib/stddef.in.h, lib/timespec.h: + * m4/extensions.m4, m4/stddef_h.m4, m4/stdio_h.m4: Update from gnulib. + * lib/gnulib.mk: Regenerate. + +2014-12-06 Stephen Leake + + * CONTRIBUTE: Improve; add explicit web references, move some info + from admin/notes/* here. + + * INSTALL.REPO: You can't "just run make" after a clean checkout. + +2014-12-05 Stephen Leake + + * CONTRIBUTE: Move here from etc/, preparatory to further + changes/cleanup. + +2014-12-05 Paul Eggert + + * .gitignore: Remove redundant pattern (subsumed by _*). + Avoid "**", as it requires Git 1.8.2 or later. + +2014-12-05 Eli Zaretskii + + * .gitignore: Ignore test/biditest.txt. + +2014-12-01 Lars Magne Ingebrigtsen + + * .gitignore: Ignore loaddefs directly under lisp, and in + sub-sub-directories. + +2014-11-29 Paul Eggert + + Add more of the old .bzrignore to .gitignore. + Plus a few more .gitignore improvements. + * .gitignore: Add copyright notice, since it's big enough. + Put exceptions immediately after the patterns they're exceptions + to, to make them easier to follow. + Give four exceptions for the Makefile pattern. + Ignore /confdefs.h, test/indent/*.new, TAGS, GPATH, GSYMS, GRTAGS, + GTAGS, ID, *.exe, some nextstep-related files, + jisx2131-filter, *.orig, *.rej, etc/emacs.tmpdesktop, *.in-h + _* (except for build-aux/snippet/_Noreturn.h), /bin/, /BIN/, + /data/, etc/icons/, lib/cxxdefs.h, lib/SYS/, /libexec/, /lock/, + /README.W32, /share/, /site-lisp/, src/gdb.ini, /var/. + Ignore /configure.lineno, since POSIX requires + LINENO only with the User Portability Utilities option. + Ignore *cust-load.el and *loaddefs.el only under lisp. + Ignore core files of various flavors. + Do not ignore etc/refcards/gnus-logo.pdf. + +2014-11-29 Eli Zaretskii + + * .gitignore: Add back src/_gdbinit, which is a temporary file + created by the MS-DOS build. + +2014-11-29 Paul Eggert + + Add a.out to .gitignore. + Suggested by Lee Duhem in: + http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg01665.html + * .gitignore: Add a.out. + Move *.log next to *.tmp, since it's generic. + Put *.exe before non-generics. + +2014-11-29 Eli Zaretskii + + * .gitignore: Resurrect Windows-specific ignorables lost in last + changes. + +2014-11-29 Paul Eggert + + * .gitignore: Add /emacs-[1-9]*/, and sort better. + +2014-11-29 Ivan Andrus + + * .gitignore: Add some nextstep/mac ignorables. + +2014-11-29 Paul Eggert + + .gitignore cleanup. + * .gitignore: Merge contents of subsidiary files and organize the + result so as to avoid duplication. Remove no-longer needed entries. + * admin/charsets/.gitignore, admin/unidata/.gitignore: + * doc/lispintro/.gitignore, etc/.gitignore, leim/.gitignore: + * leim/ja-dic/.gitignore, lib-src/.gitignore, lisp/.gitignore: + * lisp/calc/.gitignore, lisp/calendar/.gitignore: + * lisp/cedet/.gitignore, lisp/emulation/.gitignore: + * lisp/erc/.gitignore, lisp/eshell/.gitignore, lisp/gnus/.gitignore: + * lisp/international/.gitignore, lisp/language/.gitignore: + * lisp/leim/.gitignore, lisp/leim/quail/.gitignore: + * lisp/mail/.gitignore, lisp/mh-e/.gitignore, lisp/net/.gitignore: + * lisp/nxml/.gitignore, lisp/obsolete/.gitignore: + * lisp/play/.gitignore, lisp/progmodes/.gitignore: + * lisp/term/.gitignore, lisp/textmodes/.gitignore: + * lisp/url/.gitignore, nt/.gitignore, src/.gitignore: + Remove; no longer needed. + +2014-11-29 Glenn Morris + + * configure.ac: Simplify gnutls tests. + +2014-11-28 Stefan Monnier + + * .gitignore: Add entries for emacsvers files. + +2014-11-27 Paul Eggert + + Restore 'Bug#' -> 'debbugs:' rewrite in log-edit-mode. + * .dir-locals.el (log-edit-mode): Restore the (log-edit-rewrite-fixes + "[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1"). See Glenn Morris in: + http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg01187.html + + Simplify and fix doc-related .gitignore files. + This fixes some unwanted 'git status' output after 'make docs'. + * .gitignore: Add **/Makefile, **/makefile. + Remove Makefile, makefile. + Add doc/*/*.xxx rules for the usual kinds of documentation outputs + and temporaries. Add doc/misc/cc-mode.ss. + * doc/emacs/.gitignore, doc/lispintro/.gitignore, doc/misc/.gitignore: + * lwlib/.gitignore, oldXMenu/.gitignore: + Remove, as these .gitignore files are no longer needed. + * doc/lispintro/.gitignore: Replace with list of exceptional PDF files. + +2014-11-26 Dani Moncayo + + * configure.ac [MINGW]: Fix the way of getting the right host + platform. + +2014-11-25 Glenn Morris + + * configure.ac: Fix yesterday's use of uninitialised $version. + +2014-11-25 Oscar Fuentes + + * configure.ac [MINGW]: Set $canonical default value as per the + compiler's target. + +2014-11-24 Glenn Morris + + * configure.ac [HAVE_W32]: Generate nt/*.rc files when HAVE_W32, + not just when using mingw32. + +2014-11-22 Glenn Morris + + Further reduce number of versioned files storing Emacs version number. + * configure.ac (comma_version, comma_space_version) [mingw32]: + New output variables. + (nt/emacs.rc, nt/emacsclient.rc) [mingw32]: New output files. + * make-dist: Update nt/ for *.rc -> *.rc.in changes. + +2014-11-19 Dani Moncayo + + * build-aux/msys-to-w32: Simplify implementation and docstring; + Paths starting with '%emacs_dir%' are just considered relative. + +2014-11-16 Christoph Scholtes + + * .gitignore: Ignore generated file lib/stdalign.h. + +2014-11-16 Eli Zaretskii + + * .gitignore: Add more ignorables. + +2014-11-14 Andreas Schwab + + * Makefile.in (config.status): Don't depend on + ${srcdir}/lisp/version.el. + +2014-11-14 Paul Eggert + + Merge from gnulib. + 2014-11-14 extern-inline: update commentary about GCC bugs + 2014-11-06 unistd: port to iOS + 2014-11-04 update from texinfo + * doc/misc/texinfo.tex, lib/unistd.in.h, m4/extern-inline.m4: + Update from gnulib. + + build: port to GCC 4.6.4 + glibc 2.5 + On platforms this old, building with _FORTIFY_SOURCE equal to 2 + results in duplicate definitions of standard library functions. + Problem reported by Nelson H. F. Beebe. + * configure.ac (_FORTIFY_SOURCE): Sort after GNULIB_PORTCHECK. + By default, do not enable this unless GNULIB_PORTCHECK is defined. + This better matches the original intent, which as I recall was to + enable these extra checks only with --enable-gcc-warnings. + +2014-11-14 David Reitter + + * Makefile.in (install-arch-indep): Compress publicsuffix.txt file. + +2014-11-13 Paul Eggert + + * .dir-locals.el: Remove reference to bzr commit --fixes debbugs. + +2014-11-13 Lars Magne Ingebrigtsen + + * .gitignore: Copy over sufficient ignorable files from the old + .bzrignore that a simple build doesn't list lots of unregistered files. + +2014-11-11 Eric S. Raymond + + * Makefile.in: git transition - set VCWITNESS appropriately for git. + + All bzr revision IDS, and all CVS revision IDs for which a commit + could be identified, were changed to time-date!committer version + stamps. All .cvsignore files in the history became .gitignore + files. Fixes-bug annotations from bzr were copied into the + corresponding commit comments. + + (The first .cvsignore commit was 1999-09-30T14:07:54Z!fx@gnu.org. + The last CVS commit was 2009-12-27T08:11:12Z!cyd@stupidchicken.com.) + + Committer/author email addresses are generally correct for the + transition day, not necessarily when the commit was originally made. + +2014-11-10 Glenn Morris + + * configure.ac (doc/man/emacs.1): Generate it. + * Makefile.in (top_bootclean): Remove doc/man/emacs.1. + * make-dist: Do not distribute doc/man/emacs.1. + + * configure.ac (etc/refcards/emacsver.tex): Generate it. + * Makefile.in (etc-emacsver): New PHONY rule. + (bootstrap-clean): Delete etc/refcards/emacsver.tex. + + * configure.ac (doc/emacs/emacsver.texi): Generate it. + * make-dist (doc/emacs/emacsver.texi) [update]: No longer check it. + +2014-11-08 Dani Moncayo + + * build-aux/msys-to-w32: Simplify the initial over-engineered + interface, and the implementation. + * Makefile.in (epaths-force-w32): Update for the above. Also + simplify, assuming that the shell is bash (which is the case in MSYS). + (msys_w32prefix_subst, msys_sed_sh_escape): Remove (no longer used). + +2014-11-05 Glenn Morris + + * Makefile.in (QUIET_SUBMAKE): Remove. + (install-info, uninstall): Use --no-print-directory. (Bug#18908) + +2014-10-25 Eric S. Raymond + + * autogen.sh: Neutralize language specific to a repository type. + +2014-10-23 Paul Eggert + + * Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'. + + Fix race in 'make info/dir', and speed it up. + * Makefile.in (AWK, srcdir_doc_info_dir_inputs, info_dir_inputs): + New macros. + (clean): Remove info-dir.*. + (info_dir_deps): Depend on make-info-dir too. + (${srcdir}/info/dir): Make sure info directory exists. + Don't call pwd; just redirect make-info-dir's stdout to temp file. + * build-aux/make-info-dir: Send output to stdout. + Take input file names from args. + Fix a "FIXME inefficient looping" by using awk's associative arrays. + Basically, this rewrites the script from scratch, and speeds up + 'make info/dir' from 2.6s to 0.07s on my platform. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-19 Paul Eggert + + Merge from gnulib, incorporating: + 2014-10-18 readlinkat: port to AIX 7.1 + 2014-10-07 fcntl: fix error reporting by dupfd + * lib/fcntl.c, lib/readlinkat.c, lib/unistd.in.h, m4/readlinkat.m4: + * m4/unistd_h.m4: Update from gnulib. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + +2014-10-17 Glenn Morris + + * configure.ac: Simplify OS X $canonical tests. + +2014-10-15 Jan Djärv + + * configure.ac: Move the OSX 10.6 test. + +2014-10-15 Stefan Monnier + + * .bzrignore: Add uni-brackets.el. + +2014-10-14 Jan Djärv + + * configure.ac: apple-darwin powerpc is unported. + Require OSX >= 10.6 even if --with-ns is not given. + +2014-10-12 Ken Brown + + * configure.ac (LD_SWITCH_SYSTEM_TEMACS) [CYGWIN]: Set stack size + to 8 MB. (Bug#18438) + +2014-10-12 Jan Djärv + + * configure.ac: Require OSX 10.6. Remove NSInteger test, + use nsfont for Gnustep, macfont for OSX. + +2014-10-12 Paul Eggert + + Fix putenv race conditions that can crash Emacs (Bug#8705). + * configure.ac (LOCALTIME_CACHE): Remove. + We needn't worry about SunOS 4 any more; Sun dropped support in 2003. + All uses of LOCALTIME_CACHE removed. This simplifies the fix. + (tzalloc): Add check for this function. + +2014-10-06 Jan Djärv + + * configure.ac: Add -Wno-string-plus-int for clang. + +2014-10-04 Glenn Morris + + * configure.ac: Silence warning with some old Xrandr.h. (Bug#18465) + +2014-10-03 Paul Eggert + + * configure.ac: Port to strict POSIX shells on non-MinGW (Bug#18612). + +2014-09-29 Eli Zaretskii + + * README: Bump version to 25.0.50. + + * configure.ac (AC_INIT): Bump version to 25.0.50. + +2014-09-29 Dmitry Antipov + + * configure.ac (HAVE_STATEMENT_EXPRESSIONS): Remove. + For USE_STACK_LISP_OBJECTS, we always assume __GNUC__. + +2014-09-27 Ken Brown + + * configure.ac [CYGWIN]: Enable sound support. + +2014-09-25 Paul Eggert + + * configure.ac (MAKEINFO): Allow 'makeinfo' to be called 'texi2any'. + +2014-09-23 Paul Eggert + + Merge from gnulib, incorporating: + 2014-09-11 fcntl-h: fix compilation with Intel C++ compiler + 2014-09-04 pthread, pthread_sigmask, threadlib: port to Ubuntu 14.04 + +2014-09-22 Jan Djärv + + * configure.ac: Increase headerpad_extra to 1000, update the comment + about load commands (Bug#18505). + +2014-09-15 Eli Zaretskii + + * configure.ac (HAVE_SOUND): Check for mmsystem.h header that + defines the sound stuff on MS-Windows. (Bug#18463) + +2014-09-10 Paul Eggert + + Improve the experimental local and scoped allocation. + * configure.ac (HAVE_STRUCT_ATTRIBUTE_ALIGNED) + (HAVE_STATEMENT_EXPRESSIONS): New configure-time checks. + +2014-09-07 Paul Eggert + + Expand @AM_DEFAULT_VERBOSITY@ even if Automake is old (Bug#18415). + * configure.ac: Assume verbose output for older Automake. + +2014-09-04 Paul Eggert + + * configure.ac (MAKEINFO): Clean up some configuration bitrot. + MAKEINFO is already set before we get here, so no need to call AC_PATH_PROG. + Bypass $am_missing_run. Simplify version-number checking. + +2014-09-02 Paul Eggert + + Merge from gnulib, incorporating: + 2014-09-02 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++ + 2014-09-01 manywarnings: add GCC 4.9 warnings + * m4/gnulib-common.m4, m4/manywarnings.m4: Update from gnulib. + +2014-09-01 Paul Eggert + + --enable-silent-rules now suppresses more chatter. + * INSTALL: Document this. + + Clean up extern decls a bit. + * configure.ac (WERROR_CFLAGS): Don't disable -Wnested-externs. + While we're at it, don't disable -Wlogical-op either. + +2014-08-31 Paul Eggert + + * configure.ac (MAKE): Export it, for config.status. + Needed on AIX when 'configure' infers MAKE=gmake. + (__restrict_arr): Remove; no longer used. + +2014-08-30 Paul Eggert + + Vector-sorting fixes (Bug#18361). + * configure.ac (qsort_r): Remove, as we no longer use qsort-like + functions. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/vla.h, m4/vararrays.m4: New files, copied from gnulib. + * lib/stdlib.in.h, m4/stdlib_h.m4: Sync from gnulib, incorporating: + 2014-08-29 qsort_r: new module, for GNU-style qsort_r + The previous two files' changes are boilerplate generated by + admin/merge-gnulib, and should not affect Emacs. + +2014-08-29 Dmitry Antipov + + * configure.ac (AC_CHECK_FUNCS): Check for qsort_r. + +2014-08-28 Ken Brown + + * configure.ac (HYBRID_MALLOC): New macro; define to use gmalloc + before dumping and the system malloc after dumping. Define on + Cygwin. (Bug#18222) + +2014-08-28 Glenn Morris + + * Makefile.in (appdatadir): New variable. + (install-etc, uninstall, clean): Handle etc/emacs.appdata.xml. + +2014-08-27 Paul Eggert + + Improve robustness of new string-collation code (Bug#18051). + * configure.ac (newlocale): Check for this, not for uselocale. + +2014-08-26 Dmitry Antipov + + Detect features needed to handle C stack overflows. + * configure.ac: Check for sigaltstack and related sigaction + support. Unconditionally check for sigsetjmp and siglongjmp. + (HAVE_STACK_OVERFLOW_HANDLING): Define if we can support it. + + (HAVE_LINUX_SYSINFO): Avoid false positive on Solaris. + +2014-08-25 Ken Brown + + * configure.ac (G_SLICE_ALWAYS_MALLOC): Remove obsolete macro. + +2014-08-25 Christoph Scholtes + + * INSTALL.REPO: Remove reference to obsolete configure scripts + on non-Posix platforms (Bug#18323). + +2014-08-24 Michael Albinus + + * configure.ac: Check also for the uselocale function. (Bug#18051) + +2014-08-23 Karol Ostrovsky (tiny change) + + * configure.ac: Accept "*-mingw*", not just "*-mingw32", as + canonical name of a MinGW build, because using MSYS2 'uname' + produces "MINGW64". + +2014-08-21 Ken Brown + + * configure.ac (HAVE_XPM): Explain the use of CPPFLAGS in the + Cygwin-w32 build. (Bug#18302) + +2014-08-11 Paul Eggert + + Don't prevent random file systems from being unmounted (Bug#18232). + This fix relies on having the 'fchdir' function, and on having + "." be searchable (or at least readable, on platforms lacking O_SEARCH), + but that's good enough to handle the vast majority of cases and the + remaining folks can just live with the annoyance of file systems + that occasionally can't be unmounted. + * configure.ac (fchdir): New function to check for. + * lib/save-cwd.c: Copy from gnulib, except omit the part that + allocates memory, since that can cause problems in Emacs. + * lib/save-cwd.h: Copy from gnulib. + +2014-08-10 Eli Zaretskii + + * config.bat: Fix some confusing wording. + +2014-08-09 Eli Zaretskii + + * config.bat: Fix EOL format in lines modified by last commit. + +2014-08-09 Reuben Thomas + + * make-dist (files): Remove msdos/is_exec.c and sigaction.c. + * config.bat: Require DJGPP 2.02 or later. + +2014-08-09 Paul Eggert + + Merge from gnulib, incorporating: + 2014-08-07 getdtablesize: fall back on sysconf (_SC_OPEN_MAX) + 2014-08-05 sys_select: fix FD_ZERO problem on Solaris 10 + * lib/getdtablesize.c, lib/sys_select.in.h: Update from gnulib. + +2014-08-07 Reuben Thomas + + * README: ``MSDOG'' becomes ``MS-DOS''. + +2014-08-04 Paul Eggert + + Merge from gnulib, incorporating: + 2014-08-04 extern-inline: port to FreeBSD, DragonFly + * lib/gnulib.mk: Regenerate (comment change only). + * m4/extern-inline.m4: Update from gnulib. + +2014-08-02 Paul Eggert + + * configure.ac (HAVE_TIMERFD): Also check for TFD_NONBLOCK, + since the code is using TFD_NONBLOCK now. + 2014-07-31 Paul Eggert Simplify timerfd configuration and fix some minor glitches. @@ -226,6 +814,7 @@ dumped heap size depending on 32/64bits arch on Windows. Don't check for pthreads.h on MinGW32/64, it gets in the way. Use mmap(2) for buffers and system malloc for MinGW32/64. + (EMACS_HEAPSIZE): Remove. 2014-05-27 Paul Eggert @@ -1380,8 +1969,8 @@ 2013-07-29 Michael Albinus - * INSTALL (DETAILED BUILDING AND INSTALLATION): Add - --without-file-notification to --without-all. + * INSTALL (DETAILED BUILDING AND INSTALLATION): + Add --without-file-notification to --without-all. 2013-07-29 Xue Fuqiao @@ -1654,8 +2243,8 @@ CONFIG_SITE for the MSYS build on MS-Windows. (Makefile): Use $(CFG). - * .bzrignore: Ignore *.res, *.tmp, and *.map. Remove - src/emacs.res. + * .bzrignore: Ignore *.res, *.tmp, and *.map. + Remove src/emacs.res. 2013-05-16 Paul Eggert @@ -2063,7 +2652,7 @@ 2012-12-13 Andreas Schwab * Makefile.in (install-info): Use `${MAKE} -s' for echo-info. - (uninstall): Likewise. (Bug#13143) + (uninstall): Likewise. (Bug#13142) 2012-12-11 Paul Eggert @@ -8181,7 +8770,7 @@ * configure.in (HAVE_XIM): Define if XIM is available. -2003-07-29 Tim Van Holder (tiny change) +2003-07-29 Tim Van Holder * configure.in: The function gtk_window_set_icon_from_file was introduced in GTK+ 2.2, so check for that release. @@ -8415,7 +9004,7 @@ * configure.in (*-sunos5.8*, *-solaris2.8*): New configurations. -2002-11-11 Tim Van Holder (tiny change) +2002-11-11 Tim Van Holder * Makefile.in (install-arch-indep): Prepend $(srcdir)/ to lisp. @@ -13269,7 +13858,7 @@ detail: -with-x... and --srcdir. (options, boolean_opts): Delete; we don't have enough options to make this worthwhile. - (prefix, bindir, lisppath, datadir, libdir, lockdir): Deleted, + (prefix, bindir, lisppath, datadir, libdir, lockdir): Delete, along with the code which supported them; these should be set as arguments to the top-level make. (config_h_opts): Since this no longer doubles as a list of option diff --git a/INSTALL b/INSTALL index 94fa6ba653b..81140a21ab4 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,5 @@ GNU Emacs Installation Guide -Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation, -Inc. +Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation, Inc. See the end of the file for license conditions. @@ -34,9 +33,9 @@ some of the steps manually. The more detailed description in the other sections of this guide will help you do that, so please refer to those sections if you need to. - 1. Unpacking the Emacs 24.1 release requires about 180 MB of free - disk space. Building Emacs uses about another 70 MB of space. - The final installed Emacs uses about 110 MB of disk space. + 1. Unpacking the Emacs 24 release requires about 200 MB of free + disk space. Building Emacs uses about another 200 MB of space. + The final installed Emacs uses about 150 MB of disk space. This includes the space-saving that comes from automatically compressing the Lisp source files on installation. @@ -208,24 +207,11 @@ corresponding command is `yum-builddep emacs'. DETAILED BUILDING AND INSTALLATION: -(This is for a Unix or Unix-like system. For MS-DOS and MS Windows 3.X, -see msdos/INSTALL. For later versions of MS Windows, see the file -nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.) +(This is for a Unix or Unix-like system. For GNUstep and Mac OS X, +see nextstep/INSTALL. For non-ancient versions of MS Windows, see +the file nt/INSTALL. For MS-DOS and MS Windows 3.X, see msdos/INSTALL.) -1) Make sure your system has enough swapping space allocated to handle -a program whose pure code is 1.5 MB and whose data area is at -least 2.8 MB and can reach 100 MB or more. If the swapping space is -insufficient, you will get an error in the command `temacs -batch -l -loadup dump', found in `./src/Makefile.in', or possibly when -running the final dumped Emacs. (This should not be an issue -on any recent system.) - -Building Emacs requires about 230 MB of disk space (including the -Emacs sources). Once installed, Emacs occupies about 120 MB in the file -system where it is installed; this includes the executable files, Lisp -libraries, miscellaneous data files, and on-line documentation. If -the building and installation take place in different directories, -then the installation procedure momentarily requires 230+120 MB. +1) See the basic installation summary above for the disk space requirements. 2) In the unlikely event that `configure' does not detect your system type correctly, consult `./etc/MACHINES' to see what --host, --build @@ -264,8 +250,7 @@ Gtk or Motif, if you have the Xaw3d library installed (see "Image support libraries" above for Xaw3d availability). You can tell configure where to search for GTK by giving it the -argument PKG_CONFIG='/full/name/of/pkg-config'. GTK version 2.6 or -newer is required for Emacs. +argument PKG_CONFIG='/full/name/of/pkg-config'. Emacs will autolaunch a D-Bus session bus, when the environment variable DISPLAY is set, but no session bus is running. This might be @@ -328,6 +313,11 @@ and is useful with GNU-compatible compilers. On a recent GNU system there should be no warnings; on older and on non-GNU systems the generated warnings may still be useful. +Use --enable-silent-rules to cause 'make' to chatter less. This is +helpful when combined with options like --enable-gcc-warnings that +generate long shell-command lines. 'make V=0' also suppresses the +chatter. + Use --enable-link-time-optimization to enable link-time optimizer. If you're using GNU compiler, this feature is supported since version 4.5.0. If `configure' can determine number of online CPUS on your system, final @@ -369,8 +359,7 @@ without sound support. `configure' doesn't do any compilation or installation itself. It just creates the files that influence those things: `./Makefile' in the top-level directory and several subdirectories; -and `./src/config.h'. For details on exactly what it does, see the -section called `CONFIGURATION BY HAND', below. +and `./src/config.h'. When it is done, `configure' prints a description of what it did and creates a shell script `config.status' which, when run, recreates the @@ -425,11 +414,6 @@ those libraries are. For example: ./configure \ PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig' -The work of `configure' can be done by editing various files in the -distribution, but using `configure' is easier. See the section called -"CONFIGURATION BY HAND" below if you want to do the configuration -yourself. - 3b) To build in a separate directory, go to that directory and run the program `configure' as follows: @@ -439,9 +423,6 @@ SOURCE-DIR refers to the top-level Emacs source directory which is where Emacs's configure script is located. `configure' looks for the Emacs source code in the directory that `configure' is in. -(Do not try to build in a separate directory by creating many links to -the real source directory--there is no need, and installation will fail.) - 4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs Lisp code you want Emacs to load before it is dumped out. Use site-load.el for additional libraries if you arrange for their @@ -483,8 +464,7 @@ installed locations, with `make install'. By default, Emacs's files are installed in the following directories: `/usr/local/bin' holds the executable programs users normally run - - `emacs', `etags', `ctags', `emacsclient', and - `grep-changelog'. + `emacs', `etags', `ctags', `emacsclient'. `/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library; `VERSION' stands for the number of the Emacs version @@ -554,11 +534,7 @@ to enable it to write the lock files. We believe this is safe. 9) You are done! You can remove executables and object files from the build directory by typing `make clean'. To also remove the files that `configure' created (so you can compile Emacs for a different -configuration), type `make distclean'. If you don't need some, or all -of the input methods from the Leim package, you can remove the -unneeded files in the leim subdirectories of your site's lisp -directory (usually /usr/local/share/emacs/VERSION/). - +configuration), type `make distclean'. MAKE VARIABLES @@ -666,94 +642,6 @@ Makefiles for the subdirectories, so you don't have to specify them when running make in the subdirectories. -CONFIGURATION BY HAND - -This should not be necessary and is not recommended. Instead of -running the `configure' program, you have to perform the following steps. - -1) Copy `./src/config.in' to `./src/config.h'. - -2) Edit `./src/config.h' to set the right options for your system. - -3) Create `Makefile' files in various directories from the -corresponding `Makefile.in' files. This isn't so hard, just a matter -of editing in appropriate substitutions for the @...@ constructs. - -The `configure' script is built from `configure.ac' by the -`autogen.sh' script, which checks that `autoconf' and other build -tools are sufficiently up to date and then runs the build tools. - -BUILDING GNU EMACS BY HAND - -Once Emacs is configured, running `make' in the top directory performs -the following steps. - -1) Run `make epaths-force' in the top directory. This produces -`./src/epaths.h' from the template file `./src/epaths.in', changing -the paths to the values specified in `./Makefile'. - -2) Go to directory `./lib' and run `make'. This creates include files -and libraries used in later steps. - -3) Go to directory `./lib-src' and run `make'. This creates -executables named `etags', `make-docfile', and others. - -4) Go to directory `./src' and run `make'. This refers to files in -the `./lisp', `./lib', and `./lib-src' subdirectories using names -`../lisp', `../lib', and `../lib-src'. - -This creates a file `./src/emacs' which is the runnable Emacs, -which has another name that contains a version number. -Each time you do this, that version number increments in the last place. - -It also creates a file in `./etc' whose name is `DOC' followed by the -current Emacs version. This file contains documentation strings for -all the functions in Emacs. Each time you run make to make a new -emacs, a new DOC file with a new name is made. You must keep the DOC -file for an Emacs version as long as you keep using that Emacs version. - - -INSTALLATION BY HAND - -The steps below are done by running `make install' in the main -directory of the Emacs distribution. - -1) Copy `./lisp' and its subdirectories, `./etc', and the executables -in `./lib-src' to their final destinations, as selected in `./src/epaths.h'. - -Strictly speaking, not all of the executables in `./lib-src' need be copied. -- The programs `hexl', `movemail', `profile', and `rcs2log' - are used by Emacs; they do need to be copied. -- The programs `etags', `ctags', and `emacsclient' are intended to be - run by users; they are handled below. -- The program `make-docfile' was used in building Emacs, and is - not needed any more. - -2) Copy the files in `./info' to the place specified in -`./lisp/site-init.el' or `./lisp/info.el'. Note that if the -destination directory already contains a file named `dir', you -probably don't want to replace it with the `dir' file in the Emacs -distribution. Instead, you should make sure that the existing `dir' -file contains an appropriate menu entry for the Emacs info. - -3) Copy `./src/emacs' to `/usr/local/bin', or to some other directory -in users' search paths. `./src/emacs' has an alternate name -`./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named -`/usr/local/bin/emacs' pointing to that alternate name, as an easy way -of installing different versions. - -You can delete `./src/temacs'. - -4) Copy the programs `emacsclient', `ctags', and `etags' from `./lib-src' -to `/usr/local/bin'. These programs are intended for users to run. - -5) Copy the man pages in `./doc/man' into the appropriate man directory. - -6) The files in the `./src' subdirectory, except for `emacs', are not -used by Emacs once it is built. However, it is very desirable to keep -the source on line for debugging. - - PROBLEMS See the file `./etc/PROBLEMS' for a list of various problems sometimes diff --git a/INSTALL.REPO b/INSTALL.REPO index 36ab928673d..83b6f2f4133 100644 --- a/INSTALL.REPO +++ b/INSTALL.REPO @@ -52,11 +52,6 @@ If either of the above partial procedures fails, try 'make bootstrap'. If CPU time is not an issue, 'make bootstrap' is the most thorough way to rebuild, and avoid any spurious problems. -Users of non-Posix systems (MS-Windows, etc.) should run the -platform-specific configuration scripts ('nt/configure.bat', -'config.bat', etc.) before 'make'; the rest of the procedure is -applicable to those systems as well. - Because the repository version of Emacs is a work in progress, it will sometimes fail to build. Please wait a day or so (and check the archives of the emacs-buildstatus, emacs-devel, and bug-gnu-emacs diff --git a/Makefile.in b/Makefile.in index a6080e5ce78..ccb70a436e8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -67,10 +67,6 @@ CDPATH= # If Make doesn't predefine MAKE, set it here. @SET_MAKE@ -# Prevent submakes from outputting "Entering directory ..." and -# "Leaving directory..." diagnostics that would mess up 'make echo-info'. -QUIET_SUBMAKE = MAKELEVEL=0 - # ==================== Things `configure' Might Edit ==================== cache_file = @cache_file@ @@ -80,6 +76,7 @@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ ACLOCAL = @ACLOCAL@ +AWK = @AWK@ EXEEXT=@EXEEXT@ @@ -179,6 +176,9 @@ x_default_search_path=@x_default_search_path@ # Where the etc/emacs.desktop file is to be installed. desktopdir=$(datarootdir)/applications +# Where the etc/emacs.appdata.xml file is to be installed. +appdatadir=$(datarootdir)/appdata + # Where the etc/images/icons/hicolor directory is to be installed. icondir=$(datarootdir)/icons @@ -259,7 +259,7 @@ MKDIR_P = @MKDIR_P@ # Create a link to a file in the same directory as the target. LN_S_FILEONLY = @LN_S_FILEONLY@ -# We use gzip to compress installed .el files. +# We use gzip to compress installed .el and some .txt files. GZIP_PROG = @GZIP_PROG@ # ============================= Targets ============================== @@ -288,7 +288,18 @@ COPYDESTS = "$(DESTDIR)${etcdir}" "$(DESTDIR)${lispdir}" all: ${SUBDIR} info -.PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32 +.PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32 etc-emacsver + +# If configure were to just generate emacsver.tex from emacsver.tex.in +# in the normal way, the timestamp of emacsver.tex would always be +# newer than that of the pdf files, which are prebuilt in release tarfiles. +# So we use this rule, and move-if-change, to avoid that. +etc-emacsver: + majorversion=`echo ${version} | sed 's/\..*//'`; \ + sed "s/[@]majorversion@/$${majorversion}/" \ + ${srcdir}/etc/refcards/emacsver.tex.in > emacsver.tex.$$$$ && \ + ${srcdir}/build-aux/move-if-change emacsver.tex.$$$$ \ + ${srcdir}/etc/refcards/emacsver.tex removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g' @@ -323,14 +334,6 @@ epaths-force: -e 's;\(#.*PATH_DOC\).*$$;\1 "${etcdocdir}";') && \ ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h -# Replace "${w32prefix}" with '%emacs_dir%' (which expands to install -# directory at runtime). -msys_w32prefix_subst=sed -e 's!\(^\|;\)'"$${w32prefixpattern}"'\([;/]\|$$\)!\1%emacs_dir%\2!g' - -# Quote Sed special characters (except backslash and newline) with -# a double backslash. -msys_sed_sh_escape=sed -e 's/[];$$*.^[]/\\\\&/g' - # The w32 build needs a slightly different editing, and it uses # nt/epaths.nt as the template. # @@ -342,12 +345,12 @@ msys_sed_sh_escape=sed -e 's/[];$$*.^[]/\\\\&/g' # program that doesn't support MSYS-style paths (e.g. '/c/foo/bar' or # '/foo/bar'). epaths-force-w32: - @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${srcdir}"`; \ - w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}" N`; \ - w32prefixpattern=`echo "$${w32prefix}" | ${msys_sed_sh_escape}` ; \ - w32locallisppath=`${srcdir}/build-aux/msys-to-w32 "${locallisppath}" N ":" "\\;" | ${msys_w32prefix_subst}` ; \ + @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${abs_srcdir}"`; \ + w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}"`; \ + w32locallisppath=`${srcdir}/build-aux/msys-to-w32 "${locallisppath}"` ; \ + w32locallisppath=$${w32locallisppath//$${w32prefix}/"%emacs_dir%"} ; \ sed < ${srcdir}/nt/epaths.nt > epaths.h.$$$$ \ - -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${w32locallisppath}"'";' \ + -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${w32locallisppath//;/\\;}"'";' \ -e '/^.*#/s/@VER@/${version}/g' \ -e '/^.*#/s/@CFG@/${configuration}/g' \ -e "/^.*#/s|@SRC@|$${w32srcdir}|g") && \ @@ -368,12 +371,17 @@ lisp: src lib lib-src lisp nt: Makefile $(MAKE) -C $@ all +# Ideally, VCSWITNESS should be a file that is modified whenever the +# repository registers a commit from either a local checkin or a +# repository pull. In git there is no single file that guarantees +# this, but the local log for the current head should be close enough. +# # Note the use of single quotes in the value of vcswitness. # This passes an unexpanded $srcdir to src's Makefile, which then # expands it using its own value of srcdir (which points to the # source directory of src/). src: Makefile - dirstate='.bzr/checkout/dirstate'; \ + dirstate='.git/logs/HEAD'; \ vcswitness='$$(srcdir)/../'$$dirstate; \ [ -r "$(srcdir)/$$dirstate" ] || vcswitness=''; \ $(MAKE) -C $@ all VCSWITNESS="$$vcswitness" @@ -400,7 +408,7 @@ $(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \ # Don't erase these files if make is interrupted while refreshing them. .PRECIOUS: Makefile config.status -config.status: ${srcdir}/configure ${srcdir}/lisp/version.el +config.status: ${srcdir}/configure if [ -x ./config.status ]; then \ $(CFG) ./config.status --recheck; \ else \ @@ -413,7 +421,7 @@ $(srcdir)/configure: $(AUTOCONF_INPUTS) cd ${srcdir} && ${AUTOCONF} ACLOCAL_PATH = @ACLOCAL_PATH@ -ACLOCAL_INPUTS = $(srcdir)/configure.ac $(wildcard $(srcdir)/m4/*.m4) +ACLOCAL_INPUTS = $(srcdir)/configure.ac $(srcdir)/m4/*.m4 $(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS) cd $(srcdir) && ACLOCAL_PATH='$(ACLOCAL_PATH)' $(ACLOCAL) -I m4 @@ -592,11 +600,12 @@ install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} subdir="$(DESTDIR)${datadir}/emacs/site-lisp" ; \ ${write_subdir} || true [ -z "${GZIP_PROG}" ] || { \ - echo "Compressing *.el ..." && \ + echo "Compressing *.el etc. ..." && \ cd "$(DESTDIR)${lispdir}" && \ for f in `find . -name "*.elc" -print | sed 's/.elc$$/.el/'`; do \ ${GZIP_PROG} -9n "$$f"; \ done; \ + ${GZIP_PROG} -9n "../etc/publicsuffix.txt"; \ } -chmod -R a+r "$(DESTDIR)${datadir}/emacs/${version}" ${COPYDESTS} @@ -637,7 +646,7 @@ install-info: info [ -f "$(DESTDIR)${infodir}/dir" ] || \ [ ! -f ${srcdir}/info/dir ] || \ ${INSTALL_DATA} ${srcdir}/info/dir "$(DESTDIR)${infodir}/dir"; \ - info_misc=`$(QUIET_SUBMAKE) $(MAKE) -s -C doc/misc echo-info`; \ + info_misc=`$(MAKE) --no-print-directory -s -C doc/misc echo-info`; \ cd ${srcdir}/info ; \ for elt in ${INFO_NONMISC} $${info_misc}; do \ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ @@ -687,6 +696,12 @@ install-etc: ${srcdir}/etc/emacs.desktop > $${tmp}; \ ${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"; \ rm -f $${tmp} + umask 022; ${MKDIR_P} "$(DESTDIR)${appdatadir}" + tmp=etc/emacs.tmpappdata; rm -f $${tmp}; \ + sed -e "s/emacs\.desktop/${EMACS_NAME}.desktop/" \ + ${srcdir}/etc/emacs.appdata.xml > $${tmp}; \ + ${INSTALL_DATA} $${tmp} "$(DESTDIR)${appdatadir}/${EMACS_NAME}.appdata.xml"; \ + rm -f $${tmp} thisdir=`/bin/pwd`; \ cd ${iconsrcdir} || exit 1; umask 022 ; \ for dir in */*/apps */*/mimetypes; do \ @@ -728,7 +743,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc done -rm -rf "$(DESTDIR)${libexecdir}/emacs/${version}" thisdir=`/bin/pwd`; \ - (info_misc=`$(QUIET_SUBMAKE) $(MAKE) -s -C doc/misc echo-info`; \ + (info_misc=`$(MAKE) --no-print-directory -s -C doc/misc echo-info`; \ if cd "$(DESTDIR)${infodir}"; then \ for elt in ${INFO_NONMISC} $${info_misc}; do \ (cd "$${thisdir}"; \ @@ -751,6 +766,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \ fi) -rm -f "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop" + -rm -f "$(DESTDIR)${appdatadir}/${EMACS_NAME}.appdata.xml" for file in snake-scores tetris-scores; do \ file="$(DESTDIR)${gamedir}/$${file}"; \ [ -s "$${file}" ] || rm -f "$$file"; \ @@ -806,12 +822,13 @@ clean: $(clean_dirs:=_clean) for dir in test/automated; do \ [ ! -d $$dir ] || $(MAKE) -C $$dir clean; \ done - -rm -f etc/emacs.tmpdesktop + -rm -f etc/emacs.tmpdesktop etc/emacs.tmpappdata + -rm -rf info-dir.* ### `bootclean' ### Delete all files that need to be remade for a clean bootstrap. top_bootclean=\ - rm -f config.cache config.log + rm -f config.cache config.log ${srcdir}/doc/man/emacs.1 ### `distclean' ### Delete all files from the current directory that are created by @@ -844,6 +861,7 @@ bootstrap-clean: $(distclean_dirs:=_bootstrap-clean) done [ ! -f config.log ] || mv -f config.log config.log~ rm -rf ${srcdir}/info + rm -f ${srcdir}/etc/refcards/emacsver.tex ${top_bootclean} ### `maintainer-clean' @@ -925,13 +943,19 @@ ps: $(PSS) info-dir: ${srcdir}/info/dir -## Not strictly necessary, but speeds things up a bit by stopping -## the info-dir rule from running when not needed. ## Hopefully doc/misc/*.texi is not too long for some systems? -info_dir_deps = ${srcdir}/build-aux/dir_top \ - ${srcdir}/doc/emacs/emacs.texi \ - ${srcdir}/doc/lispintro/emacs-lisp-intro.texi \ - ${srcdir}/doc/lispref/elisp.texi ${srcdir}/doc/misc/*.texi +srcdir_doc_info_dir_inputs = \ + ${srcdir}/doc/emacs/emacs.texi \ + ${srcdir}/doc/lispintro/emacs-lisp-intro.texi \ + ${srcdir}/doc/lispref/elisp.texi \ + $(sort $(wildcard ${srcdir}/doc/misc/*.texi)) +info_dir_inputs = \ + ../build-aux/dir_top \ + $(subst ${srcdir}/doc/,,${srcdir_doc_info_dir_inputs}) +info_dir_deps = \ + ${srcdir}/build-aux/make-info-dir \ + ${srcdir}/build-aux/dir_top \ + ${srcdir_doc_info_dir_inputs} ## It would be much simpler if info/dir was only created in the ## installation location by the install-info rule, but we also @@ -940,10 +964,12 @@ info_dir_deps = ${srcdir}/build-aux/dir_top \ ## but then we would need to depend on info-real, which would ## slow down parallelization. ${srcdir}/info/dir: ${info_dir_deps} + ${MKDIR_P} ${srcdir}/info tempfile=info-dir.$$$$; \ rm -f $${tempfile}; \ - thisdir=`pwd`; \ - (cd ${srcdir} && ./build-aux/make-info-dir $${thisdir}/$${tempfile}); \ + (cd ${srcdir}/doc && \ + AWK='${AWK}' ../build-aux/make-info-dir ${info_dir_inputs} \ + ) >$$tempfile && \ ${srcdir}/build-aux/move-if-change $${tempfile} ${srcdir}/info/dir INSTALL_DVI = install-emacs-dvi install-lispref-dvi \ diff --git a/README b/README index 9f0ff0c5daa..ad412c4fb86 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Copyright (C) 2001-2014 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 24.4.50 of GNU Emacs, the extensible, +This directory tree holds version 25.0.50 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU @@ -39,10 +39,7 @@ process of building and installing Emacs. See INSTALL for more detailed information. The file `configure.ac' is the input used by the autoconf program to -construct the `configure' script. Since Emacs has some configuration -requirements that autoconf can't meet directly, and for historical -reasons, `configure.ac' uses an unholy marriage of custom-baked -configuration code and autoconf macros. +construct the `configure' script. The shell script `autogen.sh' generates 'configure' and other files by running the GNU build tools autoconf and automake, which in turn use @@ -84,7 +81,7 @@ There are several subdirectories: `doc/lispref' holds the source code for the Emacs Lisp reference manual. `doc/lispintro' holds the source code for the Introduction to Programming in Emacs Lisp manual. -`msdos' holds configuration files for compiling Emacs under MSDOG. +`msdos' holds configuration files for compiling Emacs under MS-DOS. `nextstep' holds instructions and some other files for compiling the Nextstep port of Emacs, for GNUstep and Mac OS X Cocoa. `nt' holds various command files and documentation files that pertain diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES index 066347b3826..18423c23420 100644 --- a/admin/CPP-DEFINES +++ b/admin/CPP-DEFINES @@ -19,8 +19,9 @@ __MSDOS__ Ditto. __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c. DOS_NT Compiling for either the MS-DOS or native MS-Windows port. WINDOWSNT Compiling the native MS-Windows (W32) port. -__MINGW32__ Compiling the W32 port with the MinGW port of GCC. +__MINGW32__ Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC. _MSC_VER Compiling the W32 port with the Microsoft C compiler. +MINGW_W64 Compiling the W32 port with the MinGW-w64 port of GCC. DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h). SOLARIS2 USG @@ -368,7 +369,6 @@ HAVE___FPENDING INTERNAL_TERMINAL IS_ANY_SEP IS_DIRECTORY_SEP -LOCALTIME_CACHE MAIL_USE_FLOCK MAIL_USE_LOCKF MAIL_USE_POP diff --git a/admin/ChangeLog b/admin/ChangeLog index 90d394ca9bd..88ce1450d7f 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,241 @@ +2014-12-14 Paul Eggert + + * notes/unicode: Track leim/quail file renames. + Correct coding system + of lisp/international/titdic-cnv.el. + +2014-12-14 Glenn Morris + + * quick-install-emacs (PUBLIC_LIBSRC_SCRIPTS): Remove, and all uses. + * authors.el (authors-valid-file-names): Add grep-changelog. + +2014-12-13 Paul Eggert + + * notes/unicode: Don't mention Czech and Slovakian refcards. + + * merge-gnulib (GNULIB_MODULES): Add stddef, for max_align_t. + +2014-12-06 Stephen Leake + + * notes/commits: Delete; merge into ./CONTRIBUTE. + + * notes/repo: Move commit, branch info into ./CONTRIBUTE. + +2014-12-01 Glenn Morris + + * update_autogen: Fix bogosity introduced in 2014-11-16 merge. + +2014-11-29 Paul Eggert + + Lessen focus on ChangeLog files, as opposed to change log entries. + This is in preparation for generating the former automatically + from the latter. + * notes/bugtracker, notes/copyright, notes/newfile: + ChangeLog -> change log + * notes/changelogs: Remove, merging old contents to ... + * notes/repo: ... here. + +2014-11-27 David Engster + + * gitmerge.el: New file. + * notes/git-workflow: Add documentation for using it. + +2014-11-27 Oscar Fuentes + + * CPP-DEFINES: Mention MINGW_W64. + +2014-11-22 Glenn Morris + + * admin.el (set-version): No more need to update nt/*.rc. + * authors.el (authors-renamed-files-alist): Add .rc.in files. + +2014-11-16 Stefan Monnier + + * update_autogen: Merge from emacs-24 (restoring bzr conditionals). + +2014-11-13 Andreas Schwab + + * make-tarball.txt: Make annotated tag and push it out. + +2014-11-11 Eric S. Raymond + + * make-tarball.txt, notes/bugtracker, notes/repo, notes/tags: + Git transition. + * update-copyright: Use git ls-files. + * update_autogen: Remove some bzr conditionals. + +2014-11-10 Eli Zaretskii + + * unidata/Makefile.in (${top_srcdir}/src/macuvs.h): + Use unmsys--file-name. (Bug#18955) + +2014-11-10 Glenn Morris + + * admin.el (set-version): No need to update doc/man/emacs.1. + + * admin.el (set-version): No need to update etc/refcards/emacsver.tex. + (set-copyright): Update etc/refcards/emacsver.tex.in. + + * admin.el (set-version): No need to update doc/emacs/emacsver.texi. + (make-manuals-dist-output-variables): Add top_srcdir. + (make-manuals-dist--1): Handle @version@ specially. + +2014-11-09 Eric Ludlam + + * grammars/c.by (template-type): Add :template-specifier and + :typevar to capture extra details about the template. + (opt-post-fcn-modifiers): Splice in the found symbol into the + return value correctly. + (QUESTION): New punctuation. + (expression): Add ternary conditional support. + + * grammars/scheme.by (MODULE): New token. + (scheme): Handle expanding the MODULE tag. + (scheme-list): Remove closeparen required match. + (scheme-in-list): Remove extraneous matches for DEFINE. + Add support for MODULE Simplify matching for code & make work. + (name-args, name-arg-list, name-arg-expand): Make it work. + +2014-11-09 David Engster + + * grammars/c.by (opt-brackets-after-symbol): New. + (multi-stage-dereference): Use it. Add rules for explicit + matching the last dereference. We cannot just juse + 'namespace-symbol' as a single rule, since this would match too + greedy and mess with parsing default values of variables. + +2014-11-09 Glenn Morris + + * admin.el (make-manuals-dist-output-variables) + (make-manuals-dist--1, make-manuals-dist): New. + Replaces doc/*/Makefile.in `dist' rules. + +2014-11-04 Paul Eggert + + Spelling fixes; tweak explanation of commit messages. + * notes/repo: Avoid "DVCS" acronym without first explaining it. + Mention using the first line of a ChangeLog as the topic line, + and that commit messages should use UTF-8. + +2014-11-01 Eli Zaretskii + + * notes/repo (Notes): Reword the stylistic guidance for commit log + messages so that they are in line with Emacs development practices + and style guidance. + +2014-10-27 Eric S. Raymond + + * notes/bzr: Rename to notes/repo, reorganize to separate + VCS-dependent from VCS-independent stuff. Add guidance about + commit-comment format under DVCSes. + + * notes/BRANCH: Merged into notes/repo. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-15 Eli Zaretskii + + * unidata/unidata-gen.el (unidata-prop-alist): New properties + 'paired-bracket' and 'bracket-type', in support of the UBA 6.3. + (unidata-gen-table): Support PROP-IDX being a function. + (unidata-describe-bidi-bracket-type, unidata-gen-brackets-list) + (unidata-gen-bracket-type-list): New functions. + (unidata-check): Support checking the 'bracket-type' attribute. + (unidata-gen-files): Don't create backups for uni-*.el files. + + * unidata/Makefile.in (${unidir}/charprop.el): Depend on + BidiMirroring.txt and BidiBrackets.txt. + + * unidata/BidiBrackets.txt: New file, from Unicode. + +2014-10-13 Glenn Morris + + * authors.el (authors-aliases, authors-fixed-case) + (authors-obsolete-files-regexps): Additions. + (authors-no-scan-regexps): New constant. + (authors-no-scan-file-p): New function. + (authors): Respect authors-no-scan-file-p. + +2014-10-12 Paul Eggert + + Fix putenv race conditions with undefined behavior (Bug#8705). + * merge-gnulib (GNULIB_MODULES): Add time_r, since Emacs now + calls localtime_r and gmtime_r directly. + +2014-10-07 Glenn Morris + + * unidata/Makefile.in: Check for deleted uni- files. (Bug#18489) + (all): Use unifiles rather than charprop.el. + (FORCE): New variable and phony rule. + (${unidir}/charprop.el): Respect FORCE. + (unifiles): New rule. + + * unidata/Makefile.in (unidir): Rename from DSTDIR. Change all uses. + (charprop.el, install): Remove rules. + (clean): Simplify. + +2014-10-04 Glenn Morris + + * authors.el (authors-renamed-files-alist): Add package-x-test.el + +2014-10-01 Stefan Monnier + + * unidata/unidata-gen.el (unidata-gen-table-word-list): Use alist-get + and cl-incf. + +2014-09-08 Eli Zaretskii + + * unidata/unidata-gen.el (unidata-check): Bring this function up + to date with the currently supported methods of generating Unicode + property tables. Add a comment with a description how to invoke + the check. Update the copyright years in the reference to the + Unicode data files we use. + +2014-08-30 Paul Eggert + + Vector-sorting fixes (Bug#18361). + * merge-gnulib (GNULIB_MODULES): Add vla. + +2014-08-30 Eli Zaretskii + + * authors.el (authors): Fix last change so it works for MS-Windows + as well. + +2014-08-29 Michael Albinus + + * authors.el (authors): Use LOCALE argument of `string-collate-lessp'. + +2014-08-28 Michael Albinus + + * authors.el (authors-aliases): Addition. + +2014-08-26 Glenn Morris + + * authors.el (authors-ignored-files, authors-valid-file-names) + (authors-renamed-files-alist): Additions. + (authors-renamed-files-alist): Revert 2014-08-09 change. + (authors): Sort authors in utf-8 order. (Bug#2263) + +2014-08-09 Reuben Thomas + + * notes/copyright: Remove mention of msdos/is_exec.c and + sigaction.c. + * authors.el (authors-renamed-files-alist): Remove is_exec.c. + +2014-08-07 Reuben Thomas + + * notes/exit-value: Remove specific discussion of VMS. + +2014-08-07 Reuben Thomas + + Refer to MS-DOS using the same name everywhere. + + * FOR-RELEASE: ``MS-DOG'', ``MSDOG'' and ``msdog'' become + ``MS-DOS''. + * MAINTAINERS: ditto. + 2014-07-14 Paul Eggert Use binary-io module, O_BINARY, and "b" flag (Bug#18006). @@ -1934,7 +2172,7 @@ 2006-04-17 Ramprasad B - * ./* (Copyright): Updated Copyright year(s). + * ./* (Copyright): Update Copyright year(s). 2006-02-24 Reiner Steib diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index b5bf6739a86..bdd26947e4b 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -202,8 +202,8 @@ mark.texi mini.texi misc.texi modes.texi -msdog.texi -msdog-xtra.texi +msdos.texi +msdos-xtra.texi mule.texi m-x.texi package.texi diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS index efcc63081b5..57f199b27c2 100644 --- a/admin/MAINTAINERS +++ b/admin/MAINTAINERS @@ -31,12 +31,13 @@ Eli Zaretskii src/msdos.[ch] src/dosfns.[ch] src/w16select.c + src/unexcoff.c lisp/term/internal.el lisp/term/pc-win.el lisp/dos-fns.el lisp/dos-w32.el lisp/dos-vars.el - doc/emacs/msdog.texi + doc/emacs/msdos.texi Kenichi Handa Mule @@ -80,14 +81,18 @@ Bastien Guerry Eli Zaretskii doc/* lispref/* - info/dir src/xfaces.c src/xdisp.c src/term.c src/dispnew.c + src/dispextern.h src/frame.c src/dired.c + src/unexw32.c + src/w32*.[ch] + src/window.c + nt/* lisp/arc-mode.el lisp/menu-bar.el @@ -97,6 +102,8 @@ Eli Zaretskii lisp/startup.el lisp/w32*.el + admin/unidata/* + Stefan Monnier src/intervals.c src/keyboard.c @@ -181,24 +188,10 @@ src/tparam.c src/undo.c src/unexaix.c src/unexalpha.c -src/unexcoff.c src/unexelf.c src/unexhp9k800.c -src/unexw32.c src/vm-limit.c -src/w32.c -src/w32console.c -src/w32fns.c -src/w32heap.c -src/w32inevt.c -src/w32menu.c -src/w32proc.c -src/w32reg.c -src/w32select.c -src/w32term.c -src/w32xfns.c src/widget.c -src/window.c src/xfns.c src/xmenu.c src/xrdb.c diff --git a/admin/admin.el b/admin/admin.el index 7af9ffa4177..f5e9646054e 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -94,79 +94,30 @@ Root must be the root of an Emacs source tree." (rx (and "AC_INIT" (1+ (not (in ?,))) ?, (0+ space) (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "doc/emacs/emacsver.texi" version - (rx (and "EMACSVER" (1+ space) - (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "doc/man/emacs.1" version - (rx (and ".TH EMACS" (1+ not-newline) - "GNU Emacs" (1+ space) - (submatch (1+ (in "0-9.")))))) + ;; No longer used, broken in multiple ways, updating version seems pointless. (set-version-in-file root "nt/config.nt" version (rx (and bol "#" (0+ blank) "define" (1+ blank) "VERSION" (1+ blank) "\"" (submatch (1+ (in "0-9.")))))) + ;; TODO: msdos could easily extract the version number from + ;; configure.ac with sed, rather than duplicating the information. (set-version-in-file root "msdos/sed2v2.inp" version (rx (and bol "/^#undef " (1+ not-newline) "define VERSION" (1+ space) "\"" (submatch (1+ (in "0-9.")))))) + ;; No longer used, broken in multiple ways, updating version seems pointless. (set-version-in-file root "nt/makefile.w32-in" version (rx (and "VERSION" (0+ space) "=" (0+ space) (submatch (1+ (in "0-9.")))))) - ;; nt/emacs.rc also contains the version number, but in an awkward - ;; format. It must contain four components, separated by commas, and - ;; in two places those commas are followed by space, in two other - ;; places they are not. - (let* ((version-components (append (split-string version "\\.") - '("0" "0"))) - (comma-version - (concat (car version-components) "," - (cadr version-components) "," - (cadr (cdr version-components)) "," - (cadr (cdr (cdr version-components))))) - (comma-space-version - (concat (car version-components) ", " - (cadr version-components) ", " - (cadr (cdr version-components)) ", " - (cadr (cdr (cdr version-components)))))) - (set-version-in-file root "nt/emacs.rc" comma-version - (rx (and "FILEVERSION" (1+ space) - (submatch (1+ (in "0-9,")))))) - (set-version-in-file root "nt/emacs.rc" comma-version - (rx (and "PRODUCTVERSION" (1+ space) - (submatch (1+ (in "0-9,")))))) - (set-version-in-file root "nt/emacs.rc" comma-space-version - (rx (and "\"FileVersion\"" (0+ space) ?, (0+ space) - ?\" (submatch (1+ (in "0-9, "))) "\\0\""))) - (set-version-in-file root "nt/emacs.rc" comma-space-version - (rx (and "\"ProductVersion\"" (0+ space) ?, - (0+ space) ?\" (submatch (1+ (in "0-9, "))) - "\\0\""))) - ;; Likewise for emacsclient.rc - (set-version-in-file root "nt/emacsclient.rc" comma-version - (rx (and "FILEVERSION" (1+ space) - (submatch (1+ (in "0-9,")))))) - (set-version-in-file root "nt/emacsclient.rc" comma-version - (rx (and "PRODUCTVERSION" (1+ space) - (submatch (1+ (in "0-9,")))))) - (set-version-in-file root "nt/emacsclient.rc" comma-space-version - (rx (and "\"FileVersion\"" (0+ space) ?, (0+ space) - ?\" (submatch (1+ (in "0-9, "))) "\\0\""))) - (set-version-in-file root "nt/emacsclient.rc" comma-space-version - (rx (and "\"ProductVersion\"" (0+ space) ?, - (0+ space) ?\" (submatch (1+ (in "0-9, "))) - "\\0\""))) - ;; Major version only. - (when (string-match "\\([0-9]\\{2,\\}\\)" version) - (setq version (match-string 1 version)) - (set-version-in-file root "src/msdos.c" version - (rx (and "Vwindow_system_version" (1+ not-newline) - ?\( (submatch (1+ (in "0-9"))) ?\)))) - (set-version-in-file root "etc/refcards/ru-refcard.tex" version - "\\\\newcommand{\\\\versionemacs}\\[0\\]\ -{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs") - (set-version-in-file root "etc/refcards/emacsver.tex" version - "\\\\def\\\\versionemacs\ -{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs"))) + ;; Major version only. + (when (string-match "\\([0-9]\\{2,\\}\\)" version) + (setq version (match-string 1 version)) + (set-version-in-file root "src/msdos.c" version + (rx (and "Vwindow_system_version" (1+ not-newline) + ?\( (submatch (1+ (in "0-9"))) ?\)))) + (set-version-in-file root "etc/refcards/ru-refcard.tex" version + "\\\\newcommand{\\\\versionemacs}\\[0\\]\ +{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")) (message "Setting version numbers...done")) ;; Note this makes some assumptions about form of short copyright. @@ -201,7 +152,7 @@ Root must be the root of an Emacs source tree." (set-version-in-file root "etc/refcards/ru-refcard.tex" copyright "\\\\newcommand{\\\\cyear}\\[0\\]\ {\\([0-9]\\{4\\}\\)}.+%.+copyright year") - (set-version-in-file root "etc/refcards/emacsver.tex" copyright + (set-version-in-file root "etc/refcards/emacsver.tex.in" copyright "\\\\def\\\\year\ {\\([0-9]\\{4\\}\\)}.+%.+copyright year")) (message "Setting copyrights...done")) @@ -609,6 +560,89 @@ style=\"text-align:left\">") (setq done t)))) (forward-line 1))))) + +(defconst make-manuals-dist-output-variables + `(("@\\(top_\\)?srcdir@" . ".") ; top_srcdir is wrong, but not used + ("^\\(\\(?:texinfo\\|buildinfo\\|emacs\\)dir *=\\).*" . "\\1 .") + ("^\\(clean:.*\\)" . "\\1 infoclean") + ("@MAKEINFO@" . "makeinfo") + ("@MKDIR_P@" . "mkdir -p") + ("@INFO_EXT@" . ".info") + ("@INFO_OPTS@" . "") + ("@SHELL@" . "/bin/bash") + ("@prefix@" . "/usr/local") + ("@datarootdir@" . "${prefix}/share") + ("@datadir@" . "${datarootdir}") + ("@PACKAGE_TARNAME@" . "emacs") + ("@docdir@" . "${datarootdir}/doc/${PACKAGE_TARNAME}") + ("@\\(dvi\\|html\\|pdf\\|ps\\)dir@" . "${docdir}") + ("@GZIP_PROG@" . "gzip") + ("@INSTALL@" . "install -c") + ("@INSTALL_DATA@" . "${INSTALL} -m 644") + ("@configure_input@" . "")) + "Alist of (REGEXP . REPLACEMENT) pairs for `make-manuals-dist'.") + +(defun make-manuals-dist--1 (root type) + "Subroutine of `make-manuals-dist'." + (let* ((dest (expand-file-name "manual" root)) + (default-directory (progn (make-directory dest t) + (file-name-as-directory dest))) + (version (with-temp-buffer + (insert-file-contents "../doc/emacs/emacsver.texi") + (re-search-forward "@set EMACSVER \\([0-9.]+\\)") + (match-string 1))) + (stem (format "emacs-%s-%s" (if (equal type "emacs") "manual" type) + version)) + (tarfile (format "%s.tar" stem))) + (message "Doing %s..." type) + (if (file-directory-p stem) + (delete-directory stem t)) + (make-directory stem) + (copy-file "../doc/misc/texinfo.tex" stem) + (or (equal type "emacs") (copy-file "../doc/emacs/emacsver.texi" stem)) + (dolist (file (directory-files (format "../doc/%s" type) t)) + (if (or (string-match-p "\\(\\.texi\\'\\|/ChangeLog\\|/README\\'\\)" file) + (and (equal type "lispintro") + (string-match-p "\\.\\(eps\\|pdf\\)\\'" file))) + (copy-file file stem))) + (with-temp-buffer + (let ((outvars make-manuals-dist-output-variables)) + (push `("@version@" . ,version) outvars) + (insert-file-contents (format "../doc/%s/Makefile.in" type)) + (dolist (cons outvars) + (while (re-search-forward (car cons) nil t) + (replace-match (cdr cons) t)) + (goto-char (point-min)))) + (let (ats) + (while (re-search-forward "@[a-zA-Z_]+@" nil t) + (setq ats t) + (message "Unexpanded: %s" (match-string 0))) + (if ats (error "Unexpanded configure variables in Makefile?"))) + (write-region nil nil (expand-file-name (format "%s/Makefile" stem)) + nil 'silent)) + (call-process "tar" nil nil nil "-cf" tarfile stem) + (delete-directory stem t) + (message "...created %s" tarfile))) + +;; Does anyone actually use these tarfiles? +(defun make-manuals-dist (root &optional type) + "Make the standalone manual source tarfiles for the Emacs webpage. +ROOT should be the root of an Emacs source tree. +Interactively with a prefix argument, prompt for TYPE. +Optional argument TYPE is type of output (nil means all)." + (interactive (let ((root (read-directory-name "Emacs root directory: " + source-directory nil t))) + (list root + (if current-prefix-arg + (completing-read + "Type: " + '("emacs" "lispref" "lispintro" "misc")))))) + (unless (file-exists-p (expand-file-name "src/emacs.c" root)) + (user-error "%s doesn't seem to be the root of an Emacs source tree" root)) + (dolist (m '("emacs" "lispref" "lispintro" "misc")) + (if (member type (list nil m)) + (make-manuals-dist--1 root m)))) + ;; Stuff to check new `defcustom's got :version tags. ;; Adapted from check-declare.el. diff --git a/admin/authors.el b/admin/authors.el index 3a552c6c1ef..42f3bcd799d 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -92,6 +92,7 @@ files.") ("Joseph Arceneaux" "Joe Arceneaux") ("Joseph M. Kelsey" "Joe Kelsey") ; FIXME ? ("Juan León Lahoz García" "Juan-Leon Lahoz Garcia") + ("Jürgen Hötzel" "Juergen Hoetzel") ("K. Shane Hartman" "Shane Hartman") ("Kai Großjohann" "Kai Grossjohann") ("Karl Berry" "K. Berry") @@ -120,6 +121,7 @@ files.") ("Mikio Nakajima" "Nakajima Mikio") ("Nelson Jose dos Santos Ferreira" "Nelson Ferreira") ("Noorul Islam" "Noorul Islam K M") +;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME? ("Paul Eggert" "Paul R\\. Eggert") ("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik") ("Pavel Kobiakov" "Pavel Kobyakov") @@ -142,6 +144,7 @@ files.") ("Sam Steingold" "Sam Shteingold") ("Satyaki Das" "Indexed search by Satyaki Das") ("Sébastien Vauban" "Sebastien Vauban") + ("Sergey Litvinov" "Litvinov Sergey") ;; There are other Stefans. ;;; ("Stefan Monnier" "Stefan") ("Steven L. Baur" "SL Baur" "Steven L Baur") @@ -177,11 +180,13 @@ If REALNAME is nil, ignore that author.") ;; FIXME seems it would be less fragile to check for O', Mc, etc. (defconst authors-fixed-case - '("Brian van den Broek" + '("Barry O'Reilly" + "Brian van den Broek" "Bryan O'Sullivan" "Christian von Roques" "Christophe de Dinechin" "Craig McDaniel" + "Daniel LaLiberte" "David J. MacKenzie" "David McCabe" "David O'Toole" @@ -189,12 +194,16 @@ If REALNAME is nil, ignore that author.") "Dominique de Waleffe" "Edward O'Connor" "Exal de Jesus Garcia Carrillo" + "George McNinch" "Greg McGary" "Hans de Graaff" + "Ivan Vilata i Balaguer" + "Jae-hyeon Park" "James TD Smith" "Jay McCarthy" "Joel N. Weber II" "Matt McClure" + "Mike McLean" "Michael McNamara" "Mike McEwan" "Nelson Jose dos Santos Ferreira" @@ -202,10 +211,13 @@ If REALNAME is nil, ignore that author.") "Peter O'Gorman" "Piet van Oostrum" "Roland McGrath" + "Santiago Payà i Miralta" "Sean O'Halpin" "Sean O'Rourke" + "Shun-ichi Goto" "Thomas DeWeese" - "Tijs van Bakel") + "Tijs van Bakel" + "Yu-ji Hosokawa") "List of authors whose names cannot be simply capitalized.") (defvar authors-public-domain-files @@ -230,6 +242,7 @@ If REALNAME is nil, ignore that author.") '(".*loaddefs.el$" ; not obsolete, but auto-generated "\\.\\(cvs\\|git\\)ignore$" ; obsolete or uninteresting "\\.arch-inventory$" + "automated/data/" ; not interesting ;; TODO lib/? Matches other things? "build-aux/" "m4/" "Emacs.xcodeproj" "mapfiles" "\\.map\\'" "preferences\\.\\(nib\\|gorm\\)" @@ -239,6 +252,11 @@ gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'") "List of regexps matching obsolete files. Changes to files matching one of the regexps in this list are not listed.") +(defconst authors-no-scan-regexps + '("etc/nxml/" + "automated/data/") + "Lists of regexps matching files not to scan for authorship.") + (defconst authors-ignored-files '("external-lisp" "lock" "share-lib" "local-lisp" @@ -283,6 +301,7 @@ Changes to files matching one of the regexps in this list are not listed.") "images/icons/allout-widgets-dark-bg" "images/icons/allout-widgets-light-bg" ;; Never had any meaningful changes logged, now deleted: + "lib/stdarg.in.h" "lib/stdbool.in.h" "unidata/bidimirror.awk" "unidata/biditype.awk" "split-man" "Xkeymap.txt" "ms-7bkermit" "ulimit.hack" "gnu-hp300" "refcard.bit" "ledit.l" "forms.README" "forms-d2.dat" @@ -575,9 +594,10 @@ Changes to files in this list are not listed.") "README" ;; There were a few of these, not just the generated top-level one. "configure" "config.h" + "is_exec.c" "sigaction.c" ;; nt/ "ebuild.bat" "install.bat" "fast-install.bat" - "debug.bat.in" "emacs.bat.in" + "debug.bat.in" "emacs.bat.in" "addsection.c" "inc/sys/dir.h" "inc/gettext.h" ".gdbinit-union" "alloca.s" @@ -631,6 +651,8 @@ Changes to files in this list are not listed.") "mh-exec.el" "mh-init.el" "mh-customize.el" "net/zone-mode.el" "xesam.el" "term/mac-win.el" "sup-mouse.el" + "term/vt102.el" "term/vt201.el" "term/vt220.el" "term/vt300.el" + "term/vt320.el" "term/vt400.el" "term/vt420.el" "url-https.el" "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el" "org-mks.el" "org-remember.el" "org-xoxo.el" "org-docbook.el" @@ -638,6 +660,7 @@ Changes to files in this list are not listed.") "org-exp-blocks.el" ; maybe this is ob-exp now? dunno "org-lparse.el" "org-special-blocks.el" "org-taskjuggler.el" + "progmodes/cap-words.el" ;; gnus "nnwfm.el" "nnlistserv.el" "nnkiboze.el" "nndb.el" "nnsoup.el" "netrc.el" "password.el" "sasl-cram.el" "sasl-digest.el" "sasl-ntlm.el" @@ -668,7 +691,7 @@ Changes to files in this list are not listed.") "etags-vmslib.c" "fakemail.c" "getdate.c" "getopt.h" "getopt1.c" "getopt_.h" "getopt_int.h" "gettext.h" "leditcfns.c" "loadst.c" "make-path.c" "qsort.c" "sorted-doc.c" "tcp.c" "timer.c" "wakeup.c" - "yow.c" + "yow.c" "grep-changelog" ;; etc/ "emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c" "test-distrib.c" "testfile" @@ -707,6 +730,8 @@ in the repository.") ("paths.h-dist" . "epaths.in") ("paths.h.in" . "epaths.in") ("paths.in" . "epaths.in") + ("emacs.rc" . "emacs.rc.in") + ("emacsclient.rc" . "emacsclient.rc.in") ("patch1" . "sed1.inp") ("INSTALL.MSYS" . "INSTALL") ("server.c" . "emacsserver.c") @@ -756,6 +781,13 @@ in the repository.") ;; Obsolete. ("emacs-lisp/assoc.el" . "assoc.el") ("emacs-lisp/cust-print.el" . "cust-print.el") + ("emacs-lisp/gulp.el" . "gulp.el") + ("emulation/crisp.el" . "crisp.el") + ("emulation/tpu-edt.el" . "tpu-edt.el") + ("emulation/tpu-extras.el" . "tpu-extras.el") + ("emulation/vi.el" . "vi.el") + ("emulation/vip.el" . "vip.el") + ("emulation/ws-mode.el" . "ws-mode.el") ("mail/mailpost.el" . "mailpost.el") ("play/bruce.el" . "bruce.el") ("play/yow.el" . "yow.el") @@ -769,6 +801,7 @@ in the repository.") ;; The one in lisp is eshell/eshell.el. ("eshell.el" . "automated/eshell.el") ("eshell/esh-test.el" . "automated/eshell.el") + ("automated/package-x-test.el" . "automated/package-test.el") ;; INSTALL-CVS -> .CVS -> .BZR -> .REPO ("INSTALL-CVS" . "INSTALL.REPO") ("INSTALL.CVS" . "INSTALL.REPO") @@ -787,6 +820,8 @@ in the repository.") ("emacs.tex" . "emacs.texi") ("faq.texi" . "efaq.texi") ("major.texi" . "modes.texi") + ("msdog-xtra.texi" . "msdos-xtra.texi") + ("msdog.texi" . "msdos.texi") ;; And from emacs/ to misc/ and back again. ("ns-emacs.texi" . "macos.texi") ("overrides.texi" . "gnus-overrides.texi") @@ -825,6 +860,8 @@ in the repository.") ("autogen/update_autogen" . "update_autogen") ;; Moved from etc/ to admin/. ("grammars" . "grammars") + ;; Moved from lisp/emacs-lisp/ to admin/. + ("emacs-lisp/authors.el" . "authors.el") ;; From etc to lisp/cedet/semantic/. ("grammars/bovine-grammar.el" . "bovine/grammar.el") ("grammars/wisent-grammar.el" . "wisent/grammar.el") @@ -1051,6 +1088,15 @@ from `authors-obsolete-files-regexps'." regexps (cdr regexps))) obsolete-p)) +(defun authors-no-scan-file-p (file) + "Return non-nil if FILE should not be scanned. +FILE is not scanned if it matches any of `authors-no-scan-regexps'." + (let (no-scan-p + (regexps authors-no-scan-regexps)) + (while (and regexps (not no-scan-p)) + (setq no-scan-p (string-match-p (car regexps) file) + regexps (cdr regexps))) + no-scan-p)) (defun authors-add (author file action table) "Record that AUTHOR worked on FILE. @@ -1282,8 +1328,9 @@ buffer *Authors Errors* containing references to unknown files." (authors-scan-change-log log table))) (let ((els (process-lines find-program root "-name" "*.el"))) (dolist (file els) - (message "Scanning %s..." file) - (authors-scan-el file table))) + (unless (authors-no-scan-file-p file) + (message "Scanning %s..." file) + (authors-scan-el file table)))) (message "Generating buffer %s..." buffer-name) (set-buffer (get-buffer-create buffer-name)) (erase-buffer) @@ -1297,7 +1344,11 @@ list of their contributions.\n") (maphash #'authors-add-to-author-list table) (setq authors-author-list (sort authors-author-list - (lambda (a b) (string-lessp (car a) (car b))))) + (lambda (a b) + (string-collate-lessp (car a) (car b) + (if (eq system-type 'windows-nt) + "enu_USA" + "en_US.UTF-8"))))) (dolist (a authors-author-list) (let ((author (car a)) (wrote (nth 1 a)) diff --git a/admin/charsets/.gitignore b/admin/charsets/.gitignore deleted file mode 100644 index ea375dc5915..00000000000 --- a/admin/charsets/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.map -*.el diff --git a/admin/check-doc-strings b/admin/check-doc-strings index a0b5acb623f..13e8b0cd8e7 100755 --- a/admin/check-doc-strings +++ b/admin/check-doc-strings @@ -18,7 +18,7 @@ formal parameters, docstrings, and lispref texi. This program is in the public domain.\n"; die $usage if @ARGV; -die $usage unless -r "src/alloc.c" && -d ".bzr" && -d "lisp"; +die $usage unless -r "src/alloc.c" && -d "lisp"; my %texi_funtype; my %texi_arglist; diff --git a/admin/gitmerge.el b/admin/gitmerge.el new file mode 100644 index 00000000000..206f12c08ad --- /dev/null +++ b/admin/gitmerge.el @@ -0,0 +1,525 @@ +;;; gitmerge.el --- help merge one Emacs branch into another + +;; Copyright (C) 2010-2014 Free Software Foundation, Inc. + +;; Authors: David Engster +;; Stefan Monnier + +;; Keywords: maint + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; Rewrite of bzrmerge.el, but using git. +;; +;; In a nutshell: For merging foo into master, do +;; +;; - 'git checkout master' in Emacs repository +;; - Start Emacs, cd to Emacs repository +;; - M-x gitmerge +;; - Choose branch 'foo' or 'origin/foo', depending on whether you +;; like to merge from a local tracking branch or from the remote +;; (does not make a difference if the local tracking branch is +;; up-to-date). +;; - Mark commits you'd like to skip, meaning to only merge their +;; metadata (merge strategy 'ours'). +;; - Hit 'm' to start merging. Skipped commits will be merged separately. +;; - If conflicts cannot be resolved automatically, you'll have to do +;; it manually. In that case, resolve the conflicts and restart +;; gitmerge, which will automatically resume. It will add resolved +;; files, commit the pending merge and continue merging the rest. +;; - Inspect master branch, and if everything looks OK, push. + +;;; Code: + +(require 'vc-git) +(require 'smerge-mode) + +(defvar gitmerge-skip-regexp + "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk\\|\ +Auto-commit" + "Regexp matching logs of revisions that might be skipped. +`gitmerge-missing' will ask you if it should skip any matches.") + +(defvar gitmerge-status-file (expand-file-name "gitmerge-status" + user-emacs-directory) + "File where missing commits will be saved between sessions.") + +(defvar gitmerge-ignore-branches-regexp + "origin/\\(\\(HEAD\\|master\\)$\\|\\(old-branches\\|other-branches\\)/\\)" + "Regexp matching branches we want to ignore.") + +(defface gitmerge-skip-face + '((t (:strike-through t))) + "Face for skipped commits.") + +(defconst gitmerge-default-branch "origin/emacs-24" + "Default for branch that should be merged.") + +(defconst gitmerge-buffer "*gitmerge*" + "Working buffer for gitmerge.") + +(defconst gitmerge-output-buffer "*gitmerge output*" + "Buffer for displaying git output.") + +(defconst gitmerge-warning-buffer "*gitmerge warnings*" + "Buffer where gitmerge will display any warnings.") + +(defvar gitmerge-log-regexp + "^\\([A-Z ]\\)\\s-*\\([0-9a-f]+\\) \\(.+?\\): \\(.*\\)$") + +(defvar gitmerge-mode-map + (let ((map (make-keymap))) + (define-key map [(l)] 'gitmerge-show-log) + (define-key map [(d)] 'gitmerge-show-diff) + (define-key map [(f)] 'gitmerge-show-files) + (define-key map [(s)] 'gitmerge-toggle-skip) + (define-key map [(m)] 'gitmerge-start-merge) + map) + "Keymap for gitmerge major mode.") + + +(defvar gitmerge-mode-font-lock-keywords + `((,gitmerge-log-regexp + (1 font-lock-warning-face) + (2 font-lock-constant-face) + (3 font-lock-builtin-face) + (4 font-lock-comment-face)))) + +(defvar gitmerge--commits nil) +(defvar gitmerge--from nil) + +(defun gitmerge-get-sha1 () + "Get SHA1 from commit at point." + (save-excursion + (goto-char (point-at-bol)) + (when (looking-at "^[A-Z ]\\s-*\\([a-f0-9]+\\)") + (match-string 1)))) + +(defun gitmerge-show-log () + "Show log of commit at point." + (interactive) + (save-selected-window + (let ((commit (gitmerge-get-sha1))) + (when commit + (pop-to-buffer (get-buffer-create gitmerge-output-buffer)) + (fundamental-mode) + (erase-buffer) + (call-process "git" nil t nil "log" "-1" commit) + (goto-char (point-min)) + (gitmerge-highlight-skip-regexp))))) + +(defun gitmerge-show-diff () + "Show diff of commit at point." + (interactive) + (save-selected-window + (let ((commit (gitmerge-get-sha1))) + (when commit + (pop-to-buffer (get-buffer-create gitmerge-output-buffer)) + (erase-buffer) + (call-process "git" nil t nil "diff-tree" "-p" commit) + (goto-char (point-min)) + (diff-mode))))) + +(defun gitmerge-show-files () + "Show changed files of commit at point." + (interactive) + (save-selected-window + (let ((commit (gitmerge-get-sha1))) + (when commit + (pop-to-buffer (get-buffer-create gitmerge-output-buffer)) + (erase-buffer) + (fundamental-mode) + (call-process "git" nil t nil "diff" "--name-only" (concat commit "^!")) + (goto-char (point-min)))))) + +(defun gitmerge-toggle-skip () + "Toggle skipping of commit at point." + (interactive) + (let ((commit (gitmerge-get-sha1)) + skip) + (when commit + (save-excursion + (goto-char (point-at-bol)) + (when (looking-at "^\\([A-Z ]\\)\\s-*\\([a-f0-9]+\\)") + (setq skip (string= (match-string 1) " ")) + (goto-char (match-beginning 2)) + (gitmerge-handle-skip-overlay skip) + (dolist (ct gitmerge--commits) + (when (string-match commit (car ct)) + (setcdr ct (when skip "M")))) + (goto-char (point-at-bol)) + (setq buffer-read-only nil) + (delete-char 1) + (insert (if skip "M" " ")) + (setq buffer-read-only t)))))) + +(defun gitmerge-highlight-skip-regexp () + "Highlight strings that match `gitmerge-skip-regexp'." + (save-excursion + (while (re-search-forward gitmerge-skip-regexp nil t) + (put-text-property (match-beginning 0) (match-end 0) + 'face 'font-lock-warning-face)))) + +(defun gitmerge-missing (from) + "Return the list of revisions that need to be merged from FROM. +Will detect a default set of skipped revision by looking at +cherry mark and search for `gitmerge-skip-regexp'. The result is +a list with entries of the form (SHA1 . SKIP), where SKIP denotes +if and why this commit should be skipped." + (let (commits) + ;; Go through the log and remember all commits that match + ;; `gitmerge-skip-regexp' or are marked by --cherry-mark. + (with-temp-buffer + (call-process "git" nil t nil "log" "--cherry-mark" from + (concat "^" (car (vc-git-branches)))) + (goto-char (point-max)) + (while (re-search-backward "^commit \\(.+\\) \\([0-9a-f]+\\).*" nil t) + (let ((cherrymark (match-string 1)) + (commit (match-string 2))) + (push (list commit) commits) + (if (string= cherrymark "=") + ;; Commit was recognized as backported by cherry-mark. + (setcdr (car commits) "C") + (save-excursion + (let ((case-fold-search t)) + (while (not (looking-at "^\\s-+[^ ]+")) + (forward-line)) + (when (re-search-forward gitmerge-skip-regexp nil t) + (setcdr (car commits) "R")))))) + (delete-region (point) (point-max)))) + (nreverse commits))) + +(defun gitmerge-setup-log-buffer (commits from) + "Create the buffer for choosing commits." + (with-current-buffer (get-buffer-create gitmerge-buffer) + (erase-buffer) + (call-process "git" nil t nil "log" + "--pretty=format:%h %<(20,trunc) %an: %<(100,trunc) %s" + from (concat "^" (car (vc-git-branches)))) + (goto-char (point-min)) + (while (looking-at "^\\([a-f0-9]+\\)") + (let ((skipreason (gitmerge-skip-commit-p (match-string 1) commits))) + (if (null skipreason) + (insert " ") + (insert skipreason " ") + (gitmerge-handle-skip-overlay t))) + (forward-line)) + (current-buffer))) + +(defun gitmerge-handle-skip-overlay (skip) + "Create or delete overlay on SHA1, depending on SKIP." + (when (looking-at "[0-9a-f]+") + (if skip + (let ((ov (make-overlay (point) + (match-end 0)))) + (overlay-put ov 'face 'gitmerge-skip-face)) + (remove-overlays (point) (match-end 0) + 'face 'gitmerge-skip-face)))) + +(defun gitmerge-skip-commit-p (commit skips) + "Tell whether COMMIT should be skipped. +COMMIT is an (possibly abbreviated) SHA1. SKIPS is list of +cons'es with commits that should be skipped and the reason. +Return value is string which denotes reason, or nil if commit +should not be skipped." + (let (found skip) + (while (and (setq skip (pop skips)) + (not found)) + (when (string-match commit (car skip)) + (setq found (cdr skip)))) + found)) + +(defun gitmerge-resolve (file) + "Try to resolve conflicts in FILE with smerge. +Returns non-nil if conflicts remain." + (unless (file-exists-p file) (error "Gitmerge-resolve: Can't find %s" file)) + (with-demoted-errors + (let ((exists (find-buffer-visiting file))) + (with-current-buffer (let ((enable-local-variables :safe) + (enable-local-eval nil)) + (find-file-noselect file)) + (if (buffer-modified-p) + (user-error "Unsaved changes in %s" (current-buffer))) + (save-excursion + (cond + ((derived-mode-p 'change-log-mode) + ;; Fix up dates before resolving the conflicts. + (goto-char (point-min)) + (let ((diff-auto-refine-mode nil)) + (while (re-search-forward smerge-begin-re nil t) + (smerge-match-conflict) + (smerge-ensure-match 3) + (let ((start1 (match-beginning 1)) + (end1 (match-end 1)) + (start3 (match-beginning 3)) + (end3 (copy-marker (match-end 3) t))) + (goto-char start3) + (while (re-search-forward change-log-start-entry-re end3 t) + (let* ((str (match-string 0)) + (newstr (save-match-data + (concat (add-log-iso8601-time-string) + (when (string-match " *\\'" str) + (match-string 0 str)))))) + (replace-match newstr t t))) + ;; change-log-resolve-conflict prefers to put match-1's + ;; elements first (for equal dates), whereas we want to put + ;; match-3's first. + (let ((match3 (buffer-substring start3 end3)) + (match1 (buffer-substring start1 end1))) + (delete-region start3 end3) + (goto-char start3) + (insert match1) + (delete-region start1 end1) + (goto-char start1) + (insert match3))))) + ;; (pop-to-buffer (current-buffer)) (debug 'before-resolve) + )) + ;; Try to resolve the conflicts. + (cond + ((member file '("configure" "lisp/ldefs-boot.el" + "lisp/emacs-lisp/cl-loaddefs.el")) + ;; We are in the file's buffer, so names are relative. + (call-process "git" nil t nil "checkout" "--" + (file-name-nondirectory file)) + (revert-buffer nil 'noconfirm)) + (t + (goto-char (point-max)) + (while (re-search-backward smerge-begin-re nil t) + (save-excursion + (ignore-errors + (smerge-match-conflict) + (smerge-resolve)))) + ;; (when (derived-mode-p 'change-log-mode) + ;; (pop-to-buffer (current-buffer)) (debug 'after-resolve)) + (save-buffer))) + (goto-char (point-min)) + (prog1 (re-search-forward smerge-begin-re nil t) + (unless exists (kill-buffer)))))))) + +(defun gitmerge-commit-message (beg end skip branch) + "Create commit message for merging BEG to END from BRANCH. +SKIP denotes whether those commits are actually skipped. If END +is nil, only the single commit BEG is merged." + (with-temp-buffer + (insert "Merge from " branch "\n\n" + (if skip + (concat "The following commit" + (if end "s were " " was ") + "skipped:\n\n") + "")) + (apply 'call-process "git" nil t nil "log" "--oneline" + (if end (list (concat beg "~.." end)) + `("-1" ,beg))) + (insert "\n") + (buffer-string))) + +(defun gitmerge-apply (missing from) + "Merge commits in MISSING from branch FROM. +MISSING must be a list of SHA1 strings." + (with-current-buffer (get-buffer-create gitmerge-output-buffer) + (erase-buffer) + (let* ((skip (cdar missing)) + (beg (car (pop missing))) + end commitmessage) + ;; Determine last revision with same boolean skip status. + (while (and missing + (eq (null (cdar missing)) + (null skip))) + (setq end (car (pop missing)))) + (setq commitmessage + (gitmerge-commit-message beg end skip from)) + (message "%s %s%s" + (if skip "Skipping" "Merging") + (substring beg 0 6) + (if end (concat ".." (substring end 0 6)) "")) + (unless end + (setq end beg)) + (unless (zerop + (apply 'call-process "git" nil t nil "merge" "--no-ff" + (append (when skip '("-s" "ours")) + `("-m" ,commitmessage ,end)))) + (gitmerge-write-missing missing from) + (gitmerge-resolve-unmerged))) + missing)) + +(defun gitmerge-resolve-unmerged () + "Resolve all files that are unmerged. +Throw an user-error if we cannot resolve automatically." + (with-current-buffer (get-buffer-create gitmerge-output-buffer) + (erase-buffer) + (let (files conflicted) + ;; List unmerged files + (if (not (zerop + (call-process "git" nil t nil + "diff" "--name-only" "--diff-filter=U"))) + (error "Error listing unmerged files. Resolve manually.") + (goto-char (point-min)) + (while (not (eobp)) + (push (buffer-substring (point) (line-end-position)) files) + (forward-line)) + (dolist (file files) + (if (gitmerge-resolve file) + ;; File still has conflicts + (setq conflicted t) + ;; Mark as resolved + (call-process "git" nil t nil "add" file))) + (when conflicted + (with-current-buffer (get-buffer-create gitmerge-warning-buffer) + (erase-buffer) + (insert "For the following files, conflicts could\n" + "not be resolved automatically:\n\n") + (call-process "git" nil t nil + "diff" "--name-only" "--diff-filter=U") + (insert "\nResolve the conflicts manually, then run gitmerge again." + "\nNote:\n - You don't have to add resolved files or " + "commit the merge yourself (but you can)." + "\n - You can safely close this Emacs session and do this " + "in a new one." + "\n - When running gitmerge again, remember that you must " + "that from within the Emacs repo.\n") + (pop-to-buffer (current-buffer))) + (user-error "Resolve the conflicts manually")))))) + +(defun gitmerge-repo-clean () + "Return non-nil if repository is clean." + (with-temp-buffer + (call-process "git" nil t nil + "diff" "--staged" "--name-only") + (call-process "git" nil t nil + "diff" "--name-only") + (zerop (buffer-size)))) + +(defun gitmerge-maybe-resume () + "Check if we have to resume a merge. +If so, add no longer conflicted files and commit." + (let ((mergehead (file-exists-p + (expand-file-name ".git/MERGE_HEAD" default-directory))) + (statusexist (file-exists-p gitmerge-status-file))) + (when (and mergehead (not statusexist)) + (user-error "Unfinished merge, but no record of a previous gitmerge run")) + (when (and (not mergehead) + (not (gitmerge-repo-clean))) + (user-error "Repository is not clean")) + (when statusexist + (if (not (y-or-n-p "Resume merge? ")) + (progn + (delete-file gitmerge-status-file) + ;; No resume. + nil) + (message "OK, resuming...") + (gitmerge-resolve-unmerged) + ;; Commit the merge. + (when mergehead + (with-current-buffer (get-buffer-create gitmerge-output-buffer) + (erase-buffer) + (unless (zerop (call-process "git" nil t nil + "commit" "--no-edit")) + (error "Git error during merge - fix it manually")))) + ;; Successfully resumed. + t)))) + +(defun gitmerge-get-all-branches () + "Return list of all branches, including remotes." + (with-temp-buffer + (unless (zerop (call-process "git" nil t nil + "branch" "-a")) + (error "Git error listing remote branches")) + (goto-char (point-min)) + (let (branches branch) + (while (not (eobp)) + (when (looking-at "^[^\\*]\\s-*\\(?:remotes/\\)?\\(.+\\)$") + (setq branch (match-string 1)) + (unless (string-match gitmerge-ignore-branches-regexp branch) + (push branch branches))) + (forward-line)) + (nreverse branches)))) + +(defun gitmerge-write-missing (missing from) + "Write list of commits MISSING into `gitmerge-status-file'. +Branch FROM will be prepended to the list." + (with-current-buffer + (find-file-noselect gitmerge-status-file) + (erase-buffer) + (insert + (prin1-to-string (append (list from) missing)) + "\n") + (save-buffer) + (kill-buffer))) + +(defun gitmerge-read-missing () + "Read list of missing commits from `gitmerge-status-file'." + (with-current-buffer + (find-file-noselect gitmerge-status-file) + (unless (zerop (buffer-size)) + (prog1 (read (buffer-string)) + (kill-buffer))))) + +(define-derived-mode gitmerge-mode special-mode "gitmerge" + "Major mode for Emacs branch merging." + (set-syntax-table text-mode-syntax-table) + (setq buffer-read-only t) + (setq-local truncate-lines t) + (setq-local font-lock-defaults '(gitmerge-mode-font-lock-keywords))) + +(defun gitmerge (from) + "Merge from branch FROM into `default-directory'." + (interactive + (if (not (vc-git-root default-directory)) + (user-error "Not in a git tree") + (let ((default-directory (vc-git-root default-directory))) + (list + (if (gitmerge-maybe-resume) + 'resume + (completing-read "Merge branch: " (gitmerge-get-all-branches) + nil t gitmerge-default-branch)))))) + (let ((default-directory (vc-git-root default-directory))) + (if (eq from 'resume) + (progn + (setq gitmerge--commits (gitmerge-read-missing)) + (setq gitmerge--from (pop gitmerge--commits)) + ;; Directly continue with the merge. + (gitmerge-start-merge)) + (setq gitmerge--commits (gitmerge-missing from)) + (setq gitmerge--from from) + (when (null gitmerge--commits) + (user-error "Nothing to merge")) + (with-current-buffer + (gitmerge-setup-log-buffer gitmerge--commits gitmerge--from) + (goto-char (point-min)) + (insert (propertize "Commands: " 'font-lock-face 'bold) + "(s) Toggle skip, (l) Show log, (d) Show diff, " + "(f) Show files, (m) Start merge\n" + (propertize "Flags: " 'font-lock-face 'bold) + "(C) Detected backport (cherry-mark), (R) Log matches " + "regexp, (M) Manually picked\n\n") + (gitmerge-mode) + (pop-to-buffer (current-buffer)))))) + +(defun gitmerge-start-merge () + (interactive) + (when (not (vc-git-root default-directory)) + (user-error "Not in a git tree")) + (let ((default-directory (vc-git-root default-directory))) + (while gitmerge--commits + (setq gitmerge--commits + (gitmerge-apply gitmerge--commits gitmerge--from))) + (when (file-exists-p gitmerge-status-file) + (delete-file gitmerge-status-file)) + (message "Merging from %s...done" gitmerge--from))) + +(provide 'gitmerge) + +;;; gitmerge.el ends here diff --git a/admin/grammars/c.by b/admin/grammars/c.by index 0fd8a33f25a..f6015490939 100644 --- a/admin/grammars/c.by +++ b/admin/grammars/c.by @@ -64,6 +64,7 @@ %token PLUS "\\`[+]\\'" %token MINUS "\\`[-]\\'" %token BANG "\\`[!]\\'" +%token QUESTION "\\`[?]\\'" %token EQUAL "\\`[=]\\'" %token LESS "\\`[<]\\'" %token GREATER "\\`[>]\\'" @@ -590,10 +591,12 @@ template-type | declmods typeformbase cv-declmods opt-stars opt-ref variablearg-opt-name (TYPE-TAG (car $2) nil nil nil + :template-specifier (plist-get (nth 2 $2) :template-specifier) :constant-flag (if (member "const" (append $1 $3)) t nil) :typemodifiers (delete "const" (append $1 $3)) :reference (car ,$5) :pointer (car $4) + :typevar (car $6) ) ; @@ -832,7 +835,7 @@ opt-initializers opt-post-fcn-modifiers : post-fcn-modifiers opt-post-fcn-modifiers - ( ,(cons ,$1 $2) ) + ( ,(cons ,(car $1) $2) ) | ;;EMPTY ( nil ) ; @@ -1206,7 +1209,9 @@ expr-binop ;; Use expression for parsing only. Don't actually return anything ;; for now. Hopefully we can fix this later. expression - : unaryexpression expr-binop unaryexpression + : unaryexpression QUESTION unaryexpression COLON unaryexpression + ( (identity start) (identity end) ) + | unaryexpression expr-binop unaryexpression ( (identity start) (identity end) ) | unaryexpression ( (identity start) (identity end) ) diff --git a/admin/grammars/scheme.by b/admin/grammars/scheme.by index cceec0914f6..16b67a3db4b 100644 --- a/admin/grammars/scheme.by +++ b/admin/grammars/scheme.by @@ -25,6 +25,7 @@ %token DEFINE "define" %token DEFINE-MODULE "define-module" +%token MODULE "module" %token LOAD "load" %put DEFINE summary "Function: (define symbol expression)" @@ -37,36 +38,50 @@ %% scheme : semantic-list - (EXPAND $1 scheme-list) + ( ,(let ((expand (EXPAND $1 scheme-list))) + (cond + ((semantic-tag-of-class-p expand 'module) + (TYPE-TAG (semantic-tag-name expand) + "module" + (EXPANDFULL $1 scheme) + nil) ;; Module contains more definitions like a type + ) + (t + expand)))) ; -scheme-list : OPENPAREN scheme-in-list CLOSEPAREN +scheme-list : OPENPAREN scheme-in-list ( ,$2 ) ; + scheme-in-list: DEFINE symbol expression (VARIABLE-TAG $2 nil $3 ) - | DEFINE name-args opt-doc sequence + | DEFINE name-args opt-doc (FUNCTION-TAG (car ,$2) nil (cdr ,$2) ) | DEFINE-MODULE name-args (PACKAGE-TAG (nth (length $2) $2 ) nil) + | MODULE symbol + (TAG $1 'module :members nil) | LOAD string (INCLUDE-TAG (file-name-nondirectory (read $2)) (read $2) ) - | symbol + | symbol sequence (CODE-TAG $1 nil) ; name-args: semantic-list - (EXPAND $1 name-arg-expand) + (EXPAND $1 name-arg-list) ; -name-arg-expand : open-paren name-arg-expand +name-arg-list : OPENPAREN name-arg-expand ( ,$2 ) - | symbol name-arg-expand - ( ,(cons $1 ,$2) ) - | ;; EMPTY - ( ) - ; + ; + +name-arg-expand: symbol name-arg-expand + ( ,(cons $1 ,$2) ) + | ;; EMPTY + ( ) + ; opt-doc : string | ;; EMPTY @@ -83,3 +98,4 @@ expression : symbol ; ;;; scheme.by ends here + diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index a2e8a9e7da3..8f8b031ba2f 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -7,8 +7,7 @@ Steps to take before starting on the first pretest in any release sequence: 0. The release branch (e.g. emacs-24) should already have been made and you should use it for all that follows. Diffs from this - branch should be going to the emacs-diffs mailing list (see - admin/notes/bzr section on bzr-email plugin). + branch should be going to the emacs-diffs mailing list. 1. Decide on versions of automake and autoconf, and ensure you will have them available for the duration of the release process. @@ -24,8 +23,8 @@ Steps to take before starting on the first pretest in any release sequence: General steps (for each step, check for possible errors): -1. `bzr update' (for a bound branch), or `bzr pull'. - bzr status # check for locally modified files +1. git pull # fetch from the repository + git status # check for locally modified files 2. Regenerate the etc/AUTHORS file: M-: (require 'authors) RET @@ -66,9 +65,8 @@ General steps (for each step, check for possible errors): 5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed - by M-x set-version. Use a commit log message that bzrmerge.el - will ignore (eg "Bump version..."). - For a release, also commit the ChangeLog files in all directories. + by M-x set-version. For a release, also commit the ChangeLog + files in all directories. If someone else made a commit between step 1 and now, you need to repeat from step 4 onwards. (You can commit the files @@ -84,7 +82,7 @@ General steps (for each step, check for possible errors): If this is the first pretest of a major release, just comparing with the previous release may overlook many new files. You can try - something like `find . | sort' in a clean bzr tree, and compare the + something like `find . | sort' in a clean repository, and compare the results against the new tar contents. 7. tar -xf emacs-NEW.tar; cd emacs-NEW @@ -96,7 +94,7 @@ General steps (for each step, check for possible errors): M-x ediff. Especially check that Info files aren't built, and that no autotools (autoconf etc) run. -8. cd EMACS_ROOT_DIR && bzr tag TAG +8. cd EMACS_ROOT_DIR && git tag -a TAG && git push origin tag TAG TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. 9. Decide what compression schemes to offer. @@ -149,13 +147,15 @@ General steps (for each step, check for possible errors): 11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org. For a pretest, also bcc: platform-testers@gnu.org. + For a release, also bcc: info-gnu@gnu.org. (The reason for using bcc: is to make it less likely that people will followup on the wrong list.) See the info-gnu-emacs mailing list archives for the form of past announcements. The first pretest announcement, and the release announcement, should have more detail. -12. For a release, update the Emacs homepage in the web repository. - Also update history.html, and add the new NEWS file as NEWS.xx.y. +12. For a release, update the Emacs homepage emacs.html in the web repository. + Also update history.html, and add the new NEWS file as news/NEWS.xx.y. Regenerate the html manuals (use make-manuals from admin.el). If there are new manuals, add appropriate index pages. + Delete any old manual pages that are no longer present. diff --git a/admin/merge-gnulib b/admin/merge-gnulib index a11b6e06d27..64514f79bdd 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -35,11 +35,11 @@ GNULIB_MODULES=' intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat - sig2str socklen stat-time stdalign stdio + sig2str socklen stat-time stdalign stddef stdio strftime strtoimax strtoumax symlink sys_stat - sys_time time timer-time timespec-add timespec-sub + sys_time time time_r timer-time timespec-add timespec-sub unsetenv update-copyright utimens - warnings + vla warnings ' GNULIB_TOOL_FLAGS=' diff --git a/admin/notes/BRANCH b/admin/notes/BRANCH deleted file mode 100644 index 9f09135f206..00000000000 --- a/admin/notes/BRANCH +++ /dev/null @@ -1,32 +0,0 @@ -You can view the available Emacs branches at - -http://bzr.savannah.gnu.org/r/emacs/ - -Development normally takes places on the trunk. -Sometimes specialized features are developed on separate branches -before possibly being merged to the trunk. - -Development is discussed on the emacs-devel mailing list. - -Sometime before the release of a new major version of Emacs (eg 23.2), -a "feature freeze" is imposed on the trunk. No new features may be -added after this point. This is usually some months before the release. - -Shortly before the release, a release branch is created, and the -trunk is then free for development. -For example, "emacs-23" for Emacs 23.2 and later, "EMACS_23_1_RC" for -23.1, "EMACS_22_BASE" for 22.x, and "EMACS_21_1_RC" for 21.x. - -Consult emacs-devel for exactly what kinds of changes are allowed -on what branch at any time. - -If you are looking at this file in a branch other than the trunk, -there may be some branch-specific documentation below this line. -________________________________________________________________________ - -* elpa - - This branch does not contain a copy of Emacs, but of the Emacs Lisp - package archive (elpa.gnu.org). See admin/notes/elpa for further - explanation, and the README file in the branch for usage - instructions. diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker index 7947b17973b..fd7bd08091a 100644 --- a/admin/notes/bugtracker +++ b/admin/notes/bugtracker @@ -463,10 +463,10 @@ time, rather than by increasing bug number "raw" = ? -** ChangeLog issues +** Change log issues *** When you fix a bug, it can be helpful to put the bug number in the -ChangeLog entry, for example: +change log entry, for example: * foo.el (foofunc): Fix the `foo' case. (Bug#123) @@ -475,7 +475,7 @@ obvious fix (e.g. a typo), there's no need to clutter the log with the bug number. Similarly, when you close a bug, it can be helpful to include the -relevant ChangeLog entry in the message to the bug tracker, so people +relevant change log entry in the message to the bug tracker, so people can see exactly what the fix was. *** bug-reference-mode @@ -487,44 +487,6 @@ the bug web-pages. http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html -** Bazaar stuff - -*** You can use `bzr commit --fixes debbugs:123' to mark that a commit fixes -Emacs bug 123. You will first need to add a line to one of your -configuration files, ~/.bazaar/bazaar.conf or ~/.bazaar/locations.conf: - -bugtracker_debbugs_url = http://debbugs.gnu.org/{id} - -Here "{id}" is a literal string, a placeholder that will be replaced -by the bug number you specify after `--fixes debbugs:' in the bzr -command line (123 in the example above). - -In the bazaar.conf file, this setting should go into the [DEFAULT] -section. - -In the locations.conf file, it should go into the branch-specific -configuration section for the branch where you want this to be in -effect. For example, if you want this to be in effect for the branch -located at `/home/projects/emacs/trunk', you need to have this in your -~/.bazaar/locations.conf file: - -[/home/projects/emacs/trunk] -bugtracker_debbugs_url = http://debbugs.gnu.org/{id} - -If you want to use this in all Emacs branches whose common parent is -`/home/projects/emacs', put the setting in the [/home/projects/emacs] -section. See "bzr help configuration" for more information about -the *.conf files, their location and formats. See "bzr help bugs" for -more information about the bugtracker_debbugs_url setting. - -See also log-edit-rewrite-fixes in .dir-locals.el. - -Note that all this does is add some metadata to the commit, it doesn't -actually mark the bug as closed in the tracker. You can see this -information with `bzr log', and it will show up as a link in a recent -loggerhead installation, or with some of the graphical frontends to -`bzr log'. - ** Gnus-specific voodoo *** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group diff --git a/admin/notes/bzr b/admin/notes/bzr deleted file mode 100644 index 13a3beb4ca8..00000000000 --- a/admin/notes/bzr +++ /dev/null @@ -1,398 +0,0 @@ -NOTES ON COMMITTING TO EMACS'S BAZAAR REPO -*- outline -*- - -* Install changes only on one branch, let them get merged elsewhere if needed. -In particular, install bug-fixes only on the release branch (if there -is one) and let them get synced to the trunk; do not install them by -hand on the trunk as well. E.g. if there is an active "emacs-24" branch -and you have a bug-fix appropriate for the next emacs-24.x release, -install it only on the emacs-24 branch, not on the trunk as well. - -Installing things manually into more than one branch makes merges more -difficult. - -http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01124.html - -The exception is, if you know that the change will be difficult to -merge to the trunk (eg because the trunk code has changed a lot). -In that case, it's helpful if you can apply the change to both trunk -and branch yourself (when committing the branch change, indicate -in the commit log that it should not be merged to the trunk; see below). - -* Backporting a bug-fix from the trunk to a branch (e.g. "emacs-24"). -Indicate in the commit log that there is no need to merge the commit -to the trunk. Anything that matches `bzrmerge-skip-regexp' will do; -eg start the commit message with "Backport:". This is helpful for the -person merging the release branch to the trunk. - -http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00262.html - -* Installing changes from your personal branches. -If your branch has only a single commit, or many different real -commits, it is fine to do a merge. If your branch has only a very -small number of "real" commits, but several "merge from trunks", it is -preferred that you take your branch's diff, apply it to the trunk, and -commit directly, not merge. This keeps the history cleaner. - -In general, when working on some feature in a separate branch, it is -preferable not to merge from trunk until you are done with the -feature. Unless you really need some change that was done on the -trunk while you were developing on the branch, you don't really need -those merges; just merge once, when you are done with the feature, and -Bazaar will take care of the rest. Bazaar is much better in this than -CVS, so interim merges are unnecessary. - -Or use shelves; or rebase; or do something else. See the thread for -yet another fun excursion into the exciting world of version control. - -http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00086.html - -* Installing changes from gnulib -Some of the files in Emacs are copied from gnulib. To synchronize -these files from the version of gnulib that you have checked out into -a sibling directory of your branch, type "admin/merge-gnulib"; this -will check out the latest version of gnulib if there is no sibling -directory already. It is a good idea to run "bzr status" afterwards, -so that if a gnulib module added a file, you can record the new file -using "bzr add". After synchronizing from gnulib, do a "make" in the -usual way. - -To change the set of gnulib modules, change the GNULIB_MODULES -variable in admin/merge-gnulib before running it. - -If you remove a gnulib module, or if a gnulib module -removes a file, then remove the corresponding files by hand. - -* How to merge changes from emacs-24 to trunk - -The following description uses bound branches, presumably it works in -a similar way with unbound ones. - -0) (This step is only necessary if using bzr older than 2.4.0.) -Get the bzr changelog_merge plugin: - -cd ~/.bazaar/plugins -bzr branch http://bazaar.launchpad.net/~spiv/bzr-changelog-merge/trunk changelog_merge - -This plugin should make merging ChangeLogs smoother. It merges new -entries to the top of the file, rather than trying to fit them in -mid-way through. Newer versions of the plugin should also be able to -deal with changes to *old* ChangeLog entries, that should not be -floated to the head of the file (see launchpad#723968). - -It is included in bzr from 2.4.0 onwards, so remember to delete the -copy in ~/.bazaar if you upgrade bzr. - -Maybe the default Emacs behavior without this plugin is better, -though, it's not clear yet. - -1) Get clean, up-to-date copies of the emacs-24 and trunk branches. -Check for any uncommitted changes with bzr status. - -2) M-x cd /path/to/trunk - -The first time only, do this: -cd .bzr/branch -Add the following line to branch.conf: -changelog_merge_files = ChangeLog - -3) load admin/bzrmerge.el - -4) M-x bzrmerge RET /path/to/emacs-24 RET - -It will prompt about revisions that should be skipped, based on the -regexp in bzrmerge-missing. If there are more revisions that you know -need skipping, you'll have to do that by hand. - -5) It will stop if there are any conflicts. Resolve them. -Using smerge-mode, there are menu items to skip to the next conflict, -and to take either the trunk, branch, or both copies. - -6) After resolving all conflicts, you might need to run the bzmerge -command again if there are more revisions still to merge. - -Do not commit (or exit Emacs) until you have run bzrmerge to completion. - -Before committing, check bzr status and bzr diff output. -If you have run bzrmerge enough times, the "pending merge tip" in bzr -status should be the last revision from the emacs-24 branch, and -bzr status -v should show all the revisions you expect to merge. - -(Note that it will also show "skipped" revisions. This is expected, -and is due to a technical limitation of bzr. The log data for those -revisions gets merged, the actual changes themselves do not. -http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00609.html ) - -In particular, check the ChangeLog entries (eg in case too many -entries have been included or whitespace between entries needs fixing). -bzrmerge tries to fix up the dates to today's date, but it only does -this where there are conflicts. If you used the changelog_merge plugin, -there won't be any conflicts, and (at time of writing) you will need -to adjust dates by hand. In any case, if someone made multiple -ChangeLog entries on different days in the branch, you may wish to -collapse them all to a single entry for that author in the trunk -(because in the trunk they all appear under the same date). -Obviously, if there are multiple changes to the same file by different -authors, don't break the logical ordering in doing this. - -Notes: - -1) If a file is modified in emacs-24, and deleted in the trunk, you -get a "contents conflict". Assuming the changes don't need to be in -the trunk at all, use `bzr resolve path/to/file --take-this' to keep the -trunk version. Prior to bzr 2.2.3, this may fail. You can just -delete the .OTHER etc files by hand and use bzr resolve path/to/file. - -2) Conflicts in autoload md5sums in comments. Strictly speaking, the -right thing to do is merge everything else, resolve the conflict by -choosing either the trunk or branch version, then run `make -C lisp -autoloads' to update the md5sums to the correct trunk value before -committing. - -* Re-adding a file that has been removed from the repository - -It's easy to get this wrong. Let's suppose you've done: - -bzr remove file; bzr commit - -and now, sometime later, you realize this was a mistake and file needs -to be brought back. DON'T just do: - -bzr add file; bzr commit - -This restores file, but without its history (`bzr log file' will be -very short). This is because file gets re-added with a new file-id -(use `bzr file-id file' to see the id). - -Instead of adding the file, try: - -bzr revert -rN file; bzr commit - -where revision N+1 is the one where file was removed. - -You could also try `bzr add --file-ids-from', if you have a copy of -another branch where file still exists. - -* Undoing a commit (uncommitting) - -It is possible to undo/remove a bzr commit (ie, to uncommit). -Only do this if you really, really, need to. For example, if you -somehow made a commit that triggers a bug in bzr itself. -Don't do it because you made a typo in a commit or the log. - -If you do need to do this, do it as soon as possible, because the -longer you leave it, the more work is involved. - -0. First, tell emacs-devel that you are going to do this, and suggest -people not commit anything to the affected branch for the duration. - -In the following, replace USER with your Savannah username, and -BRANCH with the name of the branch. -Let's assume that revno 100 is the bad commit, and that there have -been two more commits after that (because nothing is ever easy). - -1. Ensure your copy of the branch is up-to-date (for a bound -branch, bzr up; for an unbound branch, bzr pull) and has no local -changes (bzr st). - -2. Make a record of the commits you are going to undo: -bzr diff -c 102 > /tmp/102.diff -etc - -Also record the commit message, author, and any --fixes information. - -3. Most Emacs branches are set up to prevent just this kind of thing. -So we need to disable that protection: - -bzr config append_revisions_only=False \ - -d bzr+ssh://USER@bzr.savannah.gnu.org/emacs/BRANCH/ - -4. Undo the commits: -bzr uncommit -r -4 - -This will show the commits it is going to undo, and prompt you to confirm. - -5. If using an unbound branch: -bzr push --overwrite - -6. Now, replay the commits you just undid (obviously, fix whatever it -was in the bad commit that caused the problem): - -patch -p0 < /tmp/100.diff -bzr commit --author ... --fixes ... -F /tmp/100.log -etc - -7. If using an unbound branch: -bzr push - -8. Finally, re-enable the branch protection: -bzr config append_revisions_only=True \ - -d bzr+ssh://USER@bzr.savannah.gnu.org/emacs/BRANCH/ - -9. Tell emacs-devel that it is ok to use the branch again. -Anyone with local changes should back them up before doing anything. - -For a bound branch, bzr up will convert any of the undone commits to a -pending merge. Just bzr revert these away. - -For an unbound branch, bzr pull will complain about diverged branches -and refuse to do anything. Use bzr pull --overwrite. - -* Loggerhead - -Loggerhead is the bzr tool for viewing a repository over http (similar -to ViewVC). The central version is at http://bzr.savannah.gnu.org/lh/emacs, -but if you just like the way this interface presents data, then if -you have your own copy of the repository, you can operate your own -Loggerhead server in stand-alone mode, and so help to reduce the load -on Savannah: - - bzr branch lp:loggerhead ~/.bazaar/plugins/loggerhead - cd /path/to/emacs/bzr - bzr serve --http - -You may need to install some Python dependencies to get this command to work. -For example, on RHEL6 I needed: - - yum install python-paste python-simplejson - yum --enablerepo=epel install python-simpletal - -Then point your web-browser to http://127.0.0.1:8080/ . - -* Bisecting - -This is a semi-automated way to find the revision that introduced a bug. - -First, get the bzr bisect plugin if you do not have it already: - - cd ~/.bazaar/plugins - bzr branch lp:bzr-bisect bisect - -`bzr help bisect' should work now. - -It's probably simplest to make a new copy of the branch to work in -from this point onwards. - -Identify the last known "good" revision where the relevant issue is -NOT present (e.g. maybe Emacs 24.1). Let's say this is revision 1000. - - bzr bisect start - bzr bisect no -r 1000 - -At this point, bzr will switch to the mid-point of revision 1000 and -the current revision. If you know that the issue was definitely -present in some specific revision (say 2000), you can use: - - bzr bisect yes -r 2000 - -Now bzr switches to revision 1500. - -Now test whether the issue is present. You might need to rebuild -Emacs to do this, or if you know the problem is in a specific Lisp -file, you might be able to get away with just loading that one file in -current Emacs. - -If the issue is present, use - - bzr bisect yes - -If it is not, use - - bzr bisect no - -Repeat until you zero-in on the specific revision. - -When finished, use - - bzr bisect reset - -or simply delete the entire branch if you created it just for this. - -* Commit emails - -** Old method: bzr-hookless-email -https://launchpad.net/bzr-hookless-email - -Runs hourly via cron. Must ask Savannah admins to enable/disable it -for each branch. Stores the last revision that it mailed as -last_revision_mailed in branch.conf on the server. Breaks with bzr 2.6: - -http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00000.html - -Fix from https://bugs.launchpad.net/bzr-hookless-email/+bug/988195 -only partially works. Breaks again on every merge commit: - -https://lists.ubuntu.com/archives/bazaar/2013q2/075520.html -http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00024.html - -You can force it to skip the merge commit by changing the value for -last_revision_mailed, eg: - -bzr config last_revision_mailed=xfq.free@gmail.com-20130603233720-u1aumaxvf3o0rlai -d bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/trunk/ - -** New method: bzr-email plugin -https://launchpad.net/bzr-email -http://lists.gnu.org/archive/html/savannah-hackers-public/2013-06/msg00007.html - -Runs on commit. Projects can enable it themselves by using `bzr -config' to set post_commit_to option for a branch. See `bzr help email' -(if you have the plugin installed) for other options. - -The From: address will be that of your Savannah account, rather than -your `bzr whoami' information. - -Note: if you have the bzr-email plugin installed locally, then when -you commit to the Emacs repository it will also try to send a commit -email from your local machine. If your machine is not configured to -send external mail, this will just fail. In any case, you may prefer -to either remove the plugin from your machine, or disable it for Emacs -branches. You can do this either by editing branch.conf in your Emacs -branches, to override the server setting (untested; not sure this -works), or by adding an entry to ~/.bazaar/locations.conf: - - [bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/*/] - post_commit_to = "" - -You have to use locations.conf rather than bazaar.conf because the -latter has a lower priority than branch.conf. - -* Using git-bzr - -** initially - -You can use Git locally to talk to the Bazaar repo as a "remote" repo -via git-bzr (aka git-remote-bzr). Initial clone: - - git clone bzr::bzr+ssh://USER@bzr.sv.gnu.org/emacs/trunk e - -This creates the working dir e/ (with subdir .git, etc). Disk usage -is 13G (as of early 2014), so you will probably want to repack: - - git repack -a -d -f --window=250 --depth=250 --window-memory=N - -where N is chosen to avoid swapping. E.g., given 512MB RAM, N="200m" -results in "du -sh .git" => 559M, about double the smallest reported -value (obtained with "deprecated" command "git gc --aggressive"). - -** steady-state - -Use "fetch", "pull" and other remote-to-local commands as usual. - -For "push", the Emacs Bazaar repo is configured with - - append_revisions_only = True - -so some versions of git-remote-bzr may raise AppendRevisionsOnlyViolation -(in func do_export) instead of displaying a "non fast-forward" message -and skipping the branch. See: - - http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00436.html - -which includes a provisional patch to git-remote-bzr to do that. - -** remote name - -Although Git itself is agnostic about what names you choose for -the remote repo, it seems git-bzr is more likely to get confused. -After the clone as described above, the remote name is "origin"; -changing it is Not Recommended. [Insert 9-hour high-entropy then -mysterious bug w/ JSON parsing errors anecdote here. --ttn] diff --git a/admin/notes/changelogs b/admin/notes/changelogs deleted file mode 100644 index e8158060e70..00000000000 --- a/admin/notes/changelogs +++ /dev/null @@ -1,32 +0,0 @@ -Emacs generally follows the GNU coding standards when it comes to ChangeLogs: -http://www.gnu.org/prep/standards/html_node/Change-Logs.html - -One exception is that we still sometimes quote `like-this' (as the -standards used to recommend) rather than 'like-this' (as they do now), -because `...' is so widely used elsewhere in Emacs. -http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00514.html - - -If installing changes written by someone else, make the ChangeLog -entry in their name, not yours. - - -http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html - There is no need to make change log entries for files such as NEWS, - MAINTAINERS, and FOR-RELEASE. -"There is no need" means you don't have to, but you can if you want to. - - -http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg01135.html - There is no need to indicate regeneration of files such as configure - in ChangeLog. - - -http://lists.gnu.org/archive/html/emacs-devel/2008-11/msg00940.html -Preferred form for several entries with the same content: - - * help.el (view-lossage): - * kmacro.el (kmacro-edit-lossage): - * edmacro.el (edit-kbd-macro): Fix docstring, lossage is now 300 keys. - -(Rather than anything involving "ditto" and suchlike.) diff --git a/admin/notes/commits b/admin/notes/commits deleted file mode 100644 index f33c6905d4c..00000000000 --- a/admin/notes/commits +++ /dev/null @@ -1,70 +0,0 @@ -HOW TO COMMIT CHANGES TO EMACS - -Most of these points are from: - -http://lists.gnu.org/archive/html/emacs-devel/2009-03/msg00555.html -From: Miles Bader -Subject: commit style redux -Date: Tue, 31 Mar 2009 12:21:20 +0900 - -(0) Each commit should correspond to a single change (whether spread - over multiple files or not). Do not mix different changes in the - same commit (eg adding a feature in one file, fixing a bug in - another should be two commits, not one). - -(1) Commit all changed files at once with a single log message (which - in CVS will result in an identical log message for all committed - files), not one-by-one. This is pretty easy using vc-dir now. - -(2) Make the log message describe the entire changeset, perhaps - including relevant changelog entries (I often don't bother with - the latter if it's a trivial sort of change). - - Many modern source-control systems vaguely distinguish the first - line of the log message to use as a short summary for abbreviated - history listing (in arch this was explicitly called the summary, - but many other systems have a similar concept). So it's nice if - you can format the log entry like: - - SHORTISH ONE-LINE SUMMARY - - MULTIPLE-LINE DETAILED DESCRIPTION POSSIBLY INCLUDING (OR - CONSISTING OF) CHANGELOG ENTRIES - - [Even with CVS this style is useful, because web CVS browsing - interfaces often include the first N words of the log message of - the most recent commit as a short "most recent change" - description.] - -(3) Don't phrase log messages assuming the filename is known, because - in non-file-oriented systems (everything modern other than CVS), - the log listing tends to be treated as global information, and the - connection with specific files is less explicit. - - For instance, currently I often see log messages like "Regenerate"; - for modern source-control systems with a global log, it's better to - have something like "Regenerate configure". - -(4) (Added in 2014) In commit comments, and ChangeLog files, it is best - to use ways of identifying revisions that are not dependent on a - particular version control system. (At time of writing Emacs is - about to move to its fourth VCS and another move in the future is - not impossible.) An excellent way to identify commits is by - quoting their summary line. Another is with an action stamp - an - RFC3339 date followed by ! followed by the committer's email - for - example, "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my - previous commit" will suffice. - -Followup discussion: -http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html -http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00401.html - - -PREVIOUS GUIDELINES FOR CVS - -For historical interest only, here is the old-style advice for CVS logs: -http://lists.gnu.org/archive/html/emacs-devel/2007-12/msg01208.html - -From: Eli Zaretskii -Subject: Re: Log messages in CVS -Date: Sat, 29 Dec 2007 16:06:29 +0200 diff --git a/admin/notes/copyright b/admin/notes/copyright index ebef0633032..f7565fe1721 100644 --- a/admin/notes/copyright +++ b/admin/notes/copyright @@ -22,9 +22,9 @@ author to make a non-trivial total. If so, make sure they have an assignment. If adding a whole file adjust the copyright statements in the file. -2. When installing code written by someone else, the ChangeLog entry +2. When installing code written by someone else, the commit should be in the name of the author of the code, not the person who -installs it. Also use bzr commit's "--author" option. +installs it. Also use commit's "--author" option. Do not install any of your own changes in the same commit. 3. With images, add the legal info to a README file in the directory @@ -115,8 +115,8 @@ else it is possible the file should not be in Emacs at all (please report!). Note that it seems painfully clear that one cannot rely on commit logs, -or even ChangeLogs, for older changes. People often installed changes -from others, without recording the true authorship. +or even change log entries, for older changes. People often installed +changes from others, without recording the true authorship. [For reference, most of these points were established via email with rms, 2007/1, "Copyright years". @@ -316,11 +316,6 @@ licensing@fsf.org starting on Thu, 07 Aug 2003 with subject: "[gnu.org #58812] Changing license of MH-E manual" -msdos/is_exec.c, sigaction.c - these files are copyright DJ Delorie. -Leave the copyrights alone. Leave the Eli Zaretskii copyright in -is_exec.c alone. See the msdos/README file for the legal history of -these files. - msdos/sed*.inp - These files are copyright FSF and distributed under an MIT-like license. @@ -489,10 +484,10 @@ system) obviously good): -Is it OK to just `bzr remove' a file for legal reasons, or is -something more drastic needed? A removed file is still available from -the repository, if suitable options are applied. (This issue obviously -does not affect a release). +Is it OK to just remove a file for legal reasons, or is something more +drastic (excision from the entire repository history) needed? A +removed file is still available from the repository, if suitable +options are applied. (This issue obviously does not affect a release). rms: will ask lawyer @@ -563,8 +558,7 @@ oldXMenu/insque.c (rms: "We wrote that specifically for Emacs, so definitely relicense that."). 2. The files that are copyright FSF and AIST, or AIST alone, should be -and were updated, ditto the oldXMenu files with FSF copyright, and -msdos/is_exec.c and sigaction.c. +and were updated, ditto the oldXMenu files with FSF copyright. 3. lwlib/ diff --git a/admin/notes/exit-value b/admin/notes/exit-value deleted file mode 100644 index cad6862c8aa..00000000000 --- a/admin/notes/exit-value +++ /dev/null @@ -1,35 +0,0 @@ -ttn 2004-05-09 - -The exit value of a program returning to the shell on unixoid systems is -typically 0 for success, and non-0 (such as 1) for failure. For vms it is -odd (1,3,5...) for success, even (0,2,4...) for failure. - -This holds from the point of view of the "shell" (in quotes because vms has a -different dispatch model that is not explained further here). - -From the point of view of the program, nowadays stdlib.h on both type of -systems provides macros `EXIT_SUCCESS' and `EXIT_FAILURE' that should DTRT. - -NB: The numerical values of these macros DO NOT need to fulfill the exit -value requirements outlined in the first paragraph! That is the job of the -`exit' function. Thus, this kind of construct shows misunderstanding: - - #ifdef VMS - exit (1); - #else - exit (0); - #endif - -Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky. - - - -ttn 2004-05-12 - -Values aside from EXIT_SUCCESS and EXIT_FAILURE can be used to indicate -finer gradations of failure. If this is the only information available -to the caller, clamping such values to EXIT_FAILURE loses information. -If there are other ways to indicate the problem to the caller (such as -a message to stderr) it may be ok to clamp. In all cases, it is the -relationship between the program and its caller that must be examined. -[Insert ZAMM quote here.] diff --git a/admin/notes/git-workflow b/admin/notes/git-workflow new file mode 100644 index 00000000000..d1d105a8a7a --- /dev/null +++ b/admin/notes/git-workflow @@ -0,0 +1,135 @@ +(This is a draft. The method here won't actually work yet, because +neither git-new-workdir nor merge-changelog are in the Emacs +distribution yet.) + +Setting up and using git for normal, simple bugfixing +===================================================== + +If you haven't configured git before you should first do: + +git config --global user.name "Frank Chu" +git config --global user.email "fchu@example.com" + +Initial setup +============= + +Then we want to clone the repository. We normally want to have both +the current trunk and the emacs-24 branch. + +mkdir ~/emacs +cd ~/emacs +git clone @git.sv.gnu.org:/srv/git/emacs.git +mv emacs trunk +(cd trunk; git config push.default current) +./trunk/admin/git-new-workdir trunk emacs-24 +cd emacs-24 +git checkout emacs-24 +git config push.default current + +You now have both branches conveniently accessible, and you can do +"git pull" in them once in a while to keep updated. + + +Fixing bugs +=========== + +You edit the files in either branch, `M-x vc-dir', and check in your +changes. Then you need to push the data to the main repository. This +will usually fail, since somebody else has pushed other changes in the +meantime. To fix this, say + +git pull --rebase + +which will update your repository, and then re-apply your changes on +top of that. Then say + +git push + + +Backporting to emacs-24 +======================= + +If you have applied a fix to the trunk, but then decide that it should +be applied to the emacs-24 branch, too, then + +cd ~/emacs/trunk +git log + +and find the commit you're looking for. Then find the commit ID, +which will look like + +commit 958b768a6534ae6e77a8547a56fc31b46b63710b + +cd ~/emacs/emacs-24 +git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b + +and add "Backport:" to the commit string. Then + +git push + + +Merging emacs-24 to trunk/master +================================ + +It is recommended to use the file gitmerge.el in the admin directory +for merging 'emacs-24' into 'master'. It will take care of many +things which would otherwise have to be done manually, like ignoring +commits that should not land in master, fixing up ChangeLogs and +automatically dealing with certain types of conflicts. If you really +want to, you can do the merge manually, but then you're on your own. +If you still choose to do that, make absolutely sure that you *always* +use the 'merge' command to transport commits from 'emacs-24' to +'master'. *Never* use 'cherry-pick'! If you don't know why, then you +shouldn't manually do the merge in the first place; just use +gitmerge.el instead. + +How to use gitmerge.el: + +Enter the Emacs repository, checkout 'master' and make sure it's +up-to-date by doing a pull. Then start Emacs with + + emacs -l admin/gitmerge.el -f gitmerge + +You'll be asked for the branch to merge, which will default to +'origin/emacs-24', which you should accept. Merging a local tracking +branch is discouraged, since it might not be up-to-date, or worse, +contain commits from you which are not yet pushed upstream. + +You will now see the list of commits from 'emacs-24' which are not yet +merged to 'master'. You might also see commits that are already +marked for "skipping", which means that they will be merged with a +different merge strategy ('ours'), which will effectively ignore the +commit's diff while still being seen as merged, so it won't turn up +again in future merges. Recognizing these kinds of commits is done +with a simple regexp searching the log for strings like 'backport' or +'merge', so you'll probably see false positives as well as false +negatives. Carefully go through the commits, investigate them by +hitting 'l', 'd' and 'f', and mark or unmark them for skipping with +'s'. When you're done, hit 'm' to start the merge. + +You'll likely get conflicts during the process which cannot be dealt +with automatically. In that case, the merge will stop and show you +the list of conflicted files. Resolve those conflicts as usual using +smerge and restart gitmerge (remember to enter the repository when +doing that). You don't have to 'add' the resolved files and 'commit' +the resulting merge, but if you really want to, feel free to do that. +Note you can also resume gitmerge in a new Emacs session, since the +current state will be saved to disk. + +When everything's done, look hard at the resulting merge. Skipping +commits requires separate merges, so don't be surprised to see more +than one merge commit. If you're happy, push. + +Warnings about X11 forwarding +============================= + +If you get warnings like + +Warning: No xauth data; using fake authentication data for X11 forwarding. +X11 forwarding request failed on channel 0 + +when pulling or pushing data, add the following to the start of +~/.ssh/config: + +Host git.sv.gnu.org + ForwardX11 no diff --git a/admin/notes/hydra b/admin/notes/hydra index 3b6bc87a2f6..ce2047480d2 100644 --- a/admin/notes/hydra +++ b/admin/notes/hydra @@ -26,7 +26,7 @@ http://lists.gnu.org/mailman/listinfo/emacs-buildstatus * The Emacs jobset consists of the following jobs: ** The `tarball' job -which gets a checkout from bzr, and does a bootstrap followed +which gets a checkout from the repository, and does a bootstrap followed by running make-dist to create a tarball. If this job fails, all the others will too (because they use the tarball as input). diff --git a/admin/notes/iftc b/admin/notes/iftc deleted file mode 100644 index 983b1486685..00000000000 --- a/admin/notes/iftc +++ /dev/null @@ -1,26 +0,0 @@ -Iso-Functional Type Contour - - -This is a term coined to describe "column int->float" change approach, and can -be used whenever low-level types need to change (hopefully not often!) but the -meanings of the values (whose type has changed) do not. - -The premise is that changing a low-level type potentially means lots of code -needs to be changed as well, and the question is how to do this incrementally, -which is the preferred way to change things. - -Say LOW and HIGH are C functions: - - int LOW (void) { return 1; } - void HIGH (void) { int value = LOW (); } - -We want to convert LOW to return float, so we cast HIGH usage: - - float LOW (void) { return 1.0; } - void HIGH (void) { int value = (int) LOW (); } /* iftc */ - -The comment /* iftc */ is used to mark this type of casting to differentiate -it from other casting. We commit the changes and can now go about modifying -LOW and HIGH separately. When HIGH is ready to handle the type change, the -cast can be removed. - diff --git a/admin/notes/lel-TODO b/admin/notes/lel-TODO deleted file mode 100644 index 4a4ccb5e6e8..00000000000 --- a/admin/notes/lel-TODO +++ /dev/null @@ -1,124 +0,0 @@ -Some lisp/emacs-lisp/ Features and Where They Are Documented - -Copyright (C) 2007-2014 Free Software Foundation, Inc. -See the end of the file for license conditions. - - -* Status Key - - -- as yet unknown - n/a -- not applicable (internal, uninteresting, etc) - obsolete -- an obsolete feature, to be removed in future - todo -- not documented but should be - NODE -- documented in or under info node NODE - - -* Features - advice (elisp) Advising Functions - advice-preload n/a - assoc - - authors - - autoload (elisp) Autoload - avl-tree - - backquote n/a - benchmark n/a - bindat (elisp) Byte Packing - byte-compile (elisp) Byte Compilation - byte-opt - - bytecomp (elisp) Compilation Functions - checkdoc (elisp) Documentation Tips - cl (cl) - cl-compat n/a - cl-specs n/a - copyright - - crm - - cust-print (elisp) Printing in Edebug - debug (elisp) Debugger - derived (elisp) Derived Modes - disass (elisp) Disassembly - easy-mmode (elisp) Defining Minor Modes - easymenu - - edebug (elisp) Edebug - eldoc - - elint - - elp n/a - ewoc (elisp) Separated Rendering - find-func - - find-gc - - generic (elisp) Generic Modes - gulp n/a - helper - - levents obsolete - lisp-float-type - - lisp-mnt - - lisp-mode n/a - lmenu obsolete - lucid obsolete - macroexp (elisp) Expansion - pp (emacs) Program Indent - re-builder - - regexp-opt (elisp) Regexp Functions - regi - - ring (elisp) Rings - rx - - shadow - - sregex obsolete - syntax (elisp) Position Parse - testcover - - timer (elisp) Timers - tq (elisp) Transaction Queues - trace - - unsafep (elisp) Function Safety - warnings (elisp) Warnings - - -* Above list created using default directory lisp/emacs-lisp/ with - (shell-command - "sed '/^(provide '\\''/!d;s// /;s/).*//' *.el | sort | uniq") - - -* How to use this file to improve Emacs - (loop - (let* ((feature (choose-one Features)) - (status (feature-status feature))) - (if (or (eq '- status) (not (verify status))) - (update feature (current-docs feature)) - (case status - (todo (let (doc patch feedback) - (while (not (grok feature)) - (or (play-with feature) - (grep feature Internet) - (grep feature (wisdom-maybe "emacs-devel")))) - (setq doc (write-documentation feature) - patch (diff (current-docs) doc)) - (while (not (and (correct doc) - (well-placed doc) - (well-formed patch))) - (setq doc (revise doc) - patch (diff (current-docs) doc)) - feedback (wisdom-maybe "emacs-devel" patch)) - (when (install patch) - (when (update feature (current-docs feature)) - (job-well-done user-login-name))))) - (n/a (job-well-done user-login-name)))))) - - -* Etc - -This file is part of GNU Emacs. - -GNU Emacs 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 3 of the License, or -(at your option) any later version. - -GNU Emacs 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 GNU Emacs. If not, see . - - Local variables: - mode: outline - End: diff --git a/admin/notes/newfile b/admin/notes/newfile index 0b66b8054bb..a682fec72d5 100644 --- a/admin/notes/newfile +++ b/admin/notes/newfile @@ -15,7 +15,7 @@ output under the headings "The following files are not valid DOS file names:" and "The following resolve to the same DOS file names:" should not include any files that end up in the release tarball. -** Make the ChangeLog entry in the name of the author(s), not your own name. +** Commit in the name of the author(s), not your own name. ** If appropriate, check that the file compiles OK and that Emacs builds fine with it. Address any compilation warnings. diff --git a/admin/notes/repo b/admin/notes/repo new file mode 100644 index 00000000000..2d4cc2a55cf --- /dev/null +++ b/admin/notes/repo @@ -0,0 +1,105 @@ +NOTES ON COMMITTING TO EMACS'S REPOSITORY -*- outline -*- + +** elpa + +This branch does not contain a copy of Emacs, but of the Emacs Lisp +package archive (elpa.gnu.org). See admin/notes/elpa for further +explanation, and the README file in the branch for usage +instructions. + +* Installing changes from your personal branches. + +If your branch has only a single commit, or many different real +commits, it is fine to do a merge. If your branch has only a very +small number of "real" commits, but several "merge from trunks", it is +preferred that you take your branch's diff, apply it to the trunk, and +commit directly, not merge. This keeps the history cleaner. + +In general, when working on some feature in a separate branch, it is +preferable not to merge from trunk until you are done with the +feature. Unless you really need some change that was done on the +trunk while you were developing on the branch, you don't really need +those merges; just merge once, when you are done with the feature, and +Bazaar will take care of the rest. Bazaar is much better in this than +CVS, so interim merges are unnecessary. + +Or use shelves; or rebase; or do something else. See the thread for +yet another fun excursion into the exciting world of version control. + +http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00086.html + +* Installing changes from gnulib + +Some of the files in Emacs are copied from gnulib. To synchronize +these files from the version of gnulib that you have checked out into +a sibling directory of your branch, type "admin/merge-gnulib"; this +will check out the latest version of gnulib if there is no sibling +directory already. It is a good idea to run "git status" afterwards, +so that if a gnulib module added a file, you can record the new file +using "git add". After synchronizing from gnulib, do a "make" in the +usual way. + +To change the set of gnulib modules, change the GNULIB_MODULES +variable in admin/merge-gnulib before running it. + +If you remove a gnulib module, or if a gnulib module +removes a file, then remove the corresponding files by hand. + +* How to merge changes from emacs-24 to trunk + +[The section on git merge procedure has not yet been written] + +Inspect the change log entries (e.g. in case too many entries have been +included or whitespace between entries needs fixing). If someone made +multiple change log entries on different days in the branch, you may +wish to collapse them all to a single entry for that author in the +trunk (because in the trunk they all appear under the same date). +Obviously, if there are multiple changes to the same file by different +authors, don't break the logical ordering in doing this. + +You may see conflicts in autoload md5sums in comments. Strictly +speaking, the right thing to do is merge everything else, resolve the +conflict by choosing either the trunk or branch version, then run +`make -C lisp autoloads' to update the md5sums to the correct trunk +value before committing. + +* Re-adding a file that has been removed from the repository + +Let's suppose you've done: + +git rm file; git commit -a + +You can just restore a copy of the file and then re-add it; +git does not have per-file history so this will not harm +anything. + +Alternatively, you can do + +git revert XXXXX + +where XXXXX is the hash of the commit in which file was removed. +This backs out the entire changeset the deletion was part of, +which is often more appropriate. + +* Undoing a commit (uncommitting) + +If you have not pushed the commit, you may be able to use `git reset +--hard' with a hash argument to revert the your local repo copy to the +pre-commit state. + +If you have pushed commit, resetting will be ineffective because it +will only vanish the commit in your local copy. Instead, use `git +revert', giving it the commit ID as argument. This will create a +new commit that backs out the change. Then push that. + +Note that git will generate a log message for the revert that includes +a git hash. Please edit this to refer to the commit by the first line +of its log comment, or by committer and date, or by something else +that is not the hash. As noted previously, it is best to avoid hashes +in comments in case we someday have to change version-control systems +again. + +* Bisecting + +This is a semi-automated way to find the revision that introduced a bug. +Browse `git help bisect' for technical instructions. diff --git a/admin/notes/tags b/admin/notes/tags index 9c3700f2e4d..a1e1b86429c 100644 --- a/admin/notes/tags +++ b/admin/notes/tags @@ -5,1002 +5,999 @@ and hence were removed. See: http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00042.html -(UPDATE: It seems tag deletion is basically impossible in bzr, so all -these tags came back.) - In the unlikely event that you need them, the removed tags were: -tag revision +tag version stamp -amigados-merge 14846 -before-thomas-posix1996 16843 -gcc-2_8_1-980401 20893 -gcc-2_8_1-980402 21795 -gcc-2_8_1-980407 20893 -gcc-2_8_1-980412 20893 -gcc-2_8_1-980413 20893 -gcc-2_8_1-980419 21502 -gcc-2_8_1-980426 21502 -gcc-2_8_1-980502 21795 -gcc-2_8_1-980513 21795 -gcc-2_8_1-980525 22147 -gcc-2_8_1-980529 22147 -gcc-2_8_1-980608 22147 -gcc-2_8_1-980609 22147 -gcc-2_8_1-980627 22478 -gcc-2_8_1-980705 22478 -gcc-2_8_1-980718 22478 -gcc-2_8_1-980811 22971 -gcc-2_8_1-980813 23005 -gcc-2_8_1-980928 23338 -gcc-2_8_1-980929 23338 -gcc-2_8_1-RELEASE 20893 -gcc_2_8_1-980315 20893 -gcc_2_8_1-980929 23338 -glibc-2_0_2 16843 -gnumach-release-1-1 17693 -gnumach-release-1-1-1 17693 -gnumach-release-1-1-2 18209 -gnumach-release-1-1-3 18209 -hurd-release-0-2 18209 -jimb-sync-Nov-3-1992 1552 -libc20x-97031 16843 -libc20x-970306 16843 -libc20x-970316 16843 -libc20x-970318 16843 -libc20x-970319 16843 -libc20x-970404 16843 -libc-1-90 15360 -libc-1-91 15451 -libc-1-92 15463 -libc-1-93 15702 -libc-950402 11085 -libc-950411 11255 -libc-950722 12418 -libc-950723 12418 -libc-950922 12859 -libc-951016 12859 -libc-951018 13231 -libc-951029 13231 -libc-951031 13231 -libc-951101 13231 -libc-951102 13231 -libc-951103 13231 -libc-951104 13231 -libc-951105 13231 -libc-951106 13231 -libc-951107 13231 -libc-951108 13231 -libc-951109 13231 -libc-951110 13231 -libc-951111 13231 -libc-951112 13231 -libc-951113 13231 -libc-951114 13231 -libc-951115 13231 -libc-951116 13231 -libc-951117 13231 -libc-951118 13231 -libc-951119 13231 -libc-951120 13231 -libc-951121 13231 -libc-951122 13231 -libc-951123 13231 -libc-951124 13231 -libc-951125 13231 -libc-951126 13231 -libc-951127 13231 -libc-951128 13231 -libc-951129 13231 -libc-951130 13231 -libc-951201 13679 -libc-951202 13679 -libc-951203 13679 -libc-951204 13679 -libc-951206 13686 -libc-951208 13693 -libc-951209 13693 -libc-951210 13693 -libc-951211 13693 -libc-951212 13704 -libc-951213 13704 -libc-951214 13730 -libc-951215 13730 -libc-951216 13741 -libc-951217 13741 -libc-951218 13741 -libc-951219 13741 -libc-951220 13741 -libc-951221 13741 -libc-951222 13741 -libc-951223 13741 -libc-951224 13741 -libc-951225 13741 -libc-951226 13741 -libc-951227 13741 -libc-951228 13741 -libc-951229 13741 -libc-951230 13741 -libc-951231 13741 -libc-960101 13741 -libc-960102 13741 -libc-960103 13741 -libc-960104 13741 -libc-960105 13741 -libc-960106 13741 -libc-960107 13741 -libc-960108 13741 -libc-960109 13741 -libc-960110 13741 -libc-960111 13741 -libc-960112 13741 -libc-960113 13741 -libc-960114 13741 -libc-960115 13741 -libc-960116 14192 -libc-960117 14192 -libc-960118 14213 -libc-960119 14213 -libc-960120 14213 -libc-960121 14213 -libc-960122 14213 -libc-960123 14213 -libc-960124 14213 -libc-960125 14213 -libc-960126 14213 -libc-960127 14213 -libc-960128 14213 -libc-960129 14213 -libc-960130 14213 -libc-960131 14213 -libc-960201 14449 -libc-960202 14449 -libc-960203 14473 -libc-960204 14473 -libc-960205 14473 -libc-960206 14473 -libc-960207 14473 -libc-960208 14473 -libc-960209 14473 -libc-960210 14473 -libc-960211 14540 -libc-960212 14548 -libc-960213 14562 -libc-960214 14562 -libc-960215 14562 -libc-960216 14562 -libc-960217 14562 -libc-960218 14562 -libc-960219 14562 -libc-960220 14562 -libc-960221 14562 -libc-960222 14562 -libc-960223 14562 -libc-960224 14562 -libc-960225 14562 -libc-960226 14562 -libc-960227 14562 -libc-960228 14562 -libc-960229 14562 -libc-960302 14724 -libc-960303 14724 -libc-960304 14724 -libc-960305 14753 -libc-960306 14764 -libc-960307 14764 -libc-960308 14764 -libc-960309 14764 -libc-960310 14764 -libc-960311 14764 -libc-960312 14764 -libc-960313 14764 -libc-960314 14764 -libc-960315 14809 -libc-960316 14809 -libc-960317 14809 -libc-960318 14809 -libc-960319 14809 -libc-960320 14809 -libc-960321 14809 -libc-960322 14855 -libc-960323 14855 -libc-960324 14855 -libc-960325 14855 -libc-960326 14855 -libc-960327 14855 -libc-960328 14855 -libc-960329 14912 -libc-960330 14912 -libc-960331 14912 -libc-960401 14912 -libc-960402 14912 -libc-960403 14912 -libc-960404 14912 -libc-960405 14912 -libc-960406 14912 -libc-960407 14912 -libc-960408 14912 -libc-960409 14962 -libc-960410 14962 -libc-960411 14962 -libc-960412 14962 -libc-960413 15014 -libc-960414 15014 -libc-960415 15014 -libc-960416 15014 -libc-960417 15014 -libc-960418 15014 -libc-960419 15014 -libc-960420 15014 -libc-960421 15014 -libc-960422 15014 -libc-960423 15014 -libc-960424 15014 -libc-960425 15014 -libc-960426 15014 -libc-960427 15014 -libc-960428 15014 -libc-960429 15014 -libc-960430 15014 -libc-960501 15014 -libc-960502 15014 -libc-960503 15014 -libc-960504 15014 -libc-960505 15014 -libc-960506 15014 -libc-960507 15014 -libc-960508 15014 -libc-960509 15014 -libc-960510 15014 -libc-960511 15014 -libc-960512 15014 -libc-960513 15014 -libc-960514 15014 -libc-960515 15014 -libc-960516 15014 -libc-960517 15014 -libc-960518 15014 -libc-960519 15014 -libc-960520 15014 -libc-960521 15261 -libc-960522 15278 -libc-960523 15278 -libc-960524 15278 -libc-960525 15287 -libc-960526 15287 -libc-960527 15287 -libc-960528 15287 -libc-960529 15287 -libc-960530 15287 -libc-960531 15287 -libc-960601 15287 -libc-960602 15287 -libc-960603 15287 -libc-960604 15319 -libc-960605 15334 -libc-960606 15334 -libc-960607 15334 -libc-960608 15360 -libc-960609 15360 -libc-960610 15360 -libc-960611 15360 -libc-960612 15360 -libc-960613 15360 -libc-960614 15360 -libc-960615 15360 -libc-960616 15360 -libc-960617 15360 -libc-960618 15360 -libc-960619 15451 -libc-960620 15451 -libc-960621 15463 -libc-960622 15463 -libc-960623 15463 -libc-960624 15463 -libc-960625 15463 -libc-960626 15463 -libc-960627 15463 -libc-960628 15463 -libc-960629 15554 -libc-960630 15554 -libc-960701 15554 -libc-960702 15554 -libc-960703 15554 -libc-960704 15554 -libc-960705 15554 -libc-960706 15554 -libc-960707 15554 -libc-960708 15620 -libc-960709 15620 -libc-960710 15620 -libc-960711 15620 -libc-960712 15620 -libc-960713 15620 -libc-960714 15620 -libc-960715 15673 -libc-960716 15702 -libc-960717 15702 -libc-960718 15702 -libc-960719 15702 -libc-960720 15702 -libc-960721 15702 -libc-960722 15702 -libc-960723 15702 -libc-960724 15702 -libc-960725 15702 -libc-960726 15702 -libc-960727 15702 -libc-960728 15702 -libc-960729 15702 -libc-960730 15702 -libc-960731 15702 -libc-960801 15702 -libc-960802 15702 -libc-960803 15702 -libc-960804 15702 -libc-960805 15702 -libc-960806 15702 -libc-960807 15702 -libc-960808 15702 -libc-960809 15702 -libc-960810 15702 -libc-960811 15702 -libc-960812 15702 -libc-960813 15702 -libc-960814 15702 -libc-960815 15702 -libc-960816 15702 -libc-960817 15702 -libc-960818 15702 -libc-960819 15702 -libc-960820 15702 -libc-960821 15702 -libc-960822 15702 -libc-960823 15702 -libc-960824 15702 -libc-960825 15702 -libc-960826 15702 -libc-960827 15702 -libc-960828 15702 -libc-960829 15702 -libc-960830 15702 -libc-960831 15702 -libc-960901 15702 -libc-960902 15702 -libc-960903 15702 -libc-960904 15702 -libc-960905 15702 -libc-960906 15702 -libc-960907 15702 -libc-960908 15702 -libc-960909 15702 -libc-960910 15702 -libc-960911 15702 -libc-960912 15702 -libc-960913 16178 -libc-960918 16190 -libc-960919 16190 -libc-960920 16190 -libc-960921 16190 -libc-960922 16190 -libc-960923 16190 -libc-960925 16307 -libc-960926 16307 -libc-960927 16307 -libc-960928 16307 -libc-960929 16307 -libc-961001 16307 -libc-961004 16307 -libc-961005 16307 -libc-961006 16307 -libc-961007 16307 -libc-961008 16307 -libc-961009 16307 -libc-961010 16307 -libc-961011 16307 -libc-961012 16307 -libc-961013 16307 -libc-961014 16307 -libc-961015 16307 -libc-961016 16307 -libc-961017 16307 -libc-961018 16307 -libc-961019 16307 -libc-961020 16307 -libc-961021 16307 -libc-961022 16307 -libc-961023 16307 -libc-961024 16307 -libc-961025 16307 -libc-961026 16307 -libc-961027 16307 -libc-961028 16307 -libc-961029 16482 -libc-961030 16482 -libc-961031 16482 -libc-961101 16482 -libc-961102 16482 -libc-961103 16482 -libc-961104 16482 -libc-961105 16482 -libc-961106 16482 -libc-961107 16482 -libc-961108 16540 -libc-961109 16540 -libc-961110 16540 -libc-961111 16540 -libc-961114 16576 -libc-961115 16576 -libc-961116 16576 -libc-961117 16576 -libc-961118 16576 -libc-961119 16576 -libc-961120 16601 -libc-961121 16602 -libc-961203 16607 -libc-961204 16607 -libc-961205 16607 -libc-961206 16607 -libc-961207 16607 -libc-961208 16638 -libc-961209 16638 -libc-961210 16638 -libc-961211 16664 -libc-961212 16664 -libc-961213 16664 -libc-961214 16664 -libc-961215 16664 -libc-961216 16664 -libc-961217 16664 -libc-961218 16664 -libc-961219 16664 -libc-961220 16664 -libc-961221 16664 -libc-961222 16664 -libc-961223 16664 -libc-961224 16664 -libc-961225 16664 -libc-961226 16664 -libc-961227 16664 -libc-961228 16664 -libc-961229 16664 -libc-961230 16664 -libc-961231 16664 -libc-970101 16802 -libc-970102 16802 -libc-970103 16802 -libc-970104 16821 -libc-970105 16833 -libc-970106 16833 -libc-970107 16833 -libc-970108 16843 -libc-970109 16843 -libc-970110 16843 -libc-970111 16843 -libc-970112 16843 -libc-970113 16843 -libc-970114 16843 -libc-970115 16843 -libc-970116 16843 -libc-970117 16843 -libc-970118 16843 -libc-970119 16843 -libc-970120 16843 -libc-970121 16843 -libc-970122 16843 -libc-970123 16843 -libc-970124 16843 -libc-970125 16843 -libc-970126 16843 -libc-970127 16843 -libc-970128 16843 -libc-970129 16843 -libc-970130 16843 -libc-970131 16843 -libc-970201 16843 -libc-970202 16843 -libc-970203 16843 -libc-970204 16843 -libc-970205 16843 -libc-970206 16843 -libc-970207 16843 -libc-970208 16843 -libc-970209 16843 -libc-970210 16843 -libc-970211 16843 -libc-970212 16843 -libc-970213 16843 -libc-970214 16843 -libc-970215 16843 -libc-970216 16843 -libc-970217 16843 -libc-970218 16843 -libc-970219 16843 -libc-970220 16843 -libc-970221 16843 -libc-970222 16843 -libc-970223 16843 -libc-970224 16843 -libc-970225 16843 -libc-970226 16843 -libc-970227 16843 -libc-970228 16843 -libc-970301 16843 -libc-970302 16843 -libc-970303 16843 -libc-970304 16843 -libc-970305 16843 -libc-970306 16843 -libc-970307 16843 -libc-970308 16843 -libc-970309 16843 -libc-970310 16843 -libc-970311 16843 -libc-970312 16843 -libc-970313 16843 -libc-970314 16843 -libc-970315 16843 -libc-970316 16843 -libc-970317 16843 -libc-970318 16843 -libc-970319 16843 -libc-970320 16843 -libc-970321 16843 -libc-970322 16843 -libc-970323 16843 -libc-970324 16843 -libc-970325 17242 -libc-970326 17242 -libc-970327 17242 -libc-970328 17242 -libc-970329 17242 -libc-970330 17242 -libc-970331 17242 -libc-970401 17242 -libc-970402 17242 -libc-970403 17242 -libc-970404 17242 -libc-970405 17242 -libc-970406 17242 -libc-970407 17242 -libc-970408 17242 -libc-970409 17242 -libc-970410 17242 -libc-970411 17242 -libc-970412 17404 -libc-970413 17404 -libc-970414 17404 -libc-970415 17404 -libc-970416 17404 -libc-970417 17404 -libc-970418 17500 -libc-970419 17500 -libc-970420 17500 -libc-970421 17500 -libc-970422 17500 -libc-970423 17500 -libc-970424 17500 -libc-970425 17500 -libc-970426 17500 -libc-970427 17500 -libc-970428 17500 -libc-970429 17500 -libc-970430 17500 -libc-970501 17500 -libc-970502 17500 -libc-970503 17500 -libc-970504 17500 -libc-970505 17500 -libc-970506 17675 -libc-970507 17675 -libc-970508 17693 -libc-970509 17693 -libc-970510 17693 -libc-970511 17693 -libc-970512 17693 -libc-970513 17693 -libc-970514 17693 -libc-970515 17693 -libc-970516 17693 -libc-970517 17693 -libc-970518 17693 -libc-970519 17693 -libc-970520 17693 -libc-970521 17693 -libc-970522 17693 -libc-970523 17693 -libc-970524 17693 -libc-970525 17693 -libc-970526 17693 -libc-970527 17693 -libc-970528 17693 -libc-970529 17693 -libc-970530 17693 -libc-970531 17693 -libc-970601 17693 -libc-970602 17693 -libc-970603 17693 -libc-970604 17693 -libc-970605 17693 -libc-970606 18148 -libc-970607 18148 -libc-970608 18164 -libc-970609 18174 -libc-970610 18209 -libc-970611 18209 -libc-970612 18209 -libc-970613 18209 -libc-970614 18209 -libc-970615 18209 -libc-970616 18209 -libc-970617 18209 -libc-970618 18209 -libc-970619 18209 -libc-970620 18209 -libc-970621 18209 -libc-970622 18209 -libc-970624 18421 -libc-970625 18421 -libc-970626 18421 -libc-970627 18421 -libc-970628 18473 -libc-970629 18473 -libc-970630 18473 -libc-970701 18473 -libc-970702 18473 -libc-970703 18473 -libc-970704 18473 -libc-970705 18473 -libc-970707 18663 -libc-970708 18663 -libc-970709 18663 -libc-970710 18663 -libc-970713 18663 -libc-970715 18780 -libc-970717 18824 -libc-970718 18824 -libc-970719 18824 -libc-970720 18824 -libc-970721 18889 -libc-970722 18889 -libc-970723 18889 -libc-970724 18889 -libc-970725 18889 -libc-970726 18889 -libc-970727 19000 -libc-970728 19000 -libc-970729 19030 -libc-970730 19030 -libc-970731 19030 -libc-970801 19030 -libc-970802 19074 -libc-970803 19074 -libc-970804 19074 -libc-970805 19074 -libc-970806 19074 -libc-970807 19074 -libc-970808 19074 -libc-970809 19074 -libc-970810 19074 -libc-970811 19074 -libc-970812 19074 -libc-970813 19074 -libc-970814 19074 -libc-970815 19074 -libc-970816 19074 -libc-970817 19074 -libc-970818 19074 -libc-970819 19074 -libc-970820 19074 -libc-970821 19074 -libc-970822 19074 -libc-970823 19472 -libc-970824 19472 -libc-970825 19472 -libc-970826 19472 -libc-970827 19541 -libc-970828 19541 -libc-970829 19541 -libc-970830 19541 -libc-970831 19541 -libc-970901 19541 -libc-970902 19541 -libc-970903 19541 -libc-970904 19541 -libc-970905 19541 -libc-970906 19766 -libc-970907 19766 -libc-970908 19766 -libc-970911 19861 -libc-970912 19861 -libc-970913 19861 -libc-970914 19861 -libc-970915 19861 -libc-970916 19861 -libc-970917 19861 -libc-970918 19861 -libc-970919 19861 -libc-970920 19861 -libc-970921 19861 -libc-970922 19861 -libc-970923 19861 -libc-970924 19861 -libc-970925 19861 -libc-970926 19861 -libc-970927 19861 -libc-970928 19861 -libc-970929 19861 -libc-970930 19861 -libc-971001 19861 -libc-971018 19861 -libc-971019 19861 -libc-971020 19861 -libc-971021 19861 -libc-971022 19861 -libc-971023 19861 -libc-971024 19861 -libc-971025 19861 -libc-971026 19861 -libc-971027 19861 -libc-971028 19861 -libc-971029 19861 -libc-971030 19861 -libc-971031 19861 -libc-971101 19861 -libc-971102 19861 -libc-971103 19861 -libc-971104 19861 -libc-971105 19861 -libc-971106 19861 -libc-971107 19861 -libc-971108 19861 -libc-971109 19861 -libc-971110 19861 -libc-971111 19861 -libc-971112 19861 -libc-971113 19861 -libc-971114 19861 -libc-971115 19861 -libc-971116 19861 -libc-971117 19861 -libc-971118 19861 -libc-971120 19861 -libc-971121 19861 -libc-971122 19861 -libc-971123 19861 -libc-971124 19861 -libc-971125 19861 -libc-971126 19861 -libc-971127 19861 -libc-971128 19861 -libc-971129 19861 -libc-971130 19861 -libc-971201 19861 -libc-971203 19861 -libc-971204 19861 -libc-971205 19861 -libc-971206 19861 -libc-971207 19861 -libc-971208 19861 -libc-971209 19861 -libc-971210 19861 -libc-971211 19861 -libc-971212 19861 -libc-971213 19861 -libc-971214 19861 -libc-971217 19861 -libc-971218 19861 -libc-971219 19861 -libc-971220 19861 -libc-971221 19861 -libc-971222 19861 -libc-971223 19861 -libc-971224 19861 -libc-971225 19861 -libc-971226 19861 -libc-971227 19861 -libc-971228 19861 -libc-971229 19861 -libc-971230 19861 -libc-971231 19861 -libc-980103 19861 -libc-980104 19861 -libc-980105 19861 -libc-980106 19861 -libc-980107 19861 -libc-980108 19861 -libc-980109 19861 -libc-980110 19861 -libc-980111 19861 -libc-980112 19861 -libc-980114 19861 -libc-980115 19861 -libc-980116 19861 -libc-980117 19861 -libc-980118 19861 -libc-980119 19861 -libc-980120 19861 -libc-980121 19861 -libc-980122 19861 -libc-980123 19861 -libc-980124 19861 -libc-980125 19861 -libc-980126 19861 -libc-980127 19861 -libc-980128 19861 -libc-980129 20797 -libc-980130 20797 -libc-980212 20832 -libc-980213 20832 -libc-980214 20893 -libc-980215 20893 -libc-980216 20893 -libc-980217 20893 -libc-980218 20893 -libc-980219 20893 -libc-980220 20893 -libc-980221 20893 -libc-980222 20893 -libc-980223 20893 -libc-980224 20893 -libc-980225 20893 -libc-980226 20893 -libc-980227 20893 -libc-980228 20893 -libc-980301 20893 -libc-980302 20893 -libc-980303 20893 -libc-980304 20893 -libc-980306 20893 -libc-980307 20893 -libc-980308 20893 -libc-980309 20893 -libc-980310 20893 -libc-980311 20893 -libc-980312 20893 -libc-980313 20893 -libc-980314 20893 -libc-980315 20893 -libc-980316 20893 -libc-980317 20893 -libc-980318 20893 -libc-980319 20893 -libc-980320 20893 -libc-980321 20893 -libc-980322 20893 -libc-980323 20893 -libc-980324 20893 -libc-980325 20893 -libc-980326 20893 -libc-980327 20893 -libc-980328 20893 -libc-980329 20893 -libc-980330 20893 -libc-980331 20893 -libc-980401 20893 -libc-980402 20893 -libc-980403 20893 -libc-980404 20893 -libc-980405 20893 -libc-980406 20893 -libc-980407 20893 -libc-980408 20893 -libc-980409 20893 -libc-980410 20893 -libc-980411 20893 -libc-980412 20893 -libc-980413 20893 -libc-980414 20893 -libc-980428 20893 -libc-980429 20893 -libc-980430 20893 -libc-980501 20893 -libc-980502 20893 -libc-980503 20893 -libc-980504 20893 -libc-980505 20893 -libc-980506 20893 -libc-980507 20893 -libc-980508 20893 -libc-980509 20893 -libc-980510 20893 -libc-980512 20893 -libc-980513 20893 -libc-980514 20893 -libc-980515 20893 -libc-980516 20893 -libc-980517 20893 -libc-980518 20893 -libc-980519 20893 -libc-980520 20893 -libc-980521 20893 -libc-980522 20893 -libc-980523 20893 -libc-980524 20893 -libc-980525 20893 -libc-980526 20893 -libc-980527 20893 -libc-980528 20893 -libc-980529 20893 -libc-980530 20893 -libc-980531 20893 -libc-980601 20893 -libc-980602 20893 -libc-980603 20893 -libc-980604 20893 -libc-980605 20893 -libc-980606 20893 -libc-980607 20893 -libc-980608 20893 -libc-980609 20893 -libc-980610 20893 -libc-980611 20893 -libc-980612 20893 -libc-980613 20893 -libc-980614 22478 -libc-980615 22478 -libc-980616 22478 -libc-980617 22478 -libc-980618 22478 -libc-980619 22478 -libc-980620 22478 -libc-980621 22478 -libc-980622 22478 -libc-980623 22478 -libc-980624 22478 -libc-980625 22478 -libc-980626 22478 -libc-980627 22478 -libc-980628 22478 -libc-980629 22478 -libc-980630 22478 -libc-980701 22478 -libc-980702 22478 -libc-980703 22478 -libc-980704 22478 -libc-980705 22478 -libc-980706 22478 -libc-980707 22478 -libc-980708 22478 -libc-980709 22478 -libc-980710 22478 -libc-980711 22478 -libc-980712 22478 -libc-980713 22478 -libc-980714 22478 -libc-980715 22478 -libc-980716 22478 -libc-980717 22478 -libc-980718 22478 -libc-980719 22478 -libc-980720 22787 -libc_1_09 10803 -make-3-72-9 10364 -make-3-72-10 10364 -make-3-72-11 10364 -make-3-72-12 10364 -make-3-72-13 10364 -make-3-73 10364 -make-3-73-1 10364 -make-3-73-2 10364 -make-3-73-3 11789 -make-3-74 11789 -make-3-74-1 12800 -make-3-74-2 12800 -make-3-74-3 14458 -make-3-74-4 14846 -make-3-74-5 15594 -make-3-74-6 15594 -make-3-74-7 15594 -make-3-75 15594 -make-3-75-1 18912 -make-3-75-91 18912 -make-3-75-92 19342 -make-3-75-93 21502 -make-3-76 19768 -make-3-76-1 19768 -release-0-0 15702 -release-0-1 15702 -release-1-0 17404 -Release_5_25 24283 -root-libc-2_0_x-branch 16843 +amigados-merge 1996-03-20T01:08:11Z!roland@gnu.org +before-thomas-posix1996 1997-01-07T19:29:28Z!djm@gnu.org +gcc-2_8_1-980401 1998-02-13T12:16:46Z!kenner@gnu.org +gcc-2_8_1-980402 1998-04-27T23:48:59Z!drepper@redhat.com +gcc-2_8_1-980407 1998-02-13T12:16:46Z!kenner@gnu.org +gcc-2_8_1-980412 1998-02-13T12:16:46Z!kenner@gnu.org +gcc-2_8_1-980413 1998-02-13T12:16:46Z!kenner@gnu.org +gcc-2_8_1-980419 1998-04-14T00:02:53Z!drepper@redhat.com +gcc-2_8_1-980426 1998-04-14T00:02:53Z!drepper@redhat.com +gcc-2_8_1-980502 1998-04-27T23:48:59Z!drepper@redhat.com +gcc-2_8_1-980513 1998-04-27T23:48:59Z!drepper@redhat.com +gcc-2_8_1-980525 1998-05-19T07:09:32Z!drepper@redhat.com +gcc-2_8_1-980529 1998-05-19T07:09:32Z!drepper@redhat.com +gcc-2_8_1-980608 1998-05-19T07:09:32Z!drepper@redhat.com +gcc-2_8_1-980609 1998-05-19T07:09:32Z!drepper@redhat.com +gcc-2_8_1-980627 1998-06-13T19:51:10Z!kenner@gnu.org +gcc-2_8_1-980705 1998-06-13T19:51:10Z!kenner@gnu.org +gcc-2_8_1-980718 1998-06-13T19:51:10Z!kenner@gnu.org +gcc-2_8_1-980811 1998-08-09T22:42:36Z!rms@gnu.org +gcc-2_8_1-980813 1998-08-12T21:32:31Z!rms@gnu.org +gcc-2_8_1-980928 1998-09-28T11:03:36Z!bje@air.net.au +gcc-2_8_1-980929 1998-09-28T11:03:36Z!bje@air.net.au +gcc-2_8_1-RELEASE 1998-02-13T12:16:46Z!kenner@gnu.org +gcc_2_8_1-980315 1998-02-13T12:16:46Z!kenner@gnu.org +gcc_2_8_1-980929 1998-09-28T11:03:36Z!bje@air.net.au +glibc-2_0_2 1997-01-07T19:29:28Z!djm@gnu.org +gnumach-release-1-1 1997-05-07T19:19:04Z!Thomas +gnumach-release-1-1-1 1997-05-07T19:19:04Z!Thomas +gnumach-release-1-1-2 1997-06-10T04:18:36Z!rms@gnu.org +gnumach-release-1-1-3 1997-06-10T04:18:36Z!rms@gnu.org +hurd-release-0-2 1997-06-10T04:18:36Z!rms@gnu.org +jimb-sync-Nov-3-1992 1992-11-07T05:29:26Z!jimb@redhat.com +libc20x-97031 1997-01-07T19:29:28Z!djm@gnu.org +libc20x-970306 1997-01-07T19:29:28Z!djm@gnu.org +libc20x-970316 1997-01-07T19:29:28Z!djm@gnu.org +libc20x-970318 1997-01-07T19:29:28Z!djm@gnu.org +libc20x-970319 1997-01-07T19:29:28Z!djm@gnu.org +libc20x-970404 1997-01-07T19:29:28Z!djm@gnu.org +libc-1-90 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-1-91 1996-06-18T18:23:57Z!ian@cygnus.com +libc-1-92 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-1-93 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-950402 1995-03-22T08:54:39Z!rms@gnu.org +libc-950411 1995-04-07T07:32:44Z!rms@gnu.org +libc-950722 1995-06-28T21:57:23Z!kenner@gnu.org +libc-950723 1995-06-28T21:57:23Z!kenner@gnu.org +libc-950922 1995-08-15T02:33:42Z!bothner@cygnus.com +libc-951016 1995-08-15T02:33:42Z!bothner@cygnus.com +libc-951018 1995-10-16T15:40:29Z!law@redhat.com +libc-951029 1995-10-16T15:40:29Z!law@redhat.com +libc-951031 1995-10-16T15:40:29Z!law@redhat.com +libc-951101 1995-10-16T15:40:29Z!law@redhat.com +libc-951102 1995-10-16T15:40:29Z!law@redhat.com +libc-951103 1995-10-16T15:40:29Z!law@redhat.com +libc-951104 1995-10-16T15:40:29Z!law@redhat.com +libc-951105 1995-10-16T15:40:29Z!law@redhat.com +libc-951106 1995-10-16T15:40:29Z!law@redhat.com +libc-951107 1995-10-16T15:40:29Z!law@redhat.com +libc-951108 1995-10-16T15:40:29Z!law@redhat.com +libc-951109 1995-10-16T15:40:29Z!law@redhat.com +libc-951110 1995-10-16T15:40:29Z!law@redhat.com +libc-951111 1995-10-16T15:40:29Z!law@redhat.com +libc-951112 1995-10-16T15:40:29Z!law@redhat.com +libc-951113 1995-10-16T15:40:29Z!law@redhat.com +libc-951114 1995-10-16T15:40:29Z!law@redhat.com +libc-951115 1995-10-16T15:40:29Z!law@redhat.com +libc-951116 1995-10-16T15:40:29Z!law@redhat.com +libc-951117 1995-10-16T15:40:29Z!law@redhat.com +libc-951118 1995-10-16T15:40:29Z!law@redhat.com +libc-951119 1995-10-16T15:40:29Z!law@redhat.com +libc-951120 1995-10-16T15:40:29Z!law@redhat.com +libc-951121 1995-10-16T15:40:29Z!law@redhat.com +libc-951122 1995-10-16T15:40:29Z!law@redhat.com +libc-951123 1995-10-16T15:40:29Z!law@redhat.com +libc-951124 1995-10-16T15:40:29Z!law@redhat.com +libc-951125 1995-10-16T15:40:29Z!law@redhat.com +libc-951126 1995-10-16T15:40:29Z!law@redhat.com +libc-951127 1995-10-16T15:40:29Z!law@redhat.com +libc-951128 1995-10-16T15:40:29Z!law@redhat.com +libc-951129 1995-10-16T15:40:29Z!law@redhat.com +libc-951130 1995-10-16T15:40:29Z!law@redhat.com +libc-951201 1995-11-30T21:59:48Z!bothner@cygnus.com +libc-951202 1995-11-30T21:59:48Z!bothner@cygnus.com +libc-951203 1995-11-30T21:59:48Z!bothner@cygnus.com +libc-951204 1995-11-30T21:59:48Z!bothner@cygnus.com +libc-951206 1995-12-04T18:22:22Z!law@redhat.com +libc-951208 1995-12-06T11:57:46Z!erich@uruk.org +libc-951209 1995-12-06T11:57:46Z!erich@uruk.org +libc-951210 1995-12-06T11:57:46Z!erich@uruk.org +libc-951211 1995-12-06T11:57:46Z!erich@uruk.org +libc-951212 1995-12-12T00:47:21Z!bothner@cygnus.com +libc-951213 1995-12-12T00:47:21Z!bothner@cygnus.com +libc-951214 1995-12-13T21:43:08Z!ian@cygnus.com +libc-951215 1995-12-13T21:43:08Z!ian@cygnus.com +libc-951216 1995-12-16T03:32:35Z!scox@redhat.com +libc-951217 1995-12-16T03:32:35Z!scox@redhat.com +libc-951218 1995-12-16T03:32:35Z!scox@redhat.com +libc-951219 1995-12-16T03:32:35Z!scox@redhat.com +libc-951220 1995-12-16T03:32:35Z!scox@redhat.com +libc-951221 1995-12-16T03:32:35Z!scox@redhat.com +libc-951222 1995-12-16T03:32:35Z!scox@redhat.com +libc-951223 1995-12-16T03:32:35Z!scox@redhat.com +libc-951224 1995-12-16T03:32:35Z!scox@redhat.com +libc-951225 1995-12-16T03:32:35Z!scox@redhat.com +libc-951226 1995-12-16T03:32:35Z!scox@redhat.com +libc-951227 1995-12-16T03:32:35Z!scox@redhat.com +libc-951228 1995-12-16T03:32:35Z!scox@redhat.com +libc-951229 1995-12-16T03:32:35Z!scox@redhat.com +libc-951230 1995-12-16T03:32:35Z!scox@redhat.com +libc-951231 1995-12-16T03:32:35Z!scox@redhat.com +libc-960101 1995-12-16T03:32:35Z!scox@redhat.com +libc-960102 1995-12-16T03:32:35Z!scox@redhat.com +libc-960103 1995-12-16T03:32:35Z!scox@redhat.com +libc-960104 1995-12-16T03:32:35Z!scox@redhat.com +libc-960105 1995-12-16T03:32:35Z!scox@redhat.com +libc-960106 1995-12-16T03:32:35Z!scox@redhat.com +libc-960107 1995-12-16T03:32:35Z!scox@redhat.com +libc-960108 1995-12-16T03:32:35Z!scox@redhat.com +libc-960109 1995-12-16T03:32:35Z!scox@redhat.com +libc-960110 1995-12-16T03:32:35Z!scox@redhat.com +libc-960111 1995-12-16T03:32:35Z!scox@redhat.com +libc-960112 1995-12-16T03:32:35Z!scox@redhat.com +libc-960113 1995-12-16T03:32:35Z!scox@redhat.com +libc-960114 1995-12-16T03:32:35Z!scox@redhat.com +libc-960115 1995-12-16T03:32:35Z!scox@redhat.com +libc-960116 1996-01-16T01:58:43Z!kenner@gnu.org +libc-960117 1996-01-16T01:58:43Z!kenner@gnu.org +libc-960118 1996-01-17T23:54:58Z!dje@gnu.org +libc-960119 1996-01-17T23:54:58Z!dje@gnu.org +libc-960120 1996-01-17T23:54:58Z!dje@gnu.org +libc-960121 1996-01-17T23:54:58Z!dje@gnu.org +libc-960122 1996-01-17T23:54:58Z!dje@gnu.org +libc-960123 1996-01-17T23:54:58Z!dje@gnu.org +libc-960124 1996-01-17T23:54:58Z!dje@gnu.org +libc-960125 1996-01-17T23:54:58Z!dje@gnu.org +libc-960126 1996-01-17T23:54:58Z!dje@gnu.org +libc-960127 1996-01-17T23:54:58Z!dje@gnu.org +libc-960128 1996-01-17T23:54:58Z!dje@gnu.org +libc-960129 1996-01-17T23:54:58Z!dje@gnu.org +libc-960130 1996-01-17T23:54:58Z!dje@gnu.org +libc-960131 1996-01-17T23:54:58Z!dje@gnu.org +libc-960201 1996-01-31T19:14:05Z!ian@cygnus.com +libc-960202 1996-01-31T19:14:05Z!ian@cygnus.com +libc-960203 1996-02-03T01:03:27Z!gnu@the-meissners.org +libc-960204 1996-02-03T01:03:27Z!gnu@the-meissners.org +libc-960205 1996-02-03T01:03:27Z!gnu@the-meissners.org +libc-960206 1996-02-03T01:03:27Z!gnu@the-meissners.org +libc-960207 1996-02-03T01:03:27Z!gnu@the-meissners.org +libc-960208 1996-02-03T01:03:27Z!gnu@the-meissners.org +libc-960209 1996-02-03T01:03:27Z!gnu@the-meissners.org +libc-960210 1996-02-03T01:03:27Z!gnu@the-meissners.org +libc-960211 1996-02-10T13:26:26Z!kenner@gnu.org +libc-960212 1996-02-11T23:40:37Z!rms@gnu.org +libc-960213 1996-02-12T23:15:30Z!dje@gnu.org +libc-960214 1996-02-12T23:15:30Z!dje@gnu.org +libc-960215 1996-02-12T23:15:30Z!dje@gnu.org +libc-960216 1996-02-12T23:15:30Z!dje@gnu.org +libc-960217 1996-02-12T23:15:30Z!dje@gnu.org +libc-960218 1996-02-12T23:15:30Z!dje@gnu.org +libc-960219 1996-02-12T23:15:30Z!dje@gnu.org +libc-960220 1996-02-12T23:15:30Z!dje@gnu.org +libc-960221 1996-02-12T23:15:30Z!dje@gnu.org +libc-960222 1996-02-12T23:15:30Z!dje@gnu.org +libc-960223 1996-02-12T23:15:30Z!dje@gnu.org +libc-960224 1996-02-12T23:15:30Z!dje@gnu.org +libc-960225 1996-02-12T23:15:30Z!dje@gnu.org +libc-960226 1996-02-12T23:15:30Z!dje@gnu.org +libc-960227 1996-02-12T23:15:30Z!dje@gnu.org +libc-960228 1996-02-12T23:15:30Z!dje@gnu.org +libc-960229 1996-02-12T23:15:30Z!dje@gnu.org +libc-960302 1996-03-01T14:57:49Z!roland@gnu.org +libc-960303 1996-03-01T14:57:49Z!roland@gnu.org +libc-960304 1996-03-01T14:57:49Z!roland@gnu.org +libc-960305 1996-03-05T03:02:45Z!erik@naggum.no +libc-960306 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960307 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960308 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960309 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960310 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960311 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960312 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960313 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960314 1996-03-05T23:34:58Z!kenner@gnu.org +libc-960315 1996-03-15T00:14:04Z!ian@cygnus.com +libc-960316 1996-03-15T00:14:04Z!ian@cygnus.com +libc-960317 1996-03-15T00:14:04Z!ian@cygnus.com +libc-960318 1996-03-15T00:14:04Z!ian@cygnus.com +libc-960319 1996-03-15T00:14:04Z!ian@cygnus.com +libc-960320 1996-03-15T00:14:04Z!ian@cygnus.com +libc-960321 1996-03-15T00:14:04Z!ian@cygnus.com +libc-960322 1996-03-21T23:26:26Z!dje@gnu.org +libc-960323 1996-03-21T23:26:26Z!dje@gnu.org +libc-960324 1996-03-21T23:26:26Z!dje@gnu.org +libc-960325 1996-03-21T23:26:26Z!dje@gnu.org +libc-960326 1996-03-21T23:26:26Z!dje@gnu.org +libc-960327 1996-03-21T23:26:26Z!dje@gnu.org +libc-960328 1996-03-21T23:26:26Z!dje@gnu.org +libc-960329 1996-03-29T01:49:55Z!dje@gnu.org +libc-960330 1996-03-29T01:49:55Z!dje@gnu.org +libc-960331 1996-03-29T01:49:55Z!dje@gnu.org +libc-960401 1996-03-29T01:49:55Z!dje@gnu.org +libc-960402 1996-03-29T01:49:55Z!dje@gnu.org +libc-960403 1996-03-29T01:49:55Z!dje@gnu.org +libc-960404 1996-03-29T01:49:55Z!dje@gnu.org +libc-960405 1996-03-29T01:49:55Z!dje@gnu.org +libc-960406 1996-03-29T01:49:55Z!dje@gnu.org +libc-960407 1996-03-29T01:49:55Z!dje@gnu.org +libc-960408 1996-03-29T01:49:55Z!dje@gnu.org +libc-960409 1996-04-08T20:19:10Z!gnu@the-meissners.org +libc-960410 1996-04-08T20:19:10Z!gnu@the-meissners.org +libc-960411 1996-04-08T20:19:10Z!gnu@the-meissners.org +libc-960412 1996-04-08T20:19:10Z!gnu@the-meissners.org +libc-960413 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960414 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960415 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960416 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960417 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960418 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960419 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960420 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960421 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960422 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960423 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960424 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960425 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960426 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960427 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960428 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960429 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960430 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960501 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960502 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960503 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960504 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960505 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960506 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960507 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960508 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960509 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960510 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960511 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960512 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960513 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960514 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960515 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960516 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960517 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960518 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960519 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960520 1996-04-13T00:06:54Z!bothner@cygnus.com +libc-960521 1996-05-20T16:02:45Z!law@redhat.com +libc-960522 1996-05-21T22:55:56Z!roland@gnu.org +libc-960523 1996-05-21T22:55:56Z!roland@gnu.org +libc-960524 1996-05-21T22:55:56Z!roland@gnu.org +libc-960525 1996-05-24T22:34:49Z!roland@gnu.org +libc-960526 1996-05-24T22:34:49Z!roland@gnu.org +libc-960527 1996-05-24T22:34:49Z!roland@gnu.org +libc-960528 1996-05-24T22:34:49Z!roland@gnu.org +libc-960529 1996-05-24T22:34:49Z!roland@gnu.org +libc-960530 1996-05-24T22:34:49Z!roland@gnu.org +libc-960531 1996-05-24T22:34:49Z!roland@gnu.org +libc-960601 1996-05-24T22:34:49Z!roland@gnu.org +libc-960602 1996-05-24T22:34:49Z!roland@gnu.org +libc-960603 1996-05-24T22:34:49Z!roland@gnu.org +libc-960604 1996-06-03T12:51:33Z!kwzh@gnu.org +libc-960605 1996-06-05T04:12:46Z!bothner@cygnus.com +libc-960606 1996-06-05T04:12:46Z!bothner@cygnus.com +libc-960607 1996-06-05T04:12:46Z!bothner@cygnus.com +libc-960608 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960609 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960610 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960611 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960612 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960613 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960614 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960615 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960616 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960617 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960618 1996-06-08T01:25:20Z!bothner@cygnus.com +libc-960619 1996-06-18T18:23:57Z!ian@cygnus.com +libc-960620 1996-06-18T18:23:57Z!ian@cygnus.com +libc-960621 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-960622 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-960623 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-960624 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-960625 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-960626 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-960627 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-960628 1996-06-20T16:20:05Z!gnu@the-meissners.org +libc-960629 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960630 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960701 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960702 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960703 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960704 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960705 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960706 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960707 1996-06-28T17:28:58Z!kenner@gnu.org +libc-960708 1996-07-07T17:26:50Z!dje@gnu.org +libc-960709 1996-07-07T17:26:50Z!dje@gnu.org +libc-960710 1996-07-07T17:26:50Z!dje@gnu.org +libc-960711 1996-07-07T17:26:50Z!dje@gnu.org +libc-960712 1996-07-07T17:26:50Z!dje@gnu.org +libc-960713 1996-07-07T17:26:50Z!dje@gnu.org +libc-960714 1996-07-07T17:26:50Z!dje@gnu.org +libc-960715 1996-07-14T18:09:15Z!tege@swox.com +libc-960716 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960717 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960718 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960719 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960720 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960721 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960722 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960723 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960724 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960725 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960726 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960727 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960728 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960729 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960730 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960731 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960801 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960802 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960803 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960804 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960805 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960806 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960807 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960808 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960809 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960810 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960811 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960812 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960813 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960814 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960815 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960816 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960817 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960818 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960819 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960820 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960821 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960822 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960823 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960824 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960825 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960826 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960827 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960828 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960829 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960830 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960831 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960901 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960902 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960903 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960904 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960905 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960906 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960907 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960908 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960909 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960910 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960911 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960912 1996-07-16T04:47:46Z!kwzh@gnu.org +libc-960913 1996-09-13T03:46:14Z!rms@gnu.org +libc-960918 1996-09-15T00:49:22Z!kenner@gnu.org +libc-960919 1996-09-15T00:49:22Z!kenner@gnu.org +libc-960920 1996-09-15T00:49:22Z!kenner@gnu.org +libc-960921 1996-09-15T00:49:22Z!kenner@gnu.org +libc-960922 1996-09-15T00:49:22Z!kenner@gnu.org +libc-960923 1996-09-15T00:49:22Z!kenner@gnu.org +libc-960925 1996-09-24T02:44:17Z!kenner@gnu.org +libc-960926 1996-09-24T02:44:17Z!kenner@gnu.org +libc-960927 1996-09-24T02:44:17Z!kenner@gnu.org +libc-960928 1996-09-24T02:44:17Z!kenner@gnu.org +libc-960929 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961001 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961004 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961005 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961006 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961007 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961008 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961009 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961010 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961011 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961012 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961013 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961014 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961015 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961016 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961017 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961018 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961019 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961020 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961021 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961022 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961023 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961024 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961025 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961026 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961027 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961028 1996-09-24T02:44:17Z!kenner@gnu.org +libc-961029 1996-10-29T02:56:12Z!rms@gnu.org +libc-961030 1996-10-29T02:56:12Z!rms@gnu.org +libc-961031 1996-10-29T02:56:12Z!rms@gnu.org +libc-961101 1996-10-29T02:56:12Z!rms@gnu.org +libc-961102 1996-10-29T02:56:12Z!rms@gnu.org +libc-961103 1996-10-29T02:56:12Z!rms@gnu.org +libc-961104 1996-10-29T02:56:12Z!rms@gnu.org +libc-961105 1996-10-29T02:56:12Z!rms@gnu.org +libc-961106 1996-10-29T02:56:12Z!rms@gnu.org +libc-961107 1996-10-29T02:56:12Z!rms@gnu.org +libc-961108 1996-11-08T07:35:31Z!djm@gnu.org +libc-961109 1996-11-08T07:35:31Z!djm@gnu.org +libc-961110 1996-11-08T07:35:31Z!djm@gnu.org +libc-961111 1996-11-08T07:35:31Z!djm@gnu.org +libc-961114 1996-11-14T02:06:05Z!bothner@cygnus.com +libc-961115 1996-11-14T02:06:05Z!bothner@cygnus.com +libc-961116 1996-11-14T02:06:05Z!bothner@cygnus.com +libc-961117 1996-11-14T02:06:05Z!bothner@cygnus.com +libc-961118 1996-11-14T02:06:05Z!bothner@cygnus.com +libc-961119 1996-11-14T02:06:05Z!bothner@cygnus.com +libc-961120 1996-11-19T18:40:34Z!djm@gnu.org +libc-961121 1996-11-20T21:28:32Z!djm@gnu.org +libc-961203 1996-11-21T22:20:09Z!Thomas +libc-961204 1996-11-21T22:20:09Z!Thomas +libc-961205 1996-11-21T22:20:09Z!Thomas +libc-961206 1996-11-21T22:20:09Z!Thomas +libc-961207 1996-11-21T22:20:09Z!Thomas +libc-961208 1996-12-07T22:47:59Z!kenner@gnu.org +libc-961209 1996-12-07T22:47:59Z!kenner@gnu.org +libc-961210 1996-12-07T22:47:59Z!kenner@gnu.org +libc-961211 1996-12-11T00:37:52Z!djm@gnu.org +libc-961212 1996-12-11T00:37:52Z!djm@gnu.org +libc-961213 1996-12-11T00:37:52Z!djm@gnu.org +libc-961214 1996-12-11T00:37:52Z!djm@gnu.org +libc-961215 1996-12-11T00:37:52Z!djm@gnu.org +libc-961216 1996-12-11T00:37:52Z!djm@gnu.org +libc-961217 1996-12-11T00:37:52Z!djm@gnu.org +libc-961218 1996-12-11T00:37:52Z!djm@gnu.org +libc-961219 1996-12-11T00:37:52Z!djm@gnu.org +libc-961220 1996-12-11T00:37:52Z!djm@gnu.org +libc-961221 1996-12-11T00:37:52Z!djm@gnu.org +libc-961222 1996-12-11T00:37:52Z!djm@gnu.org +libc-961223 1996-12-11T00:37:52Z!djm@gnu.org +libc-961224 1996-12-11T00:37:52Z!djm@gnu.org +libc-961225 1996-12-11T00:37:52Z!djm@gnu.org +libc-961226 1996-12-11T00:37:52Z!djm@gnu.org +libc-961227 1996-12-11T00:37:52Z!djm@gnu.org +libc-961228 1996-12-11T00:37:52Z!djm@gnu.org +libc-961229 1996-12-11T00:37:52Z!djm@gnu.org +libc-961230 1996-12-11T00:37:52Z!djm@gnu.org +libc-961231 1996-12-11T00:37:52Z!djm@gnu.org +libc-970101 1996-12-31T20:54:33Z!ian@cygnus.com +libc-970102 1996-12-31T20:54:33Z!ian@cygnus.com +libc-970103 1996-12-31T20:54:33Z!ian@cygnus.com +libc-970104 1997-01-03T13:38:47Z!kenner@gnu.org +libc-970105 1997-01-05T03:44:26Z!miles@gnu.org +libc-970106 1997-01-05T03:44:26Z!miles@gnu.org +libc-970107 1997-01-05T03:44:26Z!miles@gnu.org +libc-970108 1997-01-07T19:29:28Z!djm@gnu.org +libc-970109 1997-01-07T19:29:28Z!djm@gnu.org +libc-970110 1997-01-07T19:29:28Z!djm@gnu.org +libc-970111 1997-01-07T19:29:28Z!djm@gnu.org +libc-970112 1997-01-07T19:29:28Z!djm@gnu.org +libc-970113 1997-01-07T19:29:28Z!djm@gnu.org +libc-970114 1997-01-07T19:29:28Z!djm@gnu.org +libc-970115 1997-01-07T19:29:28Z!djm@gnu.org +libc-970116 1997-01-07T19:29:28Z!djm@gnu.org +libc-970117 1997-01-07T19:29:28Z!djm@gnu.org +libc-970118 1997-01-07T19:29:28Z!djm@gnu.org +libc-970119 1997-01-07T19:29:28Z!djm@gnu.org +libc-970120 1997-01-07T19:29:28Z!djm@gnu.org +libc-970121 1997-01-07T19:29:28Z!djm@gnu.org +libc-970122 1997-01-07T19:29:28Z!djm@gnu.org +libc-970123 1997-01-07T19:29:28Z!djm@gnu.org +libc-970124 1997-01-07T19:29:28Z!djm@gnu.org +libc-970125 1997-01-07T19:29:28Z!djm@gnu.org +libc-970126 1997-01-07T19:29:28Z!djm@gnu.org +libc-970127 1997-01-07T19:29:28Z!djm@gnu.org +libc-970128 1997-01-07T19:29:28Z!djm@gnu.org +libc-970129 1997-01-07T19:29:28Z!djm@gnu.org +libc-970130 1997-01-07T19:29:28Z!djm@gnu.org +libc-970131 1997-01-07T19:29:28Z!djm@gnu.org +libc-970201 1997-01-07T19:29:28Z!djm@gnu.org +libc-970202 1997-01-07T19:29:28Z!djm@gnu.org +libc-970203 1997-01-07T19:29:28Z!djm@gnu.org +libc-970204 1997-01-07T19:29:28Z!djm@gnu.org +libc-970205 1997-01-07T19:29:28Z!djm@gnu.org +libc-970206 1997-01-07T19:29:28Z!djm@gnu.org +libc-970207 1997-01-07T19:29:28Z!djm@gnu.org +libc-970208 1997-01-07T19:29:28Z!djm@gnu.org +libc-970209 1997-01-07T19:29:28Z!djm@gnu.org +libc-970210 1997-01-07T19:29:28Z!djm@gnu.org +libc-970211 1997-01-07T19:29:28Z!djm@gnu.org +libc-970212 1997-01-07T19:29:28Z!djm@gnu.org +libc-970213 1997-01-07T19:29:28Z!djm@gnu.org +libc-970214 1997-01-07T19:29:28Z!djm@gnu.org +libc-970215 1997-01-07T19:29:28Z!djm@gnu.org +libc-970216 1997-01-07T19:29:28Z!djm@gnu.org +libc-970217 1997-01-07T19:29:28Z!djm@gnu.org +libc-970218 1997-01-07T19:29:28Z!djm@gnu.org +libc-970219 1997-01-07T19:29:28Z!djm@gnu.org +libc-970220 1997-01-07T19:29:28Z!djm@gnu.org +libc-970221 1997-01-07T19:29:28Z!djm@gnu.org +libc-970222 1997-01-07T19:29:28Z!djm@gnu.org +libc-970223 1997-01-07T19:29:28Z!djm@gnu.org +libc-970224 1997-01-07T19:29:28Z!djm@gnu.org +libc-970225 1997-01-07T19:29:28Z!djm@gnu.org +libc-970226 1997-01-07T19:29:28Z!djm@gnu.org +libc-970227 1997-01-07T19:29:28Z!djm@gnu.org +libc-970228 1997-01-07T19:29:28Z!djm@gnu.org +libc-970301 1997-01-07T19:29:28Z!djm@gnu.org +libc-970302 1997-01-07T19:29:28Z!djm@gnu.org +libc-970303 1997-01-07T19:29:28Z!djm@gnu.org +libc-970304 1997-01-07T19:29:28Z!djm@gnu.org +libc-970305 1997-01-07T19:29:28Z!djm@gnu.org +libc-970306 1997-01-07T19:29:28Z!djm@gnu.org +libc-970307 1997-01-07T19:29:28Z!djm@gnu.org +libc-970308 1997-01-07T19:29:28Z!djm@gnu.org +libc-970309 1997-01-07T19:29:28Z!djm@gnu.org +libc-970310 1997-01-07T19:29:28Z!djm@gnu.org +libc-970311 1997-01-07T19:29:28Z!djm@gnu.org +libc-970312 1997-01-07T19:29:28Z!djm@gnu.org +libc-970313 1997-01-07T19:29:28Z!djm@gnu.org +libc-970314 1997-01-07T19:29:28Z!djm@gnu.org +libc-970315 1997-01-07T19:29:28Z!djm@gnu.org +libc-970316 1997-01-07T19:29:28Z!djm@gnu.org +libc-970317 1997-01-07T19:29:28Z!djm@gnu.org +libc-970318 1997-01-07T19:29:28Z!djm@gnu.org +libc-970319 1997-01-07T19:29:28Z!djm@gnu.org +libc-970320 1997-01-07T19:29:28Z!djm@gnu.org +libc-970321 1997-01-07T19:29:28Z!djm@gnu.org +libc-970322 1997-01-07T19:29:28Z!djm@gnu.org +libc-970323 1997-01-07T19:29:28Z!djm@gnu.org +libc-970324 1997-01-07T19:29:28Z!djm@gnu.org +libc-970325 1997-03-24T20:38:28Z!dje@gnu.org +libc-970326 1997-03-24T20:38:28Z!dje@gnu.org +libc-970327 1997-03-24T20:38:28Z!dje@gnu.org +libc-970328 1997-03-24T20:38:28Z!dje@gnu.org +libc-970329 1997-03-24T20:38:28Z!dje@gnu.org +libc-970330 1997-03-24T20:38:28Z!dje@gnu.org +libc-970331 1997-03-24T20:38:28Z!dje@gnu.org +libc-970401 1997-03-24T20:38:28Z!dje@gnu.org +libc-970402 1997-03-24T20:38:28Z!dje@gnu.org +libc-970403 1997-03-24T20:38:28Z!dje@gnu.org +libc-970404 1997-03-24T20:38:28Z!dje@gnu.org +libc-970405 1997-03-24T20:38:28Z!dje@gnu.org +libc-970406 1997-03-24T20:38:28Z!dje@gnu.org +libc-970407 1997-03-24T20:38:28Z!dje@gnu.org +libc-970408 1997-03-24T20:38:28Z!dje@gnu.org +libc-970409 1997-03-24T20:38:28Z!dje@gnu.org +libc-970410 1997-03-24T20:38:28Z!dje@gnu.org +libc-970411 1997-03-24T20:38:28Z!dje@gnu.org +libc-970412 1997-04-11T20:40:28Z!ian@cygnus.com +libc-970413 1997-04-11T20:40:28Z!ian@cygnus.com +libc-970414 1997-04-11T20:40:28Z!ian@cygnus.com +libc-970415 1997-04-11T20:40:28Z!ian@cygnus.com +libc-970416 1997-04-11T20:40:28Z!ian@cygnus.com +libc-970417 1997-04-11T20:40:28Z!ian@cygnus.com +libc-970418 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970419 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970420 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970421 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970422 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970423 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970424 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970425 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970426 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970427 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970428 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970429 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970430 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970501 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970502 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970503 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970504 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970505 1997-04-17T18:00:12Z!ian@cygnus.com +libc-970506 1997-05-05T22:04:41Z!bothner@cygnus.com +libc-970507 1997-05-05T22:04:41Z!bothner@cygnus.com +libc-970508 1997-05-07T19:19:04Z!Thomas +libc-970509 1997-05-07T19:19:04Z!Thomas +libc-970510 1997-05-07T19:19:04Z!Thomas +libc-970511 1997-05-07T19:19:04Z!Thomas +libc-970512 1997-05-07T19:19:04Z!Thomas +libc-970513 1997-05-07T19:19:04Z!Thomas +libc-970514 1997-05-07T19:19:04Z!Thomas +libc-970515 1997-05-07T19:19:04Z!Thomas +libc-970516 1997-05-07T19:19:04Z!Thomas +libc-970517 1997-05-07T19:19:04Z!Thomas +libc-970518 1997-05-07T19:19:04Z!Thomas +libc-970519 1997-05-07T19:19:04Z!Thomas +libc-970520 1997-05-07T19:19:04Z!Thomas +libc-970521 1997-05-07T19:19:04Z!Thomas +libc-970522 1997-05-07T19:19:04Z!Thomas +libc-970523 1997-05-07T19:19:04Z!Thomas +libc-970524 1997-05-07T19:19:04Z!Thomas +libc-970525 1997-05-07T19:19:04Z!Thomas +libc-970526 1997-05-07T19:19:04Z!Thomas +libc-970527 1997-05-07T19:19:04Z!Thomas +libc-970528 1997-05-07T19:19:04Z!Thomas +libc-970529 1997-05-07T19:19:04Z!Thomas +libc-970530 1997-05-07T19:19:04Z!Thomas +libc-970531 1997-05-07T19:19:04Z!Thomas +libc-970601 1997-05-07T19:19:04Z!Thomas +libc-970602 1997-05-07T19:19:04Z!Thomas +libc-970603 1997-05-07T19:19:04Z!Thomas +libc-970604 1997-05-07T19:19:04Z!Thomas +libc-970605 1997-05-07T19:19:04Z!Thomas +libc-970606 1997-06-06T01:21:12Z!rms@gnu.org +libc-970607 1997-06-06T01:21:12Z!rms@gnu.org +libc-970608 1997-06-08T01:57:13Z!rms@gnu.org +libc-970609 1997-06-09T04:56:02Z!rms@gnu.org +libc-970610 1997-06-10T04:18:36Z!rms@gnu.org +libc-970611 1997-06-10T04:18:36Z!rms@gnu.org +libc-970612 1997-06-10T04:18:36Z!rms@gnu.org +libc-970613 1997-06-10T04:18:36Z!rms@gnu.org +libc-970614 1997-06-10T04:18:36Z!rms@gnu.org +libc-970615 1997-06-10T04:18:36Z!rms@gnu.org +libc-970616 1997-06-10T04:18:36Z!rms@gnu.org +libc-970617 1997-06-10T04:18:36Z!rms@gnu.org +libc-970618 1997-06-10T04:18:36Z!rms@gnu.org +libc-970619 1997-06-10T04:18:36Z!rms@gnu.org +libc-970620 1997-06-10T04:18:36Z!rms@gnu.org +libc-970621 1997-06-10T04:18:36Z!rms@gnu.org +libc-970622 1997-06-10T04:18:36Z!rms@gnu.org +libc-970624 1997-06-23T17:53:11Z!law@redhat.com +libc-970625 1997-06-23T17:53:11Z!law@redhat.com +libc-970626 1997-06-23T17:53:11Z!law@redhat.com +libc-970627 1997-06-23T17:53:11Z!law@redhat.com +libc-970628 1997-06-27T19:20:14Z!kenner@gnu.org +libc-970629 1997-06-27T19:20:14Z!kenner@gnu.org +libc-970630 1997-06-27T19:20:14Z!kenner@gnu.org +libc-970701 1997-06-27T19:20:14Z!kenner@gnu.org +libc-970702 1997-06-27T19:20:14Z!kenner@gnu.org +libc-970703 1997-06-27T19:20:14Z!kenner@gnu.org +libc-970704 1997-06-27T19:20:14Z!kenner@gnu.org +libc-970705 1997-06-27T19:20:14Z!kenner@gnu.org +libc-970707 1997-07-07T08:40:20Z!rms@gnu.org +libc-970708 1997-07-07T08:40:20Z!rms@gnu.org +libc-970709 1997-07-07T08:40:20Z!rms@gnu.org +libc-970710 1997-07-07T08:40:20Z!rms@gnu.org +libc-970713 1997-07-07T08:40:20Z!rms@gnu.org +libc-970715 1997-07-14T19:53:44Z!rms@gnu.org +libc-970717 1997-07-16T14:45:30Z!erich@uruk.org +libc-970718 1997-07-16T14:45:30Z!erich@uruk.org +libc-970719 1997-07-16T14:45:30Z!erich@uruk.org +libc-970720 1997-07-16T14:45:30Z!erich@uruk.org +libc-970721 1997-07-21T00:58:41Z!kenner@gnu.org +libc-970722 1997-07-21T00:58:41Z!kenner@gnu.org +libc-970723 1997-07-21T00:58:41Z!kenner@gnu.org +libc-970724 1997-07-21T00:58:41Z!kenner@gnu.org +libc-970725 1997-07-21T00:58:41Z!kenner@gnu.org +libc-970726 1997-07-21T00:58:41Z!kenner@gnu.org +libc-970727 1997-07-26T19:01:01Z!bothner@cygnus.com +libc-970728 1997-07-26T19:01:01Z!bothner@cygnus.com +libc-970729 1997-07-28T23:37:45Z!drepper@redhat.com +libc-970730 1997-07-28T23:37:45Z!drepper@redhat.com +libc-970731 1997-07-28T23:37:45Z!drepper@redhat.com +libc-970801 1997-07-28T23:37:45Z!drepper@redhat.com +libc-970802 1997-08-01T18:09:30Z!rms@gnu.org +libc-970803 1997-08-01T18:09:30Z!rms@gnu.org +libc-970804 1997-08-01T18:09:30Z!rms@gnu.org +libc-970805 1997-08-01T18:09:30Z!rms@gnu.org +libc-970806 1997-08-01T18:09:30Z!rms@gnu.org +libc-970807 1997-08-01T18:09:30Z!rms@gnu.org +libc-970808 1997-08-01T18:09:30Z!rms@gnu.org +libc-970809 1997-08-01T18:09:30Z!rms@gnu.org +libc-970810 1997-08-01T18:09:30Z!rms@gnu.org +libc-970811 1997-08-01T18:09:30Z!rms@gnu.org +libc-970812 1997-08-01T18:09:30Z!rms@gnu.org +libc-970813 1997-08-01T18:09:30Z!rms@gnu.org +libc-970814 1997-08-01T18:09:30Z!rms@gnu.org +libc-970815 1997-08-01T18:09:30Z!rms@gnu.org +libc-970816 1997-08-01T18:09:30Z!rms@gnu.org +libc-970817 1997-08-01T18:09:30Z!rms@gnu.org +libc-970818 1997-08-01T18:09:30Z!rms@gnu.org +libc-970819 1997-08-01T18:09:30Z!rms@gnu.org +libc-970820 1997-08-01T18:09:30Z!rms@gnu.org +libc-970821 1997-08-01T18:09:30Z!rms@gnu.org +libc-970822 1997-08-01T18:09:30Z!rms@gnu.org +libc-970823 1997-08-22T14:49:11Z!law@redhat.com +libc-970824 1997-08-22T14:49:11Z!law@redhat.com +libc-970825 1997-08-22T14:49:11Z!law@redhat.com +libc-970826 1997-08-22T14:49:11Z!law@redhat.com +libc-970827 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970828 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970829 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970830 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970831 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970901 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970902 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970903 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970904 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970905 1997-08-26T09:21:29Z!kenner@gnu.org +libc-970906 1997-09-05T18:08:34Z!law@redhat.com +libc-970907 1997-09-05T18:08:34Z!law@redhat.com +libc-970908 1997-09-05T18:08:34Z!law@redhat.com +libc-970911 1997-09-10T21:16:20Z!law@redhat.com +libc-970912 1997-09-10T21:16:20Z!law@redhat.com +libc-970913 1997-09-10T21:16:20Z!law@redhat.com +libc-970914 1997-09-10T21:16:20Z!law@redhat.com +libc-970915 1997-09-10T21:16:20Z!law@redhat.com +libc-970916 1997-09-10T21:16:20Z!law@redhat.com +libc-970917 1997-09-10T21:16:20Z!law@redhat.com +libc-970918 1997-09-10T21:16:20Z!law@redhat.com +libc-970919 1997-09-10T21:16:20Z!law@redhat.com +libc-970920 1997-09-10T21:16:20Z!law@redhat.com +libc-970921 1997-09-10T21:16:20Z!law@redhat.com +libc-970922 1997-09-10T21:16:20Z!law@redhat.com +libc-970923 1997-09-10T21:16:20Z!law@redhat.com +libc-970924 1997-09-10T21:16:20Z!law@redhat.com +libc-970925 1997-09-10T21:16:20Z!law@redhat.com +libc-970926 1997-09-10T21:16:20Z!law@redhat.com +libc-970927 1997-09-10T21:16:20Z!law@redhat.com +libc-970928 1997-09-10T21:16:20Z!law@redhat.com +libc-970929 1997-09-10T21:16:20Z!law@redhat.com +libc-970930 1997-09-10T21:16:20Z!law@redhat.com +libc-971001 1997-09-10T21:16:20Z!law@redhat.com +libc-971018 1997-09-10T21:16:20Z!law@redhat.com +libc-971019 1997-09-10T21:16:20Z!law@redhat.com +libc-971020 1997-09-10T21:16:20Z!law@redhat.com +libc-971021 1997-09-10T21:16:20Z!law@redhat.com +libc-971022 1997-09-10T21:16:20Z!law@redhat.com +libc-971023 1997-09-10T21:16:20Z!law@redhat.com +libc-971024 1997-09-10T21:16:20Z!law@redhat.com +libc-971025 1997-09-10T21:16:20Z!law@redhat.com +libc-971026 1997-09-10T21:16:20Z!law@redhat.com +libc-971027 1997-09-10T21:16:20Z!law@redhat.com +libc-971028 1997-09-10T21:16:20Z!law@redhat.com +libc-971029 1997-09-10T21:16:20Z!law@redhat.com +libc-971030 1997-09-10T21:16:20Z!law@redhat.com +libc-971031 1997-09-10T21:16:20Z!law@redhat.com +libc-971101 1997-09-10T21:16:20Z!law@redhat.com +libc-971102 1997-09-10T21:16:20Z!law@redhat.com +libc-971103 1997-09-10T21:16:20Z!law@redhat.com +libc-971104 1997-09-10T21:16:20Z!law@redhat.com +libc-971105 1997-09-10T21:16:20Z!law@redhat.com +libc-971106 1997-09-10T21:16:20Z!law@redhat.com +libc-971107 1997-09-10T21:16:20Z!law@redhat.com +libc-971108 1997-09-10T21:16:20Z!law@redhat.com +libc-971109 1997-09-10T21:16:20Z!law@redhat.com +libc-971110 1997-09-10T21:16:20Z!law@redhat.com +libc-971111 1997-09-10T21:16:20Z!law@redhat.com +libc-971112 1997-09-10T21:16:20Z!law@redhat.com +libc-971113 1997-09-10T21:16:20Z!law@redhat.com +libc-971114 1997-09-10T21:16:20Z!law@redhat.com +libc-971115 1997-09-10T21:16:20Z!law@redhat.com +libc-971116 1997-09-10T21:16:20Z!law@redhat.com +libc-971117 1997-09-10T21:16:20Z!law@redhat.com +libc-971118 1997-09-10T21:16:20Z!law@redhat.com +libc-971120 1997-09-10T21:16:20Z!law@redhat.com +libc-971121 1997-09-10T21:16:20Z!law@redhat.com +libc-971122 1997-09-10T21:16:20Z!law@redhat.com +libc-971123 1997-09-10T21:16:20Z!law@redhat.com +libc-971124 1997-09-10T21:16:20Z!law@redhat.com +libc-971125 1997-09-10T21:16:20Z!law@redhat.com +libc-971126 1997-09-10T21:16:20Z!law@redhat.com +libc-971127 1997-09-10T21:16:20Z!law@redhat.com +libc-971128 1997-09-10T21:16:20Z!law@redhat.com +libc-971129 1997-09-10T21:16:20Z!law@redhat.com +libc-971130 1997-09-10T21:16:20Z!law@redhat.com +libc-971201 1997-09-10T21:16:20Z!law@redhat.com +libc-971203 1997-09-10T21:16:20Z!law@redhat.com +libc-971204 1997-09-10T21:16:20Z!law@redhat.com +libc-971205 1997-09-10T21:16:20Z!law@redhat.com +libc-971206 1997-09-10T21:16:20Z!law@redhat.com +libc-971207 1997-09-10T21:16:20Z!law@redhat.com +libc-971208 1997-09-10T21:16:20Z!law@redhat.com +libc-971209 1997-09-10T21:16:20Z!law@redhat.com +libc-971210 1997-09-10T21:16:20Z!law@redhat.com +libc-971211 1997-09-10T21:16:20Z!law@redhat.com +libc-971212 1997-09-10T21:16:20Z!law@redhat.com +libc-971213 1997-09-10T21:16:20Z!law@redhat.com +libc-971214 1997-09-10T21:16:20Z!law@redhat.com +libc-971217 1997-09-10T21:16:20Z!law@redhat.com +libc-971218 1997-09-10T21:16:20Z!law@redhat.com +libc-971219 1997-09-10T21:16:20Z!law@redhat.com +libc-971220 1997-09-10T21:16:20Z!law@redhat.com +libc-971221 1997-09-10T21:16:20Z!law@redhat.com +libc-971222 1997-09-10T21:16:20Z!law@redhat.com +libc-971223 1997-09-10T21:16:20Z!law@redhat.com +libc-971224 1997-09-10T21:16:20Z!law@redhat.com +libc-971225 1997-09-10T21:16:20Z!law@redhat.com +libc-971226 1997-09-10T21:16:20Z!law@redhat.com +libc-971227 1997-09-10T21:16:20Z!law@redhat.com +libc-971228 1997-09-10T21:16:20Z!law@redhat.com +libc-971229 1997-09-10T21:16:20Z!law@redhat.com +libc-971230 1997-09-10T21:16:20Z!law@redhat.com +libc-971231 1997-09-10T21:16:20Z!law@redhat.com +libc-980103 1997-09-10T21:16:20Z!law@redhat.com +libc-980104 1997-09-10T21:16:20Z!law@redhat.com +libc-980105 1997-09-10T21:16:20Z!law@redhat.com +libc-980106 1997-09-10T21:16:20Z!law@redhat.com +libc-980107 1997-09-10T21:16:20Z!law@redhat.com +libc-980108 1997-09-10T21:16:20Z!law@redhat.com +libc-980109 1997-09-10T21:16:20Z!law@redhat.com +libc-980110 1997-09-10T21:16:20Z!law@redhat.com +libc-980111 1997-09-10T21:16:20Z!law@redhat.com +libc-980112 1997-09-10T21:16:20Z!law@redhat.com +libc-980114 1997-09-10T21:16:20Z!law@redhat.com +libc-980115 1997-09-10T21:16:20Z!law@redhat.com +libc-980116 1997-09-10T21:16:20Z!law@redhat.com +libc-980117 1997-09-10T21:16:20Z!law@redhat.com +libc-980118 1997-09-10T21:16:20Z!law@redhat.com +libc-980119 1997-09-10T21:16:20Z!law@redhat.com +libc-980120 1997-09-10T21:16:20Z!law@redhat.com +libc-980121 1997-09-10T21:16:20Z!law@redhat.com +libc-980122 1997-09-10T21:16:20Z!law@redhat.com +libc-980123 1997-09-10T21:16:20Z!law@redhat.com +libc-980124 1997-09-10T21:16:20Z!law@redhat.com +libc-980125 1997-09-10T21:16:20Z!law@redhat.com +libc-980126 1997-09-10T21:16:20Z!law@redhat.com +libc-980127 1997-09-10T21:16:20Z!law@redhat.com +libc-980128 1997-09-10T21:16:20Z!law@redhat.com +libc-980129 1998-01-28T18:01:29Z!ian@cygnus.com +libc-980130 1998-01-28T18:01:29Z!ian@cygnus.com +libc-980212 1998-02-03T18:27:31Z!kenner@gnu.org +libc-980213 1998-02-03T18:27:31Z!kenner@gnu.org +libc-980214 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980215 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980216 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980217 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980218 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980219 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980220 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980221 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980222 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980223 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980224 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980225 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980226 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980227 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980228 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980301 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980302 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980303 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980304 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980306 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980307 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980308 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980309 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980310 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980311 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980312 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980313 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980314 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980315 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980316 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980317 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980318 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980319 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980320 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980321 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980322 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980323 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980324 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980325 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980326 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980327 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980328 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980329 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980330 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980331 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980401 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980402 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980403 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980404 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980405 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980406 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980407 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980408 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980409 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980410 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980411 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980412 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980413 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980414 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980428 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980429 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980430 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980501 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980502 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980503 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980504 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980505 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980506 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980507 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980508 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980509 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980510 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980512 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980513 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980514 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980515 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980516 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980517 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980518 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980519 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980520 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980521 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980522 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980523 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980524 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980525 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980526 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980527 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980528 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980529 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980530 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980531 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980601 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980602 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980603 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980604 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980605 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980606 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980607 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980608 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980609 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980610 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980611 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980612 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980613 1998-02-13T12:16:46Z!kenner@gnu.org +libc-980614 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980615 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980616 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980617 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980618 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980619 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980620 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980621 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980622 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980623 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980624 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980625 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980626 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980627 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980628 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980629 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980630 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980701 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980702 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980703 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980704 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980705 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980706 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980707 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980708 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980709 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980710 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980711 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980712 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980713 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980714 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980715 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980716 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980717 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980718 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980719 1998-06-13T19:51:10Z!kenner@gnu.org +libc-980720 1998-07-19T22:11:47Z!rms@gnu.org +libc_1_09 1995-02-23T00:08:39Z!kenner@gnu.org +make-3-72-9 1995-01-07T16:57:36Z!roland@gnu.org +make-3-72-10 1995-01-07T16:57:36Z!roland@gnu.org +make-3-72-11 1995-01-07T16:57:36Z!roland@gnu.org +make-3-72-12 1995-01-07T16:57:36Z!roland@gnu.org +make-3-72-13 1995-01-07T16:57:36Z!roland@gnu.org +make-3-73 1995-01-07T16:57:36Z!roland@gnu.org +make-3-73-1 1995-01-07T16:57:36Z!roland@gnu.org +make-3-73-2 1995-01-07T16:57:36Z!roland@gnu.org +make-3-73-3 1995-05-10T15:03:48Z!roland@gnu.org +make-3-74 1995-05-10T15:03:48Z!roland@gnu.org +make-3-74-1 1995-08-07T20:48:08Z!roland@gnu.org +make-3-74-2 1995-08-07T20:48:08Z!roland@gnu.org +make-3-74-3 1996-02-01T18:44:05Z!kwzh@gnu.org +make-3-74-4 1996-03-20T01:08:11Z!roland@gnu.org +make-3-74-5 1996-07-03T23:05:19Z!mrs@apple.com +make-3-74-6 1996-07-03T23:05:19Z!mrs@apple.com +make-3-74-7 1996-07-03T23:05:19Z!mrs@apple.com +make-3-75 1996-07-03T23:05:19Z!mrs@apple.com +make-3-75-1 1997-07-22T21:35:43Z!rms@gnu.org +make-3-75-91 1997-07-22T21:35:43Z!rms@gnu.org +make-3-75-92 1997-08-14T02:16:15Z!eggert@twinsun.com +make-3-75-93 1998-04-14T00:02:53Z!drepper@redhat.com +make-3-76 1997-09-05T21:01:56Z!psmith@BayNetworks.com +make-3-76-1 1997-09-05T21:01:56Z!psmith@BayNetworks.com +release-0-0 1996-07-16T04:47:46Z!kwzh@gnu.org +release-0-1 1996-07-16T04:47:46Z!kwzh@gnu.org +release-1-0 1997-04-11T20:40:28Z!ian@cygnus.com +Release_5_25 1999-02-08T16:53:18Z!barry@zope.org +root-libc-2_0_x-branch 1997-01-07T19:29:28Z!djm@gnu.org diff --git a/admin/notes/unicode b/admin/notes/unicode index 79e0e1d77e4..8ec56698dcd 100644 --- a/admin/notes/unicode +++ b/admin/notes/unicode @@ -187,19 +187,6 @@ nontrivial changes to the build process. leim/MISC-DIC/cangjie-table.cns - * iso-latin-2 - - These files are processed by csplain, a program that requires - Latin-2 input. In 2012 the csplain maintainers started - recommending UTF-8, but these files haven't been converted yet. - - etc/refcards/cs-dired-ref.tex - etc/refcards/cs-refcard.tex - etc/refcards/cs-survival.tex - etc/refcards/sk-dired-ref.tex - etc/refcards/sk-refcard.tex - etc/refcards/sk-survival.tex - * japanese-iso-8bit SKK-JISYO.L is a verbatim copy of a file taken from an external source. @@ -227,11 +214,6 @@ nontrivial changes to the build process. operating in some other language environment. etc/tutorials/TUTORIAL.ja - leim/quail/cyril-jis.el - leim/quail/hanja-jis.el - leim/quail/japanese.el - leim/quail/py-punct.el - leim/quail/pypunct-b5.el lisp/international/ja-dic-cnv.el lisp/international/ja-dic-utl.el lisp/international/kinsoku.el @@ -239,18 +221,27 @@ nontrivial changes to the build process. lisp/international/titdic-cnv.el lisp/language/japan-util.el lisp/language/japanese.el + lisp/leim/quail/cyril-jis.el + lisp/leim/quail/hanja-jis.el + lisp/leim/quail/japanese.el + lisp/leim/quail/py-punct.el + lisp/leim/quail/pypunct-b5.el lisp/term/x-win.el + This file contains just Chinese characters, and has same problem. + Also, it contains characters that cannot be encoded in UTF-8. + + lisp/international/titdic-cnv.el + * utf-8-emacs These files contain characters that cannot be encoded in UTF-8. - leim/quail/tibetan.el - leim/quail/ethiopic.el - lisp/international/titdic-cnv.el lisp/language/tibetan.el lisp/language/tibet-util.el lisp/language/ind-util.el + lisp/leim/quail/ethiopic.el + lisp/leim/quail/tibetan.el This file is part of GNU Emacs. diff --git a/admin/notes/versioning b/admin/notes/versioning new file mode 100644 index 00000000000..e422b22e432 --- /dev/null +++ b/admin/notes/versioning @@ -0,0 +1,26 @@ +GNU EMACS VERSIONING -*- org -*- + +Ref: http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00872.html + +Emacs version numbers have the form + + major.minor[.devel].build + +"build" increments each time Emacs is built in the same location +(without cleaning) and isn't really part of the version. + +bugfix releases increase "minor" by 1. +non-bugfix releases increase "major" by 1, and reset "minor" to 1. +(The division between bugfix and non-bugfix has not always been clear +historically.) + +Unreleased (development) versions have an extra "devel" component. +This is a fairly meaningless number that may be unchanged for a long time. +It is normally 50. +When the release process starts, it changes to 90, 91, ... +When the actual release is made, this component is removed. + +The development version for a new major release has "minor" = 0. +The development version for a new minor release has "minor" = that of +the previous release. + diff --git a/admin/notes/years b/admin/notes/years index 342fe9e2307..c0db1854e30 100644 --- a/admin/notes/years +++ b/admin/notes/years @@ -2,7 +2,7 @@ HOW TO MAINTAIN COPYRIGHT YEARS FOR GNU EMACS Maintaining copyright years is now very simple: every time a new year rolls around, add that year to every FSF (and AIST) copyright notice. -Do this by running the 'admin/update-copyright' script on a fresh bzr +Do this by running the 'admin/update-copyright' script on a fresh repo checkout. Inspect the results for plausibility, then commit them. There's no need to worry about whether an individual file has changed diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs index 5edc8d4d9ad..58fc5f080fe 100755 --- a/admin/quick-install-emacs +++ b/admin/quick-install-emacs @@ -28,7 +28,6 @@ PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse' -PUBLIC_LIBSRC_SCRIPTS='grep-changelog' AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile" @@ -230,9 +229,6 @@ maybe_emit_copy $BUILD/src/emacs $DST_BIN/emacs-$VERSION for F in $PUBLIC_LIBSRC_BINARIES; do maybe_emit_copy $BUILD/lib-src/$F $DST_BIN/$F done -for F in $PUBLIC_LIBSRC_SCRIPTS; do - maybe_emit_copy $SRC/lib-src/$F $DST_BIN/$F -done if test x"$SRC" = x"$BUILD"; then PFXS="$BUILD" @@ -259,7 +255,7 @@ for SUBDIR in lisp leim etc lib-src info; do ;; lib-src) DST="$DST_LIBEXEC" - AVOID_PAT="`echo "($AVOID ($PUBLIC_LIBSRC_BINARIES $PUBLIC_LIBSRC_SCRIPTS)\$)" | tr ' ' '|'`" + AVOID_PAT="`echo "($AVOID ($PUBLIC_LIBSRC_BINARIES)\$)" | tr ' ' '|'`" ;; info) DST="$DST_INFO" diff --git a/admin/unidata/.gitignore b/admin/unidata/.gitignore deleted file mode 100644 index 3f2d8ca551d..00000000000 --- a/admin/unidata/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.elc -unidata.txt - diff --git a/admin/unidata/BidiBrackets.txt b/admin/unidata/BidiBrackets.txt new file mode 100644 index 00000000000..2a0cc0c7a69 --- /dev/null +++ b/admin/unidata/BidiBrackets.txt @@ -0,0 +1,176 @@ +# BidiBrackets-7.0.0.txt +# Date: 2014-01-21, 02:30:00 GMT [AG, LI, KW] +# +# Bidi_Paired_Bracket and Bidi_Paired_Bracket_Type Properties +# +# This file is a normative contributory data file in the Unicode +# Character Database. +# +# Copyright (c) 1991-2014 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Bidi_Paired_Bracket is a normative property of type Miscellaneous, +# which establishes a mapping between characters that are treated as +# bracket pairs by the Unicode Bidirectional Algorithm. +# +# Bidi_Paired_Bracket_Type is a normative property of type Enumeration, +# which classifies characters into opening and closing paired brackets +# for the purposes of the Unicode Bidirectional Algorithm. +# +# This file lists the set of code points with Bidi_Paired_Bracket_Type +# property values Open and Close. The set is derived from the character +# properties General_Category (gc), Bidi_Class (bc), Bidi_Mirrored (Bidi_M), +# and Bidi_Mirroring_Glyph (bmg), as follows: two characters, A and B, +# form a bracket pair if A has gc=Ps and B has gc=Pe, both have bc=ON and +# Bidi_M=Y, and bmg of A is B. Bidi_Paired_Bracket (bpb) maps A to B and +# vice versa, and their Bidi_Paired_Bracket_Type (bpt) property values are +# Open (o) and Close (c), respectively. +# +# For legacy reasons, the characters U+FD3E ORNATE LEFT PARENTHESIS and +# U+FD3F ORNATE RIGHT PARENTHESIS do not mirror in bidirectional display +# and therefore do not form a bracket pair. +# +# The Unicode property value stability policy guarantees that characters +# which have bpt=o or bpt=c also have bc=ON and Bidi_M=Y. As a result, an +# implementation can optimize the lookup of the Bidi_Paired_Bracket_Type +# property values Open and Close by restricting the processing to characters +# with bc=ON. +# +# The format of the file is three fields separated by a semicolon. +# Field 0: Unicode code point value, represented as a hexadecimal value +# Field 1: Bidi_Paired_Bracket property value, a code point value or +# Field 2: Bidi_Paired_Bracket_Type property value, one of the following: +# o Open +# c Close +# n None +# The names of the characters in field 0 are given in comments at the end +# of each line. +# +# For information on bidirectional paired brackets, see UAX #9: Unicode +# Bidirectional Algorithm, at http://www.unicode.org/unicode/reports/tr9/ +# +# This file was originally created by Andrew Glass and Laurentiu Iancu +# for Unicode 6.3. + +0028; 0029; o # LEFT PARENTHESIS +0029; 0028; c # RIGHT PARENTHESIS +005B; 005D; o # LEFT SQUARE BRACKET +005D; 005B; c # RIGHT SQUARE BRACKET +007B; 007D; o # LEFT CURLY BRACKET +007D; 007B; c # RIGHT CURLY BRACKET +0F3A; 0F3B; o # TIBETAN MARK GUG RTAGS GYON +0F3B; 0F3A; c # TIBETAN MARK GUG RTAGS GYAS +0F3C; 0F3D; o # TIBETAN MARK ANG KHANG GYON +0F3D; 0F3C; c # TIBETAN MARK ANG KHANG GYAS +169B; 169C; o # OGHAM FEATHER MARK +169C; 169B; c # OGHAM REVERSED FEATHER MARK +2045; 2046; o # LEFT SQUARE BRACKET WITH QUILL +2046; 2045; c # RIGHT SQUARE BRACKET WITH QUILL +207D; 207E; o # SUPERSCRIPT LEFT PARENTHESIS +207E; 207D; c # SUPERSCRIPT RIGHT PARENTHESIS +208D; 208E; o # SUBSCRIPT LEFT PARENTHESIS +208E; 208D; c # SUBSCRIPT RIGHT PARENTHESIS +2308; 2309; o # LEFT CEILING +2309; 2308; c # RIGHT CEILING +230A; 230B; o # LEFT FLOOR +230B; 230A; c # RIGHT FLOOR +2329; 232A; o # LEFT-POINTING ANGLE BRACKET +232A; 2329; c # RIGHT-POINTING ANGLE BRACKET +2768; 2769; o # MEDIUM LEFT PARENTHESIS ORNAMENT +2769; 2768; c # MEDIUM RIGHT PARENTHESIS ORNAMENT +276A; 276B; o # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT +276B; 276A; c # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT +276C; 276D; o # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT +276D; 276C; c # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT +276E; 276F; o # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT +276F; 276E; c # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT +2770; 2771; o # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT +2771; 2770; c # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT +2772; 2773; o # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT +2773; 2772; c # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT +2774; 2775; o # MEDIUM LEFT CURLY BRACKET ORNAMENT +2775; 2774; c # MEDIUM RIGHT CURLY BRACKET ORNAMENT +27C5; 27C6; o # LEFT S-SHAPED BAG DELIMITER +27C6; 27C5; c # RIGHT S-SHAPED BAG DELIMITER +27E6; 27E7; o # MATHEMATICAL LEFT WHITE SQUARE BRACKET +27E7; 27E6; c # MATHEMATICAL RIGHT WHITE SQUARE BRACKET +27E8; 27E9; o # MATHEMATICAL LEFT ANGLE BRACKET +27E9; 27E8; c # MATHEMATICAL RIGHT ANGLE BRACKET +27EA; 27EB; o # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +27EB; 27EA; c # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC; 27ED; o # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +27ED; 27EC; c # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +27EE; 27EF; o # MATHEMATICAL LEFT FLATTENED PARENTHESIS +27EF; 27EE; c # MATHEMATICAL RIGHT FLATTENED PARENTHESIS +2983; 2984; o # LEFT WHITE CURLY BRACKET +2984; 2983; c # RIGHT WHITE CURLY BRACKET +2985; 2986; o # LEFT WHITE PARENTHESIS +2986; 2985; c # RIGHT WHITE PARENTHESIS +2987; 2988; o # Z NOTATION LEFT IMAGE BRACKET +2988; 2987; c # Z NOTATION RIGHT IMAGE BRACKET +2989; 298A; o # Z NOTATION LEFT BINDING BRACKET +298A; 2989; c # Z NOTATION RIGHT BINDING BRACKET +298B; 298C; o # LEFT SQUARE BRACKET WITH UNDERBAR +298C; 298B; c # RIGHT SQUARE BRACKET WITH UNDERBAR +298D; 2990; o # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER +298E; 298F; c # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +298F; 298E; o # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +2990; 298D; c # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +2991; 2992; o # LEFT ANGLE BRACKET WITH DOT +2992; 2991; c # RIGHT ANGLE BRACKET WITH DOT +2993; 2994; o # LEFT ARC LESS-THAN BRACKET +2994; 2993; c # RIGHT ARC GREATER-THAN BRACKET +2995; 2996; o # DOUBLE LEFT ARC GREATER-THAN BRACKET +2996; 2995; c # DOUBLE RIGHT ARC LESS-THAN BRACKET +2997; 2998; o # LEFT BLACK TORTOISE SHELL BRACKET +2998; 2997; c # RIGHT BLACK TORTOISE SHELL BRACKET +29D8; 29D9; o # LEFT WIGGLY FENCE +29D9; 29D8; c # RIGHT WIGGLY FENCE +29DA; 29DB; o # LEFT DOUBLE WIGGLY FENCE +29DB; 29DA; c # RIGHT DOUBLE WIGGLY FENCE +29FC; 29FD; o # LEFT-POINTING CURVED ANGLE BRACKET +29FD; 29FC; c # RIGHT-POINTING CURVED ANGLE BRACKET +2E22; 2E23; o # TOP LEFT HALF BRACKET +2E23; 2E22; c # TOP RIGHT HALF BRACKET +2E24; 2E25; o # BOTTOM LEFT HALF BRACKET +2E25; 2E24; c # BOTTOM RIGHT HALF BRACKET +2E26; 2E27; o # LEFT SIDEWAYS U BRACKET +2E27; 2E26; c # RIGHT SIDEWAYS U BRACKET +2E28; 2E29; o # LEFT DOUBLE PARENTHESIS +2E29; 2E28; c # RIGHT DOUBLE PARENTHESIS +3008; 3009; o # LEFT ANGLE BRACKET +3009; 3008; c # RIGHT ANGLE BRACKET +300A; 300B; o # LEFT DOUBLE ANGLE BRACKET +300B; 300A; c # RIGHT DOUBLE ANGLE BRACKET +300C; 300D; o # LEFT CORNER BRACKET +300D; 300C; c # RIGHT CORNER BRACKET +300E; 300F; o # LEFT WHITE CORNER BRACKET +300F; 300E; c # RIGHT WHITE CORNER BRACKET +3010; 3011; o # LEFT BLACK LENTICULAR BRACKET +3011; 3010; c # RIGHT BLACK LENTICULAR BRACKET +3014; 3015; o # LEFT TORTOISE SHELL BRACKET +3015; 3014; c # RIGHT TORTOISE SHELL BRACKET +3016; 3017; o # LEFT WHITE LENTICULAR BRACKET +3017; 3016; c # RIGHT WHITE LENTICULAR BRACKET +3018; 3019; o # LEFT WHITE TORTOISE SHELL BRACKET +3019; 3018; c # RIGHT WHITE TORTOISE SHELL BRACKET +301A; 301B; o # LEFT WHITE SQUARE BRACKET +301B; 301A; c # RIGHT WHITE SQUARE BRACKET +FE59; FE5A; o # SMALL LEFT PARENTHESIS +FE5A; FE59; c # SMALL RIGHT PARENTHESIS +FE5B; FE5C; o # SMALL LEFT CURLY BRACKET +FE5C; FE5B; c # SMALL RIGHT CURLY BRACKET +FE5D; FE5E; o # SMALL LEFT TORTOISE SHELL BRACKET +FE5E; FE5D; c # SMALL RIGHT TORTOISE SHELL BRACKET +FF08; FF09; o # FULLWIDTH LEFT PARENTHESIS +FF09; FF08; c # FULLWIDTH RIGHT PARENTHESIS +FF3B; FF3D; o # FULLWIDTH LEFT SQUARE BRACKET +FF3D; FF3B; c # FULLWIDTH RIGHT SQUARE BRACKET +FF5B; FF5D; o # FULLWIDTH LEFT CURLY BRACKET +FF5D; FF5B; c # FULLWIDTH RIGHT CURLY BRACKET +FF5F; FF60; o # FULLWIDTH LEFT WHITE PARENTHESIS +FF60; FF5F; c # FULLWIDTH RIGHT WHITE PARENTHESIS +FF62; FF63; o # HALFWIDTH LEFT CORNER BRACKET +FF63; FF62; c # HALFWIDTH RIGHT CORNER BRACKET + +# EOF diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in index 6b253ea565b..94504818d12 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in @@ -28,12 +28,12 @@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ EMACS = ${top_builddir}/src/emacs -DSTDIR = ${top_srcdir}/lisp/international +unidir = ${top_srcdir}/lisp/international emacs = "${EMACS}" -batch --no-site-file --no-site-lisp -.PHONY: all compile install +.PHONY: all unifiles -all: ${top_srcdir}/src/macuvs.h ${DSTDIR}/charprop.el +all: ${top_srcdir}/src/macuvs.h unifiles ## Specify .elc as an order-only prereq so as to not needlessly rebuild ## target just because the .elc is missing. @@ -41,7 +41,7 @@ all: ${top_srcdir}/src/macuvs.h ${DSTDIR}/charprop.el ${top_srcdir}/src/macuvs.h: ${srcdir}/uvs.el ${srcdir}/IVD_Sequences.txt | \ ${srcdir}/uvs.elc ${emacs} -L ${srcdir} -l uvs \ - --eval '(uvs-print-table-ivd "${srcdir}/IVD_Sequences.txt" "Adobe-Japan1")' \ + --eval '(uvs-print-table-ivd (unmsys--file-name "${srcdir}/IVD_Sequences.txt") "Adobe-Japan1")' \ > $@ %.elc: %.el @@ -50,30 +50,33 @@ ${top_srcdir}/src/macuvs.h: ${srcdir}/uvs.el ${srcdir}/IVD_Sequences.txt | \ unidata.txt: ${srcdir}/UnicodeData.txt sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < $< > $@ -${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt | \ +FORCE = +FORCE: +.PHONY: FORCE + +${unidir}/charprop.el: ${FORCE} ${srcdir}/unidata-gen.el \ + ${srcdir}/UnicodeData.txt ${srcdir}/BidiMirroring.txt \ + ${srcdir}/BidiBrackets.txt | \ ${srcdir}/unidata-gen.elc unidata.txt -if [ -f "$@" ]; then \ - cd ${DSTDIR} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \ + cd ${unidir} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \ fi ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \ - ${srcdir} "${DSTDIR}" + ${srcdir} "${unidir}" -## Like the above, but generate in PWD rather than lisp/international. -charprop.el: ${srcdir}/unidata-gen.elc unidata.txt - ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \ - ${srcdir} +## Check for deleted uni- files, and if any such, force a rebuild. +## Perhaps a more elegant way would be for the previous rule +## to generate a Makefile fragment explicitly listing the uni- files, +## which this file could include. If no fragment, rebuild everything. +unifiles: ${unidir}/charprop.el + for f in `sed -n 's/^;; FILE: //p' < $<`; do \ + [ -f ${unidir}/$$f ] || { ${MAKE} $< FORCE=FORCE || exit 1; break; };\ + done .PHONY: clean bootstrap-clean distclean maintainer-clean extraclean -install: charprop.el - cp charprop.el ${DSTDIR} - cp `sed -n 's/^;; FILE: //p' < charprop.el` ${DSTDIR} - clean: - if test -f charprop.el; then \ - rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \ - fi - rm -f charprop.el ${srcdir}/*.elc unidata.txt + rm -f ${srcdir}/*.elc unidata.txt bootstrap-clean: clean @@ -87,7 +90,7 @@ maintainer-clean: distclean ## Cf leim/ja-dic (which is much slower). extraclean: rm -f ${top_srcdir}/src/macuvs.h - if test -f ${DSTDIR}/charprop.el; then \ - (cd ${DSTDIR} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \ - rm -f ${DSTDIR}/charprop.el; \ + if test -f ${unidir}/charprop.el; then \ + (cd ${unidir} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \ + rm -f ${unidir}/charprop.el; \ fi diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el index ff45b79aab7..d10b260b470 100644 --- a/admin/unidata/unidata-gen.el +++ b/admin/unidata/unidata-gen.el @@ -88,6 +88,8 @@ ;; CHAR-or-RANGE: a character code or a cons of character codes ;; PROPn: string representing the nth property value +(eval-when-compile (require 'cl-lib)) + (defvar unidata-list nil) ;; Name of the directory containing files of Unicode Character Database. @@ -152,7 +154,8 @@ ;; PROP: character property ;; INDEX: index to each element of unidata-list for PROP. ;; It may be a function that generates an alist of character codes -;; vs. the corresponding property values. +;; vs. the corresponding property values. Currently, only character +;; codepoints or symbol values are supported in this case. ;; GENERATOR: function to generate a char-table ;; FILENAME: filename to store the char-table ;; DOCSTRING: docstring for the property @@ -271,7 +274,23 @@ is the character itself." "Unicode bidi-mirroring characters. Property value is a character that has the corresponding mirroring image or nil. The value nil means that the actual property value of a character -is the character itself."))) +is the character itself.") + (paired-bracket + unidata-gen-brackets-list unidata-gen-table-character "uni-brackets.el" + "Unicode bidi paired-bracket characters. +Property value is the paired bracket character, or nil. +The value nil means that the character is neither an opening nor +a closing paired bracket." + string) + (bracket-type + unidata-gen-bracket-type-list unidata-gen-table-symbol "uni-brackets.el" + "Unicode bidi paired-bracket type. +Property value is a symbol `o' (Open), `c' (Close), or `n' (None)." + unidata-describe-bidi-bracket-type + n + ;; The order of elements must be in sync with bidi_bracket_type_t + ;; in src/dispextern.h. + (n o c)))) ;; Functions to access the above data. (defsubst unidata-prop-index (prop) (nth 1 (assq prop unidata-prop-alist))) @@ -449,7 +468,10 @@ is the character itself."))) (unidata-encode-val val-list (nth 2 elm))) (set-char-table-range table (cons (car elm) (nth 1 elm)) (nth 2 elm))) - (setq tail unidata-list) + (if (functionp prop-idx) + (setq tail (funcall prop-idx) + prop-idx 1) + (setq tail unidata-list)) (while tail (setq elt (car tail) tail (cdr tail)) (setq range (car elt) @@ -854,7 +876,7 @@ is the character itself."))) ;; The following command yields a file of about 96K bytes. ;; % gawk -F ';' '{print $1,$2;}' < UnicodeData.txt | gzip > temp.gz ;; With the following function, we can get a file of almost the same -;; the size. +;; size. ;; Generate a char-table for character names. @@ -923,11 +945,7 @@ is the character itself."))) (dotimes (i (length vec)) (dolist (elt (aref vec i)) (if (symbolp elt) - (let ((slot (assq elt word-list))) - (if slot - (setcdr slot (1+ (cdr slot))) - (setcdr word-list - (cons (cons elt 1) (cdr word-list)))))))) + (cl-incf (alist-get elt (cdr word-list) 0))))) (set-char-table-range table (cons start limit) vec)))))) (setq word-list (sort (cdr word-list) #'(lambda (x y) (> (cdr x) (cdr y))))) @@ -1159,6 +1177,12 @@ is the character itself."))) (string ?')))) val " ")) +(defun unidata-describe-bidi-bracket-type (val) + (cdr (assq val + '((n . "Not a paired bracket character.") + (o . "Opening paired bracket character.") + (c . "Closing paired bracket character."))))) + (defun unidata-gen-mirroring-list () (let ((head (list nil)) tail) @@ -1172,27 +1196,74 @@ is the character itself."))) (setq tail (setcdr tail (list (list char mirror))))))) (cdr head))) +(defun unidata-gen-brackets-list () + (let ((head (list nil)) + tail) + (with-temp-buffer + (insert-file-contents (expand-file-name "BidiBrackets.txt" unidata-dir)) + (goto-char (point-min)) + (setq tail head) + (while (re-search-forward + "^\\([0-9A-F]+\\);\\s +\\([0-9A-F]+\\);\\s +\\([oc]\\)" + nil t) + (let ((char (string-to-number (match-string 1) 16)) + (paired (match-string 2))) + (setq tail (setcdr tail (list (list char paired))))))) + (cdr head))) + +(defun unidata-gen-bracket-type-list () + (let ((head (list nil)) + tail) + (with-temp-buffer + (insert-file-contents (expand-file-name "BidiBrackets.txt" unidata-dir)) + (goto-char (point-min)) + (setq tail head) + (while (re-search-forward + "^\\([0-9A-F]+\\);\\s +\\([0-9A-F]+\\);\\s +\\([oc]\\)" + nil t) + (let ((char (string-to-number (match-string 1) 16)) + (type (match-string 3))) + (setq tail (setcdr tail (list (list char type))))))) + (cdr head))) + ;; Verify if we can retrieve correct values from the generated ;; char-tables. +;; +;; Use like this: +;; +;; (let ((unidata-dir "/path/to/admin/unidata")) +;; (unidata-setup-list "unidata.txt") +;; (unidata-check)) (defun unidata-check () (dolist (elt unidata-prop-alist) (let* ((prop (car elt)) (index (unidata-prop-index prop)) (generator (unidata-prop-generator prop)) + (default-value (unidata-prop-default prop)) + (val-list (unidata-prop-val-list prop)) (table (progn (message "Generating %S table..." prop) - (funcall generator prop))) + (funcall generator prop default-value val-list))) (decoder (char-table-extra-slot table 1)) + (alist (and (functionp index) + (funcall index))) (check #x400)) (dolist (e unidata-list) - (let ((char (car e)) - (val1 (nth index e)) - val2) + (let* ((char (car e)) + (val1 + (if alist (nth 1 (assoc char alist)) + (nth index e))) + val2) (if (and (stringp val1) (= (length val1) 0)) (setq val1 nil)) - (unless (consp char) - (setq val2 (funcall decoder char (aref table char) table)) + (unless (or (consp char) + (integerp decoder)) + (setq val2 + (cond ((functionp decoder) + (funcall decoder char (aref table char) table)) + (t ; must be nil + (aref table char)))) (if val1 (cond ((eq generator 'unidata-gen-table-symbol) (setq val1 (intern val1))) @@ -1201,11 +1272,17 @@ is the character itself."))) ((eq generator 'unidata-gen-table-character) (setq val1 (string-to-number val1 16))) ((eq generator 'unidata-gen-table-decomposition) - (setq val1 (unidata-split-decomposition val1))))) + (setq val1 (unidata-split-decomposition val1)))) + (cond ((eq prop 'decomposition) + (setq val1 (list char))) + ((eq prop 'bracket-type) + (setq val1 'n)))) (when (>= char check) (message "%S %04X" prop check) (setq check (+ check #x400))) (or (equal val1 val2) + ;; characters get a 'name' property of nil + (and (eq prop 'name) (string= val1 "") (null val2)) (insert (format "> %04X %S\n< %04X %S\n" char val1 char val2))) (sit-for 0))))))) @@ -1242,6 +1319,9 @@ is the character itself."))) (describer (unidata-prop-describer prop)) (default-value (unidata-prop-default prop)) (val-list (unidata-prop-val-list prop)) + ;; Avoid creating backup files for those uni-*.el files + ;; that hold more than one table. + (backup-inhibited t) table) ;; Filename in this comment line is extracted by sed in ;; Makefile. @@ -1261,7 +1341,7 @@ is the character itself."))) (setq describer (symbol-function describer))) (set-char-table-extra-slot table 3 describer)) (if (bobp) - (insert ";; Copyright (C) 1991-2013 Unicode, Inc. + (insert ";; Copyright (C) 1991-2014 Unicode, Inc. ;; This file was generated from the Unicode data files at ;; http://www.unicode.org/Public/UNIDATA/. ;; See lisp/international/README for the copyright and permission notice.\n")) diff --git a/admin/update-copyright b/admin/update-copyright index 2b33506f9c1..5612d7f7386 100755 --- a/admin/update-copyright +++ b/admin/update-copyright @@ -45,14 +45,14 @@ sed 's/\\def\\year[{][0-9]*[}]/\\def\\year{'"$UPDATE_COPYRIGHT_YEAR"'}'/g \ } && rm $emacsver.aux && -bzr_files=$(bzr ls -RV --kind file) && +repo_files=$(git ls-files) && # Do not update the copyright of files that have one or more of the # following problems: # . They are license files, maintained by the FSF, with their own dates. # . Their format cannot withstand changing the contents of copyright strings. -updatable_files=$(find $bzr_files \ +updatable_files=$(find $repo_files \ ! -name COPYING \ ! -name doclicense.texi \ ! -name gpl.texi \ diff --git a/admin/update_autogen b/admin/update_autogen index ef0edfef50c..af7ea83dd91 100755 --- a/admin/update_autogen +++ b/admin/update_autogen @@ -305,9 +305,6 @@ EOF modified=$(status $basegen) || die - ## bzr status output is always relative to top-level, not PWD. - [ "$vcs" = "bzr" ] && cd $oldpwd - commit "generated" $modified || die "commit error" exit 0 diff --git a/autogen.sh b/autogen.sh index 48e6d19c69d..614bdc71b61 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,5 +1,5 @@ #!/bin/sh -### autogen.sh - tool to help build Emacs from a bzr checkout +### autogen.sh - tool to help build Emacs from a repository checkout ## Copyright (C) 2011-2014 Free Software Foundation, Inc. @@ -23,8 +23,8 @@ ### Commentary: -## The Emacs bzr repository does not include the configure script -## (and associated helpers). The first time you fetch Emacs from bzr, +## The Emacs repository does not include the configure script (and +## associated helpers). The first time you fetch Emacs from the repo, ## run this script to generate the necessary files. ## For more details, see the file INSTALL.REPO. @@ -145,7 +145,7 @@ if [ x"$missing" != x ]; then cat < src/stamp-h.in || exit +## Install Git hooks, if using Git. +if test -d .git/hooks; then + tailored_hooks= + sample_hooks= + + for hook in commit-msg pre-commit; do + cmp build-aux/git-hooks/$hook .git/hooks/$hook >/dev/null 2>&1 || + tailored_hooks="$tailored_hooks $hook" + done + for hook in applypatch-msg pre-applypatch; do + cmp .git/hooks/$hook.sample .git/hooks/$hook >/dev/null 2>&1 || + sample_hooks="$sample_hooks $hook" + done + + if test -n "$tailored_hooks$sample_hooks"; then + echo "Installing git hooks..." + + case `cp --help 2>/dev/null` in + *--backup*--verbose*) + cp_options='--backup=numbered --verbose';; + *) + cp_options='';; + esac + + if test -n "$tailored_hooks"; then + for hook in $tailored_hooks; do + cp $cp_options build-aux/git-hooks/$hook .git/hooks || exit + chmod a-w .git/hooks/$hook || exit + done + fi + + if test -n "$sample_hooks"; then + for hook in $sample_hooks; do + cp $cp_options .git/hooks/$hook.sample .git/hooks/$hook || exit + chmod a-w .git/hooks/$hook || exit + done + fi + fi +fi + echo "You can now run './configure'." exit 0 diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg new file mode 100755 index 00000000000..5eb994c6fe0 --- /dev/null +++ b/build-aux/git-hooks/commit-msg @@ -0,0 +1,122 @@ +#!/bin/sh +# Check the format of GNU Emacs change log entries. + +# Copyright 2014 Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs 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 3 of the License, or +# (at your option) any later version. + +# GNU Emacs 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 GNU Emacs. If not, see . + +# Written by Paul Eggert. + +# Prefer gawk if available, as it handles NUL bytes properly. +if type gawk >/dev/null 2>&1; then + awk=gawk +else + awk=awk +fi + +# Use a UTF-8 locale if available, so that the UTF-8 check works. +# Use U+00A2 CENT SIGN to test whether the locale works. +cent_sign_utf8_octal='\302\242' +at_sign=` + printf "${cent_sign_utf8_octal}@" | + $awk '{print substr($0, 2)}' 2>/dev/null +` +if test "$at_sign" != @; then + at_sign=` + printf "${cent_sign_utf8_octal}@" | + LC_ALL=en_US.UTF-8 $awk '{print substr($0, 2)}' 2>/dev/null + ` + if test "$at_sign" = @; then + LC_ALL=en_US.UTF-8; export LC_ALL + fi +fi + +# Check the log entry. +exec $awk ' + BEGIN { + if (" " ~ /[[:space:]]/) { + space = "[[:space:]]" + non_space = "[^[:space:]]" + non_print = "[^[:print:]]" + } else { + # mawk 1.3.3 does not support POSIX bracket expressions. + # Approximate them as best we can. + space = "[ \f\n\r\t\v]" + non_space = "[^ \f\n\r\t\v]" + non_print = "[\1-\37\177]" + } + } + + /^#/ { next } + + !/^.*$/ { + print "Invalid character (not UTF-8) in commit message" + status = 1 + } + + nlines == 0 && $0 !~ non_space { next } + + { nlines++ } + + nlines == 1 { + # Ignore special markers used by "git rebase --autosquash". + if (! sub(/^fixup! /, "")) + sub(/^squash! /, "") + + if ($0 ~ "^" space) { + print "White space at start of commit message'\''s first line" + status = 1 + } + } + + nlines == 2 && $0 ~ non_space { + print "Nonempty second line in commit message" + status = 1 + } + + 72 < length && $0 ~ space { + print "Line longer than 72 characters in commit message" + status = 1 + } + + 140 < length { + print "Word longer than 140 characters in commit message" + status = 1 + } + + /^Signed-off-by: / { + print "'\''Signed-off-by:'\'' in commit message" + status = 1 + } + + $0 ~ non_print { + if (gsub(/\t/, "")) { + print "Tab in commit message; please use spaces instead" + } + if ($0 ~ non_print) { + print "Unprintable character in commit message" + } + status = 1 + } + + END { + if (nlines == 0) { + print "Empty commit message" + status = 1 + } + exit status + } +' <"$1" diff --git a/build-aux/git-hooks/pre-commit b/build-aux/git-hooks/pre-commit new file mode 100755 index 00000000000..c24f9bb48d3 --- /dev/null +++ b/build-aux/git-hooks/pre-commit @@ -0,0 +1,46 @@ +#!/bin/sh +# Check file names in git commits for GNU Emacs. + +# Copyright 2014 Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs 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 3 of the License, or +# (at your option) any later version. + +# GNU Emacs 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 GNU Emacs. If not, see . + +LC_ALL=C +export LC_ALL + +exec >&2 + +. git-sh-setup + +git_diff='git diff --cached --name-only --diff-filter=A' +ok_chars='\0+[=-=]./0-9A-Z_a-z' +nbadchars=`$git_diff -z HEAD | tr -d "$ok_chars" | wc -c` + +if test "$nbadchars" -ne 0; then + echo "File name does not consist of -+./_ or ASCII letters or digits." + exit 1 +fi + +new_names=`$git_diff HEAD` || exit +case " +$new_names" in + */-* | *' +'-*) + echo "File name component begins with '-'." + exit 1;; +esac + +exec git diff-index --check --cached HEAD -- diff --git a/build-aux/make-info-dir b/build-aux/make-info-dir index 3f927382ded..10a0b75fd6a 100755 --- a/build-aux/make-info-dir +++ b/build-aux/make-info-dir @@ -31,76 +31,44 @@ ## installation directory. It does not handle info/dir being present ## but missing some entries. -### Code: - -if test $# -ne 1; then - echo "Specify destination file" - exit 1 -fi - -outfile=$1 - -echo "Creating $outfile..." - -if test -f "$outfile"; then - echo "$outfile already present" - exit 1 -fi - ## Header contains non-printing characters, so this is more -## reliable than using echo. -basefile=build-aux/dir_top +## reliable than using awk. +cat <"${1?}" || exit +shift -if test ! -f "$basefile"; then - echo "$basefile not found" - exit 1 -fi - - -cp $basefile $outfile - - -## FIXME inefficient looping. -## What we should do is loop once over files, collecting topic and -## direntry information for each. Then loop over topics and write -## out the results. But that seems to require associative arrays, -## and I do not know how to do that with portable sh. -## Could use Emacs instead of sh, but till now info generation does -## not require Emacs to have been built. -for topic in "Texinfo documentation system" "Emacs" "Emacs lisp" \ - "Emacs editing modes" "Emacs network features" "Emacs misc features" \ - "Emacs lisp libraries"; do - - cat - <> $outfile - -$topic -EOF - ## Bit faster than doc/*/*.texi. - for file in doc/emacs/emacs.texi doc/lispintro/emacs-lisp-intro.texi \ - doc/lispref/elisp.texi doc/misc/*.texi; do - - ## FIXME do not ignore w32 if OS is w32. - case $file in - *-xtra.texi|*efaq-w32.texi|*doclicense.texi) continue ;; - esac - - dircat=`sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file` - - ## TODO warn about unknown topics. - ## (check-info in top-level Makefile does that.) - test "$dircat" = "$topic" || continue - - - sed -n -e 's/@value{emacsname}/Emacs/' \ - -e 's/@acronym{\([A-Z]*\)}/\1/' \ - -e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \ - $file >> $outfile - - done -done - -echo "Created $outfile" - -exit 0 - -### make-info-dir ends here +exec "${AWK-awk}" ' + function detexinfo() { + gsub(/@value{emacsname}/, "Emacs") + gsub(/@[^{]*\{/, "") + gsub(/}/, "") + } + BEGIN { + ntopics = 0 + topic[ntopics++] = "Texinfo documentation system" + topic[ntopics++] = "Emacs" + topic[ntopics++] = "Emacs lisp" + topic[ntopics++] = "Emacs editing modes" + topic[ntopics++] = "Emacs network features" + topic[ntopics++] = "Emacs misc features" + topic[ntopics++] = "Emacs lisp libraries" + topic[ntopics] = "Unknown category" + } + /^@dircategory / { + sub(/^@dircategory /, "") + detexinfo() + for (dircat = 0; dircat < ntopics && topic[dircat] != $0; dircat++) + continue; + } + /^@direntry/, /^@end direntry/ { + # FIXME do not ignore w32 if OS is w32. + if ($0 !~ /^@/ && $0 !~ /w32/) { + detexinfo() + data[dircat] = data[dircat] $0 "\n" + } + } + END { + for (dircat = 0; dircat <= ntopics; dircat++) + if (data[dircat]) + printf "\n%s\n%s", topic[dircat], data[dircat] + } +' "${@?}" diff --git a/build-aux/msys-to-w32 b/build-aux/msys-to-w32 index 4c92cc91a3d..f0fd61d823f 100755 --- a/build-aux/msys-to-w32 +++ b/build-aux/msys-to-w32 @@ -1,6 +1,5 @@ -#!/bin/sh -# Take a list of MSYS-compatible paths and convert them to native -# MS-Windows format. +#!/bin/bash +# Convert a MSYS path list to Windows-native format. # Status is zero if successful, nonzero otherwise. # Copyright (C) 2013-2014 Free Software Foundation, Inc. @@ -21,36 +20,19 @@ # Take only the basename from the full pathname me=${0//*\//} -usage="usage: ${me} PATHLIST [MUSTEXIST] [SEPARATOR [SEPARATOR2]]" +usage="usage: ${me} PATHLIST" help="$usage or: ${me} OPTION -Convert MSYS-compatible paths to MS-Windows native format. +Convert a MSYS path list to Windows-native format. + +PATHLIST should be a colon-separated list of MSYS paths, which will be +written to the standard output after performing these transformations: -PATHLIST should be a list of paths separated by SEPARATOR. This list -will be written to the standard output after performing the following -transformations: 1. Discard empty paths. -2. Replace backslashes with forward slashes. -3. Replace two consecutive slashes with single ones. -4. Translate to Windows-native format those paths that are not in such - format already. The translated paths will not end with a slash, - except for root directories (e.g. 'c:/' or 'c:/foo'). Paths - starting with '%emacs_dir%' will not be translated. -5. Escape with backslashes every occurrence of SEPARATOR2 within the paths. -6. Concatenate the translated paths with SEPARATOR2. - -If MUSTEXIST is 'Y' or not supplied, then each path in PATHLIST must -exist. Otherwise, only some part of each path is required to exist -(the deepest existing subpath will be translated and the remainder -concatenated to the translation). - -If SEPARATOR is not supplied, PATHLIST will be regarded as a single -path. - -If SEPARATOR2 is not supplied, it will take the same value as -SEPARATOR. +2. Replace: '\' with '/', '//' with '/' and ':' with ';'. +3. Translate absolute paths to Windows-native format. Options: --help display this help and exit @@ -73,98 +55,52 @@ do esac done -{ test $# -ge 1 && test $# -le 4; } || -{ echo "${me}: $usage" >&2; exit 1; } - -# Arguments -pathlist="$1" -mustexist="${2:-Y}" -separator="$3" -separator2="${4:-${separator}}" - -# Split pathlist into its path components -if test -n "$separator" -then - IFS=${separator} patharray=( $pathlist ) -else - patharray=( "$pathlist" ) -fi +[ $# -eq 1 ] || { + echo "${me}: $usage" >&2 + exit 1 +} w32pathlist="" -for p in "${patharray[@]}" +# Put each MSYS path in one positional parameter and iterate through +# them +IFS=: +set -- $1 + +for p do - # Skip empty paths - test "$p" = "" && continue + [ -z "$p" ] && continue - # Replace '\' with '/' and '//' with '/' - p="${p//\\//}" - p="${p//\/\///}" - - if test "${p:0:11}" = "%emacs_dir%" + if [ "${p:0:1}" != "/" ] then - # Paths starting with "%emacs_dir%" will not be translated w32p=$p - elif test -d "$p" + elif [ -d "$p" ] then - # The path exists, so just translate it - w32p=`cd "$p" && pwd -W` + w32p=$(cd "$p" && pwd -W) else - # The path does not exist. So, try to guess the - # Windows-native translation, by looking for the deepest - # existing directory in this path, and then translating the - # existing part and concatenating the remainder. + # Make some cleanup in the path and look for its deepest + # existing directory - test "${mustexist}" = "Y" && - { echo "${me}: invalid path: $p" >&2; exit 1; } + p=${p//\\//} + p=${p//\/\///} + p=${p%/} p1=$p - IFS=/ pcomponents=( $p ) - - for (( i=${#pcomponents[@]}-1 ; i>=0 ; i-- )) + while : do - - if test "${pcomponents[i]}" = "" - then - # The path component is empty. This can only mean - # that the path starts with "/" and all components - # have been stripped out already. So in this case we - # want to test with the MSYS root directory - p1="/" - else - p1="${p1%/}" - p1="${p1%${pcomponents[i]}}" - fi - - if test -d "${p1}" - then - - # Existing path found - - # Translate the existing part and concatenate the - # remainder (ensuring that only one slash is used in - # the join, and no trailing slash is left) - w32p1=`cd "${p1}" && pwd -W` - remainder="${p#${p1}}" - remainder="${remainder#/}" - remainder="${remainder%/}" - w32p="${w32p1%/}/${remainder}" - - break - fi - + p1=${p1%/*} + [ -z "$p1" ] && p1="/" && break + [ -d "$p1" ] && break done - # If no existing directory was found, error out - test -e "${p1}" || - { echo "${me}: invalid path: ${p}" >&2; exit 1; } + # translate the existing part and append the rest + w32p=$(cd "${p1}" && pwd -W) + remainder=${p#$p1} + w32p+=/${remainder#/} fi - # Concatenate the translated path to the translated pathlist - test "${w32pathlist}" = "" || w32pathlist="${w32pathlist}${separator2}" - w32pathlist="${w32pathlist}${w32p//${separator2}/\\${separator2}}" + w32pathlist="${w32pathlist};${w32p}" done -# Write the translated pathlist to the standard output -printf "%s" "${w32pathlist}" +echo "${w32pathlist:1}" diff --git a/config.bat b/config.bat index cc354478ee9..67ad3715381 100644 --- a/config.bat +++ b/config.bat @@ -22,10 +22,10 @@ rem ---------------------------------------------------------------------- rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS: rem rem + msdos version 3 or better. -rem + DJGPP version 2.0 or later (version 2.03 or later recommended). +rem + DJGPP version 2.02 or later (version 2.03 or later recommended). rem + make utility that allows breaking of the 128 chars limit on rem command lines. ndmake (as of version 4.5) won't work due to a -rem line length limit. The make that comes with DJGPP does work (and is +rem line length limit. The DJGPP port of make works (and is rem recommended). rem + rm, mv, and cp (from GNU file utilities). rem + sed (you can use the port that comes with DJGPP). @@ -109,7 +109,7 @@ Goto End :djgppOk echo int main() >junk.c echo #ifdef __DJGPP__ >>junk.c -echo {return (__DJGPP__)*10;} >>junk.c +echo {return (__DJGPP__)*10 + (__DJGPP_MINOR__);} >>junk.c echo #else >>junk.c echo #ifdef __GO32__ >>junk.c echo {return 10;} >>junk.c @@ -126,8 +126,8 @@ Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed! Goto End :go32Ok set djgpp_ver=2 -If Not ErrorLevel 20 Echo To build 'Emacs' you need DJGPP v2.0 or later! -If Not ErrorLevel 20 Goto End +If Not ErrorLevel 22 Echo To build 'Emacs' you need DJGPP v2.02 or later! +If Not ErrorLevel 22 Goto End rm -f junk.c junk junk.exe rem DJECHO is used by the top-level Makefile in the v2.x build Echo Checking whether 'djecho' is available... @@ -135,7 +135,6 @@ redir -o Nul -eo djecho -o junk.$$$ foo If Exist junk.$$$ Goto djechoOk Echo To build 'Emacs' you need the 'djecho.exe' program! Echo 'djecho.exe' is part of 'djdevNNN.zip' basic DJGPP development kit. -Echo Versions of DJGPP before 2.02 called this program 'echo.exe'. Echo Either unpack 'djecho.exe' from the 'djdevNNN.zip' archive, Echo or, if you have 'echo.exe', copy it to 'djecho.exe'. Echo Then run CONFIG.BAT again with the same arguments you did now. diff --git a/configure.ac b/configure.ac index 305db489a04..37de36096a7 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el. -AC_INIT(GNU Emacs, 24.4.50, bug-gnu-emacs@gnu.org) +AC_INIT(GNU Emacs, 25.0.50, bug-gnu-emacs@gnu.org) dnl Set emacs_config_options to the options of 'configure', quoted for the shell, dnl and then quoted again for a C string. Separate options with spaces. @@ -130,18 +130,46 @@ If you have it installed under another name, configure with 'MAKE=...'. For example, run '$0 MAKE=gnu-make'.]]) } MAKE=$ac_cv_path_MAKE +export MAKE dnl Fairly arbitrary, older versions might work too. AM_INIT_AUTOMAKE(1.11) dnl Canonicalize the configuration name. AC_CANONICAL_HOST -canonical=$host -configuration=${host_alias-${build_alias-$host}} -dnl We get MINGW64 with MSYS2. -case $canonical in +case $host in *-mingw*) + + if test -z "$host_alias"; then + + # No --host argument was given to 'configure'; therefore $host + # was set to a default value based on the build platform. But + # this default value may be wrong if we are building from a + # 64-bit MSYS[2] pre-configured to build 32-bit MinGW programs. + # Therefore, we'll try to get the right host platform from the + # compiler's target. + + AC_MSG_CHECKING([the compiler's target]) + if test -z "$CC"; then + cc=gcc + else + cc=$CC + fi + cc_target=`$cc -v 2>&1 | sed -n 's/Target: //p'` + case "$cc_target" in + *-*) host=$cc_target + ;; + "") AC_MSG_ERROR([Impossible to obtain $cc compiler target. +Please explicitly provide --host.]) + ;; + *) AC_MSG_WARN([Compiler reported non-standard target. +Defaulting to $host.]) + ;; + esac + AC_MSG_RESULT([$host]) + fi + . $srcdir/nt/mingw-cfg.site case $srcdir in @@ -150,11 +178,15 @@ case $canonical in # "/c/foo/bar", to simplify later conversions to native Windows # format ("c:/foo/bar"). srcdir=`cd "${srcdir}" && pwd -W` - srcdir="/${srcdir:0:1}${srcdir:2}" + # 'eval' pacifies strict POSIX non-MinGW shells (Bug#18612). + eval 'srcdir="/${srcdir:0:1}${srcdir:2}"' ;; esac;; esac +canonical=$host +configuration=${host_alias-${build_alias-$host}} + dnl Support for --program-prefix, --program-suffix and dnl --program-transform-name options AC_ARG_PROGRAM @@ -253,7 +285,7 @@ AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME], AC_ARG_WITH([sound],[AS_HELP_STRING([--with-sound=VALUE], [compile with sound support (VALUE one of: yes, alsa, oss, bsd-ossaudio, no; -default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW.])], +default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW, Cygwin.])], [ case "${withval}" in yes|no|alsa|oss|bsd-ossaudio) val=$withval ;; *) AC_MSG_ERROR([`--with-sound=$withval' is invalid; @@ -556,9 +588,8 @@ case "${canonical}" in ## Apple Darwin / Mac OS X *-apple-darwin* ) case "${canonical}" in - i[3456]86-* ) ;; - powerpc-* ) ;; - x86_64-* ) ;; + *-apple-darwin[0-9].*) unported=yes ;; + i[3456]86-* | x86_64-* ) ;; * ) unported=yes ;; esac opsys=darwin @@ -652,7 +683,7 @@ case "${canonical}" in i[3456]86-*-* ) case "${canonical}" in *-darwin* ) opsys=darwin ;; - *-mingw32 ) + *-mingw* ) opsys=mingw32 # MinGW overrides and adds some system headers in nt/inc. GCC_TEST_OPTIONS="-I $srcdir/nt/inc" @@ -667,7 +698,7 @@ case "${canonical}" in # MinGW64 x86_64-*-* ) case "${canonical}" in - *-mingw32 ) + *-mingw* ) opsys=mingw32 # MinGW overrides and adds some system headers in nt/inc. GCC_TEST_OPTIONS="-I $srcdir/nt/inc" @@ -705,7 +736,6 @@ If you think it should, please send a report to ${PACKAGE_BUGREPORT}. Check `etc/MACHINES' for recognized configuration names.]) fi - #### Choose a compiler. dnl Don't bother to test for C89. @@ -825,6 +855,7 @@ if test "$gl_gcc_warnings" != yes; then gl_WARN_ADD([-Wno-switch]) gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare]) gl_WARN_ADD([-Wno-pointer-sign]) + gl_WARN_ADD([-Wno-string-plus-int]) fi else isystem='-isystem ' @@ -845,10 +876,8 @@ else nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings nw="$nw -Woverlength-strings" # Not a problem these days - nw="$nw -Wlogical-op" # any use of fwrite provokes this nw="$nw -Wformat-nonliteral" # we do this a lot - nw="$nw -Wvla" # warnings in gettext.h - nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__ + nw="$nw -Wvla" # Emacs uses . nw="$nw -Wswitch-default" # Too many warnings for now nw="$nw -Winline" # OK to ignore 'inline' nw="$nw -Wjump-misses-init" # We sometimes safely jump over init. @@ -865,7 +894,8 @@ else # Emacs's use of alloca inhibits protecting the stack. nw="$nw -Wstack-protector" - # The following line should be removable at some point. + # Emacs's use of partly-pure functions such as CHECK_TYPE make this + # option problematic. nw="$nw -Wsuggest-attribute=pure" # This part is merely for shortening the command line, @@ -892,10 +922,6 @@ else gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now gl_WARN_ADD([-Wno-format-nonliteral]) - # In spite of excluding -Wlogical-op above, it is enabled, as of - # gcc 4.5.0 20090517. - gl_WARN_ADD([-Wno-logical-op]) - # More things that clang is unduly picky about. if test $emacs_cv_clang = yes; then gl_WARN_ADD([-Wno-format-extra-args]) @@ -905,14 +931,15 @@ else fi AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.]) - AH_VERBATIM([FORTIFY_SOURCE], + AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks]) + AH_VERBATIM([GNULIB_PORTCHECK_FORTIFY_SOURCE], [/* Enable compile-time and run-time bounds-checking, and some warnings, without upsetting glibc 2.15+. */ - #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__ + #if (defined GNULIB_PORTCHECK && !defined _FORTIFY_SOURCE \ + && defined __OPTIMIZE__ && __OPTIMIZE__) # define _FORTIFY_SOURCE 2 #endif ]) - AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks]) # We use a slightly smaller set of warning options for lib/. # Remove the following and save the result in GNULIB_WARN_CFLAGS. @@ -986,6 +1013,17 @@ if test "${enableval}" != "no"; then fi fi) +dnl Port to Automake 1.11. +dnl This section can be removed once we assume Automake 1.14 or later. +: ${AM_DEFAULT_VERBOSITY=1} +: ${AM_V=$AM_DEFAULT_VERBOSITY} +: ${AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY} +AC_SUBST([AM_V]) +AM_SUBST_NOTMAKE([AM_V]) +AC_SUBST([AM_DEFAULT_V]) +AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +AC_SUBST([AM_DEFAULT_VERBOSITY]) + dnl Some other nice autoconf tests. dnl These are commented out, since gl_EARLY and/or Autoconf already does them. dnl AC_PROG_INSTALL @@ -1093,15 +1131,16 @@ if test $opsys = gnu-linux; then fi ## Need makeinfo >= 4.7 (?) to build the manuals. -AC_PATH_PROG(MAKEINFO, makeinfo, no) -dnl By this stage, configure has already checked for egrep and set EGREP, -dnl or exited with an error if no egrep was found. if test "$MAKEINFO" != "no"; then - case ` - $MAKEINFO --version 2> /dev/null | - $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)' - ` in - '') MAKEINFO=no;; + if test "$MAKEINFO" = "${am_missing_run}makeinfo"; then + MAKEINFO=makeinfo + fi + case `($MAKEINFO --version) 2>/dev/null` in + *' (GNU texinfo) '4.[[7-9]]* | \ + *' (GNU texinfo) '4.[[1-9][0-9]]* | \ + *' (GNU texinfo) '[[5-9]]* | \ + *' (GNU texinfo) '[[1-9][0-9]]* ) ;; + *) MAKEINFO=no;; esac fi @@ -1325,7 +1364,7 @@ test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \ C_SWITCH_SYSTEM="-ma -qmaxmem=4000" if test "$opsys" = "mingw32"; then case "$canonical" in - x86_64-*-mingw32) C_SWITCH_SYSTEM="-mtune=generic" ;; + x86_64-*-mingw*) C_SWITCH_SYSTEM="-mtune=generic" ;; *) C_SWITCH_SYSTEM="-mtune=pentium4" ;; esac fi @@ -1436,8 +1475,8 @@ AC_DEFUN([EMACS_CHECK_MODULES], HAVE_SOUND=no if test "${with_sound}" != "no"; then - # Sound support for GNU/Linux, the free BSDs, and MinGW. - AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h], + # Sound support for GNU/Linux, the free BSDs, MinGW, and Cygwin. + AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h mmsystem.h], have_sound_header=yes, [], [ #ifdef __MINGW32__ #define WIN32_LEAN_AND_MEAN @@ -1499,7 +1538,7 @@ if test "${with_sound}" != "no"; then case "$opsys" in dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__ dnl Adjust the --with-sound help text if you change this. - gnu-linux|freebsd|netbsd|mingw32) + gnu-linux|freebsd|netbsd|mingw32|cygwin) AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.]) HAVE_SOUND=yes ;; @@ -1528,10 +1567,15 @@ if test $emacs_cv_personality_linux32 = yes; then [Define to 1 if personality LINUX32 can be set.]) fi +# Note that Solaris has sys/sysinfo.h which defines struct +# sysinfo as well. To make sure that we're using GNU/Linux +# sysinfo, we explicitly set one of its fields. if test "$ac_cv_header_sys_sysinfo_h" = yes; then AC_MSG_CHECKING([if Linux sysinfo may be used]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[struct sysinfo si; sysinfo (&si)]])], + [[struct sysinfo si; + si.totalram = 0; + sysinfo (&si)]])], emacs_cv_linux_sysinfo=yes, emacs_cv_linux_sysinfo=no) AC_MSG_RESULT($emacs_cv_linux_sysinfo) if test $emacs_cv_linux_sysinfo = yes; then @@ -1704,12 +1748,14 @@ if test "${with_ns}" != no; then ns_appbindir=${ns_appdir}/Contents/MacOS ns_appresdir=${ns_appdir}/Contents/Resources ns_appsrc=Cocoa/Emacs.base + ns_fontfile=macfont.o elif test -f $GNUSTEP_CONFIG_FILE; then NS_IMPL_GNUSTEP=yes ns_appdir=`pwd`/nextstep/Emacs.app ns_appbindir=${ns_appdir} ns_appresdir=${ns_appdir}/Resources ns_appsrc=GNUstep/Emacs.base + ns_fontfile=nsfont.o dnl FIXME sourcing this several times in subshells seems inefficient. GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)" GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)" @@ -1752,48 +1798,24 @@ fail; macfont_file="" if test "${NS_IMPL_COCOA}" = "yes"; then - AC_MSG_CHECKING([for OSX 10.4 or newer]) + AC_MSG_CHECKING([for OSX 10.6 or newer]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [ #ifdef MAC_OS_X_VERSION_MAX_ALLOWED -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 ; /* OK */ #else - error "OSX 10.4 or newer required"; + error "OSX 10.6 or newer required"; #endif #endif ])], - ns_osx_have_104=yes, - ns_osx_have_104=no) - AC_MSG_RESULT([$ns_osx_have_104]) + ns_osx_have_106=yes, + ns_osx_have_106=no) + AC_MSG_RESULT([$ns_osx_have_106]) - if test $ns_osx_have_104 = no; then - AC_MSG_ERROR([`OSX 10.4 or newer is required']); + if test $ns_osx_have_106 = no; then + AC_MSG_ERROR([`OSX 10.6 or newer is required']); fi - AC_MSG_CHECKING([for OSX 10.5 or newer]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], - [ -#ifdef MAC_OS_X_VERSION_MAX_ALLOWED -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 - ; /* OK */ -#else - error "OSX 10.5 not found"; -#endif -#endif - ])], - ns_osx_have_105=yes, - ns_osx_have_105=no) - AC_MSG_RESULT([$ns_osx_have_105]) - if test $ns_osx_have_105 = yes; then - macfont_file="macfont.o" - fi - fi - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], - [NSInteger i;])], - ns_have_nsinteger=yes, - ns_have_nsinteger=no) - if test $ns_have_nsinteger = yes; then - AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.]) fi fi @@ -1827,7 +1849,7 @@ if test "${HAVE_NS}" = yes; then INSTALL_ARCH_INDEP_EXTRA= fi - NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o $macfont_file" + NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o $ns_fontfile" fi CFLAGS="$tmp_CFLAGS" CPPFLAGS="$tmp_CPPFLAGS" @@ -1895,6 +1917,13 @@ if test "${HAVE_W32}" = "yes"; then x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;; *) EMACS_MANIFEST="emacs-x86.manifest" ;; esac + dnl Construct something of the form "24,4,0,0" with 4 components. + comma_version=`echo "${PACKAGE_VERSION}.0.0" | sed -e 's/\./,/g' -e 's/^\([[^,]]*,[[^,]]*,[[^,]]*,[[^,]]*\).*/\1/'` + + comma_space_version=`echo "$comma_version" | sed 's/,/, /g'` + AC_SUBST(comma_version) + AC_SUBST(comma_space_version) + AC_CONFIG_FILES([nt/emacs.rc nt/emacsclient.rc]) if test "${opsys}" = "cygwin"; then W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" @@ -2030,9 +2059,13 @@ AC_CACHE_CHECK( doug_lea_malloc=$emacs_cv_var_doug_lea_malloc system_malloc=$emacs_cv_sanitize_address + +hybrid_malloc= + case "$opsys" in ## darwin ld insists on the use of malloc routines in the System framework. darwin|mingw32|sol2-10) system_malloc=yes ;; + cygwin) hybrid_malloc=yes;; esac GMALLOC_OBJ= @@ -2044,6 +2077,13 @@ if test "${system_malloc}" = "yes"; then GNU_MALLOC_reason=" (The GNU allocators don't work with this system configuration.)" VMLIMIT_OBJ= +elif test "$hybrid_malloc" = yes; then + AC_DEFINE(HYBRID_MALLOC, 1, + [Define to use gmalloc before dumping and the system malloc after.]) + GNU_MALLOC= + GNU_MALLOC_reason="only before dumping" + GMALLOC_OBJ=gmalloc.o + VMLIMIT_OBJ= else test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o VMLIMIT_OBJ=vm-limit.o @@ -2597,19 +2637,13 @@ fi AC_SUBST(LIBSELINUX_LIBS) HAVE_GNUTLS=no -HAVE_GNUTLS3=no if test "${with_gnutls}" = "yes" ; then - EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.0.0], - [HAVE_GNUTLS3=yes], [HAVE_GNUTLS3=no]) - if test "${HAVE_GNUTLS3}" = "yes"; then - AC_DEFINE(HAVE_GNUTLS3, 1, [Define if using GnuTLS v3.]) - HAVE_GNUTLS="yes" - else - EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], - [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no]) - fi + EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], + [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no]) if test "${HAVE_GNUTLS}" = "yes"; then AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.]) + EMACS_CHECK_MODULES([LIBGNUTLS3], [gnutls >= 3.0.0], + [AC_DEFINE(HAVE_GNUTLS3, 1, [Define if using GnuTLS v3.])], []) fi # Windows loads GnuTLS dynamically @@ -3029,6 +3063,9 @@ AC_SUBST(M17N_FLT_LIBS) ### Use -lXpm if available, unless `--with-xpm=no'. ### mingw32 doesn't use -lXpm, since it loads the library dynamically. +### In the Cygwin-w32 build, we need to use /usr/include/noX/X11/xpm.h +### rather than /usr/include/X11/xpm.h, so we set CPPFLAGS (and +### LDFLAGS) accordingly. HAVE_XPM=no LIBXPM= if test "${HAVE_W32}" = "yes" && test "${opsys}" = "cygwin"; then @@ -3387,8 +3424,12 @@ if test "${HAVE_X11}" = "yes"; then EMACS_CHECK_MODULES([XRANDR], [$XRANDR_MODULES]) if test $HAVE_XRANDR = no; then # Test old way in case pkg-config doesn't have it (older machines). + # Include Xrender.h by hand to work around bug in older Xrandr.h + # (e.g. RHEL5) and silence (harmless) configure warning (bug#18465). AC_CHECK_HEADER(X11/extensions/Xrandr.h, - [AC_CHECK_LIB(Xrandr, XRRGetScreenResources, HAVE_XRANDR=yes)]) + [AC_CHECK_LIB(Xrandr, XRRGetScreenResources, HAVE_XRANDR=yes)], + [], [AC_INCLUDES_DEFAULT +#include ]) if test $HAVE_XRANDR = yes; then XRANDR_LIBS=-lXrandr fi @@ -3585,10 +3626,10 @@ AC_SUBST(BLESSMAIL_TARGET) OLD_LIBS=$LIBS LIBS="$LIB_PTHREAD $LIB_MATH $LIBS" -AC_CHECK_FUNCS(accept4 gethostname \ +AC_CHECK_FUNCS(accept4 fchdir gethostname \ getrusage get_current_dir_name \ lrand48 random rint \ -select getpagesize setlocale \ +select getpagesize setlocale newlocale \ getrlimit setrlimit shutdown getaddrinfo \ pthread_sigmask strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ @@ -3598,9 +3639,11 @@ cfmakeraw cfsetspeed copysign __executable_start log2) LIBS=$OLD_LIBS dnl No need to check for aligned_alloc and posix_memalign if using -dnl gmalloc.o, as it supplies them. Don't use these functions on -dnl Darwin as they are incompatible with unexmacosx.c. -if test -z "$GMALLOC_OBJ" && test "$opsys" != darwin; then +dnl gmalloc.o, as it supplies them, unless we're using hybrid_malloc. +dnl Don't use these functions on Darwin as they are incompatible with +dnl unexmacosx.c. +if (test -z "$GMALLOC_OBJ" || test "$hybrid_malloc" = yes) \ + && test "$opsys" != darwin; then AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break]) fi @@ -3752,9 +3795,10 @@ AC_SUBST(TERMCAP_OBJ) AC_CACHE_CHECK([for timerfd interface], [emacs_cv_have_timerfd], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include - ]], - [[timerfd_create (CLOCK_REALTIME, TFD_CLOEXEC); - timerfd_settime (0, TFD_TIMER_ABSTIME, 0, 0);]])], + ]], + [[timerfd_create (CLOCK_REALTIME, + TFD_CLOEXEC | TFD_NONBLOCK); + timerfd_settime (0, TFD_TIMER_ABSTIME, 0, 0);]])], [emacs_cv_have_timerfd=yes], [emacs_cv_have_timerfd=no])]) if test "$emacs_cv_have_timerfd" = yes; then @@ -3762,6 +3806,22 @@ if test "$emacs_cv_have_timerfd" = yes; then [Define to 1 if timerfd functions are supported as in GNU/Linux.]) fi +# Alternate stack for signal handlers. +AC_CACHE_CHECK([whether signals can be handled on alternate stack], + [emacs_cv_alternate_stack], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include + ]], + [[stack_t ss; + struct sigaction sa; + ss.ss_sp = malloc (SIGSTKSZ); + ss.ss_size = SIGSTKSZ; + sa.sa_flags = SA_SIGINFO | SA_ONSTACK; + sigaltstack (&ss, 0); + sigaction (SIGSEGV, &sa, 0);]])], + [emacs_cv_alternate_stack=yes], + [emacs_cv_alternate_stack=no])]) + # Do we have res_init, for detecting changes in /etc/resolv.conf? # On Darwin, res_init appears not to be useful: see bug#562 and # http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01467.html @@ -3901,43 +3961,7 @@ AC_SUBST(KRB4LIB) AC_CHECK_HEADERS(valgrind/valgrind.h) -AC_CHECK_FUNCS_ONCE(tzset) -AC_MSG_CHECKING(whether localtime caches TZ) -AC_CACHE_VAL(emacs_cv_localtime_cache, -[if test x$ac_cv_func_tzset = xyes; then -AC_RUN_IFELSE([AC_LANG_SOURCE([[#include -char TZ_GMT0[] = "TZ=GMT0"; -char TZ_PST8[] = "TZ=PST8"; -main() -{ - time_t now = time ((time_t *) 0); - int hour_GMT0, hour_unset; - if (putenv (TZ_GMT0) != 0) - exit (1); - hour_GMT0 = localtime (&now)->tm_hour; - unsetenv("TZ"); - hour_unset = localtime (&now)->tm_hour; - if (putenv (TZ_PST8) != 0) - exit (1); - if (localtime (&now)->tm_hour == hour_GMT0) - exit (1); - unsetenv("TZ"); - if (localtime (&now)->tm_hour != hour_unset) - exit (1); - exit (0); -}]])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes, -[# If we have tzset, assume the worst when cross-compiling. -emacs_cv_localtime_cache=yes]) -else - # If we lack tzset, report that localtime does not cache TZ, - # since we can't invalidate the cache if we don't have tzset. - emacs_cv_localtime_cache=no -fi])dnl -AC_MSG_RESULT($emacs_cv_localtime_cache) -if test $emacs_cv_localtime_cache = yes; then - AC_DEFINE(LOCALTIME_CACHE, 1, - [Define to 1 if localtime caches TZ.]) -fi +AC_CHECK_FUNCS_ONCE(tzalloc tzset) ok_so_far=yes AC_CHECK_FUNC(socket, , ok_so_far=no) @@ -4004,15 +4028,6 @@ fi AC_TYPE_MBSTATE_T -AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void fred (int x[__restrict]);]], [[]])], - emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)]) -if test "$emacs_cv_c_restrict_arr" = yes; then - AC_DEFINE(__restrict_arr, __restrict, - [Define to compiler's equivalent of C99 restrict keyword in array - declarations. Define as empty for no equivalent.]) -fi - dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear dnl how the tty code is related to POSIX and/or other versions of termios. dnl The following looks like a useful start. @@ -4481,22 +4496,31 @@ AC_CACHE_CHECK([for _setjmp], [emacs_cv_func__setjmp], [emacs_cv_func__setjmp=no])]) if test $emacs_cv_func__setjmp = yes; then AC_DEFINE([HAVE__SETJMP], 1, [Define to 1 if _setjmp and _longjmp work.]) -else - AC_CACHE_CHECK([for sigsetjmp], [emacs_cv_func_sigsetjmp], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include - ]], - [[sigjmp_buf j; - if (! sigsetjmp (j, 1)) - siglongjmp (j, 1);]])], - [emacs_cv_func_sigsetjmp=yes], - [emacs_cv_func_sigsetjmp=no])]) - if test $emacs_cv_func_sigsetjmp = yes; then - AC_DEFINE([HAVE_SIGSETJMP], 1, - [Define to 1 if sigsetjmp and siglongjmp work. - The value of this symbol is irrelevant if HAVE__SETJMP is defined.]) - fi +fi + +# We need to preserve signal mask to handle C stack overflows. +AC_CACHE_CHECK([for sigsetjmp], [emacs_cv_func_sigsetjmp], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[sigjmp_buf j; + if (! sigsetjmp (j, 1)) + siglongjmp (j, 1);]])], + [emacs_cv_func_sigsetjmp=yes], + [emacs_cv_func_sigsetjmp=no])]) +if test $emacs_cv_func_sigsetjmp = yes; then + AC_DEFINE([HAVE_SIGSETJMP], 1, + [Define to 1 if sigsetjmp and siglongjmp work.]) +fi + +# We need all of these features to handle C stack overflows. +if test "$ac_cv_header_sys_resource_h" = "yes" -a \ + "$ac_cv_func_getrlimit" = "yes" -a \ + "$emacs_cv_func_sigsetjmp" = "yes" -a \ + "$emacs_cv_alternate_stack" = yes; then + AC_DEFINE([HAVE_STACK_OVERFLOW_HANDLING], 1, + [Define to 1 if C stack overflow can be handled in some cases.]) fi case $opsys in @@ -4627,20 +4651,7 @@ if test $emacs_cv_usable_FIONREAD = yes; then fi fi - case $opsys in - dnl Emacs supplies its own malloc, but glib calls posix_memalign, - dnl and on Cygwin prior to version 1.7.24 that becomes the - dnl Cygwin-supplied posix_memalign. As malloc is not the Cygwin - dnl malloc, the Cygwin posix_memalign always returns ENOSYS. A - dnl workaround is to set G_SLICE=always-malloc. This is no longer - dnl needed starting with cygwin-1.7.24, and it is no longer - dnl effective starting with glib-2.36. */ - cygwin) - AC_DEFINE(G_SLICE_ALWAYS_MALLOC, 1, [Define to set the - G_SLICE environment variable to "always-malloc" at startup.]) - ;; - hpux11) dnl It works to open the pty's tty in the parent (Emacs), then dnl close and reopen it in the child. @@ -4827,6 +4838,22 @@ else fi AC_SUBST(LIBXMENU) +AC_CACHE_CHECK([for struct alignment], + [emacs_cv_struct_alignment], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include + struct __attribute__ ((aligned (8))) s { char c; }; + struct t { char c; struct s s; }; + char verify[offsetof (struct t, s) == 8 ? 1 : -1]; + ]])], + [emacs_cv_struct_alignment=yes], + [emacs_cv_struct_alignment=no])]) +if test "$emacs_cv_struct_alignment" = yes; then + AC_DEFINE([HAVE_STRUCT_ATTRIBUTE_ALIGNED], 1, + [Define to 1 if 'struct __attribute__ ((aligned (N)))' aligns the + structure to an N-byte boundary.]) +fi + if test "${GNU_MALLOC}" = "yes" ; then AC_DEFINE(GNU_MALLOC, 1, [Define to 1 if you want to use the GNU memory allocator.]) @@ -4911,20 +4938,24 @@ fi case "$opsys" in aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;; + cygwin) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000" ;; + darwin) ## The -headerpad option tells ld (see man page) to leave room at the ## end of the header for adding load commands. Needed for dumping. - ## 0x690 is the total size of 30 segment load commands (at 56 - ## each); under Cocoa 31 commands are required. + ## 0x1000 is enough for roughly 52 load commands on the x86_64 + ## architecture (where they are 78 bytes each). The actual number of + ## load commands added is not consistent but normally ranges from + ## about 14 to about 34. Setting it high gets us plenty of slop and + ## only costs about 1.5K of wasted binary space. + headerpad_extra=1000 if test "$HAVE_NS" = "yes"; then libs_nsgui="-framework AppKit" if test "$NS_IMPL_COCOA" = "yes"; then libs_nsgui="$libs_nsgui -framework IOKit" fi - headerpad_extra=6C8 else libs_nsgui= - headerpad_extra=690 fi LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra" @@ -5154,6 +5185,9 @@ if test "$HAVE_NS" = "yes"; then AC_SUBST(ns_check_file) fi +dnl config.status treats $srcdir specially, so I think this is ok... +AC_CONFIG_FILES([$srcdir/doc/man/emacs.1]) + dnl Obviously there is duplication here wrt $SUBDIR_MAKEFILES. dnl You _can_ use that variable in AC_CONFIG_FILES, so long as any directory dnl using automake (ie lib/) is explicitly listed and not "hidden" in a variable @@ -5217,6 +5251,25 @@ if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then fi ]) +dnl Perhaps this would be better named doc-emacs-emacsver.texi? +dnl See comments for etc-refcards-emacsver.tex. +dnl Since we get a doc/emacs directory generated anyway, for the Makefile, +dnl it is not quite the same. But we are generating in $srcdir. +AC_CONFIG_COMMANDS([doc/emacs/emacsver.texi], [ +${MAKE-make} -s --no-print-directory -C doc/emacs doc-emacsver || \ +AC_MSG_ERROR(['doc/emacs/emacsver.texi' could not be made.]) +]) + +dnl If we give this the more natural name, etc/refcards/emacsver.texi, +dnl then a directory etc/refcards is created in the build directory, +dnl which is probably harmless, but confusing (in out-of-tree builds). +dnl (If we were to generate etc/refcards/Makefile, this might change.) +dnl It is really $srcdir/etc/refcards/emacsver.tex that we generate. +AC_CONFIG_COMMANDS([etc-refcards-emacsver.tex], [ +${MAKE-make} -s MAKEFILE_NAME=do-not-make-Makefile etc-emacsver || \ +AC_MSG_ERROR(['etc/refcards/emacsver.tex' could not be made.]) +]) + AC_OUTPUT test "$MAKE" = make || AC_MSG_NOTICE([Now you can run '$MAKE'.]) diff --git a/doc/emacs/.gitignore b/doc/emacs/.gitignore deleted file mode 100644 index 3ff56b474dd..00000000000 --- a/doc/emacs/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -*.aux -*.cp -*.cps -*.dvi -*.fn -*.fns -*.ky -*.kys -*.log -*.op -*.ops -*.pdf -*.pg -*.pgs -*.ps -*.tmp -*.toc -*.tp -*.tps -*.vr -*.vrs -Makefile -makefile diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index a1d2688470d..d2f7a345566 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,186 @@ +2014-12-14 Alan Mackenzie + + * display.texi (Scrolling): fast-but-imprecise-scrolling. + Describe new variable. + +2014-12-14 Cameron Desautels + + * custom.texi (Saving Customizations): Mention + `custom-prompt-customize-unsaved-options'. + +2014-12-08 Lars Magne Ingebrigtsen + + * misc.texi (Network Security): Mention the new protocol-level + `high' NSM checks. + +2014-12-08 Eric S. Raymond + + * maintaining.texi: Suopport fo Arch has been moved to obosolete, + remove references that imply otherwise. + +2014-11-29 Paul Eggert + + Lessen focus on ChangeLog files, as opposed to change log entries. + * maintaining.texi (Change Log): Mention that ChangeLog files may + be copied to or from a version control system. + * trouble.texi (Sending Patches): Point to the commit messages. + +2014-11-29 Eli Zaretskii + + * maintaining.texi (Switching Branches): Mention "C-x v r". + Correct commands for switching branches in various VCSs. + +2014-11-27 Tassilo Horn + + * misc.texi (DocView Slicing): Describe how to slice with the + mouse. Fix command mentioned by slice by BoundingBox paragraph. + (Bug#18040) + +2014-11-25 Lars Magne Ingebrigtsen + + * misc.texi (Network Security): Use "untrustworthy" instead of + "unsafe". + +2014-11-24 Eli Zaretskii + + * misc.texi (Network Security): Improve wording and indexing of + last change. + +2014-11-24 Lars Magne Ingebrigtsen + + * misc.texi (Gnus Summary Buffer): Move the Network Security + Manager stuff here from the lispref manual. + +2014-11-21 Eli Zaretskii + + * maintaining.texi (Version Control Systems): Move "@end itemize" + past the last @item. + +2014-11-21 H. Dieter Wilhelm + + * maintaining.texi (Version Control Systems): Fix a typo. + +2014-11-20 Eric S. Raymond + + * maintaining.texi: Document SRC support. + +2014-11-10 Glenn Morris + + * Makefile.in (top_srcdir, version): New, set by configure. + (doc-emacsver): New rule. + (bootstrap-clean, maintainer-clean): Delete emacsver.texi. + (emacsver.texi.in): Rename from emacsver.texi. + +2014-11-09 Juri Linkov + + * search.texi (Other Repeating Search): Add documentation for + multi-isearch-files and multi-isearch-files-regexp. (Bug#13592) + +2014-11-09 Glenn Morris + + * Makefile.in (version): Remove variable. + (clean): No longer delete dist tarfile. + (dist): Remove rule; replace with code in admin.el. + +2014-11-03 Glenn Morris + + * programs.texi (Misc for Programs): Fix typo. + +2014-10-30 Eli Zaretskii + + * frames.texi (Scroll Bars): Improve indexing of faces. + + * killing.texi (Secondary Selection): Improve indexing of faces. + + * search.texi (Basic Isearch, Query Replace): Improve indexing of faces. + + * display.texi (Standard Faces, Text Display) + (Useless Whitespace): Improve indexing of faces. + + * frames.texi (Frame Commands): Document and index + 'frame-resize-pixelwise'. + + * windows.texi (Split Window): Document and index + 'window-resize-pixelwise'. + +2014-10-22 Tassilo Horn + + * misc.texi (Document View): Adapt to latest doc-view changes wrt + viewing the document's plain text contents. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-13 Glenn Morris + + * Makefile.in (dist): Update for new output variables. + +2014-10-12 Paul Eggert + + * macos.texi (Mac OS / GNUstep, Mac / GNUstep Basics) + (Mac / GNUstep Customization): Mac OS X 10.6 or later now required. + +2014-10-09 Glenn Morris + + * package.texi (Package Menu): The package list was changed to not + say "unsigned" any more. + +2014-10-05 Glenn Morris + + * misc.texi (Sorting): + * search.texi (Query Replace): Markup fixes. + +2014-10-04 Martin Rudalics + + * frames.texi (Scroll Bars): Describe use of horizontal scroll bars. + +2014-10-04 Glenn Morris + + * cmdargs.texi (Misc X): + * display.texi (Optional Mode Line): + * misc.texi (emacsclient Options): + * vc1-xtra.texi (VC Delete/Rename): Small fixes re @var usage. + + * killing.texi (Rectangles): Copyedits re rectangle-mark-mode. + (CUA Bindings): Mention rectangle-mark-mode. + +2014-10-03 Martin Rudalics + + * frames.texi (Frame Commands): + * cmdargs.texi (Window Size X): Mention the use of + `frame-resize-pixelwise' to make frames truly fullscreen or maximized. + +2014-10-02 Glenn Morris + + * package.texi (Package Installation): Mention etc/package-keyring.gpg. + +2014-09-29 Eli Zaretskii + + * emacsver.texi (EMACSVER): Bump to 20.0.50. + +2014-09-15 Daniel Colascione + + * regs.texi (Text Registers): Update end-user documentation + to reflect `insert-register' interface change. + +2014-08-07 Reuben Thomas + + * programs.texi (Program Modes): Don't advertise VMS DCL support + any more. + +2014-08-07 Reuben Thomas + + Refer to MS-DOS using the same name everywhere. + + * Makefile.in (EMACSSOURCES): ``MS-DOG'', ``MSDOG'' and ``msdog'' + become ``MS-DOS''; ``msdog'' in filenames becomes ``msdos''. + * emacs-xtra.texi: ditto. + * emacs.texi: ditto. + * makefile.w32-in: ditto. + * msdog-xtra.texi: ditto, and rename file. + * msdog.texi: ditto, and rename file. + 2014-07-21 Glenn Morris * emacs.texi (Intro): Workaround makeinfo 4 @acronym bug. (Bug#18040) @@ -234,8 +417,8 @@ 2014-03-13 Paul Eggert - * mule.texi (International, Language Environments): Update - the list of language environments to what Emacs currently + * mule.texi (International, Language Environments): + Update the list of language environments to what Emacs currently supports. Add the full list to the index. Suggest C-h L for details rather than trying to give very brief details here. @@ -527,8 +710,8 @@ * indent.texi (Tab Stops): Mention recent changes about `tab-stop-list'. - * frames.texi (Scroll Bars): Document - `scroll-bar-adjust-thumb-portion'. + * frames.texi (Scroll Bars): + Document `scroll-bar-adjust-thumb-portion'. 2013-12-21 Chong Yidong @@ -554,8 +737,8 @@ * entering.texi: Document `initial-buffer-choice' changes. - * misc.texi (emacsclient Options): Document - `initial-buffer-choice' changes. + * misc.texi (emacsclient Options): + Document `initial-buffer-choice' changes. * help.texi: Document that `?' now also shows subcommands of prefix keys. @@ -1038,8 +1221,8 @@ * misc.texi (Terminal emulator): Document Term mode faces. - * mini.texi (Basic Minibuffer): New node. Document - minibuffer-electric-default-mode. + * mini.texi (Basic Minibuffer): New node. + Document minibuffer-electric-default-mode. * display.texi (Visual Line Mode): Fix index entry. @@ -3099,7 +3282,7 @@ * Makefile.in (MAKEINFO): Now controlled by `configure'. (MAKEINFO_OPTS): New variable. Use it where appropriate. - (ENVADD): Updated. + (ENVADD): Update. 2011-01-18 Glenn Morris @@ -8994,7 +9177,7 @@ * text.texi (Format Faces): Replace old M-g key prefix with M-o. - * emacs.texi (Acknowledgments): Updated. + * emacs.texi (Acknowledgments): Update. * anti.texi: Total rewrite. @@ -10101,7 +10284,7 @@ * frames.texi (Dialog Boxes): Add use-file-dialog. -2003-11-22 Martin Stjernholm +2003-11-22 Martin Stjernholm * ack.texi: Note that Alan Mackenzie contributed the AWK support in CC Mode. diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in index 98ff81791ac..5e53c07451b 100644 --- a/doc/emacs/Makefile.in +++ b/doc/emacs/Makefile.in @@ -26,8 +26,9 @@ SHELL = @SHELL@ # of the source tree. This is set by configure's `--srcdir' option. srcdir=@srcdir@ -# Only for make dist. -version=@version@ +top_srcdir = @top_srcdir@ + +version = @version@ ## Where the output files go. ## Note that the setfilename command in the .texi files assumes this. @@ -91,7 +92,7 @@ EMACS_XTRA= \ $(srcdir)/vc-xtra.texi \ $(srcdir)/vc1-xtra.texi \ $(srcdir)/fortran-xtra.texi \ - $(srcdir)/msdog-xtra.texi + $(srcdir)/msdos-xtra.texi EMACSSOURCES= \ ${srcdir}/emacs.texi \ @@ -135,7 +136,7 @@ EMACSSOURCES= \ ${srcdir}/xresources.texi \ ${srcdir}/anti.texi \ ${srcdir}/macos.texi \ - ${srcdir}/msdog.texi \ + ${srcdir}/msdos.texi \ ${srcdir}/gnu.texi \ ${srcdir}/glossary.texi \ ${srcdir}/ack.texi \ @@ -181,6 +182,18 @@ emacs-xtra.pdf: $(EMACS_XTRA) %.ps: %.dvi $(DVIPS) -o $@ $< +.PHONY: doc-emacsver + +# If configure were to just generate emacsver.texi from emacsver.texi.in +# in the normal way, the timestamp of emacsver.texi would always be +# newer than that of the info files, which are prebuilt in release tarfiles. +# So we use this rule, and move-if-change, to avoid that. +doc-emacsver: + sed 's/[@]version@/${version}/' \ + ${srcdir}/emacsver.texi.in > emacsver.texi.$$$$ && \ + ${top_srcdir}/build-aux/move-if-change emacsver.texi.$$$$ \ + ${srcdir}/emacsver.texi + .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean infoclean ## Temp files. @@ -191,7 +204,6 @@ mostlyclean: ## Products not in the release tarfiles. clean: mostlyclean rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS) - rm -f emacs-manual-${version}.tar* distclean: clean rm -f Makefile @@ -204,28 +216,7 @@ infoclean: $(buildinfodir)/emacs.info-[1-9][0-9] bootstrap-clean maintainer-clean: distclean infoclean - -.PHONY: dist - -## Make a standalone tarfile of the Emacs manual sources. -## The [c] is a dumb way to prevent configure expanding it. -dist: - rm -rf emacs-manual-${version} - mkdir emacs-manual-${version} - cp ${srcdir}/*.texi ${texinfodir}/texinfo.tex \ - ${srcdir}/ChangeLog* emacs-manual-${version}/ - sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \ - -e 's/^\(buildinfodir *=\).*/\1 ./' \ - -e 's/^\(clean:.*\)/\1 infoclean/' \ - -e "s/@ver[s]ion@/${version}/" \ - -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \ - ${srcdir}/Makefile.in > emacs-manual-${version}/Makefile - @if grep '@[a-zA-Z_]*@' emacs-manual-${version}/Makefile; then \ - echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \ - fi - tar -cf emacs-manual-${version}.tar emacs-manual-${version} - rm -rf emacs-manual-${version} - + rm -f ${srcdir}/emacsver.texi .PHONY: install-dvi install-html install-pdf install-ps install-doc diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index 8b3654dae68..b438281b2a2 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi @@ -987,10 +987,10 @@ size with no tool bar, use an X resource to specify ``no tool bar'' (@pxref{Table of Resources}); then Emacs will already know there's no tool bar when it processes the specified geometry. - When using one of @samp{--fullscreen}, @samp{--maximized}, @samp{--fullwidth} -or @samp{--fullheight} there may be some space around the frame -anyway. That is because Emacs rounds the sizes so they are an -even number of character heights and widths. + When using one of @samp{--fullscreen}, @samp{--maximized}, +@samp{--fullwidth} or @samp{--fullheight}, some window managers require +you to set the variable @code{frame-resize-pixelwise} to a non-@code{nil} +value to make a frame appear truly ``maximized'' or ``fullscreen''. Some window managers have options that can make them ignore both program-specified and user-specified positions. If these are set, @@ -1106,8 +1106,8 @@ rectangle containing the frame's title. @c Enable horizontal scroll bars. Since horizontal scroll bars @c are not yet implemented, this actually does nothing. -@item --parent-id @var{ID} -Open Emacs as a client X window via the XEmbed protocol, with @var{ID} +@item --parent-id @var{id} +Open Emacs as a client X window via the XEmbed protocol, with @var{id} as the parent X window id. Currently, this option is mainly useful for developers. diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 0d0013f5ace..6c392cbc70d 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -405,6 +405,16 @@ customizations in your initialization file. This is because saving customizations from such a session would wipe out all the other customizations you might have on your initialization file. + Please note that any customizations you have not chosen to save for +future sessions will be lost when you terminate Emacs. If you'd like +to be prompted about unsaved customizations at termination time, add +the following to your initialization file: + +@example +(add-hook 'kill-emacs-query-functions + 'custom-prompt-customize-unsaved-options) +@end example + @node Face Customization @subsection Customizing Faces @cindex customizing faces diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index bdcb185a5f3..12a8e1b3eee 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -127,6 +127,19 @@ the mouse wheel (@pxref{Mouse Commands}); in general, it affects any command that has a non-@code{nil} @code{scroll-command} property. @xref{Property Lists,,, elisp, The Emacs Lisp Reference Manual}. +@vindex fast-but-imprecise-scrolling + Sometimes, particularly when you hold down keys such as @kbd{C-v} +and @kbd{M-v}, activating keyboard auto-repeat, Emacs fails to keep up +with the rapid rate of scrolling requested; the display doesn't update +and Emacs can become unresponsive to input for quite a long time. You +can counter this sluggishness by setting the variable +@code{fast-but-imprecise-scrolling} to a non-@code{nil} value. This +instructs the scrolling commands not to fontify (@pxref{Font Lock}) +any unfontified text they scroll over, instead to assume it has the +default face. This can cause Emacs to scroll to somewhat wrong buffer +positions when the faces in use are not all the same size, even with +single (i.e. without auto-repeat) scrolling operations. + @vindex scroll-up @vindex scroll-down @findex scroll-up-line @@ -578,6 +591,7 @@ Parameters}. @node Standard Faces @section Standard Faces +@cindex standard faces Here are the standard faces for specifying text appearance. You can apply them to specific text when you want the effects they produce. @@ -598,8 +612,10 @@ This face underlines text. This face forces use of a fixed-width font. It's reasonable to customize this face to use a different fixed-width font, if you like, but you should not make it a variable-width font. +@cindex variable-pitch face @item variable-pitch This face forces use of a variable-width font. +@cindex shadow face @item shadow This face is used for making the text less noticeable than the surrounding ordinary text. Usually this can be achieved by using shades of gray in @@ -647,25 +663,34 @@ frame: @table @code @item mode-line +@cindex mode-line face +@cindex faces for mode lines This face is used for the mode line of the currently selected window, and for menu bars when toolkit menus are not used. By default, it's drawn with shadows for a ``raised'' effect on graphical displays, and drawn as the inverse of the default face on non-windowed terminals. @item mode-line-inactive +@cindex mode-line-inactive face Like @code{mode-line}, but used for mode lines of the windows other than the selected one (if @code{mode-line-in-non-selected-windows} is non-@code{nil}). This face inherits from @code{mode-line}, so changes in that face affect mode lines in all windows. @item mode-line-highlight -Like @code{highlight}, but used for portions of text on mode lines. +@cindex mode-line-highlight face +Like @code{highlight}, but used for mouse-sensitive portions of text +on mode lines. Such portions of text typically pop up tooltips +(@pxref{Tooltips}) when the mouse pointer hovers above them. @item mode-line-buffer-id +@cindex mode-line-buffer-id face This face is used for buffer identification parts in the mode line. @item header-line +@cindex header-line face Similar to @code{mode-line} for a window's header line, which appears at the top of a window just as the mode line appears at the bottom. Most windows do not have a header line---only some special modes, such Info mode, create one. @item vertical-border +@cindex vertical-border face This face is used for the vertical divider between windows on text terminals. @item minibuffer-prompt @@ -1110,6 +1135,7 @@ empty lines at the end of a buffer, without realizing it. In most cases, this @dfn{trailing whitespace} has no effect, but sometimes it can be a nuisance. +@cindex trailing-whitespace face You can make trailing whitespace at the end of a line visible by setting the buffer-local variable @code{show-trailing-whitespace} to @code{t}. Then Emacs displays trailing whitespace, using the face @@ -1245,11 +1271,11 @@ Size Indication mode. The size will be displayed immediately following the buffer percentage like this: @example -@var{POS} of @var{SIZE} +@var{pos} of @var{size} @end example @noindent -Here @var{SIZE} is the human readable representation of the number of +Here @var{size} is the human readable representation of the number of characters in the buffer, which means that @samp{k} for 10^3, @samp{M} for 10^6, @samp{G} for 10^9, etc., are used to abbreviate. @@ -1418,6 +1444,8 @@ as octal escape sequences instead of caret escape sequences. @cindex non-breaking space @cindex non-breaking hyphen @cindex soft hyphen +@cindex escape-glyph face +@cindex nobreak-space face Some non-@acronym{ASCII} characters have the same appearance as an @acronym{ASCII} space or hyphen (minus) character. Such characters can cause problems if they are entered into a buffer without your diff --git a/doc/emacs/emacs-xtra.texi b/doc/emacs/emacs-xtra.texi index dc1ab423db2..ba2b0f0d677 100644 --- a/doc/emacs/emacs-xtra.texi +++ b/doc/emacs/emacs-xtra.texi @@ -120,7 +120,7 @@ the Emacs manual. @include fortran-xtra.texi -@include msdog-xtra.texi +@include msdos-xtra.texi @lowersections @end iftex diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index b1cb196c3c2..66b10145e06 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -189,6 +189,7 @@ Advanced Features * Sending Mail:: Sending mail in Emacs. * Rmail:: Reading mail in Emacs. * Gnus:: A flexible mail and news reader. +* Network Security:: Managing the network security. * Document View:: Viewing PDF, PS and DVI files. * EWW:: A web browser in Emacs. * Shell:: Executing shell commands from Emacs. @@ -1574,8 +1575,8 @@ Lisp programming. @include anti.texi @include macos.texi -@c Includes msdog-xtra. -@include msdog.texi +@c Includes msdos-xtra. +@include msdos.texi @include gnu.texi @include glossary.texi @ifnottex diff --git a/doc/emacs/emacsver.texi b/doc/emacs/emacsver.texi deleted file mode 100644 index 6329f8aa0e6..00000000000 --- a/doc/emacs/emacsver.texi +++ /dev/null @@ -1,4 +0,0 @@ -@c It would be nicer to generate this using configure and @version@. -@c However, that would mean emacsver.texi would always be newer -@c then the info files in release tarfiles. -@set EMACSVER 24.4.50 diff --git a/doc/emacs/emacsver.texi.in b/doc/emacs/emacsver.texi.in new file mode 100644 index 00000000000..fa685125301 --- /dev/null +++ b/doc/emacs/emacsver.texi.in @@ -0,0 +1,2 @@ +@c configure generates emacsver.texi from emacsver.texi.in via a Makefile rule +@set EMACSVER @version@ diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index 036e8cf65eb..27380cd565e 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi @@ -376,6 +376,9 @@ position (@pxref{Split Window}). between two side-by-side mode lines, you can move the vertical boundary to the left or right. + Note that resizing windows is affected by the value of +@code{window-resize-pixelwise}, see @ref{Split Window}. + @node Creating Frames @section Creating Frames @cindex creating frames @@ -469,6 +472,14 @@ hides window manager decorations, giving slightly more screen space to Emacs itself.) @end table +@vindex frame-resize-pixelwise + Note that with some window managers you may have to customize the +variable @code{frame-resize-pixelwise} to a non-@code{nil} value in +order to make a frame truly ``maximized'' or ``fullscreen''. This +variable, when set to a non-@code{nil} value, in general allows +resizing frames at pixel resolution, rather than in integral multiples +of lines and columns. + The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected frame. However, it will refuse to delete the last frame in an Emacs session, to prevent you from losing the ability to interact with the @@ -900,10 +911,11 @@ those are drawn by the toolkit and not directly by Emacs. @section Scroll Bars @cindex Scroll Bar mode @cindex mode, Scroll Bar +@cindex Vertical Scroll Bar - On graphical displays, there is a @dfn{scroll bar} on the side of -each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's up and -down buttons scrolls the window by one line at a time. Clicking + On graphical displays, there is a @dfn{vertical scroll bar} on the +side of each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's +up and down buttons scrolls the window by one line at a time. Clicking @kbd{Mouse-1} above or below the scroll bar's inner box scrolls the window by nearly the entire height of the window, like @kbd{M-v} and @kbd{C-v} respectively (@pxref{Moving Point}). Dragging the inner box @@ -917,23 +929,23 @@ in the scroll bar lets you drag the inner box up and down. @findex scroll-bar-mode @findex toggle-scroll-bar - To toggle the use of scroll bars, type @kbd{M-x scroll-bar-mode}. -This command applies to all frames, including frames yet to be -created. To toggle scroll bars for just the selected frame, use the -command @kbd{M-x toggle-scroll-bar}. + To toggle the use of vertical scroll bars, type @kbd{M-x +scroll-bar-mode}. This command applies to all frames, including frames +yet to be created. To toggle vertical scroll bars for just the selected +frame, use the command @kbd{M-x toggle-scroll-bar}. @vindex scroll-bar-mode - To control the use of scroll bars at startup, customize the variable -@code{scroll-bar-mode}. Its value should be either @code{right} (put -scroll bars on the right side of windows), @code{left} (put them on -the left), or @code{nil} (disable scroll bars). By default, Emacs -puts scroll bars on the right if it was compiled with GTK+ support on -the X Window System, and on MS-Windows or Mac OS; Emacs puts scroll -bars on the left if compiled on the X Window System without GTK+ -support (following the old convention for X applications). + To control the use of vertical scroll bars at startup, customize the +variable @code{scroll-bar-mode}. Its value should be either +@code{right} (put scroll bars on the right side of windows), @code{left} +(put them on the left), or @code{nil} (disable vertical scroll bars). +By default, Emacs puts scroll bars on the right if it was compiled with +GTK+ support on the X Window System, and on MS-Windows or Mac OS; Emacs +puts scroll bars on the left if compiled on the X Window System without +GTK+ support (following the old convention for X applications). @vindex scroll-bar-width -@cindex width of the scroll bar +@cindex width of the vertical scroll bar You can also use the X resource @samp{verticalScrollBars} to enable or disable the scroll bars (@pxref{Resources}). To control the scroll bar width, change the @code{scroll-bar-width} frame parameter @@ -950,6 +962,42 @@ end of the buffer is shown; if @code{nil}, the thumb will be at the bottom when the end of the buffer is shown. You can not over-scroll when the entire buffer is visible. +@cindex scroll-bar face + The visual appearance of the scroll bars is controlled by the +@code{scroll-bar} face. + +@cindex Horizontal Scroll Bar +@cindex Horizontal Scroll Bar mode + On graphical displays with toolkit support, Emacs may also supply a +@dfn{horizontal scroll bar} on the bottom of each window. Clicking +@kbd{Mouse-1} on the that scroll bar's left and right buttons scrolls +the window horizontally by one column at a time. Clicking @kbd{Mouse-1} +on the left or right of the scroll bar's inner box scrolls the window by +four columns. Dragging the inner box scrolls the window continuously. + + Note that such horizontal scrolling can make the window's position of +point disappear on the left or the right. Typing a character to insert +text or moving point with a keyboard command will usually bring it back +into view. + +@findex horizontal-scroll-bar-mode + To toggle the use of horizontal scroll bars, type @kbd{M-x +horizontal-scroll-bar-mode}. This command applies to all frames, +including frames yet to be created. To toggle horizontal scroll bars +for just the selected frame, use the command @kbd{M-x +toggle-horizontal-scroll-bar}. + +@vindex horizontal-scroll-bar-mode + To control the use of horizontal scroll bars at startup, customize the +variable @code{horizontal-scroll-bar-mode}. + +@vindex scroll-bar-height +@cindex height of the horizontal scroll bar + You can also use the X resource @samp{horizontalScrollBars} to enable +or disable horizontal scroll bars (@pxref{Resources}). To control the +scroll bar height, change the @code{scroll-bar-height} frame parameter +(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}). + @node Drag and Drop @section Drag and Drop @cindex drag and drop diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 10b5fcfb095..22bebed87df 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -129,7 +129,7 @@ Display news of recent Emacs changes (@code{view-emacs-news}). Find packages by topic keyword (@code{finder-by-keyword}). This lists packages using a package menu buffer. @xref{Packages}. @item C-h P @var{package} @key{RET} -Display documentation about the package named @var{package} +Display documentation about the specified package (@code{describe-package}). @item C-h r Display the Emacs manual in Info (@code{info-emacs-manual}). diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi index 45dbd5727ac..e258d1ca1a0 100644 --- a/doc/emacs/killing.texi +++ b/doc/emacs/killing.texi @@ -588,6 +588,7 @@ you can access it using the following Emacs commands: @table @kbd @findex mouse-set-secondary @kindex M-Drag-Mouse-1 +@cindex secondary-selection face @item M-Drag-Mouse-1 Set the secondary selection, with one end at the place where you press down the button, and the other end at the place where you release it @@ -754,6 +755,10 @@ Replace rectangle contents with @var{string} on each line (@code{string-rectangle}). @item M-x string-insert-rectangle @key{RET} @var{string} @key{RET} Insert @var{string} on each line of the rectangle. +@item C-x @key{SPC} +Toggle Rectangle Mark mode (@code{rectangle-mark-mode}). +When this mode is active, the region-rectangle is highlighted and can +be shrunk/grown, and the standard kill and yank commands operate on it. @end table The rectangle operations fall into two classes: commands to erase or @@ -840,11 +845,13 @@ rectangle shifts right. shifting the original text to the right. @findex rectangle-mark-mode -@cindex rectangular region - The command @kbd{C-x @key{SPC}} (@code{rectangle-mark-mode}) makes a -@dfn{rectangular region}. It is a new feature introduced in GNU Emacs -24.4, and most commands now are still unaware of it, but kill and yank -(@pxref{Killing}) do work on the rectangle. + The command @kbd{C-x @key{SPC}} (@code{rectangle-mark-mode}) toggles +whether the region-rectangle or the standard region is highlighted +(first activating the region if necessary). When this mode is enabled, +commands that resize the region (@kbd{C-f}, @kbd{C-n} etc.) do +so in a rectangular fashion, and killing and yanking operate on the +rectangle. @xref{Killing}. The mode persists only as long as the +region is active. @node CUA Bindings @section CUA Bindings @@ -887,7 +894,8 @@ any direction. Normal text you type is inserted to the left or right of each line in the rectangle (on the same side as the cursor). You can use this rectangle support without activating CUA by calling the -@code{cua-rectangle-mark-mode} command. +@code{cua-rectangle-mark-mode} command. But see also the standard +@code{rectangle-mark-mode}. @xref{Rectangles}. With CUA you can easily copy text and rectangles into and out of registers by providing a one-digit numeric prefix to the kill, copy, diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi index 2177ad4e210..048b49cefc9 100644 --- a/doc/emacs/macos.texi +++ b/doc/emacs/macos.texi @@ -12,7 +12,7 @@ the GNUstep libraries on GNU/Linux or other operating systems, or on Mac OS X with native window system support. On Mac OS X, Emacs can be built either without window system support, with X11, or with the Cocoa interface; this section only applies to the Cocoa build. This -does not support versions of Mac OS X earlier than 10.4. +does not support versions of Mac OS X earlier than 10.6. For various historical and technical reasons, Emacs uses the term @samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for @@ -84,7 +84,7 @@ set, which often causes the subprocesses it launches to behave differently than they would when launched from the shell. For the PATH and MANPATH variables, a system-wide method -of setting PATH is recommended on Mac OS X 10.5 and later, using the +of setting PATH is recommended on Mac OS X, using the @file{/etc/paths} files and the @file{/etc/paths.d} directory. @node Mac / GNUstep Customization @@ -118,7 +118,7 @@ Useful in this context is the listing of all faces obtained by @kbd{M-x list-faces-display}. @cindex Core Text, on Mac OS X -In Mac OS X 10.5 and later, Emacs uses a Core Text based font backend +In Mac OS X, Emacs uses a Core Text based font backend by default. If you prefer the older font style, enter the following at the command-line before starting Emacs: diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index e066c491ac5..63cd1ae3e44 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -31,11 +31,11 @@ versions of a source file, storing information such as the creation time of each version, who made it, and a description of what was changed. - The Emacs version control interface is called @dfn{VC}@. VC commands -work with several different version control systems; currently, it -supports GNU Arch, Bazaar, CVS, Git, Mercurial, Monotone, RCS, + The Emacs version control interface is called @dfn{VC}@. VC +commands work with several different version control systems; +currently, it supports Bazaar, CVS, Git, Mercurial, Monotone, RCS, SCCS/CSSC, and Subversion. Of these, the GNU project distributes CVS, -Arch, RCS, and Bazaar. +RCS, and Bazaar. VC is enabled automatically whenever you visit a file governed by a version control system. To disable VC entirely, set the customizable @@ -163,14 +163,6 @@ similar to CVS but without its problems (e.g., it supports atomic commits of filesets, and versioning of directories, symbolic links, meta-data, renames, copies, and deletes). -@cindex GNU Arch -@cindex Arch -@item -GNU Arch is one of the earliest @dfn{decentralized} version control -systems (the other being Monotone). @xref{VCS Concepts}, for a -description of decentralized version control systems. It is no longer -under active development, and has been deprecated in favor of Bazaar. - @cindex git @item Git is a decentralized version control system originally invented by @@ -191,6 +183,18 @@ exception of repository sync operations. Bazaar (bzr) is a decentralized version control system that supports both repository-based and decentralized versioning. VC supports most basic editing operations under Bazaar. + +@cindex SRC +@cindex src +@item +SRC (src) is RCS, reloaded - a specialized version-control system +designed for single-file projects worked on by only one person. It +allows multiple files with independent version-control histories to +exist in one directory, and is thus particularly well suited for +maintaining small documents, scripts, and dotfiles. While it uses RCS +for revision storage, it presents a modern user interface featuring +lockless operation and integer sequential version numbers. VC +supports almost all SRC operations. @end itemize @node VCS Concepts @@ -268,8 +272,8 @@ number and severity of conflicts that actually occur. SCCS always uses locking. RCS is lock-based by default but can be told to operate in a merging style. CVS and Subversion are merge-based by default but can be told to operate in a locking mode. -Decentralized version control systems, such as GNU Arch, Git, and -Mercurial, are exclusively merging-based. +Decentralized version control systems, such as Git and Mercurial, are +exclusively merging-based. VC mode supports both locking and merging version control. The terms ``commit'' and ``update'' are used in newer version control @@ -1014,8 +1018,6 @@ Revert the work file(s) in the current VC fileset to the last revision (@code{vc-revert}). @end table -@c `C-x v c' (vc-rollback) was removed, since it's RCS/SCCS specific. - @kindex C-x v u @findex vc-revert @vindex vc-revert-show-diff @@ -1317,11 +1319,18 @@ implemented, and these differences cannot be entirely concealed by VC. On some decentralized version control systems, including Bazaar and Mercurial in its normal mode of operation, each branch has its own working directory tree, so switching between branches just involves -switching directories. On Git, switching between branches is done -using the @command{git branch} command, which changes the contents of -the working tree itself. +switching directories. On Git, branches are normally @dfn{co-located} +in the same directory, and switching between branches is done using +the @command{git checkout} command, which changes the contents of the +working tree to match the branch you switch to. Bazaar also supports +co-located branches, in which case the @command{bzr switch} command +will switch branches in the current directory. With Subversion, you +switch to another branch using the @command{svn switch} command. - On centralized version control systems, you can switch between + The VC command to switch to another branch in the current directory +is @kbd{C-x v r @var{branch-name} @key{RET}} (@code{vc-retrieve-tag}). + + On centralized version control systems, you can also switch between branches by typing @kbd{C-u C-x v v} in an up-to-date work file (@pxref{Advanced C-x v v}), and entering the revision ID for a revision on another branch. On CVS, for instance, revisions on the @@ -1467,9 +1476,11 @@ different revision with @kbd{C-u C-x v v}. @cindex change log Many software projects keep a @dfn{change log}. This is a file, normally named @file{ChangeLog}, containing a chronological record of -when and how the program was changed. Sometimes, there are several -change log files, each recording the changes in one directory or -directory tree. +when and how the program was changed. Sometimes, these files are +automatically generated from the change log entries stored in version +control systems, or are used to generate these change log entries. +Sometimes, there are several change log files, each recording the +changes in one directory or directory tree. @menu * Change Log Commands:: Commands for editing change log files. diff --git a/doc/emacs/makefile.w32-in b/doc/emacs/makefile.w32-in index 297ec496fe6..d492a50686a 100644 --- a/doc/emacs/makefile.w32-in +++ b/doc/emacs/makefile.w32-in @@ -54,7 +54,7 @@ EMACS_XTRA=\ $(srcdir)/vc-xtra.texi \ $(srcdir)/vc1-xtra.texi \ $(srcdir)/fortran-xtra.texi \ - $(srcdir)/msdog-xtra.texi + $(srcdir)/msdos-xtra.texi EMACSSOURCES= \ $(srcdir)/emacs.texi \ @@ -97,7 +97,7 @@ EMACSSOURCES= \ $(srcdir)/xresources.texi \ $(srcdir)/anti.texi \ $(srcdir)/macos.texi \ - $(srcdir)/msdog.texi \ + $(srcdir)/msdos.texi \ $(srcdir)/gnu.texi \ $(srcdir)/glossary.texi \ $(srcdir)/ack.texi \ diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index ae1aefcee76..39433056f15 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -249,6 +249,126 @@ Search forward for articles containing a match for @var{regexp}. Exit the summary buffer and return to the group buffer. @end table + +@node Network Security +@section Network Security +@cindex network security manager +@cindex NSM +@cindex encryption +@cindex SSL +@cindex TLS +@cindex STARTTLS + +Whenever Emacs establishes any network connection, it passes the +established connection to the @dfn{Network Security Manager} +(@acronym{NSM}). @acronym{NSM} is responsible for enforcing the +network security under your control. + +@vindex network-security-level +The @code{network-security-level} variable determines the security +level that @acronym{NSM} enforces. If its value is @code{low}, no +security checks are performed. + +If this variable is @code{medium} (which is the default), a number of +checks will be performed. If as result @acronym{NSM} determines that +the network connection might not be trustworthy, it will make you +aware of that, and will ask you what to do about the network +connection. + +You can decide to register a permanent security exception for an +unverified connection, a temporary exception, or refuse the connection +entirely. + +Below is a list of the checks done on the @code{medium} level. + +@table @asis + +@item unable to verify a @acronym{TLS} certificate +If the connection is a @acronym{TLS}, @acronym{SSL} or +@acronym{STARTTLS} connection, @acronym{NSM} will check whether +the certificate used to establish the identity of the server we're +connecting to can be verified. + +While an invalid certificate is often the cause for concern (there +could be a Man-in-the-Middle hijacking your network connection and +stealing your password), there may be valid reasons for going ahead +with the connection anyway. For instance, the server may be using a +self-signed certificate, or the certificate may have expired. It's up +to you to determine whether it's acceptable to continue with the +connection. + +@item a self-signed certificate has changed +If you've previously accepted a self-signed certificate, but it has +now changed, that could mean that the server has just changed the +certificate, but it might also mean that the network connection has +been hijacked. + +@item previously encrypted connection now unencrypted +If the connection is unencrypted, but it was encrypted in previous +sessions, this might mean that there is a proxy between you and the +server that strips away @acronym{STARTTLS} announcements, leaving the +connection unencrypted. This is usually very suspicious. + +@item talking to an unencrypted service when sending a password +When connecting to an @acronym{IMAP} or @acronym{POP3} server, these +should usually be encrypted, because it's common to send passwords +over these connections. Similarly, if you're sending email via +@acronym{SMTP} that requires a password, you usually want that +connection to be encrypted. If the connection isn't encrypted, +@acronym{NSM} will warn you. + +@end table + +If @code{network-security-level} is @code{high}, the following checks +will be made, in addition to the above: + +@table @asis +@item a validated certificate changes the public key +Servers change their keys occasionally, and that is normally nothing +to be concerned about. However, if you are worried that your network +connections are being hijacked by agencies who have access to pliable +Certificate Authorities which issue new certificates for third-party +services, you may want to keep track of these changes. + +@item Diffie-Hellman low prime bits +When doing the public key exchange, the number of ``prime bits'' +should be high to ensure that the channel can't be eavesdropped on by +third parties. If this number is too low, you will be warned. + +@item @acronym{RC4} stream cipher +The @acronym{RC4} stream cipher is believed to be of low quality and +may allow eavesdropping by third parties. + +@item @acronym{SSL1}, @acronym{SSL2} and @acronym{SSL3} +The protocols older than @acronym{TLS1.0} are believed to be +vulnerable to a variety of attacks, and you may want to avoid using +these if what you're doing requires higher security. +@end table + +Finally, if @code{network-security-level} is @code{paranoid}, you will +also be notified the first time @acronym{NSM} sees any new +certificate. This will allow you to inspect all the certificates from +all the connections that Emacs makes. + +The following additional variables can be used to control details of +@acronym{NSM} operation: + +@table @code +@item nsm-settings-file +@vindex nsm-settings-file +This is the file where @acronym{NSM} stores details about connections. +It defaults to @file{~/.emacs.d/network-security.data}. + +@item nsm-save-host-names +@vindex nsm-save-host-names +By default, host names will not be saved for non-@code{STARTTLS} +connections. Instead a host/port hash is used to identify connections. +This means that one can't casually read the settings file to see what +servers the user has connected to. If this variable is @code{t}, +@acronym{NSM} will also save host names in the nsm-settings-file. +@end table + + @node Document View @section Document Viewing @cindex DVI file @@ -266,9 +386,10 @@ Exit the summary buffer and return to the group buffer. OpenDocument, and Microsoft Office documents. It provides features such as slicing, zooming, and searching inside documents. It works by converting the document to a set of images using the @command{gs} -(GhostScript) command and other external tools @footnote{@code{gs} is -a hard requirement. For DVI files, @code{dvipdf} or @code{dvipdfm} is -needed. For OpenDocument and Microsoft Office documents, the +(GhostScript) or @command{mudraw}/@command{pdfdraw} (MuPDF) commands +and other external tools @footnote{For PostScript files, GhostScript +is a hard requirement. For DVI files, @code{dvipdf} or @code{dvipdfm} +is needed. For OpenDocument and Microsoft Office documents, the @code{unoconv} tool is needed.}, and displaying those images. @findex doc-view-toggle-display @@ -287,6 +408,17 @@ mode or DocView minor mode, repeating @kbd{C-c C-c} (@code{doc-view-toggle-display}) toggles between DocView and the underlying file contents. +@findex doc-view-open-text + When you visit a file which would normally be handled by DocView +mode but some requirement is not met (e.g., you operate in a terminal +frame or emacs has no PNG support), you are queried if you want to +view the document's contents as plain text. If you confirm, the +buffer is put in text mode and DocView minor mode is activated. Thus, +by typing @kbd{C-c C-c} you switch to the fallback mode. With another +@kbd{C-c C-c} you return to DocView mode. The plain text contents can +also be displayed from within DocView mode by typing @kbd{C-c C-t} +(@code{doc-view-open-text}). + You can explicitly enable DocView mode with the command @code{M-x doc-view-mode}. You can toggle DocView minor mode with @code{M-x doc-view-minor-mode}. @@ -407,12 +539,14 @@ and the slice's width and height. A more convenient graphical way to specify the slice is with @kbd{s m} (@code{doc-view-set-slice-using-mouse}), where you use the mouse to -select the slice. -@c ??? How does this work? +select the slice. Simply press and hold the left mouse button at the +upper-left corner of the region you want to have in the slice, then +move the mouse pointer to the lower-right corner and release the +button. The most convenient way is to set the optimal slice by using BoundingBox information automatically determined from the document by -typing @kbd{s b} (@code{doc-view-set-slice-using-mouse}). +typing @kbd{s b} (@code{doc-view-set-slice-from-bounding-box}). @findex doc-view-reset-slice To cancel the selected slice, type @kbd{s r} @@ -1610,9 +1744,9 @@ all server buffers are finished. You can take as long as you like to edit the server buffers within Emacs, and they are @emph{not} killed when you type @kbd{C-x #} in them. -@item --parent-id @var{ID} +@item --parent-id @var{id} Open an @command{emacsclient} frame as a client frame in the parent X -window with id @var{ID}, via the XEmbed protocol. Currently, this +window with id @var{id}, via the XEmbed protocol. Currently, this option is mainly useful for developers. @item -q @@ -1935,9 +2069,9 @@ They divide the text of the region into many @dfn{sort records}, identify a @dfn{sort key} for each record, and then reorder the records into the order determined by the sort keys. The records are ordered so that their keys are in alphabetical order, or, for numeric sorting, in -numeric order. In alphabetic sorting, all upper-case letters `A' through -`Z' come before lower-case `a', in accord with the @acronym{ASCII} character -sequence. +numeric order. In alphabetic sorting, all upper-case letters @samp{A} +through @samp{Z} come before lower-case @samp{a}, in accordance with the +@acronym{ASCII} character sequence. The various sort commands differ in how they divide the text into sort records and in which part of each record is used as the sort key. Most of diff --git a/doc/emacs/msdog-xtra.texi b/doc/emacs/msdos-xtra.texi similarity index 99% rename from doc/emacs/msdog-xtra.texi rename to doc/emacs/msdos-xtra.texi index 876be52282a..c8f587cd9d1 100644 --- a/doc/emacs/msdog-xtra.texi +++ b/doc/emacs/msdos-xtra.texi @@ -6,19 +6,18 @@ @c printed version) or in the main Emacs manual (for the on-line version). @node MS-DOS @section Emacs and MS-DOS -@cindex MS-DOG @cindex MS-DOS peculiarities This section briefly describes the peculiarities of using Emacs on -the MS-DOS ``operating system'' (also known as ``MS-DOG''). +the MS-DOS ``operating system''. @iftex Information about Emacs and Microsoft's current operating system -Windows (also known as ``Losedows'') is in the main Emacs manual +Windows is in the main Emacs manual (@pxref{Microsoft Windows,,, emacs, the Emacs Manual}). @end iftex @ifnottex Information about peculiarities common to MS-DOS and Microsoft's -current operating systems Windows (also known as ``Losedows'') is in +current operating systems Windows is in @ref{Microsoft Windows}. @end ifnottex diff --git a/doc/emacs/msdog.texi b/doc/emacs/msdos.texi similarity index 99% rename from doc/emacs/msdog.texi rename to doc/emacs/msdos.texi index 7c5b3600728..a4d61e2e73a 100644 --- a/doc/emacs/msdog.texi +++ b/doc/emacs/msdos.texi @@ -9,7 +9,7 @@ This section describes peculiarities of using Emacs on Microsoft Windows. Some of these peculiarities are also relevant to Microsoft's -older MS-DOS ``operating system'' (also known as ``MS-DOG''). +older MS-DOS operating system. However, Emacs features that are relevant @emph{only} to MS-DOS are described in a separate @iftex @@ -986,5 +986,5 @@ click-to-focus policy. @end ifnottex @ifnottex -@include msdog-xtra.texi +@include msdos-xtra.texi @end ifnottex diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi index 90bdafe456a..136eff7e2fe 100644 --- a/doc/emacs/package.texi +++ b/doc/emacs/package.texi @@ -60,7 +60,7 @@ The package's version number (e.g., @samp{11.86}). @item The package's status---normally one of @samp{available} (can be downloaded from the package archive), @samp{installed}, -@samp{unsigned} (installed, but not signed; @pxref{Package Signing}), +@c @samp{unsigned} (installed, but not signed; @pxref{Package Signing}), or @samp{built-in} (included in Emacs by default). The status can also be @samp{new}. This is equivalent to @@ -184,11 +184,8 @@ key from a server such as @url{http://pgp.mit.edu/}. Use @kbd{M-x package-import-keyring} to import the key into Emacs. Emacs stores package keys in the @file{gnupg} subdirectory of @code{package-user-dir}. -@c Uncomment this if it becomes true. -@ignore The public key for the GNU package archive is distributed with Emacs, in the @file{etc/package-keyring.gpg}. Emacs uses it automatically. -@end ignore @vindex package-check-signature @vindex package-unsigned-archives diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index 05008790b4f..f2ca386b49e 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -88,8 +88,8 @@ Fortran, Icon, IDL (CORBA), IDLWAVE, Java, Javascript, Metafont Octave, Pascal, Perl, Pike, PostScript, Prolog, Python, Ruby, Simula, Tcl, and VHDL@. An alternative mode for Perl is called CPerl mode. Modes are also available for the scripting languages of the common GNU and Unix -shells, VMS DCL, and MS-DOS/MS-Windows @samp{BAT} files, and for -makefiles, DNS master files, and various sorts of configuration files. +shells, and MS-DOS/MS-Windows @samp{BAT} files, and for makefiles, +DNS master files, and various sorts of configuration files. Ideally, Emacs should have a major mode for each programming language that you might want to edit. If it doesn't have a mode for @@ -1453,7 +1453,7 @@ creates. @findex superword-mode Superword mode is a buffer-local minor mode that causes editing and motion commands to treat symbols (e.g., @samp{this_is_a_symbol}) as words. -When Subword mode is enabled, the minor mode indicator +When Superword mode is enabled, the minor mode indicator @iftex @samp{@math{^2}} @end iftex diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi index a0ff7079388..bc4abb389c4 100644 --- a/doc/emacs/regs.texi +++ b/doc/emacs/regs.texi @@ -149,9 +149,9 @@ during the collection process, you can use the following setting. @kindex C-x r i @findex insert-register @kbd{C-x r i @var{r}} inserts in the buffer the text from register -@var{r}. Normally it leaves point before the text and sets the mark -after, without activating it. With a numeric argument, it instead -puts point after the text and the mark before. +@var{r}. Normally it leaves point after the text and sets the mark +before, without activating it. With a numeric argument, it instead +puts before after the text and the mark after. @node Rectangle Registers @section Saving Rectangles in Registers diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index 64ecf165349..a0c59c6f87f 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi @@ -86,6 +86,7 @@ not be the first @samp{F} previously found. After another @kbd{O}, the cursor moves to just after the first @samp{FOO}. @cindex faces for highlighting search matches +@cindex isearch face At each step, Emacs highlights the @dfn{current match}---the buffer text that matches the search string---using the @code{isearch} face (@pxref{Faces}). The current search string is also displayed in the @@ -1280,6 +1281,8 @@ It works like @code{replace-regexp} except that it queries like @code{query-replace}. @cindex faces for highlighting query replace +@cindex query-replace face +@cindex lazy-highlight face These commands highlight the current match using the face @code{query-replace}. They highlight other matches using @code{lazy-highlight} just like incremental search (@pxref{Incremental @@ -1337,7 +1340,7 @@ to replace all remaining occurrences without asking again. @item Y @r{(Upper-case)} to replace all remaining occurrences in all remaining buffers in -multi-buffer replacements (like the Dired `Q' command which performs +multi-buffer replacements (like the Dired @key{Q} command that performs query replace on selected files). It answers this question and all subsequent questions in the series with "yes", without further user interaction. @@ -1433,6 +1436,22 @@ matching that regexp. This command is just like @code{multi-isearch-buffers}, except it performs an incremental regexp search. +@item M-x multi-isearch-files +Prompt for one or more file names, ending with @key{RET}; then, +begin a multi-file incremental search in those files. (If the +search fails in one file, the next @kbd{C-s} tries searching the +next specified file, and so forth.) With a prefix argument, prompt +for a regexp and begin a multi-file incremental search in files +matching that regexp. + +@item M-x multi-isearch-files-regexp +This command is just like @code{multi-isearch-files}, except it +performs an incremental regexp search. + +In some modes that set the buffer-local variable +@code{multi-isearch-next-buffer-function} (e.g., in Change Log mode) +a multi-file incremental search is activated automatically. + @cindex Occur mode @cindex mode, Occur @item M-x occur diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 09260a1e5a9..5f3cf9223eb 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi @@ -1137,9 +1137,9 @@ new function, all you need to say about it is that it is new. If you feel that the purpose needs explaining, it probably does---but put the explanation in comments in the code. It will be more useful there. -Please read the @file{ChangeLog} files in the @file{src} and -@file{lisp} directories to see what sorts of information to put in, -and to learn the style that we use. @xref{Change Log}. +Please look at the change log entries of recent commits to see what +sorts of information to put in, and to learn the style that we use. +@xref{Change Log}. @item When you write the fix, keep in mind that we can't install a change that diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi index 07f956c488d..dd52d97780d 100644 --- a/doc/emacs/vc1-xtra.texi +++ b/doc/emacs/vc1-xtra.texi @@ -113,7 +113,7 @@ Prompt for a file name, delete the file from the working tree, and schedule the deletion for committing. @item M-x vc-rename-file -Prompt for two file names, @var{VAR} and @var{OLD}, rename them in the +Prompt for two file names, @var{var} and @var{old}, rename them in the working tree, and schedule the renaming for committing. @end table diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index 4a5f24c13fb..4045908d4d5 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi @@ -134,6 +134,18 @@ clicking @kbd{C-Mouse-2} in the scroll bar, which puts a horizontal divider where you click (this feature does not work when Emacs uses GTK+ scroll bars). +@vindex window-resize-pixelwise + By default, when you split a window, Emacs gives each of the +resulting windows dimensions that are an integral multiple of the +default font size of the frame. That might subdivide the screen +estate unevenly between the resulting windows. If you set the +variable @code{window-resize-pixelwise} to a non-@code{nil} value, +Emacs will give each window the same number of pixels (give or take +one pixel if the initial dimension was an odd number of pixels). Note +that when a frame's pixel size is not a multiple of the frame's +character size, at least one window may get resized pixelwise even if +this option is @code{nil}. + @node Other Window @section Using Other Windows diff --git a/doc/lispintro/.gitignore b/doc/lispintro/.gitignore deleted file mode 100644 index e1af5a918b0..00000000000 --- a/doc/lispintro/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -*.aux -*.fn -*.fns -*.cps -*.cp -*.kys -*.ky -*.toc -*.pgs -*.pg -*.log -*.vrs -*.vr -*.dvi -*.ps -*.tp -*.tps -*.tmp -*.txt -Makefile -makefile diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index 70d7767635f..572875c151a 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog @@ -1,3 +1,17 @@ +2014-11-09 Glenn Morris + + * Makefile.in (version): Remove variable. + (clean): No longer delete dist tarfile. + (dist): Remove rule; replace with code in admin.el. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-13 Glenn Morris + + * Makefile.in (dist): Update for new output variables. + 2014-07-16 Álvar Jesús Ibeas Martín (tiny change) * emacs-lisp-intro.texi (Variables, Buffer Names, if & or) @@ -567,8 +581,8 @@ 2006-11-05 Robert J. Chassell * emacs-lisp-intro.texi: Yet more minor changes: - (defcustom): Said that `:options' is usually for a hook. Remove - extraneous space in parenthetical remark concerning + (defcustom): Said that `:options' is usually for a hook. + Remove extraneous space in parenthetical remark concerning `text-mode-hook-identify'. At end, mention other defines, too. (Beginning a .emacs File): Reverse words about comments so they parallel numbers of listed semi-colons. @@ -590,12 +604,12 @@ Center images for TeX output. (kill-new function): Remove indentation for sentence talking about momentarily skipping code. - (cons & search-fwd Review): Document @code{funcall}. Document - @code{re-search-forward} with existing @code{search-forward}. + (cons & search-fwd Review): Document @code{funcall}. + Document @code{re-search-forward} with existing @code{search-forward}. Reference chapter on regular expression searches. (Recursion with list): Specify a more recent version as being Emacs. - (Recursion with list, Every, recursive-graph-body-print): Change - `if ... progn' expression to `when'. + (Recursion with list, Every, recursive-graph-body-print): + Change `if ... progn' expression to `when'. (Recursive triangle function): For printing in small book, ensure section name is not last on bottom of preceding page. (Keep): Remove extraneous space in function definition example. @@ -604,11 +618,11 @@ function. (fwd-sentence while loops): Write a function as one, not as a form. (fwd-para let): Add `which' to sentence with `parstart' and `parsep'. - (etags): Move sentences involving `find-tag' and sources. State - location of Emacs `src' directory. + (etags): Move sentences involving `find-tag' and sources. + State location of Emacs `src' directory. (Design count-words-region): Better explain two backslashes in a row. - (Find a File): Fix grammar; add a `to' and write `to visit'. Change - `named' to `selected'. + (Find a File): Fix grammar; add a `to' and write `to visit'. + Change `named' to `selected'. (lengths-list-file): Remove extraneous parenthesis from reference. (lengths-list-many-files): Explain `expand-file-name' better. (Files List): Rephrase sentence regarding Lisp sources directory. @@ -636,8 +650,8 @@ seen' the @code{eq} function. (kill-append function): Reformat `kill-append' function definition so it prints well. - (kill-new function): Indent the sentence beginning `notice'. Replace - `the same as' with `similar to'. Repair typo. Remove obsolete + (kill-new function): Indent the sentence beginning `notice'. + Replace `the same as' with `similar to'. Repair typo. Remove obsolete references to `yank' and `yank-pop. End section with a note that `we will digress into C.' @@ -661,8 +675,8 @@ is 3.00. Did not update ISBN number. * emacs-lisp-intro.texi: Remove version reference for X colors. - Document `='. Remove mention that :eval was new in 21. Updated - instance's edition-number to 3.01. + Document `='. Remove mention that :eval was new in 21. + Updated instance's edition-number to 3.01. 2006-10-30 Robert J. Chassell diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in index b40c26767cc..4bcbb53ad9a 100644 --- a/doc/lispintro/Makefile.in +++ b/doc/lispintro/Makefile.in @@ -19,10 +19,7 @@ SHELL = @SHELL@ -# NB If you add any more configure variables, -# update the sed rules in the dist target below. srcdir = @srcdir@ -version=@version@ buildinfodir = $(srcdir)/../../info # Directory with the (customized) texinfo.tex file. @@ -108,7 +105,6 @@ mostlyclean: clean: mostlyclean rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS) - rm -f emacs-lispintro-${version}.tar* distclean: clean rm -f Makefile @@ -120,28 +116,6 @@ infoclean: bootstrap-clean maintainer-clean: distclean infoclean -.PHONY: dist - -dist: - rm -rf emacs-lispintro-${version} - mkdir emacs-lispintro-${version} - cp ${srcdir}/*.texi ${srcdir}/*.eps ${srcdir}/*.pdf \ - ${texinfodir}/texinfo.tex ${emacsdir}/emacsver.texi \ - ${srcdir}/ChangeLog* ${srcdir}/README emacs-lispintro-${version}/ - sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \ - -e 's/^\(emacsdir *=\).*/\1 ./' \ - -e 's/^\(buildinfodir *=\).*/\1 ./' \ - -e 's/^\(clean:.*\)/\1 infoclean/' \ - -e "s/@ver[s]ion@/${version}/" \ - -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \ - ${srcdir}/Makefile.in > emacs-lispintro-${version}/Makefile - @if grep '@[a-zA-Z_]*@' emacs-lispintro-${version}/Makefile; then \ - echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \ - fi - tar -cf emacs-lispintro-${version}.tar emacs-lispintro-${version} - rm -rf emacs-lispintro-${version} - - .PHONY: install-dvi install-html install-pdf install-ps install-doc install-dvi: dvi diff --git a/doc/lispref/.gitignore b/doc/lispref/.gitignore deleted file mode 100644 index ba74d365995..00000000000 --- a/doc/lispref/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -texput.log -elisp.?? -elisp.??? -config.log -config.cache -config.status -Makefile -makefile -elisp -elisp-? -elisp-?? -elisp1* -elisp2* diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 58548077d3d..3621c563d79 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,276 @@ +2014-12-22 Paul Eggert + + Remove obsolete references to pre-C99 builds + * internals.texi (C Integer Types): Don't mention pre-C99 compilers. + +2014-12-19 Martin Rudalics + + * windows.texi (Resizing Windows): Describe new argument of + `fit-window-to-buffer'. Move description of `window-size-fixed' + to new section below. + (Preserving Window Sizes): New section describing + `window-size-fixed' and `window-preserve-size'. + (Display Action Functions): Describe `preserve-size' alist + entry. + (Window Parameters): Describe `preserved-size' parameter. + +2014-12-18 Eli Zaretskii + + * display.texi (Low-Level Font): Document font-info and query-font. + +2014-12-16 Nicolas Petton + + * sequences.texi (Seq Library): Add documentation for seq.el. + +2014-12-15 Alan Mackenzie + + "Advice" is a mass noun. Amend text accordingly. + * functions.texi: (Advising Functions, Core Advising Primitives) + (Advising Named Functions, Advice combinators) + (Porting old advice): Replace, e.g., "an advice" with "advice". + +2014-12-13 Lars Magne Ingebrigtsen + + * files.texi (Relative File Names): Mention `directory-name-p'. + +2014-12-13 Eli Zaretskii + + * text.texi (Comparing Text): Prevent a text string from being + broken between 2 lines. (Bug#19257) + +2014-12-09 Lars Magne Ingebrigtsen + + * files.texi (Contents of Directories): + Document directory-files-recursively. + +2014-12-04 Eli Zaretskii + + * display.texi (Bidirectional Display): + Document 'buffer-substring-with-bidi-context'. + + * text.texi (Buffer Contents): + Mention 'buffer-substring-with-bidi-context' with a cross-reference. + +2014-12-02 Eli Zaretskii + + * display.texi (Bidirectional Display): + Document 'bidi-find-overridden-directionality'. + +2014-11-29 Paul Eggert + + Lessen focus on ChangeLog files, as opposed to change log entries. + * intro.texi (Acknowledgments): ChangeLog file -> change log entries. + * tips.texi (Library Headers): Emacs uses a version control system. + +2014-11-27 Lars Magne Ingebrigtsen + + * text.texi (Document Object Model): Mention `dom-pp'. + +2014-11-26 Lars Magne Ingebrigtsen + + * text.texi (Document Object Model): New node to document dom.el. + +2014-11-24 Lars Magne Ingebrigtsen + + * processes.texi (Network Security): Made into its own section and + fleshed out. + (Network Security): Mention more NSM variables. + (Processes): Move the Network Security Manager stuff to the Emacs + manual. + +2014-11-23 Lars Magne Ingebrigtsen + + * processes.texi (Network): Mention the new :warn-unless-encrypted + parameter to `open-network-stream'. + (Network): Mention the Network Security Manager. + +2014-11-21 Ulf Jasper + + * text.texi (Parsing HTML/XML): Document new optional parameter + 'discard-comments' of 'libxml-parse(html|xml)-region'. + +2014-11-18 Leo Liu + + * functions.texi (Advising Named Functions): + Document define-advice. + +2014-11-17 Paul Eggert + + Improve time stamp handling, and be more consistent about it. + * os.texi (Time of Day, Time Conversion, Time Parsing) + (Processor Run Time, Time Calculations): + Document the new behavior, plus be clearer about the old behavior. + (Idle Timers): Take advantage of new functionality. + +2014-11-16 Lars Magne Ingebrigtsen + + * text.texi (Special Properties): Mention `inhibit-read-only'. + +2014-11-14 Paul Eggert + + * os.texi (Time of Day): + Use leading zero with 24-hour times less than 10:00. + +2014-11-09 Glenn Morris + + * Makefile.in (version): Remove variable. + (clean): No longer delete dist tarfile. + (dist): Remove rule; replace with code in admin.el. + +2014-11-07 Martin Rudalics + + * frames.texi (Size and Position): Rewrite description of + `frame-inhibit-implied-resize'. + +2014-10-22 Martin Rudalics + + * frames.texi (Size Parameters): Replace "frame contents" by + "frame's text area". Add reference to Size and Position + section. + (Size and Position): Major rewrite. Add explanations for + frame's default font, text and display areas. Add descriptions + for `set-frame-font', `frame-text-height', `frame-text-width' + and `frame-inhibit-implied-resize'. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-20 Tom Tromey + + * objects.texi (Type Predicates): Don't mention display-table-p. + +2014-10-15 Eli Zaretskii + + * nonascii.texi (Character Properties): Document the new + properties 'bracket-type' and 'paired-bracket'. + + * display.texi (Bidirectional Display): Update the version of the + UBA to which we are conforming. + +2014-10-13 Glenn Morris + + * Makefile.in (dist): Update for new output variables. + +2014-10-12 Glenn Morris + + * elisp.texi (DATE): Bump to October 2014. + +2014-10-09 Glenn Morris + + * frames.texi (Multiple Terminals): Copyedits. + +2014-10-09 Eli Zaretskii + + * frames.texi (Multiple Terminals): Improve the description of X + display names. Add index entries. + (Basic Parameters): Add a cross-reference to where X display names + are described. + (Position Parameters): Mention that positional parameters of the + form (+ POS) can be negative if they are on a non-primary monitor + of a multi-monitor display. (Bug#18636) + (Creating Frames): Mention that on multi-monitor displays the + frame might be positioned differently than specified by the frame + parameters alist. + +2014-10-08 Leo Liu + + * streams.texi (Output Functions): Document new argument ENSURE to + terpri. (Bug#18652) + +2014-10-04 Martin Rudalics + + * display.texi (Scroll Bars): Add description of horizontal scroll + bars and associated functions. + * frames.texi (Layout Parameters): Add horizontal scroll bar + entries. Remove paragraph on "combined fringe widths". + * windows.texi (Window Sizes): Describe affects of horizontal + scroll bars on window layout and sizes. Fix description of + window-full-height-p. + (Resizing Windows): Mention horizontal scroll bar. + +2014-10-04 Glenn Morris + + * commands.texi (Generic Commands): Copyedits. + + * display.texi (Scroll Bars): + * modes.texi (Header Lines): Copyedits. + + * buffers.texi (Buffer List): + * display.texi (Image Descriptors, Defining Images): + * functions.texi (Core Advising Primitives): Small fixes re @var usage. + + * windows.texi (Window Sizes, Resizing Windows): Copyedits. + + * frames.texi (Multiple Terminals): Copyedits re multiple monitors. + +2014-10-03 Martin Rudalics + + * frames.texi (Size Parameters, Size and Position): Mention that + with some window managers you have to set `frame-resize-pixelwise' + in order make a frame truly fullscreen or maximized. + +2014-10-01 Paul Eggert + + Improve doc for use of 'int', and discuss 'ssize_t'. + * internals.texi (C Integer Types): Mention 'int' for other + randomish values that lie in 'int' range. Mention 'ssize_t'. See: + http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00019.html + + Use AUTO_CONS instead of SCOPED_CONS, etc. + * internals.texi (Stack-allocated Objects): + Adjust to match the revised, less error-prone macros. + +2014-09-30 Paul Eggert + + * internals.texi (Stack-allocated Objects): Further improvements. + Give an example of misuse. + +2014-09-30 Eli Zaretskii + + * internals.texi (Stack-allocated Objects): Minor improvements of + the wording and the indexing. + +2014-09-30 Dmitry Antipov + + * internals.texi (Stack-allocated Objects): Describe this feature. + +2014-09-15 Daniel Colascione + + * text.texi (Registers): Make `insert-register' documentation + reflect interface change. + +2014-09-08 Stefan Monnier + + * functions.texi (Core Advising Primitives): Add a note about the + confusing treatment of `interactive' for :filter-args (bug#18399). + +2014-09-07 Michael Albinus + + * strings.texi (Text Comparison): Describe `string-collate-equalp' + and `string-collate-lessp'. + +2014-09-06 Leo Liu + + * control.texi (Pattern matching case statement): Document vector + qpattern. (Bug#18327) + +2014-08-29 Dmitry Antipov + + * lists.texi (Functions that Rearrange Lists): + Remove description of sort ... + * sequences.texi (Sequence Functions): ... and generalize + it for sequences. Add an example. + +2014-08-28 Eli Zaretskii + + * display.texi (Bidirectional Display): Update the Emacs's class + of bidirectional conformance. + +2014-08-27 Dmitry Antipov + + * eval.texi (Eval): Mention possible recovery from stack overflow. + 2014-07-11 Eli Zaretskii * internals.texi (Garbage Collection): Fix last change. @@ -133,8 +406,8 @@ 2014-05-15 Dmitry Antipov - * lists.texi (Building Cons Cells and Lists): Remove - description of `reverse' and `'nreverse' to generalize them... + * lists.texi (Building Cons Cells and Lists): + Remove description of `reverse' and `'nreverse' to generalize them... * sequences.texi (Sequences): ...for sequences here. 2014-05-14 Glenn Morris @@ -4516,7 +4789,7 @@ (texinputdir, $(infodir)/elisp): Use $(MAKEINFO_OPTS). 2011-01-25 Chong Yidong - Richard Kim + Richard Kim * loading.texi (Library Search): Document list-load-path-shadows (Bug#7757). @@ -13276,7 +13549,7 @@ 1998-01-30 Richard Stallman - * Makefile (SHELL): Defined. + * Makefile (SHELL): Define. 1998-01-27 Richard Stallman diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in index 2919d97b3a3..11cc0ecc10e 100644 --- a/doc/lispref/Makefile.in +++ b/doc/lispref/Makefile.in @@ -25,8 +25,6 @@ SHELL = @SHELL@ # Standard configure variables. srcdir = @srcdir@ -version=@version@ - buildinfodir = $(srcdir)/../../info # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc @@ -164,7 +162,6 @@ mostlyclean: clean: mostlyclean rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS) rm -f vol[12].dvi vol[12].pdf vol[12].ps - rm -f emacs-lispref-${version}.tar* distclean: clean rm -f Makefile @@ -177,28 +174,6 @@ infoclean: bootstrap-clean maintainer-clean: distclean infoclean -.PHONY: dist - -## Note this excludes the two-volume stuff. -dist: - rm -rf emacs-lispref-${version} - mkdir emacs-lispref-${version} - cp ${srcdir}/*.texi ${texinfodir}/texinfo.tex \ - $(emacsdir)/emacsver.texi ${srcdir}/ChangeLog* \ - ${srcdir}/README emacs-lispref-${version}/ - sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \ - -e 's/^\(emacsdir *=\).*/\1 ./' \ - -e 's/^\(buildinfodir *=\).*/\1 ./' \ - -e 's/^\(clean:.*\)/\1 infoclean/' \ - -e "s/@ver[s]ion@/${version}/" \ - -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \ - ${srcdir}/Makefile.in > emacs-lispref-${version}/Makefile - @if grep '@[a-zA-Z_]*@' emacs-lispref-${version}/Makefile; then \ - echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \ - fi - tar -cf emacs-lispref-${version}.tar emacs-lispref-${version} - rm -rf emacs-lispref-${version} - .PHONY: install-dvi install-html install-pdf install-ps install-doc install-dvi: dvi diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi index 1293a03082c..5ac2d6786e8 100644 --- a/doc/lispref/buffers.texi +++ b/doc/lispref/buffers.texi @@ -863,7 +863,7 @@ If no suitable buffer exists, the buffer @file{*scratch*} is returned @defun last-buffer &optional buffer visible-ok frame This function returns the last buffer in @var{frame}'s buffer list other -than @var{BUFFER}. If @var{frame} is omitted or @code{nil}, it uses the +than @var{buffer}. If @var{frame} is omitted or @code{nil}, it uses the selected frame's buffer list. The argument @var{visible-ok} is handled as with @code{other-buffer}, diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index 58e903918bf..e5db4d87539 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -589,31 +589,26 @@ Put them into three windows, selecting the last one." @cindex alternatives, defining The macro @code{define-alternatives} can be used to define -@dfn{generic commands}. Generic commands are interactive functions -whose implementation can be selected among several alternatives, as a -matter of user preference. +@dfn{generic commands}. These are interactive functions whose +implementation can be selected from several alternatives, as a matter +of user preference. @defmac define-alternatives command &rest customizations -Define the new command `COMMAND'. +Define the new command @var{command}, a symbol. -The argument `COMMAND' should be a symbol. +When a user runs @kbd{M-x @var{command} @key{RET}} for the first time, +Emacs prompts for which real form of the command to use, and records +the selection by way of a custom variable. Using a prefix argument +repeats this process of choosing an alternative. -When a user runs @kbd{M-x COMMAND @key{RET}} for the first time, Emacs -will prompt for which alternative to use and record the selected -command as a custom variable. +The variable @code{@var{command}-alternatives} should contain an alist +with alternative implementations of @var{command}. +Until this variable is set, @code{define-alternatives} has no effect. -Running @kbd{C-u M-x COMMAND @key{RET}} prompts again for an -alternative and overwrites the previous choice. - -The variable @code{COMMAND-alternatives} contains an alist -(@pxref{Association Lists}) with alternative implementations of -`COMMAND'. @code{define-alternatives} does not have any effect until -this variable is set. - -If @var{customizations} is non-@var{nil}, it should be composed of -alternating @code{defcustom} keywords and values to add to the -declaration of @code{COMMAND-alternatives} (typically :group and -:version). +If @var{customizations} is non-@code{nil}, it should consist of +alternating @code{defcustom} keywords (typically @code{:group} and +@code{:version}) and values to add to the declaration of +@code{@var{command}-alternatives}. @end defmac @node Interactive Call diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index edf60dd5cc8..5cf6368db52 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -328,13 +328,13 @@ lexical binding): @example (defun evaluate (exp env) (pcase exp - (`(add ,x ,y) (+ (evaluate x env) (evaluate y env))) - (`(call ,fun ,arg) (funcall (evaluate fun env) (evaluate arg env))) - (`(fn ,arg ,body) (lambda (val) - (evaluate body (cons (cons arg val) env)))) - ((pred numberp) exp) - ((pred symbolp) (cdr (assq exp env))) - (_ (error "Unknown expression %S" exp)))) + (`(add ,x ,y) (+ (evaluate x env) (evaluate y env))) + (`(call ,fun ,arg) (funcall (evaluate fun env) (evaluate arg env))) + (`(fn ,arg ,body) (lambda (val) + (evaluate body (cons (cons arg val) env)))) + ((pred numberp) exp) + ((pred symbolp) (cdr (assq exp env))) + (_ (error "Unknown expression %S" exp)))) @end example Where @code{`(add ,x ,y)} is a pattern that checks that @code{exp} is a three @@ -370,6 +370,10 @@ More specifically, a Q-pattern can take the following forms: @item (@var{qpattern1} . @var{qpattern2}) This pattern matches any cons cell whose @code{car} matches @var{QPATTERN1} and whose @code{cdr} matches @var{PATTERN2}. +@item [@var{qpattern1 qpattern2..qpatternm}] +This pattern matches a vector of length @code{M} whose 0..(M-1)th +elements match @var{QPATTERN1}, @var{QPATTERN2}..@var{QPATTERNm}, +respectively. @item @var{atom} This pattern matches any atom @code{equal} to @var{atom}. @item ,@var{upattern} diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index e0349e4ca0c..48860c8ebef 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -23,7 +23,7 @@ that Emacs presents to the user. * Faces:: A face defines a graphics style for text characters: font, colors, etc. * Fringes:: Controlling window fringes. -* Scroll Bars:: Controlling vertical scroll bars. +* Scroll Bars:: Controlling scroll bars. * Window Dividers:: Separating windows visually. * Display Property:: Enabling special display features. * Images:: Displaying images in Emacs buffers. @@ -3349,9 +3349,9 @@ The script that the font must support (a symbol). @item :otf @cindex OpenType font The font must be an OpenType font that supports these OpenType -features, provided Emacs is compiled with support for @samp{libotf} (a -library for performing complex text layout in certain scripts). The -value must be a list of the form +features, provided Emacs is compiled with a library, such as +@samp{libotf} on GNU/Linux, that supports complex text layout for +scripts which need that. The value must be a list of the form @smallexample @code{(@var{script-tag} @var{langsys-tag} @var{gsub} @var{gpos})} @@ -3450,6 +3450,124 @@ If the optional argument @var{fold-wildcards} is non-@code{nil}, consecutive wildcards in the XLFD are folded into one. @end defun +The following two functions return important information about a font. + +@defun font-info name &optional frame +This function returns information about a font specified by its +@var{name}, a string, as it is used on @var{frame}. If @var{frame} is +omitted or @code{nil}, it defaults to the selected frame. + +The value returned by the function is a vector of the form +@code{[@var{opened-name} @var{full-name} @var{size} @var{height} +@var{baseline-offset} @var{relative-compose} @var{default-ascent} +@var{max-width} @var{ascent} @var{descent} @var{space-width} +@var{average-width} @var{filename} @var{capability}]}. Here's the +description of each components of this vector: + +@table @var +@item opened-name +The name used to open the font, a string. + +@item full-name +The full name of the font, a string. + +@item size +The pixel size of the font. + +@item height +The height of the font in pixels. + +@item baseline-offset +The offset in pixels from the @acronym{ASCII} baseline, positive +upward. + +@item relative-compose +@itemx default-ascent +Numbers controlling how to compose characters. + +@item ascent +@itemx descent +The ascent and descent of this font. The sum of these two numbers +should be equal to the value of @var{height} above. + +@item space-width +The width, in pixels, of the font's space character. + +@item average-width +The average width of the font characters. If this is zero, Emacs uses +the value of @var{space-width} instead, when it calculates text layout +on display. + +@item filename +The file name of the font as a string. This can be @code{nil} if the +font back-end does not provide a way to find out the font's file name. + +@item capability +A list whose first element is a symbol representing the font type, one +of @code{x}, @code{opentype}, @code{truetype}, @code{type1}, +@code{pcf}, or @code{bdf}. For OpenType fonts, the list includes 2 +additional elements describing the @sc{gsub} and @sc{gpos} features +supported by the font. Each of these elements is a list of the form +@code{((@var{script} (@var{langsys} @var{feature} @dots{}) @dots{}) +@dots{})}, where @var{script} is a symbol representing an OpenType +script tag, @var{langsys} is a symbol representing an OpenType langsys +tag (or @code{nil}, which stands for the default langsys), and each +@var{feature} is a symbol representing an OpenType feature tag. +@end table +@end defun + +@defun query-font font-object +This function returns information about a @var{font-object}. (This is +in contrast to @code{font-info}, which takes the font name, a string, +as its argument.) + +The value returned by the function is a vector of the form +@code{[@var{name} @var{filename} @var{pixel-size} @var{max-width} +@var{ascent} @var{descent} @var{space-width} @var{average-width} +@var{capability}]}. Here's the description of each components of this +vector: + +@table @var +@item name +The font name, a string. + +@item filename +The file name of the font as a string. This can be @code{nil} if the +font back-end does not provide a way to find out the font's file name. + +@item pixel-size +The pixel size of the font used to open the font. + +@item max-width +The maximum advance width of the font. + +@item ascent +@itemx descent +The ascent and descent of this font. The sum of these two numbers +gives the font height. + +@item space-width +The width, in pixels, of the font's space character. + +@item average-width +The average width of the font characters. If this is zero, Emacs uses +the value of @var{space-width} instead, when it calculates text layout +on display. + +@item capability +A list whose first element is a symbol representing the font type, one +of @code{x}, @code{opentype}, @code{truetype}, @code{type1}, +@code{pcf}, or @code{bdf}. For OpenType fonts, the list includes 2 +additional elements describing the @sc{gsub} and @sc{gpos} features +supported by the font. Each of these elements is a list of the form +@code{((@var{script} (@var{langsys} @var{feature} @dots{}) @dots{}) +@dots{})}, where @var{script} is a symbol representing an OpenType +script tag, @var{langsys} is a symbol representing an OpenType langsys +tag (or @code{nil}, which stands for the default langsys), and each +@var{feature} is a symbol representing an OpenType feature tag. +@end table +@end defun + @node Fringes @section Fringes @cindex fringes @@ -3866,102 +3984,164 @@ arrow position. If either property is not set, the default @code{overlay-arrow-string} or @code{overlay-arrow} fringe indicator is used. + @node Scroll Bars @section Scroll Bars @cindex scroll bars Normally the frame parameter @code{vertical-scroll-bars} controls -whether the windows in the frame have vertical scroll bars, and -whether they are on the left or right. The frame parameter -@code{scroll-bar-width} specifies how wide they are (@code{nil} -meaning the default). @xref{Layout Parameters}. +whether the windows in the frame have vertical scroll bars, and whether +they are on the left or right. The frame parameter +@code{scroll-bar-width} specifies how wide they are (@code{nil} meaning +the default). + + The frame parameter @code{horizontal-scroll-bars} controls whether +the windows in the frame have horizontal scroll bars. The frame +parameter @code{scroll-bar-height} specifies how high they are +(@code{nil} meaning the default). @xref{Layout Parameters}. + +@vindex horizontal-scroll-bars-available-p + Horizontal scroll bars are not available on all platforms. The +function @code{horizontal-scroll-bars-available-p} which takes no +argument returns non-@code{nil} if they are available on your system. + + The following three functions take as argument a live frame which +defaults to the selected one. @defun frame-current-scroll-bars &optional frame -This function reports the scroll bar type settings for frame -@var{frame}. The value is a cons cell -@code{(@var{vertical-type} .@: @var{horizontal-type})}, where -@var{vertical-type} is either @code{left}, @code{right}, or @code{nil} -(which means no scroll bar.) @var{horizontal-type} is meant to -specify the horizontal scroll bar type, but since they are not -implemented, it is always @code{nil}. +This function reports the scroll bar types for frame @var{frame}. The +value is a cons cell @code{(@var{vertical-type} .@: +@var{horizontal-type})}, where @var{vertical-type} is either +@code{left}, @code{right}, or @code{nil} (which means no vertical scroll +bar.) @var{horizontal-type} is either @code{bottom} or @code{nil} +(which means no horizontal scroll bar). @end defun -@vindex vertical-scroll-bar - You can enable or disable scroll bars for a particular buffer, -by setting the variable @code{vertical-scroll-bar}. This variable -automatically becomes buffer-local when set. The possible values are -@code{left}, @code{right}, @code{t}, which means to use the -frame's default, and @code{nil} for no scroll bar. - - You can also control this for individual windows. Call the function -@code{set-window-scroll-bars} to specify what to do for a specific window: - -@defun set-window-scroll-bars window width &optional vertical-type horizontal-type -This function sets the width and type of scroll bars for window -@var{window}. - -@var{width} specifies the scroll bar width in pixels (@code{nil} means -use the width specified for the frame). @var{vertical-type} specifies -whether to have a vertical scroll bar and, if so, where. The possible -values are @code{left}, @code{right} and @code{nil}, just like the -values of the @code{vertical-scroll-bars} frame parameter. - -The argument @var{horizontal-type} is meant to specify whether and -where to have horizontal scroll bars, but since they are not -implemented, it has no effect. If @var{window} is @code{nil}, the -selected window is used. +@defun frame-scroll-bar-width &optional Lisp_Object &optional frame +This function returns the width of vertical scroll bars of @var{frame} +in pixels. @end defun +@defun frame-scroll-bar-height &optional Lisp_Object &optional frame +This function returns the height of horizontal scroll bars of +@var{frame} in pixels. +@end defun + +You can override the frame specific settings for individual windows by +using the following function: + +@defun set-window-scroll-bars window &optional width vertical-type height horizontal-type +This function sets the width and/or height and the types of scroll bars +for window @var{window}. + +@var{width} specifies the width of the vertical scroll bar in pixels +(@code{nil} means use the width specified for the frame). +@var{vertical-type} specifies whether to have a vertical scroll bar and, +if so, where. The possible values are @code{left}, @code{right}, +@code{t}, which means to use the frame's default, and @code{nil} for no +vertical scroll bar. + +@var{height} specifies the height of the horizontal scroll bar in pixels +(@code{nil} means use the height specified for the frame). +@var{horizontal-type} specifies whether to have a horizontal scroll bar. +The possible values are @code{bottom}, @code{t}, which means to use the +frame's default, and @code{nil} for no horizontal scroll bar. + +If @var{window} is @code{nil}, the selected window is used. +@end defun + +The following four functions take as argument a live window which +defaults to the selected one. + @defun window-scroll-bars &optional window -Report the width and type of scroll bars specified for @var{window}. -If @var{window} is omitted or @code{nil}, the selected window is used. -The value is a list of the form @code{(@var{width} -@var{cols} @var{vertical-type} @var{horizontal-type})}. The value -@var{width} is the value that was specified for the width (which may -be @code{nil}); @var{cols} is the number of columns that the scroll -bar actually occupies. +This function returns a list of the form @code{(@var{width} +@var{columns} @var{vertical-type} @var{height} @var{lines} +@var{horizontal-type})}. -@var{horizontal-type} is not actually meaningful. +The value @var{width} is the value that was specified for the width of +the vertical scroll bar (which may be @code{nil}); @var{columns} is the +(possibly rounded) number of columns that the vertical scroll bar +actually occupies. + +The value @var{height} is the value that was specified for the height of +the horizontal scroll bar (which may be @code{nil}); @var{lines} is the +(possibly rounded) number of lines that the horizontally scroll bar +actually occupies. +@end defun + +@defun window-current-scroll-bars &optional window +This function reports the scroll bar type for window @var{window}. The +value is a cons cell @code{(@var{vertical-type} .@: +@var{horizontal-type})}. Unlike @code{window-scroll-bars}, this reports +the scroll bar type actually used, once frame defaults and +@code{scroll-bar-mode} are taken into account. @end defun @defun window-scroll-bar-width &optional window -This function returns the width of @var{window}'s vertical scrollbar, -in pixels. @var{window} must be a live window. If @var{window} is -@code{nil} or omitted, it will be the selected window. +This function returns the width in pixels of @var{window}'s vertical +scrollbar. +@end defun + +@defun window-scroll-bar-height &optional window +This function returns the height in pixels of @var{window}'s horizontal +scrollbar. @end defun If you don't specify these values for a window with @code{set-window-scroll-bars}, the buffer-local variables -@code{scroll-bar-mode} and @code{scroll-bar-width} in the buffer being -displayed control the window's vertical scroll bars. The function +@code{vertical-scroll-bar}, @code{horizontal-scroll-bar}, +@code{scroll-bar-width} and @code{scroll-bar-height} in the buffer being +displayed control the window's scroll bars. The function @code{set-window-buffer} examines these variables. If you change them -in a buffer that is already visible in a window, you can make the -window take note of the new values by calling @code{set-window-buffer} +in a buffer that is already visible in a window, you can make the window +take note of the new values by calling @code{set-window-buffer} specifying the same buffer that is already displayed. -@defopt scroll-bar-mode -This variable, always local in all buffers, controls whether and where -to put scroll bars in windows displaying the buffer. The possible values -are @code{nil} for no scroll bar, @code{left} to put a scroll bar on -the left, and @code{right} to put a scroll bar on the right. -@end defopt +You can control the appearance of scroll bars for a particular buffer by +setting the following variables which automatically become buffer-local +when set. -@defun window-current-scroll-bars &optional window -This function reports the scroll bar type for window @var{window}. -If @var{window} is omitted or @code{nil}, the selected window is used. -The value is a cons cell -@code{(@var{vertical-type} .@: @var{horizontal-type})}. Unlike -@code{window-scroll-bars}, this reports the scroll bar type actually -used, once frame defaults and @code{scroll-bar-mode} are taken into -account. -@end defun +@defvar vertical-scroll-bar +This variable specifies the location of the vertical scroll bar. The +possible values are @code{left}, @code{right}, @code{t}, which means to +use the frame's default, and @code{nil} for no scroll bar. +@end defvar + +@defvar horizontal-scroll-bar +This variable specifies the location of the horizontal scroll bar. The +possible values are @code{bottom}, @code{t}, which means to use the +frame's default, and @code{nil} for no scroll bar. +@end defvar @defvar scroll-bar-width -This variable, always local in all buffers, specifies the width of the -buffer's scroll bars, measured in pixels. A value of @code{nil} means -to use the value specified by the frame. +This variable specifies the width of the buffer's vertical scroll bars, +measured in pixels. A value of @code{nil} means to use the value +specified by the frame. @end defvar +@defvar scroll-bar-height +This variable specifies the height of the buffer's horizontal scroll +bar, measured in pixels. A value of @code{nil} means to use the value +specified by the frame. +@end defvar + +Finally you can toggle the display of scroll bars on all frames by +customizing the variables @code{scroll-bar-mode} and +@code{horizontal-scroll-bar-mode}. + +@defopt scroll-bar-mode +This variable controls whether and where to put vertical scroll bars in +all frames. The possible values are @code{nil} for no scroll bars, +@code{left} to put scroll bars on the left and @code{right} to put +scroll bars on the right. +@end defopt + +@defopt horizontal-scroll-bar-mode +This variable controls whether to display horizontal scroll bars on all +frames. +@end defopt + + @node Window Dividers @section Window Dividers @cindex window dividers @@ -4503,7 +4683,7 @@ functions to insert images into buffers. Each image descriptor has the form @code{(image . @var{props})}, where @var{props} is a property list of alternating keyword symbols -and values, including at least the pair @code{:type @var{TYPE}} which +and values, including at least the pair @code{:type @var{type}} that specifies the image type. The following is a list of properties that are meaningful for all @@ -4995,7 +5175,7 @@ of a list of image specifications @var{specs}. Each specification in @var{specs} is a property list with contents depending on image type. All specifications must at least contain the properties @code{:type @var{type}} and either @w{@code{:file @var{file}}} -or @w{@code{:data @var{DATA}}}, where @var{type} is a symbol specifying +or @w{@code{:data @var{data}}}, where @var{type} is a symbol specifying the image type, e.g., @code{xbm}, @var{file} is the file to load the image from, and @var{data} is a string containing the actual image data. The first specification in the list whose @var{type} is supported, and @@ -6552,7 +6732,8 @@ position. In performing this @dfn{bidirectional reordering}, Emacs follows the Unicode Bidirectional Algorithm (a.k.a.@: @acronym{UBA}), which is described in Annex #9 of the Unicode standard (@url{http://www.unicode.org/reports/tr9/}). Emacs provides a ``Full -Bidirectionality'' class implementation of the @acronym{UBA}. +Bidirectionality'' class implementation of the @acronym{UBA}, +consistent with the requirements of the Unicode Standard v7.0. @defvar bidi-display-reordering If the value of this buffer-local variable is non-@code{nil} (the @@ -6737,3 +6918,81 @@ affect all Emacs frames and windows. appropriate mirrored character in the reordered text. Lisp programs can affect the mirrored display by changing this property. Again, any such changes affect all of Emacs display. + +@cindex overriding bidirectional properties +@cindex directional overrides +@cindex LRO +@cindex RLO + The bidirectional properties of characters can be overridden by +inserting into the text special directional control characters, +LEFT-TO-RIGHT OVERRIDE (@acronym{LRO}) and RIGHT-TO-LEFT OVERRIDE +(@acronym{RLO}). Any characters between a @acronym{RLO} and the +following newline or POP DIRECTIONAL FORMATTING (@acronym{PDF}) +control character, whichever comes first, will be displayed as if they +were strong right-to-left characters, i.e.@: they will be reversed on +display. Similarly, any characters between @acronym{LRO} and +@acronym{PDF} or newline will display as if they were strong +left-to-right, and will @emph{not} be reversed even if they are strong +right-to-left characters. + +@cindex phishing using directional overrides +@cindex malicious use of directional overrides + These overrides are useful when you want to make some text +unaffected by the reordering algorithm, and instead directly control +the display order. But they can also be used for malicious purposes, +known as @dfn{phishing}. Specifically, a URL on a Web page or a link +in an email message can be manipulated to make its visual appearance +unrecognizable, or similar to some popular benign location, while the +real location, interpreted by a browser in the logical order, is very +different. + + Emacs provides a primitive that applications can use to detect +instances of text whose bidirectional properties were overridden so as +to make a left-to-right character display as if it were a +right-to-left character, or vise versa. + +@defun bidi-find-overridden-directionality from to &optional object +This function looks at the text of the specified @var{object} between +positions @var{from} (inclusive) and @var{to} (exclusive), and returns +the first position where it finds a strong left-to-right character +whose directional properties were forced to display the character as +right-to-left, or for a strong right-to-left character that was forced +to display as left-to-right. If it finds no such characters in the +specified region of text, it returns @code{nil}. + +The optional argument @var{object} specifies which text to search, and +defaults to the current buffer. If @var{object} is non-@code{nil}, it +can be some other buffer, or it can be a string or a window. If it is +a string, the function searches that string. If it is a window, the +function searches the buffer displayed in that window. If a buffer +whose text you want to examine is displayed in some window, we +recommend to specify it by that window, rather than pass the buffer to +the function. This is because telling the function about the window +allows it to correctly account for window-specific overlays, which +might change the result of the function if some text in the buffer is +covered by overlays. +@end defun + +@cindex copying bidirectional text, preserve visual order +@cindex visual order, preserve when copying bidirectional text + When text that includes mixed right-to-left and left-to-right +characters and bidirectional controls is copied into a different +location, it can change its visual appearance, and also can affect the +visual appearance of the surrounding text at destination. This is +because reordering of bidirectional text specified by the +@acronym{UBA} has non-trivial context-dependent effects both on the +copied text and on the text at copy destination that will surround it. + + Sometimes, a Lisp program may need to preserve the exact visual +appearance of the copied text at destination, and of the text that +surrounds the copy. Lisp programs can use the following function to +achieve that effect. + +@defun buffer-substring-with-bidi-context start end &optional no-properties +This function works similar to @code{buffer-substring} (@pxref{Buffer +Contents}), but it prepends and appends to the copied text bidi +directional control characters necessary to preserve the visual +appearance of the text when it is inserted at another place. Optional +argument @var{no-properties}, if non-@code{nil}, means remove the text +properties from the copy of the text. +@end defun diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index bb2e4638396..f6e7729e646 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -56,7 +56,7 @@ @c (See comments for EDITION in emacs.texi) @set VERSION 3.1 @include emacsver.texi -@set DATE January 2013 +@set DATE October 2014 @c in general, keep the following line commented out, unless doing a @c copy of this manual that will be published. The manual should go @@ -1006,6 +1006,7 @@ Windows * Windows and Frames:: Relating windows to the frame they appear on. * Window Sizes:: Accessing a window's size. * Resizing Windows:: Changing the sizes of windows. +* Preserving Window Sizes:: Preserving the size of windows. * Splitting Windows:: Splitting one window into two windows. * Deleting Windows:: Deleting a window gives its space to other windows. * Recombining Windows:: Preserving the frame layout when splitting and @@ -1343,7 +1344,7 @@ Emacs Display * Faces:: A face defines a graphics style for text characters: font, colors, etc. * Fringes:: Controlling window fringes. -* Scroll Bars:: Controlling vertical scroll bars. +* Scroll Bars:: Controlling scroll bars. * Window Dividers:: Separating windows visually. * Display Property:: Enabling special display features. * Images:: Displaying images in Emacs buffers. diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi index 05250233b00..6ffc7db8abf 100644 --- a/doc/lispref/eval.texi +++ b/doc/lispref/eval.texi @@ -805,7 +805,12 @@ message @code{"Lisp nesting exceeds max-lisp-eval-depth"}). This limit, with the associated error when it is exceeded, is one way Emacs Lisp avoids infinite recursion on an ill-defined function. If you increase the value of @code{max-lisp-eval-depth} too much, such -code can cause stack overflow instead. +code can cause stack overflow instead. On some systems, this overflow +can be handled. In that case, normal Lisp evaluation is interrupted +and control is transferred back to the top level command loop +(@code{top-level}). Note that there is no way to enter Emacs Lisp +debugger in this situation. @xref{Error Debugging}. + @cindex Lisp nesting error The depth limit counts internal uses of @code{eval}, @code{apply}, and diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index ac77b94d8f6..b79d5df67c8 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -2020,6 +2020,11 @@ form. @end example @end defun +@defun directory-name-p filename +This function returns non-@code{nil} if @var{filename} ends with a +forward slash (@samp{/}) character. +@end defun + @node Directory Names @subsection Directory Names @cindex directory name @@ -2605,6 +2610,14 @@ An error is signaled if @var{directory} is not the name of a directory that can be read. @end defun +@defun directory-files-recursively directory match &optional include-directories +Return all files under @var{directory} whose file names match +@var{match} recursively. The file names are returned ``depth first'', +meaning that contents of sub-directories are returned before contents +of the directories. If @var{include-directories} is non-@code{nil}, +also return directory names that have matching names. +@end defun + @defun directory-files-and-attributes directory &optional full-name match-regexp nosort id-format This is similar to @code{directory-files} in deciding which files to report on and how to report their names. However, instead diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index b95a5ccdb92..0bded22eade 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -131,6 +131,13 @@ applies any parameters listed in @code{frame-inherited-parameters} (see below) and not present in the argument, taking the values from the frame that was selected when @code{make-frame} was called. +Note that on multi-monitor displays (@pxref{Multiple Terminals}), the +window manager might position the frame differently than specified by +the positional parameters in @var{alist} (@pxref{Position +Parameters}). For example, some window managers have a policy of +displaying the frame on the monitor that contains the largest part of +the window (a.k.a.@: the @dfn{dominating} monitor). + This function itself does not make the new frame the selected frame. @xref{Input Focus}. The previously selected frame remains selected. On graphical terminals, however, the windowing system may select the @@ -258,13 +265,27 @@ of those frames is ``@emph{the} selected frame'' at any given moment terminals, by interacting with the @command{emacsclient} program. @xref{Emacs Server,,, emacs, The GNU Emacs Manual}. +@cindex X display names +@cindex display name on X A single X server can handle more than one display. Each X display -has a three-part name, @samp{@var{host}:@var{server}.@var{screen}}. -The first two parts, @var{host} and @var{server}, identify the X -server; the third part, @var{screen}, identifies a screen number on -that X server. When you use two or more screens belonging to one -server, Emacs knows by the similarity in their names that they share a -single keyboard. +has a three-part name, +@samp{@var{hostname}:@var{displaynumber}.@var{screennumber}}. The +first part, @var{hostname}, specifies the name of the machine to which +the display is physically connected. The second part, +@var{displaynumber}, is a zero-based number that identifies one or +more monitors connected to that machine that share a common keyboard +and pointing device (mouse, tablet, etc.). The third part, +@var{screennumber}, identifies a zero-based screen number (a separate +monitor) that is part of a single monitor collection on that X server. +When you use two or more screens belonging to one server, Emacs knows +by the similarity in their names that they share a single keyboard. + + Systems that don't use the X window system, such as MS-Windows, +don't support the notion of X displays, and have only one display on +each host. The display name on these systems doesn't follow the above +3-part format; for example, the display name on MS-Windows systems is +a constant string @samp{w32}, and exists for compatibility, so that +you could pass it to functions that expect a display name. @deffn Command make-frame-on-display display &optional parameters This function creates and returns a new frame on @var{display}, taking @@ -314,57 +335,84 @@ on that display (@pxref{Deleting Frames}). @cindex multi-monitor On some ``multi-monitor'' setups, a single X display outputs to more -than one physical monitor. @code{display-monitor-attributes-list} and -@code{frame-monitor-attributes} can be used to obtain information -about each physical monitor on multi-monitor setups. +than one physical monitor. You can use the functions +@code{display-monitor-attributes-list} and @code{frame-monitor-attributes} +to obtain information about such setups. @defun display-monitor-attributes-list &optional display This function returns a list of physical monitor attributes on -@var{display}. Each element of the list is an association list, -representing the attributes of each physical monitor. The first -element corresponds to the primary monitor. - -Attributes for a physical monitor are: +@var{display}, which can be a display name (a string), a terminal, or +a frame; if omitted or @code{nil}, it defaults to the selected frame's +display. Each element of the list is an association list, +representing the attributes of a physical monitor. The first element +corresponds to the primary monitor. The attribute keys and values +are: @table @samp @item geometry -Position and size in pixels in the form of @samp{(X Y WIDTH HEIGHT)} +Position of the top-left corner of the monitor's screen and its size, +in pixels, as @samp{(@var{x} @var{y} @var{width} @var{height})}. Note +that, if the monitor is not the primary monitor, some of the +coordinates might be negative. @item workarea -Position and size of the workarea in pixels in the form of @samp{(X Y -WIDTH HEIGHT)} +Position of the top-left corner and size of the work area (``usable'' +space) in pixels as @samp{(@var{x} @var{y} @var{width} @var{height})}. +This may be different from @samp{geometry} in that space occupied by +various window manager features (docks, taskbars, etc.) may be +excluded from the work area. Whether or not such features actually +subtract from the work area depends on the platform and environment. +Again, if the monitor is not the primary monitor, some of the +coordinates might be negative. @item mm-size -Width and height in millimeters in the form of @samp{(WIDTH HEIGHT)} +Width and height in millimeters as @samp{(@var{width} @var{height})} @item frames -List of frames dominated by the physical monitor +List of frames that this physical monitor dominates (see below). @item name -Name of the physical monitor as a string +Name of the physical monitor as @var{string}. + +@item source +Source of the multi-monitor information as @var{string}; +e.g., @samp{XRandr} or @samp{Xinerama}. @end table -where X, Y, WIDTH, and HEIGHT are integers. @samp{name} is optional. +@var{x}, @var{y}, @var{width}, and @var{height} are integers. +@samp{name} and @samp{source} may be absent. -A frame is dominated by a physical monitor when either the -largest area of the frame resides in the monitor, or the monitor -is the closest to the frame if the frame does not intersect any -physical monitors. Every non-tip frame (including invisible one) -in a graphical display is dominated by exactly one physical -monitor at a time, though it can span multiple (or no) physical -monitors. +A frame is @dfn{dominated} by a physical monitor when either the +largest area of the frame resides in that monitor, or (if the frame +does not intersect any physical monitors) that monitor is the closest +to the frame. Every (non-tooltip) frame (whether visible or not) in a +graphical display is dominated by exactly one physical monitor at a +time, though the frame can span multiple (or no) physical monitors. + +Here's an example of the data produced by this function on a 2-monitor +display: + +@lisp + (display-monitor-attributes-list) + @result{} + (((geometry 0 0 1920 1080) ;; @r{Left-hand, primary monitor} + (workarea 0 0 1920 1050) ;; @r{A taskbar occupies some of the height} + (mm-size 677 381) + (name . "DISPLAY1") + (frames # + #)) + ((geometry 1920 0 1680 1050) ;; @r{Right-hand monitor} + (workarea 1920 0 1680 1050) ;; @r{Whole screen can be used} + (mm-size 593 370) + (name . "DISPLAY2") + (frames))) +@end lisp -@var{display} defaults to the selected frame's display. @end defun @defun frame-monitor-attributes &optional frame This function returns the attributes of the physical monitor -dominating @var{frame}, which defaults to the selected frame. - -A frame is dominated by a physical monitor when either the -largest area of the frame resides in the monitor, or the monitor -is the closest to the frame if the frame does not intersect any -physical monitors. +dominating (see above) @var{frame}, which defaults to the selected frame. @end defun @node Frame Parameters @@ -536,8 +584,9 @@ frame. @code{title} and @code{name} are meaningful on all terminals. @vindex display, a frame parameter @item display The display on which to open this frame. It should be a string of the -form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the -@env{DISPLAY} environment variable. +form @samp{@var{host}:@var{dpy}.@var{screen}}, just like the +@env{DISPLAY} environment variable. @xref{Multiple Terminals}, for +more details about display names. @vindex display-type, a frame parameter @item display-type @@ -593,12 +642,14 @@ right screen edge. @item @code{(+ @var{pos})} This specifies the position of the left frame edge relative to the left screen edge. The integer @var{pos} may be positive or negative; a -negative value specifies a position outside the screen. +negative value specifies a position outside the screen or on a monitor +other than the primary one (for multi-monitor displays). @item @code{(- @var{pos})} This specifies the position of the right frame edge relative to the right screen edge. The integer @var{pos} may be positive or negative; a -negative value specifies a position outside the screen. +negative value specifies a position outside the screen or on a monitor +other than the primary one (for multi-monitor displays). @end table Some window managers ignore program-specified positions. If you want to @@ -658,13 +709,13 @@ pixel sizes of these character units (@pxref{Face Attributes}). @table @code @vindex height, a frame parameter @item height -The height of the frame contents, in characters. (To get the height in -pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.) +The height of the frame's text area (@pxref{Size and Position}), in +characters. @vindex width, a frame parameter @item width -The width of the frame contents, in characters. (To get the width in -pixels, call @code{frame-pixel-width}; see @ref{Size and Position}.) +The width of the frame's text area (@pxref{Size and Position}), in +characters. @vindex user-size, a frame parameter @item user-size @@ -686,6 +737,11 @@ difference between @code{maximized} and @code{fullboth} is that the former can still be resized by dragging window manager decorations with the mouse, while the latter really covers the whole screen and does not allow resizing by mouse dragging. + +With some window managers you may have to customize the variable +@code{frame-resize-pixelwise} (@pxref{Size and Position}) to a +non-@code{nil} value in order to make a frame appear ``maximized'' or +``fullscreen''. @end table @node Layout Parameters @@ -711,19 +767,21 @@ Whether the frame has scroll bars for vertical scrolling, and which side of the frame they should be on. The possible values are @code{left}, @code{right}, and @code{nil} for no scroll bars. -@ignore @vindex horizontal-scroll-bars, a frame parameter @item horizontal-scroll-bars -Whether the frame has scroll bars for horizontal scrolling -(non-@code{nil} means yes). Horizontal scroll bars are not currently -implemented. -@end ignore +Whether the frame has scroll bars for horizontal scrolling (@code{t} and +@code{bottom} mean yes, @code{nil} means no). @vindex scroll-bar-width, a frame parameter @item scroll-bar-width The width of vertical scroll bars, in pixels, or @code{nil} meaning to use the default width. +@vindex scroll-bar-height, a frame parameter +@item scroll-bar-height +The height of horizontal scroll bars, in pixels, or @code{nil} meaning +to use the default height. + @vindex left-fringe, a frame parameter @vindex right-fringe, a frame parameter @item left-fringe @@ -737,14 +795,6 @@ these two frame parameters, the return value is always an integer. When using @code{set-frame-parameter}, passing a @code{nil} value imposes an actual default value of 8 pixels. -The combined fringe widths must add up to an integral number of -columns, so the actual default fringe widths for the frame, as -reported by @code{frame-parameter}, may be larger than what you -specify. Any extra width is distributed evenly between the left and -right fringe. However, you can force one fringe or the other to a -precise width by specifying that width as a negative integer. If both -widths are negative, only the left fringe gets the specified width. - @vindex right-divider-width, a frame parameter @item right-divider-width The width (thickness) reserved for the right divider (@pxref{Window @@ -966,7 +1016,7 @@ variable do not take effect immediately, only when you specify the A list of symbols, specifying the @dfn{font backends} to use for drawing fonts in the frame, in order of priority. On X, there are currently two available font backends: @code{x} (the X core font -driver) and @code{xft} (the Xft font driver). On Windows, there are +driver) and @code{xft} (the Xft font driver). On MS-Windows, there are currently two available font backends: @code{gdi} and @code{uniscribe} (@pxref{Windows Fonts,,, emacs, The GNU Emacs Manual}). On other systems, there is only one available font backend, @@ -1086,65 +1136,137 @@ equivalent to the @code{:background} attribute of the @code{scroll-bar} face. @end table + @node Size and Position -@subsection Frame Size And Position +@subsection Frame Size and Position @cindex size of frame @cindex screen size @cindex frame size @cindex resize frame - You can read or change the size and position of a frame using the -frame parameters @code{left}, @code{top}, @code{height}, and -@code{width}. Whatever geometry parameters you don't specify are chosen -by the window manager in its usual fashion. +You can read or change the size and position of a frame using the frame +parameters @code{left}, @code{top}, @code{height}, and @code{width}. +Whatever geometry parameters you don't specify are chosen by the window +manager in its usual fashion. Here are some special features for working with sizes and positions. -(For the precise meaning of ``selected frame'' used by these functions, -see @ref{Input Focus}.) +Most of the functions described below use a @var{frame} argument which +has to specify a live frame. If omitted or @code{nil}, it specifies the +selected frame, see @ref{Input Focus}. @defun set-frame-position frame left top This function sets the position of the top left corner of @var{frame} to @var{left} and @var{top}. These arguments are measured in pixels, and -normally count from the top left corner of the screen. +normally count from the top left corner of the screen to the top left +corner of the rectangle allotted to the frame by the window manager. -Negative parameter values position the bottom edge of the window up from -the bottom edge of the screen, or the right window edge to the left of -the right edge of the screen. It would probably be better if the values -were always counted from the left and top, so that negative arguments -would position the frame partly off the top or left edge of the screen, -but it seems inadvisable to change that now. +Negative parameter values position the bottom edge of that rectangle up +from the bottom edge of the screen, or the right rectangle edge to the +left of the right edge of the screen. It would probably be better if +the values were always counted from the left and top, so that negative +arguments would position the frame partly off the top or left edge of +the screen, but it seems inadvisable to change that now. +@end defun + +@cindex frame default font +@cindex default font of a frame +Each frame has a @dfn{default font} which specifies the canonical height +and width of a character on that frame. The default font is used when +retrieving or changing the size of a frame in terms of columns or lines. +It is also used when resizing (@pxref{Window Sizes}) or splitting +(@pxref{Splitting Windows}) windows. + +@defun frame-char-height &optional frame +@defunx frame-char-width &optional frame +These functions return the canonical height and width of a character in +@var{frame}, measured in pixels. Together, these values establish the +size of the default font on @var{frame}. The values depend on the +choice of font for @var{frame}, see @ref{Font and Color Parameters}. +@end defun + +The default font can be also set directly with the following function: + +@deffn Command set-frame-font font &optional keep-size frames +This sets the default font to @var{font}. When called interactively, it +prompts for the name of a font, and uses that font on the selected +frame. When called from Lisp, @var{font} should be a font name (a +string), a font object, font entity, or a font spec. + +If the optional argument @var{keep-size} is @code{nil}, this keeps the +number of frame lines and columns fixed. (If non-@code{nil}, the option +@code{frame-inhibit-implied-resize} described below will override this.) +If @var{keep-size} is non-@code{nil} (or with a prefix argument), it +tries to keep the size of the display area of the current frame fixed by +adjusting the number of lines and columns. + +If the optional argument @var{frames} is @code{nil}, this applies the +font to the selected frame only. If @var{frames} is non-@code{nil}, it +should be a list of frames to act upon, or @code{t} meaning all existing +graphical frames. +@end deffn + +@cindex frame display area +@cindex display area of a frame +The @dfn{display area} of a frame is a rectangular area within the area +allotted to the frame by the window manager. The display area neither +includes the title bar (@pxref{Frame Titles}) nor any other decorations +provided by the window manager (like an external border used for +resizing frames via mouse dragging). + + The actual height of the display area depends on the window-system +and toolkit in use. With GTK+, the display area does not include any +tool bar or menu bar. With the Motif or Lucid toolkits and with +Windows, the display area includes the tool bar but not the menu bar. +In a graphical version with no toolkit, it includes both the tool bar +and menu bar. On a text terminal, the display area includes the menu +bar. + +@defun frame-pixel-height &optional frame +@defunx frame-pixel-width &optional frame + These functions return the height and width of the display area of +@var{frame}, measured in pixels. For a text terminal, the results are +in characters rather than pixels. +@end defun + +@cindex frame text area +@cindex text area of a frame + The @dfn{text area} of a frame is a concept implicitly used by all +functions that change a frame's height or width. It is a rectangle +located within the display area. Its size is obtained from that of the +display area by subtracting the sizes of any tool or menu bars that are +part of the display area, any internal borders, one vertical and one +horizontal scroll bar, and one left and one right fringe as specified +for this frame, see @ref{Layout Parameters}. + +@defun frame-text-height &optional frame +@defunx frame-text-width &optional frame +These functions return the height and width of the text area of +@var{frame}, measured in pixels. For a text terminal, the results are +in characters rather than pixels. + +The value returned by @code{frame-text-height} differs from that +returned by @code{frame-pixel-height} by not including the heights of +any tool bar or menu bar, the height of one horizontal scroll bar and +the widths of the internal border. + +The value returned by @code{frame-text-width} differs from that returned +by @code{frame-pixel-width} by not including the width of one vertical +scroll bar, the widths of one left and one right fringe and the widths +of the internal border. @end defun @defun frame-height &optional frame @defunx frame-width &optional frame -These functions return the height and width of @var{frame}, measured in -lines and columns. If you don't supply @var{frame}, they use the -selected frame. -@end defun +These functions return the height and width of the text area of +@var{frame}, measured in units of the default font height and width of +@var{frame}. These functions are plain shorthands for writing +@code{(frame-parameter frame 'height)} and @code{(frame-parameter frame +'width)}. -@defun frame-pixel-height &optional frame -@defunx frame-pixel-width &optional frame -These functions return the height and width of the main display area -of @var{frame}, measured in pixels. If you don't supply @var{frame}, -they use the selected frame. For a text terminal, the results are in -characters rather than pixels. - -These values include the internal borders, and windows' scroll bars -and fringes (which belong to individual windows, not to the frame -itself). The exact value of the heights depends on the window-system -and toolkit in use. With GTK+, the height does not include any tool -bar or menu bar. With the Motif or Lucid toolkits, it includes the -tool bar but not the menu bar. In a graphical version with no -toolkit, it includes both the tool bar and menu bar. For a text -terminal, the result includes the menu bar. -@end defun - -@defun frame-char-height &optional frame -@defunx frame-char-width &optional frame -These functions return the height and width of a character in -@var{frame}, measured in pixels. The values depend on the choice of -font. If you don't supply @var{frame}, these functions use the selected -frame. +If the text area of @var{frame} measured in pixles is not a multiple of +its default font size, the values returned by this functions are rounded +down to the number of characters of the default font that fully fit into +the text area. @end defun @defopt frame-resize-pixelwise @@ -1158,18 +1280,21 @@ size hints to the window manager. This means that this variable should be set only in a user's initial file; applications should never bind it temporarily. -The precise semantics of a value of @code{nil} for this option depends -on the toolkit used: Dragging the frame border with the mouse is usually -always done character-wise. Calling @code{set-frame-size} (see below) +The precise meaning of a value of @code{nil} for this option depends +on the toolkit used. Dragging the frame border with the mouse is usually +done character-wise. Calling @code{set-frame-size} (see below) with arguments that do not specify the frame size as an integer multiple -of its character size may be, however, either ignored or cause a -rounding (GTK+, Windows) or get accepted (Lucid, Motif). +of its character size, however, may: be ignored, cause a +rounding (GTK+), or be accepted (Lucid, Motif, MS-Windows). + +With some window managers you may have to set this to non-@code{nil} in +order to make a frame appear truly ``maximized'' or ``fullscreen''. @end defopt @defun set-frame-size frame width height pixelwise -This function sets the size of @var{frame}, measured in characters; -@var{width} and @var{height} specify the new width in columns and the -new height in lines. +This function sets the size of the text area of @var{frame}, measured in +characters; @var{width} and @var{height} specify the new width in +columns and the new height in lines. The optional argument @var{pixelwise} non-@code{nil} means to measure the new width and height in units of pixels instead. Note that if @@ -1179,9 +1304,9 @@ to a multiple of its character size. @end defun @defun set-frame-height frame height &optional pretend pixelwise -This function resizes @var{frame} to a height of @var{height} lines. The -sizes of existing windows in @var{frame} are altered proportionally to -fit. +This function resizes the text area of @var{frame} to a height of +@var{height} lines. The sizes of existing windows in @var{frame} are +altered proportionally to fit. If @var{pretend} is non-@code{nil}, then Emacs displays @var{height} lines of output in @var{frame}, but does not change its value for the @@ -1201,8 +1326,8 @@ height to a multiple of its character height. @end defun @defun set-frame-width frame width &optional pretend pixelwise -This function sets the width of @var{frame}, measured in characters. -The argument @var{pretend} has the same meaning as in +This function sets the width of the text area of @var{frame}, measured +in characters. The argument @var{pretend} has the same meaning as in @code{set-frame-height}. The optional fourth argument @var{pixelwise} non-@code{nil} means that @@ -1212,6 +1337,65 @@ fully honor the request if it does not increase/decrease the frame width to a multiple of its character width. @end defun +None of these three functions will make a frame smaller than needed to +display all of its windows together with their scroll bars, fringes, +margins, dividers, mode and header lines. This contrasts with requests +by the window manager triggered, for example, by dragging the external +border of a frame with the mouse. Such requests are always honored by +clipping, if necessary, portions that cannot be displayed at the right, +bottom corner of the frame. + + By default, Emacs tries to keep the number of lines and columns of a +frame's text area unaltered when, for example, adding or removing a menu +bar, changing the default font or setting the width of the frame's +scroll bars. This means, however, that in such case Emacs must ask the +window manager to resize the display area of the frame in order to +accommodate the size change. Note that wrapping a menu or tool bar +usually does not resize the frame's display area, hence this will alter +the number of displayed lines. + + Occasionally, such implied resizing of the display area may be +unwanted, for example, when the frame is maximized or made fullscreen +where it's turned off by default. In other cases you can disable +implied resizing with the following option: + +@defopt frame-inhibit-implied-resize +If this option is @code{nil}, changing font, menu bar, tool bar, +internal borders, fringes or scroll bars of a specific frame may +implicitly resize the frame's display area in order to preserve the +number of columns or lines the frame displays. If this option is +non-@code{nil}, no implied resizing is done. + +The value of this option can be also be a list of frame parameters. In +that case, implied resizing is inhibited when changing a parameter that +appears in this list. The frame parameters currently handled by this +option are: @code{font}, @code{font-backend}, +@code{internal-border-width}, @code{menu-bar-lines} and +@code{tool-bar-lines}. + +Changing any of the @code{scroll-bar-width}, @code{scroll-bar-height}, +@code{vertical-scroll-bars}, @code{horizontal-scroll-bars}, +@code{left-fringe} and @code{right-fringe} frame parameters is handled +as if the frame contained just one live window. This means, for +example, that removing vertical scroll bars on a frame containing +several side by side windows will shrink the frame width by the width of +one scroll bar provided this option is @code{nil} and keep it unchanged +if this option is either @code{t} or a list containing +@code{vertical-scroll-bars}. + +The default value is @code{'(tool-bar-lines)} for Lucid, Motif and +Windows (which means that adding/removing a tool bar there does not +change the frame height), @code{nil} on all other window systems +including GTK+ (which means that changing any of the parameters listed +above may change the size of the frame), and @code{t} otherwise (which +means the frame size never changes implicitly when there's no window +system support). + +Note that when a frame is not large enough to accommodate a change of +any of the parameters listed above, Emacs may try to enlarge the frame +even if this option is non-@code{nil}. +@end defopt + @c FIXME? Belongs more in Emacs manual than here? @c But, e.g., fit-window-to-buffer is in this manual. If you have a frame that displays only one window, you can fit that diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 91fdcc63cbe..0ac084b668e 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -1204,31 +1204,22 @@ behavior with: The arguments @code{:before} and @code{:around} used in the above examples specify how the two functions are composed, since there are many different -ways to do it. The added function is also called an @emph{advice}. +ways to do it. The added function is also called a piece of @emph{advice}. @menu * Core Advising Primitives:: Primitives to manipulate advice. * Advising Named Functions:: Advising named functions. * Advice combinators:: Ways to compose advice. -* Porting old advices:: Adapting code using the old defadvice. +* Porting old advice:: Adapting code using the old defadvice. @end menu @node Core Advising Primitives -@subsection Primitives to manipulate advices +@subsection Primitives to manipulate advice @defmac add-function where place function &optional props This macro is the handy way to add the advice @var{function} to the function stored in @var{place} (@pxref{Generalized Variables}). -If @var{function} is not interactive, then the combined function will inherit -the interactive spec, if any, of the original function. Else, the combined -function will be interactive and will use the interactive spec of -@var{function}. One exception: if the interactive spec of @var{function} -is a function (rather than an expression or a string), then the interactive -spec of the combined function will be a call to that function with as sole -argument the interactive spec of the original function. To interpret the spec -received as argument, use @code{advice-eval-interactive-spec}. - @var{where} determines how @var{function} is composed with the existing function, e.g. whether @var{function} should be called before, or after the original function. @xref{Advice combinators}, for the list of @@ -1241,7 +1232,7 @@ global value of @var{place}. Whereas if @var{place} is of the form @code{(local @var{symbol})}, where @var{symbol} is an expression which returns the variable name, then @var{function} will only be added in the current buffer. Finally, if you want to modify a lexical variable, you will -have to use @code{(var @var{VARIABLE})}. +have to use @code{(var @var{variable})}. Every function added with @code{add-function} can be accompanied by an association list of properties @var{props}. Currently only two of those @@ -1254,23 +1245,41 @@ identify which function to remove. Typically used when @var{function} is an anonymous function. @item depth -This specifies how to order the advices, in case several advices are present. -By default, the depth is 0. A depth of 100 indicates that this advice should -be kept as deep as possible, whereas a depth of -100 indicates that it -should stay as the outermost advice. When two advices specify the same depth, -the most recently added advice will be outermost. +This specifies how to order the advice, should several pieces of +advice be present. By default, the depth is 0. A depth of 100 +indicates that this piece of advice should be kept as deep as +possible, whereas a depth of -100 indicates that it should stay as the +outermost piece. When two pieces of advice specify the same depth, +the most recently added one will be outermost. -For a @code{:before} advice, being outermost means that this advice will be run -first, before any other advice, whereas being innermost means that it will run -right before the original function, with no other advice run between itself and -the original function. Similarly, for an @code{:after} advice innermost means -that it will run right after the original function, with no other advice run in -between, whereas outermost means that it will be run very last after all -other advices. An innermost @code{:override} advice will only override the -original function and other advices will apply to it, whereas an outermost -@code{:override} advice will override not only the original function but all -other advices applied to it as well. +For @code{:before} advice, being outermost means that this advice will +be run first, before any other advice, whereas being innermost means +that it will run right before the original function, with no other +advice run between itself and the original function. Similarly, for +@code{:after} advice innermost means that it will run right after the +original function, with no other advice run in between, whereas +outermost means that it will be run right at the end after all other +advice. An innermost @code{:override} piece of advice will only +override the original function and other pieces of advice will apply +to it, whereas an outermost @code{:override} piece of advice will +override not only the original function but all other advice applied +to it as well. @end table + +If @var{function} is not interactive, then the combined function will inherit +the interactive spec, if any, of the original function. Else, the combined +function will be interactive and will use the interactive spec of +@var{function}. One exception: if the interactive spec of @var{function} +is a function (rather than an expression or a string), then the interactive +spec of the combined function will be a call to that function with as sole +argument the interactive spec of the original function. To interpret the spec +received as argument, use @code{advice-eval-interactive-spec}. + +Note: The interactive spec of @var{function} will apply to the combined +function and should hence obey the calling convention of the combined function +rather than that of @var{function}. In many cases, it makes no difference +since they are identical, but it does matter for @code{:around}, +@code{:filter-args}, and @code{filter-return}, where @var{function}. @end defmac @defmac remove-function place function @@ -1292,7 +1301,7 @@ function, it can also be the @code{name} of the piece of advice. @end defun @defun advice-function-mapc f function-def -Call the function @var{f} for every advice that was added to +Call the function @var{f} for every piece of advice that was added to @var{function-def}. @var{f} is called with two arguments: the advice function and its properties. @end defun @@ -1320,7 +1329,7 @@ instead. This separate set of functions to manipulate pieces of advice applied to named functions, offers the following extra features compared to @code{add-function}: they know how to deal with macros and autoloaded functions, they let @code{describe-function} preserve the original docstring as -well as document the added advice, and they let you add and remove advices +well as document the added advice, and they let you add and remove advice before a function is even defined. @code{advice-add} can be useful for altering the behavior of existing calls @@ -1354,6 +1363,13 @@ called directly from C, and such calls ignore advice; hence, one ends up in a confusing situation where some calls (occurring from Lisp code) obey the advice and other calls (from C code) do not. +@defmac define-advice symbol (where lambda-list &optional name depth) &rest body +This macro defines a piece of advice and adds it to the function named +@var{symbol}. The advice is an anonymous function if @var{name} is +nil or a function named @code{symbol@@name}. See @code{advice-add} +for explanation of other arguments. +@end defmac + @defun advice-add symbol where function &optional props Add the advice @var{function} to the named function @var{symbol}. @var{where} and @var{props} have the same meaning as for @code{add-function} @@ -1362,23 +1378,23 @@ Add the advice @var{function} to the named function @var{symbol}. @defun advice-remove symbol function Remove the advice @var{function} from the named function @var{symbol}. -@var{function} can also be the @code{name} of an advice. +@var{function} can also be the @code{name} of a piece of advice. @end defun @defun advice-member-p function symbol Return non-@code{nil} if the advice @var{function} is already in the named function @var{symbol}. @var{function} can also be the @code{name} of -an advice. +a piece of advice. @end defun @defun advice-mapc function symbol -Call @var{function} for every advice that was added to the named function -@var{symbol}. @var{function} is called with two arguments: the advice function -and its properties. +Call @var{function} for every piece of advice that was added to the +named function @var{symbol}. @var{function} is called with two +arguments: the advice function and its properties. @end defun @node Advice combinators -@subsection Ways to compose advices +@subsection Ways to compose advice Here are the different possible values for the @var{where} argument of @code{add-function} and @code{advice-add}, specifying how the advice @@ -1490,14 +1506,14 @@ More specifically, the composition of the two functions behaves like: @end table -@node Porting old advices +@node Porting old advice @subsection Adapting code using the old defadvice A lot of code uses the old @code{defadvice} mechanism, which is largely made obsolete by the new @code{advice-add}, whose implementation and semantics is significantly simpler. -An old advice such as: +An old piece of advice such as: @example (defadvice previous-line (before next-line-at-end @@ -1534,11 +1550,11 @@ whereas the new advice mechanism needs: Note that @code{ad-activate} had a global effect: it activated all pieces of advice enabled for that specified function. If you wanted to only activate or -deactivate a particular advice, you needed to @emph{enable} or @emph{disable} -that advice with @code{ad-enable-advice} and @code{ad-disable-advice}. +deactivate a particular piece, you needed to @emph{enable} or @emph{disable} +it with @code{ad-enable-advice} and @code{ad-disable-advice}. The new mechanism does away with this distinction. -An around advice such as: +Around advice such as: @example (defadvice foo (around foo-around) @@ -1564,12 +1580,12 @@ modify the function's arguments (e.g., with @code{ad-set-arg}), and that would affect the argument values seen by the original function, whereas in the new @code{:before}, modifying an argument via @code{setq} in the advice has no effect on the arguments seen by the original function. -When porting a @code{before} advice which relied on this behavior, you'll need -to turn it into a new @code{:around} or @code{:filter-args} advice instead. +When porting @code{before} advice which relied on this behavior, you'll need +to turn it into new @code{:around} or @code{:filter-args} advice instead. -Similarly an old @code{after} advice could modify the returned value by -changing @code{ad-return-value}, whereas a new @code{:after} advice cannot, so -when porting such an old @code{after} advice, you'll need to turn it into a new +Similarly old @code{after} advice could modify the returned value by +changing @code{ad-return-value}, whereas new @code{:after} advice cannot, so +when porting such old @code{after} advice, you'll need to turn it into new @code{:around} or @code{:filter-return} advice instead. @node Obsolete Functions diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi index 3d85b474d4b..092ec003fb5 100644 --- a/doc/lispref/internals.texi +++ b/doc/lispref/internals.texi @@ -14,6 +14,7 @@ internal aspects of GNU Emacs that may be of interest to C programmers. * Building Emacs:: How the dumped Emacs is made. * Pure Storage:: Kludge to make preloaded Lisp functions shareable. * Garbage Collection:: Reclaiming space for Lisp objects no longer used. +* Stack-allocated Objects:: Temporary conses and strings on C stack. * Memory Usage:: Info about total size of Lisp objects made so far. * C Dialect:: What C variant Emacs is written in. * Writing Emacs Primitives:: Writing C code for Emacs. @@ -529,6 +530,35 @@ during garbage collection so far in this Emacs session, as a floating-point number. @end defvar +@node Stack-allocated Objects +@section Stack-allocated Objects + +@cindex stack allocated Lisp objects +@cindex Lisp objects, stack-allocated + The garbage collector described above is used to manage data visible +from Lisp programs, as well as most of the data internally used by the +Lisp interpreter. Sometimes it may be useful to allocate temporary +internal objects using the C stack of the interpreter. This can help +performance, as stack allocation is typically faster than using heap +memory to allocate and the garbage collector to free. The downside is +that using such objects after they are freed results in undefined +behavior, so uses should be well thought out and carefully debugged by +using the @code{GC_CHECK_MARKED_OBJECTS} feature (see +@file{src/alloc.c}). In particular, stack-allocated objects should +never be made visible to user Lisp code. + + Currently, cons cells and strings can be allocated this way. This +is implemented by C macros like @code{AUTO_CONS} and +@code{AUTO_STRING} that define a named @code{Lisp_Object} with block +lifetime. These objects are not freed by the garbage collector; +instead, they have automatic storage duration, i.e., they are +allocated like local variables and are automatically freed at the end +of execution of the C block that defined the object. + + For performance reasons, stack-allocated strings are limited to +@acronym{ASCII} characters, and many of these strings are immutable, +i.e., calling @code{ASET} on them produces undefined behavior. + @node Memory Usage @section Memory Usage @cindex memory usage @@ -1595,6 +1625,8 @@ of @code{intptr_t}). @item Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF. +More generally, prefer @code{int} for integers known to be in +@code{int} range, e.g., screen column counts. @item Prefer @code{ptrdiff_t} for sizes, i.e., for integers bounded by the @@ -1605,6 +1637,17 @@ for signed types. Using @code{ptrdiff_t} limits objects to anyway since they would break pointer subtraction, so this does not impose an arbitrary limit. +@item +Avoid @code{ssize_t} except when communicating to low-level APIs that +have @code{ssize_t}-related limitations. Although it's equivalent to +@code{ptrdiff_t} on typical platforms, @code{ssize_t} is occasionally +narrower, so using it for size-related calculations could overflow. +Also, @code{ptrdiff_t} is more ubiquitous and better-standardized, has +standard @code{printf} formats, and is the basis for Emacs's internal +size-overflow checking. When using @code{ssize_t}, please note that +POSIX requires support only for values in the range @minus{}1 ..@: +@code{SSIZE_MAX}. + @item Prefer @code{intptr_t} for internal representations of pointers, or for integers bounded only by the number of objects that can exist at @@ -1641,8 +1684,7 @@ using @code{int}. Although it is also OK to use @code{int}, @code{0} and @code{1}, this older style is gradually being phased out. When using @code{bool}, respect the limitations of the replacement implementation of @code{bool}, as documented in the source file -@file{lib/stdbool.in.h}, so that Emacs remains portable to pre-C99 -platforms. In particular, boolean bitfields should be of type +@file{lib/stdbool.in.h}. In particular, boolean bitfields should be of type @code{bool_bf}, not @code{bool}, so that they work correctly even when compiling Objective C with standard GCC. diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi index 0c5346fbb63..1cd79bb2265 100644 --- a/doc/lispref/intro.texi +++ b/doc/lispref/intro.texi @@ -552,4 +552,4 @@ Trost, Rickard Westman, Jean White, Eduard Wiebe, Matthew Wilding, Carl Witty, Dale Worley, Rusty Wright, and David D. Zuhn. For a more complete list of contributors, please see the relevant -ChangeLog file in the Emacs sources. +change log entries in the Emacs source repository. diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi index f724d5bd902..21be5cca4fc 100644 --- a/doc/lispref/lists.texi +++ b/doc/lispref/lists.texi @@ -1124,74 +1124,6 @@ each time you run it! Here is what happens: @end smallexample @end defun -@defun sort list predicate -@cindex stable sort -@cindex sorting lists -This function sorts @var{list} stably, though destructively, and -returns the sorted list. It compares elements using @var{predicate}. A -stable sort is one in which elements with equal sort keys maintain their -relative order before and after the sort. Stability is important when -successive sorts are used to order elements according to different -criteria. - -The argument @var{predicate} must be a function that accepts two -arguments. It is called with two elements of @var{list}. To get an -increasing order sort, the @var{predicate} should return non-@code{nil} if the -first element is ``less than'' the second, or @code{nil} if not. - -The comparison function @var{predicate} must give reliable results for -any given pair of arguments, at least within a single call to -@code{sort}. It must be @dfn{antisymmetric}; that is, if @var{a} is -less than @var{b}, @var{b} must not be less than @var{a}. It must be -@dfn{transitive}---that is, if @var{a} is less than @var{b}, and @var{b} -is less than @var{c}, then @var{a} must be less than @var{c}. If you -use a comparison function which does not meet these requirements, the -result of @code{sort} is unpredictable. - -The destructive aspect of @code{sort} is that it rearranges the cons -cells forming @var{list} by changing @sc{cdr}s. A nondestructive sort -function would create new cons cells to store the elements in their -sorted order. If you wish to make a sorted copy without destroying the -original, copy it first with @code{copy-sequence} and then sort. - -Sorting does not change the @sc{car}s of the cons cells in @var{list}; -the cons cell that originally contained the element @code{a} in -@var{list} still has @code{a} in its @sc{car} after sorting, but it now -appears in a different position in the list due to the change of -@sc{cdr}s. For example: - -@example -@group -(setq nums '(1 3 2 6 5 4 0)) - @result{} (1 3 2 6 5 4 0) -@end group -@group -(sort nums '<) - @result{} (0 1 2 3 4 5 6) -@end group -@group -nums - @result{} (1 2 3 4 5 6) -@end group -@end example - -@noindent -@strong{Warning}: Note that the list in @code{nums} no longer contains -0; this is the same cons cell that it was before, but it is no longer -the first one in the list. Don't assume a variable that formerly held -the argument now holds the entire sorted list! Instead, save the result -of @code{sort} and use that. Most often we store the result back into -the variable that held the original list: - -@example -(setq nums (sort nums '<)) -@end example - -@xref{Sorting}, for more functions that perform sorting. -See @code{documentation} in @ref{Accessing Documentation}, for a -useful example of @code{sort}. -@end defun - @node Sets And Lists @section Using Lists as Sets @cindex lists as sets diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index e23e2685a7c..d67bac63b15 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -2221,13 +2221,10 @@ is the same as for @code{mode-line-format} (@pxref{Mode Line Data}). It is normally @code{nil}, so that ordinary buffers have no header line. @end defvar -The function @code{window-header-line-height} returns the height of -the header line: - @defun window-header-line-height &optional window -Return the height of @var{window}'s header line, in pixels. -@var{window} must be a live window. If @var{window} is @code{nil} or -omitted, it will be the selected window. +This function returns the height in pixels of @var{window}'s header +line. @var{window} must be a live window, and defaults to the +selected window. @end defun A window that is just one line tall never displays a header line. A diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi index d5bfacca976..902eb405411 100644 --- a/doc/lispref/nonascii.texi +++ b/doc/lispref/nonascii.texi @@ -520,6 +520,24 @@ property to display mirror images of characters when appropriate (@pxref{Bidirectional Display}). For unassigned codepoints, the value is @code{nil}. +@item paired-bracket +Corresponds to the Unicode @code{Bidi_Paired_Bracket} property. The +value of this property is the codepoint of a character's @dfn{paired +bracket}, or @code{nil} if the character is not a bracket character. +This establishes a mapping between characters that are treated as +bracket pairs by the Unicode Bidirectional Algorithm; Emacs uses this +property when it decides how to reorder for display parentheses, +braces, and other similar characters (@pxref{Bidirectional Display}). + +@item bracket-type +Corresponds to the Unicode @code{Bidi_Paired_Bracket_Type} property. +For characters whose @code{paired-bracket} property is non-@code{nil}, +the value of this property is a symbol, either @code{o} (for opening +bracket characters) or @code{c} (for closing bracket characters). For +characters whose @code{paired-bracket} property is @code{nil}, the +value is the symbol @code{n} (None). Like @code{paired-bracket}, this +property is used for bidirectional display. + @item old-name Corresponds to the Unicode @code{Unicode_1_Name} property. The value is a string. Unassigned codepoints, and characters that have no value @@ -574,6 +592,14 @@ This function returns the value of @var{char}'s @var{propname} property. (get-char-code-property ?\u2163 'numeric-value) @result{} 4 @end group +@group +(get-char-code-property ?\( 'paired-bracket) + @result{} 41 ;; closing parenthesis +@end group +@group +(get-char-code-property ?\) 'bracket-type) + @result{} c +@end group @end example @end defun diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index 4e8182ccf34..a93f34f573b 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi @@ -1805,9 +1805,6 @@ with references to further information. @item custom-variable-p @xref{Variable Definitions, custom-variable-p}. -@item display-table-p -@xref{Display Tables, display-table-p}. - @item floatp @xref{Predicates on Numbers, floatp}. diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 5cfbb9ff2ef..b7094479db2 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -1213,37 +1213,34 @@ return value is @code{nil}. zone. @cindex epoch - Most of these functions represent time as a list of either four -integers, @code{(@var{sec-high} @var{sec-low} @var{microsec} -@var{picosec})}, or of three -integers, @code{(@var{sec-high} @var{sec-low} @var{microsec})}, or of -two integers, @code{(@var{sec-high} @var{sec-low})}. The integers -@var{sec-high} and @var{sec-low} give the high and low bits of an -integer number of seconds. This integer, + Most of these functions represent time as a list of four integers +@code{(@var{sec-high} @var{sec-low} @var{microsec} @var{picosec})}. +This represents the number of seconds from the @dfn{epoch} (January +1, 1970 at 00:00 UTC), using the formula: @ifnottex -@var{high} * 2**16 + @var{low}, +@var{high} * 2**16 + @var{low} + @var{micro} * 10**@minus{}6 + +@var{pico} * 10**@minus{}12. @end ifnottex @tex -$high*2^{16}+low$, +$high*2^{16} + low + micro*10^{-6} + pico*10^{-12}$. @end tex -is the number of seconds from the @dfn{epoch} (0:00 January 1, 1970 -UTC) to the specified time. The third list element @var{microsec}, if -present, gives the number of microseconds from the start of that -second to the specified time. -Similarly, the fourth list element @var{picosec}, if present, gives -the number of picoseconds from the start of that microsecond to the -specified time. +The return value of @code{current-time} represents time using this +form, as do the timestamps in the return values of other functions +such as @code{file-attributes} (@pxref{Definition of +file-attributes}). In some cases, functions may return two- or +three-element lists, with omitted @var{microsec} and @var{picosec} +components defaulting to zero. - The return value of @code{current-time} represents time using four -integers, as do the timestamps in the return value of -@code{file-attributes} (@pxref{Definition of -file-attributes}). In function arguments, e.g., the @var{time-value} -argument to @code{current-time-string}, two-, three-, and four-integer -lists are accepted. You can convert times from the list -representation into standard human-readable strings using -@code{current-time-string}, or to other forms using the -@code{decode-time} and @code{format-time-string} functions documented -in the following sections. +@cindex time value + Function arguments, e.g., the @var{time-value} argument to +@code{current-time-string}, accept a more-general @dfn{time value} +format, which can be a list of integers as above, or a single number +for seconds since the epoch, or @code{nil} for the current time. You +can convert a time value into a human-readable string using +@code{current-time-string} and @code{format-time-string}, into a list +of integers using @code{seconds-to-time}, and into other forms using +@code{decode-time} and @code{float-time}. These functions are +described in the following sections. @defun current-time-string &optional time-value This function returns the current time and date as a human-readable @@ -1256,8 +1253,8 @@ characters from the beginning of the string rather than from the end, as the year might not have exactly four digits, and additional information may some day be added at the end. -The argument @var{time-value}, if given, specifies a time to format -(represented as a list of integers), instead of the current time. +The argument @var{time-value}, if given, specifies a time to format, +instead of the current time. @example @group @@ -1279,11 +1276,19 @@ become available. @defun float-time &optional time-value This function returns the current time as a floating-point number of seconds since the epoch. The optional argument @var{time-value}, if -given, specifies a time (represented as a list of integers) to convert -instead of the current time. +given, specifies a time to convert instead of the current time. @emph{Warning}: Since the result is floating point, it may not be exact. Do not use this function if precise time stamps are required. + +@code{time-to-seconds} is an alias for this function. +@end defun + +@defun seconds-to-time time-value +This function converts a time value to list-of-integer form. +For example, if @var{time-value} is a number, @code{(time-to-seconds +(seconds-to-time @var{time-value}))} equals the number unless overflow +or rounding errors occur. @end defun @defun current-time-zone &optional time-value @@ -1302,8 +1307,8 @@ adjustment, then the value is constant through time. If the operating system doesn't supply all the information necessary to compute the value, the unknown elements of the list are @code{nil}. -The argument @var{time-value}, if given, specifies a time (represented -as a list of integers) to analyze instead of the current time. +The argument @var{time-value}, if given, specifies a time value to +analyze instead of the current time. @end defun The current time zone is determined by the @env{TZ} environment @@ -1316,15 +1321,15 @@ time zone. @section Time Conversion @cindex calendrical information - These functions convert time values (lists of two to four integers, -as explained in the previous section) into calendrical information and -vice versa. + These functions convert time values (@pxref{Time of Day}) into +calendrical information and vice versa. - Many 32-bit operating systems are limited to time values containing -32 bits of information; these systems typically handle only the times -from 1901-12-13 20:45:52 UTC through 2038-01-19 03:14:07 UTC@. -However, 64-bit and some 32-bit operating systems have larger time -values, and can represent times far in the past or future. + Many 32-bit operating systems are limited to system times containing +32 bits of information in their seconds component; these systems +typically handle only the times from 1901-12-13 20:45:52 UTC through +2038-01-19 03:14:07 UTC@. However, 64-bit and some 32-bit operating +systems have larger seconds components, and can represent times far in +the past or future. Time conversion functions always use the Gregorian calendar, even for dates before the Gregorian calendar was introduced. Year numbers @@ -1332,9 +1337,9 @@ count the number of years since the year 1 B.C., and do not skip zero as traditional Gregorian years do; for example, the year number @minus{}37 represents the Gregorian year 38 B.C@. -@defun decode-time &optional time +@defun decode-time &optional time-value This function converts a time value into calendrical information. If -you don't specify @var{time}, it decodes the current time. The return +you don't specify @var{time-value}, it decodes the current time. The return value is a list of nine elements, as follows: @example @@ -1373,8 +1378,9 @@ Greenwich. @defun encode-time seconds minutes hour day month year &optional zone This function is the inverse of @code{decode-time}. It converts seven -items of calendrical data into a time value. For the meanings of the -arguments, see the table above under @code{decode-time}. +items of calendrical data into a list-of-integer time value. For the +meanings of the arguments, see the table above under +@code{decode-time}. Year numbers less than 100 are not treated specially. If you want them to stand for years above 1900, or years above 2000, you must alter them @@ -1418,9 +1424,11 @@ This function parses the time-string @var{string} and returns the corresponding time value. @end defun -@defun format-time-string format-string &optional time universal -This function converts @var{time} (or the current time, if @var{time} is -omitted) to a string according to @var{format-string}. The argument +@defun format-time-string format-string &optional time-value universal + +This function converts @var{time-value} (or the current time, if +@var{time-value} is omitted) to a string according to +@var{format-string}. The argument @var{format-string} may contain @samp{%}-sequences which say to substitute parts of the time. Here is a table of what the @samp{%}-sequences mean: @@ -1540,12 +1548,6 @@ specified by @code{locale-coding-system} (@pxref{Locales}); after system. @end defun -@defun seconds-to-time seconds -This function converts @var{seconds}, the number of seconds since the -epoch, to a time value and returns that. To convert back, use -@code{float-time} (@pxref{Time of Day}). -@end defun - @defun format-seconds format-string seconds This function converts its argument @var{seconds} into a string of years, days, hours, etc., according to @var{format-string}. The @@ -1619,7 +1621,7 @@ When called interactively, it prints the uptime in the echo area. @defun get-internal-run-time This function returns the processor run time used by Emacs as a list -of four integers: @code{(@var{high} @var{low} @var{microsec} +of four integers: @code{(@var{sec-high} @var{sec-low} @var{microsec} @var{picosec})}, using the same format as @code{current-time} (@pxref{Time of Day}). @@ -1643,7 +1645,7 @@ interactively, it prints the duration in the echo area. @section Time Calculations These functions perform calendrical computations using time values -(the kind of list that @code{current-time} returns). +(@pxref{Time of Day}). @defun time-less-p t1 t2 This returns @code{t} if time value @var{t1} is less than time value @@ -1652,26 +1654,26 @@ This returns @code{t} if time value @var{t1} is less than time value @defun time-subtract t1 t2 This returns the time difference @var{t1} @minus{} @var{t2} between -two time values, in the same format as a time value. +two time values, as a time value. @end defun @defun time-add t1 t2 -This returns the sum of two time values, one of which ought to -represent a time difference rather than a point in time. +This returns the sum of two time values, as a time value. +One argument should represent a time difference rather than a point in time. Here is how to add a number of seconds to a time value: @example -(time-add @var{time} (seconds-to-time @var{seconds})) +(time-add @var{time} @var{seconds}) @end example @end defun -@defun time-to-days time +@defun time-to-days time-value This function returns the number of days between the beginning of year -1 and @var{time}. +1 and @var{time-value}. @end defun -@defun time-to-day-in-year time -This returns the day number within the year corresponding to @var{time}. +@defun time-to-day-in-year time-value +This returns the day number within the year corresponding to @var{time-value}. @end defun @defun date-leap-year-p year @@ -1915,8 +1917,7 @@ idleness. Here's an example: (run-with-idle-timer ;; Compute an idle time @var{break-length} ;; more than the current value. - (time-add (current-idle-time) - (seconds-to-time @var{break-length})) + (time-add (current-idle-time) @var{break-length}) nil 'my-timer-function)))) @end example diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index db80f0537e0..0952cc15f03 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -2041,6 +2041,12 @@ Regular expression matching a successful @acronym{STARTTLS} negotiation. If non-@code{nil}, do opportunistic @acronym{STARTTLS} upgrades even if Emacs doesn't have built-in @acronym{TLS} support. +@item :warn-unless-encrypted @var{boolean} +If non-@code{nil}, and @code{:return-value} is also non-@code{nil}, +Emacs will warn if the connection isn't encrypted. This is useful for +protocols like @acronym{IMAP} and the like, where most users would +expect the network traffic to be encrypted. + @item :client-certificate @var{list-or-t} Either a list of the form @code{(@var{key-file} @var{cert-file})}, naming the certificate key file and certificate file itself, or @@ -2066,6 +2072,7 @@ The connection type: @samp{plain} or @samp{tls}. @end defun + @node Network Servers @section Network Servers @cindex network servers diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index 8f17862d427..8f8cfe72fa3 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi @@ -327,6 +327,458 @@ encouraged to treat strings as immutable. @end defun +@defun sort sequence predicate +@cindex stable sort +@cindex sorting lists +@cindex sorting vectors +This function sorts @var{sequence} stably. Note that this function doesn't work +for all sequences; it may be used only for lists and vectors. If @var{sequence} +is a list, it is modified destructively. This functions returns the sorted +@var{sequence} and compares elements using @var{predicate}. A stable sort is +one in which elements with equal sort keys maintain their relative order before +and after the sort. Stability is important when successive sorts are used to +order elements according to different criteria. + +The argument @var{predicate} must be a function that accepts two +arguments. It is called with two elements of @var{sequence}. To get an +increasing order sort, the @var{predicate} should return non-@code{nil} if the +first element is ``less than'' the second, or @code{nil} if not. + +The comparison function @var{predicate} must give reliable results for +any given pair of arguments, at least within a single call to +@code{sort}. It must be @dfn{antisymmetric}; that is, if @var{a} is +less than @var{b}, @var{b} must not be less than @var{a}. It must be +@dfn{transitive}---that is, if @var{a} is less than @var{b}, and @var{b} +is less than @var{c}, then @var{a} must be less than @var{c}. If you +use a comparison function which does not meet these requirements, the +result of @code{sort} is unpredictable. + +The destructive aspect of @code{sort} for lists is that it rearranges the +cons cells forming @var{sequence} by changing @sc{cdr}s. A nondestructive +sort function would create new cons cells to store the elements in their +sorted order. If you wish to make a sorted copy without destroying the +original, copy it first with @code{copy-sequence} and then sort. + +Sorting does not change the @sc{car}s of the cons cells in @var{sequence}; +the cons cell that originally contained the element @code{a} in +@var{sequence} still has @code{a} in its @sc{car} after sorting, but it now +appears in a different position in the list due to the change of +@sc{cdr}s. For example: + +@example +@group +(setq nums '(1 3 2 6 5 4 0)) + @result{} (1 3 2 6 5 4 0) +@end group +@group +(sort nums '<) + @result{} (0 1 2 3 4 5 6) +@end group +@group +nums + @result{} (1 2 3 4 5 6) +@end group +@end example + +@noindent +@strong{Warning}: Note that the list in @code{nums} no longer contains +0; this is the same cons cell that it was before, but it is no longer +the first one in the list. Don't assume a variable that formerly held +the argument now holds the entire sorted list! Instead, save the result +of @code{sort} and use that. Most often we store the result back into +the variable that held the original list: + +@example +(setq nums (sort nums '<)) +@end example + +For the better understanding of what stable sort is, consider the following +vector example. After sorting, all items whose @code{car} is 8 are grouped +at the beginning of @code{vector}, but their relative order is preserved. +All items whose @code{car} is 9 are grouped at the end of @code{vector}, +but their relative order is also preserved: + +@example +@group +(setq + vector + (vector '(8 . "xxx") '(9 . "aaa") '(8 . "bbb") '(9 . "zzz") + '(9 . "ppp") '(8 . "ttt") '(8 . "eee") '(9 . "fff"))) + @result{} [(8 . "xxx") (9 . "aaa") (8 . "bbb") (9 . "zzz") + (9 . "ppp") (8 . "ttt") (8 . "eee") (9 . "fff")] +@end group +@group +(sort vector (lambda (x y) (< (car x) (car y)))) + @result{} [(8 . "xxx") (8 . "bbb") (8 . "ttt") (8 . "eee") + (9 . "aaa") (9 . "zzz") (9 . "ppp") (9 . "fff")] +@end group +@end example + +@xref{Sorting}, for more functions that perform sorting. +See @code{documentation} in @ref{Accessing Documentation}, for a +useful example of @code{sort}. +@end defun + +@cindex sequence functions in seq +@cindex seq library + The @file{seq} library provides the following additional sequence +manipulation macros and functions, prefixed with @code{seq-}. To use +them, you need to load the @file{seq} library first. + + All functions defined in the @code{seq} library are free of +side-effects, meaning that sequence(s) passed as argument(s) to +functions defined in @code{seq} are not modified. + +@defun seq-drop seq n + This function returns a sequence of all but the first @var{n} +elements of the sequence @var{seq}. + +@var{seq} may be a list, vector or string and @var{n} must be an +integer. The result is the same type of sequence as @var{seq}. + +If @var{n} is a negative integer or zero, @var{seq} is returned. + +@example +@group +(seq-drop [1 2 3 4 5 6] 3) +@result{} [4 5 6] +@end group +@group +(seq-drop "hello world" -4) +@result{} "hello world" +@end group +@end example +@end defun + +@defun seq-take seq n + This function returns a sequence of the first @var{n} elements of +@var{seq}. + +@var{seq} may be a list, vector or string and @var{n} must be an +integer. The result is the same type of sequence as @var{seq}. + +If @var{n} is a negative integer or zero, an empty sequence is returned. + +@example +@group +(seq-take '(1 2 3 4) 3) +@result{} (1 2 3) +@end group +@group +(seq-take [1 2 3 4] 0) +@result{} [] +@end group +@end example +@end defun + +@defun seq-take-while pred seq + This function returns a sub-sequence of the successive elements of +@var{seq} for which calling @code{pred} with that element returns +non-nil. + +@var{pred} must be a one-argument function and @var{seq} may be a +list, vector or string. The result is the same type of sequence as +@var{seq}. + +If evaluating @var{pred} with the first element of @var{seq} as argument +returns @code{nil}, an empty sequence is returned. + +@example +@group +(seq-take-while (lambda (elt) (> elt 0)) '(1 2 3 -1 -2)) +@result{} (1 2 3) +@end group +@group +(seq-take-while (lambda (elt) (> elt 0)) [-1 4 6]) +@result{} [] +@end group +@end example +@end defun + +@defun seq-drop-while pred seq + This function returns a sub-sequence of @var{seq} from the first +element for which calling @var{pred} with that element returns +@code{nil}. + +@var{pred} must be a one-argument function and @var{seq} may be a +list, vector or string. The result is the same type of sequence as +@var{seq}. + +If evaluating @var{pred} with every element of @var{seq} returns +@code{nil}, @var{seq} is returned. + +@example +@group +(seq-drop-while (lambda (elt) (> elt 0)) '(1 2 3 -1 -2)) +@result{} (-1 -2) +@end group +@group +(seq-drop-while (lambda (elt) (< elt 0)) [1 4 6]) +@result{} [1 4 6] +@end group +@end example +@end defun + +@defun seq-filter pred seq +@cindex filtering sequences + This function returns a list of all the elements in @var{seq} for +which calling @var{pred} with that element returns non-nil. + +@var{pred} must be a one-argument function and @var{seq} may be a +list, vector or string. + +@example +@group +(seq-filter (lambda (elt) (> elt 0)) [1 -1 3 -3 5]) +@result{} (1 3 5) +@end group +@group +(seq-filter (lambda (elt) (> elt 0)) '(-1 -3 -5)) +@result{} nil +@end group +@end example +@end defun + +@defun seq-remove pred seq +@cindex removing from sequences + This function returns a list of all the elements in @var{seq} for +which calling @var{pred} with that element returns @code{nil}. + +@var{pred} must be a one-argument function and @var{seq} may be a +list, vector or string. + +@example +@group +(seq-remove (lambda (elt) (> elt 0)) [1 -1 3 -3 5]) +@result{} (-1 -3) +@end group +@group +(seq-remove (lambda (elt) (< elt 0)) '(-1 -3 -5)) +@result{} nil +@end group +@end example +@end defun + +@defun seq-reduce function seq initial-value +@cindex reducing sequences + This function returns the result of calling @var{function} with +@var{initial-value} and the first element of @var{seq}, then calling +@var{function} with that result and the second element of @var{seq}, +then with that result and the third element of @var{seq}, etc. + +@var{function} must be a two-arguments function and @var{seq} may be a +list, vector or string. + +If @var{seq} is empty, @var{initial-value} is returned and +@var{function} is not called. + +@example +@group +(seq-reduce #'+ [1 2 3 4] 0) +@result{} 10 +@end group +@group +(seq-reduce #'+ '(1 2 3 4) 5) +@result{} 15 +@end group +@group +(seq-reduce #'+ '() 3) +@result{} 3 +@end group +@end example +@end defun + +@defun seq-some-p pred seq + This function returns any element in @var{seq} for which calling +@var{pred} with that element returns non-nil. If successively calling +@var{pred} with each element of @var{seq} always returns @code{nil}, +@code{nil} is returned. + +@var{pred} must be a one-argument function and @var{seq} may be a +list, vector or string. + +@example +@group +(seq-some-p #'numberp ["abc" 1 nil]) +@result{} 1 +@end group +@group +(seq-some-p #'numberp ["abc" "def"]) +@result{} nil +@end group +@end example +@end defun + +@defun seq-every-p pred seq + This function returns non-nil if successively calling @var{pred} with +each element of @var{seq} always returns non-nil, @code{nil} otherwise. + +@var{pred} must be a one-argument function and @var{seq} may be a +list, vector or string. + +@example +@group +(seq-every-p #'numberp [2 4 6]) +@result{} t +@end group +@group +(seq-some-p #'numberp [2 4 "6"]) +@result{} nil +@end group +@end example +@end defun + +@defun seq-empty-p seq + This function returns non-nil if the sequence @var{seq} is empty, +@code{nil} otherwise. + +@var{seq} may be a list, vector or string. + +@example +@group +(seq-empty-p "not empty") +@result{} nil +@end group +@group +(seq-empty-p "") +@result{} t +@end group +@end example +@end defun + +@defun seq-count pred seq + This function returns the number of elements in @var{seq} for which +calling @var{pred} with that element returns non-nil. + +@var{pred} must be a one-argument function and @var{seq} may be a +list, vector or string. + +@example +(seq-count (lambda (elt) (> elt 0)) [-1 2 0 3 -2]) +@result{} 2 +@end example +@end defun + +@defun seq-sort pred seq + This function returns a sorted sequence of the elements of +@var{seq}, comparing its elements with @var{pred}. Called with two +elements of @var{seq}, @var{pred} should return non-nil if the first +element should sort before the second. + +@var{pred} must be a two-arguments function, @var{seq} may be a list, +vector or string. + +The result is a sequence of the same type as SEQ. +@cindex sorting sequences +@end defun + +@defun seq-contains-p seq elt testfn + This function returns the first element in @var{seq} that equals to +@var{elt}. + +Equality is defined by @var{testfn} if non-nil or by @code{equal} if +@code{nil}. + +@var{seq} may be a list, vector or string. + +@example +@group +(seq-contains-p '(symbol1 symbol2) 'symbol1) +@result{} symbol1 +@end group +@group +(seq-contains-p '(symbol1 symbol2) 'symbol3) +@result{} nil +@end group +@end example + +@end defun + +@defun seq-uniq seq testfn + This function returns a list of the elements of @var{seq} with +duplicates removed. @var{testfn} is used to compare elements, or +@code{equal} if @var{testfn} is @code{nil}. + +@var{testfn} must be a two-argument function or @code{nil} and +@var{seq} may be a list, vector or string. + +@example +@group +(seq-uniq '(1 2 2 1 3)) +@result{} (1 2 3) +@end group +@group +(seq-uniq '(1 2 2.0 1.0) #'=) +@result{} [3 4] +@end group +@end example +@end defun + +@defun seq-subseq seq start &optional end + This function returns a sub-sequence of @var{seq} from @var{start} +to @var{end}. If @var{end} is omitted, it default to the length of +@var{seq}. If @var{start} or @var{end} is negative, it counts from +the end of @var{seq}. + +@var{seq} may be a list, vector or string. +The result is the same type of sequence as @var{seq}. + +@example +@group +(seq-subseq '(1 2 3 4 5) 1) +@result{} (2 3 4 5) +@end group +@group +(seq-subseq '[1 2 3 4 5] 1 3) +@result{} [2 3] +@end group +@group +(seq-subseq '[1 2 3 4 5] -3 -1) +@result{} [3 4] +@end group +@end example +@end defun + +@defun seq-concatenate type &rest seqs + This function returns a sequence made of the concatenation of +@var{seqs}. The result is a sequence of type @var{type}. @var{type} +may be one of the following symbols: @code{vector}, @code{list} or +@code{string}. + +@example +@group +(seq-concatenate 'list '(1 2) '(3 4) [5 6]) +@result{} (1 2 3 5 6) +@end group +@group +(seq-concatenate 'string "Hello " "world") +@result{} "Hello world" +@end group +@end example +@end defun + +@defmac seq-doseq (var seq [result]) body@dots{} +@cindex sequence iteration +This macro is like @code{dolist}, except that @var{seq} can be a list, +vector or string (@pxref{Iteration} for more information about the +@code{dolist} macro). + +@var{seq-doseq} is primarily useful for side-effects. + +@example +(seq-doseq (elt [1 2 3]) + (print (* 2 elt))) + @print{} + @print{} 2 + @print{} + @print{} 4 + @print{} + @print{} 6 + @result{} nil + +@end example +@end defmac + @node Arrays @section Arrays @cindex array diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi index 1d549ae8916..c287b617713 100644 --- a/doc/lispref/streams.texi +++ b/doc/lispref/streams.texi @@ -615,10 +615,13 @@ spacing between calls. @end example @end defun -@defun terpri &optional stream +@defun terpri &optional stream ensure @cindex newline in print -This function outputs a newline to @var{stream}. The name stands -for ``terminate print''. +This function outputs a newline to @var{stream}. The name stands for +``terminate print''. If @var{ensure} is non-nil no newline is printed +if @var{stream} is already at the beginning of a line. Note in this +case @var{stream} can not be a function and an error is signalled if +it is. This function returns @code{t} if a newline is printed. @end defun @defun write-char character &optional stream diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index e6b00f06f79..5e0148b75a9 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi @@ -458,6 +458,59 @@ Representations}. @code{string-equal} is another name for @code{string=}. @end defun +@defun string-collate-equalp string1 string2 &optional locale ignore-case +This function returns @code{t} if @var{string1} and @var{string2} are +equal with respect to collation rules. A collation rule is not only +determined by the lexicographic order of the characters contained in +@var{string1} and @var{string2}, but also further rules about +relations between these characters. Usually, it is defined by the +@var{locale} environment Emacs is running with. + +For example, characters with different coding points but +the same meaning might be considered as equal, like different grave +accent Unicode characters: + +@example +@group +(string-collate-equalp (string ?\uFF40) (string ?\u1FEF)) + @result{} t +@end group +@end example + +The optional argument @var{locale}, a string, overrides the setting of +your current locale identifier for collation. The value is system +dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX +systems, while it would be, e.g., "enu_USA.1252" on MS-Windows +systems. + +If @var{IGNORE-CASE} is non-nil, characters are converted to lower-case +before comparing them. + +To emulate Unicode-compliant collation on MS-Windows systems, +bind @code{w32-collate-ignore-punctuation} to a non-nil value, since +the codeset part of the locale cannot be "UTF-8" on MS-Windows. + +If your system does not support a locale environment, this function +behaves like @code{string-equal}. + +Do NOT use this function to compare file names for equality, only +for sorting them. +@end defun + +@defun string-prefix-p string1 string2 &optional ignore-case +This function returns non-@code{nil} if @var{string1} is a prefix of +@var{string2}; i.e., if @var{string2} starts with @var{string1}. If +the optional argument @var{ignore-case} is non-@code{nil}, the +comparison ignores case differences. +@end defun + +@defun string-suffix-p suffix string &optional ignore-case +This function returns non-@code{nil} if @var{suffix} is a suffix of +@var{string}; i.e., if @var{string} ends with @var{suffix}. If the +optional argument @var{ignore-case} is non-@code{nil}, the comparison +ignores case differences. +@end defun + @cindex lexical comparison @defun string< string1 string2 @c (findex string< causes problems for permuted index!!) @@ -516,6 +569,50 @@ are used. @code{string-lessp} is another name for @code{string<}. @end defun +@defun string-collate-lessp string1 string2 &optional locale ignore-case +This function returns @code{t} if @var{string1} is less than +@var{string2} in collation order. A collation order is not only +determined by the lexicographic order of the characters contained in +@var{string1} and @var{string2}, but also further rules about +relations between these characters. Usually, it is defined by the +@var{locale} environment Emacs is running with. + +For example, punctuation and whitespace characters might be considered +less significant for @ref{Sorting,,sorting}. + +@example +@group +(sort '("11" "12" "1 1" "1 2" "1.1" "1.2") 'string-collate-lessp) + @result{} ("11" "1 1" "1.1" "12" "1 2" "1.2") +@end group +@end example + +The optional argument @var{locale}, a string, overrides the setting of +your current locale identifier for collation. The value is system +dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX +systems, while it would be, e.g., "enu_USA.1252" on MS-Windows +systems. The @var{locale} "POSIX" lets @code{string-collate-lessp} +behave like @code{string-lessp}: + +@example +@group +(sort '("11" "12" "1 1" "1 2" "1.1" "1.2") + (lambda (s1 s2) (string-collate-lessp s1 s2 "POSIX"))) + @result{} ("1 1" "1 2" "1.1" "1.2" "11" "12") +@end group +@end example + +If @var{IGNORE-CASE} is non-nil, characters are converted to lower-case +before comparing them. + +To emulate Unicode-compliant collation on MS-Windows systems, +bind @code{w32-collate-ignore-punctuation} to a non-nil value, since +the codeset part of the locale cannot be "UTF-8" on MS-Windows. + +If your system does not support a locale environment, this function +behaves like @code{string-lessp}. +@end defun + @defun string-prefix-p string1 string2 &optional ignore-case This function returns non-@code{nil} if @var{string1} is a prefix of @var{string2}; i.e., if @var{string2} starts with @var{string1}. If diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 6665cc3e673..3ef565b8f30 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -219,6 +219,12 @@ This function returns the contents of the entire accessible portion of the current buffer, as a string. @end defun + If you need to make sure the resulting string, when copied to a +different location, will not change its visual appearance due to +reordering of bidirectional text, use the +@code{buffer-substring-with-bidi-context} function +(@pxref{Bidirectional Display, buffer-substring-with-bidi-context}). + @defun filter-buffer-substring start end &optional delete This function filters the buffer text between @var{start} and @var{end} using a function specified by the variable @@ -343,10 +349,10 @@ This function ignores case when comparing characters if @code{case-fold-search} is non-@code{nil}. It always ignores text properties. -Suppose the current buffer contains the text @samp{foobarbar -haha!rara!}; then in this example the two substrings are @samp{rbar } -and @samp{rara!}. The value is 2 because the first substring is greater -at the second character. +Suppose you have the text @w{@samp{foobarbar haha!rara!}} in the +current buffer; then in this example the two substrings are @samp{rbar +} and @samp{rara!}. The value is 2 because the first substring is +greater at the second character. @example (compare-buffer-substrings nil 6 11 nil 16 21) @@ -3241,6 +3247,11 @@ possible to remove a @code{read-only} property unless you know the special trick: bind @code{inhibit-read-only} to a non-@code{nil} value and then remove the property. @xref{Read Only Buffers}. +@item inhibit-read-only +@kindex inhibit-read-only @r{(text property)} +If a character has the property @code{inhibit-read-only}, and the +buffer is read-only, editing the character in question is allowed. + @item invisible @kindex invisible @r{(text property)} A non-@code{nil} @code{invisible} property can make a character invisible @@ -4114,8 +4125,9 @@ buffer. Normally, this command puts point before the inserted text, and the mark after it. However, if the optional second argument @var{beforep} is non-@code{nil}, it puts the mark before and point after. -You can pass a non-@code{nil} second argument @var{beforep} to this -function interactively by supplying any prefix argument. + +When called interactively, the command defaults to putting point after +text, and a prefix argument inverts this behavior. If the register contains a rectangle, then the rectangle is inserted with its upper left corner at point. This means that text is inserted @@ -4318,7 +4330,7 @@ coding instead. When Emacs is compiled with libxml2 support, the following functions are available to parse HTML or XML text into Lisp object trees. -@defun libxml-parse-html-region start end &optional base-url +@defun libxml-parse-html-region start end &optional base-url discard-comments This function parses the text between @var{start} and @var{end} as HTML, and returns a list representing the HTML @dfn{parse tree}. It attempts to handle ``real world'' HTML by robustly coping with syntax @@ -4327,6 +4339,9 @@ mistakes. The optional argument @var{base-url}, if non-@code{nil}, should be a string specifying the base URL for relative URLs occurring in links. +If the optional argument @var{discard-comments} is non-@code{nil}, +then the parse tree is created without any comments. + In the parse tree, each HTML node is represented by a list in which the first element is a symbol representing the node name, the second element is an alist of node attributes, and the remaining elements are @@ -4340,16 +4355,17 @@ document: @end example @noindent -A call to @code{libxml-parse-html-region} returns this: +A call to @code{libxml-parse-html-region} returns this @acronym{DOM} +(document object model): @example -(html () - (head ()) - (body ((width . "101")) - (div ((class . "thing")) - "Foo" - (div () - "Yes")))) +(html nil + (head nil) + (body ((width . "101")) + (div ((class . "thing")) + "Foo" + (div nil + "Yes")))) @end example @end defun @@ -4362,12 +4378,137 @@ buffer. The argument @var{dom} should be a list as generated by @end defun @cindex parsing xml -@defun libxml-parse-xml-region start end &optional base-url +@defun libxml-parse-xml-region start end &optional base-url discard-comments This function is the same as @code{libxml-parse-html-region}, except that it parses the text as XML rather than HTML (so it is stricter about syntax). @end defun +@menu +* Document Object Model:: Access, manipulate and search the @acronym{DOM}. +@end menu + +@node Document Object Model +@subsection Document Object Model +@cindex HTML DOM +@cindex XML DOM +@cindex DOM +@cindex Document Object Model + +The @acronym{DOM} returned by @code{libxml-parse-html-region} (and the +other @acronym{XML} parsing functions) is a tree structure where each +node has a node name (called a @dfn{tag}), and optional key/value +@dfn{attribute} list, and then a list of @dfn{child nodes}. The child +nodes are either strings or @acronym{DOM} objects. + +@example +(body ((width . "101")) + (div ((class . "thing")) + "Foo" + (div nil + "Yes"))) +@end example + +@defun dom-node tag &optional attributes &rest children +This function creates a @acronym{DOM} node of type @var{tag}. If +given, @var{attributes} should be a key/value pair list. +If given, @var{children} should be @acronym{DOM} nodes. +@end defun + +The following functions can be used to work with this structure. Each +function takes a @acronym{DOM} node, or a list of nodes. In the +latter case, only the first node in the list is used. + +Simple accessors: + +@table @code +@item dom-tag @var{node} +Return the @dfn{tag} (also called ``node name'') of the node. + +@item dom-attr @var{node} @var{attribute} +Return the value of @var{attribute} in the node. A common usage +would be: + +@lisp +(dom-attr img 'href) +=> "http://fsf.org/logo.png" +@end lisp + +@item dom-children @var{node} +Return all the children of the node. + +@item dom-non-text-children @var{node} +Return all the non-string children of the node. + +@item dom-attributes @var{node} +Return the key/value pair list of attributes of the node. + +@item dom-text @var{node} +Return all the textual elements of the node as a concatenated string. + +@item dom-texts @var{node} +Return all the textual elements of the node, as well as the textual +elements of all the children of the node, recursively, as a +concatenated string. This function also takes an optional separator +to be inserted between the textual elements. + +@item dom-parent @var{dom} @var{node} +Return the parent of @var{node} in @var{dom}. +@end table + +The following are functions for altering the @acronym{DOM}. + +@table @code +@item dom-set-attribute @var{node} @var{attribute} @var{value} +Set the @var{attribute} of the node to @var{value}. + +@item dom-append-child @var{node} @var{child} +Append @var{child} as the last child of @var{node}. + +@item dom-add-child-before @var{node} @var{child} @var{before} +Add @var{child} to @var{node}'s child list before the @var{before} +node. If @var{before} is nil, make @var{child} the first child. + +@item dom-set-attributes @var{node} @var{attributes} +Replace all the attributes of the node with a new key/value list. +@end table + +The following are functions for searching for elements in the +@acronym{DOM}. They all return lists of matching nodes. + +@table @code +@item dom-by-tag @var{dom} @var{tag} +Return all nodes in @var{dom} that are of type @var{tag}. A typical +use would be: + +@lisp +(dom-by-tag dom 'td) +=> '((td ...) (td ...) (td ...)) +@end lisp + +@item dom-by-class @var{dom} @var{match} +Return all nodes in @var{dom} that have class names that match +@var{match}, which is a regular expression. + +@item dom-by-style @var{dom} @var{style} +Return all nodes in @var{dom} that have styles that match @var{match}, +which is a regular expression. + +@item dom-by-id @var{dom} @var{style} +Return all nodes in @var{dom} that have IDs that match @var{match}, +which is a regular expression. + +@end table + +Utility functions: + +@table @code +@item dom-pp @var{dom} &optional @var{remove-empty} +Pretty-print @var{dom} at point. If @var{remove-empty}, don't print +textual nodes that just contain white-space. +@end table + + @node Atomic Changes @section Atomic Change Groups @cindex atomic changes diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index d8b906d3bfe..f7f07e8fb74 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi @@ -1062,9 +1062,9 @@ context. @item ;;; Change Log: This begins an optional log of changes to the file over time. Don't put too much information in this section---it is better to keep the -detailed logs in a separate @file{ChangeLog} file (as Emacs does), -and/or to use a version control system. @samp{History} is an -alternative to @samp{Change Log}. +detailed logs in a version control system (as Emacs does) or in a +separate @file{ChangeLog} file. @samp{History} is an alternative to +@samp{Change Log}. @item ;;; Code: This begins the actual code of the program. diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index f2fe5c85a93..c54eb900da1 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -16,6 +16,7 @@ is displayed in windows. * Windows and Frames:: Relating windows to the frame they appear on. * Window Sizes:: Accessing a window's size. * Resizing Windows:: Changing the sizes of windows. +* Preserving Window Sizes:: Preserving the size of windows. * Splitting Windows:: Creating a new window. * Deleting Windows:: Removing a window from its frame. * Recombining Windows:: Preserving the frame layout when splitting and @@ -394,13 +395,14 @@ internal window). The @var{edges} element is a list @code{(@var{left} @group ____________________________________________ |______________ Header Line ______________|RD| ^ - ^ |LS|LF|LM| |RM|RF|RS| | | + ^ |LS|LM|LF| |RF|RM|RS| | | | | | | | | | | | | | Window | | | | Text Area | | | | | Window Body | | | | | (Window Body) | | | | | Total Height | | | | | | | | | Height | | | | |<- Window Body Width ->| | | | | | v |__|__|__|_______________________|__|__|__| | | + |_________ Horizontal Scroll Bar _________| | | |_______________ Mode Line _______________|__| | |_____________ Bottom Divider _______________| v <---------- Window Total Width ------------> @@ -414,15 +416,15 @@ Height | | | | | | | | | Height At the center of the window is the @dfn{text area}, or @dfn{body}, where the buffer text is displayed. The text area can be surrounded by a series of optional areas. On the left and right, from innermost to -outermost, these are the left and right margins, denoted by LM and RM in -the schematic (@pxref{Display Margins}); the left and right fringes, -denoted by LF and RF (@pxref{Fringes}); the left or right scroll bar, -only one of which is present at any time, denoted by LS and RS -(@pxref{Scroll Bars}); and the right divider, denoted by RD +outermost, these are the left and right fringes, denoted by LF and RF +(@pxref{Fringes}); the left and right margins, denoted by LM and RM in +the schematic (@pxref{Display Margins}); the left or right vertical +scroll bar, only one of which is present at any time, denoted by LS and +RS (@pxref{Scroll Bars}); and the right divider, denoted by RD (@pxref{Window Dividers}). At the top of the window is the header line -(@pxref{Header Lines}); at the bottom of the window is the mode line -(@pxref{Mode Line Format}) followed by the bottom divider (@pxref{Window -Dividers}). +(@pxref{Header Lines}). At the bottom of the window are the horizontal +scroll bar (@pxref{Scroll Bars}); the mode line (@pxref{Mode Line +Format}); and the bottom divider (@pxref{Window Dividers}). Emacs provides miscellaneous functions for finding the height and width of a window. The return value of many of these functions can be @@ -439,11 +441,8 @@ displayed within it. @cindex height of a window @cindex total height of a window The @dfn{total height} of a window is the number of lines comprising -the window's body, the header line, the mode line and the bottom divider -(if any). Note that the height of a frame is not the same as the height -of its root window (@pxref{Windows and Frames}), since a frame may also -contain an echo area, a menu bar, and a tool bar (@pxref{Size and -Position}). +the window's body, the header line, the horizontal scroll bar, the mode +line and the bottom divider (if any). @defun window-total-height &optional window round This function returns the total height, in lines, of the window @@ -451,24 +450,23 @@ This function returns the total height, in lines, of the window the selected window. If @var{window} is an internal window, the return value is the total height occupied by its descendant windows. - If a window's pixel height is not an integral multiple of its frame's + If a window's pixel height is not an integral multiple of its frame's default character height, the number of lines occupied by the window is rounded internally. This is done in a way such that, if the window is a parent window, the sum of the total heights of all its child windows internally equals the total height of their parent. This means that although two windows have the same pixel height, their internal total -heights may differ by one line. This means also, that if this window is -vertically combined and has a right sibling, the topmost row of that +heights may differ by one line. This means also, that if window is +vertically combined and has a next sibling, the topmost row of that sibling can be calculated as the sum of this window's topmost row and total height (@pxref{Coordinates and Windows}) - If the optional argument @var{round} equals @code{ceiling}, this + If the optional argument @var{round} is @code{ceiling}, this function returns the smallest integer larger than @var{window}'s pixel -height divided by the character height of @var{window}'s frame; if it is -@code{floor}, it returns the largest integer smaller than @var{window}'s -pixel height divided by the character height of @var{window}'s frame. -Any other value of @var{round} means to return the internal value of the -total height of @var{window}. +height divided by the character height of its frame; if it is +@code{floor}, it returns the largest integer smaller than said value; +with any other @var{round} it returns the internal value of +@var{windows}'s total height. @end defun @cindex window width @@ -484,24 +482,17 @@ This function returns the total width, in columns, of the window the selected window. If @var{window} is internal, the return value is the total width occupied by its descendant windows. - If a window's pixel width is not an integral multiple of its frame's + If a window's pixel width is not an integral multiple of its frame's character width, the number of lines occupied by the window is rounded internally. This is done in a way such that, if the window is a parent window, the sum of the total widths of all its children internally equals the total width of their parent. This means that although two windows have the same pixel width, their internal total widths may differ by one column. This means also, that if this window is -horizontally combined and has a right sibling, the leftmost column of +horizontally combined and has a next sibling, the leftmost column of that sibling can be calculated as the sum of this window's leftmost -column and total width (@pxref{Coordinates and Windows}). - -If the optional argument @var{round} is @code{ceiling}, this function -will return the smallest integer larger than @var{window}'s pixel width -divided by the character width of @var{window}'s frame; if it is -@code{floor}, it returns the largest integer smaller than @var{window}'s -pixel width divided by the character width of @var{window}'s frame. Any -other value of @var{round} means to return the internal total width of -@var{window}. +column and total width (@pxref{Coordinates and Windows}). The optional +argument @var{round} behaves as it does for @code{window-total-height}. @end defun @defun window-total-size &optional window horizontal round @@ -510,8 +501,7 @@ width in columns of the window @var{window}. If @var{horizontal} is omitted or @code{nil}, this is equivalent to calling @code{window-total-height} for @var{window}; otherwise it is equivalent to calling @code{window-total-width} for @var{window}. The optional -argument @code{ROUND} is handled as for @code{window-total-height} and -@code{window-total-width}. +argument @var{round} behaves as it does for @code{window-total-height}. @end defun The following two functions can be used to return the total size of a @@ -525,9 +515,10 @@ window in units of pixels. This function returns the total height of window @var{window} in pixels. @var{window} must be a valid window and defaults to the selected one. -The return value includes mode and header line and a bottom divider, if -any. If @var{window} is an internal window, its pixel height is the -pixel height of the screen areas spanned by its children. +The return value includes mode and header line, a horizontal scroll bar +and a bottom divider, if any. If @var{window} is an internal window, +its pixel height is the pixel height of the screen areas spanned by its +children. @end defun @cindex window pixel height @@ -550,10 +541,12 @@ the screen areas spanned by its children. window has any adjacent windows. @defun window-full-height-p &optional window -This function returns non-@code{nil} if @var{window} has no other -window above or below it in its frame, i.e., its total height equals -the total height of the root window on that frame. If @var{window} is -omitted or @code{nil}, it defaults to the selected window. +This function returns non-@code{nil} if @var{window} has no other window +above or below it in its frame. More precisely, this means that the +total height of @var{window} equals the total height of the root window +on that frame. The minibuffer window does not count in this regard. If +@var{window} is omitted or @code{nil}, it defaults to the selected +window. @end defun @defun window-full-width-p &optional window @@ -567,7 +560,8 @@ that of the root window on that frame. If @var{window} is omitted or @cindex body height of a window @cindex window body width The @dfn{body height} of a window is the height of its text area, which -does not include a mode or header line or a bottom divider. +does not include a mode or header line, a horizontal scroll bar, or a +bottom divider. @defun window-body-height &optional window pixelwise This function returns the height, in lines, of the body of window @@ -654,7 +648,8 @@ size: @defopt window-min-height This option specifies the minimum total height, in lines, of any window. Its value has to accommodate at least one text line as well as a mode -and header line and a bottom divider, if present. +and header line, a horizontal scroll bar and a bottom divider, if +present. @end defopt @defopt window-min-width @@ -663,22 +658,6 @@ window. Its value has to accommodate two text columns as well as margins, fringes, a scroll bar and a right divider, if present. @end defopt -@defvar window-size-fixed -If this buffer-local variable is non-@code{nil}, the size of any -window displaying the buffer cannot normally be changed. Deleting a -window or changing the frame's size may still change its size, if -there is no choice. - -If the value is @code{height}, then only the window's height is fixed; -if the value is @code{width}, then only the window's width is fixed. -Any other non-@code{nil} value fixes both the width and the height. - -If this variable is @code{nil}, this does not necessarily mean that any -window showing the buffer can be resized in the desired direction. To -determine that, use the function @code{window-resizable}. -@xref{Resizing Windows}. -@end defvar - The following function tells how small a specific window can get taking into account the sizes of its areas and the values of @code{window-min-height}, @code{window-min-width} and @@ -693,10 +672,11 @@ of @var{window}'s lines. The return value makes sure that all components of @var{window} remain fully visible if @var{window}'s size were actually set to it. With -@var{horizontal} @code{nil} it includes the mode and header line and the -bottom divider. With @var{horizontal} non-@code{nil} it includes the -fringes, a scroll bar, and a right divider, if present. It does not, -however, include the space reserved for the margins. +@var{horizontal} @code{nil} it includes the mode and header line, the +horizontal scroll bar and the bottom divider. With @var{horizontal} +non-@code{nil} it includes the fringes, a scroll bar, and a right +divider, if present. It does not, however, include the space reserved +for the margins. The optional argument @var{ignore}, if non-@code{nil}, means ignore restrictions imposed by fixed size windows, @code{window-min-height} or @@ -748,14 +728,14 @@ Normally, the variables @code{window-min-height} and (@pxref{Window Sizes}). However, if the optional argument @var{ignore} is non-@code{nil}, this function ignores @code{window-min-height} and @code{window-min-width}, as well as @code{window-size-fixed}. Instead, -it considers the minimum-height window to be one consisting of a header, -a mode line and a bottom divider (if any), plus a text area one line -tall; and a minimum-width window as one consisting of fringes, margins, -a scroll bar and a right divider (if any), plus a text area two columns -wide. +it considers the minimum-height window to be one consisting of a header +and a mode line, a horizontal scrollbar and a bottom divider (if any), +plus a text area one line tall; and a minimum-width window as one +consisting of fringes, margins, a scroll bar and a right divider (if +any), plus a text area two columns wide. -If the optional argument @code{pixelwise} is non-@code{nil}, -@var{delta} will be interpreted as pixels. +If the optional argument @var{pixelwise} is non-@code{nil}, +@var{delta} is interpreted as pixels. @end defun @defun window-resize window delta &optional horizontal ignore pixelwise @@ -779,7 +759,7 @@ values of the option @code{window-combination-resize} and the combination limits of the involved windows; in some cases, it may alter both edges. @xref{Recombining Windows}. To resize by moving only the bottom or right edge of a window, use the function -@code{adjust-window-trailing-edge}, below. +@code{adjust-window-trailing-edge}. @end defun @c The commands enlarge-window, enlarge-window-horizontally, @@ -792,8 +772,8 @@ If optional argument @var{horizontal} is non-@code{nil}, it instead moves the right edge by @var{delta} columns. If @var{window} is @code{nil}, it defaults to the selected window. -If the optional argument @code{pixelwise} is non-@code{nil}, -@var{delta} will be interpreted as pixels. +If the optional argument @var{pixelwise} is non-@code{nil}, +@var{delta} is interpreted as pixels. A positive @var{delta} moves the edge downwards or to the right; a negative @var{delta} moves it upwards or to the left. If the edge @@ -807,23 +787,22 @@ window is fixed-size), it may resize other windows. @cindex pixelwise, resizing windows @defopt window-resize-pixelwise -If the value of this option is non-@code{nil}, windows are resized in +If the value of this option is non-@code{nil}, Emacs resizes windows in units of pixels. This currently affects functions like @code{split-window} (@pxref{Splitting Windows}), @code{maximize-window}, @code{minimize-window}, @code{fit-window-to-buffer}, @code{shrink-window-if-larger-than-buffer} (all listed below) and @code{fit-frame-to-buffer} (@pxref{Size and Position}). -Note that when a frame's pixel size is not a multiple of the frame's -character size, at least one window may get resized pixelwise even if -this option is @code{nil}. The default value of this option is -@code{nil}. +Note that when a frame's pixel size is not a multiple of its character +size, at least one window may get resized pixelwise even if this +option is @code{nil}. The default value is @code{nil}. @end defopt The following commands resize windows in more specific ways. When called interactively, they act on the selected window. -@deffn Command fit-window-to-buffer &optional window max-height min-height max-width min-width +@deffn Command fit-window-to-buffer &optional window max-height min-height max-width min-width preserve-size This command adjusts the height or width of @var{window} to fit the text in it. It returns non-@code{nil} if it was able to resize @var{window}, and @code{nil} otherwise. If @var{window} is omitted or @code{nil}, it @@ -851,6 +830,10 @@ defaults to the width of @var{window}'s frame. The optional argument specified in columns and include fringes, margins and scrollbars, if any. +The optional argument @var{preserve-size}, if non-@code{nil}, will +install a parameter to preserve the size of @var{window} during future +resize operations (@pxref{Preserving Window Sizes}). + If the option @code{fit-frame-to-buffer} (see below) is non-@code{nil}, this function will try to resize the frame of @var{window} to fit its contents by calling @code{fit-frame-to-buffer} (@pxref{Size and @@ -1084,6 +1067,99 @@ point was previously on. Note that this only affects function. @end defopt + +@node Preserving Window Sizes +@section Preserving Window Sizes +@cindex preserving window sizes + +A window can get resized explicitly by using one of the functions from +the preceding section or implicitly, for example, when resizing an +adjacent window, when splitting or deleting a window (@pxref{Splitting +Windows}, @pxref{Deleting Windows}) or when resizing the window's frame +(@pxref{Size and Position}). + + It is possible to avoid implicit resizing of a specific window when +there are one or more other resizable windows on the same frame. For +this purpose, Emacs must be advised to @dfn{preserve} the size of that +window. There are two basic ways to do that. + +@defvar window-size-fixed +If this buffer-local variable is non-@code{nil}, the size of any window +displaying the buffer cannot normally be changed. Deleting a window or +changing the frame's size may still change the window's size, if there +is no choice. + +If the value is @code{height}, then only the window's height is fixed; +if the value is @code{width}, then only the window's width is fixed. +Any other non-@code{nil} value fixes both the width and the height. + +If this variable is @code{nil}, this does not necessarily mean that any +window showing the buffer can be resized in the desired direction. To +determine that, use the function @code{window-resizable}. +@xref{Resizing Windows}. +@end defvar + +Often @code{window-size-fixed} is overly aggressive because it inhibits +any attempt to explicitly resize or split an affected window as well. +This may even happen after the window has been resized implicitly, for +example, when deleting an adjacent window or resizing the window's +frame. The following function tries hard to never disallow resizing +such a window explicitly: + +@defun window-preserve-size &optional window horizontal preserve +This function (un-)marks the height of window @var{window} as preserved +for future resize operations. @var{window} must be a live window and +defaults to the selected one. If the optional argument @var{horizontal} +is non-@code{nil}, it (un-)marks the width of @var{window} as preserved. + +If the optional argument @var{preserve} is @code{t}, this means to +preserve the current height/width of @var{window}'s body. The +height/width of @var{window} will change only if Emacs has no better +choice. Resizing a window whose height/width is preserved by this +function never throws an error. + +If @var{preserve} is @code{nil}, this means to stop preserving the +height/width of @var{window}, lifting any respective restraint induced +by a previous call of this function for @var{window}. Calling +@code{enlarge-window}, @code{shrink-window} or +@code{fit-window-to-buffer} with @var{window} as argument may also +remove the respective restraint. +@end defun + +@code{window-preserve-size} is currently invoked by the following +functions: + +@table @code +@item fit-window-to-buffer +If the optional argument @var{preserve-size} of that function +(@pxref{Resizing Windows}) is non-@code{nil}, the size established by +that function is preserved. + +@item display-buffer +If the @var{alist} argument of that function (@pxref{Choosing Window}) +contains a @code{preserve-size} entry, the size of the window produced +by that function is preserved. +@end table + + @code{window-preserve-size} installs a window parameter (@pxref{Window +Parameters}) called @code{preserved-size} which is consulted by the +window resizing functions. This parameter will not prevent resizing the +window when the window shows another buffer than the one when +@code{window-preserve-size} was invoked or if its size has changed since +then. + +The following function can be used to check whether the height of a +particular window is preserved: + +@defun window-preserved-size &optional window horizontal +This function returns the preserved height of window @var{window} in +pixels. @var{window} must be a live window and defaults to the selected +one. If the optional argument @var{horizontal} is non-@code{nil}, it +returns the preserved width of @var{window}. It returns @code{nil} if +the size of @var{window} is not preserved. +@end defun + + @node Deleting Windows @section Deleting Windows @cindex deleting windows @@ -2239,6 +2315,13 @@ argument: the new window. The function is supposed to adjust the width of the window; its return value is ignored. @end itemize +If @var{alist} contains a @code{preserve-size} entry, Emacs will try to +preserve the size of the new window during future resize operations +(@pxref{Preserving Window Sizes}). The @sc{cdr} of that entry must be a +cons cell whose @sc{car}, if non-@code{nil}, means to preserve the width +of the window and whose @sc{cdr}, if non-@code{nil}, means to preserve +the height of the window. + This function can fail if no window splitting can be performed for some reason (e.g., if the selected frame has an @code{unsplittable} frame parameter; @pxref{Buffer Parameters}). @@ -3906,6 +3989,15 @@ This parameter specifies the window that this one has been cloned from. It is installed by @code{window-state-get} (@pxref{Window Configurations}). +@item @code{preserved-size} +This parameter specifies a buffer, a direction where @code{nil} means +vertical and @code{t} horizontal, and a size in pixels. If this window +displays the specified buffer and its size in the indicated direction +equals the size specified by this parameter, then Emacs will try to +preserve the size of this window in the indicated direction. This +parameter is installed and updated by the function +@code{window-preserve-size} (@pxref{Preserving Window Sizes}). + @item @code{quit-restore} This parameter is installed by the buffer display functions (@pxref{Choosing Window}) and consulted by @code{quit-restore-window} diff --git a/doc/man/ChangeLog b/doc/man/ChangeLog index 34ecda837ef..813a416255c 100644 --- a/doc/man/ChangeLog +++ b/doc/man/ChangeLog @@ -1,3 +1,19 @@ +2014-12-14 Glenn Morris + + * grep-changelog.1: Remove file. + +2014-11-10 Glenn Morris + + * emacs.1.in: Rename from emacs.1. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-09-29 Eli Zaretskii + + * emacs.1: Bump version to 25.0.50. + 2014-01-12 Glenn Morris * emacs.1: Replace reference to etc/MAILINGLISTS. diff --git a/doc/man/emacs.1 b/doc/man/emacs.1.in similarity index 99% rename from doc/man/emacs.1 rename to doc/man/emacs.1.in index 45bdb64d8b0..fc7be71f284 100644 --- a/doc/man/emacs.1 +++ b/doc/man/emacs.1.in @@ -1,5 +1,5 @@ .\" See section COPYING for copyright and redistribution information. -.TH EMACS 1 "2007 April 13" "GNU Emacs 24.4.50" +.TH EMACS 1 "2007 April 13" "GNU Emacs @version@" . . .SH NAME @@ -579,7 +579,7 @@ They are stored here to reduce the size of Emacs proper. . . .SH BUGS -There is a mailing list, bug-gnu-emacs@gnu.org, for reporting Emacs +There is a mailing list, @PACKAGE_BUGREPORT@, for reporting Emacs bugs and fixes. But before reporting something as a bug, please try to be sure that it really is a bug, not a misunderstanding or a deliberate feature. diff --git a/doc/man/emacsclient.1 b/doc/man/emacsclient.1 index a5abcff0d5d..6930271e548 100644 --- a/doc/man/emacsclient.1 +++ b/doc/man/emacsclient.1 @@ -52,7 +52,7 @@ options starting with two dashes (`-'). .B \-a, \-\-alternate-editor=EDITOR if the Emacs server is not running, run the specified editor instead. This can also be specified via the `ALTERNATE_EDITOR' environment variable. -If the value of EDITOR is the empty string, run `emacs --daemon' to +If the value of EDITOR is the empty string, run `emacs \-\-daemon' to start Emacs in daemon mode, and try to connect to it. .TP .B -c, \-\-create-frame diff --git a/doc/man/grep-changelog.1 b/doc/man/grep-changelog.1 deleted file mode 100644 index a3635a61838..00000000000 --- a/doc/man/grep-changelog.1 +++ /dev/null @@ -1,80 +0,0 @@ -.\" -*- nroff -*- -.\" See section COPYING for copyright and redistribution information. -.TH grep-changelog 1 -.SH NAME -grep-changelog \- print ChangeLog entries matching criteria -.SH SYNOPSIS -.B grep-changelog -.RI [ options ] -.RI [ CHANGELOG .\|.\|.] -.SH DESCRIPTION -.B grep-changelog -searches the named -.IR CHANGELOG s -(by default files matching the regular expressions -.B ChangeLog -and -.BR "ChangeLog\e.[0-9]+" ) -for entries matching the specified criteria. At least one option or -file must be specified. This program is distributed with -.BR "GNU Emacs" . -.PP -.SH OPTIONS -The program accepts unambiguous abbreviations for option names. -.TP -.B \-\-author=AUTHOR -Print entries whose author matches regular expression -.IR AUTHOR . -.TP -.B \-\-text=TEXT -Print entries whose text matches regular expression -.IR TEXT . -.TP -.B \-\-exclude=TEXT -Exclude entries matching regular expression -.IR TEXT . -.TP -.B \-\-from\-date=YYYY\-MM\-DD -Only consider entries made on or after the given date. -ChangeLog date entries not in the -\*(lqYYYY\-MM\-DD\*(rq format are never matched. -.TP -.B \-\-to\-date=YYYY\-MM\-DD -Only consider entries made on or before the given date. -.TP -.B \-\-rcs\-log -Print output in a format suitable for RCS log entries. -This format removes author lines, leading spaces, and file names. -.TP -.B \-\-with\-date -In RCS log format, print short dates. -.TP -.B \-\-reverse -Show matches in reverse order. -.TP -.B \-\-version -Display version information. -.TP -.B \-\-help -Display basic usage information. -. -.SH COPYING -Copyright -.if t \(co -.if n (C) -2008-2014 Free Software Foundation, Inc. -.PP -Permission is granted to make and distribute verbatim copies of this -document provided the copyright notice and this permission notice are -preserved on all copies. -.PP -Permission is granted to copy and distribute modified versions of -this document under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of -a permission notice identical to this one. -.PP -Permission is granted to copy and distribute translations of this -document into another language, under the above conditions for -modified versions, except that this permission notice may be stated -in a translation approved by the Free Software Foundation. -. diff --git a/doc/misc/.gitignore b/doc/misc/.gitignore deleted file mode 100644 index 3ff56b474dd..00000000000 --- a/doc/misc/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -*.aux -*.cp -*.cps -*.dvi -*.fn -*.fns -*.ky -*.kys -*.log -*.op -*.ops -*.pdf -*.pg -*.pgs -*.ps -*.tmp -*.toc -*.tp -*.tps -*.vr -*.vrs -Makefile -makefile diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 261f81f8b2f..cd8b7f34ee6 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,200 @@ +2014-12-18 Eric Abrahamsen + + * gnus.texi (Gnus Registry Setup): Explain pruning changes. Mention + gnus-registry-prune-factor. Explain sorting changes and + gnus-registry-default-sort-function. Correct file extension. + +2014-12-17 Jay Belanger + + * calc.texi (About This Manual): Update instructions + for building the manual. + +2014-12-15 Alan Mackenzie + + "Advice" is a mass noun. Amend text accordingly. + * cl.texi (Obsolete Macros): Replace "an advice" with "advice". + +2014-12-12 Paul Eggert + + * texinfo.tex: Update from gnulib. + +2014-12-08 Andrey Kotlarski + + * eww.texi (Basics): Document managing multiple eww buffers. + +2014-12-05 Lars Magne Ingebrigtsen + + * eww.texi (Basics): Document eww PDF viewing. + +2014-11-23 Ivan Shmakov + + * eww.texi (Advanced): Mention the Desktop stuff (bug#18010). + +2014-11-23 Michael Albinus + + * tramp.texi (Remote processes): Let-bind environment variables to + `process-environment' when running `process-file' or + `start-file-process'. + +2014-11-19 Ivan Shmakov + + * eww.texi (Basics): Document `eww-history-limit'. + +2014-11-14 Paul Eggert + + * org.texi (The date/time prompt, Matching tags and properties): + Use leading zero with 24-hour times less than 10:00. + +2014-11-13 Lars Magne Ingebrigtsen + + * eww.texi (Variable Index): Mention `eww-after-render-hook'. + +2014-11-10 Lars Magne Ingebrigtsen + + * eww.texi (Basics): Document `eww-readable'. + +2014-11-10 Katsumi Yamaoka + + * gnus.texi (Top): Add missing `HTML' menu. + (HTML): Fix xref to FAQ 4-16. + +2014-11-09 Glenn Morris + + * Makefile.in (version): Remove variable. + (clean): No longer delete dist tarfile. + (dist): Remove rule; replace with code in admin.el. + +2014-11-08 Glenn Morris + + * Makefile.in (${buildinfodir}/ccmode.info) + (${buildinfodir}/efaq%.info): Ensure output directory exists. + +2014-11-07 Tassilo Horn + + * gnus.texi (HTML): Update section so that it mentions shr and w3m. + Also link the full EWW manual that explains more on shr, too. + + * gnus-faq.texi (FAQ 4 - Reading messages, FAQ 4-16): Add Q&A on how to + increase contrast when displaying HTML mail with shr. + + * eww.texi (Advanced): Document increasing contrast with + shr-color-visible-distance-min and + shr-color-visible-luminance-min. + +2014-11-02 Teodor Zlatanov + + * auth.texi (Help for users): Explain quoting rules better. + +2014-10-30 Glenn Morris + + * efaq.texi (Gnus does not work with NNTP): Remove; ancient. + +2014-10-30 Stefan Monnier + + * eieio.texi (Accessing Slots, CLOS compatibility): Adjust wording + since `setf' is in core rather than in CL nowadays. + +2014-10-29 Paul Eggert + + Simplify use of current-time and friends. + * org.texi (Dynamic blocks): Omit unnecessary call to current-time + in example. + +2014-10-28 Christopher Schmidt + + * calc.texi (Quick Calculator): Mention prefix argument of + `quick-calc'. + +2014-10-26 Eric S. Raymond + + * efaq-w32.texi: Neutralized language specific to a repository type. + +2014-10-25 Eric S. Raymond + + * gnus-coding.txt: Neutralized language specific to a repository type. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-13 Glenn Morris + + * Makefile.in (dist): Update for new output variables. + +2014-10-08 Leo Liu + + * cl.texi (Porting Common Lisp): Remove parse-integer. + +2014-10-06 Ulf Jasper + + * newsticker.texi (Supported Formats): Fix order of subheading and + itemize. + +2014-10-04 Glenn Morris + + * vip.texi (Other Vi Commands): Markup fix. + +2014-10-03 Bastien Guerry + + * org.texi (Key bindings and useful functions): Fix typo. + Use the correct function's name. + +2014-10-03 Michael Brand + + * org.texi (Formula syntax for Calc): Add `f-1' to TBLFM example + about `nan'. + +2014-10-03 Nicolas Goaziou + + * org.texi (Export settings): Be more explicit about how output + file name is built. + + * org.texi (Headings and sectioning structure): Document menus. + + * org.texi (Include files, Publishing options): Remove reference + to nonexistent variable. + +2014-10-03 Eli Zaretskii + + * erc.texi (Connecting): Remove stray "OA" that failed the manual + build. + +2014-10-03 Kelvin White + + * erc.texi (Advanced Usage, Options): Add descriptions and examples + for erc-format-nick-function and erc-rename-buffers options. + +2014-09-26 Leo Liu + + * cl.texi (Predicates on Numbers): Document cl-digit-char-p. + (Numerical Functions): Document cl-parse-integer. (Bug#18557) + +2014-09-24 Ulf Jasper + + * newsticker.texi: Reworked. Document new treeview group + commands. Remove VERSION, UPDATED, use EMACSVER instead. + Use term 'feed reader'. + +2014-09-04 Paul Eggert + + Less chatter in 'make' output. + * Makefile.in (clean): Simplify, for shorter command line. + +2014-08-07 Reuben Thomas + + * ediff.texi (Merging and diff3): Don't mention lack of support + for VMS diff, we no longer support VMS. + +2014-08-07 Michael Albinus + + * tramp.texi (Remote shell setup): Explain, how to change command + line arguments of remote "nc" listener. + +2014-07-31 Tassilo Horn + + * gnus.texi (Group Parameters): Document that `gcc-self' may also be a + list. + 2014-07-28 Stephen Berman * todo-mode.texi (Marked Items): Correct omission of item deletion @@ -249,14 +446,14 @@ 2014-03-23 Katsumi Yamaoka - * gnus.texi (MIME Commands): Mention - gnus-mime-buttonize-attachments-in-header and + * gnus.texi (MIME Commands): + Mention gnus-mime-buttonize-attachments-in-header and gnus-mime-display-attachment-buttons-in-header. 2014-03-23 Lars Ingebrigtsen - * message.texi (Forwarding): Mention - `message-forward-included-headers'. + * message.texi (Forwarding): + Mention `message-forward-included-headers'. 2014-03-23 Lars Ingebrigtsen @@ -8776,7 +8973,7 @@ * org.texi (Installation, Activation): Split from Installation and Activation. - (Clocking work time): Documented new features. + (Clocking work time): Document new features. 2006-08-13 Alex Schroeder @@ -9377,22 +9574,22 @@ * emacs-mime.texi (Flowed text): Add mm-fill-flowed. (Sync 2004-01-27 from the trunk). -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * cc-mode.texi: Rename c-hungry-backspace to c-hungry-delete-backwards, at the request of RMS. Leave the old name as an alias. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * cc-mode.texi: Correct the definition of c-beginning-of-defun, to include the function header within the defun. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * cc-mode.texi: Correct two typos. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * cc-mode.texi (Comment Commands): State that C-u M-; kills any existing comment. @@ -9706,7 +9903,7 @@ (MIME with Emacs mail packages): Delete section about the Emacs MIME FAQ (it's not reachable anymore). -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * cc-mode.texi: The manual has been extensively revised: the information about using CC Mode has been separated from the larger @@ -9934,7 +10131,7 @@ 2005-10-10 Carsten Dominik - * org.texi (Workflow states): Documented that change in keywords + * org.texi (Workflow states): Document that change in keywords becomes active only after restart of Emacs. 2005-10-08 Michael Albinus @@ -10809,7 +11006,7 @@ * Makefile.in (../info/tramp, tramp.dvi): Depend on trampver.texi. -2004-08-11 Martin Stjernholm +2004-08-11 Martin Stjernholm * cc-mode.texi: Various updates for CC Mode 5.30.9. @@ -11057,7 +11254,7 @@ * eshell.texi (Known Problems): Add doc item. -2003-11-22 Martin Stjernholm +2003-11-22 Martin Stjernholm * cc-mode.texi: Update for CC Mode 5.30. diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index 53537122cef..40a072a7978 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -23,8 +23,6 @@ SHELL = @SHELL@ # of the source tree. This is set by configure's `--srcdir' option. srcdir=@srcdir@ -version=@version@ - ## Where the output files go. ## Note that all the Info targets build the Info files in srcdir. ## There is no provision for Info files to exist in the build directory. @@ -176,12 +174,12 @@ $(buildinfodir)/semantic.info semantic.dvi semantic.pdf semantic.html: ${srcdir} ## Please can we just rename cc-mode.texi to ccmode.texi... -${buildinfodir}/ccmode.info: ${srcdir}/cc-mode.texi ${gfdl} +${buildinfodir}/ccmode.info: ${srcdir}/cc-mode.texi ${gfdl} | ${buildinfodir} $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $< ## efaq, efaq_w32 do not depend on gfdl. ## Maybe we can use .SECONDEXPANSION for this. -${buildinfodir}/efaq%.info: ${srcdir}/efaq%.texi +${buildinfodir}/efaq%.info: ${srcdir}/efaq%.texi | ${buildinfodir} $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $< efaq%.dvi: ${srcdir}/efaq%.texi @@ -221,9 +219,7 @@ mostlyclean: rm -f gnustmp* clean: mostlyclean - rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS) - rm -f efaq-w32.dvi efaq-w32.html efaq-w32.pdf efaq-w32.ps - rm -f emacs-misc-${version}.tar* + rm -f *.dvi *.html *.pdf *.ps distclean: clean rm -f Makefile @@ -240,26 +236,6 @@ infoclean: bootstrap-clean maintainer-clean: distclean infoclean -dist: - rm -rf emacs-misc-${version} - mkdir emacs-misc-${version} - cp ${srcdir}/*.texi ${srcdir}/texinfo.tex \ - $(emacsdir)/emacsver.texi ${srcdir}/ChangeLog* \ - emacs-misc-${version}/ - sed -e 's/@sr[c]dir@/./' \ - -e 's/^\(emacsdir *=\).*/\1 ./' \ - -e 's/^\(buildinfodir *=\).*/\1 ./' \ - -e 's/^\(clean:.*\)/\1 infoclean/' \ - -e "s/@ver[s]ion@/${version}/" \ - -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \ - ${srcdir}/Makefile.in > emacs-misc-${version}/Makefile - @if grep '@[a-zA-Z_]*@' emacs-misc-${version}/Makefile; then \ - echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \ - fi - tar -cf emacs-misc-${version}.tar emacs-misc-${version} - rm -rf emacs-misc-${version} - - .PHONY: install-dvi install-html install-pdf install-ps install-doc install-dvi: dvi diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi index 207ffc6d79b..976143e8e39 100644 --- a/doc/misc/auth.texi +++ b/doc/misc/auth.texi @@ -106,12 +106,17 @@ The @code{user} is the user name. It's known as @var{:user} in @code{auth-source-search} queries. You can also use @code{login} and @code{account}. -Spaces are always OK as far as auth-source is concerned (but other -programs may not like them). Just put the data in quotes, escaping -quotes as you'd expect with @samp{\}. +You can use spaces inside a password or other token by surrounding the +token with either single or double quotes. -All these are optional. You could just say (but we don't recommend -it, we're just showing that it's possible) +You can use single quotes inside a password or other token by +surrounding it with double quotes, e.g. @code{"he'llo"}. Similarly you +can use double quotes inside a password or other token by surrounding +it with single quotes, e.g. @code{'he"llo'}. You can't mix both (so a +password or other token can't have both single and double quotes). + +All this is optional. You could just say (but we don't recommend it, +we're just showing that it's possible) @example password @var{mypassword} diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index 2e9d71acd4f..8dcb4701246 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -349,25 +349,12 @@ program by Donald Knuth at Stanford University) as well as the @file{texindex} program and @file{texinfo.tex} file, both of which can be obtained from the FSF as part of the @code{texinfo} package. To print the Calc manual in one huge tome, you will need the -source code to this manual, @file{calc.texi}, available as part of the -Emacs source. Once you have this file, type @kbd{texi2dvi calc.texi}. -Alternatively, change to the @file{man} subdirectory of the Emacs -source distribution, and type @kbd{make calc.dvi}. (Don't worry if you -get some ``overfull box'' warnings while @TeX{} runs.) -The result will be a device-independent output file called -@file{calc.dvi}, which you must print in whatever way is right -for your system. On many systems, the command is - -@example -lpr -d calc.dvi -@end example - -@noindent -or - -@example -dvips calc.dvi -@end example +Emacs source, which contains the source code to this manual, +@file{calc.texi}. Change to the @file{doc/misc} subdirectory of the +Emacs source distribution, which contains source code for this manual, +and type @kbd{make calc.pdf}. (Don't worry if you get some ``overfull +box'' warnings while @TeX{} runs.) The result will be this entire +manual as a pdf file. @end ifnottex @c Printed copies of this manual are also available from the Free Software @c Foundation. @@ -10168,9 +10155,10 @@ to yank the result into the next @kbd{C-x * q} input line as a more explicit alternative to @kbd{$} notation, or to yank the result into the Calculator stack after typing @kbd{C-x * c}. -If you finish your formula by typing @key{LFD} (or @kbd{C-j}) instead -of @key{RET}, the result is inserted immediately into the current -buffer rather than going into the kill ring. +If you give a prefix argument to @kbd{C-x * q} or finish your formula +by typing @key{LFD} (or @kbd{C-j}) instead of @key{RET}, the result is +inserted immediately into the current buffer rather than going into +the kill ring. Quick Calculator results are actually evaluated as if by the @kbd{=} key (which replaces variable names by their stored values, if any). diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index b2914adc062..21188af8bb7 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -2929,6 +2929,12 @@ This predicate tests whether @var{integer} is even. It is an error if the argument is not an integer. @end defun +@defun cl-digit-char-p char radix +Test if @var{char} is a digit in the specified @var{radix} (default is +10). If true return the decimal value of digit @var{char} in +@var{radix}. +@end defun + @node Numerical Functions @section Numerical Functions @@ -3011,6 +3017,15 @@ This function returns the same value as the second return value of @code{cl-truncate}. @end defun +@defun cl-parse-integer string &key start end radix junk-allowed +This function implements the Common Lisp @code{parse-integer} +function. It parses an integer in the specified @var{radix} from the +substring of @var{string} between @var{start} and @var{end}. Any +leading and trailing whitespace chars are ignored. It signals an error +if the substring between @var{start} and @var{end} cannot be parsed as +an integer unless @var{junk-allowed} is non-nil. +@end defun + @node Random Numbers @section Random Numbers @@ -4692,9 +4707,8 @@ exactly the same thing, so this package has not bothered to implement a Common Lisp-style @code{make-list}. @item -A few more notable Common Lisp features not included in this -package: @code{compiler-let}, @code{tagbody}, @code{prog}, -@code{ldb/dpb}, @code{parse-integer}, @code{cerror}. +A few more notable Common Lisp features not included in this package: +@code{compiler-let}, @code{prog}, @code{ldb/dpb}, @code{cerror}. @item Recursion. While recursion works in Emacs Lisp just like it @@ -4900,7 +4914,7 @@ through the Lisp @code{message} function. For those cases where the dynamic scoping of @code{flet} is desired, @code{cl-flet} is clearly not a substitute. The most direct replacement would be instead to use @code{cl-letf} to temporarily rebind @code{(symbol-function -'@var{fun})}. But in most cases, a better substitute is to use an advice, such +'@var{fun})}. But in most cases, a better substitute is to use advice, such as: @example @@ -4916,7 +4930,7 @@ binding of @code{my-fun-advice-enable}. @c Bug#411. Note that many primitives (e.g., @code{+}) have special byte-compile handling. -Attempts to redefine such functions using @code{flet}, @code{cl-letf}, or an +Attempts to redefine such functions using @code{flet}, @code{cl-letf}, or advice will fail when byte-compiled. @c Or cl-flet. @c In such cases, use @code{labels} instead. diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi index 9d373982fa8..4e1806de94d 100644 --- a/doc/misc/ediff.texi +++ b/doc/misc/ediff.texi @@ -350,8 +350,7 @@ All the above functions use the POSIX @code{diff} or @code{diff3} programs to find differences between two files. They process the @code{diff} output and display it in a convenient form. At present, Ediff understands only the plain output from diff. Options such as @samp{-c} are not supported, -nor is the format produced by incompatible file comparison programs such as -the VMS version of @code{diff}. +nor is the format produced by incompatible file comparison programs. The functions @code{ediff-files}, @code{ediff-buffers}, @code{ediff-files3}, @code{ediff-buffers3} first display the coarse, @@ -1945,11 +1944,6 @@ Specifies the default directory to look for patches. @end table -@noindent -@strong{Warning:} Ediff does not support the output format of VMS -@code{diff}. Instead, make sure you are using some implementation of POSIX -@code{diff}, such as @code{gnudiff}. - @node Merging and diff3 @section Merging and diff3 diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi index f7086b6d3a9..904a6ffb031 100644 --- a/doc/misc/efaq-w32.texi +++ b/doc/misc/efaq-w32.texi @@ -176,7 +176,7 @@ The latest source is available from distributed as a compressed tar file, digitally signed by the maintainer who made the release. -@cindex Bzr, getting Emacs +@cindex getting Emacs @cindex latest development version of Emacs @cindex Emacs Development The development version of Emacs is available from @@ -199,8 +199,8 @@ of GNU @command{rm} and @command{cp}, as the Windows native equivalents are not consistent between versions. GNU texinfo will be required to build the manuals. @xref{Other useful ports}. -After unpacking the source, or checking out of Bzr, be sure to read the -instructions in @file{nt/README} and @file{nt/INSTALL}. +After unpacking the source, or checking out of the repository, be sure +to read the instructions in @file{nt/README} and @file{nt/INSTALL}. @node Debugging @section How do I use a debugger on Emacs? diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi index f048f75372c..0159101916d 100644 --- a/doc/misc/efaq.texi +++ b/doc/misc/efaq.texi @@ -982,10 +982,8 @@ version; three components indicate a development version (e.g., @samp{23.0.50} is what will eventually become @samp{23.1}). Emacs is under active development, hosted at -@uref{http://savannah.gnu.org/projects/emacs/, Savannah}. The source -code can be retrieved anonymously following the -@uref{http://savannah.gnu.org/bzr/?group=emacs, instructions}. -The repository is GNU Bazaar. +@uref{http://savannah.gnu.org/projects/emacs/, Savannah}. +Follow the instructions given there to clone the project repository. Because Emacs undergoes many changes before a release, the version number of a development version is not especially meaningful. It is @@ -4192,7 +4190,6 @@ fontset, or you can select it by setting the default font in your * Replying to the sender of a message:: * Automatically starting a mail or news reader:: * Reading news with Emacs:: -* Gnus does not work with NNTP:: * Making Gnus faster:: * Catching up in all newsgroups:: @end menu @@ -4386,27 +4383,6 @@ Manual, gnus, The Gnus Manual}, which includes @ref{Frequently Asked Questions,, the Gnus FAQ, gnus, The Gnus Manual}. -@node Gnus does not work with NNTP -@section Why doesn't Gnus work via NNTP? -@cindex Gnus and NNTP -@cindex NNTP, Gnus fails to work with - -There is a bug in NNTP version 1.5.10, such that when multiple requests -are sent to the NNTP server, the server only handles the first one -before blocking waiting for more input which never comes. NNTP version -1.5.11 claims to fix this. - -You can work around the bug inside Emacs like this: - -@lisp -(setq nntp-maximum-request 1) -@end lisp - -You can find out what version of NNTP your news server is running by -telnetting to the NNTP port (usually 119) on the news server machine -(i.e., @kbd{telnet server-machine 119}). The server should give its -version number in the welcome message. Type @kbd{quit} to get out. - @node Making Gnus faster @section How do I make Gnus faster? @cindex Faster, starting Gnus diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index 8f93300e24a..80e52baf255 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi @@ -755,8 +755,8 @@ Unlike @code{oref}, the symbol for @var{slot} must be quoted. @defun set-slot-value object slot value @anchor{set-slot-value} -This is not a CLOS function, but is meant to mirror @code{slot-value} if -you don't want to use the cl package's @code{setf} function. This +This is not a CLOS function, but is the setter for @code{slot-value} +used by the @code{setf} macro. This function sets the value of @var{slot} from @var{object}. Unlike @code{oset}, the symbol for @var{slot} must be quoted. @end defun @@ -790,7 +790,7 @@ This establishes a lexical environment for referring to the slots in the instance named by the given slot-names as though they were variables. Within such a context the value of the slot can be specified by using its slot name, as if it were a lexically bound -variable. Both setf and setq can be used to set the value of the +variable. Both @code{setf} and @code{setq} can be used to set the value of the slot. @var{spec-list} is of a form similar to @dfn{let}. For example: @@ -1850,10 +1850,6 @@ for the given object. This is different than that found in CLOS because in @eieio{} this function accepts replacement arguments. This permits subclasses to modify arguments as they are passed up the tree. If no arguments are given, the expected CLOS behavior is used. -@item setf -If the common-lisp subsystem is loaded, the setf parameters are also -loaded so the form @code{(setf (slot-value object slot) t)} should -work. @end table CLOS supports the @code{describe} command, but @eieio{} provides diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index 96bfc1e79da..bcdae1e84db 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -588,6 +588,16 @@ In the latter case, if the first nick in the list is already in use, other nicks are tried in the list order. @end defopt +@defopt erc-format-nick-function +A function to format a nickname for message display + +You can set this to @code{erc-format-@@nick} to display user mode prefix +@end defopt + +@example +(setq erc-format-nick-function 'erc-format-@@nick) +@end example + @defopt erc-nick-uniquifier The string to append to the nick if it is already in use. @end defopt @@ -661,7 +671,8 @@ your Emacs configuration file. Everything after the @code{(require ;; using the version of ERC that comes with Emacs (add-to-list 'load-path "~/elisp/erc") -;; Load ERC +;; Load ERC -- again, you don't need this if you are using the version +;; of ERC that comes with Emacs (require 'erc) ;; Load authentication info from an external source. Put sensitive @@ -712,6 +723,12 @@ stuff, to the current ERC buffer." ;; Join the #emacs and #erc channels whenever connecting to Freenode. (setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc"))) +;; Rename server buffers to reflect the current network name instead +;; of IP:PORT. (e.g. "freenode" instead of "84.240.3.129:6667"). This +;; is useful when using a bouncer like ZNC where you have multiple +;; connections to the same server. +(setq erc-rename-buffers t) + ;; Interpret mIRC-style color commands in IRC chats (setq erc-interpret-mirc-color t) @@ -750,6 +767,14 @@ lurkers. The function @code{erc-lurker-p} determines whether a given nickname is considered a lurker. @end defopt +@defopt erc-rename-buffers +If non, @code{nil}, this will rename server buffers to reflect the +current network name instead of IP:PORT + +@example +(setq erc-rename-buffers t) +@end example +@end defopt @node Getting Help and Reporting Bugs @chapter Getting Help and Reporting Bugs diff --git a/doc/misc/eww.texi b/doc/misc/eww.texi index c22a41e451c..c8118d14638 100644 --- a/doc/misc/eww.texi +++ b/doc/misc/eww.texi @@ -97,6 +97,12 @@ and the web page is rendered in it. You can leave EWW by pressing web page hit @kbd{g} (@code{eww-reload}). Pressing @kbd{w} (@code{eww-copy-page-url}) will copy the current URL to the kill ring. +@findex eww-readable +@kindex R + The @kbd{R} command (@code{eww-readable}) will attempt to determine +which part of the document contains the ``readable'' text, and will +only display this part. This usually gets rid of menus and the like. + @findex eww-download @vindex eww-download-directory @kindex d @@ -120,6 +126,21 @@ history press @kbd{H} (@code{eww-list-histories}) to open the history buffer @file{*eww history*}. The history is lost when EWW is quit. If you want to remember websites you can use bookmarks. +@vindex eww-history-limit + Along with the URLs visited, EWW also remembers both the rendered +page (as it appears in the buffer) and its source. This can take a +considerable amount of memory, so EWW discards the history entries to +keep their number within a set limit, as specified by +@code{eww-history-limit}; the default being 50. This variable could +also be set to @code{nil} to allow for the history list to grow +indefinitely. + +@cindex PDF + PDFs are viewed inline, by default, with @code{doc-view-mode}, but +this can be customized by using the mailcap (@pxref{mailcap,,, +emacs-mime, Emacs MIME Manual}) +mechanism, in particular @code{mailcap-mime-data}. + @findex eww-add-bookmark @findex eww-list-bookmarks @kindex b @@ -131,6 +152,13 @@ You can view stored bookmarks with @kbd{B} (@code{eww-list-bookmarks}). This will open the bookmark buffer @file{*eww bookmarks*}. +@findex eww-list-buffers +@kindex S +@cindex Multiple Buffers + To get summary of currently opened EWW buffers, press @kbd{S} +(@code{eww-list-buffers}). The @file{*eww buffers*} buffer allows to +quickly kill, flip through and switch to specific EWW buffer. + @findex eww-browse-with-external-browser @vindex shr-external-browser @vindex eww-use-external-browser-for-content-type @@ -195,6 +223,49 @@ of the width and height. If Emacs supports image scaling (ImageMagick support required) then larger images are scaled down. You can block specific images completely by customizing @code{shr-blocked-images}. +@vindex shr-color-visible-distance-min +@vindex shr-color-visible-luminance-min +@cindex Contrast + EWW (or rather its HTML renderer @code{shr}) uses the colors declared +in the HTML page, but adjusts them if needed to keep a certain minimum +contrast. If that is still too low for you, you can customize the +variables @code{shr-color-visible-distance-min} and +@code{shr-color-visible-luminance-min} to get a better contrast. + +@cindex Desktop Support +@cindex Saving Sessions + In addition to maintaining the history at run-time, EWW will also +save the partial state of its buffers (the URIs and the titles of the +pages visited) in the desktop file if one is used. @xref{Saving Emacs +Sessions, , emacs, The GNU Emacs Manual}. + +@vindex eww-desktop-remove-duplicates + EWW history may sensibly contain multiple entries for the same page +URI. At run-time, these entries may still have different associated +point positions or the actual Web page contents. +The latter, however, tend to be overly large to preserve in the +desktop file, so they get omitted, thus rendering the respective +entries entirely equivalent. By default, such duplicate entries are +not saved. Setting @code{eww-desktop-remove-duplicates} to nil will +force EWW to save them anyway. + +@vindex eww-restore-desktop + Restoring EWW buffers' contents may prove to take too long to +finish. When the @code{eww-restore-desktop} variable is set to +@code{nil} (the default), EWW will not try to reload the last visited +Web page when the buffer is restored from the desktop file, thus +allowing for faster Emacs start-up times. When set to @code{t}, +restoring the buffers will also initiate the reloading of such pages. + +@vindex eww-restore-reload-prompt + The EWW buffer restored from the desktop file but not yet reloaded +will contain a prompt, as specified by the +@code{eww-restore-reload-prompt} variable. The value of this variable +will be passed through @code{substitute-command-keys} upon each use, +thus allowing for the use of the usual substitutions, such as +@code{\[eww-reload]} for the current key binding of the +@code{eww-reload} command. + @node History and Acknowledgments @appendix History and Acknowledgments @@ -220,6 +291,11 @@ developers started contributing to it as well. @node Variable Index @unnumbered Variable Index +@vindex eww-after-render-hook +After eww has rendered the data in the buffer, +@code{eww-after-render-hook} is called. It can be used to alter the +contents, for instance. + @printindex vr @node Lisp Function Index diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi index 0b2b063275d..adbdd689b44 100644 --- a/doc/misc/gnus-coding.texi +++ b/doc/misc/gnus-coding.texi @@ -313,17 +313,17 @@ If it's a file which is thought of as being outside of Gnus (e.g., the new @file{encrypt.el}), you should probably make the change in the Emacs tree, and it will show up in the Gnus tree a few days later. -If you don't have Emacs bzr access (or it's inconvenient), you can -change such a file in the v5-10 branch, and it should propagate to Emacs -bzr---however, it will get some extra scrutiny (by Miles) to see if the -changes are possibly controversial and need discussion on the mailing -list. Many changes are obvious bug-fixes however, so often there won't -be any problem. +If you don't have Emacs repository access (or it's inconvenient), you +can change such a file in the v5-10 branch, and it should propagate to +the Emacs repository---however, it will get some extra scrutiny (by +Miles) to see if the changes are possibly controversial and need +discussion on the mailing list. Many changes are obvious bug-fixes +however, so often there won't be any problem. @item If it's to a Gnus file, and it's important enough that it should be part of Emacs and the v5-10 branch, then you can make the change on the v5-10 -branch, and it will go into Emacs bzr and the Gnus git trunk (a few days +branch, and it will go into Emacs and the Gnus git trunk (a few days later). The most prominent examples for such changes are bug-fixed including improvements on the documentation. diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi index fd4f427431d..3e01fab7578 100644 --- a/doc/misc/gnus-faq.texi +++ b/doc/misc/gnus-faq.texi @@ -742,6 +742,7 @@ POP3 mail source. See @pxref{Mail Source Specifiers} for VALUE. * FAQ 4-14:: I don't like the way the Summary buffer looks, how to tweak it? * FAQ 4-15:: How to split incoming mails in several groups? +* FAQ 4-16:: How can I ensure more contrast when viewing HTML mail? @end menu @node FAQ 4-1 @@ -1185,6 +1186,21 @@ from using them): @end example @noindent +@node FAQ 4-16 +@subsubheading Question 4.16 + +How can I ensure more contrast when viewing HTML mail? + +@subsubheading Answer + +Gnus' built-in simple HTML renderer (you use it if the value of +@code{mm-text-html-renderer} is @code{shr}) uses the colors which are +declared in the HTML mail. However, it adjusts them in order to +prevent situations like dark gray text on black background. In case +the results still have a too low contrast for you, increase the values +of the variables @code{shr-color-visible-distance-min} and +@code{shr-color-visible-luminance-min}. + @node FAQ 5 - Composing messages @subsection Composing messages @@ -1633,7 +1649,7 @@ aren't they and how to fix it? @subsubheading Answer -The message-ID is an unique identifier for messages you +The message-ID is a unique identifier for messages you send. To make it unique, Gnus need to know which machine name to put after the "@@". If the name of the machine where Gnus is running isn't suitable (it probably isn't diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index a25d7c540f3..6e3dced25d4 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -618,6 +618,7 @@ Article Buffer * Hiding Headers:: Deciding what headers should be displayed. * Using MIME:: Pushing articles through @acronym{MIME} before reading them. +* HTML:: Reading @acronym{HTML} messages. * Customizing Articles:: Tailoring the look of the articles. * Article Keymap:: Keystrokes available in the article buffer. * Misc Article:: Other stuff. @@ -11761,20 +11762,30 @@ Also @pxref{MIME Commands}. @section @acronym{HTML} @cindex @acronym{HTML} -If you have @code{w3m} installed on your system, Gnus can display -@acronym{HTML} articles in the article buffer. There are many Gnus -add-ons for doing this, using various approaches, but there's one -(sort of) built-in method that's used by default. +Gnus can display @acronym{HTML} articles nicely formatted in the +article buffer. There are many methods for doing that, but two of +them are kind of default methods. -For a complete overview, consult @xref{Display Customization, -,Display Customization, emacs-mime, The Emacs MIME Manual}. This -section only describes the default method. +If your Emacs copy has been built with libxml2 support, then Gnus uses +Emacs' built-in, plain elisp Simple HTML Renderer @code{shr} +@footnote{@code{shr} displays colors as declared in the @acronym{HTML} +article but tries to adjust them in order to be readable. If you +prefer more contrast, @xref{FAQ 4-16}.} which is also used by Emacs' +browser EWW (@pxref{EWW, ,EWW, emacs, The Emacs Manual}). + +If your Emacs copy lacks libxml2 support but you have @code{w3m} +installed on your system, Gnus uses that to render @acronym{HTML} mail +and display the results in the article buffer (@code{gnus-w3m}). + +For a complete overview, consult @xref{Display Customization, ,Display +Customization, emacs-mime, The Emacs MIME Manual}. This section only +describes the default method. @table @code @item mm-text-html-renderer @vindex mm-text-html-renderer -If set to @code{gnus-article-html}, Gnus will use the built-in method, -that's based on @code{w3m}. +If set to @code{shr}, Gnus uses its own simple @acronym{HTML} +renderer. If set to @code{gnus-w3m}, it uses @code{w3m}. @item gnus-blocked-images @vindex gnus-blocked-images @@ -25942,17 +25953,34 @@ the word ``archive'' is not followed. @defvar gnus-registry-max-entries The number (an integer or @code{nil} for unlimited) of entries the -registry will keep. +registry will keep. If the registry has reached or exceeded this +size, it will reject insertion of new entries. @end defvar -@defvar gnus-registry-max-pruned-entries -The maximum number (an integer or @code{nil} for unlimited) of entries -the registry will keep after pruning. +@defvar gnus-registry-prune-factor +This option (a float between 0 and 1) controls how much the registry +is cut back during pruning. In order to prevent constant pruning, the +registry will be pruned back to less than +@code{gnus-registry-max-entries}. This option controls exactly how +much less: the target is calculated as the maximum number of entries +minus the maximum number times this factor. The default is 0.1: +i.e. if your registry is limited to 50000 entries, pruning will try to +cut back to 45000 entries. Entries with keys marked as precious will +not be pruned. +@end defvar + +@defvar gnus-registry-default-sort-function +This option specifies how registry entries are sorted during pruning. +If a function is given, it should sort least valuable entries first, +as pruning starts from the beginning of the list. The default value +is @code{gnus-registry-sort-by-creation-time}, which proposes the +oldest entries for pruning. Set to nil to perform no sorting, which +will speed up the pruning process. @end defvar @defvar gnus-registry-cache-file The file where the registry will be stored between Gnus sessions. By -default the file name is @code{.gnus.registry.eioio} in the same +default the file name is @code{.gnus.registry.eieio} in the same directory as your @code{.newsrc.eld}. @end defvar diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi index ec1236d531b..bef63c0a1dd 100644 --- a/doc/misc/newsticker.texi +++ b/doc/misc/newsticker.texi @@ -1,8 +1,8 @@ \input texinfo @c -*-texinfo-*- @comment %**start of header @setfilename ../../info/newsticker.info -@set VERSION 1.99 -@set UPDATED June 2008 +@include emacsver.texi +@set VERSION @value{EMACSVER} @settitle Newsticker @value{VERSION} @syncodeindex vr cp @syncodeindex fn cp @@ -11,7 +11,8 @@ @comment %**end of header @copying -This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). +This manual documents Newsticker, a feed reader for Emacs. It +corresponds to Emacs version @value{EMACSVER}. @noindent Copyright @copyright{} 2004--2014 Free Software Foundation, Inc. @@ -31,12 +32,11 @@ modify this GNU manual.'' @dircategory Emacs network features @direntry -* Newsticker: (newsticker). A Newsticker for Emacs. +* Newsticker: (newsticker). A feed reader for Emacs. @end direntry @titlepage -@title Newsticker---a Newsticker for Emacs -@subtitle for version @value{VERSION}, @value{UPDATED} +@title Newsticker---a feed reader for Emacs @author Ulf Jasper @author @email{ulf.jasper@@web.de} @author @uref{http://ulf.epplejasper.de/} @@ -56,136 +56,419 @@ modify this GNU manual.'' @end ifnottex @menu -* Overview:: General description of newsticker. -* Requirements:: Requirements for using newsticker. -* Installation:: Installing newsticker on your system. -* Usage:: Basic newsticker instructions. -* Configuration:: Customizable newsticker settings. -* Remarks:: Remarks about newsticker. +* Overview:: What is Newsticker? +* Installation:: Things to do before starting Newsticker the first time. +* Retrieving News:: How Newsticker fetches headlines. +* Headline Management:: How Newsticker stores headlines. +* Reading News:: How to read RSS and Atom feeds with Newsticker. +* Automatic Processing:: Automatically process news items. +* Configuration:: Customize Newsticker to your liking. +* Supported Formats:: RSS and Atom formats supported by Newsticker. + * GNU Free Documentation License:: The license for this documentation. -* Index:: Variable, function, and concept index. +* Index:: Variable, function, and concept index. @end menu @node Overview @chapter Overview -Newsticker provides a newsticker for Emacs. A newsticker is a thing -that asynchronously retrieves headlines from a list of news sites, -prepares these headlines for reading, and allows for loading the -corresponding articles in a web browser. +Newsticker provides a @b{Feed Reader} for Emacs. It retrieves +headlines from a list of news sites, processes them, and provides +frontends for reading and managing them. (Standard headline formats +are RSS and Atom which makes Newsticker an ``RSS Reader'', ``Atom +Reader'' or ``Feed Aggregator''.) +Headlines (or news items) consist of a title, (mostly) a description, +and a link to the full story. The description may be a brief summary +in plain text or a full HTML-formatted article. A headline may carry +enclosed data such as images, audio or video files, typically in the +case of so ``podcast feeds''. -Headlines consist of a title and (possibly) a small description. They -are contained in ``RSS'' (RDF Site Summary) or ``Atom'' files. Newsticker -works with the following RSS formats: - -@itemize -@item RSS 0.91 (see @uref{http://backend.userland.com/rss091} or -@uref{http://my.netscape.com/publish/formats/rss-spec-0.91.html}), -@item RSS 0.92 (see @uref{http://backend.userland.com/rss092}), -@item RSS 1.0 (see @uref{http://purl.org/rss/1.0/spec} -@item RSS 2.0 (see @uref{http://blogs.law.harvard.edu/tech/rss}), -@end itemize -@itemize -as well as the following Atom formats: -@item Atom 0.3 -@item Atom 1.0 (see -@uref{https://datatracker.ietf.org/doc/rfc4287/}). -@end itemize - -That makes Newsticker.el an ``Atom aggregator'', ``RSS reader'', ``Feed -aggregator'', or ``Feed reader''. - -Newsticker provides several commands for reading headlines, navigating -through them, marking them as read/unread, hiding old headlines etc. -Headlines can be displayed as plain text or as rendered HTML. - -Headlines can be displayed in the echo area, either scrolling like -messages in a stock-quote ticker, or just changing. - -Newsticker allows for automatic processing of headlines by providing -hooks and (sample) functions for automatically downloading images and -enclosed files (as delivered by, e.g., podcasts). - -@ignore -@ifhtml -Here are screen shots of the @uref{newsticker-1.7.png, version 1.7 -(current version)} and some older screen shots: -@uref{newsticker-1.6.png, version 1.6}, -@uref{newsticker-1.5.png, version 1.5}, -@uref{newsticker-1.4.png, version 1.4} -@uref{newsticker-1.3.png, version 1.3}, -@uref{newsticker-1.0.png, version 1.0}. -@end ifhtml -@end ignore - -@node Requirements -@chapter Requirements - -Newsticker can be used with -@uref{http://www.gnu.org/software/emacs/emacs.html, GNU Emacs} version -21.1 or later as well as @uref{http://www.xemacs.org, XEmacs}. It -requires an XML-parser (@file{xml.el}), which is part of GNU Emacs. If -you are using XEmacs you want to get the @file{net-utils} package -which contains @file{xml.el} for XEmacs. - -Newsticker retrieves headlines either via Emacs's built-in retrieval -functions, by an arbitrary external program that retrieves files via -http and prints them to stdout (like -@uref{http://www.gnu.org/software/wget/wget.html, wget}, or---on a -per feed basis---via an arbitrary Lisp command. - +Newsticker downloads headlines asynchronously at configurable times, +processes and stores them so that you can read them later. The list +of subscribed feeds, the headline processing, the presentation of the +headlines and almost all other aspects of Newsticker can be +customized to your liking. @node Installation @chapter Installation As Newsticker is part of GNU Emacs there is no need to perform any -installation steps in order to use Newsticker. +installation steps in order to use it. -However, if you are using imenu, which allows for navigating with the -help of a menu, you should add the following to your Emacs startup file -(@file{~/.emacs}). +Newsticker is highly customizable. All options have reasonable default +values, so that (in most cases) it is not necessary to customize +anything before you start Newsticker for the first time. + +@node Retrieving News +@chapter Retrieving News + +Newsticker downloads news periodically in the background. This is +triggered as soon as you start reading news (@ref{Reading News}). + +@findex newsticker-start +@findex newsticker-stop +Alternatively you may use the command @code{newsticker-start} +(@code{newsticker-stop}) in order to start (stop) the periodic +download of news without opening the reader. + +The following variables define which feeds are fetched and how this is +done. + +@table @code +@vindex newsticker-url-list-defaults +@item newsticker-url-list-defaults +You may select any number of feeds from this list of (sample) news feeds. + +@vindex newsticker-url-list +@item newsticker-url-list +All your personal news feeds are defined here. Each feed is +identified by its name and an URL. You may set the start-time and the +retrieval interval for each feed as well as the retrieval command +arguments in case that the default values do not fit a certain feed. + +@vindex newsticker-retrieval-method +@vindex newsticker-wget-name +@vindex newsticker-wget-arguments +@item newsticker-retrieval-method +By default Newsticker uses Emacs's built-in download capabilities for +fetching headlines. You may change this to use an external tool like +@code{wget}. In this case you need to set @code{newsticker-wget-name} +and possibly @code{newsticker-wget-arguments}. + +@vindex newsticker-retrieval-interval +@item newsticker-retrieval-interval +The number of seconds between headline retrievals. +@end table + +@node Headline Management +@chapter Headline Management + +@cindex Age +@cindex Status + +Newsticker assigns a status (or ``age'') to each headline which you +can modify manually. This makes it easy to distinguish new headlines +from old ones, to keep important headlines, to hide boring headlines +etc. An item is ``new'' when it has just arrived and has not been +read. You can mark it as ``old'' when you have read it or -- if you +want to keep it -- you can mark it as ``immortal''. You can do that +manually and you can define filters which do that automatically, see +below. When a headline has vanished from the feed it is automatically +marked as ``obsolete'' unless it has the status ``immortal''. +``Obsolete'' headlines get removed automatically after a certain time. + +@table @code +@cindex Filter +@vindex newsticker-auto-mark-filter-list +@item newsticker-auto-mark-filter-list +You may define any number of filters for automatically marking newly +arrived headlines as ``immortal'' or ``old''. A filter looks for a +regular expression in either the title or the description of a +headline and then, if the expression matches, marks the headline as +``immortal'' or as ``old''. This is done only once, when a headline +is fetched for the very first time. + +@vindex newsticker-keep-obsolete-items +@vindex newsticker-obsolete-item-max-age +@item newsticker-keep-obsolete-items +Obsolete headlines are removed immediately unless +@code{newsticker-keep-obsolete-items} is non-nil in which case they +are kept until @code{newsticker-obsolete-item-max-age} is reached. + +@vindex newsticker-automatically-mark-items-as-old +@item newsticker-automatically-mark-items-as-old +If this is set to `t' then a ``new'' item becomes ``old'' as soon as +it is retrieved a second time. + +@end table + +@node Reading News +@chapter Reading News + +@findex newsticker-show-news +Start Newsticker with the command @kbd{M-x newsticker-show-news}. This +will start the asynchronous news download and displays all available +headlines. + +@menu +* Frontends:: Select the way headlines are displayed. +* Navigation:: Move to the next unread headline etc. +* Marking:: Mark important headlines. +* More Actions:: Add new feeds etc.. +@end menu + +@node Frontends +@section Frontends +@cindex Frontends + +@vindex newsticker-frontend +Newsticker provides two different @i{views} for browsing, marking and +reading news. The variable @code{newsticker-frontend} determines the +actual headline reader. + +@subheading Treeview +@cindex Treeview + +In this view separate windows are used for displaying feeds, headlines +and their descriptions. The feeds are shown as a tree on the left +hand side, headlines of the currently selected feed are shown on the +upper right side, and the full contents of the currently selected +headline is shown on the lower right side. + +Feeds can be placed into groups, which themselves can be placed in +groups and so on. This results in the tree which is displayed on the +left. A node represents either a feed or a group of feeds holding a +subtree. The following commands allow for managing groups. + +@table @kbd +@item M-a +@kindex M-a +@findex newsticker-group-add-group +Add a new feed group. Name of the new group and of the parent group +must be entered. If The name of the parent group is the new group +becomes a top-level group. (@code{newsticker-group-add-group}) +@item M-m +@kindex M-m +@findex newsticker-group-move-feed +Moves a feed into a group. The name of the group must be +entered. (@code{newsticker-group-move-feed}) +@end table + +The position of groups and feeds within the tree can be changed with these +commands: + +@table @kbd +@item M-up +@itemx M-down +@kindex M-up +@kindex M-down +@findex newsticker-group-shift-feed-up +@findex newsticker-group-shift-feed-down +Shift the currently selected feed up and down within its group. +@item M-S-up +@itemx M-S-down +@kindex M-S-up +@kindex M-S-down +@findex newsticker-group-shift-group-up +@findex newsticker-group-shift-group-down +Shift the currently selected group up and down within its parent group. +@end table + +The group settings are saved to a file either automatically when +newsticker is being quit or manually when the following command is +executed. + +@table @kbd +@item s +@kindex s +@findex newsticker-treeview-save +Save treeview group settings. +@end table + +The Treeview is updated automatically as soon as new headlines have +arrived. + +The Treeview is used when the variable @code{newsticker-frontend} is +set to the value @code{newsticker-treeview}. (Alternatively it can be +started with the command @code{newsticker-treeview}.) + +@subheading Plainview +@cindex Plainview + +In this view all headlines of all feeds are displayed in a single +buffer (@file{*newsticker*}). The modeline in the @file{*newsticker*} +buffer informs you whenever new headlines have arrived. + +You may want to use imenu with Plainview, which allows for navigating +with the help of a menu. In this case add the following to your Emacs +startup file (@file{~/.emacs}). @lisp (add-hook 'newsticker-mode-hook 'imenu-add-menubar-index) @end lisp -That's it. +(Note that preparing the Plainview takes significantly more time than +starting the Treeview because all headlines are displayed in a single +buffer. When you have subscribed to a large amount of feeds you may +find that Newsticker's efforts of minimizing rendering times, caching +rendered items and so on you may find However, when you have +subscribed to a large amount of feeds you may want to give the +Treeview a try.) -@node Usage -@chapter Usage +The Plainview is used when the variable @code{newsticker-frontend} is +set to the value @code{newsticker-plainview}. (Alternatively it can be +started with the command @code{newsticker-plainview}.) -@findex newsticker-show-news -The command @code{newsticker-show-news} will display all available -headlines. It will also start the asynchronous download of headlines. +@subheading Ticker +@cindex Ticker -You can choose between two different frontends for reading headlines: -@itemize -@item Newsticker's @emph{treeview} uses separate windows for the -feeds (in tree form), a list of headlines for the current feed, and -the content of the current headline. Feeds can be placed into groups, -which themselves can be placed in groups and so on. -@item Newsticker's @emph{plainview} displays all headlines in a -single buffer, called @file{*newsticker*}. The modeline in the -@file{*newsticker*} buffer informs you whenever new headlines have -arrived. -@end itemize -In both views clicking mouse-button 2 or pressing @key{RET} on a -headline will call @code{browse-url} to load the corresponding news -story in your favorite web browser. +Additionally, headlines can be displayed in the echo area in the style of a +news ticker. @findex newsticker-start-ticker @findex newsticker-stop-ticker -The scrolling, or flashing of headlines in the echo area, can be +Headlines can be displayed in the echo area, either scrolling like +messages in a stock-quote ticker, or just changing. This can be started with the command @code{newsticker-start-ticker}. It can be stopped with @code{newsticker-stop-ticker}. -@findex newsticker-start -@findex newsticker-stop -If you just want to start the periodic download of headlines use the -command @code{newsticker-start}. Calling @code{newsticker-stop} will -stop the periodic download, but will call -@code{newsticker-stop-ticker} as well. + +@node Navigation +@section Navigation +@cindex Navigation + +Navigating through the list of feeds and headlines is rather +straightforward. You may do this either with the mouse or with the +keyboard. The following key bindings are provided in both, the +Treeview as well as the Plainview. + +@table @kbd +@item f +@findex newsticker-next-feed +@findex newsticker-treeview-next-feed +Move to next feed (@code{newsticker-next-feed}, +@code{newsticker-treeview-next-feed}). +@item F +@findex newsticker-previous-feed +@findex newsticker-treeview-prev-feed +Move to previous feed (@code{newsticker-previous-feed}, +@code{newsticker-treeview-prev-feed}). +@item n +@findex newsticker-next-item +@findex newsticker-treeview-next-item +Move to next item (@code{newsticker-next-item}, +@code{newsticker-treeview-next-item}). +@item N +@findex newsticker-next-new-item +@findex newsticker-treeview-next-new-item +Move to next new item (possibly in another feed) +(@code{newsticker-next-new-item}, +@code{newsticker-treeview-next-new-item}). +@item p +@findex newsticker-previous-item +@findex newsticker-treeview-prev-item +Move to previous item (@code{newsticker-previous-item}, +@code{newsticker-treeview-prev-item}). +@item P +@findex newsticker-previous-new-item +@findex newsticker-treeview-prev-new-item +Move to previous new item (possibly in another feed) +(@code{newsticker-previous-new-item}, +@code{newsticker-treeview-prev-new-item}). +@end table + +@subheading Treeview +@table @kbd +@item j +@findex newsticker-treeview-jump +Enter the name of a feed and jump to it +(@code{newsticker-treeview-jump}). +@end table + + +@node Marking +@section Marking +@cindex Marking + +The following key bindings are provided in both, the Treeview as well +as the Plainview. + +@table @kbd +@item o +@findex newsticker-mark-item-at-point-as-read +@findex newsticker-treeview-mark-item-old +Mark current item as old. +(@code{newsticker-mark-item-at-point-as-read}, +@code{newsticker-treeview-mark-item-old}). +@item i +@findex newsticker-mark-item-at-point-as-immortal +@findex newsticker-treeview-mark-item-immortal +Mark current item as immortal. Immortal items are kept forever. +(@code{newsticker-mark-item-at-point-as-immortal}, +@code{newsticker-treeview-mark-item-immortal}). +@end table + +@node More Actions +@section More Actions +@cindex More Actions + +@subheading View full article +@table @kbd +@cindex Get News +@item v +@itemx RET +@itemx +@findex newsticker-treeview-browse-url +Open the link to the full article (as contained in the current +headline) in your web browser @code{newsticker-treeview-browse-url}). +@end table + +@subheading Get News +@cindex Get News + +You can force immediate download of news with the following commands. + +@table @kbd +@item g +@findex newsticker-treeview-get-news +Get news for currently shown feed (@code{newsticker-treeview-get-news}). +@item G +@findex newsticker-get-all-news +Get news for all feeds (@code{newsticker-get-all-news}). +@end table + +@subheading Add More Feeds +@cindex Add More Feeds + +@table @kbd +@item a +@findex newsticker-add-url +The command @code{newsticker-add-url} prompts for an URL and a name of +a new feed. It then prepares a customization buffer where the details +of the new feed can be set. +@end table + + +@node Automatic Processing +@chapter Automatic Processing +@cindex Automatic Processing + +Apart from automatic marking of headlines (by means of filters) +Newsticker provides the possibility to fully process newly arrived +headlines. Instead of reading headlines yourself you can tell +Newsticker to do that for you. + +@vindex newsticker-new-item-functions +In order to do so write a function which takes three arguments + +@table @var +@item FEED +the name of the corresponding news feed, +@item TITLE +the title of the headline, +@item DESC +the decoded description of the headline. +@end table + +and add it to @code{newsticker-new-item-functions}. Each function +contained in this list is called once for each new headline. +Depending on the feed, the title and the description of a headline you +can + +@itemize +@item +automatically download images referenced in HTML-formatted +descriptions (for which a function already exists, see +@code{newsticker-download-images}), +@item +automatically save enclosed audio and video files (for which another +function exists as well, see @code{newsticker-download-images}), +@item +flash the screen while playing some sound, +@item +whatever you want. +@end itemize @node Configuration @chapter Configuration @@ -195,11 +478,8 @@ Emacs customization methods. Call the command @code{customize-group} and enter @samp{newsticker} for the customization group. -All Newsticker options have reasonable default values, so that in most -cases it is not necessary to customize settings before starting Newsticker -for the first time. - -The following list shows the available groups of newsticker options +@noindent +The following list shows the available groups of Newsticker options and some of the most important options. @itemize @@ -296,13 +576,35 @@ treeview reader. @end itemize +@noindent For the complete list of options please have a look at the customization buffers. -@node Remarks -@chapter Remarks +@node Supported Formats +@appendix Supported Formats +@cindex Supported Formats + +Newsticker works with the standard RSS and Atom formats listed below +(being lenient with feeds which break the specifications). + +@subheading RSS formats + +@itemize +@item RSS 0.91 (see @uref{http://backend.userland.com/rss091} or +@uref{http://my.netscape.com/publish/formats/rss-spec-0.91.html}) +@item RSS 0.92 (see @uref{http://backend.userland.com/rss092}) +@item RSS 1.0 (see @uref{http://purl.org/rss/1.0/spec}) +@item RSS 2.0 (see @uref{http://blogs.law.harvard.edu/tech/rss}) +@end itemize + +@subheading Atom formats + +@itemize +@item Atom 0.3 +@item Atom 1.0 (see +@uref{https://datatracker.ietf.org/doc/rfc4287/}) +@end itemize -Byte-compiling newsticker.el is recommended. @node GNU Free Documentation License @appendix GNU Free Documentation License @@ -310,7 +612,7 @@ Byte-compiling newsticker.el is recommended. @node Index @unnumbered Index - @printindex cp + @bye diff --git a/doc/misc/org.texi b/doc/misc/org.texi index 6466a001f0d..5851f3be93b 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -2,7 +2,8 @@ @c %**start of header @setfilename ../../info/org.info @settitle The Org Manual -@set VERSION 8.2.6 + +@set VERSION 8.2.9 @c Version and Contact Info @set MAINTAINERSITE @uref{http://orgmode.org,maintainers web page} @@ -584,8 +585,9 @@ Exporting * Markdown export:: Exporting to Markdown * OpenDocument Text export:: Exporting to OpenDocument Text * Org export:: Exporting to Org +* Texinfo export:: Exporting to Texinfo * iCalendar export:: Exporting to iCalendar -* Other built-in back-ends:: Exporting to @code{Texinfo} or a man page +* Other built-in back-ends:: Exporting to a man page * Export in foreign buffers:: Author tables and lists in Org syntax * Advanced configuration:: Fine-tuning the export output @@ -637,6 +639,16 @@ Advanced topics in ODT export * Customizing tables in ODT export:: How to define and use Table templates * Validating OpenDocument XML:: How to debug corrupt OpenDocument files +Texinfo export + +* Texinfo export commands:: How to invoke Texinfo export +* Document preamble:: File header, title and copyright page +* Headings and sectioning structure:: Building document structure +* Indices:: Creating indices +* Quoting Texinfo code:: Incorporating literal Texinfo code +* Texinfo specific attributes:: Controlling Texinfo output +* An example:: + Publishing * Configuration:: Defining projects @@ -2725,9 +2737,11 @@ Operations, , Logical Operations, calc, GNU Emacs Calc Manual}). For example @item if($1 < 20, teen, string("")) "teen" if age $1 is less than 20, else the Org table result field is set to empty with the empty string. -@item if("$1" == "nan" || "$2" == "nan", string(""), $1 + $2); E +@item if("$1" == "nan" || "$2" == "nan", string(""), $1 + $2); E f-1 Sum of the first two columns. When at least one of the input fields is empty -the Org table result field is set to empty. +the Org table result field is set to empty. @samp{E} is required to not +convert empty fields to 0. @samp{f-1} is an optional Calc format string +similar to @samp{%.1f} but leaves empty results empty. @item if(typeof(vmean($1..$7)) == 12, string(""), vmean($1..$7); E Mean value of a range unless there is any empty field. Every field in the range that is empty is replaced by @samp{nan} which lets @samp{vmean} result @@ -4410,7 +4424,7 @@ To record a timestamp without a note for TODO keywords configured with @noindent @vindex org-log-done -you not only define global TODO keywords and fast access keys, but also +You not only define global TODO keywords and fast access keys, but also request that a time is recorded when the entry is set to DONE@footnote{It is possible that Org mode will record two timestamps when you are using both @code{org-log-done} and state change logging. @@ -5933,7 +5947,7 @@ sep 15 @result{} @b{2006}-09-15 feb 15 @result{} @b{2007}-02-15 sep 12 9 @result{} 2009-09-12 12:45 @result{} @b{2006}-@b{06}-@b{13} 12:45 -22 sept 0:34 @result{} @b{2006}-09-22 0:34 +22 sept 0:34 @result{} @b{2006}-09-22 00:34 w4 @result{} ISO week for of the current year @b{2006} 2012 w4 fri @result{} Friday of ISO week 4 in 2012 2012-w04-5 @result{} Same as above @@ -8108,7 +8122,7 @@ brackets (like @samp{DEADLINE<="<2008-12-24 18:30>"}), both values are assumed to be date/time specifications in the standard Org way, and the comparison will be done accordingly. Special values that will be recognized are @code{""} for now (including time), and @code{""}, and -@code{""} for these days at 0:00 hours, i.e., without a time +@code{""} for these days at 00:00 hours, i.e., without a time specification. Also strings like @code{"<+5d>"} or @code{"<-2m>"} with units @code{d}, @code{w}, @code{m}, and @code{y} for day, week, month, and year, respectively, can be used. @@ -9951,11 +9965,10 @@ include your @file{.emacs} file, you could use: @end example @noindent -The optional second and third parameter are the markup (e.g., @samp{quote}, -@samp{example}, or @samp{src}), and, if the markup is @samp{src}, the -language for formatting the contents. The markup is optional; if it is not -given, the text will be assumed to be in Org mode format and will be -processed normally. +The optional second and third parameter are the markup (i.e., @samp{example} +or @samp{src}), and, if the markup is @samp{src}, the language for formatting +the contents. The markup is optional; if it is not given, the text will be +assumed to be in Org mode format and will be processed normally. Contents of the included file will belong to the same structure (headline, item) containing the @code{INCLUDE} keyword. In particular, headlines within @@ -10364,8 +10377,9 @@ in the iCalendar format. * Markdown export:: Exporting to Markdown * OpenDocument Text export:: Exporting to OpenDocument Text * Org export:: Exporting to Org +* Texinfo export:: Exporting to Texinfo * iCalendar export:: Exporting to iCalendar -* Other built-in back-ends:: Exporting to @code{Texinfo} or a man page +* Other built-in back-ends:: Exporting to a man page * Export in foreign buffers:: Author tables and lists in Org syntax * Advanced configuration:: Fine-tuning the export output @end menu @@ -10690,16 +10704,12 @@ Toggle inclusion of TODO keywords into exported text Toggle inclusion of tables (@code{org-export-with-tables}). @end table -@cindex property, EXPORT_FILE_NAME When exporting only a subtree, each of the previous keywords@footnote{With the exception of @samp{SETUPFILE}.} can be overridden locally by special node properties. These begin with @samp{EXPORT_}, followed by the name of the keyword they supplant. For example, @samp{DATE} and @samp{OPTIONS} keywords become, respectively, @samp{EXPORT_DATE} and @samp{EXPORT_OPTIONS} -properties. Subtree export also supports the self-explicit -@samp{EXPORT_FILE_NAME} property@footnote{There is no buffer-wide equivalent -for this property. The file name in this case is derived from the file -associated to the buffer, if possible, or asked to the user otherwise.}. +properties. @cindex #+BIND @vindex org-export-allow-bind-keywords @@ -10708,6 +10718,13 @@ can become buffer-local during export by using the BIND keyword. Its syntax is @samp{#+BIND: variable value}. This is particularly useful for in-buffer settings that cannot be changed using specific keywords. +@cindex property, EXPORT_FILE_NAME +The name of the output file to be generated is taken from the file associated +to the buffer, when possible, or asked to you otherwise. For subtree export, +you can also set @samp{EXPORT_FILE_NAME} property. In all cases, only the +base name of the file is retained, and a back-end specific extension is +added. + @node ASCII/Latin-1/UTF-8 export, Beamer export, Export settings, Exporting @section ASCII/Latin-1/UTF-8 export @cindex ASCII export @@ -12834,7 +12851,324 @@ Export to a temporary buffer. Do not create a file. Export to an Org file, then open it. @end table -@node iCalendar export, Other built-in back-ends, Org export, Exporting +@node Texinfo export, iCalendar export, Org export, Exporting +@section Texinfo export +@cindex Texinfo export + +@samp{texinfo} export back-end generates Texinfo code and can compile it into +an Info file. + +@menu +* Texinfo export commands:: How to invoke Texinfo export +* Document preamble:: File header, title and copyright page +* Headings and sectioning structure:: Building document structure +* Indices:: Creating indices +* Quoting Texinfo code:: Incorporating literal Texinfo code +* Texinfo specific attributes:: Controlling Texinfo output +* An example:: +@end menu + +@node Texinfo export commands, Document preamble, Texinfo export, Texinfo export +@subsection Texinfo export commands + +@vindex org-texinfo-info-process +@table @kbd +@orgcmd{C-c C-e i t,org-texinfo-export-to-texinfo} +Export as a Texinfo file. For an Org file, @file{myfile.org}, the resulting +file will be @file{myfile.texi}. The file will be overwritten without +warning. +@orgcmd{C-c C-e i i,org-texinfo-export-to-info} +Export to Texinfo and then process to an Info file@footnote{By setting +@code{org-texinfo-info-process}, it is possible to generate other formats, +including DocBook.}. +@end table + +@node Document preamble, Headings and sectioning structure, Texinfo export commands, Texinfo export +@subsection Document preamble + +When processing a document, @samp{texinfo} back-end generates a minimal file +header along with a title page, a copyright page, and a menu. You control +the latter through the structure of the document (@pxref{Headings and +sectioning structure}). Various keywords allow to tweak the other parts. It +is also possible to give directions to install the document in the @samp{Top} +node. + +@subsubheading File header + +@cindex #+TEXINFO_FILENAME +Upon creating the header of a Texinfo file, the back-end guesses a name for +the Info file to be compiled. This may not be a sensible choice, e.g., if +you want to produce the final document in a different directory. Specify an +alternate path with @code{#+TEXINFO_FILENAME} keyword to override the default +destination. + +@vindex org-texinfo-coding-system +@vindex org-texinfo-classes +@cindex #+TEXINFO_HEADER +@cindex #+TEXINFO_CLASS +Along with the output file name, the header contains information about the +language (@pxref{Export settings}) and current encoding used@footnote{See +@code{org-texinfo-coding-system} for more information.}. Insert +a @code{#+TEXINFO_HEADER} keyword for each additional command needed, e.g., +@@code@{@@synindex@}. + +If you happen to regularly install the same set of commands, it may be easier +to define your own class in @code{org-texinfo-classes}, which see. Set +@code{#+TEXINFO_CLASS} keyword accordingly in your document to activate it. + +@subsubheading Title and copyright page + +@cindex #+TEXINFO_PRINTED_TITLE +@cindex #+SUBTITLE +The default template includes a title page for hard copy output. The title +and author displayed on this page are extracted from, respectively, +@code{#+TITLE} and @code{#+AUTHOR} keywords (@pxref{Export settings}). It is +also possible to print a different, more specific, title with +@code{#+TEXINFO_PRINTED_TITLE} keyword, and add subtitles with +@code{#+SUBTITLE} keyword. Both expect raw Texinfo code in their value. + +@cindex #+SUBAUTHOR +Likewise, information brought by @code{#+AUTHOR} may not be enough. You can +include other authors with several @code{#+SUBAUTHOR} keywords. Values are +also expected to be written in Texinfo code. + +@example +#+AUTHOR: Jane Smith +#+SUBAUTHOR: John Doe +#+TEXINFO_PRINTED_TITLE: This Long Title@@inlinefmt@{tex,@@*@} Is Broken in @@TeX@{@} +@end example + +@cindex property, COPYING +Copying material is defined in a dedicated headline with a non-nil +@code{:COPYING:} property. The contents are inserted within +a @code{@@copying} command at the beginning of the document whereas the +heading itself does not appear in the structure of the document. + +Copyright information is printed on the back of the title page. + +@example +* Copying + :PROPERTIES: + :COPYING: t + :END: + + This is a short example of a complete Texinfo file, version 1.0. + + Copyright \copy 2014 Free Software Foundation, Inc. +@end example + +@subsubheading The Top node + +@cindex #+TEXINFO_DIR_CATEGORY +@cindex #+TEXINFO_DIR_TITLE +@cindex #+TEXINFO_DIR_DESC +You may ultimately want to install your new Info file to your system. You +can write an appropriate entry in the top level directory specifying its +category and title with, respectively, @code{#+TEXINFO_DIR_CATEGORY} and +@code{#+TEXINFO_DIR_TITLE}. Optionally, you can add a short description +using @code{#+TEXINFO_DIR_DESC}. The following example would write an entry +similar to Org's in the @samp{Top} node. + +@example +#+TEXINFO_DIR_CATEGORY: Emacs +#+TEXINFO_DIR_TITLE: Org Mode: (org) +#+TEXINFO_DIR_DESC: Outline-based notes management and organizer +@end example + +@node Headings and sectioning structure, Indices, Document preamble, Texinfo export +@subsection Headings and sectioning structure + +@vindex org-texinfo-classes +@vindex org-texinfo-default-class +@cindex #+TEXINFO_CLASS +@samp{texinfo} uses a pre-defined scheme, or class, to convert headlines into +Texinfo structuring commands. For example, a top level headline appears as +@code{@@chapter} if it should be numbered or as @code{@@unnumbered} +otherwise. If you need to use a different set of commands, e.g., to start +with @code{@@part} instead of @code{@@chapter}, install a new class in +@code{org-texinfo-classes}, then activate it with @code{#+TEXINFO_CLASS} +keyword. Export process defaults to @code{org-texinfo-default-class} when +there is no such keyword in the document. + +If a headline's level has no associated structuring command, or is below +a certain threshold @pxref{Export settings}, that headline becomes a list in +Texinfo output. + +@cindex property, APPENDIX +As an exception, a headline with a non-nil @code{:APPENDIX:} property becomes +an appendix, independently on its level and the class used. + +@cindex property, DESCRIPTION +Each regular sectioning structure creates a menu entry, named after the +heading. You can provide a different, e.g., shorter, title in +@code{:ALT_TITLE:} property (@pxref{Table of contents}). Optionally, you can +specify a description for the item in @code{:DESCRIPTION:} property. E.g., + +@example +* Controlling Screen Display + :PROPERTIES: + :ALT_TITLE: Display + :DESCRIPTION: Controlling Screen Display + :END: +@end example + +@node Indices, Quoting Texinfo code, Headings and sectioning structure, Texinfo export +@subsection Indices + +@cindex #+CINDEX +@cindex #+FINDEX +@cindex #+KINDEX +@cindex #+PINDEX +@cindex #+TINDEX +@cindex #+VINDEX +Index entries are created using dedicated keywords. @samp{texinfo} back-end +provides one for each predefined type: @code{#+CINDEX}, @code{#+FINDEX}, +@code{#+KINDEX}, @code{#+PINDEX}, @code{#+TINDEX} and @code{#+VINDEX}. For +custom indices, you can write raw Texinfo code (@pxref{Quoting Texinfo +code}). + +@example +#+CINDEX: Defining indexing entries +@end example + +@cindex property, INDEX +To generate an index, you need to set the @code{:INDEX:} property of +a headline to an appropriate abbreviation (e.g., @samp{cp} or @samp{vr}). +The headline is then exported as an unnumbered chapter or section command and +the index is inserted after its contents. + +@example +* Concept Index + :PROPERTIES: + :INDEX: cp + :END: +@end example + +@node Quoting Texinfo code, Texinfo specific attributes, Indices, Texinfo export +@subsection Quoting Texinfo code + +It is possible to insert raw Texinfo code using any of the following +constructs + +@cindex #+TEXINFO +@cindex #+BEGIN_TEXINFO +@example +Richard @@@@texinfo:@@sc@{@@@@Stallman@@@@texinfo:@}@@@@ commence' GNU. + +#+TEXINFO: @@need800 +This paragraph is preceded by... + +#+BEGIN_TEXINFO +@@auindex Johnson, Mark +@@auindex Lakoff, George +#+END_TEXINFO +@end example + +@node Texinfo specific attributes, An example, Quoting Texinfo code, Texinfo export +@subsection Texinfo specific attributes + +@cindex #+ATTR_TEXINFO +@samp{texinfo} back-end understands several attributes in plain lists and +tables. They must be specified using an @code{#+ATTR_TEXINFO} keyword, +written just above the list or table. + +@subsubheading Plain lists + +In Texinfo output, description lists appear as two-column tables, using the +default command @code{@@table}. You can use @code{@@ftable} or +@code{@@vtable}@footnote{For more information, @inforef{Two-column +Tables,,texinfo}.} instead with @code{:table-type} attribute. + +@vindex org-texinfo-def-table-markup +In any case, these constructs require a highlighting command for entries in +the list. You can provide one with @code{:indic} attribute. If you do not, +it defaults to the value stored in @code{org-texinfo-def-table-markup}, which +see. + +@example +#+ATTR_TEXINFO: :indic @@asis +- foo :: This is the text for /foo/, with no highlighting. +@end example + +@subsubheading Tables + +When exporting a table, column widths are deduced from the longest cell in +each column. You can also define them explicitly as fractions of the line +length, using @code{:columns} attribute. + +@example +#+ATTR_TEXINFO: :columns .5 .5 +| a cell | another cell | +@end example + +@node An example, , Texinfo specific attributes, Texinfo export +@subsection An example + +Here is a thorough example, taken from @inforef{GNU Sample Texts,,texinfo}. + +@smallexample +#+MACRO: version 2.0 +#+MACRO: updated last updated 4 March 2014 + +#+OPTIONS: ':t toc:t author:t email:t +#+TITLE: GNU Sample @{@{@{version@}@}@} +#+AUTHOR: A.U. Thor +#+EMAIL: bug-sample@@gnu.org +#+LANGUAGE: en + +#+TEXINFO_FILENAME: sample.info +#+TEXINFO_HEADER: @@syncodeindex pg cp + +#+TEXINFO_DIR_CATEGORY: Texinfo documentation system +#+TEXINFO_DIR_TITLE: sample: (sample) +#+TEXINFO_DIR_DESC: Invoking sample + +#+TEXINFO_PRINTED_TITLE: GNU Sample +#+SUBTITLE: for version 2.0, last updated 4 March 2014 + +* Copying + :PROPERTIES: + :COPYING: t + :END: + + This manual is for GNU Sample (version @{@{@{version@}@}@}, + @{@{@{updated@}@}@}), which is an example in the Texinfo documentation. + + Copyright @@@@texinfo:@@copyright@{@}@@@@ 2013 Free Software Foundation, + Inc. + + #+BEGIN_QUOTE + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.3 or any later version published by the Free Software + Foundation; with no Invariant Sections, with no Front-Cover Texts, + and with no Back-Cover Texts. A copy of the license is included in + the section entitled "GNU Free Documentation License". + #+END_QUOTE + +* Invoking sample + + #+PINDEX: sample + #+CINDEX: invoking @@command@{sample@} + + This is a sample manual. There is no sample program to invoke, but + if there were, you could see its basic usage and command line + options here. + +* GNU Free Documentation License + :PROPERTIES: + :APPENDIX: t + :END: + + #+TEXINFO: @@include fdl.texi + +* Index + :PROPERTIES: + :INDEX: cp + :END: +@end smallexample + +@node iCalendar export, Other built-in back-ends, Texinfo export, Exporting @section iCalendar export @cindex iCalendar export @@ -12912,12 +13246,11 @@ On top of the aforementioned back-ends, Org comes with other built-in ones: @itemize @item @file{ox-man.el}: export to a man page. -@item @file{ox-texinfo.el}: export to @code{Texinfo} format. @end itemize To activate these export back-end, customize @code{org-export-backends} or -load them directly with e.g., @code{(require 'ox-texinfo)}. This will add -new keys in the export dispatcher (@pxref{The Export Dispatcher}). +load them directly with e.g., @code{(require 'ox-man)}. This will add new +keys in the export dispatcher (@pxref{The Export Dispatcher}). See the comment section of these files for more information on how to use them. @@ -13334,7 +13667,6 @@ string of these options for details. @item @code{:headline-levels} @tab @code{org-export-headline-levels} @item @code{:language} @tab @code{org-export-default-language} @item @code{:preserve-breaks} @tab @code{org-export-preserve-breaks} -@item @code{:publishing-directory} @tab @code{org-export-publishing-directory} @item @code{:section-numbers} @tab @code{org-export-with-section-numbers} @item @code{:select-tags} @tab @code{org-export-select-tags} @item @code{:with-author} @tab @code{org-export-with-author} @@ -15473,10 +15805,10 @@ are active: @item @kbd{C-c C-c} @tab @code{org-babel-execute-src-block} @kindex C-c C-o @item @kbd{C-c C-o} @tab @code{org-babel-open-src-block-result} -@kindex C-up -@item @kbd{C-@key{up}} @tab @code{org-babel-load-in-session} +@kindex M-up +@item @kbd{M-@key{up}} @tab @code{org-babel-load-in-session} @kindex M-down -@item @kbd{M-@key{down}} @tab @code{org-babel-pop-to-session} +@item @kbd{M-@key{down}} @tab @code{org-babel-switch-to-session} @end multitable In an Org mode buffer, the following key bindings are active: @@ -17206,7 +17538,7 @@ The corresponding block writer function could look like this: (defun org-dblock-write:block-update-time (params) (let ((fmt (or (plist-get params :format) "%d. %m. %Y"))) (insert "Last block update at: " - (format-time-string fmt (current-time))))) + (format-time-string fmt)))) @end lisp If you want to make sure that all dynamic blocks are always up-to-date, @@ -18208,7 +18540,6 @@ org-customize @key{RET}} and then click yourself through the tree. @bye @c Local variables: -@c coding: utf-8 @c fill-column: 77 @c indent-tabs-mode: nil @c paragraph-start: "\\|^@[a-zA-Z]*[ \n]\\|^@x?org\\(key\\|cmd\\)\\|\f\\|[ ]*$" diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index 6312dadbce0..370d4505084 100644 --- a/doc/misc/texinfo.tex +++ b/doc/misc/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2014-05-20.16} +\def\texinfoversion{2014-12-03.16} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, @@ -96,7 +96,9 @@ \let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ +\let\ptexsp=\sp \let\ptexstar=\* +\let\ptexsup=\sup \let\ptext=\t \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode @@ -1010,24 +1012,15 @@ % paragraph. % \gdef\dosuppressfirstparagraphindent{% - \gdef\indent{% - \restorefirstparagraphindent - \indent - }% - \gdef\noindent{% - \restorefirstparagraphindent - \noindent - }% - \global\everypar = {% - \kern -\parindent - \restorefirstparagraphindent - }% + \gdef\indent {\restorefirstparagraphindent \indent}% + \gdef\noindent{\restorefirstparagraphindent \noindent}% + \global\everypar = {\kern -\parindent \restorefirstparagraphindent}% } - +% \gdef\restorefirstparagraphindent{% - \global \let \indent = \ptexindent - \global \let \noindent = \ptexnoindent - \global \everypar = {}% + \global\let\indent = \ptexindent + \global\let\noindent = \ptexnoindent + \global\everypar = {}% } @@ -2090,12 +2083,9 @@ \endgroup } - % In order for the font changes to affect most math symbols and letters, -% we have to define the \textfont of the standard families. Since -% texinfo doesn't allow for producing subscripts and superscripts except -% in the main text, we don't bother to reset \scriptfont and -% \scriptscriptfont (which would also require loading a lot more fonts). +% we have to define the \textfont of the standard families. We don't +% bother to reset \scriptfont and \scriptscriptfont; awaiting user need. % \def\resetmathfonts{% \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy @@ -2109,8 +2099,8 @@ % \tenSTYLE to set the current font. % % Each font-changing command also sets the names \lsize (one size lower) -% and \lllsize (three sizes lower). These relative commands are used in -% the LaTeX logo and acronyms. +% and \lllsize (three sizes lower). These relative commands are used +% in, e.g., the LaTeX logo and acronyms. % % This all needs generalizing, badly. % @@ -2851,6 +2841,8 @@ \let\v=\check \let\~=\tilde \let\dotaccent=\dot + % have to provide another name for sup operator + \let\mathopsup=\sup $\finishmath } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. @@ -2874,6 +2866,18 @@ } } +% for @sub and @sup, if in math mode, just do a normal sub/superscript. +% If in text, use math to place as sub/superscript, but switch +% into text mode, with smaller fonts. This is a different font than the +% one used for real math sub/superscripts (8pt vs. 7pt), but let's not +% fix it (significant additions to font machinery) until someone notices. +% +\def\sub{\ifmmode \expandafter\sb \else \expandafter\finishsub\fi} +\def\finishsub#1{$\sb{\hbox{\selectfonts\lllsize #1}}$}% +% +\def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi} +\def\finishsup#1{$\ptexsp{\hbox{\selectfonts\lllsize #1}}$}% + % ctrl is no longer a Texinfo command, but leave this definition for fun. \def\ctrl #1{{\tt \rawbackslash \hat}#1} @@ -5739,13 +5743,16 @@ % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. +% Not used for @heading series. % % To test against our argument. \def\Ynothingkeyword{Ynothing} -\def\Yomitfromtockeyword{Yomitfromtoc} \def\Yappendixkeyword{Yappendix} +\def\Yomitfromtockeyword{Yomitfromtoc} % \def\chapmacro#1#2#3{% + \checkenv{}% chapters, etc., should not start inside an environment. + % % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs @@ -5798,6 +5805,7 @@ % {% \chapfonts \rmisbold + \let\footnote=\errfootnoteheading % give better error message % % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called @@ -5891,22 +5899,29 @@ % Print any size, any type, section title. % -% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is -% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the -% section number. +% #1 is the text of the title, +% #2 is the section level (sec/subsec/subsubsec), +% #3 is the section type (Ynumbered, Ynothing, Yappendix, Yomitfromtoc), +% #4 is the section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% - \checkenv{}% should not be in an environment. + \def\sectionlevel{#2}% + \def\temptype{#3}% + % + % It is ok for the @heading series commands to appear inside an + % environment (it's been historically allowed, though the logic is + % dubious), but not the others. + \ifx\temptype\Yomitfromtockeyword\else + \checkenv{}% non-@*heading should not be in an environment. + \fi + \let\footnote=\errfootnoteheading % % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % - \def\sectionlevel{#2}% - \def\temptype{#3}% - % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\lastsectiondefs \ifx\temptype\Ynothingkeyword @@ -6333,6 +6348,7 @@ % other math active characters (just in case), to plain's definitions. \mathactive % + % Inverse of the list at the beginning of the file. \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc @@ -6348,7 +6364,9 @@ \let\+=\tabalign \let\}=\ptexrbrace \let\/=\ptexslash + \let\sp=\ptexsp \let\*=\ptexstar + %\let\sup=\ptexsup % do not redefine, we want @sup to work in math mode \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % we've made it outer \let\frenchspacing=\plainfrenchspacing @@ -7414,7 +7432,6 @@ % % \anythingelse will almost certainly be an error of some kind. - % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. @@ -7523,8 +7540,7 @@ % the catcode regime underwhich the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more -% arguments, you need that no macro has more than 256 arguments, otherwise an -% error is produced. +% arguments, no macro can have more than 256 arguments (else error). \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax @@ -8359,9 +8375,6 @@ % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% - \let\indent=\ptexindent - \let\noindent=\ptexnoindent - % \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % @@ -8388,7 +8401,7 @@ % % Nested footnotes are not supported in TeX, that would take a lot % more work. (\startsavinginserts does not suffice.) - \let\footnote=\errfootnote + \let\footnote=\errfootnotenest % % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. @@ -8427,12 +8440,17 @@ } }%end \catcode `\@=11 -\def\errfootnote{% +\def\errfootnotenest{% \errhelp=\EMsimple \errmessage{Nested footnotes not supported in texinfo.tex, even though they work in makeinfo; sorry} } +\def\errfootnoteheading{% + \errhelp=\EMsimple + \errmessage{Footnotes in chapters, sections, etc., are not supported} +} + % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. @@ -9279,6 +9297,18 @@ \UTFviiiLoop \endgroup +\def\globallet{\global\let} % save some \expandafter's below + +% @U{xxxx} to produce U+xxxx, if we support it. +\def\U#1{% + \expandafter\ifx\csname uni:#1\endcsname \relax + \errhelp = \EMsimple + \errmessage{Unicode character U+#1 not supported, sorry}% + \else + \csname uni:#1\endcsname + \fi +} + \begingroup \catcode`\"=12 \catcode`\<=12 @@ -9287,7 +9317,6 @@ \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 - \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% @@ -9302,6 +9331,8 @@ \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \gdef\UTFviiiTmp{#2}% + % define an additional control sequence for this code point. + \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp \endgroup} \gdef\parseXMLCharref{% diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 06b302b6d4d..62aa5c0e670 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -2062,6 +2062,32 @@ fi @end ifset @end ifinfo +@item @command{busybox} / @command{nc} +@cindex Unix command nc +@cindex nc Unix command + +The @command{nc} command will be used with the @option{nc} method. On +the remote host, a listener will be installed. Unfortunately, the +command line syntax for this has been changed with the different +@command{busybox} versions. @value{tramp} uses the following syntax +(see @code{tramp-methods}): + +@example +# nc -l -p 42 +@end example + +If your remote @command{nc} refuses to accept the @command{-p} +parameter, you could overwrite the syntax with the following form: + +@lisp +(add-to-list + 'tramp-connection-properties + `(,(regexp-quote "192.168.0.1") "remote-copy-args" (("-l") ("%r")))) +@end lisp + +@noindent +with @samp{192.168.0.1} being the IP address of your remote host +(@pxref{Predefined connection information}). @end table @@ -2685,6 +2711,21 @@ following code in your @file{.emacs}: (setq tramp-remote-process-environment process-environment)) @end lisp +When running @code{process-file} or @code{start-file-process} on a +remote @code{default-directory}, the default settings in +@code{process-environment} are not used as it is the case for local +processes. However, if you need environment variables other than set +in @code{tramp-remote-process-environment}, you can let-bind them to +@code{process-environment}. Only those variables will be set then: + +@lisp +(let ((process-environment (cons "HGPLAIN=1" process-environment))) + (process-file @dots{})) +@end lisp + +This works only for environment variables which are not set already in +@code{process-environment}. + If you use other @value{emacsname} packages which do not run out-of-the-box on a remote host, please let us know. We will try to integrate them as well. @xref{Bug Reports}. @@ -2802,7 +2843,7 @@ uid=0(root) gid=0(root) groups=0(root) @cindex gdb @cindex perldb -@file{gud.el} offers an unified interface to several symbolic +@file{gud.el} offers a unified interface to several symbolic debuggers @ifset emacs @ifinfo diff --git a/doc/misc/vhdl-mode.texi b/doc/misc/vhdl-mode.texi index 35c6e0b130e..39bdcac5139 100644 --- a/doc/misc/vhdl-mode.texi +++ b/doc/misc/vhdl-mode.texi @@ -212,7 +212,7 @@ indented relative to buffer position 20, which is the @samp{b} in the @cindex comment only line Syntactic component lists can contain more than one component, and -individual syntactic compenents need not have relative buffer positions. +individual syntactic components need not have relative buffer positions. The most common example of this is a line that contains a @dfn{comment only line}. @example @@ -416,7 +416,7 @@ to: @end group @end example -In other words, we want to change the indentation of the statments +In other words, we want to change the indentation of the statements inside the inverter process. Notice that the construct we want to change starts on line 3. To change the indentation of a line, we need to see which syntactic component affect the offset calculations for that @@ -630,7 +630,7 @@ using @code{vhdl-set-style}. @findex set-offset (vhdl-) Another variable, @code{vhdl-file-offsets}, takes an association list similar to what is allowed in @code{vhdl-offsets-alist}. When the file is -visited, VHDL Mode will automatically institute these offets using +visited, VHDL Mode will automatically institute these offsets using @code{vhdl-set-offset}. @xref{Customizing Indentation}. Note that file style settings (i.e. @code{vhdl-file-style}) are applied @@ -648,7 +648,7 @@ before file offset settings (i.e. @code{vhdl-file-offsets}). For most users, VHDL Mode will support their coding styles with very little need for customizations. Usually, one of the standard styles defined in @code{vhdl-style-alist} will do the trick. Sometimes, -one of the syntactic symbol offsets will need to be tweeked slightly, or +one of the syntactic symbol offsets will need to be tweaked slightly, or perhaps @code{vhdl-basic-offset} will need to be changed. However, some styles require a more advanced ability for customization, and one of the real strengths of VHDL Mode is that the syntactic analysis model diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi index 2b255eefcca..a6c6d3067ea 100644 --- a/doc/misc/vip.texi +++ b/doc/misc/vip.texi @@ -1561,7 +1561,7 @@ assigned to a function that just beeps (@code{vip-nil}). @end example VIP uses a special local keymap to interpret key strokes you enter in vi -mode. The following keys are bound to @var{nil} in the keymap. Therefore, +mode. The following keys are bound to @code{nil} in the keymap. Therefore, these keys are interpreted by the global keymap of Emacs. We give below a short description of the functions bound to these keys in the global keymap. See GNU Emacs Manual for details. diff --git a/etc/.gitignore b/etc/.gitignore deleted file mode 100644 index 8e12acbee0c..00000000000 --- a/etc/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -DOC -icons/ diff --git a/etc/CONTRIBUTE b/etc/CONTRIBUTE deleted file mode 100644 index d78692c40ff..00000000000 --- a/etc/CONTRIBUTE +++ /dev/null @@ -1,218 +0,0 @@ -Copyright (C) 2006-2014 Free Software Foundation, Inc. -See end for license conditions. - - - Contributing to Emacs - -Emacs is a collaborative project and we encourage contributions from -anyone and everyone. If you want to contribute in the way that will -help us most, we recommend (1) fixing reported bugs and (2) -implementing the feature ideas in etc/TODO. However, if you think of -new features to add, please suggest them too -- we might like your -idea. Porting to new platforms is also useful, when there is a new -platform, but that is not common nowadays. - -For documentation on how to develop Emacs changes, refer to the Emacs -Manual and the Emacs Lisp Reference Manual (both included in the Emacs -distribution). The web pages in http://www.gnu.org/software/emacs -contain additional information. - -You may also want to submit your change so that can be considered for -inclusion in a future version of Emacs (see below). - -If you don't feel up to hacking Emacs, there are many other ways to -help. You can answer questions on the mailing lists, write -documentation, find and report bugs, check if existing bug reports -are fixed in newer versions of Emacs, contribute to the Emacs web -pages, or develop a package that works with Emacs. - -Here are some style and legal conventions for contributors to Emacs: - - -* Coding Standards - -Contributed code should follow the GNU Coding Standards. - -If it doesn't, we'll need to find someone to fix the code before we -can use it. - -Emacs has certain additional style and coding conventions. - -Ref: http://www.gnu.org/prep/standards/ -Ref: GNU Coding Standards Info Manual -Ref: The "Tips" Appendix in the Emacs Lisp Reference. - - -* Copyright Assignment - -The FSF (Free Software Foundation) is the copyright holder for GNU Emacs. -The FSF is a nonprofit with a worldwide mission to promote computer -user freedom and to defend the rights of all free software users. -For general information, see the website http://www.fsf.org/ . - -Generally speaking, for non-trivial contributions to GNU Emacs we -require that the copyright be assigned to the FSF. For the reasons -behind this, see: http://www.gnu.org/licenses/why-assign.html . - -Copyright assignment is a simple process. Residents of some countries -can do it entirely electronically. We can help you get started, and -answer any questions you may have (or point you to the people with the -answers), at the emacs-devel@gnu.org mailing list. - -(Please note: general discussion about why some GNU projects ask -for a copyright assignment is off-topic for emacs-devel. -See gnu-misc-discuss instead.) - -A copyright disclaimer is also a possibility, but we prefer an assignment. -Note that the disclaimer, like an assignment, involves you sending -signed paperwork to the FSF (simply saying "this is in the public domain" -is not enough). Also, a disclaimer cannot be applied to future work, it -has to be repeated each time you want to send something new. - -We can accept small changes (roughly, fewer than 15 lines) without -an assignment. This is a cumulative limit (e.g. three separate 5 line -patches) over all your contributions. - -* Getting the Source Code - -The latest version of Emacs can be downloaded using Bazaar from the -Savannah web site. It is important to write your patch based on the -latest version. If you start from an older version, your patch may be -outdated (so that maintainers will have a hard time applying it), or -changes in Emacs may have made your patch unnecessary. - -After you have downloaded the repository source, you should read the file -INSTALL.REPO for build instructions (they differ to some extent from a -normal build). - -Ref: http://savannah.gnu.org/projects/emacs - - -* Submitting Patches - -Every patch must have several pieces of information before we -can properly evaluate it. - -When you have all these pieces, bundle them up in a mail message and -send it to the developers. Sending it to bug-gnu-emacs@gnu.org -(which is the bug/feature list) is recommended, because that list -is coupled to a tracking system that makes it easier to locate patches. -If your patch is not complete and you think it needs more discussion, -you might want to send it to emacs-devel@gnu.org instead. If you -revise your patch, send it as a followup to the initial topic. - -** Description - -For bug fixes, a description of the bug and how your patch fixes it. - -For new features, a description of the feature and your implementation. - -** ChangeLog - -A ChangeLog entry as plaintext (separate from the patch). - -See the existing ChangeLog files for format and content. Note that, -unlike some other projects, we do require ChangeLogs also for -documentation, i.e. Texinfo files. - -Ref: "Change Log Concepts" node of the GNU Coding Standards Info -Manual, for how to write good log entries. - -** The patch itself. - -If you are accessing the Bazaar repository, make sure your copy is -up-to-date (e.g. with `bzr pull'), then use - bzr diff --no-aliases --diff-options=-cp -Else, use - diff -cp OLD NEW - -** Mail format. - -We prefer to get the patches as plain text, either inline (be careful -your mail client does not change line breaks) or as MIME attachments. - -** Please reread your patch before submitting it. - -** Do not mix changes. - -If you send several unrelated changes together, we will ask you to -separate them so we can consider each of the changes by itself. - -** Do not make formatting changes. - -Making cosmetic formatting changes (indentation, etc) makes it harder -to see what you have really changed. - - -* Coding style and conventions. - -** Mandatory reading: - -The "Tips and Conventions" Appendix of the Emacs Lisp Reference. - -** Avoid using `defadvice' or `eval-after-load' for Lisp code to be -included in Emacs. - -** Remove all trailing whitespace in all source and text files. - -** Use ?\s instead of ? in Lisp code for a space character. - - -* Supplemental information for Emacs Developers. - -** Write access to the Emacs repository. - -Once you become a frequent contributor to Emacs, we can consider -giving you write access to the version-control repository. - - -** Emacs Mailing lists. - -Discussion about Emacs development takes place on emacs-devel@gnu.org. - -Bug reports and fixes, feature requests and implementations should be -sent to bug-gnu-emacs@gnu.org, the bug/feature list. This is coupled -to the tracker at http://debbugs.gnu.org . - -You can subscribe to the mailing lists, or see the list archives, -by following links from http://savannah.gnu.org/mail/?group=emacs . - -** Document your changes. - -Any change that matters to end-users should have a NEWS entry. - -Think about whether your change requires updating the documentation -(both manuals and doc-strings). If you know it does not, mark the NEWS -entry with "---". If you know that *all* the necessary documentation -updates have been made, mark the entry with "+++". Otherwise do not mark it. - -** Understanding Emacs Internals. - -The best way to understand Emacs Internals is to read the code, -but the nodes "Tips" and "GNU Emacs Internals" in the Appendix -of the Emacs Lisp Reference Manual may also help. - -The file etc/DEBUG describes how to debug Emacs bugs. - - - -This file is part of GNU Emacs. - -GNU Emacs 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 3 of the License, or -(at your option) any later version. - -GNU Emacs 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 GNU Emacs. If not, see . - -Local variables: -mode: outline -paragraph-separate: "[ ]*$" -end: - diff --git a/etc/ChangeLog b/etc/ChangeLog index fdaf1f0cabd..10ebff117da 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,239 @@ +2014-12-15 Artur Malabarba + + * NEWS: Mention `let-alist. + +2014-12-14 Alan Mackenzie + + * NEWS: Add entry for fast-but-imprecise-scrolling. + +2014-12-14 Cameron Desautels + + * NEWS: Mention `custom-prompt-customize-unsaved-options'. + + * TODO: Remove its entry. + +2014-12-13 Paul Eggert + + Convert Czech and Slovakian refcards to UTF-8 + * refcards/cs-dired-ref.tex, refcards/cs-refcard.tex: + * refcards/cs-survival.tex, refcards/sk-dired-ref.tex: + * refcards/sk-refcard.tex, refcards/sk-survival.tex: + Convert from iso-latin-2 to utf-8. Remove no-longer-necessary + coding comments and "\input utf8off" directives. + +2014-12-13 Lars Magne Ingebrigtsen + + * NEWS: Mention directory-name-p. + +2014-12-09 Lars Magne Ingebrigtsen + + * NEWS: Mention directory-files-recursively. + +2014-12-08 Lars Magne Ingebrigtsen + + * NEWS: Mention the new eww `S' command. + +2014-12-05 Stephen Leake + + * CONTRIBUTE: Move to ../. + +2014-12-05 Lars Magne Ingebrigtsen + + * NEWS: Add some doc markers to the eww stuff. + +2014-12-04 Eli Zaretskii + + * NEWS: Mention 'buffer-substring-with-bidi-context'. + +2014-12-02 Eli Zaretskii + + * NEWS: Mention 'bidi-find-overridden-directionality'. + +2014-11-29 Paul Eggert + + Lessen focus on ChangeLog files, as opposed to change log entries. + * CONTRIBUTE: Give advice about git commit messages and how + to generate proposed patches containing them. + +2014-11-27 Lars Magne Ingebrigtsen + + * NEWS: Mention dom.el. + +2014-11-24 Lars Magne Ingebrigtsen + + * NEWS: Mention NSM. + +2014-11-23 Lars Magne Ingebrigtsen + + * NEWS: Mention `url-request-noninteractive'. + +2014-11-19 Leo Liu + + * NEWS: Mention new macro define-advice. + +2014-11-17 Paul Eggert + + Improve time stamp handling, and be more consistent about it. + * NEWS: Document the changes. + +2014-11-14 Lars Magne Ingebrigtsen + + * NEWS: Mention the new `M-s M-s' keystroke. + +2014-11-13 Paul Eggert + + Fix minor Bazaar leftovers. + Reported by Perry E. Metzger in: + http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg00745.html + * CONTRIBUTE: More git transition. + +2014-11-11 Eric S. Raymond + + * CONTRIBUTE: git transition. + +2014-11-10 Lars Magne Ingebrigtsen + + * NEWS: Mention that you can have several eww buffers (bug#16211). + +2014-11-10 Glenn Morris + + * refcards/emacsver.tex.in: Rename from emacsver.tex. + +2014-11-09 Eric Ludlam + + * srecode/doc-cpp.srt (mode): Set to c mode so this works with + both C and C++. + +2014-11-05 Teodor Zlatanov + + * NEWS: Mention `url-user-agent'. (Bug#16498) + +2014-09-13 Christopher Schmidt + + * NEWS: Mention prefix argument of `quick-calc'. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-19 Jan Djärv + + * NEWS: Teroffs and detachable tool bar for Gtk+ is gone. + +2014-10-19 Ulf Jasper + + * images/newsticker/rss-feed.png: New. + + * images/newsticker/rss-feed.svg: New. + + * images/newsticker/README: Add rss-feed.png, rss-feed.svg. + +2014-10-18 Michal Nazarewicz + + * NEWS: Mention new whitespace-mode option: big-indent. + +2014-10-15 Lars Magne Ingebrigtsen + + * NEWS: Mention multipart/related. + +2014-10-15 Eli Zaretskii + + * NEWS: Mention the UBA implementation update. + + * HELLO: Remove now unneeded directional control characters. + +2014-10-13 Jan Djärv + + * NEWS: Move and clarify OSX >= 10.6. + +2014-10-12 Jan Djärv + + * NEWS: OSX required is 10.6 or newer. + +2014-10-09 Leo Liu + + * NEWS: Mention optional arg to terpri and new cl-lib functions. + +2014-10-05 Jan Djärv + + * NEWS: Mention ns-use-fullscreen-animation. + +2014-09-30 Bill Wohler + + Release MH-E version 8.6 + + * NEWS, MH-E-NEWS: Update for MH-E release 8.6. + +2014-09-30 Fabrice Niessen + + * themes/leuven-theme.el: Updates. + +2014-09-30 Stefan Monnier + + * package-keyring.gpg: New file. + +2014-09-30 Paul Eggert + + * TODO: Remove char/unsigned char, long long, IRIX unexelf.c. + The first two are done, and IRIX support has been dropped. + +2014-09-29 Eli Zaretskii + + * refcards/ru-refcard.tex: Bump version to 25.0.50. + + * refcards/emacsver.tex: Bump version to 25.0.50. + +2014-09-14 Daniel Colascione + + * NEWS: Mention changes to `insert-register' + +2014-09-13 Christopher Schmidt + + * NEWS: Mention nil `calendar-mode-line-format' will not modify + the mode line of the calendar buffer. (Bug#18467) + +2014-09-06 Leo Liu + + * NEWS: Mention vector qpattern for pcase. (Bug#18327). + +2014-09-01 Eli Zaretskii + + * NEWS: Mention that ls-lisp uses string-collate-lessp. + +2014-09-01 Paul Eggert + + --enable-silent-rules now suppresses more chatter. + * NEWS: Document this. + +2014-08-29 Leo Liu + + * NEWS: Mention (:append FUN) to minibuffer-with-setup-hook. + +2014-08-29 Eli Zaretskii + + * NEWS: Mention w32-collate-ignore-punctuation. + +2014-08-29 Dmitry Antipov + + * NEWS: Mention that `sort' can handle vectors. + +2014-08-28 Glenn Morris + + * emacs.appdata.xml: New file; description from Emacs's homepage. + +2014-08-25 Eli Zaretskii + + * NEWS: Mention that string-collate-* functions are supported on + MS-Windows as well. + +2014-08-08 Jan Nieuwenhuizen + + * compilation.txt (file): Add Guile backtrace example. + +2014-08-09 Reuben Thomas + + * PROBLEMS: Remove msdos/is_exec.c and sigaction.c. + 2014-07-21 Dmitry Antipov * TODO: remove frame height remark. @@ -3753,7 +3989,7 @@ * orgcard.tex (section{Motion}): Add the item navigation commands. (section{Publishing}): New section. - (section{Links}): Documented elisp and shell links. + (section{Links}): Document elisp and shell links. 2006-05-20 Rodrigo Real diff --git a/etc/DEBUG b/etc/DEBUG index 096bdbc48c9..89e1a85088c 100644 --- a/etc/DEBUG +++ b/etc/DEBUG @@ -398,9 +398,13 @@ to start debugging. Don't assume Emacs is `hung'--it may instead be in an infinite loop. To find out which, make the problem happen under GDB and stop Emacs once it is not responding. (If Emacs is using X Windows directly, you -can stop Emacs by typing C-z at the GDB job.) Then try stepping with -`step'. If Emacs is hung, the `step' command won't return. If it is -looping, `step' will return. +can stop Emacs by typing C-z at the GDB job. On MS-Windows, run Emacs +as usual, and then attach GDB to it -- that will usually interrupt +whatever Emacs is doing and let you perform the steps described +below.) + +Then try stepping with `step'. If Emacs is hung, the `step' command +won't return. If it is looping, `step' will return. If this shows Emacs is hung in a system call, stop it again and examine the arguments of the call. If you report the bug, it is very @@ -420,10 +424,11 @@ stepping, you will see where the loop starts and ends. Also, examine the data being used in the loop and try to determine why the loop does not exit when it should. -You can also trying sending Emacs SIGUSR2, which, if `debug-on-event' -has its default value, will cause Emacs to attempt to break it out of -its current loop and into the Lisp debugger. This feature is useful -when a C-level debugger is not conveniently available. +On GNU and Unix systems, you can also trying sending Emacs SIGUSR2, +which, if `debug-on-event' has its default value, will cause Emacs to +attempt to break it out of its current loop and into the Lisp +debugger. This feature is useful when a C-level debugger is not +conveniently available. ** If certain operations in Emacs are slower than they used to be, here is some advice for how to find out why. diff --git a/etc/HELLO b/etc/HELLO index a5a9cd3a7ad..e7ecb345ffc 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -18,7 +18,7 @@ Non-ASCII examples: LANGUAGE (NATIVE NAME) HELLO ---------------------- ----- Amharic ($,1O M[MmN{(B) $,1M`MKM](B -Arabic $,1ro(B($,1-g.$-y-q-h.*.1-i(B) $,1-g.$-s.1.$-g.%(B $,1-y.$.*.#.%(B +Arabic ($,1-g.$-y-q-h.*.1-i(B) $,1-g.$-s.1.$-g.%(B $,1-y.$.*.#.%(B Bengali ($,17,7>6b727>(B) $,17(7.787M6u7>70(B Braille $,2(3(1('('(5(B Burmese ($,1H9H\H4HZH9HL(B) $,1H9H$HZHYH"H and keys to move point in the multi-line +minibuffer just as in an ordinary buffer. Only when point moves over +the bottom/top of the minibuffer it goes to the next/previous history +element. The new commands bound to and in the minibuffer: +`next-line-or-history-element' and `previous-line-or-history-element'. + +** Search and Replace + +*** Query-replace history is enhanced. +When query-replace reads the FROM string from the minibuffer, typing +`M-p' will now show previous replacements as "FROM SEP TO", where FROM +and TO are the original text and its replacement, and SEP is an arrow +string defined by the new variable `query-replace-from-to-separator'. +To select a prior replacement, type `M-p' until the desired +replacement appears in the minibuffer, and then exit the minibuffer by +typing RET. + +** Calc ++++ +*** If `quick-calc' is called with a prefix argument, insert the +result of the calculation into the current buffer. + +** ElDoc +*** New minor mode global-eldoc-mode +*** eldoc-documentation-function now defaults to nil + +** eww + ++++ +*** A new command `R' (`eww-readable') will try do identify the main +textual parts of a web page and display only that, leaving menus and +the like off the page. + +--- +*** You can now use several eww buffers in parallel by renaming eww +buffers you want to keep separate. + ++++ +*** Partial state of the eww buffers (the URIs and the titles of the +pages visited) is now preserved in the desktop file. + ++++ +*** `eww-after-render-hook' is now called after eww has rendered +the data in the buffer. + +--- +*** The `eww-reload' command now takes a prefix to not reload via +the net, but just use the local copy of the HTML. + ++++ +*** The DOM shr and eww uses has been changed to the general Emacs +xml.el/libxml2 DOM, and a new package dom.el has been added to +interact with this DOM. See the Emacs Lisp manual for interface +details. + ++++ +*** `mailcap-mime-data' is now consulted when displaying PDF files. + ++++ +*** The new `S' command will list all eww buffers, and allow managing +them. + +--- +*** https pages with valid certificates have headers marked in green, while +invalid certificates are marked in red. + +** Message mode + +*** text/html messages that contain inline image parts will be +transformed into multipart/related messages before sending. + +** pcase +*** New UPatterns `quote' and `app'. +*** New UPatterns can be defined with `pcase-defmacro'. ++++ +*** New vector QPattern. ** Lisp mode *** Strings after `:documentation' are highlighted as docstrings. @@ -90,6 +282,18 @@ performance improvements when pasting large amounts of text. ** New font-lock functions font-lock-ensure and font-lock-flush, which should be used instead of font-lock-fontify-buffer when called from Elisp. +** Macro `minibuffer-with-setup-hook' takes (:append FUN) to mean +appending FUN to `minibuffer-setup-hook'. + +** cl-lib +*** New functions cl-fresh-line, cl-digit-char-p and cl-parse-integer. + +** seq +*** New seq library: +The seq library adds sequence manipulation functions and macros that +complement basic functions provided by subr.el. All functions are +prefixed with `seq-' and work on lists, strings and vectors. + ** Calendar and diary +++ @@ -98,34 +302,101 @@ should be used instead of font-lock-fontify-buffer when called from Elisp. `diary-chinese-insert-monthly-entry', `diary-chinese-insert-yearly-entry'. +++ -*** Calendar can list and mark diary entries with Chinese dates. +*** The calendar can now list and mark diary entries with Chinese dates. See `diary-chinese-list-entries' and `diary-chinese-mark-entries'. +--- +*** The option `calendar-mode-line-format' can now be nil, +which means to do nothing special with the mode line in calendars. + +--- +*** Many items obsolete since at least version 23.1 have been removed. +The majority were function/variable/face aliases, too numerous to list here. +The remainder were: + +**** Functions `calendar-one-frame-setup', `calendar-only-one-frame-setup', +`calendar-two-frame-setup', `european-calendar', `american-calendar'. + +**** Hooks `cal-menu-load-hook', `cal-x-load-hook'. + +**** Macro `calendar-for-loop'. + +**** Variables `european-calendar-style', `diary-face', `hebrew-holidays-{1,4}'. + +**** The nil and list forms of `diary-display-function'. + ** New ERT function `ert-summarize-tests-batch-and-exit'. +--- +** `Info-fontify-maximum-menu-size' can be t for no limit. + +--- +** ntlm.el has support for NTLM2. + --- ** The Rmail commands d, C-d and u now handle repeat counts to delete or undelete multiple messages. +** Rmail can now render HTML mail messages if your Emacs was built with +libxml2 or if you have the Lynx browser installed. By default, Rmail +will display the HTML version of a mail message that has both HTML and +plain text parts, if display of HTML email is possible; customize the +`rmail-mime-prefer-html' option to `nil' if you don't want that. + ** SES now supports local printer functions; see `ses-define-local-printer'. ** In sh-mode, you can now use `sh-shell' as a file-local variable to specify the type of shell in use (bash, csh, etc). -** The URL package accepts now the protocols "ssh", "scp" and "rsync". +** TLS +--- +*** Fatal TLS errors are now silent by default. + +** URL + +*** The URL package accepts now the protocols "ssh", "scp" and "rsync". When `url-handler-mode' is enabled, file operations for these protocols as well as for "telnet" and "ftp" are passed to Tramp. +*** The URL package allows customizing the `url-user-agent' string. +The new `url-user-agent' variable can be customized to be a string or +a function. + +*** The new interface variable `url-request-noninteractive' can be used +to specify that we're running in a noninteractive context, and that +we should not be queried about things like TLS certificate validity. + +*** If URL is used with a https connection, the first callback argument +plist will contain a :peer element that has the output of +`gnutls-peer-status' (if Emacs is built with GnuTLS support). + ** Tramp *** New connection method "nc", which allows to access dumb busyboxes. +** SQL mode + +*** New user variable `sql-default-directory' enables remote +connections using Tramp. + +*** New command `sql-send-line-and-next' sends the current line to the +interactive buffer and advances to the next line, skipping whitespace +and comments. + +*** Add support for Vertica SQL. + ** VC and related modes +*** The new command vc-region-history shows the log+diff of the active region. + *** New option `vc-annotate-background-mode' controls whether the color range from `vc-annotate-color-map' is applied to the background or to the foreground. +*** compare-windows now compares text with the most recently used window +instead of the next window. The new option `compare-windows-get-window-function' +allows to customize this. + ** Calculator: decimal display mode uses "," groups, so it's more fitting for use in money calculations; factorial works with non-integer inputs. @@ -140,24 +411,41 @@ reinclusion protected header files from being fully hidden. *** New custom variable `hide-ifdef-exclude-define-regexp' to define symbol name patterns (e.x. all "FOR_DOXYGEN_ONLY_*") to be excluded. +** TeX mode + +*** New custom variable `tex-print-file-extension' to help users who +use PDF instead of DVI. + +** whitespace-mode: new 'big-indent style highlighting too much indentation. +By default, 32 spaces and four TABs are considered to be too much but +`whitespace-big-indent-regexp' can be configured to change that. + +** tildify: `tildify-space-string', `tildify-pattern', and +`tildify-foreach-region-function' variables added making +`tildify-string-alist', `tildify-pattern-alist', and +`tildify-ignored-environments-alist' variables (as well as a few +helper functions) obsolete. + ** Obsolete packages --- *** gulp.el ---- -*** crisp.el, tpu-edt.el, ws-mode.el -These emulations of old editors are believed to be no longer relevant - - contact emacs-devel@gnu.org if you disagree. + +* New Modes and Packages in Emacs 25.1 ---- -*** vi.el, vip.el (try M-x viper instead) +** scss-mode (a minor variant of css-mode) + +** let-alist is a new macro (and a package) that allows one to easily +let-bind the values stored in an alist. -* New Modes and Packages in Emacs 24.5 +* Incompatible Lisp Changes in Emacs 25.1 - -* Incompatible Lisp Changes in Emacs 24.5 +** completion-table-dynamic stays in the minibuffer. +If you want the old behavior of calling the function in the buffer +from which the minibuffer was entered, call it with the new argument +`switch-buffer'. ** window-configurations no longer record the buffers's marks. @@ -173,9 +461,26 @@ active region handling. any reference to a buffer position. The 6th member of the mouse position list returned for such events is now nil. +** Menu items in keymaps do not support the "key shortcut cache" any more. +These slots used to hold key-shortcut data, but have been obsolete since +Emacs-21. -* Lisp Changes in Emacs 24.5 +* Lisp Changes in Emacs 25.1 + +** define-inline provides a new way to define inlinable functions. + +** New function macroexpand-1 to perform a single step of macroexpansion. + +** Some "x-*" were obsoleted: +*** x-select-text is renamed gui-select-text. +*** x-selection-value is renamed gui-selection-value. +*** x-get-selection is renamed gui-get-selection. +*** x-get-clipboard and x-clipboard-yank are marked obsolete. +*** x-get-selection-value is renamed to gui-get-primary-selection. +*** x-set-selection is renamed to gui-set-selection + +** New function `alist-get', which is also a valid place (aka lvalue). ** New function `funcall-interactively', which works like `funcall' but makes `called-interactively-p' treat the function as (you guessed it) @@ -199,6 +504,8 @@ permissions set to temporary values (e.g., for creating private files). ** Functions `rmail-delete-forward' and `rmail-delete-backward' take an optional repeat-count argument. +** Function `sort' can deal with vectors. + --- ** New utilities in subr-x.el: *** New macros `if-let' and `when-let' allow defining bindings and to @@ -206,3791 +513,89 @@ optional repeat-count argument. *** New macros `thread-first' and `thread-last' allow threading a form as the first or last argument of subsequent forms. ++++ +** Time-related changes: + +*** Time-related functions now consistently accept numbers +(representing seconds since the epoch) and nil (representing the +current time) as well as the usual list-of-integer representation. +Affected functions include `current-time-string', `current-time-zone', +`decode-time', `float-time', `format-time-string', `seconds-to-time', +`time-add', `time-less-p', `time-subtract', `time-to-day-in-year', +`time-to-days', and `time-to-seconds'. + +*** The `encode-time-value' and `with-decoded-time-value' macros have +been obsoleted. + +*** `calendar-next-time-zone-transition', `time-add', and +`time-subtract' no longer return time values in the obsolete and +undocumented integer-pair format. Instead, they return a list of two +integers. + -* Changes in Emacs 24.5 on Non-Free Operating Systems +* Changes in Frames and Windows Code in Emacs 25.1 + ++++ +** Emacs can now draw horizontal scroll bars on some platforms that +provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows. +Horizontal scroll bars are turned off by default. +*** New function `horizontal-scroll-bars-available-p' telling whether + horizontal scroll bars are available on the underlying system. +*** New mode `horizontal-scroll-bar-mode' to toggle horizontal scroll + bars on all existing and future frames. +*** New function `toggle-horizontal-scroll-bar' to toggle horizontal + scroll bars on the selected frame. +*** New frame parameters `horizontal-scroll-bars' and + `scroll-bar-height' to set horizontal scroll bars and their height + for individual frames and in `default-frame-alist'. +*** New functions `frame-scroll-bar-height' and + `window-scroll-bar-height' return the height of horizontal scroll + bars on a specific frame or window. +*** `set-window-scroll-bars' now accepts five parameters where the last + two specify height and type of the window's horizontal scroll bar. +*** `window-scroll-bars' now returns type and sizes of horizontal scroll + bars too. +*** New buffer-local variables `horizontal-scroll-bar' and + `scroll-bar-height'. + ++++ +** The height of a frame's menu and tool bar are no more counted in the +frame's text height. This means that the text height stands only for +the height of the frame's root window plus that of the echo area (if +present). This was already the behavior for frames with external tool +and menu bars (like in the Gtk builds) but has now been extended to all +builds. + ++++ +** Frames now do not necessarily preserve the number of columns or lines +they display when setting default font, menu bar, fringe width, or +scroll bars. In particular, maximized and fullscreen frames are +conceptually never resized if such settings change. For fullheight and +fullwidth frames, the behavior may depend on the toolkit used. +*** New option `frame-inhibit-implied-resize' if non-nil, means that + setting default font, menu bar, fringe width, or scroll bars of a + specific frame does not resize that frame in order to preserve the + number of columns or lines it displays. + ++++ +** New function `window-preserve-size' allows to preserve the size of +windows without "fixing" it. It's supported by `fit-window-to-buffer', +`temp-buffer-resize-mode' and `display-buffer'. + +** Tearoff menus and detachable toolbars for Gtk+ has been removed. +Those features have been deprecated in Gtk+ for a long time. + + +* Changes in Emacs 25.1 on Non-Free Operating Systems --- ** Building Emacs for MS-Windows requires at least Windows XP or Windows Server 2003. The built binaries still run on all versions of Windows starting with Windows 9X. - -* Installation Changes in Emacs 24.4 +** OS X 10.5 or older is no longer supported. -** Emacs can now be compiled with ACL (access control list) support. -This happens by default if a suitable support library is found at -build time, like libacl on GNU/Linux. To prevent this, use the -configure option `--disable-acl'. See below for the features this provides. - -** Emacs can now be compiled with file notification support. -This happens by default if a suitable system library is found at -build time. To prevent this, use the configure option -`--without-file-notification'. See below for file-notify features. -This feature is not available for the Nextstep port. - -** Emacs can now be compiled with zlib support. -This happens by default if zlib is present, which it normally is. -To prevent this, use the configure option `--without-zlib'. -This provides the function `zlib-decompress-region'; see below for details. - -** The configure option `--without-compress-info' has been generalized, -and renamed to `--without-compress-install'. It now prevents compression -of _any_ files during installation. - -** The configure option `--with-crt-dir' has been removed. -It is no longer needed, as the crt*.o files are no longer linked specially. - -** Directories passed to configure option `--enable-locallisppath' are -no longer created during installation. - -** Emacs for Nextstep (Mac OS X, GNUstep) can be built with ImageMagick support. -This requires pkg-config to be available at build time. - - -* Startup Changes in Emacs 24.4 - -** When initializing `load-path', an empty element in the EMACSLOADPATH -environment variable (either leading, e.g., ":/foo"; trailing, e.g., -"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default -load-path (the one that would have been used if EMACSLOADPATH was unset). -This makes it easier to _extend_ the load-path via EMACSLOADPATH -(previously, EMACSLOADPATH had to specify the complete load-path, -including the defaults). (In older versions of Emacs, an empty element -was replaced by ".", so use an explicit "." now if that is what you want.) - -** The -L option, which normally prepends its argument to load-path, -will instead append, if the argument begins with `:' (or `;' on MS Windows; -i.e., `path-separator'). - -** If you use either site-load.el or site-init.el to customize the dumped -Emacs executable, any changes to `load-path' that these files make -will no longer be present after dumping. To affect a permanent change -to `load-path', use the `--enable-locallisppath' option of `configure'. - -** The user option `initial-buffer-choice' can now specify a function -to set up the initial buffer. - - -* Changes in Emacs 24.4 - -** Support for ACLs (access control lists). -This requires a suitable support library to be found at build time. -On GNU/Linux, the POSIX ACL interface is used via libacl. -On MS-Windows, the NT Security APIs are used to emulate the POSIX interface. -ACLs are extended file attributes, used e.g. for finer-grained permissions. - -*** Emacs preserves the ACL entries of files when backing up. - -*** New functions `file-acl' and `set-file-acl' get and set file ACLs. - -** Support for menus on text-mode terminals. -If the terminal supports a mouse, clicking on the menu bar, or on -sensitive portions of the mode line or header line, will drop down the -menu defined at that position. Likewise, clicking C-mouse-1, C-mouse-2, or -C-mouse-3 on the text area will pop up the menus defined for those locations. - -If the text terminal does not support a mouse, you can activate the -first menu-bar menu by typing F10, which invokes `menu-bar-open'. - -If you want the previous behavior, where F10 invoked `tmm-menubar', -customize the option `tty-menu-open-use-tmm' to a non-nil value. -(Typing M-` always invokes `tmm-menubar', even if `tty-menu-open-use-tmm' -is nil.) - -** New option `load-prefer-newer' affects how the `load' function chooses -the file to load. If this is non-nil, then when both .el and .elc -versions of a file exist, and the caller did not explicitly specify -which one to load, then the newer file is loaded. The default, nil, -means to always load the .elc file. - -** Multi-monitor support - -*** New functions `display-monitor-attributes-list' and -`frame-monitor-attributes' can be used to obtain information about -each physical monitor on multi-monitor setups. - -*** The functions `display-pixel-width' and `display-pixel-height' now -behave consistently among the platforms: they return the pixel width -or height for all physical monitors associated with the given display -as if they were on X. To get information for each physical -monitor, use the new functions above. Similar notes also apply to -`x-display-pixel-width', `x-display-pixel-height', `display-mm-width', -`display-mm-height', `x-display-mm-width', and `x-display-mm-height'. - -** New function `zlib-decompress-region', which decompresses gzip- and -zlib-format compressed data using built-in zlib support (if available). - -** The *Messages* buffer is created in `messages-buffer-mode', -a new major mode, with read-only status. Any code that might create -the *Messages* buffer should call the function `messages-buffer' to do -so and set up the mode. - -** The cursor stops blinking after 10 blinks (by default) on X and Nextstep. -You can change the default by customizing `blink-cursor-blinks'. - -** In keymaps where SPC scrolls forward, S-SPC now scrolls backward. -This affects View mode, etc. - -** The default value of `make-backup-file-name-function' is no longer nil. -Instead it defaults to a function that does what the nil value used to. - -** Help - -*** The command `apropos-variable' is renamed to `apropos-user-option'. -`apropos-user-option' shows all user options, while `apropos-variable' -shows all variables. When called with a universal prefix argument, -the two commands swap their behaviors. When `apropos-do-all' is -non-nil, they output the same results. - -*** The key `?' now describes prefix bindings, like `C-h'. - -*** The command `describe-function' has been extended for EIEIO. -Running it on constructors will show a full description of the -generated class. For generic functions, it will show all -implementations together with links to the source. The old commands -`describe-class', `describe-constructor' and `describe-generic' were -removed. - -*** The function `quail-help' is no longer an interactive command. -Use `C-h C-\' (`describe-input-method') instead. - -** Frame and window handling - -*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', -bound to and M-, respectively. - -*** New hooks `focus-in-hook', `focus-out-hook'. -These are normal hooks run when an Emacs frame gains or loses input focus. - -*** The function `window-in-direction' now takes additional arguments -for specifying a reference point, wrapping the selection around frame -borders, and specifying ways to select the minibuffer window. - -*** Emacs can now change frame sizes in units of pixels, rather than -text rows or columns. When maximizing a frame or making it fullscreen, -remaining extra pixels are no longer given to the minibuffer, the rightmost -fringe, or other unusable space, but are distributed among the text -areas of the frame's windows. If the new option `frame-resize-pixelwise' -is non-nil, all frame size changes happen pixelwise and set the -corresponding size hints for the window manager. - -*** Emacs can now change window sizes in units of pixels. -Mouse-dragging a mode line or window divider now changes the size of -adjacent windows pixelwise. If the new option `window-resize-pixelwise' -is non-nil, functions like `balance-windows-area' and `fit-window-to-buffer' -resize windows pixelwise. Most functions for changing or accessing -window sizes now have an additional argument that allows changes to apply, -or values to be returned, in pixels instead of lines/columns. - -*** The functions `window-body-height' and `window-body-width' now never -count partially visible lines or columns if called with a nil PIXELWISE -argument. - -*** Emacs can now draw dividers between adjacent windows. To put -dividers between side-by-side/vertically stacked windows customize the -frame parameters `right-divider-width' and `bottom-divider-width' to -some positive integer. You can drag dividers with the mouse (they show -a corresponding cursor when the mouse hovers over them). You can change -the appearance of dividers by customizing the faces `window-divider', -`window-divider-first-pixel', and `window-divider-last-pixel'. The last -two are useful to provide a 3D effect, or to better distinguish dividers -from surrounding display objects. - -*** New functions to return the pixel sizes of window components, namely -`window-scroll-bar-width', `window-mode-line-height', -`window-header-line-height', `window-right-divider-width', and -`window-bottom-divider-width'. - -*** The new function `window-text-pixel-size' returns the size of the -text of a window's buffer in pixels. This allows functions like -`fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a -window to its buffer as it will be displayed. - -*** `fit-window-to-buffer' can now resize windows in both dimensions. -This behavior is controlled by the new option -`fit-window-to-buffer-horizontally'. The new option -`fit-frame-to-buffer' allows you to fit the window's frame to its buffer. - -*** `fit-frame-to-buffer' now fits frames in both dimensions. The new -options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes' -control the size of the frame and its position on screen. - -*** Temp Buffer Resize Mode can now adjust the height and width of -windows and frames. The new option `temp-buffer-max-width' allows you to -control the width of temporary buffer windows. Moreover, if the new -option `fit-frame-to-buffer' is non-nil and the buffer appears in the -root window of a frame, Temp Buffer Resize Mode will try to adjust the -width and/or height of the frame. - -*** `split-window' is now a non-interactive function, not a command. -As a command, it was a special case of `C-x 2' (`split-window-below'), -and as such superfluous. After being reimplemented in Lisp, its -interactive form was mistakenly retained. - -*** The functions `window-size' and `window-total-size' now have an -optional argument to return a rounded size value. - -*** `window-state-put' now allows you to put a window state into internal -windows too. - -*** New option `scroll-bar-adjust-thumb-portion'. -Available only on X, this option allows you to control over-scrolling -using the scroll bar (i.e., dragging the thumb down even when the end -of the buffer is visible). - -*** New display actions functions for `display-buffer': - -**** `display-buffer-in-previous-window' displays a buffer in a window -previously showing that buffer. - -**** `display-buffer-at-bottom' chooses or creates a window at the -bottom of the selected frame. - -**** `display-buffer-no-window' to not display the buffer in a window. - -*** New display action alist entry `allow-no-window' to indicate the -caller of `display-buffer' is ready to handle the case of not displaying -the buffer in a window. - -** Lisp evaluation - -*** `eval-defun' on an already defined defcustom calls the :set function, -if there is one. - -*** The commands `eval-expression' (`M-:'), `eval-last-sexp' (`C-x C-e'), -and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a -zero prefix argument. This disables truncation of lists in the output, -equivalent to setting `(eval-expression-)print-length' and -`(eval-expression-)print-level' to nil. Additionally, it causes integers -to be printed in other formats (octal, hexadecimal, and character). - -*** New hook `eval-expression-minibuffer-setup-hook' run by -`eval-expression' on entering the minibuffer. - -** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans', -because it affects caching of paragraph scanning results as well. -There is no reason to set this to nil except for debugging purposes. - -** `emacs-bzr-version' has been renamed to `emacs-repository-version', -and works for git too, if you fetch the repository notes. - -** The default value of `comment-use-global-state' is now t, -and this variable has been marked obsolete. - -** `write-region-inhibit-fsync' now defaults to t in batch mode. - -** The option `set-mark-default-inactive' has been deleted. -This unfinished feature was introduced by accident in Emacs 23.1; -simply disabling Transient Mark mode does the same thing. - - -* Editing Changes in Emacs 24.4 - -** Indentation - -*** `electric-indent-mode' is now enabled by default. -Typing RET reindents the current line and indents the new line. -`C-j' inserts a newline but does not indent. In some programming modes, -additional characters are electric (eg `{'). - -*** New buffer-local `electric-indent-local-mode'. - -*** The behavior of `C-x TAB' (`indent-rigidly') has changed. -When invoked without a prefix argument, it now activates a transient -mode in which typing , , , and adjusts -the text indentation in the region. Typing any other key resumes -normal editing behavior. - -*** `tab-stop-list' is now implicitly extended to infinity by repeating -the last step. Its default value is changed to nil, which means a tab -stop every `tab-width' columns. - -** Uniquify is enabled by default, with `post-forward-angle-brackets' style. -In other words, if you visit two files that have the same base name, -then rather than creating buffers basename and basename<2>, -Emacs uses basename and basename. To change this, -customize `uniquify-buffer-name-style'. Set it to nil for the old behavior. - -** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region. -Most commands are still unaware of it, but kill/yank do work on the rectangle. - -** New option `visual-order-cursor-movement'. -If this is non-nil, cursor motion with arrow keys will follow the -visual order of characters on the screen: always moves to the -left, always moves to the right, disregarding the surrounding -bidirectional context. - -** New command `delete-duplicate-lines'. -This searches the region for identical lines, and removes all but one -copy of each repeated line. The lines need not be sorted. - -** New command `cycle-spacing' acts like a smarter `just-one-space'. -When called in succession, it cycles between spacing conventions: -one space, no spaces, original spacing. - -** `blink-matching-paren' now only highlights the matching open-paren -by default, instead of moving the cursor. Set this variable to `jump' to -restore the old behavior. - -** The new function `fill-single-char-nobreak-p' can stop fill from breaking -a line after a one-letter word, which is an error in some typographical -conventions. To use it, add it to the `fill-nobreak-predicate' hook. - -** Registers - -*** All interactive commands that read a register (`copy-to-register', etc.) -now display a temporary window after `register-preview-delay' seconds -that summarizes existing registers. To disable this, set that option to nil. -Interactive commands that read registers and want to make use of this -should use `register-read-with-preview' to read register names. - -*** New command `frameset-to-register' bound to `C-x r f', replacing -`frame-configuration-to-register'. It offers similar functionality, -plus enhancements like the ability to restore deleted frames. -(`frame-configuration-to-register' still exists, but no longer has a -key binding.) - -*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard -macros in registers. - - -* Changes in Specialized Modes and Packages in Emacs 24.4 - -** Backtrace and debugger - -*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the -display of local variables of the current stack frame. - -*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes -the lexical environment when evaluating the code in the context at point -(and so allows you to access lexical variables). - -*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock. - -** Battery information can now be retrieved from BSD's `apm' utility. - -** In the Buffer Menu, `M-s a C-o' shows matches for a regexp in marked buffers. - -** Calc - -*** Calc by default now uses the Gregorian calendar for all dates, and -uses January 1, 1 AD as its day number 1. Previously Calc used the -Julian calendar for dates before September 14, 1752, and it used -December 31, 1 BC as its day number 1; the new scheme is more -consistent with Calendar's calendrical system and day numbering. - -*** The new option `calc-gregorian-switch' lets you configure if -(and when) Calc switches from the Julian to the Gregorian calendar. - -*** Support for ISO 8601 dates. - -** Calendar and Diary - -*** New faces `calendar-weekday-header', `calendar-weekend-header', -and `calendar-month-header'. - -*** New option `calendar-day-header-array'. - -*** New variable `diary-from-outlook-function', used by the command -`diary-from-outlook'. - -*** The variable `calendar-font-lock-keywords' is obsolete. - -** CEDET - -*** EDE - -**** The cpp-root project now supports executing a compile command. -It can be set through the new :compile-command slot or the -buffer-local variable `compile-command'. - -**** Better selection of include directories for the 'linux' project. -Include directories now support out-of-tree build directories and -target architecture auto-detection. - -*** Semantic - -**** Improved detection of used namespaces in current scope in C++. - -**** Parsing of default values for variables and function arguments in C/C++. -They are also displayed by the summarize feature in the mode line. - -**** Improved parsing of function pointers in C/C++. -This also includes parsing of function pointers as function arguments. - -**** Parsing of C/C++ preprocessor macros that open new scope. -For example, this enables parsing of macros that open new namespaces. - -**** Support for 'this' pointer in inline member functions in C++. - -** CFEngine mode - -*** Support for completion, ElDoc, and Flycheck has been added. - -*** The current CFEngine syntax is parsed from "cf-promises -s json". -There is a fallback syntax available if you don't have cf-promises or -if your version doesn't support that option. See option `cfengine-cf-promises'. - -** cl-lib - -*** New macro `cl-tagbody'. -This executes statements while allowing for control transfer to labels. - -*** letf is now just an alias for cl-letf. - -** CUA mode - -*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'. -Hence, you can now enable it independently from those modes, and from -`transient-mark-mode'. - -*** `cua-highlight-region-shift-only' is now obsolete. -You can disable `transient-mark-mode' to get the same result. - -*** CUA's rectangles can now be used without CUA by calling the command -`cua-rectangle-mark-mode'. - -** Delete Selection mode can now be used without Transient Mark mode. - -** Desktop - -*** `desktop-save-mode' by default now auto-saves an existing desktop file -after `desktop-auto-save-timeout'. To disable this, customize that option -to nil (or zero). - -*** Desktop now saves and restores the frame/window configuration. -To disable this, set `desktop-restore-frames' to nil. -See also related options `desktop-restore-reuses-frames', -`desktop-restore-in-current-display', and `desktop-restore-forces-onscreen'. - -** New Dired minor mode `dired-hide-details-mode' toggles whether details, -such as file ownership or permissions, are visible in Dired buffers. -See the new options `dired-hide-details-hide-symlink-targets' and -`dired-hide-details-hide-information-lines' for customizing what to hide. - -** You can enable ElDoc inside the `eval-expression' minibuffer with: - (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode) -The results display in the mode line. - -** Electric Pair mode - -*** New option `electric-pair-preserve-balance', enabled by default. -If non-nil, pairing/skipping only kicks in when that help the balance -of parentheses and quotes; i.e., the buffer should end up at least as -balanced as before. - -You can further control this behavior by adjusting the predicates -stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'. - -*** New option `electric-pair-delete-adjacent-pairs', enabled by default. -In `electric-pair-mode', the commands `backward-delete-char' and -`backward-delete-char-untabify' are now bound to electric variants -that delete the closer when invoked between adjacent pairs. - -*** New option `electric-pair-open-newline-between-pairs', enabled by default. -In `electric-pair-mode', inserting a newline between adjacent pairs -opens an extra newline after point, which is indented if -`electric-indent-mode' is also set. - -*** New option `electric-pair-skip-whitespace', enabled by default. -This controls if skipping over closing delimiters should jump over any -whitespace slack. Setting it to `chomp' makes it delete this -whitespace. See also the variable `electric-pair-skip-whitespace-chars'. - -*** New variables control the pairing in strings and comments. -You can customize `electric-pair-text-pairs' and -`electric-pair-text-syntax-table' to tweak pairing behavior inside -strings and comments. - -** New EPA option `epa-mail-aliases'. -You can set this to a list of email address aliases that `epa-mail-encrypt' -should use to find keys. - -** New ERC option `erc-accidental-paste-threshold-seconds'. -If set to a number, this can be used to avoid accidentally pasting large -amounts of data into the ERC input. - -** New ERT macro `skip-unless' allows skipping ERT tests. - -** Eshell - -*** `eshell' now supports visual subcommands and options. -Eshell has been able to handle "visual" commands (interactive, -non-line oriented commands such as top that require display -capabilities not provided by eshell) by running them in an Emacs -terminal emulator. See `eshell-visual-commands'. - -This feature has been extended to subcommands and options that make a -usually line-oriented command a visual command. Typical examples are -"git log" and "git --help", which display their output in a -pager by default. See `eshell-visual-subcommands' and `eshell-visual-options'. - -*** New Eshell-Tramp module. -External su and sudo commands are now the default; the internal, -Tramp-using variants can still be used by enabling the eshell-tramp module. - -** New F90 mode option `f90-smart-end-names'. - -** New option `gnutls-verify-error', if non-nil, means that Emacs -should reject SSL/TLS certificates that GnuTLS determines as invalid. -(This option defaults to nil at present, but this is expected to change -in a future release.) - -** Hi-Lock - -*** New global command `M-s h .' (`highlight-symbol-at-point') highlights -the symbol near point. - -*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands -will cycle through faces in `hi-lock-face-defaults' without prompting. - -** Icomplete is now more similar to Ido. - -*** Icomplete by default now applies to all forms of minibuffer completion. -The variable `icomplete-with-completion-tables' (now a user option) -controls this. To restore the old behavior, set it back to -'(internal-complete-buffer). - -*** You can navigate through and select completions using the keys -from `icomplete-minibuffer-map'. - -*** The string that separates potential completions is now a customizable -option (`icomplete-separator'). The default is " | " rather than ",". - -*** New face `icomplete-first-match'; and new options -`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'. - -*** The option `icomplete-show-key-bindings' has been removed. - -** Ido - -*** An Ido user manual is now included. - -*** The option `ido-use-virtual-buffers' can now take the value `auto'. -This means to use virtual buffers if the current ido input does not match -an existing buffer. - -*** The variable `ido-decorations' can optionally have two new elements, -which are the brackets to use around the sole remaining completion. - -** Image mode - -*** New commands `n' (`image-next-file') and `p' (`image-previous-file') -visit the next image file and the previous image file in the same -directory, respectively. - -*** New commands to show specific frames of multi-frame images. -`f' (`image-next-frame') and `b' (`image-previous-frame') visit the -next or previous frame. `F' (`image-goto-frame') shows a specific frame. - -*** New commands to speed up, slow down, or reverse animation. -`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to -speed up and slow down the animation. `a r' (`image-reverse-speed') -to reverse it and `a 0' (`image-reset-speed') to reset it. - -*** The command `image-mode-fit-frame' deletes other windows. -When toggling, it restores the frame's previous window configuration. -It also has an optional frame argument, which can be used by Lisp -callers to fit the image to a frame other than the selected frame. - -** New Imenu option `imenu-generic-skip-comments-and-strings'. - -** Info - -*** New Info face `info-index-match', used to highlight matches in index -entries displayed by `Info-index-next', `Info-virtual-index' and -`info-apropos'. - -*** The Info-edit command is obsolete. Editing Info nodes by hand -has not been relevant for some time. - -** JS Mode - -*** New option `js-switch-indent-offset'. - -*** Better indentation of multiple-variable declarations. -If a declaration spans several lines, variables on the following lines -are lined up to the first one. - -*** Recognition and better indentation of continuations in array comprehensions. - -** MH-E has been updated to version 8.5 - see separate MH-E-NEWS file. - -** Octave mode - -*** Font locking for Texinfo comments and new keywords. - -*** Completion in Octave file buffers. - -*** ElDoc support. - -*** Jump to definition. - -*** Documentation lookup/search. - -** OPascal mode is the new name for Delphi mode - -*** All delphi-* variables and functions have been renamed to opascal-*. -Obsolete aliases exist for those likely to have been used externally. - -*** The option `delphi-newline-always-indents' has been removed. -Use `electric-indent-mode' instead. - -*** The TAB key runs the standard `indent-for-tab-command', not `delphi-tab'. - -** Package - -*** The package library now supports digital signing of packages. -Maintainers of package archives should consider signing their packages -to enhance security. - -**** If the user option `package-check-signature' is non-nil, -Emacs tries to check package signatures at install time. -The value `allow-unsigned' allows installation of unsigned packages. - -**** The user option `package-unsigned-archives' lists archives where -Emacs will not try to check signatures. - -*** New option `package-pinned-packages'. This is useful if you have multiple -archives enabled, with more than one offering a given package that you want. - -*** In the `list-packages' buffer, you can use `f' (`package-menu-filter') -to filter the list of packages by a keyword. - -*** In the `describe-package' buffer, there are now buttons listing the -keywords related to the package. Click on a button to see other packages -related to that keyword. - -*** The format of `archive-contents' files, generated by package -repositories, has changed to allow a new (fifth) element in the data -vectors, containing an associative list with extra properties. -(For example, `describe-package' uses the `:url' extra property to -display a "Homepage" header.) - -** In Prolog mode, `prolog-use-smie' has been removed, -along with the non-SMIE indentation code. - -** Python mode - -*** Out of the box support for CPython, iPython and readline based shells. -**** `python-shell-completion-module-string-code' is no longer used. - -*** Automatic shell prompt detection. New user options: -**** `python-shell-interpreter-interactive-arg'. -**** `python-shell-prompt-detect-enabled'. -**** `python-shell-prompt-detect-failure-warning'. -**** `python-shell-prompt-input-regexps'. -**** `python-shell-prompt-output-regexps'. - -*** Python shell support for remote hosts via tramp. - -*** Correct display of line numbers for code sent to the Python shell. - -** Remember - -*** The new command `remember-notes' creates a buffer that is saved on exit. -You can use it as a more permanent *scratch* buffer. - -*** Remember can now store notes in separate files. -To use this, add `remember-store-in-files' to the `remember-handler-functions' -option. The files are saved in `remember-data-directory' using -names specified by `remember-directory-file-name-format'. - -** Rmail - -*** Customize `rmail-mbox-format' to influence some minor aspects of -how Rmail displays non-MIME messages. - -*** The `unrmail' command now converts from BABYL to mboxrd format, -rather than mboxo. Customize `unrmail-mbox-format' to change this. - -** Ruby mode - -*** Improved syntax highlighting and indentation. - -*** New `electric-indent-mode' integration. - -*** New option `ruby-encoding-magic-comment-style'. - -*** New option `ruby-custom-encoding-magic-comment-template'. - -*** New option `ruby-align-to-stmt-keywords'. - -*** New option `ruby-align-chained-calls'. - -*** More Ruby file types have been added to `auto-mode-alist'. - -** Search and Replace - -*** New global command `M-s .' (`isearch-forward-symbol-at-point') -starts a symbol (identifier) incremental search forward with the -symbol found near point added to the search string initially. - -*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name -and adds it to the search string. - -*** `M-s i' in Isearch mode toggles whether search matches invisible text. - -*** `query-replace' skips invisible text when `search-invisible' is nil, -and opens overlays with hidden text when `search-invisible' is `open'. - -*** A negative prefix argument of replacement commands replaces backward. -`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp -backward, `M-s w words M-- M-%' replaces a sequence of words backward. - -*** By default, prefix arguments do not now terminate Isearch mode. -Set `isearch-allow-prefix' to nil to restore the old behavior. - -*** More Isearch commands accept prefix arguments, namely -`isearch-printing-char', `isearch-quote-char', `isearch-yank-word', -`isearch-yank-line'. - -*** Word search now matches whitespace at the beginning/end -of the search string if it contains leading/trailing whitespace. -In an incremental word search or when using a non-nil LAX argument -of `word-search-regexp', the lax matching can also match part of -the first word (in addition to the lax matching of the last word). -The same rules are now applied to the symbol search, with the difference -that it matches symbols, and non-symbol characters between symbols. - -** New SES command `ses-rename-cell' allows assignment of names to SES cells. - -** The shell.el option `explicit-bash-args' includes --noediting by default. -All non-ancient Bash versions support this option. - -** Shell Script mode - -*** The SMIE indentation engine is now used by default - see `sh-use-smie'. - -*** `sh-mode' now has its own setting for `add-log-current-defun-function'. - -** SMIE - -*** You can customize the SMIE indentation of a mode via `smie-config'. -The command `smie-config-guess' can help you derive the appropriate -indentation settings, if you provide it with an indented sample file. -Use `smie-config-save' to save the result. - -*** You can customize the SMIE indentation of a file by adding an entry to -the file's local variables of the form: `eval: (smie-config-local '(RULES))'. - -*** New commands `smie-config-show-indent' and `smie-config-set-indent'. - -** SQL mode - -*** Improved login monitoring and appropriate response to login failures. -New variable `sql-login-delay' defines maximum wait time for a connection. - -*** Oracle support. -SQL*Plus script placeholders are properly highlighted and identified -in `sql-placeholders-filter'. When starting SQL*Plus, `sql-oracle-options' -are passed before the logon parameter, as required. The default now -includes `-L', to limit the number of logon attempts per invocation. - -** New Term mode option `term-suppress-hard-newline'. - -** Todo mode has been rewritten and enhanced. -The Todo mode user manual describes all commands and most user -options. To support some of these features, a new file format is -used, which is incompatible with the old format; however, you can -convert old todo and done item files to the new format on initializing -the first new todo file, or at any later time with the provided -conversion command. The previous version of todo-mode.el has been -renamed to otodo-mode.el and is now obsolete. New features include: - -*** Support for multiple todo files and archive files of done items. - -*** Renaming, reordering, moving, merging, and deleting categories. - -*** Sortable tabular summaries of categories and the item types they contain. - -*** Cross-category lists of items filtered by specific criteria. - -*** More fine-grained interaction with the Emacs diary, by being able to -decide for each todo item whether it appears in the Fancy Diary display. - -*** Highly flexible new item insertion and item editing. - -*** Moving items between categories, storing done items in their category -or in archive files, undoing or unarchiving done items. - -*** Reprioritizing items by inputting a numerical priority. - -*** Extensive customizability of operation and display, including many faces. - -** Trace - -*** `trace-function' and `trace-function-background' no longer prompt for -the output buffer. Unless you use a prefix argument, they output to -`trace-buffer'. - -*** With a prefix argument, `trace-function' and `trace-function-background' -will prompt for a "context". This is a Lisp expression, whose value at the -time the function is entered/exited is printed along with the function's -name and arguments. - -** Tramp - -*** New connection method "adb", which allows to access Android -devices by the Android Debug Bridge. The variable `tramp-adb-program' -can be used to adapt the path of the "adb" program, if needed. - -*** Handlers for `file-acl' and `set-file-acl' for remote machines -that support POSIX ACLs. - -*** Handlers for `file-notify-add-watch' and `file-notify-rm-watch' -for remote machines that support filesystem notifications. - -*** The experimental url syntax for remote file names has been removed. - -*** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2", -"scpc" and "rsyncc" are discontinued. The ssh option -"ControlMaster=auto" is set automatically in all ssh-based methods, -when possible. See `tramp-use-ssh-controlmaster-options'. - -** New URL command `url-cookie-list' displays the current cookies, -and allows you to interactively remove cookies. - -** VC and related modes - -*** In VC directory mode, `D' displays diffs between VC-controlled -whole tree revisions. - -*** In VC directory mode, `L' lists the change log for the current VC -controlled tree in a window. - -*** In VC directory mode, `I' shows a log of changes that will be -received with a pull operation. - -*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file -under current version control system. When called with a prefix -argument, you can remove a file from the ignored file list. - -** VHDL mode - -*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'. - -*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'. - -** The Woman commands `woman-default-faces' and `woman-monochrome-faces' -are obsolete. Customize the `woman-*' faces instead. - -** More packages look for ~/.emacs.d/ additionally to ~/.. -Affected files: -~/.emacs.d/timelog replaces ~/.timelog -~/.emacs.d/vip replaces ~/.vip -~/.emacs.d/viper replaces ~/.viper -~/.emacs.d/ido.last replaces ~/.ido.last -~/.emacs.d/kkcrc replaces ~/.kkcrc -~/.emacs.d/quickurls replaces ~/.quickurls -~/.emacs.d/idlwave/ replaces ~/.idlwave/ -~/.emacs.d/bdfcache.el replaces ~/.bdfcache.el -~/.emacs.d/places replaces ~/.emacs-places -~/.emacs.d/shadows replaces ~/.shadows -~/.emacs.d/shadow_todo replaces ~/.shadow_todo -~/.emacs.d/strokes replaces ~/.strokes -~/.emacs.d/notes replaces ~/.notes -~/.emacs.d/type-break replaces ~/.type-break -Also the following files used by the now obsolete otodo-mode.el: -~/.emacs.d/todo-do replaces ~/.todo-do -~/.emacs.d/todo-done replaces ~/.todo-done -~/.emacs.d/todo-top replaces ~/.todo-top - -** Obsolete packages - -*** iswitchb.el; use icomplete-mode. - -*** longlines.el; use visual-line-mode. - -*** meese.el. - -*** sup-mouse.el. - -*** terminal.el; use term.el instead. - -*** the old version of todo-mode.el (renamed to otodo-mode.el). - -*** xesam.el (owing to the cancellation of the XESAM project). - -*** yow.el; use fortune.el or cookie1.el instead. - - -* New Modes and Packages in Emacs 24.4 - -** New package eww.el provides a built-in web browser. -This requires Emacs to have been compiled with libxml2 support. - -** New package nadvice.el offers lighter-weight advice facilities. -It is layered as: - -*** `add-function'/`remove-function', which can be used to add/remove code on -any function-carrying place, such as process filters or `-function' hooks. - -*** `advice-add'/`advice-remove' to add/remove a piece of advice on a named -function, much like `defadvice' does. - -** New package frameset.el provides a set of operations to save a frameset -(the state of all or a subset of the existing frames and windows, somewhat -similar to a frame configuration), both in-session and persistently, and -restore it at some point in the future. - -** New package filenotify.el provides an interface for file system -notifications. It requires that Emacs be compiled with one of the -low-level libraries gfilenotify.c, inotify.c or w32notify.c. - -** New minor modes `prettify-symbols-mode' and `global-prettify-symbols-mode' -display specified symbols as composed characters. E.g., in Emacs Lisp mode, -this replaces the string "lambda" with the Greek lambda character. - -** New minor mode `superword-mode', which overrides the default word motion -commands to treat "symbol_words" as a single word, similar to what -`subword-mode' does. - - -* Incompatible Lisp Changes in Emacs 24.4 - -** The default file coding for Emacs Lisp files is now utf-8. -(See `file-coding-system-alist'.) In most cases, this change is -transparent, but files that contain unusual characters without -specifying an explicit coding system may fail to load with obscure -errors. You should either convert them to utf-8 or add an explicit -`coding:' cookie. - -** Default process filters and sentinels are not nil any more. -Instead they default to a function that does what the nil value used to do. - -** Overlay priority does not have to be nil or a non-negative integer. -Overlay priority can be other kinds of Lisp objects. We didn't yet -decide whether other types of values are stable enough, and therefore -don't feel it's right to document them. For now, don't assume in your -code that the values of overlay priority can only be either nil or an -integer, always test them with an appropriate predicate to be one or -the other. If you need to sort arbitrary overlays into priority -order, `overlays-at' can now optionally do this. -You should still only specify integer priorities on overlays you create. - -** The cars of the elements in `interpreter-mode-alist' are now -treated as regexps rather than literal strings. - -** `overriding-terminal-local-map' no longer replaces the local keymaps. -It used to disable the minor mode, major mode, and text-property keymaps, -whereas now it simply has higher precedence. - -** `kill-region' has lost its `yank-handler' optional argument. - -** `(input-pending-p)' no longer runs other timers that are ready to run. -The new optional CHECK-TIMERS parameter allows for the prior behavior. - -** `defvar' and `defcustom' in a let-binding affect the "external" default. - -** The syntax of ?» and ?« is now punctuation instead of matched parens. -Some languages match those as »...«, and others as «...», so it is -better for Emacs to stay neutral by default. - -** `read-event' does not always decode chars in ttys any more. As was the case -in Emacs 22 and before, `read-event' (and `read-char') by default read raw -bytes from the terminal. If you want to read decoded chars instead (as was -always the case in Emacs-23, for example), pass a non-nil -`inherit-input-method' argument. - -** In `symbol-function', nil and "unbound" are indistinguishable. -`symbol-function' does not signal a `void-function' error any more. -To determine if a symbol's function definition is void, use `fboundp'. - -** `defadvice' does not honor the `freeze' flag and cannot advise -special-forms any more. - -** `dolist' no longer binds VAR while evaluating the RESULT form, -when lexical binding is enabled. Previously, VAR was bound to nil, -which often led to spurious unused-variable warnings. - -** The return value of `backup-buffer' has changed. -The second argument is no longer an SELinux context, instead it is an -alist of extended attributes as returned by the new function -`file-extended-attributes'. The attributes can be applied to another -file using `set-file-extended-attributes'. - -** By default `copy-file' no longer copies file permission bits to an -existing destination; and it sets the file permission bits of a newly -created destination to those of the source, masked by the default file -permissions. To copy the file permission bits, pass t as the -PRESERVE-PERMISSIONS argument of `copy-file'. - -** `visited-file-modtime' now returns -1 for nonexistent files. -Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous -in the presence of files with negative time stamps. - -** Frame-local variables that affect redisplay do not work any more. -More specifically, redisplay does not bother to check for a frame-local -value when looking up variables. - -** In compiled Lisp files, the header no longer includes a timestamp. - -** The option `inhibit-local-menu-bar-menus' has been removed. - - -* Lisp Changes in Emacs 24.4 - -** Change to the Emacs Lisp coding conventions: the package descriptor -and name of global variables, constants, and functions should be separated -by two hyphens if the symbol is not meant to be used by other packages. - -** The second argument of `eval' can now specify a lexical environment. - -** New macro `define-alternatives' can be used to define generic commands. -Generic commands are interactive functions whose implementation can be -selected among several alternatives, as a matter of user preference. - -** Numeric comparison functions =, <, >, <=, >= can now take many arguments. - -** New functions `special-form-p' and `macrop'. - -** New macro `with-eval-after-load'. -This is like the old `eval-after-load', but better behaved. - -** If you give a symbol a `defalias-fset-function' property, `defalias' -on that symbol will use the associated value as a function to call -in place of `fset'. - -** New variable `enable-dir-local-variables'. -Directory-local variables are ignored if this is nil. This may be -useful for modes that want to ignore directory-locals while still -respecting file-local variables. - -** `read-regexp' now uses the new variable `read-regexp-defaults-function' -as a function to call to provide default values. - -** New functions `group-gid' and `group-real-gid'. - -** New function `get-pos-property'. - -** New hook `pre-redisplay-function'. - -** `byte-compile-interactive-only-functions' is now obsolete. -To specify that a command should only be called interactively, give it -a non-nil `interactive-only' property. - -** New function `string-suffix-p'. - -** `split-string' now takes an optional argument TRIM. -The value, if non-nil, is a regexp that specifies what to trim from -the start and end of each substring. - -** Completion - -*** The separator used by `completing-read-multiple' is now a regexp. -The default `crm-separator' has been changed to allow surrounding spaces -around the comma. - -*** New function `completion-table-with-cache' is a wrapper for -`completion-table-dynamic' that caches the result of the last lookup. - -*** New function `completion-table-merge' to combine several -completion tables by merging their completions. - -*** The `common-substring' argument of `display-completion-list', -which has been documented as obsolete since Emacs 23.1, is now _really_ -obsolete, and no longer advertised. Instead either call -`completion-hilit-commonality' to add the highlighting; or use -`completion-all-completions', which returns highlighted strings. - -** Encoding and decoding of text - -*** New coding-system `prefer-utf-8'. -This is like `undecided' but prefers UTF-8 on decoding if the text to -be decoded does not contain any invalid UTF-8 sequences. On encoding, -any non-ASCII characters are automatically encoded as UTF-8. - -*** New attributes of coding-systems whose type is `undecided'. -Two new attributes, `:inhibit-null-byte-detection' and -`:inhibit-iso-escape-detection', determine how to detect encoding of -text that includes null bytes and ISO-2022 escape sequences, respectively. -Each of these attributes can be either nil, zero, or t. If t, decoding -text ignores null bytes and ISO-2022 sequences, respectively. If nil, -null bytes cause text to be decoded with no-conversion, and ISO-2022 -sequences cause Emacs to assume the text is encoded in one of the ISO-2022 -encodings, such as iso-2022-7bit. If zero, Emacs consults the variables -`inhibit-null-byte-detection' and `inhibit-iso-escape-detection'. -The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer -UTF-8 encoding and decoding, whenever possible. - -These attributes are only meaningful for coding-systems of type `undecided'. -(The type of a coding-system is determined by its `:coding-type' attribute -and can be accessed by calling the `coding-system-type' function.) - -** Error-handling - -*** New function `define-error'. - -*** `with-demoted-errors' takes an additional argument `format'. - -** Faces - -*** Face specs set via Custom themes now replace the `defface' spec -rather than inheriting from it. In other words, setting a face via a -theme now behaves like setting it via Customize: you only need to -specify the attributes that you want, you don't need to unset those -that you don't want. - -*** The function `face-spec-set' is now like `setq' for face specs. -Its third arg now accepts values specifying a face spec type (defface, -custom, or override spec), and the relevant spec is set accordingly. - -*** New face spec attribute :distant-foreground -specifies foreground to use if background color is near the foreground -color that would otherwise have been used. - -*** New function `add-face-text-property', which can be used to -conveniently prepend/append new face properties. - -*** New face characteristic (supports :underline (:style wave)) -specifies whether or not the terminal can display a wavy line. - -** File-handling - -*** Support for filesystem notifications. -Emacs now supports notifications of filesystem changes, such as -creation, modification, and deletion of files. This requires the -`glib' API, or the 'inotify' API (on GNU/Linux systems only). On -MS-Windows systems, this is supported for Windows XP and newer. - -*** The 9th element returned by `file-attributes' is now unspecified. -Formerly, it was t if the file's gid would change if file were deleted -and recreated. This value has been inaccurate for years on many -platforms, and nobody seems to have noticed or cared. - -*** The 6th argument to `copy-file' has been renamed to -PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional -Unix file permission bits as well as SELinux context. - -*** The function `file-ownership-preserved-p' now has an optional -argument GROUP which causes it check for file group too. This can be -used in place of the 9th element of `file-attributes'. - -*** The function `set-visited-file-modtime' now accepts a 0 or -1 argument, -with the same interpretation as the returned value of `visited-file-modtime'. - -** Image API - -*** `image-animated-p' is now `image-multi-frame-p'. -It returns non-nil for any image that contains multiple frames, -whether or not it specifies a frame delay. - -*** New variable `image-default-frame-delay' gives the frame delay for -animated images which do not specify a frame delay. - -*** New functions `image-current-frame' and `image-show-frame' for getting -and setting the current frame of a multi-frame image. - -** ImageMagick - -*** ImageMagick images now support the :max-width and :max-height keywords. - -*** When using `create-image' with image data, you can pass a :format -attribute (via the property-list argument) in order to help -ImageMagick detect the image type. The value should be a MIME -content-type that is found in the new variable `image-format-suffixes'. - -** Revert and Autorevert - -*** If Emacs is compiled with file notification support, it uses notifications -instead of checking file time stamps. To disable this, set the user option -`auto-revert-use-notify' to nil. Alternatively, you can specify a regular -expression matching directories to be excluded from file notifications via -`auto-revert-notify-exclude-dir-regexp'. - -*** The default values of `buffer-stale-function', `revert-buffer-function', -and `revert-buffer-insert-file-contents-function' are no longer nil. -Instead they default to functions that do what the nil value used to. - -*** `buffer-stale-function' is now used for buffers visiting files too. - -*** The new user option `auto-revert-remote-files' enables reversion -of remote files, if non-nil. - -** Terminal - -*** Functions to pop up menus and dialogs now work on all terminals, -including TTYs. This includes `x-popup-menu', `x-popup-dialog', -`message-box', `yes-or-no-p', etc. - -The function `display-popup-menus-p' will now return non-nil for a -display or frame whenever a mouse is supported on that display or frame. - -*** New hook `tty-setup-hook', run at the end of initializing a text terminal. - -*** The hook `term-setup-hook' is obsolete. It is entirely equivalent -to `emacs-startup-hook'. See also the new `tty-setup-hook'. - -** Minor internal changes to the details of lock files. -The lock for DIR/FILE is now _always_ DIR/.#FILE. -If DIR/.#FILE already exists and is not an Emacs lock file, -Emacs makes no attempt to lock DIR/FILE. (Previously, it fell back to -numbered lock files DIR/.#FILE.0...). -On file systems that do not support symbolic links, the lock is now a -regular file with contents being what would have been in the symlink. - -** New bool-vector set operation functions: -*** `bool-vector-exclusive-or' -*** `bool-vector-union' -*** `bool-vector-intersection' -*** `bool-vector-set-difference' -*** `bool-vector-not' -*** `bool-vector-subsetp' -*** `bool-vector-count-consecutive' -*** `bool-vector-count-population' - -** New library subr-x.el with miscellaneous small utility functions: -*** `hash-table-keys' -*** `hash-table-values' -*** `string-blank-p' -*** `string-empty-p' -*** `string-join' -*** `string-reverse' -*** `string-trim-left' -*** `string-trim-right' -*** `string-trim' -*** `string-remove-prefix' -*** `string-remove-suffix' - -** The `time-to-seconds' alias to `float-time' is no longer marked obsolete. - -** The spelling of the rx.el category `chinese-two-byte' has been -corrected (the first 'e' was missing). - -** EIEIO namespace cleanup, obsolete-aliasing functions to use `eieio-' prefix: -*** object-name -> eieio-object-name -*** object-class -> eieio-object-class -*** object-class-fast -> eieio--object-class -*** object-class-name -> eieio-object-class-name -*** object-name-string -> eieio-object-name-string -*** object-num-slots -> eieio--object-num-slots -*** object-set-name-string -> eieio-object-set-name-string -*** class-of -> eieio-object-class -*** class-name -> eieio-class-name -*** class-parent -> eieio-class-parent -*** class-parents -> eieio-class-parents -*** class-parents-fast -> eieio-class-parents-fast -*** class-children -> eieio-class-children -*** class-num-slots -> eieio--class-num-slots -*** class-precedence-list -> eieio-class-precedence-list -*** class-direct-subclasses -> eieio-class-children -*** class-direct-superclasses -> eieio-class-parents - -** Obsoleted functions -*** `log10' -*** `dont-compile' -*** `lisp-complete-symbol' -*** `field-complete' -*** `minibuffer-completion-contents' -*** `isearch-nonincremental-exit-minibuffer' -*** `isearch-filter-visible' -*** `generic-make-keywords-list' -*** `get-upcase-table' (use `case-table-get-table' instead). - -** `with-wrapper-hook' is obsoleted by `add-function'. -The few hooks that used with-wrapper-hook are replaced as follows: -*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'. -*** `completion-in-region-function' obsoletes `completion-in-region-functions'. -*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'. - - -* Changes in Emacs 24.4 on Non-Free Operating Systems - -** New Core Text based font backend for Mac OS X 10.5 and newer. -To use the old font backend, use the following on the command line: - % defaults write org.gnu.Emacs FontBackend ns -GNUstep and Mac OS X 10.4 use the old font backend. - -** Improved fullscreen support on Mac OS X 10.7 and newer, where the -default fullscreen method is now "native" fullscreen. To use the -old style fullscreen, customize `ns-use-native-fullscreen' to nil. - -** On Mac OS X 10.7 and newer, Emacs can use sRGB colorspace, and does so -by default. Customize `ns-use-srgb-colorspace' to go back to the old method. -Note that this does not apply to images. - -** The procedure for building Emacs on MS-Windows has changed. -It is now built by running the same configure script as on all other -platforms. This requires the MSYS environment and MinGW development -tools. See the updated instructions in nt/INSTALL for details. - -Using the Posix configure script and Makefiles also means a change in -the directory structure of the Emacs installation on Windows. It is -now the same as on GNU and Unix systems. In particular, the auxiliary -programs, such as cmdproxy.exe and hexl.exe, are in -libexec/emacs/VERSION/i686-pc-mingw32 (where VERSION is the Emacs -version), version-independent site-lisp is in share/emacs/site-lisp, -version-specific Lisp files are in share/emacs/VERSION/lisp and in -share/emacs/VERSION/site-lisp, Info docs are in share/info, and data -files are in share/emacs/VERSION/etc. (Emacs knows about all these -directories and will find the files in there automatically; there's no -need to set any variables due to this change.) - -** Emacs on Windows 2000 and later can now access files and directories -whose names cannot be encoded in the current system codepage. - -The new variable `w32-unicode-filenames' controls this feature: if it -is t, Emacs uses Unicode APIs to pass file names to system calls, -which lifts the limitation of file names to the current locale. - -** Lock files now work on MS-Windows. -This helps to prevent losing your edits if the same file is being -edited in another Emacs session or by another user. See the node -"Interlocking" in the Emacs User Manual for the details. To disable -file locking, customize `create-lockfiles' to nil. - -** The "generate a backtrace on fatal error" feature now works on MS-Windows. -The backtrace is written to the 'emacs_backtrace.txt' file in the -directory where Emacs was running. - -** The `network-interface-list' and `network-interface-info' functions -are now available on MS-Windows. - -** The variable `buffer-file-type' is no longer supported. -Setting it has no effect, and %t in the mode-line format is ignored. -Likewise, `file-name-buffer-file-type-alist' is now obsolete, and -modifying it has no effect. - - -* Installation Changes in Emacs 24.3 - -** The default X toolkit is now Gtk+ version 3. -If you don't pass `--with-x-toolkit' to configure, or if you use -`--with-x-toolkit=gtk' or `--with-x-toolkit=yes', configure will try -to build with Gtk+ version 3, and if that fails, try Gtk+ version 2. -You can explicitly require a specific version by passing -`--with-x-toolkit=gtk2' or `--with-x-toolkit=gtk3' to configure. - -** New configure option `--enable-link-time-optimization', to utilize -an appropriate feature provided by GCC since version 4.5.0. - -** New configure option `--without-all' to disable most of the optional -features (image support, etc.) that are normally enabled by default. - -** New configure option `--enable-gcc-warnings' (for developing/debugging -Emacs). If building with GCC, this enables compile-time checks that -warn/give errors about possibly-questionable C code. On a recent GNU -system there should be no warnings; on older and on non-GNU systems -the results may be useful to developers. - -** The configure option `--enable-use-lisp-union-type' has been -renamed to `--enable-check-lisp-object-type', as the resulting -Lisp_Object type no longer uses a union to implement the compile time -check that this option enables. - -** The configure option `--disable-maintainer-mode' has been removed, -as it was confusingly-named and rarely useful. - -** The configure options `--program-prefix', `--program-suffix', and -`--program-transform-name' apply to more than just the installed -binaries. Now they also affect the man pages, icons, and the -etc/emacs.desktop file; but not the info pages, since this would break -links between the various manuals. - -** You can use `NO_BIN_LINK=t make install' to prevent the installation -overwriting "emacs" in the installation bin/ directory with a link -to "emacs-VERSION". - -** Emacs uses libtinfo in preference to libncurses, if available. - -** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and -/usr/pkg/lib to the linker search path. You must add them yourself if -you want them. - -** The standalone scripts `rcs-checkin' and `vcdiff' have been removed -(from the bin and libexec directories, respectively). The former is -no longer relevant, the latter is replaced by lisp (in vc-sccs.el). - - -* Startup Changes in Emacs 24.3 - -** Emacs no longer searches for `leim-list.el' files beneath the standard -lisp/ directory. There should not be any there anyway. If you have -been adding them there, put them somewhere else; e.g., site-lisp. - -** The `--no-site-lisp' command line option now works for Nextstep builds. - - -* Changes in Emacs 24.3 - -** Help - -*** `C-h f' (`describe-function') can now perform autoloading. -When this command is called for an autoloaded function whose docstring -contains a key substitution construct, that function's library is -automatically loaded, so that the documentation can be shown -correctly. To disable this, set `help-enable-auto-load' to nil. - -*** `C-h f' now reports previously-autoloaded functions as "autoloaded", -even after their associated libraries have been loaded (and the -autoloads have been redefined as functions). - -** ImageMagick - -*** Images displayed via ImageMagick now support transparency and the -:background image specification property. - -*** When available, ImageMagick support is automatically enabled. -It is no longer necessary to call `imagemagick-register-types' -explicitly to install ImageMagick image types; that function is called -automatically at startup, or when customizing an imagemagick- option. - -*** Setting `imagemagick-types-inhibit' to t now disables the use of -ImageMagick to view images. (You must call `imagemagick-register-types' -afterwards if you do not use customize to change this.) - -*** The new variable `imagemagick-enabled-types' also affects which -ImageMagick types are treated as images. The function -`imagemagick-filter-types' returns the list of types that will be -treated as images. - -** Minibuffer - -*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the -next and previous path separator, respectively. - -*** `minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]" -in minibuffer prompts. Just set `minibuffer-eldef-shorten-default' -non-nil before enabling the mode. - -** Mode line - -*** New option `mode-line-default-help-echo' specifies the help text -(shown in a tooltip or in the echo area) for any part of the mode line -that does not have its own specialized help text. - -*** You can now click mouse-3 in the coding system indicator to invoke -`set-buffer-file-coding-system'. - -** Server and client - -*** emacsclient now obeys string values for `initial-buffer-choice', -if it is told to open a new frame without specifying any file to visit -or expression to evaluate. - -*** New option `server-auth-key' specifies a shared server key. - -** Emacs now generates backtraces on fatal errors. -On encountering a fatal error, Emacs now outputs a textual description -of the fatal signal, and a short backtrace on platforms like glibc -that support backtraces. - -** `C-x C-q' is now bound to the new minor mode `read-only-mode'. -This minor mode replaces `toggle-read-only', which is now obsolete. - -** Most `y-or-n' prompts now allow you to scroll the selected window. -Typing `C-v' or `M-v' at a y-or-n prompt scrolls forward or backward -respectively, without exiting from the prompt. - -** In the Package Menu, newly-available packages are listed as "new", -and sorted above the other "available" packages by default. - -** If your Emacs was built from a repository checkout, the new variable -`emacs-bzr-version' contains information about the bzr revision used. - -** New option `create-lockfiles' specifies usage of lockfiles. -It defaults to t. Changing it to nil inhibits the creation of lock -files (use this with caution). - -** New option `enable-remote-dir-locals', if non-nil, allows directory-local -variables on remote hosts. - -** The entry for PCL-CVS has been removed from the Tools menu. -The PCL-CVS commands are still available via the keyboard. - -** Using "unibyte: t" in Lisp source files is obsolete. -Use "coding: raw-text" instead. - -** In the buffer made by `M-x report-emacs-bug', the `C-c m' binding -has been changed to `C-c M-i' (`report-emacs-bug-insert-to-mailer'). -The previous binding, introduced in Emacs 24.1, was a mistake, because -`C-c LETTER' bindings are reserved for user customizations. - -** Internationalization - -*** New language environment: Persian. - -*** New input method `vietnamese-vni'. - -** Nextstep (GNUstep / Mac OS X) port - -*** Support for fullscreen and the frame parameter fullscreen. - -*** A file dialog is used for open/save operations initiated from the -menu/toolbar. - - -* Editing Changes in Emacs 24.3 - -** Search and Replace - -*** Non-regexp Isearch now performs "lax" space matching. -Each sequence of spaces in the supplied search string may match any -sequence of one or more whitespace characters, as specified by the -variable `search-whitespace-regexp'. (This variable is also used by a -similar existing feature for regexp Isearch.) - -*** New Isearch command `M-s SPC' toggles lax space matching. -This applies to both ordinary and regexp Isearch. - -*** New option `replace-lax-whitespace'. -If non-nil, `query-replace' uses flexible whitespace matching too. -The default is nil. - -*** Global `M-s _' starts a symbol (identifier) incremental search, -and `M-s _' in Isearch toggles symbol search mode. -`M-s c' in Isearch toggles search case-sensitivity. - -** Navigation commands - -*** New binding `M-g c' for `goto-char'. - -*** New binding `M-g TAB' for `move-to-column'. - -*** `M-g TAB' (`move-to-column') prompts for a column number if called -interactively with no prefix arg. Previously, it moved to column 1. - -** New option `yank-handled-properties' allows processing of text -properties on yanked text, in ways that are more general than just -removing them (as is done by `yank-excluded-properties'). - -** New option `delete-trailing-lines' specifies whether -M-x delete-trailing-whitespace should delete trailing lines at the end -of the buffer. It defaults to t. - -** `C-u M-=' now counts lines/words/characters in the entire buffer. - -** `C-x 8 RET' is now bound to `insert-char', which is now a command. -`ucs-insert' is now an obsolete alias for `insert-char'. - -** The `z' key no longer has a binding in most special modes. -It used to be bound to `kill-this-buffer', but `z' is too easy to -accidentally type. - -** New command `C-x r M-w' (`copy-rectangle-as-kill'). -It copies the region-rectangle as the last rectangle kill. - -** Registers - -*** `C-x r +' is now overloaded to invoke `append-to-register'. - -*** New option `register-separator' specifies the register containing -the text to put between collected texts for use with -M-x append-to-register and M-x prepend-to-register. - - -* Changes in Specialized Modes and Packages in Emacs 24.3 - -** Common Lisp emulation (CL) - -*** CL's main entry is now (require 'cl-lib). -`cl-lib' is like the old `cl' except that it uses the namespace cleanly; -i.e., all its definitions have the "cl-" prefix (and internal definitions -use the "cl--" prefix). - -If `cl' provided a feature under the name `foo', then `cl-lib' -provides it under the name `cl-foo' instead; with the exceptions of the -few `cl' definitions that had to use `foo*' to avoid conflicts with -pre-existing Elisp entities. These have been renamed to `cl-foo' -rather than `cl-foo*'. - -The old `cl' is now deprecated and is mainly just a bunch of aliases that -provide the old, non-prefixed names. Some exceptions are listed below: - -*** `cl-flet' is not like `flet' (which is deprecated). -Instead it obeys the behavior of Common-Lisp's `flet'. -In particular, in cl-flet function definitions are lexically scoped, -whereas in flet the scoping is dynamic. - -*** `cl-labels' is slightly different from `labels'. -The difference is that it relies on the `lexical-binding' machinery -(as opposed to the `lexical-let' machinery used previously) to capture -definitions in closures, so such closures will only work if `lexical-binding' -is in use. - -*** `cl-letf' is not exactly like `letf'. -The only difference is in details that relate to some deprecated usage -of `symbol-function' in place forms. - -*** `progv' was rewritten to use the `let' machinery. -A side effect is that variables without corresponding values are bound -to nil rather than being made unbound. - -*** The following methods of extending `setf' are obsolete -(use features from gv.el instead): -`define-modify-macro' (use `gv-letplace') -`defsetf' (use `gv-define-simple-setter' or `gv-define-setter') -`define-setf-expander' (use `gv-define-setter' or `gv-define-expander') -`get-setf-method' no longer exists (see "Incompatible Lisp Changes") - -** Diff mode - -*** Changes are now highlighted using the same color scheme as in -modern VCSes. Deletions are displayed in red (new faces -`diff-refine-removed' and `smerge-refined-removed', and new definition -of `diff-removed'), insertions in green (new faces `diff-refine-added' -and `smerge-refined-added', and new definition of `diff-added'). - -*** The variable `diff-use-changed-face' defines whether to use the -face `diff-changed', or `diff-removed' and `diff-added' to highlight -changes in context diffs. - -*** The new command `diff-delete-trailing-whitespace' removes trailing -whitespace introduced by a diff. - -** Ediff now uses the same color scheme as Diff mode. - -** Python mode - -A new version of python.el, which provides several new features, including: -per-buffer shells, better indentation, Python 3 support, and improved -shell-interaction compatible with iPython (and virtually any other -text based shell). - -*** Some user options have been replaced/renamed, including (old -> new): -**** python-indent -> python-indent-offset -**** python-guess-indent -> python-indent-guess-indent-offset -**** python-pdbtrack-do-tracking-p -> python-pdbtrack-activate -**** python-use-skeletons -> python-skeleton-autoinsert - -*** Some user options have been removed, including: - -**** `python-indent-string-contents': Strings are never indented. - -**** `python-honour-comment-indentation': -Comments are always considered as indentation markers. - -**** `python-continuation-offset': Indentation is automatically -calculated in a pep8 compliant way depending on the context. - -**** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist': -Have no direct mapping as the shell interaction is completely different. - -**** `python-python-command', `python-jython-command': -Replaced by `python-shell-interpreter'. - -**** `inferior-python-filter-regexp', `python-remove-cwd-from-path', -`python-pdbtrack-minor-mode-string', `python-source-modes': -No longer relevant. - -*** Some commands have been replaced (old -> new): -**** python-insert-class -> python-skeleton-class -**** python-insert-def -> python-skeleton-def -**** python-insert-for -> python-skeleton-for -**** python-insert-if -> python-skeleton-if -**** python-insert-try/except -> python-skeleton-try -**** python-insert-try/finally -> python-skeleton-try -**** python-insert-while -> python-skeleton-while -**** python-find-function -> python-nav-jump-to-defun -**** python-next-statement -> python-nav-forward-sentence -**** python-previous-statement -> python-nav-backward-sentence -**** python-beginning-of-defun-function -> python-nav-beginning-of-defun -**** python-end-of-defun-function -> python-nav-end-of-defun -**** python-send-buffer -> python-shell-send-buffer -**** python-send-defun -> python-shell-send-defun -**** python-send-region -> python-shell-send-region -**** python-send-region-and-go -> emulate with python-shell-send-region -and python-shell-switch-to-shell -**** python-send-string -> python-shell-send-string -**** python-switch-to-python -> python-shell-switch-to-shell -**** python-describe-symbol -> python-eldoc-at-point - -** D-Bus - -*** New variables `dbus-compiled-version' and `dbus-runtime-version'. - -*** The D-Bus object manager interface is implemented. - -*** Variables of type :(u)int32 and :(u)int64 accept floating points, -if their value does not fit into Emacs's integer range. - -*** The function `dbus-call-method' is now non-blocking. -It can be interrupted by `C-g'. `dbus-call-method-non-blocking' is obsolete. - -*** Signals can also be sent as unicast messages. - -*** The argument list of `dbus-register-signal' has been extended, -according to the new match rule types of D-Bus. - -*** `dbus-init-bus' supports private connections. - -*** There is a new function `dbus-setenv'. - -** `desktop-path' no longer includes the "." directory. -Desktop files are now located in ~/.emacs.d by default. - -** Dired - -*** `dired-do-async-shell-command' executes each file sequentially -if the command ends in `;' (when operating on multiple files). -Otherwise, it executes the command on each file in parallel. - -*** Typing `M-n' in the minibuffer of `dired-do-chmod', `dired-do-chgrp', -`dired-do-chown', and `dired-do-touch' yanks the attributes of the -file at point. - -*** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'), -`DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion') -mark/unmark/flag all files in the active region. - -*** The minibuffer default for `=' (`dired-diff') has changed. -It is now the backup file for the file at point, if one exists. -In Transient Mark mode the default is the file at the active mark. - -*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers. -The global binding for `M-=', `count-words-region' is in effect. - -** ERC - -*** New module "notifications", which can send a notification when you -receive a private message or your nickname is mentioned. - -*** ERC will look up server/channel names via auth-source and use any -channel keys found. - -*** New option `erc-lurker-hide-list', similar to `erc-hide-list', but -only applies to messages sent by lurkers. - -** reStructuredText mode - -*** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling, -fontification, comment handling, and customization have all been revised -and improved. - -*** Support for `imenu' and `which-function-mode'. - -*** The reStructuredText syntax is more closely covered. -Sphinx support has been improved. - -*** `rst-insert-list' inserts new list or continues existing lists. - -*** A negative prefix argument always works for `rst-adjust'. - -*** The window configuration is reset after displaying a TOC. - -*** The constant `rst-version' describes the rst.el package version. - -** Ruby mode - -*** Support for percent literals and recognition of regular expressions -in method calls without parentheses with more methods, including Cucumber -steps definitions. - -*** Improved syntax highlighting and indentation. - -*** New command `ruby-toggle-block', bound to `C-c {'. - -*** Some non-standard keybindings/commands have been removed: - -**** `ruby-electric-brace'; use `electric-indent-mode' instead. - -**** `ruby-mark-defun'; use `mark-defun'. - -**** `ruby-beginning-of-defun' and `ruby-end-of-defun' are replaced by -appropriate settings for the variables `beginning-of-defun-function' -and `end-of-defun-function'. - -**** Non-standard keybindings for `backward-kill-word', `comment-region', -`reindent-then-newline-and-indent' and `newline' have been removed. - -** Shell Script mode - -*** Pairing of parens/quotes uses `electric-pair-mode' instead of skeleton-pair. - -*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs. - -*** `sh-use-smie' lets you choose a new indentation and navigation code. - -** VHDL mode - -*** The free software compiler GHDL is supported (and now the default). - -*** Support for the VHDL-AMS packages has been added/updated. - -*** Updated to the 2002 revision of the VHDL standard. - -*** Accepts \r and \f as whitespace. - -** Apropos - -*** The faces used by Apropos are now directly customizable. -These faces are named `apropos-symbol', `apropos-keybinding', and so on; -see the `apropos' Custom group for details. - -*** The old options whose values specified faces to use have been removed -(i.e. `apropos-symbol-face', `apropos-keybinding-face', `apropos-label-face', -`apropos-match-face' and `apropos-property-face'.). - -** Buffer Menu - -*** This package has been rewritten to use Tabulated List mode. - -*** Option `Buffer-menu-buffer+size-width' is now obsolete. -Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead. - -** Calc - -*** Algebraic simplification mode is now the default. -To restrict to the limited simplifications given by the former -default simplification mode, use `m I'. - -** Calendar - -*** You can customize the header text that appears above each calendar month. -See the variable `calendar-month-header'. - -*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'. - -*** The calendars produced by cal-html include holidays. -Customize `cal-html-holidays' to change this. - -** CEDET - -*** The major modes from the parser generators "Bovine" and "Wisent" -are now properly integrated in Emacs. The file suffixes ".by" and ".wy" -are in `auto-mode-alist', and the corresponding manuals are included. - -*** EDE - -**** Menu support for the "Configuration" feature. This allows users to -choose the active configuration (such as debug or install) from the menu. - -**** New command `ede-set' to interactively set project-local variables. - -**** Support for compiling, debugging, and running in "generic" projects. - -**** Autoconf editing support for M4 macros with complex arguments. - -**** Compilation support for the "linux" project type. - -**** "simple" projects have been removed; use "generic" projects instead. - -*** Semantic - -**** Support for parsing #include statements inside a namespace in C/C++. - -**** Improved support for 'extern "C"' declarations in C/C++. - -**** The ability to ignore more common special C/C++ preprocessor symbols, -such as '__nonnull' and '__asm'. Add '__cplusplus' macro when parsing C++. -If available, include cdefs.h as an additional source of preprocessor symbols. - -**** Improved C/C++ function pointer parsing. - -**** In Python, support for converting imports to include file names. - -**** Ability to dynamically determine the Python load path. - -**** Support for the Python 'WITH' and 'AT' keywords. - -**** Improved tooltip completion. - -*** SRecode - -**** The SRecode manual is now included. - -**** Tag generation supports constructor/destructor settings and system -include differentiation. - -**** Addition of 'Framework' support: Frameworks are specified when a -particular kind of library (such as Android) is needed in a common language -mode (like Java). - -**** Support for nested templates and let variables override based on priority. - -**** Support for merging tables from multiple related modes, such as -default -> c++ -> arduino. - -** Compile has a new option `compilation-always-kill'. - -** Customize - -*** `custom-reset-button-menu' now defaults to t. - -*** Non-option variables are never matched in `customize-apropos' and -`customize-apropos-options' (i.e., the prefix argument does nothing for -these commands now). - -** Term - -*** The variables `term-default-fg-color' and `term-default-bg-color' -are now deprecated in favor of the customizable face `term'. - -*** You can customize how to display ANSI terminal colors and styles -by customizing the corresponding `term-color-', -`term-color-underline' and `term-color-bold' faces. - -** Tramp - -*** The syntax has been extended in order to allow ad-hoc proxy definitions. - -*** Remote processes are now also supported on remote MS-Windows hosts. - -** URL - -*** Structs made by `url-generic-parse-url' have nil `attributes' slot. -Previously, this slot stored semicolon-separated attribute-value pairs -appended to some imap URLs, but this is not compatible with RFC 3986. -So now the `filename' slot stores the entire path and query components, -and the `attributes' slot is always nil. - -*** New function `url-encode-url' for encoding a URI string. -The `url-retrieve' function now uses this to encode its URL argument, -in case that is not properly encoded. - -** notifications.el supports now version 1.2 of the Notifications API. -The function `notifications-get-capabilities' returns the supported -server properties. - -** Flymake uses fringe bitmaps to indicate errors and warnings. -See `flymake-fringe-indicator-position', `flymake-error-bitmap' and -`flymake-warning-bitmap'. - -** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings, -specifying URL types that should be converted to remote file names at -the FFAP prompt. The default is now '("ftp"). - -** New Ibuffer `derived-mode' filter, bound to `/ M'. -The old binding for `/ M' (filter by used-mode) is now bound to `/ m'. - -** New option `mouse-avoidance-banish-position' specifies where the -`banish' mouse avoidance setting moves the mouse. - -** In Perl mode, new option `perl-indent-parens-as-block' causes non-block -closing brackets to be aligned with the line of the opening bracket. - -** In Proced mode, new command `proced-renice' renices marked processes. - -** New option `async-shell-command-buffer' specifies the buffer to use -for a new asynchronous `shell-command' when the default output buffer -`*Async Shell Command*' is already in use. - -** SQL mode has a new option `sql-db2-escape-newlines'. -If non-nil, newlines sent to the command interpreter will be escaped -by a backslash. The default does not escape the newlines and assumes -that the sql statement will be terminated by a semicolon. - -** New command `tabulated-list-sort', bound to `S' in Tabulated List mode -(and modes that derive from it), sorts the column at point, or the Nth -column if a numeric prefix argument is given. - -** `which-func-modes' now defaults to t, so Which Function mode, when -enabled, applies to all applicable major modes. - -** `winner-mode-hook' now runs when the mode is disabled, as well as when -it is enabled. - -** Follow mode no longer works by using advice. -The option `follow-intercept-processes' has been removed. - -** `javascript-generic-mode' is now an obsolete alias for `js-mode'. - -** Hooks renamed to avoid obsolete "-hooks" suffix: -*** semantic-lex-reset-hooks -> semantic-lex-reset-functions -*** semantic-change-hooks -> semantic-change-functions -*** semantic-edits-new-change-hooks -> semantic-edits-new-change-functions -*** semantic-edits-delete-change-hooks -> semantic-edits-delete-change-functions -*** semantic-edits-reparse-change-hooks -> semantic-edits-reparse-change-functions -*** semanticdb-save-database-hooks -> semanticdb-save-database-functions -*** c-prepare-bug-report-hooks -> c-prepare-bug-report-hook -*** rcirc-sentinel-hooks -> rcirc-sentinel-functions -*** rcirc-receive-message-hooks -> rcirc-receive-message-functions -*** rcirc-activity-hooks -> rcirc-activity-functions -*** rcirc-print-hooks -> rcirc-print-functions -*** dbus-event-error-hooks -> dbus-event-error-functions -*** eieio-pre-method-execution-hooks -> eieio-pre-method-execution-functions -*** checkdoc-style-hooks -> checkdoc-style-functions -*** checkdoc-comment-style-hooks -> checkdoc-comment-style-functions -*** archive-extract-hooks -> archive-extract-hook -*** filesets-cache-fill-content-hooks -> filesets-cache-fill-content-hook -*** hfy-post-html-hooks -> hfy-post-html-hook -*** nndiary-request-create-group-hooks -> nndiary-request-create-group-functions -*** nndiary-request-update-info-hooks -> nndiary-request-update-info-functions -*** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions -*** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions - -** Obsolete packages - -*** assoc.el -In most cases, assoc+member+push+delq work just as well. -And in any case it's just a terrible package: ugly semantics, terrible -inefficiency, and not namespace-clean. -*** bruce.el -*** cust-print.el -*** ledit.el -*** mailpost.el -*** mouse-sel.el -*** patcomp.el - - -* Incompatible Lisp Changes in Emacs 24.3 - -** Docstrings starting with `*' no longer indicate user options. -Only variables defined using `defcustom' are considered user options. -The function `user-variable-p' is now an obsolete alias for -`custom-variable-p'. - -** The return values of `defalias', `defun' and `defmacro' have changed, -and are now undefined. For backwards compatibility, `defun' and -`defmacro' currently return the name of the newly defined -function/macro, but this should not be relied upon. - -** `random' by default now returns a different random sequence in -every Emacs run. Use `(random S)', where S is a string, to set the -random seed to a value based on S, in order to get a repeatable -sequence in later calls. - -** If the NEWTEXT arg to `replace-match' contains a substring "\?", -that substring is inserted literally even if the LITERAL arg is -non-nil, instead of causing an error to be signaled. - -** `select-window' now always makes the window's buffer current. -It does so even if the window was selected before. - -** The function `x-select-font' can return a font spec, instead of a -font name as a string. Whether it returns a font spec or a font name -depends on the graphical library. - -** `face-spec-set' no longer sets frame-specific attributes when the -third argument is a frame (that usage was obsolete since Emacs 22.2). - -** `set-buffer-multibyte' now signals an error in narrowed buffers. - -** The CL package's `get-setf-method' function no longer exists. -Generalized variables are now part of core Emacs Lisp, and implemented -differently to the way cl.el used to do it. It is not possible to -define a compatible replacement for `get-setf-method'. See the file -gv.el for internal details of the new implementation. - -** The arguments of `dbus-register-signal' are no longer just strings, -but keywords or keyword-string pairs. The old argument list will -still be supported for Emacs 24.x. - -** Miscellaneous name changes -Some Lisp symbols have been renamed to correct their spelling, -or to be more consistent with standard Emacs terminology. - -*** Renamed functions -**** hangul-input-method-inactivate -> hangul-input-method-deactivate -**** inactivate-input-method -> deactivate-input-method -**** quail-inactivate -> quail-deactivate -**** robin-inactivate -> robin-deactivate -**** viper-inactivate-input-method -> viper-deactivate-input-method -**** viper-inactivate-input-method-action -> - viper-deactivate-input-method-action -**** ucs-input-inactivate -> ucs-input-deactivate - -*** Renamed hooks -The old hooks are still supported for backward compatibility, but they -are deprecated and will be removed eventually. -**** input-method-inactivate-hook -> input-method-deactivate-hook -**** robin-inactivate-hook -> robin-deactivate-hook -**** quail-inactivate-hook -> quail-deactivate-hook - -*** Renamed variables -**** follow-deactive-menu -> follow-inactive-menu -**** inactivate-current-input-method-function -> - deactivate-current-input-method-function - -** Some obsolete functions, variables, and faces have been removed: -*** `last-input-char', `last-command-char', `unread-command-char' -*** `facemenu-unlisted-faces' -*** `rmail-decode-mime-charset' -*** `iswitchb-read-buffer' -*** `sc-version', `sc-submit-bug-report' -*** `set-char-table-default' -*** `string-to-sequence' (use `string-to-list' or `string-to-vector') -*** `compile-internal' -*** `modeline' -*** `mode-line-inverse-video' -*** `follow-mode-off-hook' -*** `cvs-commit-buffer-require-final-newline' -(use `log-edit-require-final-newline' instead) -*** `cvs-changelog-full-paragraphs' -(use `log-edit-changelog-full-paragraphs' instead) -*** `cvs-diff-ignore-marks', `cvs-diff-buffer-name' -*** `vc-ignore-vc-files' (use `vc-handled-backends' instead) -*** `vc-master-templates' (use `vc-handled-backends' instead) -*** `vc-checkout-carefully' - - -* Lisp Changes in Emacs 24.3 - -** CL-style generalized variables are now in core Elisp. -`setf' is autoloaded; `push' and `pop' accept generalized variables. -You can define your own generalized variables using `gv-define-simple-setter', -`gv-define-setter', etc. - -** Emacs tries to macroexpand interpreted (non-compiled) files during load. -This can significantly speed up execution of non-byte-compiled code, -but can also bump into previously unnoticed cyclic dependencies. -These are generally harmless: they will simply cause the macro calls -to be left for later expansion (as before), but will result in a -warning ("Eager macro-expansion skipped due to cycle") describing the cycle. -You may wish to restructure your code so this does not happen. - -** New sampling-based Elisp profiler. -Try M-x profiler-start, do some work, and then call M-x profiler-report. -When finished, use M-x profiler-stop. The sampling rate can be based on -CPU time or memory allocations. - -** `defun' also accepts a (declare DECLS) form, like `defmacro'. -The interpretation of the DECLS is determined by `defun-declarations-alist'. - -** New macros `setq-local' and `defvar-local'. - -** Face underlining can now use a wave. - -** `read-regexp' has a new argument HISTORY; the first argument PROMPT -of `read-regexp' accepts a string ending with a colon and space, and its -second argument DEFAULTS can be a list of strings accessible via `M-n' -in the minibuffer ahead of other hard-coded useful regexp-related values. -More commands use `read-regexp' now to read their regexp arguments. - -** Completion - -*** New function `completion-table-with-quoting' to handle completion -in the presence of quoting, such as file completion in shell buffers. - -*** New function `completion-table-subvert' to use an existing completion -table, but with a different prefix. - -** Debugger - -*** New error type and new function `user-error'. -These do not trigger the debugger. - -*** New option `debugger-bury-or-kill', saying what to do with the -debugger buffer when exiting debug. - -*** Set `debug-on-message' to enter the debugger when a certain -message is displayed in the echo area. This can be useful when trying -to work out which code is doing something. - -*** New var `inhibit-debugger', automatically set to prevent accidental -recursive invocations. - -** Window handling - -*** New command `fit-frame-to-buffer' adjusts the frame height to -fit the contents. - -*** The command `fit-window-to-buffer' can adjust the frame height -if the new option `fit-frame-to-buffer' is non-nil. - -*** New macro `with-temp-buffer-window', similar to -`with-output-to-temp-buffer'. - -*** `temp-buffer-resize-mode' no longer resizes windows that have been -reused. - -*** New option `switch-to-buffer-preserve-window-point' to restore a -window's point when switching buffers. - -*** New display action alist entries `window-height' and `window-width' -specify the size of new windows created by `display-buffer'. - -*** New display action alist entry `pop-up-frame-parameters', if -non-nil, specifies frame parameters to give any newly-created frame. - -*** New display action alist entry `inhibit-switch-frame', if non-nil, -tells display action functions to avoid changing which frame is -selected. - -*** New display action alist entry `previous-window', if non-nil, -specifies window to reuse in `display-buffer-in-previous-window'. - -*** New display action functions `display-buffer-below-selected', -and `display-buffer-in-previous-window'. - -*** The functions `get-lru-window', `get-mru-window' and `get-largest-window' -now accept a third argument to avoid choosing the selected window. - -*** Additional values recognized for option `window-combination-limit'. - -*** The following variables are obsolete, as they can be replaced by -appropriate entries in the `display-buffer-alist' function introduced -in Emacs 24.1: -**** `dired-shrink-to-fit' -**** `display-buffer-reuse-frames' -**** `display-buffer-function' -**** `special-display-buffer-names' -**** `special-display-frame-alist' -**** `special-display-function' -**** `special-display-regexps' - -** Time - -*** `current-time-string' no longer requires that its argument's year -must be in the range 1000..9999. It now works with any year supported -by the underlying C implementation. - -*** `current-time' now returns extended-format time stamps -(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds. -PSEC is typically a multiple of 1000 on current machines. Other -functions that use this format, such as `file-attributes' and -`format-time-string', have been changed accordingly. Old-format time -stamps are still accepted. - -*** The format of timers in `timer-list' and `timer-idle-list' is now -[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS]. -The PSECS slot is new, and uses picosecond resolution. It can be -accessed via the new `timer--psecs' accessor. - -*** Last-modified time stamps in undo lists now are of the form -(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS). - -** EIEIO - -*** Improved security when handling persistent objects: - -**** `eieio-persistent-read' now features optional arguments for specifying -the class to load, as well as a flag stating whether subclasses are allowed; -if provided, other classes will be rejected by the reader. For -compatibility with existing code, if the class is omitted only a -warning is issued. - -**** New specialized reader for pulling in classes and signaling errors -without evaluation of suspicious code. - -**** All slots that contain objects must have a :type. Slots with lists -of objects must use a new type predicate for a list of an object type. - -*** Support for `find-function' and similar utilities, through the addition -of filename support to generated symbols. - -** Floating point functions now always return special values like NaN, -instead of signaling errors, if given invalid args; e.g., (log -1.0). -Previously, they returned NaNs on some platforms but signaled errors -on others. The affected functions are acos, asin, tan, exp, expt, -log, log10, sqrt, and mod. - -** New fringe bitmap `exclamation-mark'. - -** Miscellaneous changes to special forms and macros - -*** `defun' and `defmacro' are now macros rather than special forms. - -*** `kbd' is now a function rather than a macro. - -** Miscellaneous new functions - -*** `set-temporary-overlay-map' sets up a temporary keymap that -takes precedence over most other maps for a short while (normally one key). - -*** `autoloadp' tests if its argument is an autoloaded object. - -*** `autoload-do-load' performs the autoloading operation. - -*** `buffer-narrowed-p' tests if the buffer is narrowed. - -*** `file-name-base' returns a file name sans directory and extension. - -*** `function-get' fetches a function property, following aliases. - -*** `posnp' tests if an object is a `posn'. - -*** `system-users' returns the user names on the system. - -*** `system-groups' returns the group names on the system. - -*** `tty-top-frame' returns the topmost frame of a text terminal. - -** The following functions and variables are obsolete: -*** `automount-dir-prefix' (use `directory-abbrev-alist') -*** `buffer-has-markers-at' -*** `macro-declaration-function' (use `macro-declarations-alist') -*** `window-system-version' (provides no useful information) -*** `dired-pop-to-buffer' (use `dired-mark-pop-up') -*** `query-replace-interactive' -*** `font-list-limit' (has had no effect since Emacs < 23) - - -* Changes in Emacs 24.3 on Non-Free Operating Systems - -** Cygwin builds can use the native MS Windows user interface. -Pass `--with-w32' to configure. The default remains the X11 interface. - -** Two new functions are available in Cygwin builds: -`cygwin-convert-file-name-from-windows' and -`cygwin-convert-file-name-to-windows'. These functions allow Lisp -code to access the Cygwin file-name mapping machinery to convert -between Cygwin and Windows-native file and directory names. - -** When invoked with the -nw switch to run on the Windows text-mode terminal, -Emacs now supports `mouse-highlight', help-echo (in the echo area), and -`mouse-autoselect-window'. - -** On MS Windows Vista and later Emacs now supports symbolic links. - -** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit -support for libxml2, even if its presence is detected. - -** On Mac OS X, the Nextstep port requires OS X 10.4 or later. - -** On Mac OS X, configure no longer automatically adds the Fink "/sw" -directories to the search path. You must add them yourself if you want them. - - -* Changes in Emacs 24.2 - -** This is mainly a bug-fix release. - - -* Installation Changes in Emacs 24.1 - -** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3 -to configure. Note that other libraries used by Emacs, RSVG and GConf, -also depend on Gtk+. You can disable them with --without-rsvg and ---without-gconf. - -** Emacs can be compiled with GnuTLS support. -This happens by default if a suitably recent version of the library is -found at build time. To prevent this, use the configure option -`--without-gnutls'. See below for GnuTLS features. - -** Emacs can be compiled with SELinux support. -This happens by default if a suitably recent version of the library is -found at build time. To prevent this, use the configure option -`--without-selinux'. See below for SELinux features. - -** Emacs can be compiled with ImageMagick support. -This happens by default if a suitably recent version of the library is -found at build time. To prevent this, use the configure option -`--without-imagemagick'. See below for ImageMagick features. -This feature is not available for the Nextstep or MS ports. - -** Emacs can be compiled with libxml2 support. -This happens by default if a suitably recent version of the library is -found at build time. To prevent this, use the configure option -`--without-xml2'. See below for libxml2 features. - -** By default, the installed Info and man pages are compressed. -You can disable this by configuring --without-compress-info. - -** New configure option --with-wide-int. -With it, Emacs integers typically have 62 bits, even on 32-bit machines. -On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB -to about 2 GiB. - -** New configure options: --with-mmdf, --with-mail-unlink, --with-mailhost. -These provide no new functionality, they just remove the need to edit -lib-src/Makefile by hand in order to use the associated features. - -** New configure option --enable-use-lisp-union-type. -This is only useful for Emacs developers to debug certain types of bugs. -This is not a new feature; only the configure flag is new. - -** The standalone programs digest-doc and sorted-doc are removed. -Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'. - -** The standalone program `fakemail' is removed. -If you need it, feedmail.el provides a superset of the functionality. - - -* Startup Changes in Emacs 24.1 - -** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte -command line arguments, and the EMACS_UNIBYTE environment variable, no -longer have any effect. (They were declared obsolete in Emacs 23.) - -** New command line option `--no-site-lisp' removes site-lisp directories -from load-path. -Q now implies this. This option does not affect the -EMACSLOADPATH environment variable (and hence has no effect for -Nextstep builds). - - -* Changes in Emacs 24.1 - -** Completion - -*** Many packages now use the `completion-at-point' command, -rather than implementing separate completion commands. - -*** `completion-at-point' now handles tags and semantic completion. - -*** Completion in a non-minibuffer now tries to detect the end of completion -and pops down the *Completions* buffer accordingly. - -*** New option `completion-cycle-threshold' allows completion cycling. - -*** New option `completion-category-overrides' for overriding the -default completion style in certain circumstances. - -*** New completion style `substring'. - -*** Completion of buffer names uses `substring' completion by default. - -*** The option `widget-complete-field' has been removed. - -** Mail changes - -*** The first time you try sending mail, Emacs asks for a mail method. -This is implemented by a new default for `send-mail-function', which -is `sendmail-query-once'. This offers to use the smtpmail package, or -to use the old defaults relying on external mail facilities -(`sendmail-send-it' on GNU/Linux and other Unix-like systems, and -`mailclient-send-it' on Windows). - -*** Typing `C-c m' in the buffer made by `M-x report-emacs-bug' -transfers the report to your desktop's preferred mail client, if there -is one. This uses either the "xdg-email" utility, or Mac OS's "open" -command. - -*** See Changes in Specialized Modes and Packages for SMTPmail changes -and Mail mode changes - -** Emacs server and client changes - -*** New option `server-port' specifies the port for TCP Emacs servers. - -*** New emacsclient argument -q/--quiet suppresses some status messages. - -*** New emacsclient argument --frame-parameters specifies the frame -parameters of any newly-created graphical frame. - -*** If emacsclient shuts down due to Emacs signaling an error, -its exit status is 1. - -*** New emacsclient argument --parent-id ID. -This opens a client frame in parent X window ID, via XEmbed, similar -to the --parent-id argument to Emacs. - -** Internationalization changes - -*** Emacs now supports display and editing of bidirectional text. -Right-to-left (RTL) scripts, such as Arabic, Farsi, and Hebrew, are -displayed in the correct visual order as expected by users of those -scripts. The display reordering is a "full bidirectionality" class -implementation of the Unicode Bidirectional Algorithm (UBA). Buffers -with no RTL text should look exactly the same as before. - -**** New buffer-local variable `bidi-display-reordering'. -To disable display reordering in a buffer, change this to nil. - -**** New buffer-local variable `bidi-paragraph-direction'. -If nil (the default), Emacs determines the base direction of each -paragraph from its text, as specified by the UBA. Setting the value -to `right-to-left' or `left-to-right' forces a base direction on each -paragraph. - -Paragraphs with right-to-left base direction are displayed starting at -the right window edge. - -*** Enhanced support for characters with no glyphs in available fonts, -or, on text terminals, characters that cannot be encoded by the -terminal coding system. The new option `glyphless-char-display-control' -specifies how to display them: as a hexadecimal code in a box, a thin -1-pixel space, an empty box, etc. - -*** New input methods for Farsi and Bulgarian -(farsi-isiri-9147, farsi-transliterate-banan, bulgarian-alt-phonetic). - -*** `nobreak-char-display' now also highlights Unicode hyphen chars -(U+2010 and U+2011). - -*** New Hebrew translation of the Emacs Tutorial. -Type `C-u C-h t' to choose it in case your language setup doesn't -automatically select it. - -** An Emacs Lisp package manager is now included. -This is a convenient way to download and install additional packages, -from a package repository at http://elpa.gnu.org. - -*** M-x list-packages shows a list of packages, which can be -selected for installation. - -*** New command `describe-package', bound to `C-h P'. - -*** By default, all installed packages are loaded automatically when -Emacs starts up. To disable this, set `package-enable-at-startup' to -nil. To specify the packages to load, customize `package-load-list'. - -** Custom theme changes - -*** New command `M-x customize-themes', which provides a convenient -interface for enabling and disabling Custom themes. - -*** New option `custom-theme-load-path' is the load path for themes. -Emacs no longer looks for Custom themes in `load-path'. The default -value of `custom-theme-load-path' says to look for themes in -`custom-theme-directory', followed by a subdirectory of -`data-directory' named "themes/", which contains a small selection of -built-in Custom themes. - -*** New option `custom-safe-themes' records known-safe theme files. -If a theme is not in this list, Emacs queries before loading it, and -offers to save the theme to `custom-safe-themes' automatically. By -default, all themes included in Emacs are treated as safe. - -** Improved GTK integration - -*** GTK scroll-bars are now placed on the right by default. -The function `set-scroll-bar-mode' can change this. - -*** GTK tool bars can have just text, just images or images and text. -Customize `tool-bar-style' to choose the style. On a Gnome desktop, -the default is taken from desktop settings. - -*** GTK tool bars can be placed on any edge of the frame. -The frame-parameter tool-bar-position controls this. It takes the -values top, left, right or bottom. The Options => Show/Hide menu has -entries for this. - -*** The default colors for selected text (the `region' face) are taken -from the GTK theme when Emacs is built with GTK. - -*** Emacs uses GTK tooltips by default if built with GTK. -You can disable this by changing `x-gtk-use-system-tooltips' to nil. - -** Graphical interface changes - -*** On graphical displays, the mode-line no longer ends in dashes. -Also, the first dash (which does not indicate anything) is just -displayed as a space. - -*** `menu-bar-select-buffer-function' lets you choose another operation -instead of `switch-to-buffer' when selecting an item in the Buffers menu. - -*** Lucid menus and dialogs can display antialiased fonts if Emacs is -built with Xft. These fonts can be set via X resources, for example: -Emacs.pane.menubar.font: Courier-12 - -** Exiting changes - -*** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP, -or if it receives a SIGINT signal in batch mode. - -*** `kill-emacs-hook' is now also run in batch mode. -Third-party code which adds to `kill-emacs-hook' should check if they -do the right thing in batch mode. - -** Scrolling changes - -*** New scrolling commands `scroll-up-command' and `scroll-down-command' -(bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom -of buffer at first key-press (instead they move to top/bottom of buffer) -when `scroll-error-top-bottom' is non-nil. - -*** New option `scroll-error-top-bottom' (see above). - -*** New scrolling commands `scroll-up-line' and `scroll-down-line' -scroll a line instead of full screen. - -*** New property `scroll-command' should be set on a command's symbol to -define it as a scroll command affected by `scroll-preserve-screen-position'. - -*** If you customize `scroll-conservatively' to a value greater than 100, -Emacs will never recenter point in the window when it scrolls due to -cursor motion commands or commands that move point (e.f., `M-g M-g'). -Previously, you needed to use `most-positive-fixnum' as the value of -`scroll-conservatively' to achieve the same effect. - -*** "Aggressive" scrolling now honors the scroll margins. -If you customize `scroll-up-aggressively' or -`scroll-down-aggressively' and move point off the window, Emacs now -scrolls the window so as to avoid positioning point inside the scroll -margin. - -** Basic SELinux support has been added. -This requires Emacs to be linked with libselinux at build time. - -*** Emacs preserves the SELinux file context when backing up. -Also, the function `copy-file' has an extra optional argument for -preserving SELinux context, and the return value of `backup-buffer' -now includes the SELinux context. - -*** New functions `file-selinux-context' and `set-file-selinux-context' -get and set the SELinux context of a file. - -** Trash changes - -*** `delete-by-moving-to-trash' now only affects commands that specify -trashing. This avoids inadvertently trashing temporary files. - -*** Calling `delete-file' or `delete-directory' with a prefix argument -now forces true deletion, regardless of `delete-by-moving-to-trash'. - -** File- and directory-local variable changes - -*** You can stop directory local vars from applying to subdirectories. -Add an element (subdirs . nil) to the alist portion of any variables -settings to indicate that the section should not apply to -subdirectories. - -*** Directory local variables can apply to some file-less buffers. -Affected modes include dired, vc-dir, and log-edit. For example, -adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will -turn on `whitespace-mode' for *vc-diff* buffers. Modes should call -`hack-dir-local-variables-non-file-buffer' to support this. - -*** Using "mode: MINOR-MODE" to enable a minor mode is deprecated. -Instead, use "eval: (minor-mode 1)". - -*** The variable `inhibit-first-line-modes-regexps' has been renamed -to `inhibit-local-variables-regexps'. As the name suggests, it now -applies to ALL file local variables, not just -*- lines. The -associated `inhibit-first-line-modes-suffixes' has been renamed in the -corresponding way. - -** Window changes - -*** The `quit-window' command now restores the last buffer displayed -in the quitted window. - -*** Resizing an Emacs frame now preserves proportional window sizes, -modulo restrictions like window minimum sizes and fixed-size windows. - -*** The behavior of `display-buffer' is now customizable in detail. - -**** New option `display-buffer-base-action' specifies a list of -user-determined display "actions" (functions and optional arguments -for choosing the displaying window). - -This takes precedence over the default display action, which is -specified by `display-buffer-fallback-action'. - -**** New option `display-buffer-alist' maps buffer name regexps to -display actions, taking precedence over `display-buffer-base-action'. - -*** New option `window-combination-limit'. -The new option `window-combination-limit' allows to return the space -obtained for resizing or creating a window more reliably to the window -from which such space was obtained. - -*** New option `window-combination-resize'. -The new option `window-combination-resize' allows to split a window that -otherwise cannot be split because it's too small by stealing space from -other windows in the same combination. Subsequent resizing or deletion -of the window will resize all windows in the same combination as well. - -*** New option `frame-auto-hide-function' lets you choose between -iconifying or deleting a frame when burying a buffer in a dedicated -frame, or quitting a window showing a buffer in a frame of its own. - -*** New commands `maximize-window' and `minimize-window'. -These maximize and minimize the size of a window within its frame. - -*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'. -These functions allow to navigate through the live buffers that have -been shown in a specific window. - -** Minibuffer changes - -*** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'. -This is handy for minibuffer-only frames, and is also used for the feature -where mouse-1 pops up *Messages*"', which can now easily be changed. - -*** Minibuffers set `truncate-lines' to nil. -If you want to change the value to something else, you could use -for example `minibuffer-setup-hook'. - -** `auto-mode-case-fold' is now enabled by default. - -** `backup-by-copying-when-mismatch' now defaults to t. - -** New basic faces `error', `warning', `success'. -These are used to highlight text indicating failure, caution or -successful operation. - -** New option `list-colors-sort' defines the color sort order -for `list-colors-display'. - -** The variable `focus-follows-mouse' now always defaults to nil. - - -* Editing Changes in Emacs 24.1 - -** Search changes - -*** C-y in Isearch is now bound to `isearch-yank-kill', instead of -`isearch-yank-line'. - -*** M-y in Isearch is now bound to `isearch-yank-pop', instead of -`isearch-yank-kill'. - -*** M-s C-e in Isearch is now bound to `isearch-yank-line'. - -** New commands `count-words-region' and `count-words'. - -*** M-= is bound to `count-words-region', not `count-lines-region'. -The `count-words-region' command, when called interactively, reports -the number of lines, words, and characters in the region. It is a -superset of the old `count-lines-region', which is now an obsolete -alias for it. - -** The command `just-one-space' (M-SPC), if given a negative argument, -also deletes newlines around point. - -** Deletion changes - -*** New option `delete-active-region'. -If non-nil, [delete] and DEL delete the region if it is active and no -prefix argument is given. If set to `kill', those commands kill -instead. - -*** New command `delete-forward-char', bound to [delete]. -This is meant for interactive use, and obeys `delete-active-region'. -The command `delete-char' does not obey `delete-active-region'. - -*** `delete-backward-char' is now a Lisp function. -Apart from obeying `delete-active-region', its behavior is unchanged. -However, the byte compiler now warns if it is called from Lisp; Lisp -callers should use delete-char with a negative argument instead. - -*** The option `mouse-region-delete-keys' has been deleted. - -** Selection changes. - -The default handling of clipboard and primary selections has been -changed to conform with modern X applications. In short, most -commands for killing and yanking text now use the clipboard, while -mouse commands use the primary selection. - -In the following, we provide a list of these changes, followed by a -list of steps to get the old behavior back if you prefer that. - -*** `select-active-regions' now defaults to t. -Merely selecting text (e.g. with drag-mouse-1) no longer puts it in -the kill ring. The selected text is put in the primary selection, if -the system possesses a separate primary selection facility (e.g. X). - -**** `select-active-regions' also accepts a new value, `only'. -This means to only set the primary selection for temporarily active -regions (usually made by mouse-dragging or shift-selection); -"ordinary" active regions, such as those made with C-SPC followed by -point motion, do not alter the primary selection. - -**** `mouse-drag-copy-region' now defaults to nil. - -*** mouse-2 is now bound to `mouse-yank-primary'. -This pastes from the primary selection, ignoring the kill-ring. -Previously, mouse-2 was bound to `mouse-yank-at-click'. - -*** `x-select-enable-clipboard' now defaults to t on all platforms. - -*** `x-select-enable-primary' now defaults to nil. -Thus, commands that kill text or copy it to the kill-ring (such as -M-w, C-w, and C-k) also use the clipboard---not the primary selection. - -**** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now -exactly equivalent to M-w, C-w, and C-y respectively. - -**** Note that on MS-Windows, `x-select-enable-clipboard' was already -non-nil by default, as Windows does not support the primary selection -between applications. - -*** To return to the previous behavior, do the following: - -**** Change `select-active-regions' to nil. -**** Change `mouse-drag-copy-region' to t. -**** Change `x-select-enable-primary' to t (on X only). -**** Change `x-select-enable-clipboard' to nil. -**** Bind `mouse-yank-at-click' to mouse-2. - -*** Support for X cut buffers has been removed. - -*** X clipboard managers are now supported. -To inhibit this, change `x-select-enable-clipboard-manager' to nil. - -** New command `C-x r N' (`rectangle-number-lines') numbers the lines -in the current rectangle. With a prefix argument, this prompts for a -number to count from and for a format string. - -** `redisplay-dont-pause' now defaults to t. -This makes Emacs feel more responsive to editing commands that arrive -at high rate, e.g. if you lean on some key, because stopping redisplay -in the middle (when this variable is nil) forces more expensive -updates later on, and Emacs appears to be unable to keep up. - -** The behavior of for active regions in Text mode has changed. -In Text and related modes, typing (`indent-for-tab-command') -when the region is active causes Emacs to indent all the lines in the -region, aligning them with the line previous to the first line in the -region (or with the left margin if there is no previous line). - -** When `occur' is called with a prefix argument, matching strings are -collected into the `*Occur*' buffer without line numbers. If there -are parenthesized subexpressions in the specified regexp, `occur' -reads replacement text that may contain \\& and \\N whose convention -follows `replace-match'. - - -* Changes in Specialized Modes and Packages in Emacs 24.1 - -** Archive Mode has basic support for browsing and updating 7z archives. - -** BibTeX mode - -*** BibTeX mode now supports biblatex. -Use the variable `bibtex-dialect' to select different BibTeX dialects. -`bibtex-entry-field-alist' is now an obsolete alias for -`bibtex-BibTeX-entry-alist'. - -*** New command `bibtex-search-entries', bound to C-c C-a. - -*** New `bibtex-entry-format' option `sort-fields', disabled by default. - -*** New variable `bibtex-search-entry-globally'. - -** Browse-url - -*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s. - -*** The default browser used by the package is now the "xdg-open" program, -on platforms that support it. This calls your desktop's preferred browser. - -** Calc - -*** Support for musical notes. - -*** Support for logarithmic units. - -*** No longer uses the tex prefix for TeX specific unit names when -using TeX or LaTeX mode. - -*** New option to highlight selections using faces. - -*** `calc-histogram' has the option of using a vector to determine the bins. - -*** New "O" option prefix. - -*** Use the "O" prefix to "d r" (`calc-radix') to turn on twos-complement mode. - -** Calendar, Diary, and Appt - -*** Diary entries can contain non-printing "comments". -See the variable `diary-comment-start'. - -*** Appointments can specify their individual warning times. -See the variable `appt-warning-time-regexp'. - -*** The function specified by `appt-disp-window-function' may be passed -lists of arguments if multiple appointments are due at similar times. -If you are using a custom function for this, you should update it. - -*** New function `diary-hebrew-birthday'. - -*** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array' -may no longer be nil, but must all be strings. - -*** The obsolete (since Emacs 22.1) method of enabling the appt -package by adding `appt-make-list' to `diary-hook' has been removed. -Use `appt-activate' instead. - -*** Some appt variables (obsolete since Emacs 22.1) have been removed: -appt-issue-message (use the function appt-activate) -appt-visible/appt-msg-window (use the variable appt-display-format) - -*** Some diary function aliases (obsolete since Emacs 22.1) have been removed: -view-diary-entries, list-diary-entries, show-all-diary-entries - -** CC Mode - -*** New feature to "guess" the style in an existing buffer. -The main entry point is M-x c-guess. - -*** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang). - -*** `c-beginning-of-defun' and `c-end-of-defun' now respect nested scopes. -Thus C-M-a will, by default, go to the beginning of the immediate function, -not the top level. - -*** "Macros with semicolons" can be registered for correct indentation. -Where such a macro ends a line (no semicolon) the next statement is no longer -parsed as a statement continuation. - -** Comint and modes derived from it use the standard completion code. - -** Compilation mode - -*** Compilation mode can be used without Font Lock mode. -`compilation-parse-errors-function' is now obsolete. - -*** New variable `compilation-filter-start', which is bound while -`compilation-filter-hook' runs. It records the start position of the -text inserted by `compilation-filter'. - -*** `compilation-error-screen-columns' and `compilation-first-column' -are obeyed in the editing buffer. So programming language modes can -set them, whereas previously only the value in the *Compilation* -buffer was used. - -** Customize - -*** Customize buffers now contain a search field. -The search is performed using `customize-apropos'. -To turn off the search field, set `custom-search-field' to nil. - -*** Options in customize group buffers start out hidden if not customized. -Use the arrow to the left of the option name to toggle visibility. - -*** custom-buffer-sort-alphabetically now defaults to t. - -*** The color widget now has a "Choose" button, which allows you to -choose a color via `list-colors-display'. - -** D-Bus - -*** It is now possible to access buses other than the default system -or session bus. - -*** The `dbus-register-method' and `dbus-register-property' functions -optionally do not register names. - -*** The new function `dbus-register-service' registers a known service -name on a D-Bus without also registering a property or a method. - -** Dired-x - -*** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'), -if called with a prefix argument, read a file name from the minibuffer -instead of using the current buffer. - -*** The "dired local variables" feature of Dired-x is obsolete. -The standard directory local variables feature replaces it. - -** ERC changes - -*** New options `erc-autojoin-timing' and `erc-autojoin-delay', -controlling attempts to autojoin a channel. - -*** New variable `erc-coding-system-precedence': If we use `undecided' -as the server coding system, this variable will then be consulted. -The default is to decode strings that can be decoded as utf-8 as -utf-8, and do the normal `undecided' decoding for the rest. - -** Eshell changes - -*** The default value of `eshell-directory-name' has changed -to be an "eshell" directory in `user-emacs-directory'. -The old "~/.eshell/" directory is still used if it exists, though. - -** gdb-mi - -*** The M-x gdb command now uses the GDB Machine Interface protocol. -It now supports multithread non-stop debugging and simultaneous -debugging of several threads. - -** Image mode - -*** RET (`image-toggle-animation') toggles animation, if applicable. -Animation plays once, unless the option `image-animate-loop' is non-nil. - -** Info - -*** New command M-x info-display-manual displays a named Info manual. -If that manual is already visited in some Info buffer, it displays -that buffer. (This is handy if you have many manuals in many *info* -buffers, and don't remember the name of the buffer visiting the manual -you want to consult.) Otherwise, it loads and displays the manual. - -*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'. -This is for compatibility with the stand-alone Info reader program, -and also because `Info-edit' is a rarely used command that is disabled -by default. - -** Mail mode changes (not Message mode) - -*** New command M-x mail-add-attachment for adding MIME attachments - -*** The command M-x mail-attach-file was renamed to M-x mail-insert-file. -(Its name is misleading, since it has nothing to do with MIME -attachments.) The old name is now an obsolete alias to the new name. - -** MH-E has been updated to MH-E version 8.3.1. -See MH-E-NEWS for details. - -** Modula-2 mode provides auto-indentation. - -** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags. - -** nXML mode no longer binds C-RET to `nxml-complete'. -Completion is now performed via `completion-at-point', bound to C-M-i -or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the -default), this performs tag completion. - -** Org mode has been updated to version 7.8.09. -See ORG-NEWS for details. - -** Prolog mode has been completely revamped, with lots of additional -functionality such as more intelligent indentation, electricity, -support for more variants, including Mercury, and a lot more. - -** Rmail - -*** The command `rmail-epa-decrypt' decrypts OpenPGP data -in the Rmail incoming message. - -*** The variable `rmail-message-filter' no longer has any effect. -This change was made in Emacs 23.1 but was not advertised at the time. -Try using `rmail-show-message-hook' instead. - -** Shell mode - -*** M-x shell prompts for the shell path name if the default directory -is a remote file name and neither the environment variable $ESHELL nor -the variable `explicit-shell-file-name' is set. - -*** TAB is now bound to the standard `completion-at-point' command, -which now implements the pcomplete rules for shell command completion. - -** SMTPmail - -*** SMTPmail now uses encrypted connections (via STARTTLS) by default -if the mail server supports them. This uses either built-in GnuTLS -support, or the starttls.el library. Customize `smtpmail-stream-type' -to change this. - -*** The variable `smtpmail-auth-credentials' has been removed. -By default, the information is now stored in the file ~/.authinfo. -This was the default value of smtpmail-auth-credentials. If you had -customized smtpmail-auth-credentials to a list of user names and -passwords, those settings are not used. During your first connection -to the smtp server, Emacs will prompt for the user name and password, -and offer to save them to ~/.authinfo. Or you can manually copy the -credentials to ~/.authinfo. For example, if you had - - (setq smtpmail-auth-credentials - '(("mail.example.org" 25 "jim" "s!cret"))) - -then the equivalent line in ~/.authinfo would be - - machine mail.example.org port 25 login jim password s!cret - -See the auth-source manual for more information, e.g. on encrypting -the credentials file. - -*** The variable `smtpmail-starttls-credentials' has been removed. -If you had that set, you need to put - - machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert" - -in your ~/.authinfo file instead. - -*** SMTPmail defaults to using the address in the From: header as the -SMTP MAIL FROM envelope. To override this, set `mail-envelope-from' -to the address you wish to use instead. - -** SQL mode - -*** New options `sql-port', `sql-connection-alist', `sql-send-terminator', -and `sql-oracle-scan-on'. - -*** New options controlling prompting for login parameters. -Each supported product has a custom variable `sql-*-login-params', -which is a list of the parameters to be prompted for before a -connection is established. - -*** The command `sql-product-interactive' now takes a prefix argument, -which causes it to prompt for an SQL product. - -*** Product-specific SQL interactive commands now take prefix arguments. -These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.), -given a prefix argument, prompt for a name for the SQL interactive -buffer. This reduces the need for calling `sql-rename-buffer'. - -*** SQL interactive modes suppress command continuation prompts, and -replace tabs with spaces. The first change impacts multiple line SQL -statements entered with C-j between each line, statements yanked into -the buffer and statements sent with `sql-send-*' functions. The -second prevents the MySQL and Postgres interpreters from listing -object name completions when sent text via `sql-send-*' functions. - -*** New command `sql-connect' starts a predefined SQLi session, -using the login parameters from `sql-connection-alist'. - -*** New "Save Connection" menu item in SQLi buffers. -This gathers the login params specified for the SQLi session, if it -was not started by a connection, and saves them as a new connection. - -*** New commands for listing database objects and details: -sql-list-all and sql-list-table. - -*** An API for manipulating SQL product definitions has been added. - -** TeX modes - -*** latex-electric-env-pair-mode keeps \begin..\end matched on the fly. - -** Tramp - -*** New inline access method "ksu" (kerberized su). - -*** The following access methods are discontinued: "ssh1_old", -"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish". - -*** The user option `remote-file-name-inhibit-cache' controls whether -remote file attributes are cached for better performance. - -*** The option `ange-ftp-binary-file-name-regexp' has changed its -default value to "". - -*** Handlers for `file-selinux-context' and `set-file-selinux-context' -for remote machines which support SELinux. - -** New function `url-queue-retrieve', which behaves like url-retrieve, -but with limits (`url-queue-parallel-processes', `url-queue-timeout') on -the degree of parallelism. - -** VC and related modes - -*** Support for pulling on distributed version control systems. -The command C-x v + (`vc-pull') runs a "pull" operation, if it is -supported (currently with Bzr, Git, and Mercurial), to update the -current branch and working tree. A prefix argument means to prompt -the user for specifics, e.g. a pull location. - -*** `vc-update' is now an alias for `vc-pull'. - -*** Support for merging on distributed version control systems. -The command C-x v m (`vc-merge') now runs a "merge" operation, if it -is supported (currently with Bzr, Git, and Mercurial), to merge -changes from another branch into the current one. It prompts for -specifics, e.g. a merge source. - -*** New option `vc-revert-show-diff' controls whether `vc-revert' -shows a diff while querying the user. It defaults to t. - -*** Log entries in some Log View buffers can be toggled to display a -longer description by typing RET (log-view-toggle-entry-display). -This is currently supported for Bzr, Git, and Mercurial (to support -another backend, define a `log-view-expanded-log-entry-function'). -In the Log View buffers made by C-x v L (`vc-print-root-log'), you can -use this to display the full log entry for the revision at point. - -*** New command `vc-ediff' allows visual comparison of two revisions -of a file similar to `vc-diff', but using ediff backend. - -*** The option `vc-initial-comment' was removed in Emacs 23.2, but -this was not advertised at the time. - -*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'. -Since Emacs 23, it has done the same thing as `toggle-read-only', but -this was not advertised at the time. - -** Obsolete modes - -*** abbrevlist.el - -*** erc-hecomplete.el (use erc-pcomplete.el instead) - -*** partial-completion-mode (complete.el) is obsolete. -You can get a comparable behavior with: -(setq completion-styles '(partial-completion initials)) -(setq completion-pcm-complete-word-inserts-delimiters t) - -*** pc-mode.el is obsolete (CUA mode is much more comprehensive). - -*** pgg is obsolete (use EasyPG instead). - -*** sregex.el is obsolete, since rx.el is a strict superset. - -*** s-region.el and pc-select.el are obsolete. -They are superseded by shift-select-mode, enabled by default since 23.1. - -*** vc-mcvs.el is obsolete (for lack of a maintainer). - -** Miscellaneous - -*** The Landmark game is now invoked with `landmark', not `lm'. -Its functions and variables have been similarly renamed. - -*** In `ido-file-completion-map', C-v is no longer bound to `ido-toggle-vc'. -(This interfered with cua-mode.) - -*** f90.el has some support for Fortran 2008 syntax. - -*** `copyright-fix-years' can optionally convert consecutive years to ranges. - -*** New command `nato-region' converts text to NATO phonetic alphabet. - - -* New Modes and Packages in Emacs 24.1 - -** Occur Edit mode applies edits made in *Occur* buffers to the -original buffers. It is bound to "e" in Occur mode. - -** New global minor mode electric-pair-mode. -When enabled, typing an open parenthesis automatically inserts the -matching closing one. - -** New global minor mode electric-indent-mode. -When enabled, typing certain characters triggers reindentation. -Major modes wishing to use this can set electric-indent-chars or -electric-indent-functions. - -** New global minor mode electric-layout-mode. -When enabled, typing certain characters automatically inserts newlines. -Major modes wishing to use this can set electric-layout-rules. - -** tabulated-list.el provides a generic major mode for tabulated data, -from which other modes can be derived. - -** pcase.el provides the ML-style pattern matching macro `pcase'. - -** secrets.el is an implementation of the Secret Service API, an -interface to password managers like GNOME Keyring or KDE Wallet. The -Secret Service API requires D-Bus for communication. The command -`secrets-show-secrets' offers a buffer with a visualization of the -secrets. - -** notifications.el provides an implementation of the Desktop -Notifications API. It requires D-Bus for communication. - -** soap-client.el supports access to SOAP web services from Emacs. -soap-inspect.el is an interactive inspector for SOAP WSDL structures. - -** New generic mode, xmodmap-generic-mode, for xmodmap files. - -** New emacs-lock.el package. -The previous version has been moved to obsolete/old-emacs-lock.el. -Now, there is a proper minor mode `emacs-lock-mode'. Protection -against exiting Emacs and killing the buffer can be set separately. -The mechanism for automatically turning off protection for buffers -with dead inferior processes has been generalized. - - -* Incompatible Lisp Changes in Emacs 24.1 - -** Passing a nil argument to a minor mode function call now ENABLES -the minor mode unconditionally. This is so that you can write e.g. - - (add-hook 'text-mode-hook 'foo-mode) - -to enable foo-mode in Text mode buffers, removing the need for -`turn-on-foo-mode' style functions. This affects all mode commands -defined by `define-minor-mode'. If called interactively, the mode -command still toggles the minor mode. - -** The return value of `backup-buffer' has changed. -It is now a list of three elements, where the second element is a list -describing the original file's SELinux context. If Emacs or the -system lacks SELinux support, the context list is (nil nil nil nil). -See "Basic SELinux support" above, under "Changes in Emacs 24.1". - -** `char-direction-table' and the `char-direction' function were deleted. -They were buggy and inferior to the new support of bidirectional -editing introduced in Emacs 24. If you need the bidirectional -properties of a character, use `get-char-code-property' with the last -argument `bidi-class'. - -** `copy-directory' now copies the source directory as a subdirectory -of the target directory, if the latter is an existing directory. The -new optional arg COPY-CONTENTS, if non-nil, makes the function copy -the contents directly into a pre-existing target directory. - -** For mouse click input events in the text area, the Y pixel -coordinate in the POSITION list now counts from the top of the text -area, excluding any header line. Previously, it counted from the top -of the header line. - -** Support for "old-style" backquotes, obsolete for 10+ years, has -been further reduced. Now a backquote not followed by a space is -always treated as a "new-style" backquote. Please remove all -"old-style" backquotes from your code. If your code uses backquotes -as documented in the Elisp manual, and compiles without warning, then -you have nothing to do in this regard. Code not following the -appropriate conventions may fail to compile. - -The most common cause of trouble seems to be an old-style backquote -followed by a newline. Another cause of trouble is vector notation -for key sequence notation: instead of [(control ,)] and [(control ')], -you should write [(control ?,)] and [(control ?')], which will work in -older Emacsen too. - -** The macro `eval-at-startup' was removed in Emacs 23.2, but this -was not advertised at the time. The function `custom-initialize-delay' -replaced all known uses. - -** `view-buffer' now treats special mode-class in the same way that -`view-file' has since Emacs 22 (i.e. it won't enable View mode if the -major mode is special). - -** Menu and tool bar changes - -*** During startup, Emacs no longer adds entries for `menu-bar-lines' -and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'. -With these alist entries omitted, `make-frame' checks the value of the -variable `menu-bar-mode'/`tool-bar-mode' to determine whether to create -a menu-bar or tool-bar, respectively. If the alist entries are added, -they override the value of `menu-bar-mode'/`tool-bar-mode'. - -*** The menu bar bindings's caches are not used any more. -Use (where-is-internal nil t) instead. - -** Regions created by mouse dragging are now normal active regions, -similar to those created by shift-selection (see Selection changes -above). In previous Emacs versions, these regions were delineated by -`mouse-drag-overlay'; that variable has been removed. - -** The fourth argument of `filter-buffer-substring' has been removed. -If you want to remove text properties from the final result, simply -pass the result through substring-no-properties. - -** cl.el no longer provides `cl-19'. - -** The following obsolete functions and aliases have been removed -(the appropriate new function is given in parentheses; "not needed" -means you can just remove all calls to the function in question): - -*** `comint-kill-output' (`comint-delete-output') -*** `decompose-composite-char' (`char-to-string') -*** `outline-visible' (`outline-invisible-p') -*** `internal-find-face' (`facep') -*** `internal-get-face' (`facep and check-face') -*** `frame-update-faces' (not needed) -*** `frame-update-face-colors' (`frame-set-background-mode') -*** `x-frob-font-weight' and `x-frob-font-slant' (`make-face-*' functions) -*** `x-make-font-bold' and `x-make-font-demibold' (`make-face-bold') -*** `x-make-font-italic' and `x-make-font-oblique' (`make-face-italic') -*** `x-make-font-bold-italic' (`make-face-bold-italic') -*** `x-make-font-unbold' (`make-face-unbold') -*** `x-make-font-unitalic' (`make-face-unitalic') -*** `mldrag-drag-mode-line' (`mouse-drag-mode-line') -*** `mldrag-drag-vertical-line' (`mouse-drag-vertical-line') -*** `iswitchb-default-keybindings' (`iswitchb-mode') -*** `char-bytes' (== 1) -*** `isearch-return-char' (`isearch-printing-char') -*** `make-local-hook' (not needed) -*** `set-screen-height' (`set-frame-height') -*** `set-screen-width' (`set-frame-width') - -** The following obsolete variables and varaliases have been removed -(the appropriate new variable is given in parentheses): - -*** `checkdoc-minor-keymap' (`checkdoc-minor-mode-map') -*** `vc-header-alist' (`vc-BACKEND-header') -*** `directory-sep-char' (== ?/) -*** `font-lock-defaults-alist' (`font-lock-defaults') -*** `e' (`float-e'). - -** The following obsolete files were removed: -sc.el, x-menu.el, rnews.el, rnewspost.el - -** The format of the finder-inf.el file has changed, since the Finder -mechanism is now based on the package system. The variable -`finder-package-info' is replaced by `package--builtins' and -`finder-keywords-hash'. - -** When generating autoloads, `update-directory-autoloads' no longer -assumes every inspected file is in your `load-path'. It instead -generates relative names according to the current `load-path'. - - -* Lisp Changes in Emacs 24.1 - -** Code can now use lexical scoping by default instead of dynamic scoping. -The `lexical-binding' variable enables lexical scoping for local -variables. It is typically set via a file-local variable in the first -line of the file, in which case it applies to all the code in that -file. - -*** `eval' takes a new optional argument `lexical' to choose the new lexical -binding instead of the old dynamic binding mode. - -*** Lexically scoped interpreted functions are represented with a new form -of function value which looks like (closure ENV ARGS &rest BODY). - -*** New macro `letrec' to define recursive local functions. - -*** `defvar' and `defconst' now mark the variable as special (dynamic). -So do `defcustom' and other forms that call `defvar' as a subroutine. - -*** New function `special-variable-p' to check whether a variable is -declared as dynamically bound. - -*** The form ((lambda ...) ...) is deprecated. - -** An Emacs Lisp testing tool is now included. -Emacs Lisp developers can use this tool to write automated tests for -their code. See the ERT info manual for details. - -** Changes for bidirectional display and editing - -*** New function `current-bidi-paragraph-direction'. -This returns the base direction of the paragraph at point. - -*** New function `bidi-string-mark-left-to-right'. -Given a string containing characters from right-to-left scripts, this -function returns another string which can be safely inserted into a -buffer, such that any following text will be always displayed to the -right of that string. (This works by appending an invisible Unicode -"LEFT-TO-RIGHT MARK" character if the argument string might need it.) - -This is useful when the buffer has overall left-to-right paragraph -direction and you need to insert a string whose contents are not known -in advance, without disrupting the layout of the line. - -** Window changes - -*** Window tree functions are accessible in Elisp. -Functions are provided to return the parent, siblings or child windows -of any window including internal windows (windows not associated with a -buffer) in the window tree. - -**** New function `window-valid-p' gives non-nil for live and internal -windows. - -**** Window manipulation can deal with internal windows. -Many window handling functions like `split-window', `delete-window', or -`delete-other-windows' as well as the window resizing functions can now -act on any window including internal ones. - -*** window-total-height/-width vs window-body-height/-width. -The function `window-height' has been renamed to `window-total-height' -and `window-width' has been renamed to `window-body-width'. The old -names are provided as aliases. Two new functions `window-total-width' -and `window-body-height' are provided. - -*** Window parameters specific to window handling functions. -For each window you can specify a parameter to override the default -behavior of a number of functions like `split-window', `delete-window' -and `delete-other-windows'. The variable `ignore-window-parameters' -allows to ignore processing such parameters. - -*** New semantics of third argument of `split-window'. -The third argument of `split-window' has been renamed to SIDE and can be -set to any of the values 'below, 'right, 'above, or 'left to make the -new window appear on the corresponding side of the window that shall be -split. Any other value of SIDE will cause `split-window' to split the -window into two side-by-side windows as before. - -*** Window resizing functions. -A new standard function for resizing windows called `window-resize' has -been introduced. This and all other functions for resizing windows no -longer delete any windows when they become too small. - -*** Deleting the selected window now selects the most recently selected -live window on that frame instead. - -*** `adjust-window-trailing-edge' adjustments. -`adjust-window-trailing-edge' can now deal with fixed-size windows and -is able to resize other windows if a window adjacent to the trailing -edge cannot be shrunk any more. This makes its behavior more similar to -that of Emacs 21 without compromising, however, its inability to delete -windows which was introduced in Emacs 22. - -*** Window-local buffer lists. -Windows now have local buffer lists. This means that removing a buffer -from display in a window will preferably show the buffer previously -shown in that window with its previous window-start and window-point -positions. This also means that the same buffer may be automatically -shown twice even if it already appears in another window. - -*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW, -which if non-nil requires the buffer to be displayed in the currently -selected window, signaling an error otherwise. If nil, another window -can be used, e.g. if the selected one is strongly dedicated. - -*** `split-window-vertically' and `split-window-horizontally' renamed -to `split-window-below' and `split-window-right' respectively. -The old names are kept as aliases. - -*** Display actions - -**** The second arg to `display-buffer' and `pop-to-buffer' is now -named ACTION, and takes a display action of the same form as -`display-buffer-base-action' (see Changes, above). A non-nil, -non-list value is treated specially, as the old meaning. - -**** New variable `display-buffer-overriding-action'. - -**** The procedure of `display-buffer' etc. to choose a window is -determined by combining `display-buffer-overriding-action', -`display-buffer-alist', the ACTION arg, `display-buffer-base-action', -and `display-buffer-fallback-action'. The second and fourth of these -are user-customizable variables. - -See the docstring of `display-buffer' for details. - -*** New functions `window-state-get' and `window-state-put'. -These functions allow to save and restore the state of an arbitrary -frame or window as an Elisp object. - -** Completion - -*** New variable `completion-extra-properties' used to specify extra -properties of the current completion: -- :annotate-function, same as the old completion-annotate-function. -- :exit-function, function to call after completion took place. - -*** Functions on `completion-at-point-functions' can return any of the -properties valid for `completion-extra-properties'. - -*** `completion-annotate-function' is obsolete. - -*** New `metadata' method for completion tables. The metadata thus returned -can specify various details of the data returned by `all-completions': -- `category' is the kind of objects returned (e.g., `buffer', `file', ...), - used to select a style in completion-category-overrides. -- `annotation-function' to add annotations in *Completions*. -- `display-sort-function' to specify how to sort entries in *Completions*. -- `cycle-sort-function' to specify how to sort entries when cycling. - -*** `minibuffer-local-filename-must-match-map' is not used any more. -Instead, the bindings in `minibuffer-local-filename-completion-map' -are combined with `minibuffer-local-must-match-map'. - -*** New variable `completing-read-function' allows overriding the -behavior of `completing-read'. - -** `glyphless-char-display' can now distinguish between graphical and -text terminal display, via a char-table entry that is a cons cell. - -** `pre-command-hook'/`post-command-hook' are not reset to nil on error. -Instead, the offending function is removed. - -** New hook types - -*** New function `run-hook-wrapped' for running an abnormal hook by -passing the hook functions as arguments to a "wrapping" function. -Like `run-hook-with-args-until-success', it stops at the first -non-nil return value. - -*** New macro `with-wrapper-hook' for running an abnormal hook as a -set of "wrapping" filters, similar to around advice. -(A version of this macro was actually added in Emacs 23.2 but was not -advertised at the time.) - -** Debugger changes - -*** New macro `condition-case-unless-debug' (this was actually added in -Emacs 23.1 as condition-case-no-debug, but not advertised) - -*** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised. - -*** Variable `stack-trace-on-error' removed. - -*** The debugger can now "continue" from an error, which means it will -jump to the error handler as if the debugger had not been invoked -instead of jumping all the way to the top-level. - -*** Set `debug-on-event' to enter the debugger on events like SIGUSR1. -This can be useful when `inhibit-quit' is set. - -** The new function `server-eval-at' allows evaluation of Lisp forms on -named Emacs server instances. - -** `call-process' and `call-process-region' allow a `(:file "file")' spec -to redirect STDOUT to a file. - -** The function `format-time-string' now supports the %N directive, -for higher-resolution time stamps. - -** New input reading functions - -*** New function `read-char-choice' reads a restricted set of -characters, discarding any inputs not inside the set. - -*** The command `read-color' now requires a match for a color name -or RGB triplet, instead of signaling an error if the user provides -invalid input. - -**** `facemenu-read-color' is now an alias for `read-color'. - -** `image-library-alist' is renamed to `dynamic-library-alist'. -The variable is now used to load all kind of supported dynamic libraries, -not just image libraries. The previous name is still available as an -obsolete alias. - -** Syntax parsing changes - -*** New variable `syntax-propertize-function'. -This replaces `font-lock-syntactic-keywords' which is now obsolete. -This allows syntax-table properties to be set independently from font-lock: -just call syntax-propertize to make sure the text is propertized. -Together with this new variable come a new hook -syntax-propertize-extend-region-functions, as well as two helper functions: -syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords -as-is; and syntax-propertize-rules which provides a new way to specify -syntactic rules. - -*** Syntax tables support a new "comment style c" additionally to style b. - -** New hook `post-self-insert-hook', run after `self-insert-command'. - -** frame-local variables cannot be let-bound any more. - -** Major and minor mode changes - -*** `set-auto-mode' now respects mode: local variables at the end of files, -as well as those in the -*- line. - -*** `prog-mode' is a new major mode from which programming modes -should be derived. - -**** `prog-mode-hook' can be used to enable features for programming -modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable -on-the-fly spell checking for comments and strings. - -*** New hook `change-major-mode-after-body-hook', run by -`run-mode-hooks' just before any other mode hooks. - -*** Enabled globalized minor modes can be disabled in specific major modes. -If the global mode is global-FOO-mode, then run (FOO-mode -1) in the -major mode's hook, where FOO-mode toggles the mode on a per-buffer basis. - -*** `define-minor-mode' accepts new keywords :variable, :after-hook. - -** File-handling changes - -*** `delete-file' and `delete-directory' now accept optional arg TRASH. -Trashing is performed if TRASH and `delete-by-moving-to-trash' are -both non-nil. Interactively, TRASH defaults to t, unless a prefix -argument is supplied (see Trash changes, above). - -*** New file predicates: `file-equal-p', `file-in-directory-p'. - -** Tool-bars can display separators. -Tool-bar separators are handled like menu separators in menu-bar maps, -i.e. via menu entries of the form `(menu-item "--")'. - -** Image API - -*** Animated images support (currently animated gifs only). - -**** `image-animated-p' returns non-nil if an image can be animated. - -**** `image-animate' animates a supplied image spec. - -**** `image-animate-timer' returns the timer object for an image that -is being animated. - -*** `image-extension-data' has been renamed to `image-metadata'. -The old name is an obsolete alias to the new one. - -*** Image mode can view any image type that ImageMagick supports. -This requires Emacs to be built with ImageMagick support. - -**** New function `imagemagick-types', defined if ImageMagick support -is enabled, returns a list of image file extensions that your -ImageMagick installation supports. - -**** New function `imagemagick-register-types' enables ImageMagick -image types in Image mode and in `create-image' and other helper -functions. - -**** New option `imagemagick-types-inhibit' excludes certain -ImageMagick image types from `imagemagick-register-types'. - -**** With ImageMagick support, there are extra Image mode commands to -resize and rotate images: `image-transform-fit-to-height', -`image-transform-fit-to-width', `image-transform-set-rotation', and -`image-transform-set-scale'. - -** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and -passes it to the mail user agent function. This argument specifies an -action for returning to the caller after finishing with the mail. For -example, this is used by Rmail to optionally delete a mail window. - -** XML and HTML parsing -If Emacs is compiled with libxml2 support, there are two new -functions: `libxml-parse-html-region' (which parses "real world" HTML) -and `libxml-parse-xml-region' (which parses XML). Both return an -Emacs Lisp parse tree. - -** Networking and encryption changes - -*** `open-network-stream' can now be used to open an encrypted stream. -It now accepts an optional `:type' parameter for initiating a TLS -connection, directly or via STARTTLS. To do STARTTLS, additional -parameters (`:end-of-command', `:success', `:capabilities-command') -must also be supplied. - -*** New library gnutls.el. -The new function `gnutls-available-p' returns non-nil if Emacs is -built with GnuTLS support. The main entry points are -`open-gnutls-stream' and `gnutls-negotiate'. It's easiest to use -these functions through `open-network-stream', because that can -upgrade connections through STARTTLS opportunistically or use plain -SSL, depending on your needs. For debugging, set `gnutls-log-level' -greater than 0. - -*** New primitive `secure-hash' that supports many secure hash algorithms: -md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library -sha1.el has been removed. The `sha1' feature is provided by default. - -** Isearch - -*** New hook `isearch-update-post-hook' that runs in `isearch-update'. - -** Progress reporters can now "spin". -The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can -now be nil, or omitted. This makes a "non-numeric" reporter. Each -time you call `progress-reporter-update' on that progress reporter, -with a nil or omitted VALUE argument, the reporter message is -displayed with a "spinning bar". - -** New variable `revert-buffer-in-progress-p' is true while a buffer is -being reverted, even if the buffer has a local `revert-buffer-function'. - -** New variables `delayed-warnings-list' and `delayed-warnings-hook'. -If delayed-warnings-list is non-nil, the command loop calls -`delayed-warnings-hook' after `post-command-hook'. At present, this -is only used by Emacs on some platforms to display warnings during -startup, which might otherwise not be noticed. This uses the -functions `display-delayed-warnings' and `collapse-delayed-warnings'. - -** rx.el has a new `group-n' construct for explicitly numbered groups. - -** New function `make-composed-keymap' that constructs a new keymap -from multiple input maps. You can use this to make a keymap that -inherits from multiple maps, eg: - (set-keymap-parent newmap (make-composed-keymap othermap parent)) - -** New function `string-prefix-p'. -(This was actually added in Emacs 23.2 but was not advertised at the time.) - -** New reader macro ## that stands for the empty symbol. -This means that the empty symbol can now be read back. Also, #: by itself -(when not immediately followed by a possible symbol character) stands for -an empty uninterned symbol. - -** New math functions `isnan', `copysign', `frexp', `ldexp'. - -** The following functions and variables are obsolete: - -*** `tooltip-use-echo-area' is obsolete. -Rather than setting this to t, disable Tooltip mode instead. - -*** buffer-substring-filters is obsolete. -Use `filter-buffer-substring-functions' instead. - -*** `byte-compile-disable-print-circle' is obsolete. - -*** `deferred-action-list' and `deferred-action-function' are obsolete. -Use `post-command-hook' instead. - -*** `font-lock-maximum-size' is obsolete. - - -* Changes in Emacs 24.1 on Non-Free Operating Systems - -** On MS Windows, Emacs warns when using the obsolete init file _emacs, -and also when HOME is set to C:\ by default. - -** New configure.bat options - -*** --enable-checking builds Emacs with extra runtime checks. - -*** --distfiles specifies files to be included in binary distribution. - -*** --without-gnutls disables automatic GnuTLS detection. - -*** --lib for general library linkage, works with the USER_LIBS build variable. - -** New make target `dist' to create binary distribution for MS Windows. - -** The Lisp function `w32-default-color-map' is now obsolete. -(It is only used internally in the Emacs C code.) - -** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but -reappear on mouse-over. (Requires OS X 10.6 or later.) - -** On Mac OS X, dragging a file into Emacs visits the file, like on -other platforms, rather than inserting its contents into the buffer. +** OS X on PowerPC is no longer supported. ---------------------------------------------------------------------- diff --git a/etc/NEWS.19 b/etc/NEWS.19 index 17104aaf3ca..184f8540c76 100644 --- a/etc/NEWS.19 +++ b/etc/NEWS.19 @@ -477,7 +477,7 @@ buffers that use a particular major mode, use the mode hook, as in this example: (add-hook 'emacs-lisp-mode-hook - '(lambda () (imenu-add-to-menubar "Index"))) + (lambda () (imenu-add-to-menubar "Index"))) ** Changes in BibTeX mode. diff --git a/etc/NEWS.24 b/etc/NEWS.24 new file mode 100644 index 00000000000..3d580ee36c4 --- /dev/null +++ b/etc/NEWS.24 @@ -0,0 +1,3856 @@ +GNU Emacs NEWS -- history of user-visible changes. + +Copyright (C) 2010-2014 Free Software Foundation, Inc. +See the end of the file for license conditions. + +Please send Emacs bug reports to bug-gnu-emacs@gnu.org. +If possible, use M-x report-emacs-bug. + +This file is about changes in Emacs version 24. + +See files NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, +and NEWS.1-17 for changes in older Emacs versions. + +You can narrow news to a specific version by calling `view-emacs-news' +with a prefix argument or by typing C-u C-h C-n. + +Temporary note: ++++ indicates that all necessary documentation updates are complete. + (This means all relevant manuals in doc/ AND lisp doc-strings.) +--- means no change in the manuals is needed. +When you add a new item, use the appropriate mark if you are sure it applies, +otherwise leave it unmarked. + + +* Changes in Emacs 24.5 + +--- +** The default value of `history-length' has increased to 100. + + +* Changes in Specialized Modes and Packages in Emacs 24.5 + +** `call-process-shell-command' and `process-file-shell-command' +don't take "&rest args" any more. + +** Obsolete packages + +*** cc-compat.el + +--- +*** crisp.el - moved to elpa.gnu.org. + +--- +*** tpu-edt.el, ws-mode.el +These emulations of old editors are believed to be no longer relevant + - contact emacs-devel@gnu.org if you disagree. + +--- +*** vi.el, vip.el (try M-x viper instead) + + +* Installation Changes in Emacs 24.4 + +** Emacs can now be compiled with ACL (access control list) support. +This happens by default if a suitable support library is found at +build time, like libacl on GNU/Linux. To prevent this, use the +configure option `--disable-acl'. See below for the features this provides. + +** Emacs can now be compiled with file notification support. +This happens by default if a suitable system library is found at +build time. To prevent this, use the configure option +`--without-file-notification'. See below for file-notify features. +This feature is not available for the Nextstep port. + +** Emacs can now be compiled with zlib support. +This happens by default if zlib is present, which it normally is. +To prevent this, use the configure option `--without-zlib'. +This provides the function `zlib-decompress-region'; see below for details. + +** The configure option `--without-compress-info' has been generalized, +and renamed to `--without-compress-install'. It now prevents compression +of _any_ files during installation. + +** The configure option `--with-crt-dir' has been removed. +It is no longer needed, as the crt*.o files are no longer linked specially. + +** Directories passed to configure option `--enable-locallisppath' are +no longer created during installation. + +** Emacs for Nextstep (Mac OS X, GNUstep) can be built with ImageMagick support. +This requires pkg-config to be available at build time. + + +* Startup Changes in Emacs 24.4 + +** When initializing `load-path', an empty element in the EMACSLOADPATH +environment variable (either leading, e.g., ":/foo"; trailing, e.g., +"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default +load-path (the one that would have been used if EMACSLOADPATH was unset). +This makes it easier to _extend_ the load-path via EMACSLOADPATH +(previously, EMACSLOADPATH had to specify the complete load-path, +including the defaults). (In older versions of Emacs, an empty element +was replaced by ".", so use an explicit "." now if that is what you want.) + +** The -L option, which normally prepends its argument to load-path, +will instead append, if the argument begins with `:' (or `;' on MS Windows; +i.e., `path-separator'). + +** If you use either site-load.el or site-init.el to customize the dumped +Emacs executable, any changes to `load-path' that these files make +will no longer be present after dumping. To affect a permanent change +to `load-path', use the `--enable-locallisppath' option of `configure'. + +** The user option `initial-buffer-choice' can now specify a function +to set up the initial buffer. + + +* Changes in Emacs 24.4 + +** Support for ACLs (access control lists). +This requires a suitable support library to be found at build time. +On GNU/Linux, the POSIX ACL interface is used via libacl. +On MS-Windows, the NT Security APIs are used to emulate the POSIX interface. +ACLs are extended file attributes, used e.g. for finer-grained permissions. + +*** Emacs preserves the ACL entries of files when backing up. + +*** New functions `file-acl' and `set-file-acl' get and set file ACLs. + +** Support for menus on text-mode terminals. +If the terminal supports a mouse, clicking on the menu bar, or on +sensitive portions of the mode line or header line, will drop down the +menu defined at that position. Likewise, clicking C-mouse-1, C-mouse-2, or +C-mouse-3 on the text area will pop up the menus defined for those locations. + +If the text terminal does not support a mouse, you can activate the +first menu-bar menu by typing F10, which invokes `menu-bar-open'. + +If you want the previous behavior, where F10 invoked `tmm-menubar', +customize the option `tty-menu-open-use-tmm' to a non-nil value. +(Typing M-` always invokes `tmm-menubar', even if `tty-menu-open-use-tmm' +is nil.) + +** New option `load-prefer-newer' affects how the `load' function chooses +the file to load. If this is non-nil, then when both .el and .elc +versions of a file exist, and the caller did not explicitly specify +which one to load, then the newer file is loaded. The default, nil, +means to always load the .elc file. + +** Multi-monitor support + +*** New functions `display-monitor-attributes-list' and +`frame-monitor-attributes' can be used to obtain information about +each physical monitor on multi-monitor setups. + +*** The functions `display-pixel-width' and `display-pixel-height' now +behave consistently among the platforms: they return the pixel width +or height for all physical monitors associated with the given display +as if they were on X. To get information for each physical +monitor, use the new functions above. Similar notes also apply to +`x-display-pixel-width', `x-display-pixel-height', `display-mm-width', +`display-mm-height', `x-display-mm-width', and `x-display-mm-height'. + +** New function `zlib-decompress-region', which decompresses gzip- and +zlib-format compressed data using built-in zlib support (if available). + +** The *Messages* buffer is created in `messages-buffer-mode', +a new major mode, with read-only status. Any code that might create +the *Messages* buffer should call the function `messages-buffer' to do +so and set up the mode. + +** The cursor stops blinking after 10 blinks (by default) on X and Nextstep. +You can change the default by customizing `blink-cursor-blinks'. + +** In keymaps where SPC scrolls forward, S-SPC now scrolls backward. +This affects View mode, etc. + +** The default value of `make-backup-file-name-function' is no longer nil. +Instead it defaults to a function that does what the nil value used to. + +** Help + +*** The command `apropos-variable' is renamed to `apropos-user-option'. +`apropos-user-option' shows all user options, while `apropos-variable' +shows all variables. When called with a universal prefix argument, +the two commands swap their behaviors. When `apropos-do-all' is +non-nil, they output the same results. + +*** The key `?' now describes prefix bindings, like `C-h'. + +*** The command `describe-function' has been extended for EIEIO. +Running it on constructors will show a full description of the +generated class. For generic functions, it will show all +implementations together with links to the source. The old commands +`describe-class', `describe-constructor' and `describe-generic' were +removed. + +*** The function `quail-help' is no longer an interactive command. +Use `C-h C-\' (`describe-input-method') instead. + +** Frame and window handling + +*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', +bound to and M-, respectively. + +*** New hooks `focus-in-hook', `focus-out-hook'. +These are normal hooks run when an Emacs frame gains or loses input focus. + +*** The function `window-in-direction' now takes additional arguments +for specifying a reference point, wrapping the selection around frame +borders, and specifying ways to select the minibuffer window. + +*** Emacs can now change frame sizes in units of pixels, rather than +text rows or columns. When maximizing a frame or making it fullscreen, +remaining extra pixels are no longer given to the minibuffer, the rightmost +fringe, or other unusable space, but are distributed among the text +areas of the frame's windows. If the new option `frame-resize-pixelwise' +is non-nil, all frame size changes happen pixelwise and set the +corresponding size hints for the window manager. + +*** Emacs can now change window sizes in units of pixels. +Mouse-dragging a mode line or window divider now changes the size of +adjacent windows pixelwise. If the new option `window-resize-pixelwise' +is non-nil, functions like `balance-windows-area' and `fit-window-to-buffer' +resize windows pixelwise. Most functions for changing or accessing +window sizes now have an additional argument that allows changes to apply, +or values to be returned, in pixels instead of lines/columns. + +*** The functions `window-body-height' and `window-body-width' now never +count partially visible lines or columns if called with a nil PIXELWISE +argument. + +*** Emacs can now draw dividers between adjacent windows. To put +dividers between side-by-side/vertically stacked windows customize the +frame parameters `right-divider-width' and `bottom-divider-width' to +some positive integer. You can drag dividers with the mouse (they show +a corresponding cursor when the mouse hovers over them). You can change +the appearance of dividers by customizing the faces `window-divider', +`window-divider-first-pixel', and `window-divider-last-pixel'. The last +two are useful to provide a 3D effect, or to better distinguish dividers +from surrounding display objects. + +*** New functions to return the pixel sizes of window components, namely +`window-scroll-bar-width', `window-mode-line-height', +`window-header-line-height', `window-right-divider-width', and +`window-bottom-divider-width'. + +*** The new function `window-text-pixel-size' returns the size of the +text of a window's buffer in pixels. This allows functions like +`fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a +window to its buffer as it will be displayed. + +*** `fit-window-to-buffer' can now resize windows in both dimensions. +This behavior is controlled by the new option +`fit-window-to-buffer-horizontally'. The new option +`fit-frame-to-buffer' allows you to fit the window's frame to its buffer. + +*** `fit-frame-to-buffer' now fits frames in both dimensions. The new +options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes' +control the size of the frame and its position on screen. + +*** Temp Buffer Resize Mode can now adjust the height and width of +windows and frames. The new option `temp-buffer-max-width' allows you to +control the width of temporary buffer windows. Moreover, if the new +option `fit-frame-to-buffer' is non-nil and the buffer appears in the +root window of a frame, Temp Buffer Resize Mode will try to adjust the +width and/or height of the frame. + +*** `split-window' is now a non-interactive function, not a command. +As a command, it was a special case of `C-x 2' (`split-window-below'), +and as such superfluous. After being reimplemented in Lisp, its +interactive form was mistakenly retained. + +*** The functions `window-size' and `window-total-size' now have an +optional argument to return a rounded size value. + +*** `window-state-put' now allows you to put a window state into internal +windows too. + +*** New option `scroll-bar-adjust-thumb-portion'. +Available only on X, this option allows you to control over-scrolling +using the scroll bar (i.e., dragging the thumb down even when the end +of the buffer is visible). + +*** New display actions functions for `display-buffer': + +**** `display-buffer-at-bottom' chooses or creates a window at the +bottom of the selected frame. + +**** `display-buffer-no-window' to not display the buffer in a window. + +*** New display action alist entry `allow-no-window' to indicate the +caller of `display-buffer' is ready to handle the case of not displaying +the buffer in a window. + +*** `display-buffer-in-previous-window' is now a member of +`display-buffer-fallback-action'. + +** Lisp evaluation + +*** `eval-defun' on an already defined defcustom calls the :set function, +if there is one. + +*** The commands `eval-expression' (`M-:'), `eval-last-sexp' (`C-x C-e'), +and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a +zero prefix argument. This disables truncation of lists in the output, +equivalent to setting `(eval-expression-)print-length' and +`(eval-expression-)print-level' to nil. Additionally, it causes integers +to be printed in other formats (octal, hexadecimal, and character). + +*** New hook `eval-expression-minibuffer-setup-hook' run by +`eval-expression' on entering the minibuffer. + +** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans', +because it affects caching of paragraph scanning results as well. +There is no reason to set this to nil except for debugging purposes. + +** `emacs-bzr-version' has been renamed to `emacs-repository-version', +and works for git too, if you fetch the repository notes. + +** The default value of `comment-use-global-state' is now t, +and this variable has been marked obsolete. + +** `write-region-inhibit-fsync' now defaults to t in batch mode. + +** The option `set-mark-default-inactive' has been deleted. +This unfinished feature was introduced by accident in Emacs 23.1; +simply disabling Transient Mark mode does the same thing. + + +* Editing Changes in Emacs 24.4 + +** Indentation + +*** `electric-indent-mode' is now enabled by default. +Typing RET reindents the current line and indents the new line. +`C-j' inserts a newline but does not indent. In some programming modes, +additional characters are electric (eg `{'). + +*** New buffer-local `electric-indent-local-mode'. + +*** The behavior of `C-x TAB' (`indent-rigidly') has changed. +When invoked without a prefix argument, it now activates a transient +mode in which typing , , , and adjusts +the text indentation in the region. Typing any other key resumes +normal editing behavior. + +*** `tab-stop-list' is now implicitly extended to infinity by repeating +the last step. Its default value is changed to nil, which means a tab +stop every `tab-width' columns. + +** Uniquify is enabled by default, with `post-forward-angle-brackets' style. +In other words, if you visit two files that have the same base name, +then rather than creating buffers basename and basename<2>, +Emacs uses basename and basename. To change this, +customize `uniquify-buffer-name-style'. Set it to nil for the old behavior. + +** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region. +Most commands are still unaware of it, but kill/yank do work on the rectangle. + +** New option `visual-order-cursor-movement'. +If this is non-nil, cursor motion with arrow keys will follow the +visual order of characters on the screen: always moves to the +left, always moves to the right, disregarding the surrounding +bidirectional context. + +** New command `delete-duplicate-lines'. +This searches the region for identical lines, and removes all but one +copy of each repeated line. The lines need not be sorted. + +** New command `cycle-spacing' acts like a smarter `just-one-space'. +When called in succession, it cycles between spacing conventions: +one space, no spaces, original spacing. + +** `blink-matching-paren' now only highlights the matching open-paren +by default, instead of moving the cursor. Set this variable to `jump' to +restore the old behavior. + +** The new function `fill-single-char-nobreak-p' can stop fill from breaking +a line after a one-letter word, which is an error in some typographical +conventions. To use it, add it to the `fill-nobreak-predicate' hook. + +** Registers + +*** All interactive commands that read a register (`copy-to-register', etc.) +now display a temporary window after `register-preview-delay' seconds +that summarizes existing registers. To disable this, set that option to nil. +Interactive commands that read registers and want to make use of this +should use `register-read-with-preview' to read register names. + +*** New command `frameset-to-register' bound to `C-x r f', replacing +`frame-configuration-to-register'. It offers similar functionality, +plus enhancements like the ability to restore deleted frames. +(`frame-configuration-to-register' still exists, but no longer has a +key binding.) + +*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard +macros in registers. + + +* Changes in Specialized Modes and Packages in Emacs 24.4 + +** Backtrace and debugger + +*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the +display of local variables of the current stack frame. + +*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes +the lexical environment when evaluating the code in the context at point +(and so allows you to access lexical variables). + +*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock. + +** Battery information can now be retrieved from BSD's `apm' utility. + +** In the Buffer Menu, `M-s a C-o' shows matches for a regexp in marked buffers. + +** Calc + +*** Calc by default now uses the Gregorian calendar for all dates, and +uses January 1, 1 AD as its day number 1. Previously Calc used the +Julian calendar for dates before September 14, 1752, and it used +December 31, 1 BC as its day number 1; the new scheme is more +consistent with Calendar's calendrical system and day numbering. + +*** The new option `calc-gregorian-switch' lets you configure if +(and when) Calc switches from the Julian to the Gregorian calendar. + +*** Support for ISO 8601 dates. + +** Calendar and Diary + +*** New faces `calendar-weekday-header', `calendar-weekend-header', +and `calendar-month-header'. + +*** New option `calendar-day-header-array'. + +*** New variable `diary-from-outlook-function', used by the command +`diary-from-outlook'. + +*** The variable `calendar-font-lock-keywords' is obsolete. + +** CEDET + +*** EDE + +**** The cpp-root project now supports executing a compile command. +It can be set through the new :compile-command slot or the +buffer-local variable `compile-command'. + +**** Better selection of include directories for the 'linux' project. +Include directories now support out-of-tree build directories and +target architecture auto-detection. + +*** Semantic + +**** Improved detection of used namespaces in current scope in C++. + +**** Parsing of default values for variables and function arguments in C/C++. +They are also displayed by the summarize feature in the mode line. + +**** Improved parsing of function pointers in C/C++. +This also includes parsing of function pointers as function arguments. + +**** Parsing of C/C++ preprocessor macros that open new scope. +For example, this enables parsing of macros that open new namespaces. + +**** Support for 'this' pointer in inline member functions in C++. + +** CFEngine mode + +*** Support for completion, ElDoc, and Flycheck has been added. + +*** The current CFEngine syntax is parsed from "cf-promises -s json". +There is a fallback syntax available if you don't have cf-promises or +if your version doesn't support that option. See option `cfengine-cf-promises'. + +** cl-lib + +*** New macro `cl-tagbody'. +This executes statements while allowing for control transfer to labels. + +*** letf is now just an alias for cl-letf. + +** CUA mode + +*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'. +Hence, you can now enable it independently from those modes, and from +`transient-mark-mode'. + +*** `cua-highlight-region-shift-only' is now obsolete. +You can disable `transient-mark-mode' to get the same result. + +*** CUA's rectangles can now be used without CUA by calling the command +`cua-rectangle-mark-mode'. + +** Delete Selection mode can now be used without Transient Mark mode. + +** Desktop + +*** `desktop-save-mode' by default now auto-saves an existing desktop file +after `desktop-auto-save-timeout'. To disable this, customize that option +to nil (or zero). + +*** Desktop now saves and restores the frame/window configuration. +To disable this, set `desktop-restore-frames' to nil. +See also related options `desktop-restore-reuses-frames', +`desktop-restore-in-current-display', and `desktop-restore-forces-onscreen'. + +** New Dired minor mode `dired-hide-details-mode' toggles whether details, +such as file ownership or permissions, are visible in Dired buffers. +See the new options `dired-hide-details-hide-symlink-targets' and +`dired-hide-details-hide-information-lines' for customizing what to hide. + +** You can enable ElDoc inside the `eval-expression' minibuffer with: + (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode) +The results display in the mode line. + +** Electric Pair mode + +*** New option `electric-pair-preserve-balance', enabled by default. +If non-nil, pairing/skipping only kicks in when that help the balance +of parentheses and quotes; i.e., the buffer should end up at least as +balanced as before. + +You can further control this behavior by adjusting the predicates +stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'. + +*** New option `electric-pair-delete-adjacent-pairs', enabled by default. +In `electric-pair-mode', the commands `backward-delete-char' and +`backward-delete-char-untabify' are now bound to electric variants +that delete the closer when invoked between adjacent pairs. + +*** New option `electric-pair-open-newline-between-pairs', enabled by default. +In `electric-pair-mode', inserting a newline between adjacent pairs +opens an extra newline after point, which is indented if +`electric-indent-mode' is also set. + +*** New option `electric-pair-skip-whitespace', enabled by default. +This controls if skipping over closing delimiters should jump over any +whitespace slack. Setting it to `chomp' makes it delete this +whitespace. See also the variable `electric-pair-skip-whitespace-chars'. + +*** New variables control the pairing in strings and comments. +You can customize `electric-pair-text-pairs' and +`electric-pair-text-syntax-table' to tweak pairing behavior inside +strings and comments. + +** New EPA option `epa-mail-aliases'. +You can set this to a list of email address aliases that `epa-mail-encrypt' +should use to find keys. + +** New ERC option `erc-accidental-paste-threshold-seconds'. +If set to a number, this can be used to avoid accidentally pasting large +amounts of data into the ERC input. + +** New ERT macro `skip-unless' allows skipping ERT tests. + +** Eshell + +*** `eshell' now supports visual subcommands and options. +Eshell has been able to handle "visual" commands (interactive, +non-line oriented commands such as top that require display +capabilities not provided by eshell) by running them in an Emacs +terminal emulator. See `eshell-visual-commands'. + +This feature has been extended to subcommands and options that make a +usually line-oriented command a visual command. Typical examples are +"git log" and "git --help", which display their output in a +pager by default. See `eshell-visual-subcommands' and `eshell-visual-options'. + +*** New Eshell-Tramp module. +External su and sudo commands are now the default; the internal, +Tramp-using variants can still be used by enabling the eshell-tramp module. + +** New F90 mode option `f90-smart-end-names'. + +** New option `gnutls-verify-error', if non-nil, means that Emacs +should reject SSL/TLS certificates that GnuTLS determines as invalid. +(This option defaults to nil at present, but this is expected to change +in a future release.) + +** Hi-Lock + +*** New global command `M-s h .' (`highlight-symbol-at-point') highlights +the symbol near point. + +*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands +will cycle through faces in `hi-lock-face-defaults' without prompting. + +** Icomplete is now more similar to Ido. + +*** Icomplete by default now applies to all forms of minibuffer completion. +The variable `icomplete-with-completion-tables' (now a user option) +controls this. To restore the old behavior, set it back to +'(internal-complete-buffer). + +*** You can navigate through and select completions using the keys +from `icomplete-minibuffer-map'. + +*** The string that separates potential completions is now a customizable +option (`icomplete-separator'). The default is " | " rather than ",". + +*** New face `icomplete-first-match'; and new options +`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'. + +*** The option `icomplete-show-key-bindings' has been removed. + +** Ido + +*** An Ido user manual is now included. + +*** The option `ido-use-virtual-buffers' can now take the value `auto'. +This means to use virtual buffers if the current ido input does not match +an existing buffer. + +*** The variable `ido-decorations' can optionally have two new elements, +which are the brackets to use around the sole remaining completion. + +** Image mode + +*** New commands `n' (`image-next-file') and `p' (`image-previous-file') +visit the next image file and the previous image file in the same +directory, respectively. + +*** New commands to show specific frames of multi-frame images. +`f' (`image-next-frame') and `b' (`image-previous-frame') visit the +next or previous frame. `F' (`image-goto-frame') shows a specific frame. + +*** New commands to speed up, slow down, or reverse animation. +`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to +speed up and slow down the animation. `a r' (`image-reverse-speed') +to reverse it and `a 0' (`image-reset-speed') to reset it. + +*** The command `image-mode-fit-frame' deletes other windows. +When toggling, it restores the frame's previous window configuration. +It also has an optional frame argument, which can be used by Lisp +callers to fit the image to a frame other than the selected frame. + +** New Imenu option `imenu-generic-skip-comments-and-strings'. + +** Info + +*** New Info face `info-index-match', used to highlight matches in index +entries displayed by `Info-index-next', `Info-virtual-index' and +`info-apropos'. + +*** The Info-edit command is obsolete. Editing Info nodes by hand +has not been relevant for some time. + +** JS Mode + +*** New option `js-switch-indent-offset'. + +*** Better indentation of multiple-variable declarations. +If a declaration spans several lines, variables on the following lines +are lined up to the first one. + +*** Recognition and better indentation of continuations in array comprehensions. + +** MH-E has been updated to version 8.6 - see separate MH-E-NEWS file. + +** Octave mode + +*** Font locking for Texinfo comments and new keywords. + +*** Completion in Octave file buffers. + +*** ElDoc support. + +*** Jump to definition. + +*** Documentation lookup/search. + +** OPascal mode is the new name for Delphi mode + +*** All delphi-* variables and functions have been renamed to opascal-*. +Obsolete aliases exist for those likely to have been used externally. + +*** The option `delphi-newline-always-indents' has been removed. +Use `electric-indent-mode' instead. + +*** The TAB key runs the standard `indent-for-tab-command', not `delphi-tab'. + +** Package + +*** The package library now supports digital signing of packages. +Maintainers of package archives should consider signing their packages +to enhance security. + +**** If the user option `package-check-signature' is non-nil, +Emacs tries to check package signatures at install time. +The value `allow-unsigned' allows installation of unsigned packages. + +**** The user option `package-unsigned-archives' lists archives where +Emacs will not try to check signatures. + +*** New option `package-pinned-packages'. This is useful if you have multiple +archives enabled, with more than one offering a given package that you want. + +*** In the `list-packages' buffer, you can use `f' (`package-menu-filter') +to filter the list of packages by a keyword. + +*** In the `describe-package' buffer, there are now buttons listing the +keywords related to the package. Click on a button to see other packages +related to that keyword. + +*** The format of `archive-contents' files, generated by package +repositories, has changed to allow a new (fifth) element in the data +vectors, containing an associative list with extra properties. +(For example, `describe-package' uses the `:url' extra property to +display a "Homepage" header.) + +** In Prolog mode, `prolog-use-smie' has been removed, +along with the non-SMIE indentation code. + +** Python mode + +*** Out of the box support for CPython, iPython and readline based shells. +**** `python-shell-completion-module-string-code' is no longer used. + +*** Automatic shell prompt detection. New user options: +**** `python-shell-interpreter-interactive-arg'. +**** `python-shell-prompt-detect-enabled'. +**** `python-shell-prompt-detect-failure-warning'. +**** `python-shell-prompt-input-regexps'. +**** `python-shell-prompt-output-regexps'. + +*** Python shell support for remote hosts via tramp. + +*** Correct display of line numbers for code sent to the Python shell. + +** Remember + +*** The new command `remember-notes' creates a buffer that is saved on exit. +You can use it as a more permanent *scratch* buffer. + +*** Remember can now store notes in separate files. +To use this, add `remember-store-in-files' to the `remember-handler-functions' +option. The files are saved in `remember-data-directory' using +names specified by `remember-directory-file-name-format'. + +** Rmail + +*** Customize `rmail-mbox-format' to influence some minor aspects of +how Rmail displays non-MIME messages. + +*** The `unrmail' command now converts from BABYL to mboxrd format, +rather than mboxo. Customize `unrmail-mbox-format' to change this. + +** Ruby mode + +*** Improved syntax highlighting and indentation. + +*** New `electric-indent-mode' integration. + +*** New option `ruby-encoding-magic-comment-style'. + +*** New option `ruby-custom-encoding-magic-comment-template'. + +*** New option `ruby-align-to-stmt-keywords'. + +*** New option `ruby-align-chained-calls'. + +*** More Ruby file types have been added to `auto-mode-alist'. + +** Search and Replace + +*** New global command `M-s .' (`isearch-forward-symbol-at-point') +starts a symbol (identifier) incremental search forward with the +symbol found near point added to the search string initially. + +*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name +and adds it to the search string. + +*** `M-s i' in Isearch mode toggles whether search matches invisible text. + +*** `query-replace' skips invisible text when `search-invisible' is nil, +and opens overlays with hidden text when `search-invisible' is `open'. + +*** A negative prefix argument of replacement commands replaces backward. +`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp +backward, `M-s w words M-- M-%' replaces a sequence of words backward. + +*** By default, prefix arguments do not now terminate Isearch mode. +Set `isearch-allow-prefix' to nil to restore the old behavior. + +*** More Isearch commands accept prefix arguments, namely +`isearch-printing-char', `isearch-quote-char', `isearch-yank-word', +`isearch-yank-line'. + +*** Word search now matches whitespace at the beginning/end +of the search string if it contains leading/trailing whitespace. +In an incremental word search or when using a non-nil LAX argument +of `word-search-regexp', the lax matching can also match part of +the first word (in addition to the lax matching of the last word). +The same rules are now applied to the symbol search, with the difference +that it matches symbols, and non-symbol characters between symbols. + +** New SES command `ses-rename-cell' allows assignment of names to SES cells. + +** The shell.el option `explicit-bash-args' includes --noediting by default. +All non-ancient Bash versions support this option. + +** Shell Script mode + +*** The SMIE indentation engine is now used by default - see `sh-use-smie'. + +*** `sh-mode' now has its own setting for `add-log-current-defun-function'. + +** SMIE + +*** You can customize the SMIE indentation of a mode via `smie-config'. +The command `smie-config-guess' can help you derive the appropriate +indentation settings, if you provide it with an indented sample file. +Use `smie-config-save' to save the result. + +*** You can customize the SMIE indentation of a file by adding an entry to +the file's local variables of the form: `eval: (smie-config-local '(RULES))'. + +*** New commands `smie-config-show-indent' and `smie-config-set-indent'. + +** SQL mode + +*** Improved login monitoring and appropriate response to login failures. +New variable `sql-login-delay' defines maximum wait time for a connection. + +*** Oracle support. +SQL*Plus script placeholders are properly highlighted and identified +in `sql-placeholders-filter'. When starting SQL*Plus, `sql-oracle-options' +are passed before the logon parameter, as required. The default now +includes `-L', to limit the number of logon attempts per invocation. + +** New Term mode option `term-suppress-hard-newline'. + +** Todo mode has been rewritten and enhanced. +The Todo mode user manual describes all commands and most user +options. To support some of these features, a new file format is +used, which is incompatible with the old format; however, you can +convert old todo and done item files to the new format on initializing +the first new todo file, or at any later time with the provided +conversion command. The previous version of todo-mode.el has been +renamed to otodo-mode.el and is now obsolete. New features include: + +*** Support for multiple todo files and archive files of done items. + +*** Renaming, reordering, moving, merging, and deleting categories. + +*** Sortable tabular summaries of categories and the item types they contain. + +*** Cross-category lists of items filtered by specific criteria. + +*** More fine-grained interaction with the Emacs diary, by being able to +decide for each todo item whether it appears in the Fancy Diary display. + +*** Highly flexible new item insertion and item editing. + +*** Moving items between categories, storing done items in their category +or in archive files, undoing or unarchiving done items. + +*** Reprioritizing items by inputting a numerical priority. + +*** Extensive customizability of operation and display, including many faces. + +** Trace + +*** `trace-function' and `trace-function-background' no longer prompt for +the output buffer. Unless you use a prefix argument, they output to +`trace-buffer'. + +*** With a prefix argument, `trace-function' and `trace-function-background' +will prompt for a "context". This is a Lisp expression, whose value at the +time the function is entered/exited is printed along with the function's +name and arguments. + +** Tramp + +*** New connection method "adb", which allows to access Android +devices by the Android Debug Bridge. The variable `tramp-adb-program' +can be used to adapt the path of the "adb" program, if needed. + +*** Handlers for `file-acl' and `set-file-acl' for remote machines +that support POSIX ACLs. + +*** Handlers for `file-notify-add-watch' and `file-notify-rm-watch' +for remote machines that support filesystem notifications. + +*** The experimental url syntax for remote file names has been removed. + +*** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2", +"scpc" and "rsyncc" are discontinued. The ssh option +"ControlMaster=auto" is set automatically in all ssh-based methods, +when possible. See `tramp-use-ssh-controlmaster-options'. + +** New URL command `url-cookie-list' displays the current cookies, +and allows you to interactively remove cookies. + +** VC and related modes + +*** In VC directory mode, `D' displays diffs between VC-controlled +whole tree revisions. + +*** In VC directory mode, `L' lists the change log for the current VC +controlled tree in a window. + +*** In VC directory mode, `I' shows a log of changes that will be +received with a pull operation. + +*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file +under current version control system. When called with a prefix +argument, you can remove a file from the ignored file list. + +** VHDL mode + +*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'. + +*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'. + +** The Woman commands `woman-default-faces' and `woman-monochrome-faces' +are obsolete. Customize the `woman-*' faces instead. + +** More packages look for ~/.emacs.d/ additionally to ~/.. +Affected files: +~/.emacs.d/timelog replaces ~/.timelog +~/.emacs.d/vip replaces ~/.vip +~/.emacs.d/viper replaces ~/.viper +~/.emacs.d/ido.last replaces ~/.ido.last +~/.emacs.d/kkcrc replaces ~/.kkcrc +~/.emacs.d/quickurls replaces ~/.quickurls +~/.emacs.d/idlwave/ replaces ~/.idlwave/ +~/.emacs.d/bdfcache.el replaces ~/.bdfcache.el +~/.emacs.d/places replaces ~/.emacs-places +~/.emacs.d/shadows replaces ~/.shadows +~/.emacs.d/shadow_todo replaces ~/.shadow_todo +~/.emacs.d/strokes replaces ~/.strokes +~/.emacs.d/notes replaces ~/.notes +~/.emacs.d/type-break replaces ~/.type-break +Also the following files used by the now obsolete otodo-mode.el: +~/.emacs.d/todo-do replaces ~/.todo-do +~/.emacs.d/todo-done replaces ~/.todo-done +~/.emacs.d/todo-top replaces ~/.todo-top + +** Obsolete packages + +*** iswitchb.el; use icomplete-mode. + +*** longlines.el; use visual-line-mode. + +*** meese.el. + +*** sup-mouse.el. + +*** terminal.el; use term.el instead. + +*** the old version of todo-mode.el (renamed to otodo-mode.el). + +*** xesam.el (owing to the cancellation of the XESAM project). + +*** yow.el; use fortune.el or cookie1.el instead. + + +* New Modes and Packages in Emacs 24.4 + +** New package eww.el provides a built-in web browser. +This requires Emacs to have been compiled with libxml2 support. + +** New package nadvice.el offers lighter-weight advice facilities. +It is layered as: + +*** `add-function'/`remove-function', which can be used to add/remove code on +any function-carrying place, such as process filters or `-function' hooks. + +*** `advice-add'/`advice-remove' to add/remove a piece of advice on a named +function, much like `defadvice' does. + +** New package frameset.el provides a set of operations to save a frameset +(the state of all or a subset of the existing frames and windows, somewhat +similar to a frame configuration), both in-session and persistently, and +restore it at some point in the future. + +** New package filenotify.el provides an interface for file system +notifications. It requires that Emacs be compiled with one of the +low-level libraries gfilenotify.c, inotify.c or w32notify.c. + +** New minor modes `prettify-symbols-mode' and `global-prettify-symbols-mode' +display specified symbols as composed characters. E.g., in Emacs Lisp mode, +this replaces the string "lambda" with the Greek lambda character. + +** New minor mode `superword-mode', which overrides the default word motion +commands to treat "symbol_words" as a single word, similar to what +`subword-mode' does. + + +* Incompatible Lisp Changes in Emacs 24.4 + +** The default file coding for Emacs Lisp files is now utf-8. +(See `file-coding-system-alist'.) In most cases, this change is +transparent, but files that contain unusual characters without +specifying an explicit coding system may fail to load with obscure +errors. You should either convert them to utf-8 or add an explicit +`coding:' cookie. + +** Default process filters and sentinels are not nil any more. +Instead they default to a function that does what the nil value used to do. + +** Overlay priority does not have to be nil or a non-negative integer. +Overlay priority can be other kinds of Lisp objects. We didn't yet +decide whether other types of values are stable enough, and therefore +don't feel it's right to document them. For now, don't assume in your +code that the values of overlay priority can only be either nil or an +integer, always test them with an appropriate predicate to be one or +the other. If you need to sort arbitrary overlays into priority +order, `overlays-at' can now optionally do this. +You should still only specify integer priorities on overlays you create. + +** The cars of the elements in `interpreter-mode-alist' are now +treated as regexps rather than literal strings. + +** `overriding-terminal-local-map' no longer replaces the local keymaps. +It used to disable the minor mode, major mode, and text-property keymaps, +whereas now it simply has higher precedence. + +** `kill-region' has lost its `yank-handler' optional argument. + +** `(input-pending-p)' no longer runs other timers that are ready to run. +The new optional CHECK-TIMERS parameter allows for the prior behavior. + +** `defvar' and `defcustom' in a let-binding affect the "external" default. + +** The syntax of ?» and ?« is now punctuation instead of matched parens. +Some languages match those as »...«, and others as «...», so it is +better for Emacs to stay neutral by default. + +** `read-event' does not always decode chars in ttys any more. As was the case +in Emacs 22 and before, `read-event' (and `read-char') by default read raw +bytes from the terminal. If you want to read decoded chars instead (as was +always the case in Emacs-23, for example), pass a non-nil +`inherit-input-method' argument. + +** In `symbol-function', nil and "unbound" are indistinguishable. +`symbol-function' does not signal a `void-function' error any more. +To determine if a symbol's function definition is void, use `fboundp'. + +** `defadvice' does not honor the `freeze' flag and cannot advise +special-forms any more. + +** `dolist' no longer binds VAR while evaluating the RESULT form, +when lexical binding is enabled. Previously, VAR was bound to nil, +which often led to spurious unused-variable warnings. + +** The return value of `backup-buffer' has changed. +The second argument is no longer an SELinux context, instead it is an +alist of extended attributes as returned by the new function +`file-extended-attributes'. The attributes can be applied to another +file using `set-file-extended-attributes'. + +** By default `copy-file' no longer copies file permission bits to an +existing destination; and it sets the file permission bits of a newly +created destination to those of the source, masked by the default file +permissions. To copy the file permission bits, pass t as the +PRESERVE-PERMISSIONS argument of `copy-file'. + +** `visited-file-modtime' now returns -1 for nonexistent files. +Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous +in the presence of files with negative time stamps. + +** Frame-local variables that affect redisplay do not work any more. +More specifically, redisplay does not bother to check for a frame-local +value when looking up variables. + +** In compiled Lisp files, the header no longer includes a timestamp. + +** The option `inhibit-local-menu-bar-menus' has been removed. + + +* Lisp Changes in Emacs 24.4 + +** Change to the Emacs Lisp coding conventions: the package descriptor +and name of global variables, constants, and functions should be separated +by two hyphens if the symbol is not meant to be used by other packages. + +** The second argument of `eval' can now specify a lexical environment. + +** New macro `define-alternatives' can be used to define generic commands. +Generic commands are interactive functions whose implementation can be +selected among several alternatives, as a matter of user preference. + +** Numeric comparison functions =, <, >, <=, >= can now take many arguments. + +** New functions `special-form-p' and `macrop'. + +** New macro `with-eval-after-load'. +This is like the old `eval-after-load', but better behaved. + +** If you give a symbol a `defalias-fset-function' property, `defalias' +on that symbol will use the associated value as a function to call +in place of `fset'. + +** New variable `enable-dir-local-variables'. +Directory-local variables are ignored if this is nil. This may be +useful for modes that want to ignore directory-locals while still +respecting file-local variables. + +** `read-regexp' now uses the new variable `read-regexp-defaults-function' +as a function to call to provide default values. + +** New functions `group-gid' and `group-real-gid'. + +** New function `get-pos-property'. + +** New hook `pre-redisplay-function'. + +** `byte-compile-interactive-only-functions' is now obsolete. +To specify that a command should only be called interactively, give it +a non-nil `interactive-only' property. + +** New function `string-suffix-p'. + +** `split-string' now takes an optional argument TRIM. +The value, if non-nil, is a regexp that specifies what to trim from +the start and end of each substring. + +** Completion + +*** The separator used by `completing-read-multiple' is now a regexp. +The default `crm-separator' has been changed to allow surrounding spaces +around the comma. + +*** New function `completion-table-with-cache' is a wrapper for +`completion-table-dynamic' that caches the result of the last lookup. + +*** New function `completion-table-merge' to combine several +completion tables by merging their completions. + +*** The `common-substring' argument of `display-completion-list', +which has been documented as obsolete since Emacs 23.1, is now _really_ +obsolete, and no longer advertised. Instead either call +`completion-hilit-commonality' to add the highlighting; or use +`completion-all-completions', which returns highlighted strings. + +** Encoding and decoding of text + +*** New coding-system `prefer-utf-8'. +This is like `undecided' but prefers UTF-8 on decoding if the text to +be decoded does not contain any invalid UTF-8 sequences. On encoding, +any non-ASCII characters are automatically encoded as UTF-8. + +*** New attributes of coding-systems whose type is `undecided'. +Two new attributes, `:inhibit-null-byte-detection' and +`:inhibit-iso-escape-detection', determine how to detect encoding of +text that includes null bytes and ISO-2022 escape sequences, respectively. +Each of these attributes can be either nil, zero, or t. If t, decoding +text ignores null bytes and ISO-2022 sequences, respectively. If nil, +null bytes cause text to be decoded with no-conversion, and ISO-2022 +sequences cause Emacs to assume the text is encoded in one of the ISO-2022 +encodings, such as iso-2022-7bit. If zero, Emacs consults the variables +`inhibit-null-byte-detection' and `inhibit-iso-escape-detection'. +The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer +UTF-8 encoding and decoding, whenever possible. + +These attributes are only meaningful for coding-systems of type `undecided'. +(The type of a coding-system is determined by its `:coding-type' attribute +and can be accessed by calling the `coding-system-type' function.) + +** Error-handling + +*** New function `define-error'. + +*** `with-demoted-errors' takes an additional argument `format'. + +*** Errors from timer functions are no longer silently discarded, +but are reported as messages. So you may see "Error running timer" +messages from code that was failing silently till now. Set +`debug-on-error' non-nil to get a real error and a backtrace. + +** Faces + +*** Face specs set via Custom themes now replace the `defface' spec +rather than inheriting from it. In other words, setting a face via a +theme now behaves like setting it via Customize: you only need to +specify the attributes that you want, you don't need to unset those +that you don't want. + +*** The function `face-spec-set' is now like `setq' for face specs. +Its third arg now accepts values specifying a face spec type (defface, +custom, or override spec), and the relevant spec is set accordingly. + +*** New face spec attribute :distant-foreground +specifies foreground to use if background color is near the foreground +color that would otherwise have been used. + +*** New function `add-face-text-property', which can be used to +conveniently prepend/append new face properties. + +*** New face characteristic (supports :underline (:style wave)) +specifies whether or not the terminal can display a wavy line. + +** File-handling + +*** Support for filesystem notifications. +Emacs now supports notifications of filesystem changes, such as +creation, modification, and deletion of files. This requires the +`glib' API, or the 'inotify' API (on GNU/Linux systems only). On +MS-Windows systems, this is supported for Windows XP and newer. + +*** The 9th element returned by `file-attributes' is now unspecified. +Formerly, it was t if the file's gid would change if file were deleted +and recreated. This value has been inaccurate for years on many +platforms, and nobody seems to have noticed or cared. + +*** The 6th argument to `copy-file' has been renamed to +PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional +Unix file permission bits as well as SELinux context. + +*** The function `file-ownership-preserved-p' now has an optional +argument GROUP which causes it check for file group too. This can be +used in place of the 9th element of `file-attributes'. + +*** The function `set-visited-file-modtime' now accepts a 0 or -1 argument, +with the same interpretation as the returned value of `visited-file-modtime'. + +** Image API + +*** `image-animated-p' is now `image-multi-frame-p'. +It returns non-nil for any image that contains multiple frames, +whether or not it specifies a frame delay. + +*** New variable `image-default-frame-delay' gives the frame delay for +animated images which do not specify a frame delay. + +*** New functions `image-current-frame' and `image-show-frame' for getting +and setting the current frame of a multi-frame image. + +** ImageMagick + +*** ImageMagick images now support the :max-width and :max-height keywords. + +*** When using `create-image' with image data, you can pass a :format +attribute (via the property-list argument) in order to help +ImageMagick detect the image type. The value should be a MIME +content-type that is found in the new variable `image-format-suffixes'. + +** Revert and Autorevert + +*** If Emacs is compiled with file notification support, it uses notifications +instead of checking file time stamps. To disable this, set the user option +`auto-revert-use-notify' to nil. Alternatively, you can specify a regular +expression matching directories to be excluded from file notifications via +`auto-revert-notify-exclude-dir-regexp'. + +*** The default values of `buffer-stale-function', `revert-buffer-function', +and `revert-buffer-insert-file-contents-function' are no longer nil. +Instead they default to functions that do what the nil value used to. + +*** `buffer-stale-function' is now used for buffers visiting files too. + +*** The new user option `auto-revert-remote-files' enables reversion +of remote files, if non-nil. + +** Terminal + +*** Functions to pop up menus and dialogs now work on all terminals, +including TTYs. This includes `x-popup-menu', `x-popup-dialog', +`message-box', `yes-or-no-p', etc. + +The function `display-popup-menus-p' will now return non-nil for a +display or frame whenever a mouse is supported on that display or frame. + +*** New hook `tty-setup-hook', run at the end of initializing a text terminal. + +*** The hook `term-setup-hook' is obsolete. It is entirely equivalent +to `emacs-startup-hook'. See also the new `tty-setup-hook'. + +** Minor internal changes to the details of lock files. +The lock for DIR/FILE is now _always_ DIR/.#FILE. +If DIR/.#FILE already exists and is not an Emacs lock file, +Emacs makes no attempt to lock DIR/FILE. (Previously, it fell back to +numbered lock files DIR/.#FILE.0...). +On file systems that do not support symbolic links, the lock is now a +regular file with contents being what would have been in the symlink. + +** New bool-vector set operation functions: +*** `bool-vector-exclusive-or' +*** `bool-vector-union' +*** `bool-vector-intersection' +*** `bool-vector-set-difference' +*** `bool-vector-not' +*** `bool-vector-subsetp' +*** `bool-vector-count-consecutive' +*** `bool-vector-count-population' + +** New library subr-x.el with miscellaneous small utility functions: +*** `hash-table-keys' +*** `hash-table-values' +*** `string-blank-p' +*** `string-empty-p' +*** `string-join' +*** `string-reverse' +*** `string-trim-left' +*** `string-trim-right' +*** `string-trim' +*** `string-remove-prefix' +*** `string-remove-suffix' + +** The `time-to-seconds' alias to `float-time' is no longer marked obsolete. + +** The spelling of the rx.el category `chinese-two-byte' has been +corrected (the first 'e' was missing). + +** EIEIO namespace cleanup, obsolete-aliasing functions to use `eieio-' prefix: +*** object-name -> eieio-object-name +*** object-class -> eieio-object-class +*** object-class-fast -> eieio--object-class +*** object-class-name -> eieio-object-class-name +*** object-name-string -> eieio-object-name-string +*** object-num-slots -> eieio--object-num-slots +*** object-set-name-string -> eieio-object-set-name-string +*** class-of -> eieio-object-class +*** class-name -> eieio-class-name +*** class-parent -> eieio-class-parent +*** class-parents -> eieio-class-parents +*** class-parents-fast -> eieio-class-parents-fast +*** class-children -> eieio-class-children +*** class-num-slots -> eieio--class-num-slots +*** class-precedence-list -> eieio-class-precedence-list +*** class-direct-subclasses -> eieio-class-children +*** class-direct-superclasses -> eieio-class-parents + +** Obsoleted functions +*** `log10' +*** `dont-compile' +*** `lisp-complete-symbol' +*** `field-complete' +*** `minibuffer-completion-contents' +*** `isearch-nonincremental-exit-minibuffer' +*** `isearch-filter-visible' +*** `generic-make-keywords-list' +*** `get-upcase-table' (use `case-table-get-table' instead). + +** `with-wrapper-hook' is obsoleted by `add-function'. +The few hooks that used with-wrapper-hook are replaced as follows: +*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'. +*** `completion-in-region-function' obsoletes `completion-in-region-functions'. +*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'. + + +* Changes in Emacs 24.4 on Non-Free Operating Systems + +** New Core Text based font backend for Mac OS X 10.5 and newer. +To use the old font backend, use the following on the command line: + % defaults write org.gnu.Emacs FontBackend ns +GNUstep and Mac OS X 10.4 use the old font backend. + +** Improved fullscreen support on Mac OS X 10.7 and newer, where the +default fullscreen method is now "native" fullscreen. To use the +old style fullscreen, customize `ns-use-native-fullscreen' to nil. + +** On Mac OS X 10.7 and newer, Emacs can use sRGB colorspace, and does so +by default. Customize `ns-use-srgb-colorspace' to go back to the old method. +Note that this does not apply to images. + +** The procedure for building Emacs on MS-Windows has changed. +It is now built by running the same configure script as on all other +platforms. This requires the MSYS environment and MinGW development +tools. See the updated instructions in nt/INSTALL for details. + +Using the Posix configure script and Makefiles also means a change in +the directory structure of the Emacs installation on Windows. It is +now the same as on GNU and Unix systems. In particular, the auxiliary +programs, such as cmdproxy.exe and hexl.exe, are in +libexec/emacs/VERSION/i686-pc-mingw32 (where VERSION is the Emacs +version), version-independent site-lisp is in share/emacs/site-lisp, +version-specific Lisp files are in share/emacs/VERSION/lisp and in +share/emacs/VERSION/site-lisp, Info docs are in share/info, and data +files are in share/emacs/VERSION/etc. (Emacs knows about all these +directories and will find the files in there automatically; there's no +need to set any variables due to this change.) + +** Emacs on Windows 2000 and later can now access files and directories +whose names cannot be encoded in the current system codepage. + +The new variable `w32-unicode-filenames' controls this feature: if it +is t, Emacs uses Unicode APIs to pass file names to system calls, +which lifts the limitation of file names to the current locale. + +** Lock files now work on MS-Windows. +This helps to prevent losing your edits if the same file is being +edited in another Emacs session or by another user. See the node +"Interlocking" in the Emacs User Manual for the details. To disable +file locking, customize `create-lockfiles' to nil. + +** The "generate a backtrace on fatal error" feature now works on MS-Windows. +The backtrace is written to the 'emacs_backtrace.txt' file in the +directory where Emacs was running. + +** The `network-interface-list' and `network-interface-info' functions +are now available on MS-Windows. + +** The variable `buffer-file-type' is no longer supported. +Setting it has no effect, and %t in the mode-line format is ignored. +Likewise, `file-name-buffer-file-type-alist' is now obsolete, and +modifying it has no effect. + + +* Installation Changes in Emacs 24.3 + +** The default X toolkit is now Gtk+ version 3. +If you don't pass `--with-x-toolkit' to configure, or if you use +`--with-x-toolkit=gtk' or `--with-x-toolkit=yes', configure will try +to build with Gtk+ version 3, and if that fails, try Gtk+ version 2. +You can explicitly require a specific version by passing +`--with-x-toolkit=gtk2' or `--with-x-toolkit=gtk3' to configure. + +** New configure option `--enable-link-time-optimization', to utilize +an appropriate feature provided by GCC since version 4.5.0. + +** New configure option `--without-all' to disable most of the optional +features (image support, etc.) that are normally enabled by default. + +** New configure option `--enable-gcc-warnings' (for developing/debugging +Emacs). If building with GCC, this enables compile-time checks that +warn/give errors about possibly-questionable C code. On a recent GNU +system there should be no warnings; on older and on non-GNU systems +the results may be useful to developers. + +** The configure option `--enable-use-lisp-union-type' has been +renamed to `--enable-check-lisp-object-type', as the resulting +Lisp_Object type no longer uses a union to implement the compile time +check that this option enables. + +** The configure option `--disable-maintainer-mode' has been removed, +as it was confusingly-named and rarely useful. + +** The configure options `--program-prefix', `--program-suffix', and +`--program-transform-name' apply to more than just the installed +binaries. Now they also affect the man pages, icons, and the +etc/emacs.desktop file; but not the info pages, since this would break +links between the various manuals. + +** You can use `NO_BIN_LINK=t make install' to prevent the installation +overwriting "emacs" in the installation bin/ directory with a link +to "emacs-VERSION". + +** Emacs uses libtinfo in preference to libncurses, if available. + +** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and +/usr/pkg/lib to the linker search path. You must add them yourself if +you want them. + +** The standalone scripts `rcs-checkin' and `vcdiff' have been removed +(from the bin and libexec directories, respectively). The former is +no longer relevant, the latter is replaced by lisp (in vc-sccs.el). + + +* Startup Changes in Emacs 24.3 + +** Emacs no longer searches for `leim-list.el' files beneath the standard +lisp/ directory. There should not be any there anyway. If you have +been adding them there, put them somewhere else; e.g., site-lisp. + +** The `--no-site-lisp' command line option now works for Nextstep builds. + + +* Changes in Emacs 24.3 + +** Help + +*** `C-h f' (`describe-function') can now perform autoloading. +When this command is called for an autoloaded function whose docstring +contains a key substitution construct, that function's library is +automatically loaded, so that the documentation can be shown +correctly. To disable this, set `help-enable-auto-load' to nil. + +*** `C-h f' now reports previously-autoloaded functions as "autoloaded", +even after their associated libraries have been loaded (and the +autoloads have been redefined as functions). + +** ImageMagick + +*** Images displayed via ImageMagick now support transparency and the +:background image specification property. + +*** When available, ImageMagick support is automatically enabled. +It is no longer necessary to call `imagemagick-register-types' +explicitly to install ImageMagick image types; that function is called +automatically at startup, or when customizing an imagemagick- option. + +*** Setting `imagemagick-types-inhibit' to t now disables the use of +ImageMagick to view images. (You must call `imagemagick-register-types' +afterwards if you do not use customize to change this.) + +*** The new variable `imagemagick-enabled-types' also affects which +ImageMagick types are treated as images. The function +`imagemagick-filter-types' returns the list of types that will be +treated as images. + +** Minibuffer + +*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the +next and previous path separator, respectively. + +*** `minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]" +in minibuffer prompts. Just set `minibuffer-eldef-shorten-default' +non-nil before enabling the mode. + +** Mode line + +*** New option `mode-line-default-help-echo' specifies the help text +(shown in a tooltip or in the echo area) for any part of the mode line +that does not have its own specialized help text. + +*** You can now click mouse-3 in the coding system indicator to invoke +`set-buffer-file-coding-system'. + +** Server and client + +*** emacsclient now obeys string values for `initial-buffer-choice', +if it is told to open a new frame without specifying any file to visit +or expression to evaluate. + +*** New option `server-auth-key' specifies a shared server key. + +** Emacs now generates backtraces on fatal errors. +On encountering a fatal error, Emacs now outputs a textual description +of the fatal signal, and a short backtrace on platforms like glibc +that support backtraces. + +** `C-x C-q' is now bound to the new minor mode `read-only-mode'. +This minor mode replaces `toggle-read-only', which is now obsolete. + +** Most `y-or-n' prompts now allow you to scroll the selected window. +Typing `C-v' or `M-v' at a y-or-n prompt scrolls forward or backward +respectively, without exiting from the prompt. + +** In the Package Menu, newly-available packages are listed as "new", +and sorted above the other "available" packages by default. + +** If your Emacs was built from a repository checkout, the new variable +`emacs-bzr-version' contains information about the bzr revision used. + +** New option `create-lockfiles' specifies usage of lockfiles. +It defaults to t. Changing it to nil inhibits the creation of lock +files (use this with caution). + +** New option `enable-remote-dir-locals', if non-nil, allows directory-local +variables on remote hosts. + +** The entry for PCL-CVS has been removed from the Tools menu. +The PCL-CVS commands are still available via the keyboard. + +** Using "unibyte: t" in Lisp source files is obsolete. +Use "coding: raw-text" instead. + +** In the buffer made by `M-x report-emacs-bug', the `C-c m' binding +has been changed to `C-c M-i' (`report-emacs-bug-insert-to-mailer'). +The previous binding, introduced in Emacs 24.1, was a mistake, because +`C-c LETTER' bindings are reserved for user customizations. + +** Internationalization + +*** New language environment: Persian. + +*** New input method `vietnamese-vni'. + +** Nextstep (GNUstep / Mac OS X) port + +*** Support for fullscreen and the frame parameter fullscreen. + +*** A file dialog is used for open/save operations initiated from the +menu/toolbar. + + +* Editing Changes in Emacs 24.3 + +** Search and Replace + +*** Non-regexp Isearch now performs "lax" space matching. +Each sequence of spaces in the supplied search string may match any +sequence of one or more whitespace characters, as specified by the +variable `search-whitespace-regexp'. (This variable is also used by a +similar existing feature for regexp Isearch.) + +*** New Isearch command `M-s SPC' toggles lax space matching. +This applies to both ordinary and regexp Isearch. + +*** New option `replace-lax-whitespace'. +If non-nil, `query-replace' uses flexible whitespace matching too. +The default is nil. + +*** Global `M-s _' starts a symbol (identifier) incremental search, +and `M-s _' in Isearch toggles symbol search mode. +`M-s c' in Isearch toggles search case-sensitivity. + +** Navigation commands + +*** New binding `M-g c' for `goto-char'. + +*** New binding `M-g TAB' for `move-to-column'. + +*** `M-g TAB' (`move-to-column') prompts for a column number if called +interactively with no prefix arg. Previously, it moved to column 1. + +** New option `yank-handled-properties' allows processing of text +properties on yanked text, in ways that are more general than just +removing them (as is done by `yank-excluded-properties'). + +** New option `delete-trailing-lines' specifies whether +M-x delete-trailing-whitespace should delete trailing lines at the end +of the buffer. It defaults to t. + +** `C-u M-=' now counts lines/words/characters in the entire buffer. + +** `C-x 8 RET' is now bound to `insert-char', which is now a command. +`ucs-insert' is now an obsolete alias for `insert-char'. + +** The `z' key no longer has a binding in most special modes. +It used to be bound to `kill-this-buffer', but `z' is too easy to +accidentally type. + +** New command `C-x r M-w' (`copy-rectangle-as-kill'). +It copies the region-rectangle as the last rectangle kill. + +** Registers + +*** `C-x r +' is now overloaded to invoke `append-to-register'. + +*** New option `register-separator' specifies the register containing +the text to put between collected texts for use with +M-x append-to-register and M-x prepend-to-register. + + +* Changes in Specialized Modes and Packages in Emacs 24.3 + +** Common Lisp emulation (CL) + +*** CL's main entry is now (require 'cl-lib). +`cl-lib' is like the old `cl' except that it uses the namespace cleanly; +i.e., all its definitions have the "cl-" prefix (and internal definitions +use the "cl--" prefix). + +If `cl' provided a feature under the name `foo', then `cl-lib' +provides it under the name `cl-foo' instead; with the exceptions of the +few `cl' definitions that had to use `foo*' to avoid conflicts with +pre-existing Elisp entities. These have been renamed to `cl-foo' +rather than `cl-foo*'. + +The old `cl' is now deprecated and is mainly just a bunch of aliases that +provide the old, non-prefixed names. Some exceptions are listed below: + +*** `cl-flet' is not like `flet' (which is deprecated). +Instead it obeys the behavior of Common-Lisp's `flet'. +In particular, in cl-flet function definitions are lexically scoped, +whereas in flet the scoping is dynamic. + +*** `cl-labels' is slightly different from `labels'. +The difference is that it relies on the `lexical-binding' machinery +(as opposed to the `lexical-let' machinery used previously) to capture +definitions in closures, so such closures will only work if `lexical-binding' +is in use. + +*** `cl-letf' is not exactly like `letf'. +The only difference is in details that relate to some deprecated usage +of `symbol-function' in place forms. + +*** `progv' was rewritten to use the `let' machinery. +A side effect is that variables without corresponding values are bound +to nil rather than being made unbound. + +*** The following methods of extending `setf' are obsolete +(use features from gv.el instead): +`define-modify-macro' (use `gv-letplace') +`defsetf' (use `gv-define-simple-setter' or `gv-define-setter') +`define-setf-expander' (use `gv-define-setter' or `gv-define-expander') +`get-setf-method' no longer exists (see "Incompatible Lisp Changes") + +** Diff mode + +*** Changes are now highlighted using the same color scheme as in +modern VCSes. Deletions are displayed in red (new faces +`diff-refine-removed' and `smerge-refined-removed', and new definition +of `diff-removed'), insertions in green (new faces `diff-refine-added' +and `smerge-refined-added', and new definition of `diff-added'). + +*** The variable `diff-use-changed-face' defines whether to use the +face `diff-changed', or `diff-removed' and `diff-added' to highlight +changes in context diffs. + +*** The new command `diff-delete-trailing-whitespace' removes trailing +whitespace introduced by a diff. + +** Ediff now uses the same color scheme as Diff mode. + +** Python mode + +A new version of python.el, which provides several new features, including: +per-buffer shells, better indentation, Python 3 support, and improved +shell-interaction compatible with iPython (and virtually any other +text based shell). + +*** Some user options have been replaced/renamed, including (old -> new): +**** python-indent -> python-indent-offset +**** python-guess-indent -> python-indent-guess-indent-offset +**** python-pdbtrack-do-tracking-p -> python-pdbtrack-activate +**** python-use-skeletons -> python-skeleton-autoinsert + +*** Some user options have been removed, including: + +**** `python-indent-string-contents': Strings are never indented. + +**** `python-honour-comment-indentation': +Comments are always considered as indentation markers. + +**** `python-continuation-offset': Indentation is automatically +calculated in a pep8 compliant way depending on the context. + +**** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist': +Have no direct mapping as the shell interaction is completely different. + +**** `python-python-command', `python-jython-command': +Replaced by `python-shell-interpreter'. + +**** `inferior-python-filter-regexp', `python-remove-cwd-from-path', +`python-pdbtrack-minor-mode-string', `python-source-modes': +No longer relevant. + +*** Some commands have been replaced (old -> new): +**** python-insert-class -> python-skeleton-class +**** python-insert-def -> python-skeleton-def +**** python-insert-for -> python-skeleton-for +**** python-insert-if -> python-skeleton-if +**** python-insert-try/except -> python-skeleton-try +**** python-insert-try/finally -> python-skeleton-try +**** python-insert-while -> python-skeleton-while +**** python-find-function -> python-nav-jump-to-defun +**** python-next-statement -> python-nav-forward-sentence +**** python-previous-statement -> python-nav-backward-sentence +**** python-beginning-of-defun-function -> python-nav-beginning-of-defun +**** python-end-of-defun-function -> python-nav-end-of-defun +**** python-send-buffer -> python-shell-send-buffer +**** python-send-defun -> python-shell-send-defun +**** python-send-region -> python-shell-send-region +**** python-send-region-and-go -> emulate with python-shell-send-region +and python-shell-switch-to-shell +**** python-send-string -> python-shell-send-string +**** python-switch-to-python -> python-shell-switch-to-shell +**** python-describe-symbol -> python-eldoc-at-point + +** D-Bus + +*** New variables `dbus-compiled-version' and `dbus-runtime-version'. + +*** The D-Bus object manager interface is implemented. + +*** Variables of type :(u)int32 and :(u)int64 accept floating points, +if their value does not fit into Emacs's integer range. + +*** The function `dbus-call-method' is now non-blocking. +It can be interrupted by `C-g'. `dbus-call-method-non-blocking' is obsolete. + +*** Signals can also be sent as unicast messages. + +*** The argument list of `dbus-register-signal' has been extended, +according to the new match rule types of D-Bus. + +*** `dbus-init-bus' supports private connections. + +*** There is a new function `dbus-setenv'. + +** `desktop-path' no longer includes the "." directory. +Desktop files are now located in ~/.emacs.d by default. + +** Dired + +*** `dired-do-async-shell-command' executes each file sequentially +if the command ends in `;' (when operating on multiple files). +Otherwise, it executes the command on each file in parallel. + +*** Typing `M-n' in the minibuffer of `dired-do-chmod', `dired-do-chgrp', +`dired-do-chown', and `dired-do-touch' yanks the attributes of the +file at point. + +*** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'), +`DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion') +mark/unmark/flag all files in the active region. + +*** The minibuffer default for `=' (`dired-diff') has changed. +It is now the backup file for the file at point, if one exists. +In Transient Mark mode the default is the file at the active mark. + +*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers. +The global binding for `M-=', `count-words-region' is in effect. + +** ERC + +*** New module "notifications", which can send a notification when you +receive a private message or your nickname is mentioned. + +*** ERC will look up server/channel names via auth-source and use any +channel keys found. + +*** New option `erc-lurker-hide-list', similar to `erc-hide-list', but +only applies to messages sent by lurkers. + +** reStructuredText mode + +*** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling, +fontification, comment handling, and customization have all been revised +and improved. + +*** Support for `imenu' and `which-function-mode'. + +*** The reStructuredText syntax is more closely covered. +Sphinx support has been improved. + +*** `rst-insert-list' inserts new list or continues existing lists. + +*** A negative prefix argument always works for `rst-adjust'. + +*** The window configuration is reset after displaying a TOC. + +*** The constant `rst-version' describes the rst.el package version. + +** Ruby mode + +*** Support for percent literals and recognition of regular expressions +in method calls without parentheses with more methods, including Cucumber +steps definitions. + +*** Improved syntax highlighting and indentation. + +*** New command `ruby-toggle-block', bound to `C-c {'. + +*** Some non-standard keybindings/commands have been removed: + +**** `ruby-electric-brace'; use `electric-indent-mode' instead. + +**** `ruby-mark-defun'; use `mark-defun'. + +**** `ruby-beginning-of-defun' and `ruby-end-of-defun' are replaced by +appropriate settings for the variables `beginning-of-defun-function' +and `end-of-defun-function'. + +**** Non-standard keybindings for `backward-kill-word', `comment-region', +`reindent-then-newline-and-indent' and `newline' have been removed. + +** Shell Script mode + +*** Pairing of parens/quotes uses `electric-pair-mode' instead of skeleton-pair. + +*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs. + +*** `sh-use-smie' lets you choose a new indentation and navigation code. + +** VHDL mode + +*** The free software compiler GHDL is supported (and now the default). + +*** Support for the VHDL-AMS packages has been added/updated. + +*** Updated to the 2002 revision of the VHDL standard. + +*** Accepts \r and \f as whitespace. + +** Apropos + +*** The faces used by Apropos are now directly customizable. +These faces are named `apropos-symbol', `apropos-keybinding', and so on; +see the `apropos' Custom group for details. + +*** The old options whose values specified faces to use have been removed +(i.e. `apropos-symbol-face', `apropos-keybinding-face', `apropos-label-face', +`apropos-match-face' and `apropos-property-face'.). + +** Buffer Menu + +*** This package has been rewritten to use Tabulated List mode. + +*** Option `Buffer-menu-buffer+size-width' is now obsolete. +Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead. + +** Calc + +*** Algebraic simplification mode is now the default. +To restrict to the limited simplifications given by the former +default simplification mode, use `m I'. + +** Calendar + +*** You can customize the header text that appears above each calendar month. +See the variable `calendar-month-header'. + +*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'. + +*** The calendars produced by cal-html include holidays. +Customize `cal-html-holidays' to change this. + +** CEDET + +*** The major modes from the parser generators "Bovine" and "Wisent" +are now properly integrated in Emacs. The file suffixes ".by" and ".wy" +are in `auto-mode-alist', and the corresponding manuals are included. + +*** EDE + +**** Menu support for the "Configuration" feature. This allows users to +choose the active configuration (such as debug or install) from the menu. + +**** New command `ede-set' to interactively set project-local variables. + +**** Support for compiling, debugging, and running in "generic" projects. + +**** Autoconf editing support for M4 macros with complex arguments. + +**** Compilation support for the "linux" project type. + +**** "simple" projects have been removed; use "generic" projects instead. + +*** Semantic + +**** Support for parsing #include statements inside a namespace in C/C++. + +**** Improved support for 'extern "C"' declarations in C/C++. + +**** The ability to ignore more common special C/C++ preprocessor symbols, +such as '__nonnull' and '__asm'. Add '__cplusplus' macro when parsing C++. +If available, include cdefs.h as an additional source of preprocessor symbols. + +**** Improved C/C++ function pointer parsing. + +**** In Python, support for converting imports to include file names. + +**** Ability to dynamically determine the Python load path. + +**** Support for the Python 'WITH' and 'AT' keywords. + +**** Improved tooltip completion. + +*** SRecode + +**** The SRecode manual is now included. + +**** Tag generation supports constructor/destructor settings and system +include differentiation. + +**** Addition of 'Framework' support: Frameworks are specified when a +particular kind of library (such as Android) is needed in a common language +mode (like Java). + +**** Support for nested templates and let variables override based on priority. + +**** Support for merging tables from multiple related modes, such as +default -> c++ -> arduino. + +** Compile has a new option `compilation-always-kill'. + +** Customize + +*** `custom-reset-button-menu' now defaults to t. + +*** Non-option variables are never matched in `customize-apropos' and +`customize-apropos-options' (i.e., the prefix argument does nothing for +these commands now). + +** Term + +*** The variables `term-default-fg-color' and `term-default-bg-color' +are now deprecated in favor of the customizable face `term'. + +*** You can customize how to display ANSI terminal colors and styles +by customizing the corresponding `term-color-', +`term-color-underline' and `term-color-bold' faces. + +** Tramp + +*** The syntax has been extended in order to allow ad-hoc proxy definitions. + +*** Remote processes are now also supported on remote MS-Windows hosts. + +** URL + +*** Structs made by `url-generic-parse-url' have nil `attributes' slot. +Previously, this slot stored semicolon-separated attribute-value pairs +appended to some imap URLs, but this is not compatible with RFC 3986. +So now the `filename' slot stores the entire path and query components, +and the `attributes' slot is always nil. + +*** New function `url-encode-url' for encoding a URI string. +The `url-retrieve' function now uses this to encode its URL argument, +in case that is not properly encoded. + +** notifications.el supports now version 1.2 of the Notifications API. +The function `notifications-get-capabilities' returns the supported +server properties. + +** Flymake uses fringe bitmaps to indicate errors and warnings. +See `flymake-fringe-indicator-position', `flymake-error-bitmap' and +`flymake-warning-bitmap'. + +** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings, +specifying URL types that should be converted to remote file names at +the FFAP prompt. The default is now '("ftp"). + +** New Ibuffer `derived-mode' filter, bound to `/ M'. +The old binding for `/ M' (filter by used-mode) is now bound to `/ m'. + +** New option `mouse-avoidance-banish-position' specifies where the +`banish' mouse avoidance setting moves the mouse. + +** In Perl mode, new option `perl-indent-parens-as-block' causes non-block +closing brackets to be aligned with the line of the opening bracket. + +** In Proced mode, new command `proced-renice' renices marked processes. + +** New option `async-shell-command-buffer' specifies the buffer to use +for a new asynchronous `shell-command' when the default output buffer +`*Async Shell Command*' is already in use. + +** SQL mode has a new option `sql-db2-escape-newlines'. +If non-nil, newlines sent to the command interpreter will be escaped +by a backslash. The default does not escape the newlines and assumes +that the sql statement will be terminated by a semicolon. + +** New command `tabulated-list-sort', bound to `S' in Tabulated List mode +(and modes that derive from it), sorts the column at point, or the Nth +column if a numeric prefix argument is given. + +** `which-func-modes' now defaults to t, so Which Function mode, when +enabled, applies to all applicable major modes. + +** `winner-mode-hook' now runs when the mode is disabled, as well as when +it is enabled. + +** Follow mode no longer works by using advice. +The option `follow-intercept-processes' has been removed. + +** `javascript-generic-mode' is now an obsolete alias for `js-mode'. + +** Hooks renamed to avoid obsolete "-hooks" suffix: +*** semantic-lex-reset-hooks -> semantic-lex-reset-functions +*** semantic-change-hooks -> semantic-change-functions +*** semantic-edits-new-change-hooks -> semantic-edits-new-change-functions +*** semantic-edits-delete-change-hooks -> semantic-edits-delete-change-functions +*** semantic-edits-reparse-change-hooks -> semantic-edits-reparse-change-functions +*** semanticdb-save-database-hooks -> semanticdb-save-database-functions +*** c-prepare-bug-report-hooks -> c-prepare-bug-report-hook +*** rcirc-sentinel-hooks -> rcirc-sentinel-functions +*** rcirc-receive-message-hooks -> rcirc-receive-message-functions +*** rcirc-activity-hooks -> rcirc-activity-functions +*** rcirc-print-hooks -> rcirc-print-functions +*** dbus-event-error-hooks -> dbus-event-error-functions +*** eieio-pre-method-execution-hooks -> eieio-pre-method-execution-functions +*** checkdoc-style-hooks -> checkdoc-style-functions +*** checkdoc-comment-style-hooks -> checkdoc-comment-style-functions +*** archive-extract-hooks -> archive-extract-hook +*** filesets-cache-fill-content-hooks -> filesets-cache-fill-content-hook +*** hfy-post-html-hooks -> hfy-post-html-hook +*** nndiary-request-create-group-hooks -> nndiary-request-create-group-functions +*** nndiary-request-update-info-hooks -> nndiary-request-update-info-functions +*** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions +*** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions + +** Obsolete packages + +*** assoc.el +In most cases, assoc+member+push+delq work just as well. +And in any case it's just a terrible package: ugly semantics, terrible +inefficiency, and not namespace-clean. +*** bruce.el +*** cust-print.el +*** ledit.el +*** mailpost.el +*** mouse-sel.el +*** patcomp.el + + +* Incompatible Lisp Changes in Emacs 24.3 + +** Docstrings starting with `*' no longer indicate user options. +Only variables defined using `defcustom' are considered user options. +The function `user-variable-p' is now an obsolete alias for +`custom-variable-p'. + +** The return values of `defalias', `defun' and `defmacro' have changed, +and are now undefined. For backwards compatibility, `defun' and +`defmacro' currently return the name of the newly defined +function/macro, but this should not be relied upon. + +** `random' by default now returns a different random sequence in +every Emacs run. Use `(random S)', where S is a string, to set the +random seed to a value based on S, in order to get a repeatable +sequence in later calls. + +** If the NEWTEXT arg to `replace-match' contains a substring "\?", +that substring is inserted literally even if the LITERAL arg is +non-nil, instead of causing an error to be signaled. + +** `select-window' now always makes the window's buffer current. +It does so even if the window was selected before. + +** The function `x-select-font' can return a font spec, instead of a +font name as a string. Whether it returns a font spec or a font name +depends on the graphical library. + +** `face-spec-set' no longer sets frame-specific attributes when the +third argument is a frame (that usage was obsolete since Emacs 22.2). + +** `set-buffer-multibyte' now signals an error in narrowed buffers. + +** The CL package's `get-setf-method' function no longer exists. +Generalized variables are now part of core Emacs Lisp, and implemented +differently to the way cl.el used to do it. It is not possible to +define a compatible replacement for `get-setf-method'. See the file +gv.el for internal details of the new implementation. + +** The arguments of `dbus-register-signal' are no longer just strings, +but keywords or keyword-string pairs. The old argument list will +still be supported for Emacs 24.x. + +** Miscellaneous name changes +Some Lisp symbols have been renamed to correct their spelling, +or to be more consistent with standard Emacs terminology. + +*** Renamed functions +**** hangul-input-method-inactivate -> hangul-input-method-deactivate +**** inactivate-input-method -> deactivate-input-method +**** quail-inactivate -> quail-deactivate +**** robin-inactivate -> robin-deactivate +**** viper-inactivate-input-method -> viper-deactivate-input-method +**** viper-inactivate-input-method-action -> + viper-deactivate-input-method-action +**** ucs-input-inactivate -> ucs-input-deactivate + +*** Renamed hooks +The old hooks are still supported for backward compatibility, but they +are deprecated and will be removed eventually. +**** input-method-inactivate-hook -> input-method-deactivate-hook +**** robin-inactivate-hook -> robin-deactivate-hook +**** quail-inactivate-hook -> quail-deactivate-hook + +*** Renamed variables +**** follow-deactive-menu -> follow-inactive-menu +**** inactivate-current-input-method-function -> + deactivate-current-input-method-function + +** Some obsolete functions, variables, and faces have been removed: +*** `last-input-char', `last-command-char', `unread-command-char' +*** `facemenu-unlisted-faces' +*** `rmail-decode-mime-charset' +*** `iswitchb-read-buffer' +*** `sc-version', `sc-submit-bug-report' +*** `set-char-table-default' +*** `string-to-sequence' (use `string-to-list' or `string-to-vector') +*** `compile-internal' +*** `modeline' +*** `mode-line-inverse-video' +*** `follow-mode-off-hook' +*** `cvs-commit-buffer-require-final-newline' +(use `log-edit-require-final-newline' instead) +*** `cvs-changelog-full-paragraphs' +(use `log-edit-changelog-full-paragraphs' instead) +*** `cvs-diff-ignore-marks', `cvs-diff-buffer-name' +*** `vc-ignore-vc-files' (use `vc-handled-backends' instead) +*** `vc-master-templates' (use `vc-handled-backends' instead) +*** `vc-checkout-carefully' + + +* Lisp Changes in Emacs 24.3 + +** CL-style generalized variables are now in core Elisp. +`setf' is autoloaded; `push' and `pop' accept generalized variables. +You can define your own generalized variables using `gv-define-simple-setter', +`gv-define-setter', etc. + +** Emacs tries to macroexpand interpreted (non-compiled) files during load. +This can significantly speed up execution of non-byte-compiled code, +but can also bump into previously unnoticed cyclic dependencies. +These are generally harmless: they will simply cause the macro calls +to be left for later expansion (as before), but will result in a +warning ("Eager macro-expansion skipped due to cycle") describing the cycle. +You may wish to restructure your code so this does not happen. + +** New sampling-based Elisp profiler. +Try M-x profiler-start, do some work, and then call M-x profiler-report. +When finished, use M-x profiler-stop. The sampling rate can be based on +CPU time or memory allocations. + +** `defun' also accepts a (declare DECLS) form, like `defmacro'. +The interpretation of the DECLS is determined by `defun-declarations-alist'. + +** New macros `setq-local' and `defvar-local'. + +** Face underlining can now use a wave. + +** `read-regexp' has a new argument HISTORY; the first argument PROMPT +of `read-regexp' accepts a string ending with a colon and space, and its +second argument DEFAULTS can be a list of strings accessible via `M-n' +in the minibuffer ahead of other hard-coded useful regexp-related values. +More commands use `read-regexp' now to read their regexp arguments. + +** Completion + +*** New function `completion-table-with-quoting' to handle completion +in the presence of quoting, such as file completion in shell buffers. + +*** New function `completion-table-subvert' to use an existing completion +table, but with a different prefix. + +** Debugger + +*** New error type and new function `user-error'. +These do not trigger the debugger. + +*** New option `debugger-bury-or-kill', saying what to do with the +debugger buffer when exiting debug. + +*** Set `debug-on-message' to enter the debugger when a certain +message is displayed in the echo area. This can be useful when trying +to work out which code is doing something. + +*** New var `inhibit-debugger', automatically set to prevent accidental +recursive invocations. + +** Window handling + +*** New command `fit-frame-to-buffer' adjusts the frame height to +fit the contents. + +*** The command `fit-window-to-buffer' can adjust the frame height +if the new option `fit-frame-to-buffer' is non-nil. + +*** New macro `with-temp-buffer-window', similar to +`with-output-to-temp-buffer'. + +*** `temp-buffer-resize-mode' no longer resizes windows that have been +reused. + +*** New option `switch-to-buffer-preserve-window-point' to restore a +window's point when switching buffers. + +*** New display action alist entries `window-height' and `window-width' +specify the size of new windows created by `display-buffer'. + +*** New display action alist entry `pop-up-frame-parameters', if +non-nil, specifies frame parameters to give any newly-created frame. + +*** New display action alist entry `inhibit-switch-frame', if non-nil, +tells display action functions to avoid changing which frame is +selected. + +*** New display action alist entry `previous-window', if non-nil, +specifies window to reuse in `display-buffer-in-previous-window'. + +*** New display action functions `display-buffer-below-selected', +and `display-buffer-in-previous-window'. + +*** The functions `get-lru-window', `get-mru-window' and `get-largest-window' +now accept a third argument to avoid choosing the selected window. + +*** Additional values recognized for option `window-combination-limit'. + +*** The following variables are obsolete, as they can be replaced by +appropriate entries in the `display-buffer-alist' function introduced +in Emacs 24.1: +**** `dired-shrink-to-fit' +**** `display-buffer-reuse-frames' +**** `display-buffer-function' +**** `special-display-buffer-names' +**** `special-display-frame-alist' +**** `special-display-function' +**** `special-display-regexps' + +** Time + +*** `current-time-string' no longer requires that its argument's year +must be in the range 1000..9999. It now works with any year supported +by the underlying C implementation. + +*** `current-time' now returns extended-format time stamps +(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds. +PSEC is typically a multiple of 1000 on current machines. Other +functions that use this format, such as `file-attributes' and +`format-time-string', have been changed accordingly. Old-format time +stamps are still accepted. + +*** The format of timers in `timer-list' and `timer-idle-list' is now +[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS]. +The PSECS slot is new, and uses picosecond resolution. It can be +accessed via the new `timer--psecs' accessor. + +*** Last-modified time stamps in undo lists now are of the form +(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS). + +** EIEIO + +*** Improved security when handling persistent objects: + +**** `eieio-persistent-read' now features optional arguments for specifying +the class to load, as well as a flag stating whether subclasses are allowed; +if provided, other classes will be rejected by the reader. For +compatibility with existing code, if the class is omitted only a +warning is issued. + +**** New specialized reader for pulling in classes and signaling errors +without evaluation of suspicious code. + +**** All slots that contain objects must have a :type. Slots with lists +of objects must use a new type predicate for a list of an object type. + +*** Support for `find-function' and similar utilities, through the addition +of filename support to generated symbols. + +** Floating point functions now always return special values like NaN, +instead of signaling errors, if given invalid args; e.g., (log -1.0). +Previously, they returned NaNs on some platforms but signaled errors +on others. The affected functions are acos, asin, tan, exp, expt, +log, log10, sqrt, and mod. + +** New fringe bitmap `exclamation-mark'. + +** Miscellaneous changes to special forms and macros + +*** `defun' and `defmacro' are now macros rather than special forms. + +*** `kbd' is now a function rather than a macro. + +** Miscellaneous new functions + +*** `set-temporary-overlay-map' sets up a temporary keymap that +takes precedence over most other maps for a short while (normally one key). + +*** `autoloadp' tests if its argument is an autoloaded object. + +*** `autoload-do-load' performs the autoloading operation. + +*** `buffer-narrowed-p' tests if the buffer is narrowed. + +*** `file-name-base' returns a file name sans directory and extension. + +*** `function-get' fetches a function property, following aliases. + +*** `posnp' tests if an object is a `posn'. + +*** `system-users' returns the user names on the system. + +*** `system-groups' returns the group names on the system. + +*** `tty-top-frame' returns the topmost frame of a text terminal. + +** The following functions and variables are obsolete: +*** `automount-dir-prefix' (use `directory-abbrev-alist') +*** `buffer-has-markers-at' +*** `macro-declaration-function' (use `macro-declarations-alist') +*** `window-system-version' (provides no useful information) +*** `dired-pop-to-buffer' (use `dired-mark-pop-up') +*** `query-replace-interactive' +*** `font-list-limit' (has had no effect since Emacs < 23) + + +* Changes in Emacs 24.3 on Non-Free Operating Systems + +** Cygwin builds can use the native MS Windows user interface. +Pass `--with-w32' to configure. The default remains the X11 interface. + +** Two new functions are available in Cygwin builds: +`cygwin-convert-file-name-from-windows' and +`cygwin-convert-file-name-to-windows'. These functions allow Lisp +code to access the Cygwin file-name mapping machinery to convert +between Cygwin and Windows-native file and directory names. + +** When invoked with the -nw switch to run on the Windows text-mode terminal, +Emacs now supports `mouse-highlight', help-echo (in the echo area), and +`mouse-autoselect-window'. + +** On MS Windows Vista and later Emacs now supports symbolic links. + +** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit +support for libxml2, even if its presence is detected. + +** On Mac OS X, the Nextstep port requires OS X 10.4 or later. + +** On Mac OS X, configure no longer automatically adds the Fink "/sw" +directories to the search path. You must add them yourself if you want them. + + +* Changes in Emacs 24.2 + +** This is mainly a bug-fix release. + + +* Installation Changes in Emacs 24.1 + +** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3 +to configure. Note that other libraries used by Emacs, RSVG and GConf, +also depend on Gtk+. You can disable them with --without-rsvg and +--without-gconf. + +** Emacs can be compiled with GnuTLS support. +This happens by default if a suitably recent version of the library is +found at build time. To prevent this, use the configure option +`--without-gnutls'. See below for GnuTLS features. + +** Emacs can be compiled with SELinux support. +This happens by default if a suitably recent version of the library is +found at build time. To prevent this, use the configure option +`--without-selinux'. See below for SELinux features. + +** Emacs can be compiled with ImageMagick support. +This happens by default if a suitably recent version of the library is +found at build time. To prevent this, use the configure option +`--without-imagemagick'. See below for ImageMagick features. +This feature is not available for the Nextstep or MS ports. + +** Emacs can be compiled with libxml2 support. +This happens by default if a suitably recent version of the library is +found at build time. To prevent this, use the configure option +`--without-xml2'. See below for libxml2 features. + +** By default, the installed Info and man pages are compressed. +You can disable this by configuring --without-compress-info. + +** New configure option --with-wide-int. +With it, Emacs integers typically have 62 bits, even on 32-bit machines. +On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB +to about 2 GiB. + +** New configure options: --with-mmdf, --with-mail-unlink, --with-mailhost. +These provide no new functionality, they just remove the need to edit +lib-src/Makefile by hand in order to use the associated features. + +** New configure option --enable-use-lisp-union-type. +This is only useful for Emacs developers to debug certain types of bugs. +This is not a new feature; only the configure flag is new. + +** The standalone programs digest-doc and sorted-doc are removed. +Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'. + +** The standalone program `fakemail' is removed. +If you need it, feedmail.el provides a superset of the functionality. + + +* Startup Changes in Emacs 24.1 + +** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte +command line arguments, and the EMACS_UNIBYTE environment variable, no +longer have any effect. (They were declared obsolete in Emacs 23.) + +** New command line option `--no-site-lisp' removes site-lisp directories +from load-path. -Q now implies this. This option does not affect the +EMACSLOADPATH environment variable (and hence has no effect for +Nextstep builds). + + +* Changes in Emacs 24.1 + +** Completion + +*** Many packages now use the `completion-at-point' command, +rather than implementing separate completion commands. + +*** `completion-at-point' now handles tags and semantic completion. + +*** Completion in a non-minibuffer now tries to detect the end of completion +and pops down the *Completions* buffer accordingly. + +*** New option `completion-cycle-threshold' allows completion cycling. + +*** New option `completion-category-overrides' for overriding the +default completion style in certain circumstances. + +*** New completion style `substring'. + +*** Completion of buffer names uses `substring' completion by default. + +*** The option `widget-complete-field' has been removed. + +** Mail changes + +*** The first time you try sending mail, Emacs asks for a mail method. +This is implemented by a new default for `send-mail-function', which +is `sendmail-query-once'. This offers to use the smtpmail package, or +to use the old defaults relying on external mail facilities +(`sendmail-send-it' on GNU/Linux and other Unix-like systems, and +`mailclient-send-it' on Windows). + +*** Typing `C-c m' in the buffer made by `M-x report-emacs-bug' +transfers the report to your desktop's preferred mail client, if there +is one. This uses either the "xdg-email" utility, or Mac OS's "open" +command. + +*** See Changes in Specialized Modes and Packages for SMTPmail changes +and Mail mode changes + +** Emacs server and client changes + +*** New option `server-port' specifies the port for TCP Emacs servers. + +*** New emacsclient argument -q/--quiet suppresses some status messages. + +*** New emacsclient argument --frame-parameters specifies the frame +parameters of any newly-created graphical frame. + +*** If emacsclient shuts down due to Emacs signaling an error, +its exit status is 1. + +*** New emacsclient argument --parent-id ID. +This opens a client frame in parent X window ID, via XEmbed, similar +to the --parent-id argument to Emacs. + +** Internationalization changes + +*** Emacs now supports display and editing of bidirectional text. +Right-to-left (RTL) scripts, such as Arabic, Farsi, and Hebrew, are +displayed in the correct visual order as expected by users of those +scripts. The display reordering is a "full bidirectionality" class +implementation of the Unicode Bidirectional Algorithm (UBA). Buffers +with no RTL text should look exactly the same as before. + +**** New buffer-local variable `bidi-display-reordering'. +To disable display reordering in a buffer, change this to nil. + +**** New buffer-local variable `bidi-paragraph-direction'. +If nil (the default), Emacs determines the base direction of each +paragraph from its text, as specified by the UBA. Setting the value +to `right-to-left' or `left-to-right' forces a base direction on each +paragraph. + +Paragraphs with right-to-left base direction are displayed starting at +the right window edge. + +*** Enhanced support for characters with no glyphs in available fonts, +or, on text terminals, characters that cannot be encoded by the +terminal coding system. The new option `glyphless-char-display-control' +specifies how to display them: as a hexadecimal code in a box, a thin +1-pixel space, an empty box, etc. + +*** New input methods for Farsi and Bulgarian +(farsi-isiri-9147, farsi-transliterate-banan, bulgarian-alt-phonetic). + +*** `nobreak-char-display' now also highlights Unicode hyphen chars +(U+2010 and U+2011). + +*** New Hebrew translation of the Emacs Tutorial. +Type `C-u C-h t' to choose it in case your language setup doesn't +automatically select it. + +** An Emacs Lisp package manager is now included. +This is a convenient way to download and install additional packages, +from a package repository at http://elpa.gnu.org. + +*** M-x list-packages shows a list of packages, which can be +selected for installation. + +*** New command `describe-package', bound to `C-h P'. + +*** By default, all installed packages are loaded automatically when +Emacs starts up. To disable this, set `package-enable-at-startup' to +nil. To specify the packages to load, customize `package-load-list'. + +** Custom theme changes + +*** New command `M-x customize-themes', which provides a convenient +interface for enabling and disabling Custom themes. + +*** New option `custom-theme-load-path' is the load path for themes. +Emacs no longer looks for Custom themes in `load-path'. The default +value of `custom-theme-load-path' says to look for themes in +`custom-theme-directory', followed by a subdirectory of +`data-directory' named "themes/", which contains a small selection of +built-in Custom themes. + +*** New option `custom-safe-themes' records known-safe theme files. +If a theme is not in this list, Emacs queries before loading it, and +offers to save the theme to `custom-safe-themes' automatically. By +default, all themes included in Emacs are treated as safe. + +** Improved GTK integration + +*** GTK scroll-bars are now placed on the right by default. +The function `set-scroll-bar-mode' can change this. + +*** GTK tool bars can have just text, just images or images and text. +Customize `tool-bar-style' to choose the style. On a Gnome desktop, +the default is taken from desktop settings. + +*** GTK tool bars can be placed on any edge of the frame. +The frame-parameter tool-bar-position controls this. It takes the +values top, left, right or bottom. The Options => Show/Hide menu has +entries for this. + +*** The default colors for selected text (the `region' face) are taken +from the GTK theme when Emacs is built with GTK. + +*** Emacs uses GTK tooltips by default if built with GTK. +You can disable this by changing `x-gtk-use-system-tooltips' to nil. + +** Graphical interface changes + +*** On graphical displays, the mode-line no longer ends in dashes. +Also, the first dash (which does not indicate anything) is just +displayed as a space. + +*** `menu-bar-select-buffer-function' lets you choose another operation +instead of `switch-to-buffer' when selecting an item in the Buffers menu. + +*** Lucid menus and dialogs can display antialiased fonts if Emacs is +built with Xft. These fonts can be set via X resources, for example: +Emacs.pane.menubar.font: Courier-12 + +** Exiting changes + +*** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP, +or if it receives a SIGINT signal in batch mode. + +*** `kill-emacs-hook' is now also run in batch mode. +Third-party code which adds to `kill-emacs-hook' should check if they +do the right thing in batch mode. + +** Scrolling changes + +*** New scrolling commands `scroll-up-command' and `scroll-down-command' +(bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom +of buffer at first key-press (instead they move to top/bottom of buffer) +when `scroll-error-top-bottom' is non-nil. + +*** New option `scroll-error-top-bottom' (see above). + +*** New scrolling commands `scroll-up-line' and `scroll-down-line' +scroll a line instead of full screen. + +*** New property `scroll-command' should be set on a command's symbol to +define it as a scroll command affected by `scroll-preserve-screen-position'. + +*** If you customize `scroll-conservatively' to a value greater than 100, +Emacs will never recenter point in the window when it scrolls due to +cursor motion commands or commands that move point (e.f., `M-g M-g'). +Previously, you needed to use `most-positive-fixnum' as the value of +`scroll-conservatively' to achieve the same effect. + +*** "Aggressive" scrolling now honors the scroll margins. +If you customize `scroll-up-aggressively' or +`scroll-down-aggressively' and move point off the window, Emacs now +scrolls the window so as to avoid positioning point inside the scroll +margin. + +** Basic SELinux support has been added. +This requires Emacs to be linked with libselinux at build time. + +*** Emacs preserves the SELinux file context when backing up. +Also, the function `copy-file' has an extra optional argument for +preserving SELinux context, and the return value of `backup-buffer' +now includes the SELinux context. + +*** New functions `file-selinux-context' and `set-file-selinux-context' +get and set the SELinux context of a file. + +** Trash changes + +*** `delete-by-moving-to-trash' now only affects commands that specify +trashing. This avoids inadvertently trashing temporary files. + +*** Calling `delete-file' or `delete-directory' with a prefix argument +now forces true deletion, regardless of `delete-by-moving-to-trash'. + +** File- and directory-local variable changes + +*** You can stop directory local vars from applying to subdirectories. +Add an element (subdirs . nil) to the alist portion of any variables +settings to indicate that the section should not apply to +subdirectories. + +*** Directory local variables can apply to some file-less buffers. +Affected modes include dired, vc-dir, and log-edit. For example, +adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will +turn on `whitespace-mode' for *vc-diff* buffers. Modes should call +`hack-dir-local-variables-non-file-buffer' to support this. + +*** Using "mode: MINOR-MODE" to enable a minor mode is deprecated. +Instead, use "eval: (minor-mode 1)". + +*** The variable `inhibit-first-line-modes-regexps' has been renamed +to `inhibit-local-variables-regexps'. As the name suggests, it now +applies to ALL file local variables, not just -*- lines. The +associated `inhibit-first-line-modes-suffixes' has been renamed in the +corresponding way. + +** Window changes + +*** The `quit-window' command now restores the last buffer displayed +in the quitted window. + +*** Resizing an Emacs frame now preserves proportional window sizes, +modulo restrictions like window minimum sizes and fixed-size windows. + +*** The behavior of `display-buffer' is now customizable in detail. + +**** New option `display-buffer-base-action' specifies a list of +user-determined display "actions" (functions and optional arguments +for choosing the displaying window). + +This takes precedence over the default display action, which is +specified by `display-buffer-fallback-action'. + +**** New option `display-buffer-alist' maps buffer name regexps to +display actions, taking precedence over `display-buffer-base-action'. + +*** New option `window-combination-limit'. +The new option `window-combination-limit' allows to return the space +obtained for resizing or creating a window more reliably to the window +from which such space was obtained. + +*** New option `window-combination-resize'. +The new option `window-combination-resize' allows to split a window that +otherwise cannot be split because it's too small by stealing space from +other windows in the same combination. Subsequent resizing or deletion +of the window will resize all windows in the same combination as well. + +*** New option `frame-auto-hide-function' lets you choose between +iconifying or deleting a frame when burying a buffer in a dedicated +frame, or quitting a window showing a buffer in a frame of its own. + +*** New commands `maximize-window' and `minimize-window'. +These maximize and minimize the size of a window within its frame. + +*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'. +These functions allow to navigate through the live buffers that have +been shown in a specific window. + +** Minibuffer changes + +*** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'. +This is handy for minibuffer-only frames, and is also used for the feature +where mouse-1 pops up *Messages*"', which can now easily be changed. + +*** Minibuffers set `truncate-lines' to nil. +If you want to change the value to something else, you could use +for example `minibuffer-setup-hook'. + +** `auto-mode-case-fold' is now enabled by default. + +** `backup-by-copying-when-mismatch' now defaults to t. + +** New basic faces `error', `warning', `success'. +These are used to highlight text indicating failure, caution or +successful operation. + +** New option `list-colors-sort' defines the color sort order +for `list-colors-display'. + +** The variable `focus-follows-mouse' now always defaults to nil. + + +* Editing Changes in Emacs 24.1 + +** Search changes + +*** C-y in Isearch is now bound to `isearch-yank-kill', instead of +`isearch-yank-line'. + +*** M-y in Isearch is now bound to `isearch-yank-pop', instead of +`isearch-yank-kill'. + +*** M-s C-e in Isearch is now bound to `isearch-yank-line'. + +** New commands `count-words-region' and `count-words'. + +*** M-= is bound to `count-words-region', not `count-lines-region'. +The `count-words-region' command, when called interactively, reports +the number of lines, words, and characters in the region. It is a +superset of the old `count-lines-region', which is now an obsolete +alias for it. + +** The command `just-one-space' (M-SPC), if given a negative argument, +also deletes newlines around point. + +** Deletion changes + +*** New option `delete-active-region'. +If non-nil, [delete] and DEL delete the region if it is active and no +prefix argument is given. If set to `kill', those commands kill +instead. + +*** New command `delete-forward-char', bound to [delete]. +This is meant for interactive use, and obeys `delete-active-region'. +The command `delete-char' does not obey `delete-active-region'. + +*** `delete-backward-char' is now a Lisp function. +Apart from obeying `delete-active-region', its behavior is unchanged. +However, the byte compiler now warns if it is called from Lisp; Lisp +callers should use delete-char with a negative argument instead. + +*** The option `mouse-region-delete-keys' has been deleted. + +** Selection changes. + +The default handling of clipboard and primary selections has been +changed to conform with modern X applications. In short, most +commands for killing and yanking text now use the clipboard, while +mouse commands use the primary selection. + +In the following, we provide a list of these changes, followed by a +list of steps to get the old behavior back if you prefer that. + +*** `select-active-regions' now defaults to t. +Merely selecting text (e.g. with drag-mouse-1) no longer puts it in +the kill ring. The selected text is put in the primary selection, if +the system possesses a separate primary selection facility (e.g. X). + +**** `select-active-regions' also accepts a new value, `only'. +This means to only set the primary selection for temporarily active +regions (usually made by mouse-dragging or shift-selection); +"ordinary" active regions, such as those made with C-SPC followed by +point motion, do not alter the primary selection. + +**** `mouse-drag-copy-region' now defaults to nil. + +*** mouse-2 is now bound to `mouse-yank-primary'. +This pastes from the primary selection, ignoring the kill-ring. +Previously, mouse-2 was bound to `mouse-yank-at-click'. + +*** `x-select-enable-clipboard' now defaults to t on all platforms. + +*** `x-select-enable-primary' now defaults to nil. +Thus, commands that kill text or copy it to the kill-ring (such as +M-w, C-w, and C-k) also use the clipboard---not the primary selection. + +**** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now +exactly equivalent to M-w, C-w, and C-y respectively. + +**** Note that on MS-Windows, `x-select-enable-clipboard' was already +non-nil by default, as Windows does not support the primary selection +between applications. + +*** To return to the previous behavior, do the following: + +**** Change `select-active-regions' to nil. +**** Change `mouse-drag-copy-region' to t. +**** Change `x-select-enable-primary' to t (on X only). +**** Change `x-select-enable-clipboard' to nil. +**** Bind `mouse-yank-at-click' to mouse-2. + +*** Support for X cut buffers has been removed. + +*** X clipboard managers are now supported. +To inhibit this, change `x-select-enable-clipboard-manager' to nil. + +** New command `C-x r N' (`rectangle-number-lines') numbers the lines +in the current rectangle. With a prefix argument, this prompts for a +number to count from and for a format string. + +** `redisplay-dont-pause' now defaults to t. +This makes Emacs feel more responsive to editing commands that arrive +at high rate, e.g. if you lean on some key, because stopping redisplay +in the middle (when this variable is nil) forces more expensive +updates later on, and Emacs appears to be unable to keep up. + +** The behavior of for active regions in Text mode has changed. +In Text and related modes, typing (`indent-for-tab-command') +when the region is active causes Emacs to indent all the lines in the +region, aligning them with the line previous to the first line in the +region (or with the left margin if there is no previous line). + +** When `occur' is called with a prefix argument, matching strings are +collected into the `*Occur*' buffer without line numbers. If there +are parenthesized subexpressions in the specified regexp, `occur' +reads replacement text that may contain \\& and \\N whose convention +follows `replace-match'. + + +* Changes in Specialized Modes and Packages in Emacs 24.1 + +** Archive Mode has basic support for browsing and updating 7z archives. + +** BibTeX mode + +*** BibTeX mode now supports biblatex. +Use the variable `bibtex-dialect' to select different BibTeX dialects. +`bibtex-entry-field-alist' is now an obsolete alias for +`bibtex-BibTeX-entry-alist'. + +*** New command `bibtex-search-entries', bound to C-c C-a. + +*** New `bibtex-entry-format' option `sort-fields', disabled by default. + +*** New variable `bibtex-search-entry-globally'. + +** Browse-url + +*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s. + +*** The default browser used by the package is now the "xdg-open" program, +on platforms that support it. This calls your desktop's preferred browser. + +** Calc + +*** Support for musical notes. + +*** Support for logarithmic units. + +*** No longer uses the tex prefix for TeX specific unit names when +using TeX or LaTeX mode. + +*** New option to highlight selections using faces. + +*** `calc-histogram' has the option of using a vector to determine the bins. + +*** New "O" option prefix. + +*** Use the "O" prefix to "d r" (`calc-radix') to turn on twos-complement mode. + +** Calendar, Diary, and Appt + +*** Diary entries can contain non-printing "comments". +See the variable `diary-comment-start'. + +*** Appointments can specify their individual warning times. +See the variable `appt-warning-time-regexp'. + +*** The function specified by `appt-disp-window-function' may be passed +lists of arguments if multiple appointments are due at similar times. +If you are using a custom function for this, you should update it. + +*** New function `diary-hebrew-birthday'. + +*** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array' +may no longer be nil, but must all be strings. + +*** The obsolete (since Emacs 22.1) method of enabling the appt +package by adding `appt-make-list' to `diary-hook' has been removed. +Use `appt-activate' instead. + +*** Some appt variables (obsolete since Emacs 22.1) have been removed: +appt-issue-message (use the function appt-activate) +appt-visible/appt-msg-window (use the variable appt-display-format) + +*** Some diary function aliases (obsolete since Emacs 22.1) have been removed: +view-diary-entries, list-diary-entries, show-all-diary-entries + +** CC Mode + +*** New feature to "guess" the style in an existing buffer. +The main entry point is M-x c-guess. + +*** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang). + +*** `c-beginning-of-defun' and `c-end-of-defun' now respect nested scopes. +Thus C-M-a will, by default, go to the beginning of the immediate function, +not the top level. + +*** "Macros with semicolons" can be registered for correct indentation. +Where such a macro ends a line (no semicolon) the next statement is no longer +parsed as a statement continuation. + +** Comint and modes derived from it use the standard completion code. + +** Compilation mode + +*** Compilation mode can be used without Font Lock mode. +`compilation-parse-errors-function' is now obsolete. + +*** New variable `compilation-filter-start', which is bound while +`compilation-filter-hook' runs. It records the start position of the +text inserted by `compilation-filter'. + +*** `compilation-error-screen-columns' and `compilation-first-column' +are obeyed in the editing buffer. So programming language modes can +set them, whereas previously only the value in the *Compilation* +buffer was used. + +** Customize + +*** Customize buffers now contain a search field. +The search is performed using `customize-apropos'. +To turn off the search field, set `custom-search-field' to nil. + +*** Options in customize group buffers start out hidden if not customized. +Use the arrow to the left of the option name to toggle visibility. + +*** custom-buffer-sort-alphabetically now defaults to t. + +*** The color widget now has a "Choose" button, which allows you to +choose a color via `list-colors-display'. + +** D-Bus + +*** It is now possible to access buses other than the default system +or session bus. + +*** The `dbus-register-method' and `dbus-register-property' functions +optionally do not register names. + +*** The new function `dbus-register-service' registers a known service +name on a D-Bus without also registering a property or a method. + +** Dired-x + +*** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'), +if called with a prefix argument, read a file name from the minibuffer +instead of using the current buffer. + +*** The "dired local variables" feature of Dired-x is obsolete. +The standard directory local variables feature replaces it. + +** ERC changes + +*** New options `erc-autojoin-timing' and `erc-autojoin-delay', +controlling attempts to autojoin a channel. + +*** New variable `erc-coding-system-precedence': If we use `undecided' +as the server coding system, this variable will then be consulted. +The default is to decode strings that can be decoded as utf-8 as +utf-8, and do the normal `undecided' decoding for the rest. + +** Eshell changes + +*** The default value of `eshell-directory-name' has changed +to be an "eshell" directory in `user-emacs-directory'. +The old "~/.eshell/" directory is still used if it exists, though. + +** gdb-mi + +*** The M-x gdb command now uses the GDB Machine Interface protocol. +It now supports multithread non-stop debugging and simultaneous +debugging of several threads. + +** Image mode + +*** RET (`image-toggle-animation') toggles animation, if applicable. +Animation plays once, unless the option `image-animate-loop' is non-nil. + +** Info + +*** New command M-x info-display-manual displays a named Info manual. +If that manual is already visited in some Info buffer, it displays +that buffer. (This is handy if you have many manuals in many *info* +buffers, and don't remember the name of the buffer visiting the manual +you want to consult.) Otherwise, it loads and displays the manual. + +*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'. +This is for compatibility with the stand-alone Info reader program, +and also because `Info-edit' is a rarely used command that is disabled +by default. + +** Mail mode changes (not Message mode) + +*** New command M-x mail-add-attachment for adding MIME attachments + +*** The command M-x mail-attach-file was renamed to M-x mail-insert-file. +(Its name is misleading, since it has nothing to do with MIME +attachments.) The old name is now an obsolete alias to the new name. + +** MH-E has been updated to MH-E version 8.3.1. +See MH-E-NEWS for details. + +** Modula-2 mode provides auto-indentation. + +** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags. + +** nXML mode no longer binds C-RET to `nxml-complete'. +Completion is now performed via `completion-at-point', bound to C-M-i +or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the +default), this performs tag completion. + +** Org mode has been updated to version 7.8.09. +See ORG-NEWS for details. + +** Prolog mode has been completely revamped, with lots of additional +functionality such as more intelligent indentation, electricity, +support for more variants, including Mercury, and a lot more. + +** Rmail + +*** The command `rmail-epa-decrypt' decrypts OpenPGP data +in the Rmail incoming message. + +*** The variable `rmail-message-filter' no longer has any effect. +This change was made in Emacs 23.1 but was not advertised at the time. +Try using `rmail-show-message-hook' instead. + +** Shell mode + +*** M-x shell prompts for the shell path name if the default directory +is a remote file name and neither the environment variable $ESHELL nor +the variable `explicit-shell-file-name' is set. + +*** TAB is now bound to the standard `completion-at-point' command, +which now implements the pcomplete rules for shell command completion. + +** SMTPmail + +*** SMTPmail now uses encrypted connections (via STARTTLS) by default +if the mail server supports them. This uses either built-in GnuTLS +support, or the starttls.el library. Customize `smtpmail-stream-type' +to change this. + +*** The variable `smtpmail-auth-credentials' has been removed. +By default, the information is now stored in the file ~/.authinfo. +This was the default value of smtpmail-auth-credentials. If you had +customized smtpmail-auth-credentials to a list of user names and +passwords, those settings are not used. During your first connection +to the smtp server, Emacs will prompt for the user name and password, +and offer to save them to ~/.authinfo. Or you can manually copy the +credentials to ~/.authinfo. For example, if you had + + (setq smtpmail-auth-credentials + '(("mail.example.org" 25 "jim" "s!cret"))) + +then the equivalent line in ~/.authinfo would be + + machine mail.example.org port 25 login jim password s!cret + +See the auth-source manual for more information, e.g. on encrypting +the credentials file. + +*** The variable `smtpmail-starttls-credentials' has been removed. +If you had that set, you need to put + + machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert" + +in your ~/.authinfo file instead. + +*** SMTPmail defaults to using the address in the From: header as the +SMTP MAIL FROM envelope. To override this, set `mail-envelope-from' +to the address you wish to use instead. + +** SQL mode + +*** New options `sql-port', `sql-connection-alist', `sql-send-terminator', +and `sql-oracle-scan-on'. + +*** New options controlling prompting for login parameters. +Each supported product has a custom variable `sql-*-login-params', +which is a list of the parameters to be prompted for before a +connection is established. + +*** The command `sql-product-interactive' now takes a prefix argument, +which causes it to prompt for an SQL product. + +*** Product-specific SQL interactive commands now take prefix arguments. +These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.), +given a prefix argument, prompt for a name for the SQL interactive +buffer. This reduces the need for calling `sql-rename-buffer'. + +*** SQL interactive modes suppress command continuation prompts, and +replace tabs with spaces. The first change impacts multiple line SQL +statements entered with C-j between each line, statements yanked into +the buffer and statements sent with `sql-send-*' functions. The +second prevents the MySQL and Postgres interpreters from listing +object name completions when sent text via `sql-send-*' functions. + +*** New command `sql-connect' starts a predefined SQLi session, +using the login parameters from `sql-connection-alist'. + +*** New "Save Connection" menu item in SQLi buffers. +This gathers the login params specified for the SQLi session, if it +was not started by a connection, and saves them as a new connection. + +*** New commands for listing database objects and details: +sql-list-all and sql-list-table. + +*** An API for manipulating SQL product definitions has been added. + +** TeX modes + +*** latex-electric-env-pair-mode keeps \begin..\end matched on the fly. + +** Tramp + +*** New inline access method "ksu" (kerberized su). + +*** The following access methods are discontinued: "ssh1_old", +"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish". + +*** The user option `remote-file-name-inhibit-cache' controls whether +remote file attributes are cached for better performance. + +*** The option `ange-ftp-binary-file-name-regexp' has changed its +default value to "". + +*** Handlers for `file-selinux-context' and `set-file-selinux-context' +for remote machines which support SELinux. + +** New function `url-queue-retrieve', which behaves like url-retrieve, +but with limits (`url-queue-parallel-processes', `url-queue-timeout') on +the degree of parallelism. + +** VC and related modes + +*** Support for pulling on distributed version control systems. +The command C-x v + (`vc-pull') runs a "pull" operation, if it is +supported (currently with Bzr, Git, and Mercurial), to update the +current branch and working tree. A prefix argument means to prompt +the user for specifics, e.g. a pull location. + +*** `vc-update' is now an alias for `vc-pull'. + +*** Support for merging on distributed version control systems. +The command C-x v m (`vc-merge') now runs a "merge" operation, if it +is supported (currently with Bzr, Git, and Mercurial), to merge +changes from another branch into the current one. It prompts for +specifics, e.g. a merge source. + +*** New option `vc-revert-show-diff' controls whether `vc-revert' +shows a diff while querying the user. It defaults to t. + +*** Log entries in some Log View buffers can be toggled to display a +longer description by typing RET (log-view-toggle-entry-display). +This is currently supported for Bzr, Git, and Mercurial (to support +another backend, define a `log-view-expanded-log-entry-function'). +In the Log View buffers made by C-x v L (`vc-print-root-log'), you can +use this to display the full log entry for the revision at point. + +*** New command `vc-ediff' allows visual comparison of two revisions +of a file similar to `vc-diff', but using ediff backend. + +*** The option `vc-initial-comment' was removed in Emacs 23.2, but +this was not advertised at the time. + +*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'. +Since Emacs 23, it has done the same thing as `toggle-read-only', but +this was not advertised at the time. + +** Obsolete modes + +*** abbrevlist.el + +*** erc-hecomplete.el (use erc-pcomplete.el instead) + +*** partial-completion-mode (complete.el) is obsolete. +You can get a comparable behavior with: +(setq completion-styles '(partial-completion initials)) +(setq completion-pcm-complete-word-inserts-delimiters t) + +*** pc-mode.el is obsolete (CUA mode is much more comprehensive). + +*** pgg is obsolete (use EasyPG instead). + +*** sregex.el is obsolete, since rx.el is a strict superset. + +*** s-region.el and pc-select.el are obsolete. +They are superseded by shift-select-mode, enabled by default since 23.1. + +*** vc-mcvs.el is obsolete (for lack of a maintainer). + +** Miscellaneous + +*** The Landmark game is now invoked with `landmark', not `lm'. +Its functions and variables have been similarly renamed. + +*** In `ido-file-completion-map', C-v is no longer bound to `ido-toggle-vc'. +(This interfered with cua-mode.) + +*** f90.el has some support for Fortran 2008 syntax. + +*** `copyright-fix-years' can optionally convert consecutive years to ranges. + +*** New command `nato-region' converts text to NATO phonetic alphabet. + + +* New Modes and Packages in Emacs 24.1 + +** Occur Edit mode applies edits made in *Occur* buffers to the +original buffers. It is bound to "e" in Occur mode. + +** New global minor mode electric-pair-mode. +When enabled, typing an open parenthesis automatically inserts the +matching closing one. + +** New global minor mode electric-indent-mode. +When enabled, typing certain characters triggers reindentation. +Major modes wishing to use this can set electric-indent-chars or +electric-indent-functions. + +** New global minor mode electric-layout-mode. +When enabled, typing certain characters automatically inserts newlines. +Major modes wishing to use this can set electric-layout-rules. + +** tabulated-list.el provides a generic major mode for tabulated data, +from which other modes can be derived. + +** pcase.el provides the ML-style pattern matching macro `pcase'. + +** secrets.el is an implementation of the Secret Service API, an +interface to password managers like GNOME Keyring or KDE Wallet. The +Secret Service API requires D-Bus for communication. The command +`secrets-show-secrets' offers a buffer with a visualization of the +secrets. + +** notifications.el provides an implementation of the Desktop +Notifications API. It requires D-Bus for communication. + +** soap-client.el supports access to SOAP web services from Emacs. +soap-inspect.el is an interactive inspector for SOAP WSDL structures. + +** New generic mode, xmodmap-generic-mode, for xmodmap files. + +** New emacs-lock.el package. +The previous version has been moved to obsolete/old-emacs-lock.el. +Now, there is a proper minor mode `emacs-lock-mode'. Protection +against exiting Emacs and killing the buffer can be set separately. +The mechanism for automatically turning off protection for buffers +with dead inferior processes has been generalized. + + +* Incompatible Lisp Changes in Emacs 24.1 + +** Passing a nil argument to a minor mode function call now ENABLES +the minor mode unconditionally. This is so that you can write e.g. + + (add-hook 'text-mode-hook 'foo-mode) + +to enable foo-mode in Text mode buffers, removing the need for +`turn-on-foo-mode' style functions. This affects all mode commands +defined by `define-minor-mode'. If called interactively, the mode +command still toggles the minor mode. + +** The return value of `backup-buffer' has changed. +It is now a list of three elements, where the second element is a list +describing the original file's SELinux context. If Emacs or the +system lacks SELinux support, the context list is (nil nil nil nil). +See "Basic SELinux support" above, under "Changes in Emacs 24.1". + +** `char-direction-table' and the `char-direction' function were deleted. +They were buggy and inferior to the new support of bidirectional +editing introduced in Emacs 24. If you need the bidirectional +properties of a character, use `get-char-code-property' with the last +argument `bidi-class'. + +** `copy-directory' now copies the source directory as a subdirectory +of the target directory, if the latter is an existing directory. The +new optional arg COPY-CONTENTS, if non-nil, makes the function copy +the contents directly into a pre-existing target directory. + +** For mouse click input events in the text area, the Y pixel +coordinate in the POSITION list now counts from the top of the text +area, excluding any header line. Previously, it counted from the top +of the header line. + +** Support for "old-style" backquotes, obsolete for 10+ years, has +been further reduced. Now a backquote not followed by a space is +always treated as a "new-style" backquote. Please remove all +"old-style" backquotes from your code. If your code uses backquotes +as documented in the Elisp manual, and compiles without warning, then +you have nothing to do in this regard. Code not following the +appropriate conventions may fail to compile. + +The most common cause of trouble seems to be an old-style backquote +followed by a newline. Another cause of trouble is vector notation +for key sequence notation: instead of [(control ,)] and [(control ')], +you should write [(control ?,)] and [(control ?')], which will work in +older Emacsen too. + +** The macro `eval-at-startup' was removed in Emacs 23.2, but this +was not advertised at the time. The function `custom-initialize-delay' +replaced all known uses. + +** `view-buffer' now treats special mode-class in the same way that +`view-file' has since Emacs 22 (i.e. it won't enable View mode if the +major mode is special). + +** Menu and tool bar changes + +*** During startup, Emacs no longer adds entries for `menu-bar-lines' +and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'. +With these alist entries omitted, `make-frame' checks the value of the +variable `menu-bar-mode'/`tool-bar-mode' to determine whether to create +a menu-bar or tool-bar, respectively. If the alist entries are added, +they override the value of `menu-bar-mode'/`tool-bar-mode'. + +*** The menu bar bindings's caches are not used any more. +Use (where-is-internal nil t) instead. + +** Regions created by mouse dragging are now normal active regions, +similar to those created by shift-selection (see Selection changes +above). In previous Emacs versions, these regions were delineated by +`mouse-drag-overlay'; that variable has been removed. + +** The fourth argument of `filter-buffer-substring' has been removed. +If you want to remove text properties from the final result, simply +pass the result through substring-no-properties. + +** cl.el no longer provides `cl-19'. + +** The following obsolete functions and aliases have been removed +(the appropriate new function is given in parentheses; "not needed" +means you can just remove all calls to the function in question): + +*** `comint-kill-output' (`comint-delete-output') +*** `decompose-composite-char' (`char-to-string') +*** `outline-visible' (`outline-invisible-p') +*** `internal-find-face' (`facep') +*** `internal-get-face' (`facep and check-face') +*** `frame-update-faces' (not needed) +*** `frame-update-face-colors' (`frame-set-background-mode') +*** `x-frob-font-weight' and `x-frob-font-slant' (`make-face-*' functions) +*** `x-make-font-bold' and `x-make-font-demibold' (`make-face-bold') +*** `x-make-font-italic' and `x-make-font-oblique' (`make-face-italic') +*** `x-make-font-bold-italic' (`make-face-bold-italic') +*** `x-make-font-unbold' (`make-face-unbold') +*** `x-make-font-unitalic' (`make-face-unitalic') +*** `mldrag-drag-mode-line' (`mouse-drag-mode-line') +*** `mldrag-drag-vertical-line' (`mouse-drag-vertical-line') +*** `iswitchb-default-keybindings' (`iswitchb-mode') +*** `char-bytes' (== 1) +*** `isearch-return-char' (`isearch-printing-char') +*** `make-local-hook' (not needed) +*** `set-screen-height' (`set-frame-height') +*** `set-screen-width' (`set-frame-width') + +** The following obsolete variables and varaliases have been removed +(the appropriate new variable is given in parentheses): + +*** `checkdoc-minor-keymap' (`checkdoc-minor-mode-map') +*** `vc-header-alist' (`vc-BACKEND-header') +*** `directory-sep-char' (== ?/) +*** `font-lock-defaults-alist' (`font-lock-defaults') +*** `e' (`float-e'). + +** The following obsolete files were removed: +sc.el, x-menu.el, rnews.el, rnewspost.el + +** The format of the finder-inf.el file has changed, since the Finder +mechanism is now based on the package system. The variable +`finder-package-info' is replaced by `package--builtins' and +`finder-keywords-hash'. + +** When generating autoloads, `update-directory-autoloads' no longer +assumes every inspected file is in your `load-path'. It instead +generates relative names according to the current `load-path'. + + +* Lisp Changes in Emacs 24.1 + +** Code can now use lexical scoping by default instead of dynamic scoping. +The `lexical-binding' variable enables lexical scoping for local +variables. It is typically set via a file-local variable in the first +line of the file, in which case it applies to all the code in that +file. + +*** `eval' takes a new optional argument `lexical' to choose the new lexical +binding instead of the old dynamic binding mode. + +*** Lexically scoped interpreted functions are represented with a new form +of function value which looks like (closure ENV ARGS &rest BODY). + +*** New macro `letrec' to define recursive local functions. + +*** `defvar' and `defconst' now mark the variable as special (dynamic). +So do `defcustom' and other forms that call `defvar' as a subroutine. + +*** New function `special-variable-p' to check whether a variable is +declared as dynamically bound. + +*** The form ((lambda ...) ...) is deprecated. + +** An Emacs Lisp testing tool is now included. +Emacs Lisp developers can use this tool to write automated tests for +their code. See the ERT info manual for details. + +** Changes for bidirectional display and editing + +*** New function `current-bidi-paragraph-direction'. +This returns the base direction of the paragraph at point. + +*** New function `bidi-string-mark-left-to-right'. +Given a string containing characters from right-to-left scripts, this +function returns another string which can be safely inserted into a +buffer, such that any following text will be always displayed to the +right of that string. (This works by appending an invisible Unicode +"LEFT-TO-RIGHT MARK" character if the argument string might need it.) + +This is useful when the buffer has overall left-to-right paragraph +direction and you need to insert a string whose contents are not known +in advance, without disrupting the layout of the line. + +** Window changes + +*** Window tree functions are accessible in Elisp. +Functions are provided to return the parent, siblings or child windows +of any window including internal windows (windows not associated with a +buffer) in the window tree. + +**** New function `window-valid-p' gives non-nil for live and internal +windows. + +**** Window manipulation can deal with internal windows. +Many window handling functions like `split-window', `delete-window', or +`delete-other-windows' as well as the window resizing functions can now +act on any window including internal ones. + +*** window-total-height/-width vs window-body-height/-width. +The function `window-height' has been renamed to `window-total-height' +and `window-width' has been renamed to `window-body-width'. The old +names are provided as aliases. Two new functions `window-total-width' +and `window-body-height' are provided. + +*** Window parameters specific to window handling functions. +For each window you can specify a parameter to override the default +behavior of a number of functions like `split-window', `delete-window' +and `delete-other-windows'. The variable `ignore-window-parameters' +allows to ignore processing such parameters. + +*** New semantics of third argument of `split-window'. +The third argument of `split-window' has been renamed to SIDE and can be +set to any of the values 'below, 'right, 'above, or 'left to make the +new window appear on the corresponding side of the window that shall be +split. Any other value of SIDE will cause `split-window' to split the +window into two side-by-side windows as before. + +*** Window resizing functions. +A new standard function for resizing windows called `window-resize' has +been introduced. This and all other functions for resizing windows no +longer delete any windows when they become too small. + +*** Deleting the selected window now selects the most recently selected +live window on that frame instead. + +*** `adjust-window-trailing-edge' adjustments. +`adjust-window-trailing-edge' can now deal with fixed-size windows and +is able to resize other windows if a window adjacent to the trailing +edge cannot be shrunk any more. This makes its behavior more similar to +that of Emacs 21 without compromising, however, its inability to delete +windows which was introduced in Emacs 22. + +*** Window-local buffer lists. +Windows now have local buffer lists. This means that removing a buffer +from display in a window will preferably show the buffer previously +shown in that window with its previous window-start and window-point +positions. This also means that the same buffer may be automatically +shown twice even if it already appears in another window. + +*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW, +which if non-nil requires the buffer to be displayed in the currently +selected window, signaling an error otherwise. If nil, another window +can be used, e.g. if the selected one is strongly dedicated. + +*** `split-window-vertically' and `split-window-horizontally' renamed +to `split-window-below' and `split-window-right' respectively. +The old names are kept as aliases. + +*** Display actions + +**** The second arg to `display-buffer' and `pop-to-buffer' is now +named ACTION, and takes a display action of the same form as +`display-buffer-base-action' (see Changes, above). A non-nil, +non-list value is treated specially, as the old meaning. + +**** New variable `display-buffer-overriding-action'. + +**** The procedure of `display-buffer' etc. to choose a window is +determined by combining `display-buffer-overriding-action', +`display-buffer-alist', the ACTION arg, `display-buffer-base-action', +and `display-buffer-fallback-action'. The second and fourth of these +are user-customizable variables. + +See the docstring of `display-buffer' for details. + +*** New functions `window-state-get' and `window-state-put'. +These functions allow to save and restore the state of an arbitrary +frame or window as an Elisp object. + +** Completion + +*** New variable `completion-extra-properties' used to specify extra +properties of the current completion: +- :annotate-function, same as the old completion-annotate-function. +- :exit-function, function to call after completion took place. + +*** Functions on `completion-at-point-functions' can return any of the +properties valid for `completion-extra-properties'. + +*** `completion-annotate-function' is obsolete. + +*** New `metadata' method for completion tables. The metadata thus returned +can specify various details of the data returned by `all-completions': +- `category' is the kind of objects returned (e.g., `buffer', `file', ...), + used to select a style in completion-category-overrides. +- `annotation-function' to add annotations in *Completions*. +- `display-sort-function' to specify how to sort entries in *Completions*. +- `cycle-sort-function' to specify how to sort entries when cycling. + +*** `minibuffer-local-filename-must-match-map' is not used any more. +Instead, the bindings in `minibuffer-local-filename-completion-map' +are combined with `minibuffer-local-must-match-map'. + +*** New variable `completing-read-function' allows overriding the +behavior of `completing-read'. + +** `glyphless-char-display' can now distinguish between graphical and +text terminal display, via a char-table entry that is a cons cell. + +** `pre-command-hook'/`post-command-hook' are not reset to nil on error. +Instead, the offending function is removed. + +** New hook types + +*** New function `run-hook-wrapped' for running an abnormal hook by +passing the hook functions as arguments to a "wrapping" function. +Like `run-hook-with-args-until-success', it stops at the first +non-nil return value. + +*** New macro `with-wrapper-hook' for running an abnormal hook as a +set of "wrapping" filters, similar to around advice. +(A version of this macro was actually added in Emacs 23.2 but was not +advertised at the time.) + +** Debugger changes + +*** New macro `condition-case-unless-debug' (this was actually added in +Emacs 23.1 as condition-case-no-debug, but not advertised) + +*** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised. + +*** Variable `stack-trace-on-error' removed. + +*** The debugger can now "continue" from an error, which means it will +jump to the error handler as if the debugger had not been invoked +instead of jumping all the way to the top-level. + +*** Set `debug-on-event' to enter the debugger on events like SIGUSR1. +This can be useful when `inhibit-quit' is set. + +** The new function `server-eval-at' allows evaluation of Lisp forms on +named Emacs server instances. + +** `call-process' and `call-process-region' allow a `(:file "file")' spec +to redirect STDOUT to a file. + +** The function `format-time-string' now supports the %N directive, +for higher-resolution time stamps. + +** New input reading functions + +*** New function `read-char-choice' reads a restricted set of +characters, discarding any inputs not inside the set. + +*** The command `read-color' now requires a match for a color name +or RGB triplet, instead of signaling an error if the user provides +invalid input. + +**** `facemenu-read-color' is now an alias for `read-color'. + +** `image-library-alist' is renamed to `dynamic-library-alist'. +The variable is now used to load all kind of supported dynamic libraries, +not just image libraries. The previous name is still available as an +obsolete alias. + +** Syntax parsing changes + +*** New variable `syntax-propertize-function'. +This replaces `font-lock-syntactic-keywords' which is now obsolete. +This allows syntax-table properties to be set independently from font-lock: +just call syntax-propertize to make sure the text is propertized. +Together with this new variable come a new hook +syntax-propertize-extend-region-functions, as well as two helper functions: +syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords +as-is; and syntax-propertize-rules which provides a new way to specify +syntactic rules. + +*** Syntax tables support a new "comment style c" additionally to style b. + +** New hook `post-self-insert-hook', run after `self-insert-command'. + +** frame-local variables cannot be let-bound any more. + +** Major and minor mode changes + +*** `set-auto-mode' now respects mode: local variables at the end of files, +as well as those in the -*- line. + +*** `prog-mode' is a new major mode from which programming modes +should be derived. + +**** `prog-mode-hook' can be used to enable features for programming +modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable +on-the-fly spell checking for comments and strings. + +*** New hook `change-major-mode-after-body-hook', run by +`run-mode-hooks' just before any other mode hooks. + +*** Enabled globalized minor modes can be disabled in specific major modes. +If the global mode is global-FOO-mode, then run (FOO-mode -1) in the +major mode's hook, where FOO-mode toggles the mode on a per-buffer basis. + +*** `define-minor-mode' accepts new keywords :variable, :after-hook. + +** File-handling changes + +*** `delete-file' and `delete-directory' now accept optional arg TRASH. +Trashing is performed if TRASH and `delete-by-moving-to-trash' are +both non-nil. Interactively, TRASH defaults to t, unless a prefix +argument is supplied (see Trash changes, above). + +*** New file predicates: `file-equal-p', `file-in-directory-p'. + +** Tool-bars can display separators. +Tool-bar separators are handled like menu separators in menu-bar maps, +i.e. via menu entries of the form `(menu-item "--")'. + +** Image API + +*** Animated images support (currently animated gifs only). + +**** `image-animated-p' returns non-nil if an image can be animated. + +**** `image-animate' animates a supplied image spec. + +**** `image-animate-timer' returns the timer object for an image that +is being animated. + +*** `image-extension-data' has been renamed to `image-metadata'. +The old name is an obsolete alias to the new one. + +*** Image mode can view any image type that ImageMagick supports. +This requires Emacs to be built with ImageMagick support. + +**** New function `imagemagick-types', defined if ImageMagick support +is enabled, returns a list of image file extensions that your +ImageMagick installation supports. + +**** New function `imagemagick-register-types' enables ImageMagick +image types in Image mode and in `create-image' and other helper +functions. + +**** New option `imagemagick-types-inhibit' excludes certain +ImageMagick image types from `imagemagick-register-types'. + +**** With ImageMagick support, there are extra Image mode commands to +resize and rotate images: `image-transform-fit-to-height', +`image-transform-fit-to-width', `image-transform-set-rotation', and +`image-transform-set-scale'. + +** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and +passes it to the mail user agent function. This argument specifies an +action for returning to the caller after finishing with the mail. For +example, this is used by Rmail to optionally delete a mail window. + +** XML and HTML parsing +If Emacs is compiled with libxml2 support, there are two new +functions: `libxml-parse-html-region' (which parses "real world" HTML) +and `libxml-parse-xml-region' (which parses XML). Both return an +Emacs Lisp parse tree. + +** Networking and encryption changes + +*** `open-network-stream' can now be used to open an encrypted stream. +It now accepts an optional `:type' parameter for initiating a TLS +connection, directly or via STARTTLS. To do STARTTLS, additional +parameters (`:end-of-command', `:success', `:capabilities-command') +must also be supplied. + +*** New library gnutls.el. +The new function `gnutls-available-p' returns non-nil if Emacs is +built with GnuTLS support. The main entry points are +`open-gnutls-stream' and `gnutls-negotiate'. It's easiest to use +these functions through `open-network-stream', because that can +upgrade connections through STARTTLS opportunistically or use plain +SSL, depending on your needs. For debugging, set `gnutls-log-level' +greater than 0. + +*** New primitive `secure-hash' that supports many secure hash algorithms: +md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library +sha1.el has been removed. The `sha1' feature is provided by default. + +** Isearch + +*** New hook `isearch-update-post-hook' that runs in `isearch-update'. + +** Progress reporters can now "spin". +The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can +now be nil, or omitted. This makes a "non-numeric" reporter. Each +time you call `progress-reporter-update' on that progress reporter, +with a nil or omitted VALUE argument, the reporter message is +displayed with a "spinning bar". + +** New variable `revert-buffer-in-progress-p' is true while a buffer is +being reverted, even if the buffer has a local `revert-buffer-function'. + +** New variables `delayed-warnings-list' and `delayed-warnings-hook'. +If delayed-warnings-list is non-nil, the command loop calls +`delayed-warnings-hook' after `post-command-hook'. At present, this +is only used by Emacs on some platforms to display warnings during +startup, which might otherwise not be noticed. This uses the +functions `display-delayed-warnings' and `collapse-delayed-warnings'. + +** rx.el has a new `group-n' construct for explicitly numbered groups. + +** New function `make-composed-keymap' that constructs a new keymap +from multiple input maps. You can use this to make a keymap that +inherits from multiple maps, eg: + (set-keymap-parent newmap (make-composed-keymap othermap parent)) + +** New function `string-prefix-p'. +(This was actually added in Emacs 23.2 but was not advertised at the time.) + +** New reader macro ## that stands for the empty symbol. +This means that the empty symbol can now be read back. Also, #: by itself +(when not immediately followed by a possible symbol character) stands for +an empty uninterned symbol. + +** New math functions `isnan', `copysign', `frexp', `ldexp'. + +** The following functions and variables are obsolete: + +*** `tooltip-use-echo-area' is obsolete. +Rather than setting this to t, disable Tooltip mode instead. + +*** buffer-substring-filters is obsolete. +Use `filter-buffer-substring-functions' instead. + +*** `byte-compile-disable-print-circle' is obsolete. + +*** `deferred-action-list' and `deferred-action-function' are obsolete. +Use `post-command-hook' instead. + +*** `font-lock-maximum-size' is obsolete. + + +* Changes in Emacs 24.1 on Non-Free Operating Systems + +** On MS Windows, Emacs warns when using the obsolete init file _emacs, +and also when HOME is set to C:\ by default. + +** New configure.bat options + +*** --enable-checking builds Emacs with extra runtime checks. + +*** --distfiles specifies files to be included in binary distribution. + +*** --without-gnutls disables automatic GnuTLS detection. + +*** --lib for general library linkage, works with the USER_LIBS build variable. + +** New make target `dist' to create binary distribution for MS Windows. + +** The Lisp function `w32-default-color-map' is now obsolete. +(It is only used internally in the Emacs C code.) + +** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but +reappear on mouse-over. (Requires OS X 10.6 or later.) + +** On Mac OS X, dragging a file into Emacs visits the file, like on +other platforms, rather than inserting its contents into the buffer. + + +---------------------------------------------------------------------- +This file is part of GNU Emacs. + +GNU Emacs 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 3 of the License, or +(at your option) any later version. + +GNU Emacs 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 GNU Emacs. If not, see . + + +Local variables: +coding: utf-8 +mode: outline +paragraph-separate: "[ ]*$" +end: diff --git a/etc/NXML-NEWS b/etc/NXML-NEWS index ab0d351096d..8a284e2617b 100644 --- a/etc/NXML-NEWS +++ b/etc/NXML-NEWS @@ -1,3 +1,10 @@ +Copyright (C) 2007-2014 Free Software Foundation, Inc. +See the end of the file for license conditions. + + +For more recent changes, see the main Emacs NEWS file. + + 20041004 -------- @@ -197,3 +204,20 @@ Bug fixes. -------- Initial release. + + + +This file is part of GNU Emacs. + +GNU Emacs 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 3 of the License, or +(at your option) any later version. + +GNU Emacs 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 GNU Emacs. If not, see . diff --git a/etc/PROBLEMS b/etc/PROBLEMS index ed41ddf65a3..67a26b93b2a 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -1962,11 +1962,11 @@ accessible by right-clicking "My Computer" or "Computer", selecting ** Emacs crashes when exiting the Emacs session This was reported to happen when some optional DLLs, such as those -used for displaying images or the GnuTLS library, which are loaded -on-demand, have a runtime dependency on the libgcc DLL, -libgcc_s_dw2-1.dll. The reason seems to be a bug in libgcc which -rears its ugly head whenever the libgcc DLL is loaded after Emacs has -started. +used for displaying images or the GnuTLS library or zlib compression +library, which are loaded on-demand, have a runtime dependency on the +libgcc DLL, libgcc_s_dw2-1.dll. The reason seems to be a bug in +libgcc which rears its ugly head whenever the libgcc DLL is loaded +after Emacs has started. One solution for this problem is to find an alternative build of the same optional library that does not depend on the libgcc DLL. @@ -2850,19 +2850,6 @@ This is an unfortunate side-effect of the support for Unix-style device names such as /dev/null in the DJGPP runtime library. A work-around is to rename the problem directory to another name. -*** MS-DOS+DJGPP: Problems on MS-DOS if DJGPP v2.0 is used to compile Emacs. - -There are two DJGPP library bugs which cause problems: - - * Running `shell-command' (or `compile', or `grep') you get - `Searching for program: permission denied (EACCES), c:/command.com'; - * After you shell to DOS, Ctrl-Break kills Emacs. - -To work around these bugs, you can use two files in the msdos -subdirectory: `is_exec.c' and `sigaction.c'. Compile them and link -them into the Emacs executable `temacs'; then they will replace the -incorrect library functions. - *** MS-DOS: Emacs compiled for MSDOS cannot find some Lisp files, or other run-time support files, when long filename support is enabled. diff --git a/etc/TERMS b/etc/TERMS index 316d90290fe..84eb46fb547 100644 --- a/etc/TERMS +++ b/etc/TERMS @@ -72,7 +72,7 @@ is `cS', which I invented. correct parameter conventions from what would make the VT-100's `cs' string work properly. From an incorrect assumption about %i, I reached an incorrect conclusion about `cs', but the result - worked correctly on the VT100 and ANSII terminals. In Emacs + worked correctly on the VT100 and ANSI terminals. In Emacs version 17, both `cs' and %i work correctly. The version 16 convention was to pass, for the second parameter, diff --git a/etc/TODO b/etc/TODO index 11bbd356a88..cbb23944ded 100644 --- a/etc/TODO +++ b/etc/TODO @@ -26,12 +26,62 @@ are the ones we consider more important, but these also may be difficult to fix. Bugs with severity "minor" may be simpler, but this is not always true. -* Tentative plan for Emacs-24 +* Speed up Elisp execution +** Speed up function calls +Change src/bytecode.c so that calls from byte-code functions to byte-code +functions don't go through Ffuncall/funcall_lambda/exec_byte_code but instead +stay within exec_byte_code. + +** Add new `switch' byte-code +This byte-code would take one argument from the stack (the object to test) +and one argument from the constant-pool (a switch table, implemented as an +eq-hashtable) and would jump to the "label" contained in the hashtable. + +Then add a `case' special-form that can be compiled to this byte-code. +This would behave just like cl-case, but instead of expanding to cond+eq it +would be its own special form and would be compiled specially. + +Then change pcase to use `case' when applicable. + +Then change the byte-compiler to recognize (cond ((eq x 'foo) bar) ...) +and turn it into a `case' for more efficient execution. + +** Improve the byte-compiler to recognize immutable (lexical) bindings +and get rid of them if they're used only once and/or they're bound to +a constant expression. + +Such things aren't present in hand-written code, but macro expansion and +defsubst can often end up generating things like +(funcall (lambda (arg) (body)) actual) which then get optimized to +(let ((arg actual)) (body)) but should additionally get optimized further +when `actual' is a constant/copyable expression. + +** Add an "indirect goto" byte-code and use it for local lambda expressions. +E.g. when you have code like + + (let ((foo (lambda (x) bar))) + (dosomething + (funcall foo toto) + (blabla (funcall foo titi)))) + +turn those `funcalls' into jumps and their return into indirect jumps back. + +** Compile efficiently local recursive functions + +Similar to the previous point, we should be able to handle something like + + (letrec ((loop () (blabla) (if (toto) (loop)))) + (loop)) + +which ideally should generate the same byte-code as + + (while (progn (blabla) (toto))) + +* Things that were planned for Emacs-24 ** concurrency: including it as an "experimental" compile-time option - sounds good. Of course there might still be big questions around - "which form of concurrency" we'll want. -** Overhaul of customize: sounds wonderful. + sounds good. Of course there might still be big questions around "which form + of concurrency" we'll want. ** better support for dynamic embedded graphics: I like this idea (my mpc.el code could use it for the volume widget), though I wonder if the resulting efficiency will be sufficient. @@ -43,10 +93,6 @@ is not always true. ** Random things that cross my mind right now that I'd like to see (some of them from my local hacks), but it's not obvious at all whether they'll make it. -*** multiple inheritance for keymaps (to get rid of the - fix_submap_inheritance hack and to more cleanly express the - relationship between minibuffer-local-*-map): I've had this locally - for a long time, but the details of the semantics is somewhat ... delicate. *** prog-mode could/should provide a better fill-paragraph default that uses syntax-tables to recognize string/comment boundaries. *** provide more completion-at-point-functions. Make existing @@ -102,8 +148,6 @@ I suggest totally rewriting that part of Flymake, using the simplest mechanism that suffices for the specific needs. That will be easy for users to customize. -** Compute the list of active keymaps *after* reading the first event. - ** Distribute a bar cursor of width > 1 evenly between the two glyphs on each side of the bar (what to do at the edges?). @@ -119,10 +163,6 @@ for users to customize. It ought to be possible to omit text which is invisible (due to a text-property, overlay, or selective display) from the kill-ring. -** Change the way define-minor-mode handles autoloading. - It should not generate :require. Or :require in defcustom - should not be recorded in the user's custom-set-variables call. - ** Feature to change cursor shape when Emacs is idle (for more than a specified time). @@ -195,14 +235,63 @@ http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00515.html processing. That is why we added text properties and variable width fonts. However, more features are still needed to achieve this. -** Extended text-properties (to make overlays "obsolete") +** Extend text-properties and overlays *** Several text-property planes This would get us rid of font-lock-face property (and I'd be happy to get rid of char-property-alias-alist as well) since font-lock would simply use the `face' property in the `font-lock' plane. -Each property would come with an Elisp merge-function. The merge -would be performed in add-text-properties. -*** zero-width text-properties. + +Basically `put-text-property' and friends would take an extra argument PLANE +(maybe the best backward-compatible way to do that is to make it so that +PROPERTY can be a cons cell (PLANE . PROP)). So font-lock would +do (put-text-property start end '(font-lock . face) value). + +All the properties coming from the various planes would get merged via an Elisp +function (so it can merge `face' differently than `keymap' or it could give +different priorities to different planes (we could imagine enabling/disabling +planes)). The merging would not happen lazily while looking up properties but +instead it would take place eagerly in `add-text-properties'. This is based on +the idea that it's much more frequent to lookup properties than to +modify them. Also, when properties are looked up during redisplay, we +generally can't run Elisp code, whereas we generally can do that when +properties are added. + +*** Move overlays to intervals.c + +Currently overlays are implemented as (two) sorted singly linked lists (one +for overlays_before some position and one for overlay_after that +position, for some quirky definition of "before" and "after"). +The function `overlay-recenter' changes the position used for the split +(and is called internally in various situations). + +Each overlay is itself implemented with two markers (which keep track of +the overlay-start and overlay-end). Markers are implemented as +a non-sorted singly linked list of markers. So every text +insertion/deletion requires O(N) time, where N is the number of markers +since we have to go down that list to update those markers that are +affected by the modification. + +You can start in src/buffer.[ch], maybe grepping for overlays_before for +a starting point. + +Text-properties, OTOH, are implemented with a (mostly) balanced binary +tree. This is implemented in src/intervals.[ch]. + +So we'd like to change overlays so that they don't use markers (and we +don't keep them in two sorted singly-linked lists) any more. Instead, +we'll store them inside the balanced binary tree used for +text-properties. I think we can use the "augmented tree" approach +described in https://en.wikipedia.org/wiki/Interval_tree. + +To ease up debugging during development, I'd guess the implementation +would first add the new stuff, keeping the old stuff (i.e. add to +Lisp_Overlay whichever fields are needed for the new code, while keeping +the old ones, add needed overlay fields to the intervals tree, but keep +the old fields, the overlays_before etc...). This way, you can add +consistency checks that make sure the new code computes the same results +as the old code. And once that works well, we can remove the old code +and old fields. + ** Having tabs above a window to switch buffers in it. ** "Perspectives" are named persistent window configurations. We have @@ -330,12 +419,6 @@ rather than interactively. This a trivial one-liner in easy-mode.el. ** Make byte-optimization warnings issue accurate line numbers. -** A function to check for customizable options that have been - set but not saved, and ask the user whether to save them. - This could go in kill-emacs-query-functions, to remind people - to save their changes. If the user says yes, show them - in a Custom buffer using customize-customized. - ** Record the sxhash of the default value for customized variables and notify the user (maybe by adding a menu item or toolbar button, as the detection can occur during autoload time) when the default @@ -442,12 +525,6 @@ rather than interactively. This a trivial one-liner in easy-mode.el. [Basic support added 2013/10: http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00904.html ] -** Eliminate the storm of warnings concerning char/unsigned char - mismatches that we get with GCC 4.x and proprietary compilers on - various systems. They make it difficult to spot the important warnings. - -** Fix anything necessary to use `long long' EMACS_INTs with GCC. - ** Split out parts of lisp.h. ** Update the FAQ. @@ -467,7 +544,8 @@ rather than interactively. This a trivial one-liner in easy-mode.el. ** Add definitions for symbol properties, for documentation purposes. -** Add horizontal scroll bars. +** Temporarily remove scroll bars when they are not needed, typically + when a buffer can be fully displayed in its window. ** Provide an optional feature which computes a scroll bar slider's size and its position from lines instead of characters. @@ -1205,10 +1283,6 @@ systems for HTML/XML files automatically." ** Replace linum.el with nlinum.el http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00379.html -** Use pcomplete by default in shell-mode. - This means to make it behave (by default) more like the current code. - Use it also for read-shell-command, M-x compile, ... - ** Merge sendmail.el and messages.el. Probably not a complete merge, but at least arrange for messages.el to be a derived mode of sendmail.el. Or arrange for messages.el to be split @@ -1251,9 +1325,6 @@ for vc-rcs-update-changelog. ** a two-char comment-starter whose two chars are symbol constituents will not be noticed if it appears within a word. -** Fix unexelf.c to handle the .data.rel and .data.rel.local - sections made by GCC 3.4 on IRIX. - This file is part of GNU Emacs. diff --git a/etc/charsets/README b/etc/charsets/README index 654178f7b88..8d443bdc115 100644 --- a/etc/charsets/README +++ b/etc/charsets/README @@ -38,5 +38,5 @@ Examples: (2) Source of mapping files All mapping files are generated automatically from data files freely -available on the Internet (e.g. glibc/localedata/charmaps"). See the +available on the Internet (e.g. glibc/localedata/charmaps). See the file ../../admin/charsets/mapfiles/README for the detail. diff --git a/etc/compilation.txt b/etc/compilation.txt index e835c57eb13..919e4db30d2 100644 --- a/etc/compilation.txt +++ b/etc/compilation.txt @@ -261,6 +261,26 @@ file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. {standard input}:27041: Warning: end of file not at end of a line; newline inserted +* Guile backtrace, 2.0.11 + +symbols: guile-file, guile-line + +Backtrace: +In ice-9/boot-9.scm: + 157: 6 [catch #t # ...] +In unknown file: + ?: 5 [apply-smob/1 #] +In ice-9/boot-9.scm: + 63: 4 [call-with-prompt prompt0 ...] +In ice-9/eval.scm: + 432: 3 [eval # #] +In unknown file: + ?: 2 [eval (main (command-line)) #] +In /home/janneke/vc/guile/examples/gud-break.scm: +1038: 1 [main ("gud-break.scm")] +1033: 0 [stderr "~a:hello world\n" (# # #)] + + * Lucid Compiler, lcc 3.x symbol: lcc diff --git a/etc/emacs.appdata.xml b/etc/emacs.appdata.xml new file mode 100644 index 00000000000..d662bcba550 --- /dev/null +++ b/etc/emacs.appdata.xml @@ -0,0 +1,33 @@ + + + + emacs.desktop + GFDL-1.3 + + GPL-3.0+ and GFDL-1.3 + GNU Emacs + An extensible text editor + +

+ GNU Emacs is an extensible, customizable text editor - and more. + At its core is an interpreter for Emacs Lisp, a dialect of the Lisp + programming language with extensions to support text editing. +

+

The features of GNU Emacs include:

+
    +
  • Content-sensitive editing modes, including syntax coloring, for + a wide-range of file types
  • +
  • Complete built-in documentation, including a tutorial for new users
  • +
  • Full Unicode support for nearly all human languages and their scripts
  • +
  • Highly customizable, using Emacs Lisp code or a graphical interface
  • +
  • Includes a project planner, mail and news reader, debugger + interface, calendar, and more
  • +
+
+ + http://www.gnu.org/software/emacs/images/appdata.png + + http://www.gnu.org/software/emacs + emacs-devel_at_gnu.org + GNU +
diff --git a/etc/emacs.desktop b/etc/emacs.desktop index ff303a61536..2e6496e58c9 100644 --- a/etc/emacs.desktop +++ b/etc/emacs.desktop @@ -9,3 +9,4 @@ Type=Application Terminal=false Categories=Development;TextEditor; StartupWMClass=Emacs +Keywords=Text;Editor; diff --git a/etc/images/newsticker/README b/etc/images/newsticker/README index 237b7f08e66..31ca46c8aff 100644 --- a/etc/images/newsticker/README +++ b/etc/images/newsticker/README @@ -2,7 +2,7 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES Files: browse-url.xpm get-all.xpm mark-immortal.xpm mark-read.xpm narrow.xpm next-feed.xpm next-item.xpm prev-feed.xpm - prev-item.xpm update.xpm + prev-item.xpm rss-feed.png rss-feed.svg update.xpm Author: Ulf Jasper Copyright (C) 2011-2014 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING) diff --git a/etc/images/newsticker/rss-feed.png b/etc/images/newsticker/rss-feed.png new file mode 100644 index 00000000000..41a3263390a Binary files /dev/null and b/etc/images/newsticker/rss-feed.png differ diff --git a/etc/images/newsticker/rss-feed.svg b/etc/images/newsticker/rss-feed.svg new file mode 100644 index 00000000000..a4abd6cc19f --- /dev/null +++ b/etc/images/newsticker/rss-feed.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/etc/org/OrgOdtContentTemplate.xml b/etc/org/OrgOdtContentTemplate.xml index 55e1b787066..d0c98a3e51c 100644 --- a/etc/org/OrgOdtContentTemplate.xml +++ b/etc/org/OrgOdtContentTemplate.xml @@ -46,7 +46,19 @@ + + + + + + + + + + + diff --git a/etc/org/OrgOdtStyles.xml b/etc/org/OrgOdtStyles.xml index 5dfcfa83890..f41d9840cbe 100644 --- a/etc/org/OrgOdtStyles.xml +++ b/etc/org/OrgOdtStyles.xml @@ -86,7 +86,11 @@ - + + + + + @@ -252,26 +256,44 @@ + + + + - + + + + + + + + - + - + + + + + + + + @@ -279,6 +301,9 @@ + + + @@ -325,9 +350,10 @@ - + + @@ -349,23 +375,41 @@ - - - - - - + + + - + - - + + + + + + + + + + + - + + + + + + + + + / + + / + + @@ -441,7 +485,7 @@ - + diff --git a/etc/package-keyring.gpg b/etc/package-keyring.gpg new file mode 100644 index 00000000000..e76e68522f3 Binary files /dev/null and b/etc/package-keyring.gpg differ diff --git a/etc/refcards/cs-dired-ref.tex b/etc/refcards/cs-dired-ref.tex index 0663bf21d5d..bd4aca2cf06 100644 --- a/etc/refcards/cs-dired-ref.tex +++ b/etc/refcards/cs-dired-ref.tex @@ -1,9 +1,9 @@ -% Reference Card for Dired -*- coding: iso-latin-2 -*- +% Reference Card for Dired % Copyright (C) 2000-2014 Free Software Foundation, Inc. % Author: Evgeny Roubinchtein -% Czech translation: Pavel Jank , March 2001 +% Czech translation: Pavel Janík , March 2001 % This file is part of GNU Emacs. @@ -31,11 +31,6 @@ % Czech hyphenation rules applied \chyph -% Without this, pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) -% aborts with: "! UTF-8 INPUT IS CORRUPTED ! -% May be you are using another input encoding" -\input utf8off - % This file can be printed with 1, 2, or 3 columns per page. % Specify how many you want here. \newcount\columnsperpage @@ -60,7 +55,7 @@ \centerline{For GNU Emacs version \versionemacs} \centerline{Originally written May 2000 by Evgeny Roubinchtein,} \centerline{using refcard layout designed by Stephen Gildea.} -\centerline{Translated by Pavel Jank.} +\centerline{Translated by Pavel Janík.} Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice @@ -252,10 +247,10 @@ %**end of header -\title{Referenn karta pro Dired} +\title{Referenční karta pro Dired} -\centerline{(ureno pro Dired v GNU Emacsu \versionemacs)} -\centerline{Pkazy oznaen \dx{} vyaduj dired-x} +\centerline{(určeno pro Dired v GNU Emacsu \versionemacs)} +\centerline{Příkazy označené \dx{} vyžadují dired-x} % trim this down to fit everything on one page % \section{General} @@ -284,119 +279,119 @@ % When editing several directories in one buffer, each directory acts as a % page, so C-x [ and C-x ] can be used to move between directories. -\section{Sputn a ukonen Dired} +\section{Spuštění a ukončení Dired} -\key{sputn dired}{C-x d} -\key{sputn dired v adresi s aktulnm souborem}{C-x C-j \dx} -\key{ukonen dired}{q} +\key{spuštění dired}{C-x d} +\key{spuštění dired v adresáři s aktuálním souborem}{C-x C-j \dx} +\key{ukončení dired}{q} -\section{Pkazy pro pesuny} +\section{Příkazy pro přesuny} -\key{zpt na pedchoz dku}{p} -\key{vped na nsledujc dku}{n} -\key{nahoru na pedchoz adres}{<} -\key{dol na nsledujc adres}{>} -\key{na dal oznaen soubor}{M-\}} -\key{na pedchoz oznaen soubor}{M-\{} -\key{zpt na pedchoz podadres}{M-C-p} -\key{vped na dal podadres}{M-C-n} -\key{na nadazen adres}{^} -\key{jdi na prvn podadres}{M-C-d} +\key{zpět na předchozí řádku}{p} +\key{vpřed na následující řádku}{n} +\key{nahoru na předchozí adresář}{<} +\key{dolů na následující adresář}{>} +\key{na další označený soubor}{M-\}} +\key{na předchozí označený soubor}{M-\{} +\key{zpět na předchozí podadresář}{M-C-p} +\key{vpřed na další podadresář}{M-C-n} +\key{na nadřazený adresář}{^} +\key{jdi na první podadresář}{M-C-d} -\section{Pkazy pomoc myi} -\metax{otevi soubor}{Mouse_Button_2} +\section{Příkazy pomocí myši} +\metax{otevři soubor}{Mouse_Button_2} \metax{zobraz menu}{Control-Mouse_Button_3} -\section{Okamit akce nad soubory} +\section{Okamžité akce nad soubory} -\key{otevi aktuln soubor}{f} -\key{otevi aktuln soubor pouze pro ten}{v} -\key{otevi aktuln soubor v jinm okn}{o} -%%\key{otevi aktuln soubor v jinm rmci}{w} -%%\key{zobraz aktuln soubor}{C-u o} -\key{vytvo nov podadres}{+} -\key{porovnej soubor pod kurzorem s oznaenm}{=} +\key{otevři aktuální soubor}{f} +\key{otevři aktuální soubor pouze pro čtení}{v} +\key{otevři aktuální soubor v jiném okně}{o} +%%\key{otevři aktuální soubor v jiném rámci}{w} +%%\key{zobraz aktuální soubor}{C-u o} +\key{vytvoř nový podadresář}{+} +\key{porovnej soubor pod kurzorem s označeným}{=} -\section{Znaen a odznaen soubor} +\section{Značení a odznačení souborů} -\key{ozna soubor nebo podadres pro dal pkazy}{m} -\key{odzna soubor nebo soubory podadrese}{u} -\key{zru oznaen vech soubor v bufferu}{M-delete} -\key{ozna soubory se zadanou pponou}{* .} -\key{ozna vechny adrese}{* /} -\key{ozna vechny symbolick odkazy}{* @} -\key{ozna vechny spustiteln soubory}{* *} -\key{invertuj oznaen}{* t} -\key{ozna vechny soubory v aktulnm podadresi}{* s} -\key{ozna soubory vyhovujc regulrnmu vrazu}{* \%} -\key{zm znaku na jin psmeno}{* c} -\key{ozna soubory, pro kter elispov vraz vrac t}{* ( \dx} +\key{označ soubor nebo podadresář pro další příkazy}{m} +\key{odznač soubor nebo soubory podadresáře}{u} +\key{zruš označení všech souborů v bufferu}{M-delete} +\key{označ soubory se zadanou příponou}{* .} +\key{označ všechny adresáře}{* /} +\key{označ všechny symbolické odkazy}{* @} +\key{označ všechny spustitelné soubory}{* *} +\key{invertuj označení}{* t} +\key{označ všechny soubory v aktuálním podadresáři}{* s} +\key{označ soubory vyhovující regulárnímu výrazu}{* \%} +\key{změň značku na jiné písmeno}{* c} +\key{označ soubory, pro které elispový výraz vrací t}{* ( \dx} \section{Modifikace Dired bufferu} -\key{vlo do tohoto bufferu podadres}{i} -\key{odstra oznaen soubory z bufferu}{k} -\key{odstra z bufferu vpis podadrese}{C-u k} -\key{znovu nati adrese (znaky se zachovaj)}{g} -\key{pepni tdn adrese podle jmna/data}{s} -\key{uprav volby pkazu ls}{C-u s} -\key{obnov znaky, skryt dky apod.}{C-_} -\key{skryj vechny podadrese}{M-\$} -\key{skryj nebo odkryj vechny podadrese}{\$} +\key{vlož do tohoto bufferu podadresář}{i} +\key{odstraň označené soubory z bufferu}{k} +\key{odstraň z bufferu výpis podadresáře}{C-u k} +\key{znovu načti adresáře (značky se zachovají)}{g} +\key{přepni třídění adresáře podle jména/data}{s} +\key{uprav volby příkazu ls}{C-u s} +\key{obnov značky, skryté řádky apod.}{C-_} +\key{skryj všechny podadresáře}{M-\$} +\key{skryj nebo odkryj všechny podadresáře}{\$} -\section{Pkazy nad oznaenmi soubory} +\section{Příkazy nad označenými soubory} -\key{kopruj soubor(y)}{C} -\key{pejmenuj soubor nebo pesu soubory}{R} -\key{zm vlastnka souboru()}{O} -\key{zm skupinu souboru()}{G} -\key{zm pstupov prva souboru()}{M} +\key{kopíruj soubor(y)}{C} +\key{přejmenuj soubor nebo přesuň soubory}{R} +\key{změň vlastníka souboru(ů)}{O} +\key{změň skupinu souboru(ů)}{G} +\key{změň přístupová práva souboru(ů)}{M} \key{vytiskni soubor(y)}{P} -\key{zm nzev souboru() na mal psmena}{\% l} -\key{zm nzev souboru() na velk psmena}{\% u} -\key{sma oznaen soubory}{D} -%%\key{prove uuencode nebo uudecode souboru()}{U} +\key{změň název souboru(ů) na malá písmena}{\% l} +\key{změň název souboru(ů) na velká písmena}{\% u} +\key{smaž označené soubory}{D} +%%\key{proveď uuencode nebo uudecode souboru(ů)}{U} \key{zkomprimuj nebo dekomprimuj soubor(y)}{Z} -\key{spus info na soubor}{I \dx} -\key{vytvo symbolick() odkaz(y)}{S} -\key{vytvo relativn symbolick odkazy}{Y} -\key{vytvo pevn odkaz}{H} -\key{prohledej soubory na regulrn vraz}{A} -\key{nahra regulrn vrazy}{Q} -\key{pelo soubory (byte-compile)}{B} -\key{nati soubory (load-file)}{L} -\key{spus pkaz na soubor(y)}{!} +\key{spusť info na soubor}{I \dx} +\key{vytvoř symbolický(é) odkaz(y)}{S} +\key{vytvoř relativní symbolické odkazy}{Y} +\key{vytvoř pevný odkaz}{H} +\key{prohledej soubory na regulární výraz}{A} +\key{nahraď regulární výrazy}{Q} +\key{přelož soubory (byte-compile)}{B} +\key{načti soubory (load-file)}{L} +\key{spusť příkaz na soubor(y)}{!} -\section{Oznaen soubor pro smazn} -\leftline{\bf Odznaujc pkazy maou znaku pro smazn} -\key{ozna soubor pro smazn}{d} -%%\key{odstra znaku pro smazn}{delete} -\key{ozna vechny zlohy (soubory konc na \~{})}{\~{}} -\key{ozna vechny zlohy (auto-save)}{\#} -\key{ozna rzn doasn soubory}{\% \&} -\key{ozna slovan zlohy (konc na .\~{}1\~{} apod.)}{.} -\key{prove vmaz soubor oznaench ke smazn}{x} -\key{ozna soubory vyhovujc regulrnmu vrazu}{\% d} +\section{Označení souborů pro smazání} +\leftline{\bf Odznačující příkazy mažou značku pro smazání} +\key{označ soubor pro smazání}{d} +%%\key{odstraň značku pro smazání}{delete} +\key{označ všechny zálohy (soubory končící na \~{})}{\~{}} +\key{označ všechny zálohy (auto-save)}{\#} +\key{označ různé dočasné soubory}{\% \&} +\key{označ číslované zálohy (končící na .\~{}1\~{} apod.)}{.} +\key{proveď výmaz souborů označených ke smazání}{x} +\key{označ soubory vyhovující regulárnímu výrazu}{\% d} -\section{Pkazy s regulrnmi vrazy} +\section{Příkazy s regulárními výrazy} -\key{ozna soubory vyhovujc regulrnmu vrazu}{\% m} -\key{kopruj oznaen soubory obsahujc regexp}{\% C} -\key{pejmenuj oznaen soubory vyhovujc regexp}{\% R} -\key{pevn odkaz}{\% H} -\key{symbolick odkaz}{\% S} -\key{symbolick odkaz s relativn cestou}{\% Y} -\key{ozna pro smazn}{\% d} +\key{označ soubory vyhovující regulárnímu výrazu}{\% m} +\key{kopíruj označené soubory obsahující regexp}{\% C} +\key{přejmenuj označené soubory vyhovující regexp}{\% R} +\key{pevný odkaz}{\% H} +\key{symbolický odkaz}{\% S} +\key{symbolický odkaz s relativní cestou}{\% Y} +\key{označ pro smazání}{\% d} \section{Dired a Find} -\metax{otevi v dired soubory vyhovujc vzorku}{M-x find-name-dired} -\metax{otevi v dired soubory obsahujc vzorek}{M-x find-grep-dired} -\metax{otevi v dired soubory podle vstupu \kbd{find}}{M-x find-dired} +\metax{otevři v dired soubory vyhovující vzorku}{M-x find-name-dired} +\metax{otevři v dired soubory obsahující vzorek}{M-x find-grep-dired} +\metax{otevři v dired soubory podle výstupu \kbd{find}}{M-x find-dired} -\section{Npovda} +\section{Nápověda} -\key{zobraz npovdu}{h} -\key{pehled pkaz dired}{?} +\key{zobraz nápovědu}{h} +\key{přehled příkazů dired}{?} \copyrightnotice diff --git a/etc/refcards/cs-refcard.tex b/etc/refcards/cs-refcard.tex index 1da9b25145c..b64d21a0588 100644 --- a/etc/refcards/cs-refcard.tex +++ b/etc/refcards/cs-refcard.tex @@ -6,7 +6,7 @@ % Author: Stephen Gildea % Czech translation: Jan Buchal , January 1999 % Milan Zamazal , August 1999 -% Pavel Jank , November 2000 (Emacs 21) +% Pavel Janík , November 2000 (Emacs 21) % This file is part of GNU Emacs. @@ -49,11 +49,6 @@ % Czech hyphenation rules applied \chyph -% Without this, pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) -% aborts with: "! UTF-8 INPUT IS CORRUPTED ! -% May be you are using another input encoding" -\input utf8off - % This file can be printed with 1, 2, or 3 columns per page. % Specify how many you want here. \newcount\columnsperpage @@ -77,7 +72,7 @@ \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} \centerline{For GNU Emacs version \versionemacs} \centerline{Designed by Stephen Gildea} -\centerline{Translated by Jan Buchal, Milan Zamazal, Pavel Jank} +\centerline{Translated by Jan Buchal, Milan Zamazal, Pavel Janík} Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice @@ -264,68 +259,68 @@ %**end of header -\title{GNU Emacs -- Referenn karta} +\title{GNU Emacs -- Referenční karta} \centerline{(pro verzi \versionemacs)} -\section{Sputn Emacsu} +\section{Spuštění Emacsu} -Pro vstup do GNU~Emacsu~\versionemacs{} napite jeho jmno: \kbd{emacs} +Pro vstup do GNU~Emacsu~\versionemacs{} napište jeho jméno: \kbd{emacs} -Jak natat a editovat soubory se dozvte ne v~oddle Soubory. +Jak načítat a editovat soubory se dozvíte níže v~oddíle Soubory. -\section{Oputn Emacsu} +\section{Opuštění Emacsu} -\key{pozastaven Emacsu (ikonizace v~X11)}{C-z} -\key{definitivn odchod z~Emacsu}{C-x C-c} +\key{pozastavení Emacsu (ikonizace v~X11)}{C-z} +\key{definitivní odchod z~Emacsu}{C-x C-c} \section{Soubory} -\key{{\bf nast} souboru do Emacsu}{C-x C-f} -\key{{\bf uloit} soubor zpt na disk}{C-x C-s} -\key{uloit {\bf vechny} soubory}{C-x s} -\key{{\bf vloit} obsahu jinho souboru do bufferu}{C-x i} -\key{zamnit tento soubor jinm souborem}{C-x C-v} -\key{zapsat buffer do zadanho souboru}{C-x C-w} -\key{vloit do systmu sprvy verz}{C-x C-q} +\key{{\bf načíst} souboru do Emacsu}{C-x C-f} +\key{{\bf uložit} soubor zpět na disk}{C-x C-s} +\key{uložit {\bf všechny} soubory}{C-x s} +\key{{\bf vložit} obsahu jiného souboru do bufferu}{C-x i} +\key{zaměnit tento soubor jiným souborem}{C-x C-v} +\key{zapsat buffer do zadaného souboru}{C-x C-w} +\key{vložit do systému správy verzí}{C-x C-q} -\section{Pouvn npovdy} +\section{Používání nápovědy} -Systm npovdy je snadn. Stisknte \kbd{C-h} (nebo \kbd{F1}) a sledujte -instrukce. vodn {\bf tutoril} lze spustit pomoc \kbd{C-h t}. +Systém nápovědy je snadný. Stiskněte \kbd{C-h} (nebo \kbd{F1}) a sledujte +instrukce. Úvodní {\bf tutoriál} lze spustit pomocí \kbd{C-h t}. -\key{odstranit okno s~npovdou}{C-x 1} -\key{rolovat okno s~npovdou}{C-M-v} +\key{odstranit okno s~nápovědou}{C-x 1} +\key{rolovat okno s~nápovědou}{C-M-v} -\key{apropos: pkazy odpovdajc etzci}{C-h a} -\key{zobrazit funkci dan klvesy}{C-h c} +\key{apropos: příkazy odpovídající řetězci}{C-h a} +\key{zobrazit funkci dané klávesy}{C-h c} \key{zobrazit popis funkce}{C-h f} -\key{zobrazit informace o~aktulnch mdech}{C-h m} +\key{zobrazit informace o~aktuálních módech}{C-h m} \section{Opravy chyb} -\key{{\bf peruit} zadvan nebo vykonvan pkaz}{C-g} -\metax{{\bf obnovit} soubor ztracen pdem systmu}{M-x recover-file} -\key{{\bf zruit} nechtnou zmnu}{C-x u {\it n.} C-_} -\metax{vrtit pvodn obsah bufferu}{M-x revert-buffer} -\key{pekreslit \uv{rozpadlou} obrazovku}{C-l} +\key{{\bf přerušit} zadávaný nebo vykonávaný příkaz}{C-g} +\metax{{\bf obnovit} soubor ztracený pádem systému}{M-x recover-file} +\key{{\bf zrušit} nechtěnou změnu}{C-x u {\it n.} C-_} +\metax{vrátit původní obsah bufferu}{M-x revert-buffer} +\key{překreslit \uv{rozpadlou} obrazovku}{C-l} -\section{Prstkov vyhledvn} +\section{Přírůstkové vyhledávání} -\key{vyhledat dopedu}{C-s} +\key{vyhledat dopředu}{C-s} \key{vyhledat dozadu}{C-r} -\key{vyhledat regulrn vraz}{C-M-s} -\key{vyhledat regulrn vraz dozadu}{C-M-r} +\key{vyhledat regulární výraz}{C-M-s} +\key{vyhledat regulární výraz dozadu}{C-M-r} -\key{pedchoz vyhledvan etzec}{M-p} -\key{nsledujc novj vyhledvan etzec}{M-n} -\key{ukonit inkrementln vyhledvn}{RET} -\key{zruit efekt poslednho zadanho znaku}{DEL} -\key{peruit probhajc vyhledvn}{C-g} +\key{předchozí vyhledávaný řetězec}{M-p} +\key{následující novější vyhledávaný řetězec}{M-n} +\key{ukončit inkrementální vyhledávání}{RET} +\key{zrušit efekt posledního zadaného znaku}{DEL} +\key{přerušit probíhající vyhledávání}{C-g} -Dal \kbd{C-s} nebo \kbd{C-r} zopakuje vyhledn v~danm smru. Pokud -Emacs vyhledv, \kbd{C-g} zru pouze nenalezenou st etzce. +Další \kbd{C-s} nebo \kbd{C-r} zopakuje vyhledání v~daném směru. Pokud +Emacs vyhledává, \kbd{C-g} zruší pouze nenalezenou část řetězce. \shortcopyrightnotice @@ -333,311 +328,311 @@ \section{P \section{Pohyb} \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{{\bf posun o }}{{\bf dozadu}}{{\bf dopedu}} +\threecol{{\bf posun o }}{{\bf dozadu}}{{\bf dopředu}} \threecol{znak}{C-b}{C-f} \threecol{slovo}{M-b}{M-f} -\threecol{dek}{C-p}{C-n} -\threecol{na zatek nebo konec dku}{C-a}{C-e} -\threecol{vtu}{M-a}{M-e} +\threecol{řádek}{C-p}{C-n} +\threecol{na začátek nebo konec řádku}{C-a}{C-e} +\threecol{větu}{M-a}{M-e} \threecol{odstavec}{M-\{}{M-\}} -\threecol{strnku}{C-x [}{C-x ]} -\threecol{symbolick vraz}{C-M-b}{C-M-f} +\threecol{stránku}{C-x [}{C-x ]} +\threecol{symbolický výraz}{C-M-b}{C-M-f} \threecol{funkci}{C-M-a}{C-M-e} -\threecol{na zatek nebo konec bufferu}{M-<}{M->} +\threecol{na začátek nebo konec bufferu}{M-<}{M->} } -\key{rolovat na dal obrazovku}{C-v} -\key{rolovat na pedchoz obrazovku}{M-v} +\key{rolovat na další obrazovku}{C-v} +\key{rolovat na předchozí obrazovku}{M-v} \key{rolovat vlevo}{C-x <} \key{rolovat vpravo}{C-x >} -\key{aktuln dek do stedu obrazovky}{C-u C-l} +\key{aktuální řádek do středu obrazovky}{C-u C-l} -\section{Ruen a mazn} +\section{Rušení a mazání} \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{{\bf ruen objekt }}{{\bf dozadu}}{{\bf dopedu}} -\threecol{znak (mazn, ne ruen)}{DEL}{C-d} +\threecol{{\bf rušený objekt }}{{\bf dozadu}}{{\bf dopředu}} +\threecol{znak (mazání, ne rušení)}{DEL}{C-d} \threecol{slovo}{M-DEL}{M-d} -\threecol{dek (do konce)}{M-0 C-k}{C-k} -\threecol{vta}{C-x DEL}{M-k} -\threecol{symbolick vraz}{M-- C-M-k}{C-M-k} +\threecol{řádek (do konce)}{M-0 C-k}{C-k} +\threecol{věta}{C-x DEL}{M-k} +\threecol{symbolický výraz}{M-- C-M-k}{C-M-k} } -\key{zruit {\bf oblast}}{C-w} -\key{zkoprovat oblast do schrnky}{M-w} -\key{zruit a po nejbli vskyt znaku {\it znak}}{M-z {\it znak}} +\key{zrušit {\bf oblast}}{C-w} +\key{zkopírovat oblast do schránky}{M-w} +\key{zrušit až po nejbližší výskyt znaku {\it znak}}{M-z {\it znak}} -\key{vhodit naposledy zruen objekt}{C-y} -\key{nahradit vhozen objekt pedchozm zruenm}{M-y} +\key{vhodit naposledy zrušený objekt}{C-y} +\key{nahradit vhozený objekt předchozím zrušeným}{M-y} -\section{Oznaovn} +\section{Označování} -\key{vloit znaku}{C-@ {\it n.} C-SPC} -\key{prohodit kurzor a znaku}{C-x C-x} +\key{vložit značku}{C-@ {\it n.} C-SPC} +\key{prohodit kurzor a značku}{C-x C-x} -\key{oznait zadan poet {\bf slov}}{M-@} -\key{oznait {\bf odstavec}}{M-h} -\key{oznait {\bf strnku}}{C-x C-p} -\key{oznait {\bf symbolick vraz}}{C-M-@} -\key{oznait {\bf funkci}}{C-M-h} -\key{oznait cel {\bf buffer}}{C-x h} +\key{označit zadaný počet {\bf slov}}{M-@} +\key{označit {\bf odstavec}}{M-h} +\key{označit {\bf stránku}}{C-x C-p} +\key{označit {\bf symbolický výraz}}{C-M-@} +\key{označit {\bf funkci}}{C-M-h} +\key{označit celý {\bf buffer}}{C-x h} -\section{Interaktivn nahrazovn} +\section{Interaktivní nahrazování} -\key{interaktivn nahradit textov etzec}{M-\%} -\metax{s~uitm regulrnho vrazu}{M-x query-replace-regexp} +\key{interaktivně nahradit textový řetězec}{M-\%} +\metax{s~užitím regulárního výrazu}{M-x query-replace-regexp} -Platn odpovdi v~mdu query-replace jsou +Platné odpovědi v~módu query-replace jsou -\key{{\bf zmnu provst} a jt na dal}{SPC} -\key{zmnu provst a zstat na mst}{,} -\key{{\bf skoit} na dal bez proveden zmny}{DEL} -\key{zamnit vechny zbvajc vskyty}{!} -\key{{\bf zpt} na pedchoz vskyt etzce}{^} -\key{{\bf konec} nahrazovn}{RET} -\key{rekurzivn editace (ukon se \kbd{C-M-c})}{C-r} +\key{{\bf záměnu provést} a jít na další}{SPC} +\key{záměnu provést a zůstat na místě}{,} +\key{{\bf skočit} na další bez provedení záměny}{DEL} +\key{zaměnit všechny zbývající výskyty}{!} +\key{{\bf zpět} na předchozí výskyt řetězce}{^} +\key{{\bf konec} nahrazování}{RET} +\key{rekurzivní editace (ukončí se \kbd{C-M-c})}{C-r} \section{Okna} -Jestlie jsou zobrazeny dva pkazy, pak ten druh plat pro X okno. +Jestliže jsou zobrazeny dva příkazy, pak ten druhý platí pro X okno. -\key{zruit vechna ostatn okna}{C-x 1} +\key{zrušit všechna ostatní okna}{C-x 1} {\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{rozdlit okno na horn a doln}{C-x 2\ \ \ \ }{C-x 5 2} -\threecol{zruit toto okno}{C-x 0\ \ \ \ }{C-x 5 0} +\threecol{rozdělit okno na horní a dolní}{C-x 2\ \ \ \ }{C-x 5 2} +\threecol{zrušit toto okno}{C-x 0\ \ \ \ }{C-x 5 0} }} -\key{rozdlit okno na lev a prav}{C-x 3} +\key{rozdělit okno na levé a pravé}{C-x 3} -\key{rolovat jin okno}{C-M-v} +\key{rolovat jiné okno}{C-M-v} {\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{pepnout kurzor do jinho okna}{C-x o}{C-x 5 o} +\threecol{přepnout kurzor do jiného okna}{C-x o}{C-x 5 o} -\threecol{vybrat buffer v~jinm okn}{C-x 4 b}{C-x 5 b} -\threecol{zobrazit buffer v~jinm okn}{C-x 4 C-o}{C-x 5 C-o} -\threecol{otevt soubor v~jinm okn}{C-x 4 f}{C-x 5 f} -\threecol{otevt soubor jen pro ten v~jinm okn}{C-x 4 r}{C-x 5 r} -\threecol{spustit Dired v~jinm okn}{C-x 4 d}{C-x 5 d} -\threecol{najt tag v~jinm okn}{C-x 4 .}{C-x 5 .} +\threecol{vybrat buffer v~jiném okně}{C-x 4 b}{C-x 5 b} +\threecol{zobrazit buffer v~jiném okně}{C-x 4 C-o}{C-x 5 C-o} +\threecol{otevřít soubor v~jiném okně}{C-x 4 f}{C-x 5 f} +\threecol{otevřít soubor jen pro čtení v~jiném okně}{C-x 4 r}{C-x 5 r} +\threecol{spustit Dired v~jiném okně}{C-x 4 d}{C-x 5 d} +\threecol{najít tag v~jiném okně}{C-x 4 .}{C-x 5 .} }} -\key{zvtit okno}{C-x ^} -\key{zit okno}{C-x \{} -\key{rozit okno}{C-x \}} +\key{zvětšit okno}{C-x ^} +\key{zúžit okno}{C-x \{} +\key{rozšířit okno}{C-x \}} -\section{Formtovn} +\section{Formátování} -\key{odsadit aktuln {\bf dek} (dle mdu)}{TAB} -\key{odsadit {\bf oblast} (dle mdu)}{C-M-\\} -\key{odsadit {\bf symbolick vraz} (dle mdu)}{C-M-q} -\key{odsadit oblast napevno o~{\it argument\/} sloupc}{C-x TAB} +\key{odsadit aktuální {\bf řádek} (dle módu)}{TAB} +\key{odsadit {\bf oblast} (dle módu)}{C-M-\\} +\key{odsadit {\bf symbolický výraz} (dle módu)}{C-M-q} +\key{odsadit oblast napevno o~{\it argument\/} sloupců}{C-x TAB} -\key{vloit znak novho dku za kurzor}{C-o} -\key{posunout zbytek dku svisle dol}{C-M-o} -\key{smazat przdn dky okolo kurzoru}{C-x C-o} -\key{spojit dek s~pedchozm (s~arg.~s~nsl.)}{M-^} -\key{smazat przdn msto kolem kurzoru}{M-\\} -\key{nechat pesn jednu mezeru kolem kurzoru}{M-SPC} +\key{vložit znak nového řádku za kurzor}{C-o} +\key{posunout zbytek řádku svisle dolů}{C-M-o} +\key{smazat prázdné řádky okolo kurzoru}{C-x C-o} +\key{spojit řádek s~předchozím (s~arg.~s~násl.)}{M-^} +\key{smazat prázdné místo kolem kurzoru}{M-\\} +\key{nechat přesně jednu mezeru kolem kurzoru}{M-SPC} \key{zalomit odstavec}{M-q} -\key{nastavit sloupec pro zalamovn}{C-x f} -\key{nastavit prefix, kterm zanaj dky}{C-x .} +\key{nastavit sloupec pro zalamování}{C-x f} +\key{nastavit prefix, kterým začínají řádky}{C-x .} \key{nastavit font}{M-g} -\section{Zmna velikosti psmen} +\section{Změna velikosti písmen} -\key{zmnit psmena slova na velk}{M-u} -\key{zmnit psmena slova na mal}{M-l} -\key{zmnit poten psmeno slova na velk}{M-c} +\key{změnit písmena slova na velká}{M-u} +\key{změnit písmena slova na malá}{M-l} +\key{změnit počáteční písmeno slova na velké}{M-c} -\key{zmnit psmena oblasti na velk}{C-x C-u} -\key{zmnit psmena oblasti na mal}{C-x C-l} +\key{změnit písmena oblasti na velká}{C-x C-u} +\key{změnit písmena oblasti na malá}{C-x C-l} \section{Minibuffer} -Nsledujc klvesy jsou platn pro minibuffer. +Následující klávesy jsou platné pro minibuffer. -\key{doplnit z~nabdky}{TAB} -\key{doplnit do nejbliho slova}{SPC} +\key{doplnit z~nabídky}{TAB} +\key{doplnit do nejbližšího slova}{SPC} \key{doplnit a vykonat}{RET} -\key{zobrazit mon doplnn}{?} -\key{pedchoz pkaz z~minibufferu}{M-p} -\key{novj nebo implicitn pkaz z~minibufferu}{M-n} -\key{vyhledat regulrn vraz v~historii vzad}{M-r} -\key{vyhledat regulrn vraz v~historii vped}{M-s} -\key{zruit pkaz}{C-g} +\key{zobrazit možná doplnění}{?} +\key{předchozí příkaz z~minibufferu}{M-p} +\key{novější nebo implicitní příkaz z~minibufferu}{M-n} +\key{vyhledat regulární výraz v~historii vzad}{M-r} +\key{vyhledat regulární výraz v~historii vpřed}{M-s} +\key{zrušit příkaz}{C-g} -Stisknte \kbd{C-x ESC ESC} pro editaci a zopakovn poslednho pkazu -z~minibufferu. Stisknte \kbd{F10} pro aktivaci menu v~minibufferu. +Stiskněte \kbd{C-x ESC ESC} pro editaci a zopakování posledního příkazu +z~minibufferu. Stiskněte \kbd{F10} pro aktivaci menu v~minibufferu. \newcolumn -\title{GNU Emacs -- Referenn karta} +\title{GNU Emacs -- Referenční karta} \section{Buffery} -\key{vybrat jin buffer}{C-x b} -\key{seznam vech buffer}{C-x C-b} -\key{zruit buffer}{C-x k} +\key{vybrat jiný buffer}{C-x b} +\key{seznam všech bufferů}{C-x C-b} +\key{zrušit buffer}{C-x k} -\section{Vmny} +\section{Výměny} -\key{pehodit {\bf znaky}}{C-t} -\key{pehodit {\bf slova}}{M-t} -\key{pehodit {\bf dky}}{C-x C-t} -\key{pehodit {\bf symbolick vrazy}}{C-M-t} +\key{přehodit {\bf znaky}}{C-t} +\key{přehodit {\bf slova}}{M-t} +\key{přehodit {\bf řádky}}{C-x C-t} +\key{přehodit {\bf symbolické výrazy}}{C-M-t} \section{Kontrola pravopisu} -\key{kontrola pravopisu aktulnho slova}{M-\$} -\metax{kontrola pravopisu vech slov v oblasti}{M-x ispell-region} -\metax{kontrola pravopisu celho bufferu}{M-x ispell-buffer} +\key{kontrola pravopisu aktuálního slova}{M-\$} +\metax{kontrola pravopisu všech slov v oblasti}{M-x ispell-region} +\metax{kontrola pravopisu celého bufferu}{M-x ispell-buffer} \section{Tagy} -\key{najt tag (definici)}{M-.} -\key{najt dal vskyt tagu}{C-u M-.} -\metax{zadat soubor s novmi tagy}{M-x visit-tags-table} +\key{najít tag (definici)}{M-.} +\key{najít další výskyt tagu}{C-u M-.} +\metax{zadat soubor s novými tagy}{M-x visit-tags-table} -\metax{vyhledat reg.\ vraz v~souborech s~tagy}{M-x tags-search} -\metax{spustit nahrazovn pro ony soubory}{M-x tags-query-replace} -\key{pokraovat v~prohledvn nebo nahrazovn}{M-,} +\metax{vyhledat reg.\ výraz v~souborech s~tagy}{M-x tags-search} +\metax{spustit nahrazování pro ony soubory}{M-x tags-query-replace} +\key{pokračovat v~prohledávání nebo nahrazování}{M-,} -\section{Pkazov interpret} +\section{Příkazový interpret} -\key{vykonat shellov pkaz}{M-!} -\key{vykonat shellov pkaz na oblast}{M-|} -\key{zfiltrovat oblast shellovm pkazem}{C-u M-|} -\key{spustit shell v okn \kbd{*shell*}}{M-x shell} +\key{vykonat shellový příkaz}{M-!} +\key{vykonat shellový příkaz na oblast}{M-|} +\key{zfiltrovat oblast shellovým příkazem}{C-u M-|} +\key{spustit shell v okně \kbd{*shell*}}{M-x shell} -\section{Obdlnky} +\section{Obdélníky} -\key{zkoprovat obdlnk do registru}{C-x r r} -\key{zruit obdlnk}{C-x r k} -\key{vhodit obdlnk}{C-x r y} -\key{vloit obdlnk mezer}{C-x r o} -\key{nahradit obdlnk obdlnkem mezer}{C-x r c} -\key{nahradit dky obdlnku zadanm etzcem}{C-x r t} +\key{zkopírovat obdélník do registru}{C-x r r} +\key{zrušit obdélník}{C-x r k} +\key{vhodit obdélník}{C-x r y} +\key{vložit obdélník mezer}{C-x r o} +\key{nahradit obdélník obdélníkem mezer}{C-x r c} +\key{nahradit řádky obdélníku zadaným řetězcem}{C-x r t} \section{Zkratky} -\key{pidat globln zkratku}{C-x a g} -\key{pidat lokln zkratku}{C-x a l} -\key{pidat globln expanzi pro zkratku }{C-x a i g} -\key{pidat lokln expanzi pro zkratku}{C-x a i l} +\key{přidat globální zkratku}{C-x a g} +\key{přidat lokální zkratku}{C-x a l} +\key{přidat globální expanzi pro zkratku }{C-x a i g} +\key{přidat lokální expanzi pro zkratku}{C-x a i l} \key{expandovat zkratku}{C-x a e} -\key{dynamick expanze pedchzejcho slova}{M-/} +\key{dynamická expanze předcházejícího slova}{M-/} -\section{Regulrn vrazy} +\section{Regulární výrazy} -\key{libovoln znak krom novho dku}{. {\rm(teka)}} -\key{dn nebo nkolik opakovn}{*} -\key{jedno nebo vce opakovn}{+} -\key{dn nebo jedno opakovn}{?} -\key{zruit zvltn vznam znaku {\it c\/} ve vrazu}{\\{\it c}} +\key{libovolný znak kromě nového řádku}{. {\rm(tečka)}} +\key{žádné nebo několik opakování}{*} +\key{jedno nebo více opakování}{+} +\key{žádné nebo jedno opakování}{?} +\key{zrušit zvláštní význam znaku {\it c\/} ve výrazu}{\\{\it c}} \key{alternativa (\uv{nebo})}{\\|} \key{skupina}{\\( {\rm$\ldots$} \\)} -\key{stejn text jako {\it n\/}-t skupina}{\\{\it n}} +\key{stejný text jako {\it n\/}-tá skupina}{\\{\it n}} \key{hranice slova}{\\b} \key{nikoliv hranice slova}{\\B} \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{{\bf element}}{{\bf zatek}}{{\bf konec}} -\threecol{dek}{^}{\$} +\threecol{{\bf element}}{{\bf začátek}}{{\bf konec}} +\threecol{řádek}{^}{\$} \threecol{slovo}{\\<}{\\>} \threecol{buffer}{\\`}{\\'} -\threecol{{\bf tda znak}}{{\bf odpovd}}{{\bf neodpovd}} -\threecol{explicitn mnoina}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]} -\threecol{slovotvorn znak}{\\w}{\\W} -\threecol{znak se syntax {\it c}}{\\s{\it c}}{\\S{\it c}} +\threecol{{\bf třída znaků}}{{\bf odpovídá}}{{\bf neodpovídá}} +\threecol{explicitní množina}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]} +\threecol{slovotvorný znak}{\\w}{\\W} +\threecol{znak se syntaxí {\it c}}{\\s{\it c}}{\\S{\it c}} } -\section{Mezinrodn znakov sady} +\section{Mezinárodní znakové sady} -\metax{zadat hlavn jazyk}{M-x set-language-environment} -\metax{zobrazit vechny vstupn metody}{M-x list-input-methods} -\key{zapnout nebo vypnout vstupn metodu}{C-\\} -\key{zadat kdovn pro nsledujc pkaz}{C-x RET c} -\metax{zobrazit vechna kdovn}{M-x list-coding-systems} -\metax{zmnit preferovan kdovn}{M-x prefer-coding-system} +\metax{zadat hlavní jazyk}{M-x set-language-environment} +\metax{zobrazit všechny vstupní metody}{M-x list-input-methods} +\key{zapnout nebo vypnout vstupní metodu}{C-\\} +\key{zadat kódování pro následující příkaz}{C-x RET c} +\metax{zobrazit všechna kódování}{M-x list-coding-systems} +\metax{změnit preferované kódování}{M-x prefer-coding-system} \section{Info} \key{spustit Info}{C-h i} -\key{najt zadanou funkci nebo promnnou v~Info}{C-h C-i} +\key{najít zadanou funkci nebo proměnnou v~Info}{C-h C-i} \beginindentedkeys -Pohyb uvnit uzl: +Pohyb uvnitř uzlů: -\key{rolovn vped}{SPC} -\key{rolovn zpt}{DEL} -\key{na zatek uzlu}{. {\rm (teka)}} +\key{rolování vpřed}{SPC} +\key{rolování zpět}{DEL} +\key{na začátek uzlu}{. {\rm (tečka)}} Pohyb mezi uzly: -\key{{\bf dal} uzel}{n} -\key{{\bf pedchoz} uzel}{p} -\key{{\bf nadazen} uzel}{u} -\key{vybrat z~menu podle nzvu}{m} -\key{vybrat {\it n\/}-tou poloku menu (1--9)}{{\it n}} -\key{nejbli pt kov odkaz (nvrat \kbd{l})}{f} -\key{vrtit se do naposledy prohlenho uzlu}{l} -\key{vrtit se do adrese uzl}{d} -\key{pejt do kterhokoliv uzlu podle jmna}{g} +\key{{\bf další} uzel}{n} +\key{{\bf předchozí} uzel}{p} +\key{{\bf nadřazený} uzel}{u} +\key{vybrat z~menu podle názvu}{m} +\key{vybrat {\it n\/}-tou položku menu (1--9)}{{\it n}} +\key{nejbližší příští křížový odkaz (návrat \kbd{l})}{f} +\key{vrátit se do naposledy prohlíženého uzlu}{l} +\key{vrátit se do adresáře uzlů}{d} +\key{přejít do kteréhokoliv uzlu podle jména}{g} -Dal: +Další: -\key{spustit {\bf tutoril} k~Info}{h} +\key{spustit {\bf tutoriál} k~Info}{h} % \key{look up a subject in the indices}{i} % FIXME -\key{prohledat uzly na etzec}{M-s} -\key{{\bf ukonit} Info}{q} +\key{prohledat uzly na řetězec}{M-s} +\key{{\bf ukončit} Info}{q} \endindentedkeys \section{Registry} -\key{uloit oblast do registru}{C-x r s} -\key{vloit obsah registru do bufferu}{C-x r i} +\key{uložit oblast do registru}{C-x r s} +\key{vložit obsah registru do bufferu}{C-x r i} -\key{uloit pozici kurzoru do registru}{C-x r SPC} -\key{skoit na pozici uloenou v~registru}{C-x r j} +\key{uložit pozici kurzoru do registru}{C-x r SPC} +\key{skočit na pozici uloženou v~registru}{C-x r j} -\section{Klvesov makra} +\section{Klávesová makra} -\key{{\bf zahjit} definovn klvesovho makra}{C-x (} -\key{{\bf zakonit} definovn klvesovho makra}{C-x )} -\key{{\bf vykonat} posledn definovan makro}{C-x e} -\key{pipojit k~poslednmu klvesovmu makru}{C-u C-x (} -\metax{pojmenovat posledn makro}{M-x name-last-kbd-macro} -\metax{vloit do bufferu lispovou definici}{M-x insert-kbd-macro} +\key{{\bf zahájit} definování klávesového makra}{C-x (} +\key{{\bf zakončit} definování klávesového makra}{C-x )} +\key{{\bf vykonat} poslední definované makro}{C-x e} +\key{připojit k~poslednímu klávesovému makru}{C-u C-x (} +\metax{pojmenovat poslední makro}{M-x name-last-kbd-macro} +\metax{vložit do bufferu lispovou definici}{M-x insert-kbd-macro} -\section{Pkazy souvisejc s~Emacs Lispem} +\section{Příkazy související s~Emacs Lispem} -\key{vyhodnotit {\bf vraz} ped kurzorem}{C-x C-e} +\key{vyhodnotit {\bf výraz} před kurzorem}{C-x C-e} \key{vyhodnotit {\bf funkci} pod kurzorem}{C-M-x} \metax{vyhodnotit {\bf oblast}}{M-x eval-region} -\key{nast a vyhodnotit vraz v~minibufferu}{M-:} -\metax{nast soubor ze systmovho adrese}{M-x load-library} +\key{načíst a vyhodnotit výraz v~minibufferu}{M-:} +\metax{načíst soubor ze systémového adresáře}{M-x load-library} -\section{Jednoduch pizpsoben} +\section{Jednoduchá přizpůsobení} -\metax{nastavit promnn a faces}{M-x customize} +\metax{nastavit proměnné a faces}{M-x customize} % The intended audience here is the person who wants to make simple % customizations and knows Lisp syntax. -Definice obecn klvesov zkratky v~Emacs Lispu (pklad): +Definice obecné klávesové zkratky v~Emacs Lispu (příklad): \beginexample% (global-set-key "\\C-cg" 'goto-line) (global-set-key "\\M-\#" 'query-replace-regexp) \endexample -\section{Zpis pkaz} +\section{Zápis příkazů} \beginexample% (defun \ (\) @@ -645,7 +640,7 @@ \section{Z \) \endexample -Pklad: +Příklad: \beginexample% (defun this-line-to-top-of-window (line) @@ -657,8 +652,8 @@ \section{Z (prefix-numeric-value line)))) \endexample -Specifikace \kbd{interactive} k, jak interaktivn nast ar\-gu\-men\-ty. -Vce se dozvte po proveden \kbd{C-h f interactive}. +Specifikace \kbd{interactive} říká, jak interaktivně načíst ar\-gu\-men\-ty. +Více se dozvíte po provedení \kbd{C-h f interactive}. \copyrightnotice @@ -666,5 +661,4 @@ \section{Z % Local variables: % compile-command: "csplain cs-refcard" -% coding: iso-latin-2 % End: diff --git a/etc/refcards/cs-survival.tex b/etc/refcards/cs-survival.tex index 75235ed3e6b..fbce80a403e 100644 --- a/etc/refcards/cs-survival.tex +++ b/etc/refcards/cs-survival.tex @@ -3,7 +3,7 @@ % Copyright (C) 2000-2014 Free Software Foundation, Inc. % Author: Wlodek Bzyl -% Czech translation: Pavel Jank , March 2001 +% Czech translation: Pavel Janík , March 2001 % This file is part of GNU Emacs. @@ -54,11 +54,6 @@ % Czech hyphenation rules applied \chyph -% Without this, pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) -% aborts with: "! UTF-8 INPUT IS CORRUPTED ! -% May be you are using another input encoding" -\input utf8off - \input emacsver.tex \def\copyrightnotice{\penalty-1\vfill @@ -66,11 +61,11 @@ Copyright \copyright\ \year\ Free Software Foundation, Inc.\break Pro GNU Emacs \versionemacs\break W{\l}odek Bzyl (matwb@univ.gda.pl)\break - Do etiny peloil Pavel Jank (Pavel@Janik.cz) + Do češtiny přeložil Pavel Janík (Pavel@Janik.cz) - Kopie tohoto dokumentu mete vytvet a it - za pedpokladu, e budou obsahovat tuto poznmku - o autorskch prvech.\par}} + Kopie tohoto dokumentu můžete vytvářet a šířit + za předpokladu, že budou obsahovat tuto poznámku + o autorských právech.\par}} \hsize 3.2in \vsize 7.95in @@ -173,243 +168,243 @@ %**end of header -\title{Karta\ \ pro\ \ peit\ \ s\ \ GNU\ \ Emacsem}{pro verzi \versionemacs} +\title{Karta\ \ pro\ \ přežití\ \ s\ \ GNU\ \ Emacsem}{pro verzi \versionemacs} -V~nsledujcm textu \kbd{C-z} znamen: stisknte klvesu `\kbd{z}' a -souasn pidrte stisknutou klvesu {\it Ctrl}. \kbd{M-z} znamen, e -souasn s klvesou `\kbd{z}' pidrte klvesu {\it Meta\/} (vtinou -oznaenou {\it Alt\/}) nebo ji stisknete po stisknut klvesy {\it Esc\/}. +V~následujícím textu \kbd{C-z} znamená: stiskněte klávesu `\kbd{z}' a +současně přidržte stisknutou klávesu {\it Ctrl}. \kbd{M-z} znamená, že +současně s klávesou `\kbd{z}' přidržíte klávesu {\it Meta\/} (většinou +označenou {\it Alt\/}) nebo ji stisknete po stisknutí klávesy {\it Esc\/}. -\section{Sputn Emacsu} +\section{Spuštění Emacsu} -Pro sputn GNU Emacsu jednodue napite jeho jmno: \kbd{emacs}. -Emacs rozdluje rmec na nkolik st: - dek menu, - buffer s editovanm textem, - tzv. mode line popisujc buffer nad n - a minibuffer v posledn dce. +Pro spuštění GNU Emacsu jednoduše napište jeho jméno: \kbd{emacs}. +Emacs rozděluje rámec na několik částí: + řádek menu, + buffer s editovaným textem, + tzv. mode line popisující buffer nad ní + a minibuffer v poslední řádce. \askip -\key{C-x C-c} ukonen Emacsu -\key{C-x C-f} editace souboru; tento pkaz vyuv minibuffer k peten - jmna souboru; tento pkaz pouijte i tehdy, chcete-li - vytvoit nov soubor zadanho jmna -\key{C-x C-s} uloit soubor -\key{C-x k} zavt buffer -\key{C-g} ve vtin situac: zastaven aktuln provdn innosti, - zruen zadvn pkazu apod. +\key{C-x C-c} ukončení Emacsu +\key{C-x C-f} editace souboru; tento příkaz využívá minibuffer k přečtení + jména souboru; tento příkaz použijte i tehdy, chcete-li + vytvořit nový soubor zadaného jména +\key{C-x C-s} uložit soubor +\key{C-x k} zavřít buffer +\key{C-g} ve většině situací: zastavení aktuálně prováděné činnosti, + zrušení zadávání příkazu apod. \key{C-x u} obnovit \section{Pohyb} -\key{C-l} pesun aktuln dky do stedu okna -\key{C-x b} pepnut do jinho bufferu -\key{M-<} pesun na zatek bufferu -\key{M->} pesun na konec bufferu -\key{M-x goto-line} pesun na dek zadanho sla +\key{C-l} přesun aktuální řádky do středu okna +\key{C-x b} přepnutí do jiného bufferu +\key{M-<} přesun na začátek bufferu +\key{M->} přesun na konec bufferu +\key{M-x goto-line} přesun na řádek zadaného čísla -\section{Vce oken} +\section{Více oken} -\key{C-x 0} odstrann aktulnho okna -\key{C-x 1} aktuln okno se stane jedinm oknem -\key{C-x 2} rozdlen okna horizontln -\key{C-x 3} rozdlen okna vertikln -\key{C-x o} pesun do jinho okna +\key{C-x 0} odstranění aktuálního okna +\key{C-x 1} aktuální okno se stane jediným oknem +\key{C-x 2} rozdělení okna horizontálně +\key{C-x 3} rozdělení okna vertikálně +\key{C-x o} přesun do jiného okna \section{Regiony} -Emacs definuje `region' jako prostor mezi {\it znakou\/} a -{\it bodem}. Znaka je nastavena pomoc \kbd{C-{\it space}}. -Bod je v mst aktuln pozice kurzoru. +Emacs definuje `region' jako prostor mezi {\it značkou\/} a +{\it bodem}. Značka je nastavena pomocí \kbd{C-{\it space}}. +Bod je v místě aktuální pozice kurzoru. \askip -\key{M-h} ozna cel odstavec -\key{C-x h} ozna cel buffer +\key{M-h} označ celý odstavec +\key{C-x h} označ celý buffer -\section{Vyjmut a koprovn} +\section{Vyjmutí a kopírování} \key{C-w} vyjmi region -\key{M-w} zkopruj region do kill-ringu -\key{C-k} vyjmi text od kurzoru do konce dku +\key{M-w} zkopíruj region do kill-ringu +\key{C-k} vyjmi text od kurzoru do konce řádku \key{M-DEL} vyjmi slovo -\key{C-y} vlo zpt posledn vyjmut text (kombinace klves \kbd{C-w C-y} - me bt pouita pro pesuny text) -\key{M-y} nahra posledn vloen text pedchozm vyjmutm textem +\key{C-y} vlož zpět poslední vyjmutý text (kombinace kláves \kbd{C-w C-y} + může být použita pro přesuny textů) +\key{M-y} nahraď poslední vložený text předchozím vyjmutým textem -\section{Vyhledvn} +\section{Vyhledávání} -\key{C-s} hledej etzec -\key{C-r} hledej etzec zpt -\key{RET} ukoni hledn -\key{M-C-s} hledej regulrn vraz -\key{M-C-r} hledej regulrn vraz zpt +\key{C-s} hledej řetězec +\key{C-r} hledej řetězec zpět +\key{RET} ukonči hledání +\key{M-C-s} hledej regulární výraz +\key{M-C-r} hledej regulární výraz zpět \askip -Kombinace \kbd{C-s} nebo \kbd{C-r} mete pout i k opakovn hledn -jinm smrem. +Kombinace \kbd{C-s} nebo \kbd{C-r} můžete použít i k opakování hledání +jiným směrem. -\section{Znaky (tags)} +\section{Značky (tags)} -Tabulky znaek (tags) zaznamenvaj polohu funkc a procedur, globlnch -promnnch, datovch typ a dalho. Pro vytvoen tabulky znaek spuste -pkaz `{\tt etags} {\it vstupn\_soubory}' v pkazovm interpretu. +Tabulky značek (tags) zaznamenávají polohu funkcí a procedur, globálních +proměnných, datových typů a dalšího. Pro vytvoření tabulky značek spusťte +příkaz `{\tt etags} {\it vstupní\_soubory}' v příkazovém interpretu. \askip \key{M-.} najdi definici -\key{C-u M-.} najdi dal vskyt definice -\key{M-*} b tam, odkud byla volna posledn \kbd{M-.} -\mkey{M-x tags-query-replace} spus query-replace na vech souborech -zaznamenanch v tabulce znaek. -\key{M-,} pokrauj v poslednm hledn znaky nebo query-replace +\key{C-u M-.} najdi další výskyt definice +\key{M-*} běž tam, odkud byla volána poslední \kbd{M-.} +\mkey{M-x tags-query-replace} spusť query-replace na všech souborech +zaznamenaných v tabulce značek. +\key{M-,} pokračuj v posledním hledání značky nebo query-replace -\section{Peklady} +\section{Překlady} -\key{M-x compile} pelo kd v aktivnm okn -\key{C-c C-c} b na posledn chybu pekladae, v okn pekladu -\key{C-x `} v okn se zdrojovm textem +\key{M-x compile} přelož kód v aktivním okně +\key{C-c C-c} běž na poslední chybu překladače, v okně překladu +\key{C-x `} v okně se zdrojovým textem -\section{Dired, editor adres} +\section{Dired, editor adresářů} -\key{C-x d} spus Dired -\key{d} ozna tento soubor pro smazn -\key{\~{}} ozna vechny zlohy ke smazn -\key{u} odstra vechny znaky pro smazn -\key{x} sma soubory oznaen pro smazn -\key{C} kopruj soubor +\key{C-x d} spusť Dired +\key{d} označ tento soubor pro smazání +\key{\~{}} označ všechny zálohy ke smazání +\key{u} odstraň všechny značky pro smazání +\key{x} smaž soubory označené pro smazání +\key{C} kopíruj soubor \key{g} obnov buffer Diredu -\key{f} navtiv soubor v aktuln dce -\key{s} pepni mezi azenm podle abecedy a data/asu +\key{f} navštiv soubor v aktuální řádce +\key{s} přepni mezi řazením podle abecedy a data/času -\section{ten a posln poty} +\section{Čtení a posílání pošty} -\key{M-x rmail} zani st potu -\key{q} ukoni ten poty -\key{h} uka hlaviky -\key{d} ozna aktuln zprvu ke smazn -\key{x} sma vechny zprvy oznaen ke smazn +\key{M-x rmail} začni číst poštu +\key{q} ukonči čtení pošty +\key{h} ukaž hlavičky +\key{d} označ aktuální zprávu ke smazání +\key{x} smaž všechny zprávy označené ke smazání -\key{C-x m} nov zprva -\key{C-c C-c} poli zprvu a pepni do jinho bufferu -\key{C-c C-f C-c} pesu se na hlaviku `CC' a pokud neexistuje, tak ji -vytvo +\key{C-x m} nová zpráva +\key{C-c C-c} pošli zprávu a přepni do jiného bufferu +\key{C-c C-f C-c} přesuň se na hlavičku `CC' a pokud neexistuje, tak ji +vytvoř -\section{Rzn} +\section{Různé} \key{M-q} zarovnej odstavec -\key{M-/} dopl dynamicky pedchoz slovo -\key{C-z} ikonizuj (peru) Emacs -\mkey{M-x revert-buffer} nahra text editovanho souboru tmt souborem z disku +\key{M-/} doplň dynamicky předchozí slovo +\key{C-z} ikonizuj (přeruš) Emacs +\mkey{M-x revert-buffer} nahraď text editovaného souboru tímtéž souborem z disku -\section{Nahrazovn} +\section{Nahrazování} -\key{M-\%} interaktivn hledej a nahrazuj -\key{M-C-\%} za pouit regulrnch vraz +\key{M-\%} interaktivně hledej a nahrazuj +\key{M-C-\%} za použití regulárních výrazů \askip -Mon odpovdi v mdu hledn jsou +Možné odpovědi v módu hledání jsou \askip -\key{SPC} nahra tento vskyt; b na dal -\key{,} nahra tento vskyt; necho dle -\key{DEL} tento vskyt nenahrazuj a b dl -\key{!} nahra vechny dal vskyty -\key{\^{}} zpt na pedchoz vskyt -\key{RET} ukoni query-replace -\key{C-r} zani rekurzivn editaci (\kbd{M-C-c} ji ukon) +\key{SPC} nahraď tento výskyt; běž na další +\key{,} nahraď tento výskyt; nechoď dále +\key{DEL} tento výskyt nenahrazuj a běž dál +\key{!} nahraď všechny další výskyty +\key{\^{}} zpět na předchozí výskyt +\key{RET} ukonči query-replace +\key{C-r} začni rekurzivní editaci (\kbd{M-C-c} ji ukončí) -\section{Regulrn vrazy} +\section{Regulární výrazy} -\key{. {\rm(teka)}} libovoln znak krom znaku novho dku -\key{*} dn nebo mnoho opakovn -\key{+} jedno nebo mnoho opakovn -\key{?} dn nebo jedno opakovn -\key{[$\ldots$]} oznauje tdu znak -\key{[\^{}$\ldots$]} neguje tdu znak +\key{. {\rm(tečka)}} libovolný znak kromě znaku nového řádku +\key{*} žádné nebo mnoho opakování +\key{+} jedno nebo mnoho opakování +\key{?} žádné nebo jedno opakování +\key{[$\ldots$]} označuje třídu znaků +\key{[\^{}$\ldots$]} neguje třídu znaků -\key{\\{\it c}} uvozen znaku, kter by ml jinak speciln vznam v -regulrnm vrazu +\key{\\{\it c}} uvození znaku, který by měl jinak speciální význam v +regulárním výrazu -\key{$\ldots$\\|$\ldots$\\|$\ldots$} vyhovuje jedn z alternativ (\uv{nebo}) -\key{\\( $\ldots$ \\)} seskupen nkolika vzork do jednoho -\key{\\{\it n}} tot jako {\it n\/}-t skupina +\key{$\ldots$\\|$\ldots$\\|$\ldots$} vyhovuje jedné z alternativ (\uv{nebo}) +\key{\\( $\ldots$ \\)} seskupení několika vzorků do jednoho +\key{\\{\it n}} totéž jako {\it n\/}-tá skupina -\key{\^{}} vyhovuje na zatku dku -\key{\$} vyhovuje na konci dku +\key{\^{}} vyhovuje na začátku řádku +\key{\$} vyhovuje na konci řádku -\key{\\w} vyhovuje znaku, kter me bt soust slova -\key{\\W} vyhovuje znaku, kter neme bt soust slova -\key{\\<} vyhovuje na zatku slova +\key{\\w} vyhovuje znaku, který může být součástí slova +\key{\\W} vyhovuje znaku, který nemůže být součástí slova +\key{\\<} vyhovuje na začátku slova \key{\\>} vyhovuje na konci slova -\key{\\b} vyhovuje mezislovnm mezerm -\key{\\B} vyhovuje mezerm, kter nejsou mezislovn +\key{\\b} vyhovuje mezislovním mezerám +\key{\\B} vyhovuje mezerám, které nejsou mezislovní \section{Registry} -\key{C-x r s} ulo region do registru -\key{C-x r i} vlo obsah registru do bufferu +\key{C-x r s} ulož region do registru +\key{C-x r i} vlož obsah registru do bufferu -\key{C-x r SPC} ulo aktuln pozici kurzoru do registru -\key{C-x r j} sko na pozici kurzoru uloenou v registru +\key{C-x r SPC} ulož aktuální pozici kurzoru do registru +\key{C-x r j} skoč na pozici kurzoru uloženou v registru -\section{Obdlnky} +\section{Obdélníky} -\key{C-x r r} zkopruj obdlnk do registru -\key{C-x r k} vyjmi obdlnk -\key{C-x r y} vlo obdlnk -\key{C-x r t} uvozen kadho dku etzcem +\key{C-x r r} zkopíruj obdélník do registru +\key{C-x r k} vyjmi obdélník +\key{C-x r y} vlož obdélník +\key{C-x r t} uvození každého řádku řetězcem -\key{C-x r o} otevi obdlnk, posu text vpravo -\key{C-x r c} vyprzdni obdlnk +\key{C-x r o} otevři obdélník, posuň text vpravo +\key{C-x r c} vyprázdni obdélník -\section{Pkazov interpret} +\section{Příkazový interpret} -\key{M-x shell} spus pkazov interpret v Emacsu -\key{M-!} spus pkaz pkazovho interpretu -\key{M-|} spus pkaz pkazovho interpretu na region -\key{C-u M-|} filtruj region pes pkaz pkazovho interpretu +\key{M-x shell} spusť příkazový interpret v Emacsu +\key{M-!} spusť příkaz příkazového interpretu +\key{M-|} spusť příkaz příkazového interpretu na region +\key{C-u M-|} filtruj region přes příkaz příkazového interpretu \section{Kontrola pravopisu} \key{M-\$} zkontroluj pravopis slova pod kurzorem -\mkey{M-x ispell-region} zkontroluj pravopis vech slov v regionu +\mkey{M-x ispell-region} zkontroluj pravopis všech slov v regionu \mkey{M-x ispell-buffer} zkontroluj pravopis v bufferu -\section{Mezinrodn znakov sady} +\section{Mezinárodní znakové sady} -\key{C-x RET C-\\} zvol a aktivuj vstupn metodu pro aktuln buffer -\key{C-\\} aktivuj nebo deaktivuj vstupn metodu -\mkey{M-x list-input-methods} zobraz seznam vech vstupnch metod -\mkey{M-x set-language-environment} specifikuj hlavn jazyk +\key{C-x RET C-\\} zvol a aktivuj vstupní metodu pro aktuální buffer +\key{C-\\} aktivuj nebo deaktivuj vstupní metodu +\mkey{M-x list-input-methods} zobraz seznam všech vstupních metod +\mkey{M-x set-language-environment} specifikuj hlavní jazyk -\key{C-x RET c} nastav kdovac systm pro nsledujc pkaz -\mkey{M-x find-file-literally} edituj soubor bez jakchkoli konverz +\key{C-x RET c} nastav kódovací systém pro následující příkaz +\mkey{M-x find-file-literally} edituj soubor bez jakýchkoli konverzí -\mkey{M-x list-coding-systems} uka vechny kdovac systmy -\mkey{M-x prefer-coding-system} zvol preferovan kdovac systm +\mkey{M-x list-coding-systems} ukaž všechny kódovací systémy +\mkey{M-x prefer-coding-system} zvol preferovaný kódovací systém -\section{Klvesov makra} +\section{Klávesová makra} -\key{C-x (} zani definici klvesovho makra -\key{C-x )} ukoni definici klvesovho makra -\key{C-x e} spus naposledy definovan klvesov makro -\key{C-u C-x (} pidej do posledn definovanho klvesovho makra -\mkey{M-x name-last-kbd-macro} pojmenuj naposledy definovan makro +\key{C-x (} začni definici klávesového makra +\key{C-x )} ukonči definici klávesového makra +\key{C-x e} spusť naposledy definované klávesové makro +\key{C-u C-x (} přidej do posledně definovaného klávesového makra +\mkey{M-x name-last-kbd-macro} pojmenuj naposledy definované makro -\section{Jednoduch nastaven} +\section{Jednoduché nastavení} -\key{M-x customize} jednoduch nastaven +\key{M-x customize} jednoduché nastavení \section{Pomoc} -Emacs dopluje pkazy. Stisknete-li \kbd{M-x} {\it tab\/} nebo {\it -space\/} dostanete seznam pkaz Emacsu. +Emacs doplňuje příkazy. Stisknete-li \kbd{M-x} {\it tab\/} nebo {\it +space\/} dostanete seznam příkazů Emacsu. \askip -\key{C-h} npovda Emacsu -\key{C-h t} spust tutoril Emacsu -\key{C-h i} spust Info, prohle dokumentace -\key{C-h a} uke pkazy vyhovujc zadanmu etzci (apropos) -\key{C-h k} zobraz dokumentaci funkce sputn pomoc zadan klvesy +\key{C-h} nápověda Emacsu +\key{C-h t} spustí tutoriál Emacsu +\key{C-h i} spustí Info, prohlížeč dokumentace +\key{C-h a} ukáže příkazy vyhovující zadanému řetězci (apropos) +\key{C-h k} zobrazí dokumentaci funkce spuštěné pomocí zadané klávesy \askip -Emacs pracuje v rznch {\it mdech}, kter upravuj chovn -Emacsu pro editovan text danho typu. Mode line obsahuje jmna aktulnch -md v zvorkch. +Emacs pracuje v různých {\it módech}, které upravují chování +Emacsu pro editovaný text daného typu. Mode line obsahuje jména aktuálních +módů v závorkách. \askip -\key{C-h m} zobraz dokumentaci aktulnch md. +\key{C-h m} zobraz dokumentaci aktuálních módů. \copyrightnotice @@ -417,5 +412,4 @@ \section{Pomoc} % Local variables: % compile-command: "csplain survival" -% coding: iso-latin-2 % End: diff --git a/etc/refcards/emacsver.tex b/etc/refcards/emacsver.tex deleted file mode 100644 index b2df1970ca3..00000000000 --- a/etc/refcards/emacsver.tex +++ /dev/null @@ -1,4 +0,0 @@ -%% This file is not generated by configure, because then the provided -%% pdf files would always appear out-of-date. -\def\versionemacs{24} % major version of emacs -\def\year{2014} % latest copyright year diff --git a/etc/refcards/emacsver.tex.in b/etc/refcards/emacsver.tex.in new file mode 100644 index 00000000000..911121c15f0 --- /dev/null +++ b/etc/refcards/emacsver.tex.in @@ -0,0 +1,5 @@ +%%% configure updates this using a make rule. +\def\versionemacs{@majorversion@} % major version of emacs +%% This one should not be automatically updated; +%% M-x set-copyright in admin.el handles it. +\def\year{2014} % latest copyright year diff --git a/etc/refcards/ru-refcard.tex b/etc/refcards/ru-refcard.tex index 39a789d1d59..0458ccba41f 100644 --- a/etc/refcards/ru-refcard.tex +++ b/etc/refcards/ru-refcard.tex @@ -21,7 +21,7 @@ \newlength{\ColThreeWidth} \setlength{\ColThreeWidth}{25mm} -\newcommand{\versionemacs}[0]{24} % version of Emacs this is for +\newcommand{\versionemacs}[0]{25} % version of Emacs this is for \newcommand{\cyear}[0]{2014} % copyright year \newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill diff --git a/etc/refcards/sk-dired-ref.tex b/etc/refcards/sk-dired-ref.tex index 53047268744..c350cb6b411 100644 --- a/etc/refcards/sk-dired-ref.tex +++ b/etc/refcards/sk-dired-ref.tex @@ -3,7 +3,7 @@ % Copyright (C) 2000-2014 Free Software Foundation, Inc. % Author: Evgeny Roubinchtein -% Czech translation: Pavel Jank , March 2001 +% Czech translation: Pavel Janík , March 2001 % Slovak translation: Miroslav Vasko , March 2001 % This file is part of GNU Emacs. @@ -32,11 +32,6 @@ % Slovak hyphenation rules applied \shyph -% Without this, pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) -% aborts with: "! UTF-8 INPUT IS CORRUPTED ! -% May be you are using another input encoding" -\input utf8off - % This file can be printed with 1, 2, or 3 columns per page. % Specify how many you want here. \newcount\columnsperpage @@ -61,7 +56,7 @@ \centerline{For GNU Emacs version \versionemacs} \centerline{Originally written May 2000 by Evgeny Roubinchtein,} \centerline{using refcard layout designed by Stephen Gildea.} -\centerline{Translated by Miroslav Vako.} +\centerline{Translated by Miroslav Vaško.} Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice @@ -255,10 +250,10 @@ %**end of header -\title{Referenn karta pre Dired} +\title{Referenčná karta pre Dired} -\centerline{(uren pre Dired v GNU Emacse \versionemacs)} -\centerline{Prkazy oznaen \dx{} vyaduj dired-x} +\centerline{(určené pre Dired v GNU Emacse \versionemacs)} +\centerline{Príkazy označené \dx{} vyžadujú dired-x} % trim this down to fit everything on one page % \section{General} @@ -287,120 +282,120 @@ % When editing several directories in one buffer, each directory acts as a % page, so C-x [ and C-x ] can be used to move between directories. -\section{Spustenie a ukonenie Dired} +\section{Spustenie a ukončenie Dired} \key{spustenie dired}{C-x d} -\key{spustenie dired v adresri s aktulnym sborom}{C-x C-j \dx} -\key{ukonenie dired}{q} +\key{spustenie dired v adresári s aktuálnym súborom}{C-x C-j \dx} +\key{ukončenie dired}{q} -\section{Prkazy pre presuny} +\section{Príkazy pre presuny} -\key{sp na predchdzajci riadok}{p} -\key{vpred na nasledujci riadok}{n} -\key{hore na predchdzajci adresr}{<} -\key{dole na nasledujci adresr}{>} -\key{na al oznaen sbor}{M-\}} -\key{na predchdzajci oznaen sbor}{M-\{} -\key{sp na predchdzajci podadresr}{M-C-p} -\key{vpred na al podadresr}{M-C-n} -\key{na nadraden adresr}{^} -\key{cho na prv podadresr}{M-C-d} +\key{späť na predchádzajúci riadok}{p} +\key{vpred na nasledujúci riadok}{n} +\key{hore na predchádzajúci adresár}{<} +\key{dole na nasledujúci adresár}{>} +\key{na ďalší označený súbor}{M-\}} +\key{na predchádzajúci označený súbor}{M-\{} +\key{späť na predchádzajúci podadresár}{M-C-p} +\key{vpred na ďalší podadresár}{M-C-n} +\key{na nadradený adresár}{^} +\key{choď na prvý podadresár}{M-C-d} -\section{Prkazy pomocou myi} -\metax{otvor sbor}{Mouse_Button_2} +\section{Príkazy pomocou myši} +\metax{otvor súbor}{Mouse_Button_2} \metax{zobraz menu}{Control-Mouse_Button_3} -\section{Okamit akcie nad sbormi} +\section{Okamžité akcie nad súbormi} -\key{otvor aktulny sbor}{f} -\key{otvor aktulny sbor iba pre tanie}{v} -\key{otvor aktulny sbor v inom okne}{o} -%%\key{otvor aktulny sbor v inom rmci}{w} -%%\key{zobraz aktulny sbor}{C-u o} -\key{vytvor nov podadresr}{+} -\key{porovnaj sbor pod kurzorom s oznaenm}{=} +\key{otvor aktuálny súbor}{f} +\key{otvor aktuálny súbor iba pre čítanie}{v} +\key{otvor aktuálny súbor v inom okne}{o} +%%\key{otvor aktuálny súbor v inom rámci}{w} +%%\key{zobraz aktuálny súbor}{C-u o} +\key{vytvor nový podadresár}{+} +\key{porovnaj súbor pod kurzorom s označeným}{=} -\section{Oznaovanie a odznaovanie sborov} +\section{Označovanie a odznačovanie súborov} -\key{ozna sbor alebo podadresr pre alie prkazy}{m} -\key{odzna sbor alebo sbory podadresre}{u} -\key{zru oznaenie vetkch sborov v bufferi}{M-delete} -\key{ozna sbory so zadanou prponou}{* .} -\key{ozna vetky adresre}{* /} -\key{ozna vetky symbolick odkazy}{* @} -\key{ozna vetky spustiten sbory}{* *} -\key{invertuj oznaenie}{* t} -\key{ozna vetky sbory v aktulnom podadresri}{* s} -\key{ozna sbory vyhovujce regulrnemu vrazu}{* \%} -\key{zme znaku na in psmeno}{* c} -\key{ozna sbory, pre ktor elispov vraz vrac t}{* ( \dx} +\key{označ súbor alebo podadresár pre ďalšie príkazy}{m} +\key{odznač súbor alebo súbory podadresáre}{u} +\key{zruš označenie všetkých súborov v bufferi}{M-delete} +\key{označ súbory so zadanou príponou}{* .} +\key{označ všetky adresáre}{* /} +\key{označ všetky symbolické odkazy}{* @} +\key{označ všetky spustiteľné súbory}{* *} +\key{invertuj označenie}{* t} +\key{označ všetky súbory v aktuálnom podadresári}{* s} +\key{označ súbory vyhovujíce regulárnemu výrazu}{* \%} +\key{zmeň značku na iné písmeno}{* c} +\key{označ súbory, pre ktoré elispový výraz vrací t}{* ( \dx} -\section{Modifikcia Dired bufferu} +\section{Modifikácia Dired bufferu} -\key{vlo do tohto bufferu podadresr}{i} -\key{odstr oznaen sbory z bufferu}{k} -\key{odstr z bufferu vpis podadresra}{C-u k} -\key{znovu nataj adresr (znaky sa zachovaj)}{g} -\key{prepni triedenie adresra poda mena/dtumu}{s} -\key{uprav voby prkazu ls}{C-u s} -\key{obnov znaky, skryt riadky a~pod.}{C-_} -\key{skry vetky podadresre}{M-\$} -\key{skry alebo odkry vetky podadresre}{\$} +\key{vlož do tohto bufferu podadresár}{i} +\key{odstráň označené súbory z bufferu}{k} +\key{odstráň z bufferu výpis podadresára}{C-u k} +\key{znovu načítaj adresár (značky sa zachovajú)}{g} +\key{prepni triedenie adresára podľa mena/dátumu}{s} +\key{uprav voľby príkazu ls}{C-u s} +\key{obnov značky, skryté riadky a~pod.}{C-_} +\key{skry všetky podadresáre}{M-\$} +\key{skry alebo odkry všetky podadresáre}{\$} -\section{Prkazy nad oznaenmi sbormi} +\section{Príkazy nad označenými súbormi} -\key{kopruj sbor(y)}{C} -\key{premenuj sbor alebo presu sbory}{R} -\key{zme vlastnka sboru(ov)}{O} -\key{zme skupinu sboru(ov)}{G} -\key{zme prstupov prva sboru(ov)}{M} -\key{vytla sbor(y)}{P} -\key{zme nzov sboru(ov) na mal psmen}{\% l} -\key{zme nzov sboru(ov) na vek psmen}{\% u} -\key{zma oznaen sbory}{D} -%%\key{vykonaj uuencode alebo uudecode sboru(ov)}{U} -\key{skomprimuj alebo dekomprimuj sbor(y)}{Z} -\key{spusti info na sbore}{I \dx} -\key{vytvor symbolick() odkaz(y)}{S} -\key{vytvor relatvne symbolick odkazy}{Y} -\key{vytvor pevn odkaz}{H} -\key{prehadaj sbory -- hadaj regulrny vraz}{A} -\key{nahra regulrne vrazy}{Q} -\key{prelo sbory (byte-compile)}{B} -\key{nataj sbory (load-file)}{L} -\key{spusti prkaz nad sborom(mi)}{!} +\key{kopíruj súbor(y)}{C} +\key{premenuj súbor alebo presuň súbory}{R} +\key{zmeň vlastníka súboru(ov)}{O} +\key{zmeň skupinu súboru(ov)}{G} +\key{zmeň prístupové práva súboru(ov)}{M} +\key{vytlač súbor(y)}{P} +\key{zmeň názov súboru(ov) na malé písmená}{\% l} +\key{zmeň názov súboru(ov) na veľké písmená}{\% u} +\key{zmaž označené súbory}{D} +%%\key{vykonaj uuencode alebo uudecode súboru(ov)}{U} +\key{skomprimuj alebo dekomprimuj súbor(y)}{Z} +\key{spusti info na súbore}{I \dx} +\key{vytvor symbolický(é) odkaz(y)}{S} +\key{vytvor relatívne symbolické odkazy}{Y} +\key{vytvor pevný odkaz}{H} +\key{prehľadaj súbory -- hľadaj regulárny výraz}{A} +\key{nahraď regulárne výrazy}{Q} +\key{prelož súbory (byte-compile)}{B} +\key{načítaj súbory (load-file)}{L} +\key{spusti príkaz nad súborom(mi)}{!} -\section{Oznaenie sborov pre zmazanie} +\section{Označenie súborov pre zmazanie} -\leftline{\bf Odznaujce prkazy ma znaku pre zmazanie} -\key{ozna sbor pre zmazanie}{d} -%%\key{odstr znaku pre zmazanie}{delete} -\key{ozna vetky zlohy (sbory koniace na \~{})}{\~{}} -\key{ozna vetky zlohy (auto-save)}{\#} -\key{ozna rzne doasn sbory}{\% \&} -\key{ozna slovan zlohy (koniace na .\~{}1\~{} a~pod.)}{.} -\key{vyma sbory oznaen na zmazanie}{x} -\key{ozna sbory vyhovujce regulrnemu vrazu}{\% d} +\leftline{\bf Odznačujúce príkazy mažú značku pre zmazanie} +\key{označ súbor pre zmazanie}{d} +%%\key{odstráň značku pre zmazanie}{delete} +\key{označ všetky zálohy (súbory končiace na \~{})}{\~{}} +\key{označ všetky zálohy (auto-save)}{\#} +\key{označ rôzne dočasné súbory}{\% \&} +\key{označ číslované zálohy (končiace na .\~{}1\~{} a~pod.)}{.} +\key{vymaž súbory označené na zmazanie}{x} +\key{označ súbory vyhovujúce regulárnemu výrazu}{\% d} -\section{Prkazy s regulrnymi vrazmi} +\section{Príkazy s regulárnymi výrazmi} -\key{ozna sbory vyhovujce regulrnemu vrazu}{\% m} -\key{skopruj oznaen sbory obsahujce regexp}{\% C} -\key{premenuj oznaen sbory vyhovujce regexp}{\% R} -\key{pevn odkaz}{\% H} -\key{symbolick odkaz}{\% S} -\key{symbolick odkaz s relatvnou cestou}{\% Y} -\key{ozna pre zmazanie}{\% d} +\key{označ súbory vyhovujúce regulárnemu výrazu}{\% m} +\key{skopíruj označené súbory obsahujúce regexp}{\% C} +\key{premenuj označené súbory vyhovujúce regexp}{\% R} +\key{pevný odkaz}{\% H} +\key{symbolický odkaz}{\% S} +\key{symbolický odkaz s relatívnou cestou}{\% Y} +\key{označ pre zmazanie}{\% d} \section{Dired a Find} -\metax{otvor v dired sbory vyhovujce vzorke}{M-x find-name-dired} -\metax{otvor v dired sbory obsahujce vzorku}{M-x find-grep-dired} -\metax{otvor v dired sbory poda vstupu \kbd{find}}{M-x find-dired} +\metax{otvor v dired súbory vyhovujúce vzorke}{M-x find-name-dired} +\metax{otvor v dired súbory obsahujúce vzorku}{M-x find-grep-dired} +\metax{otvor v dired súbory podľa výstupu \kbd{find}}{M-x find-dired} -\section{Npoveda} +\section{Nápoveda} -\key{zobraz npovedu}{h} -\key{prehad prkazov dired}{?} +\key{zobraz nápovedu}{h} +\key{prehľad príkazov dired}{?} \copyrightnotice @@ -408,5 +403,4 @@ \section{N % Local variables: % compile-command: "csplain sk-dired-ref" -% coding: iso-latin-2 % End: diff --git a/etc/refcards/sk-refcard.tex b/etc/refcards/sk-refcard.tex index 9a112995eee..a787018d0ba 100644 --- a/etc/refcards/sk-refcard.tex +++ b/etc/refcards/sk-refcard.tex @@ -6,8 +6,8 @@ % Author: Stephen Gildea % Czech translation: Jan Buchal , January 1999 % Milan Zamazal , August 1999 -% Pavel Jank , November 2000 (Emacs 21) -% Slozak translation: Miroslav Vako , March 2001 +% Pavel Janík , November 2000 (Emacs 21) +% Slovak translation: Miroslav Vaško , March 2001 % This file is part of GNU Emacs. @@ -50,11 +50,6 @@ % Slovak hyphenation rules applied \shyph -% Without this, pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) -% aborts with: "! UTF-8 INPUT IS CORRUPTED ! -% May be you are using another input encoding" -\input utf8off - % This file can be printed with 1, 2, or 3 columns per page. % Specify how many you want here. \newcount\columnsperpage @@ -78,7 +73,7 @@ \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} \centerline{For GNU Emacs version \versionemacs} \centerline{Designed by Stephen Gildea} -\centerline{Translated by Miroslav Vako} +\centerline{Translated by Miroslav Vaško} Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice @@ -265,67 +260,67 @@ %**end of header -\title{GNU Emacs -- Referenn karta} +\title{GNU Emacs -- Referenčná karta} \centerline{(pre verziu \versionemacs)} \section{Spustenie Emacsu} -Pre spustenie GNU~Emacsu~\versionemacs{} napte jeho meno: \kbd{emacs} +Pre spustenie GNU~Emacsu~\versionemacs{} napíšte jeho meno: \kbd{emacs} -Ako nata a editova sbory sa dozviete niie v~oddiele Sbory. +Ako načítať a editovať súbory sa dozviete nižšie v~oddiele Súbory. -\section{Ukonenie Emacsu} +\section{Ukončenie Emacsu} -\key{pozastavenie (zmenenie do ikony v~X11)}{C-z} -\key{definitvny odchod z~Emacsu}{C-x C-c} +\key{pozastavenie (zmenšenie do ikony v~X11)}{C-z} +\key{definitívny odchod z~Emacsu}{C-x C-c} -\section{Sbory} +\section{Súbory} -\key{{\bf nata} sbor do Emacsu}{C-x C-f} -\key{{\bf uloi} sbor sp na disk}{C-x C-s} -\key{uloi {\bf vetky} sbory}{C-x s} -\key{{\bf vloi} obsah inho sboru do bufferu}{C-x i} -\key{zameni tento sbor inm sborom}{C-x C-v} -\key{zapsa buffer do zadanho sboru}{C-x C-w} -\key{vloi do systmu sprvy verzi}{C-x C-q} +\key{{\bf načítať} súbor do Emacsu}{C-x C-f} +\key{{\bf uložiť} súbor späť na disk}{C-x C-s} +\key{uložiť {\bf všetky} súbory}{C-x s} +\key{{\bf vložiť} obsah iného súboru do bufferu}{C-x i} +\key{zameniť tento súbor iným súborom}{C-x C-v} +\key{zapísať buffer do zadaného súboru}{C-x C-w} +\key{vložiť do systému správy verzií}{C-x C-q} -\section{Pouvanie npovedy} +\section{Používanie nápovedy} -Systm npovedy je jednoduch. Stlate \kbd{C-h} (alebo \kbd{F1}) a sledujte -intrukcie. vodn {\bf ttorial} je mon spusti pomocou \kbd{C-h t}. +Systém nápovedy je jednoduchý. Stlačte \kbd{C-h} (alebo \kbd{F1}) a sledujte +inštrukcie. Úvodný {\bf tútorial} je možné spustiť pomocou \kbd{C-h t}. -\key{odstrni okno s~npovedou}{C-x 1} -\key{rolova okno s~npovedou}{C-M-v} +\key{odstrániť okno s~nápovedou}{C-x 1} +\key{rolovať okno s~nápovedou}{C-M-v} -\key{apropos: prkazy zodpovedajce reazcu}{C-h a} -\key{zobrazi funkciu danej klvesy}{C-h c} -\key{zobrazi popis funkcie}{C-h f} -\key{zobrazi informcie o~aktulnych mdoch}{C-h m} +\key{apropos: príkazy zodpovedajúce reťazcu}{C-h a} +\key{zobraziť funkciu danej klávesy}{C-h c} +\key{zobraziť popis funkcie}{C-h f} +\key{zobraziť informácie o~aktuálnych módoch}{C-h m} -\section{Opravy chb} +\section{Opravy chýb} -\key{{\bf prerui} vkladan alebo vykonvan prkaz}{C-g} -\metax{{\bf obnovi} sbor straten pdom systmu}{M-x recover-file} -\key{{\bf zrui} nechcen zmenu}{C-x u {\it n.} C-_} -\metax{vrti pvodn obsah bufferu}{M-x revert-buffer} -\key{prekresli \uv{rozpadnut} obrazovku}{C-l} +\key{{\bf prerušiť} vkladaný alebo vykonávaný príkaz}{C-g} +\metax{{\bf obnoviť} súbor stratený pádom systému}{M-x recover-file} +\key{{\bf zrušiť} nechcenú zmenu}{C-x u {\it n.} C-_} +\metax{vrátiť pôvodný obsah bufferu}{M-x revert-buffer} +\key{prekresliť \uv{rozpadnutú} obrazovku}{C-l} -\section{Inkrementlne vyhadvanie} +\section{Inkrementálne vyhľadávanie} -\key{vyhada vpred}{C-s} -\key{vyhada vzad}{C-r} -\key{vyhada regulrny vraz}{C-M-s} -\key{vyhada regulrny vraz dozadu}{C-M-r} -\key{predchdzajci vyhadvan reazec}{M-p} -\key{nasledujc nov vyhadvan reazec}{M-n} -\key{ukoni inkrementlne vyhadvanie}{RET} -\key{zrui efekt poslednho zadanho znaku}{DEL} -\key{prerui prebiehajce vyhadvanie}{C-g} +\key{vyhľadať vpred}{C-s} +\key{vyhľadať vzad}{C-r} +\key{vyhľadať regulárny výraz}{C-M-s} +\key{vyhľadať regulárny výraz dozadu}{C-M-r} +\key{predchádzajúci vyhľadávaný reťazec}{M-p} +\key{nasledujúcí novší vyhľadávaný reťazec}{M-n} +\key{ukončiť inkrementálne vyhľadávanie}{RET} +\key{zrušiť efekt posledného zadaného znaku}{DEL} +\key{prerušiť prebiehajúce vyhľadávanie}{C-g} -alie \kbd{C-s} alebo \kbd{C-r} zopakuje vyhadvanie v~danom smere. Ak -Emacs vyhadva, \kbd{C-g} zru iba nenjden as reazca. +Ďalšie \kbd{C-s} alebo \kbd{C-r} zopakuje vyhľadávanie v~danom smere. Ak +Emacs vyhľadáva, \kbd{C-g} zruší iba nenájdenú časť reťazca. \shortcopyrightnotice @@ -337,307 +332,307 @@ \section{Pohyb} \threecol{znak}{C-b}{C-f} \threecol{slovo}{M-b}{M-f} \threecol{riadok}{C-p}{C-n} -\threecol{na zaiatok alebo koniec riadku}{C-a}{C-e} +\threecol{na začiatok alebo koniec riadku}{C-a}{C-e} \threecol{vetu}{M-a}{M-e} \threecol{odstavec}{M-\{}{M-\}} -\threecol{strnku}{C-x [}{C-x ]} -\threecol{symbolick vraz}{C-M-b}{C-M-f} +\threecol{stránku}{C-x [}{C-x ]} +\threecol{symbolický výraz}{C-M-b}{C-M-f} \threecol{funkciu}{C-M-a}{C-M-e} -\threecol{na zaiatok alebo koniec bufferu}{M-<}{M->} +\threecol{na začiatok alebo koniec bufferu}{M-<}{M->} } -\key{rolova na aliu obrazovku}{C-v} -\key{rolova na predchdzajcu obrazovku}{M-v} -\key{rolova vavo}{C-x <} -\key{rolova vpravo}{C-x >} -\key{aktulny riadok do stredu obrazovky}{C-u C-l} +\key{rolovať na ďalšiu obrazovku}{C-v} +\key{rolovať na predchádzajúcu obrazovku}{M-v} +\key{rolovať vľavo}{C-x <} +\key{rolovať vpravo}{C-x >} +\key{aktuálny riadok do stredu obrazovky}{C-u C-l} -\section{Ruenie a mazanie} +\section{Rušenie a mazanie} \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{{\bf ruen objekt }}{{\bf vzad}}{{\bf vpred}} -\threecol{znak (mazanie, nie ruenie)}{DEL}{C-d} +\threecol{{\bf rušený objekt }}{{\bf vzad}}{{\bf vpred}} +\threecol{znak (mazanie, nie rušenie)}{DEL}{C-d} \threecol{slovo}{M-DEL}{M-d} \threecol{riadok (do konca)}{M-0 C-k}{C-k} \threecol{veta}{C-x DEL}{M-k} -\threecol{symbolick vraz}{M-- C-M-k}{C-M-k} +\threecol{symbolický výraz}{M-- C-M-k}{C-M-k} } -\key{zrui {\bf oblas}}{C-w} -\key{skoprova oblas do schrnky}{M-w} -\key{zrui a po najbli vskyt znaku {\it znak}}{M-z {\it znak}} +\key{zrušiť {\bf oblasť}}{C-w} +\key{skopírovať oblasť do schránky}{M-w} +\key{zrušiť až po najbližší výskyt znaku {\it znak}}{M-z {\it znak}} -\key{vhodi naposledy zruen objekt}{C-y} -\key{nahradi vhoden objekt predchdzajcim zruenm}{M-y} +\key{vhodiť naposledy zrušený objekt}{C-y} +\key{nahradiť vhodený objekt predchádzajúcim zrušeným}{M-y} -\section{Oznaovanie} +\section{Označovanie} -\key{vloi znaku}{C-@ {\it n.} C-SPC} -\key{prehodi kurzor a znaku}{C-x C-x} +\key{vložiť značku}{C-@ {\it n.} C-SPC} +\key{prehodiť kurzor a značku}{C-x C-x} -\key{oznai zadan poet {\bf slov}}{M-@} -\key{oznai {\bf odstavec}}{M-h} -\key{oznai {\bf strnku}}{C-x C-p} -\key{oznai {\bf symbolick vraz}}{C-M-@} -\key{oznai {\bf funkciu}}{C-M-h} -\key{oznai cel {\bf buffer}}{C-x h} +\key{označiť zadaný počet {\bf slov}}{M-@} +\key{označiť {\bf odstavec}}{M-h} +\key{označiť {\bf stránku}}{C-x C-p} +\key{označiť {\bf symbolický výraz}}{C-M-@} +\key{označiť {\bf funkciu}}{C-M-h} +\key{označiť celý {\bf buffer}}{C-x h} -\section{Interaktvne nahradzovanie} +\section{Interaktívne nahradzovanie} -\key{interaktvne nahradi textov reazec}{M-\%} -\metax{s~pouitm regulrneho vrazu}{M-x query-replace-regexp} +\key{interaktívne nahradiť textový reťazec}{M-\%} +\metax{s~použitím regulárneho výrazu}{M-x query-replace-regexp} -Platn odpovede v~mde query-replace s +Platné odpovede v~móde query-replace sú -\key{{\bf nahradi} a s na alie}{SPC} -\key{nahradi a zosta na mieste}{,} -\key{{\bf skoi} na alie bez nahradenia}{DEL} -\key{zameni vetky zostvajce vskyty}{!} -\key{{\bf sp} na predchdzajci vskyt reazca}{^} +\key{{\bf nahradiť} a ísť na ďalšie}{SPC} +\key{nahradiť a zostať na mieste}{,} +\key{{\bf skočiť} na ďalšie bez nahradenia}{DEL} +\key{zameniť všetky zostávajúce výskyty}{!} +\key{{\bf späť} na predchádzajúci výskyt reťazca}{^} \key{{\bf koniec} nahradzovania}{RET} -\key{rekurzvne editovanie (ukon sa \kbd{C-M-c})}{C-r} +\key{rekurzívne editovanie (ukončí sa \kbd{C-M-c})}{C-r} -\section{Okn} +\section{Okná} -Ak s zobrazen dva prkazy, potom ten druh plat pre Xov okno. +Ak sú zobrazené dva príkazy, potom ten druhý platí pre Xové okno. -\key{zrui vetky ostatn okn}{C-x 1} +\key{zrušiť všetky ostatné okná}{C-x 1} {\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{rozdeli okno na horn a doln}{C-x 2\ \ \ \ }{C-x 5 2} -\threecol{zrui toto okno}{C-x 0\ \ \ \ }{C-x 5 0} +\threecol{rozdeliť okno na horné a dolné}{C-x 2\ \ \ \ }{C-x 5 2} +\threecol{zrušiť toto okno}{C-x 0\ \ \ \ }{C-x 5 0} }} -\key{rozdeli okno na av a prav}{C-x 3} +\key{rozdeliť okno na ľavé a pravé}{C-x 3} -\key{rolova in okno}{C-M-v} +\key{rolovať iné okno}{C-M-v} {\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{prepn kurzor do inho okna}{C-x o}{C-x 5 o} +\threecol{prepnúť kurzor do iného okna}{C-x o}{C-x 5 o} -\threecol{vybra buffer v~inom okne}{C-x 4 b}{C-x 5 b} -\threecol{zobrazi buffer v~inom okne}{C-x 4 C-o}{C-x 5 C-o} -\threecol{otvori sbor v~inom okne}{C-x 4 f}{C-x 5 f} -\threecol{otvori sbor iba pre tanie v~inom okne}{C-x 4 r}{C-x 5 r} -\threecol{spusti Dired v~inom okne}{C-x 4 d}{C-x 5 d} -\threecol{njs tag v~inom okne}{C-x 4 .}{C-x 5 .} +\threecol{vybrať buffer v~inom okne}{C-x 4 b}{C-x 5 b} +\threecol{zobraziť buffer v~inom okne}{C-x 4 C-o}{C-x 5 C-o} +\threecol{otvoriť súbor v~inom okne}{C-x 4 f}{C-x 5 f} +\threecol{otvoriť súbor iba pre čítanie v~inom okne}{C-x 4 r}{C-x 5 r} +\threecol{spustiť Dired v~inom okne}{C-x 4 d}{C-x 5 d} +\threecol{nájsť tag v~inom okne}{C-x 4 .}{C-x 5 .} }} -\key{zvi okno}{C-x ^} -\key{zi okno}{C-x \{} -\key{rozri okno}{C-x \}} +\key{zväčšiť okno}{C-x ^} +\key{zúžiť okno}{C-x \{} +\key{rozšíriť okno}{C-x \}} -\section{Formtovanie} +\section{Formátovanie} -\key{odsadi aktulny {\bf riadok} (poda mdu)}{TAB} -\key{odsadi {\bf oblas} (poda mdu)}{C-M-\\} -\key{odsadi {\bf symbolick vraz} (poda mdu)}{C-M-q} -\key{odsadi oblas napevno o~{\it argument\/} stpcov}{C-x TAB} +\key{odsadiť aktuálny {\bf riadok} (podľa módu)}{TAB} +\key{odsadiť {\bf oblasť} (podľa módu)}{C-M-\\} +\key{odsadiť {\bf symbolický výraz} (podľa módu)}{C-M-q} +\key{odsadiť oblasť napevno o~{\it argument\/} stĺpcov}{C-x TAB} -\key{vloi znak novho riadku za kurzor}{C-o} -\key{posun zbytok riadku zvisle dole}{C-M-o} -\key{zmaza przdne riadky okolo kurzoru}{C-x C-o} -\key{spoji riadok s~predchdzajcim (s~arg.~s~nasl.)}{M-^} -\key{zmaza przdne miesto okolo kurzoru}{M-\\} -\key{necha presne jednu medzeru okolo kurzoru}{M-SPC} +\key{vložiť znak nového riadku za kurzor}{C-o} +\key{posunúť zbytok riadku zvisle dole}{C-M-o} +\key{zmazať prázdne riadky okolo kurzoru}{C-x C-o} +\key{spojiť riadok s~predchádzajúcim (s~arg.~s~nasl.)}{M-^} +\key{zmazať prázdne miesto okolo kurzoru}{M-\\} +\key{nechať presne jednu medzeru okolo kurzoru}{M-SPC} -\key{zalomi odstavec}{M-q} -\key{nastavi stpec pre zalamovanie}{C-x f} -\key{nastavi prefix, ktorm zanaj riadky}{C-x .} -\key{nastavi font}{M-g} +\key{zalomiť odstavec}{M-q} +\key{nastaviť stĺpec pre zalamovanie}{C-x f} +\key{nastaviť prefix, ktorým začínajú riadky}{C-x .} +\key{nastaviť font}{M-g} -\section{Zmena vekosti psmen} +\section{Zmena veľkosti písmen} -\key{zmeni psmen slova na vek}{M-u} -\key{zmeni psmen slova na mal}{M-l} -\key{zmeni zaiaton psmeno slova na vek}{M-c} +\key{zmeniť písmená slova na veľké}{M-u} +\key{zmeniť písmená slova na malé}{M-l} +\key{zmeniť začiatočné písmeno slova na veľké}{M-c} -\key{zmeni psmen oblasti na vek}{C-x C-u} -\key{zmeni psmen oblasti na mal}{C-x C-l} +\key{zmeniť písmená oblasti na veľké}{C-x C-u} +\key{zmeniť písmená oblasti na malé}{C-x C-l} \section{Minibuffer} -Nasledujce klvesy s platn pre minibuffer. +Nasledujúce klávesy sú platné pre minibuffer. -\key{doplni z~ponuky}{TAB} -\key{doplni do najbliieho slova}{SPC} -\key{doplni a vykona}{RET} -\key{zobrazi mon doplnenia}{?} -\key{predchdzajci prkaz z~minibufferu}{M-p} -\key{nov alebo implicitn prkaz z~minibufferu}{M-n} -\key{vyhada regulrny vraz v~histrii vzad}{M-r} -\key{vyhada regulrny vraz v~histrii vpred}{M-s} -\key{zrui prkaz}{C-g} +\key{doplniť z~ponuky}{TAB} +\key{doplniť do najbližšieho slova}{SPC} +\key{doplniť a vykonať}{RET} +\key{zobraziť možné doplnenia}{?} +\key{predchádzajúci príkaz z~minibufferu}{M-p} +\key{novší alebo implicitný príkaz z~minibufferu}{M-n} +\key{vyhľadať regulárny výraz v~histórii vzad}{M-r} +\key{vyhľadať regulárny výraz v~histórii vpred}{M-s} +\key{zrušiť príkaz}{C-g} -Stlate \kbd{C-x ESC ESC} pre editovanie a zopakovanie poslednho prkazu -z~minibufferu. Stlate \kbd{F10} pre aktivciu menu v~minibufferi. +Stlačte \kbd{C-x ESC ESC} pre editovanie a zopakovanie posledného príkazu +z~minibufferu. Stlačte \kbd{F10} pre aktiváciu menu v~minibufferi. \newcolumn -\title{GNU Emacs -- Referenn karta} +\title{GNU Emacs -- Referenčná karta} \section{Buffery} -\key{vybra in buffer}{C-x b} -\key{zoznam vetkch bufferov}{C-x C-b} -\key{zrui buffer}{C-x k} +\key{vybrať iný buffer}{C-x b} +\key{zoznam všetkých bufferov}{C-x C-b} +\key{zrušiť buffer}{C-x k} -\section{Vmeny} +\section{Výmeny} -\key{prehodi {\bf znaky}}{C-t} -\key{prehodi {\bf slov}}{M-t} -\key{prehodi {\bf riadky}}{C-x C-t} -\key{prehodi {\bf symbolick vrazy}}{C-M-t} +\key{prehodiť {\bf znaky}}{C-t} +\key{prehodiť {\bf slová}}{M-t} +\key{prehodiť {\bf riadky}}{C-x C-t} +\key{prehodiť {\bf symbolické výrazy}}{C-M-t} \section{Kontrola pravopisu} -\key{kontrola pravopisu aktulneho slova}{M-\$} -\metax{kontrola pravopisu vetkch slov v oblasti}{M-x ispell-region} -\metax{kontrola pravopisu celho bufferu}{M-x ispell-buffer} +\key{kontrola pravopisu aktuálneho slova}{M-\$} +\metax{kontrola pravopisu všetkých slov v oblasti}{M-x ispell-region} +\metax{kontrola pravopisu celého bufferu}{M-x ispell-buffer} \section{Tagy} -\key{njs tag (definciu)}{M-.} -\key{njs al vskyt tagu}{C-u M-.} -\metax{zada sbor s novmi tagmi}{M-x visit-tags-table} +\key{nájsť tag (definíciu)}{M-.} +\key{nájsť ďalší výskyt tagu}{C-u M-.} +\metax{zadať súbor s novými tagmi}{M-x visit-tags-table} -\metax{vyhada reg.\ vraz v~sboroch s~tagmi}{M-x tags-search} -\metax{spusti nahradzovanie pre dotyn sbory}{M-x tags-query-replace} -\key{pokraova v~prehadvan alebo nahradzovan}{M-,} +\metax{vyhľadať reg.\ výraz v~súboroch s~tagmi}{M-x tags-search} +\metax{spustiť nahradzovanie pre dotyčné súbory}{M-x tags-query-replace} +\key{pokračovať v~prehľadávaní alebo nahradzovaní}{M-,} -\section{Prkazov interprt} +\section{Príkazový interprét} -\key{vykona shellovsk prkaz}{M-!} -\key{vykona shellovsk prkaz nad oblasou}{M-|} -\key{prefiltrova oblas shellovskm prkazom}{C-u M-|} -\key{spusti shell v okne \kbd{*shell*}}{M-x shell} +\key{vykonať shellovský príkaz}{M-!} +\key{vykonať shellovský príkaz nad oblasťou}{M-|} +\key{prefiltrovať oblasť shellovským príkazom}{C-u M-|} +\key{spustiť shell v okne \kbd{*shell*}}{M-x shell} -\section{Obdniky} +\section{Obdĺžniky} -\key{skoprova obdnik do registra}{C-x r r} -\key{zrui obdnik}{C-x r k} -\key{vhodi obdnik}{C-x r y} -\key{vloi obdnik medzier}{C-x r o} -\key{nahradi obdnik obdnikom medzier}{C-x r c} -\key{nahradi riadky obdniku zadanm reazcom}{C-x r t} +\key{skopírovať obdĺžnik do registra}{C-x r r} +\key{zrušiť obdĺžnik}{C-x r k} +\key{vhodiť obdĺžnik}{C-x r y} +\key{vložiť obdĺžnik medzier}{C-x r o} +\key{nahradiť obdĺžnik obdĺžnikom medzier}{C-x r c} +\key{nahradiť riadky obdĺžniku zadaným reťazcom}{C-x r t} \section{Skratky} -\key{prida globlnu skratku}{C-x a g} -\key{prida loklnu skratku}{C-x a l} -\key{prida globlnu expanziu pre skratku }{C-x a i g} -\key{prida loklnu expanziu pre skratku}{C-x a i l} -\key{expandova skratku}{C-x a e} +\key{pridať globálnu skratku}{C-x a g} +\key{pridať lokálnu skratku}{C-x a l} +\key{pridať globálnu expanziu pre skratku }{C-x a i g} +\key{pridať lokálnu expanziu pre skratku}{C-x a i l} +\key{expandovať skratku}{C-x a e} -\key{dynamick expanzia predchdzajceho slova}{M-/} +\key{dynamická expanzia predchádzajúceho slova}{M-/} -\section{Regulrne vrazy} +\section{Regulárne výrazy} -\key{ubovon znak okrem novho riadku}{. {\rm(teka)}} -\key{iadne alebo niekoko opakovan}{*} -\key{jedno alebo viac opakovan}{+} -\key{iadne alebo jedno opakovanie}{?} -\key{zrui zvltny vznam znaku {\it c\/} vo vraze}{\\{\it c}} -\key{alternatva (\uv{alebo})}{\\|} +\key{ľubovoľný znak okrem nového riadku}{. {\rm(tečka)}} +\key{žiadne alebo niekoľko opakovaní}{*} +\key{jedno alebo viac opakovaní}{+} +\key{žiadne alebo jedno opakovanie}{?} +\key{zrušiť zvláštny význam znaku {\it c\/} vo výraze}{\\{\it c}} +\key{alternatíva (\uv{alebo})}{\\|} \key{skupina}{\\( {\rm$\ldots$} \\)} -\key{rovnak text ako {\it n\/}-t skupina}{\\{\it n}} +\key{rovnaký text ako {\it n\/}-tá skupina}{\\{\it n}} \key{hranice slova}{\\b} \key{nie hranice slova}{\\B} \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{{\bf element}}{{\bf zaiatok}}{{\bf koniec}} +\threecol{{\bf element}}{{\bf začiatok}}{{\bf koniec}} \threecol{riadok}{^}{\$} \threecol{slovo}{\\<}{\\>} \threecol{buffer}{\\`}{\\'} -\threecol{{\bf trieda znakov}}{{\bf zodpoved}}{{\bf nezodpoved}} -\threecol{explicitn mnoina}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]} -\threecol{slovotvorn znak}{\\w}{\\W} +\threecol{{\bf trieda znakov}}{{\bf zodpovedá}}{{\bf nezodpovedá}} +\threecol{explicitná množina}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]} +\threecol{slovotvorný znak}{\\w}{\\W} \threecol{znak so syntaxou {\it c}}{\\s{\it c}}{\\S{\it c}} } -\section{Medzinrodn znakov sady} +\section{Medzinárodné znakové sady} -\metax{zada hlavn jazyk}{M-x set-language-environment} -\metax{zobrazi vetky vstupn metdy}{M-x list-input-methods} -\key{zapn alebo vypn vstupn metdu}{C-\\} -\key{zada kdovanie pre nasledujci prkaz}{C-x RET c} -\metax{zobrazi vetky kdovania}{M-x list-coding-systems} -\metax{zmeni preferovan kdovanie}{M-x prefer-coding-system} +\metax{zadať hlavný jazyk}{M-x set-language-environment} +\metax{zobraziť všetky vstupné metódy}{M-x list-input-methods} +\key{zapnúť alebo vypnúť vstupnú metódu}{C-\\} +\key{zadať kódovanie pre nasledujúci príkaz}{C-x RET c} +\metax{zobraziť všetky kódovania}{M-x list-coding-systems} +\metax{zmeniť preferované kódovanie}{M-x prefer-coding-system} \section{Info} -\key{spusti Info}{C-h i} -\key{njs zadan funkciu alebo premenn v~Info}{C-h C-i} +\key{spustiť Info}{C-h i} +\key{nájsť zadanú funkciu alebo premennú v~Info}{C-h C-i} \beginindentedkeys -Pohyb vo vntri uzlov: +Pohyb vo vnútri uzlov: \key{rolovanie vpred}{SPC} \key{rolovanie vzad}{DEL} -\key{na zaiatok uzla}{. {\rm (teka)}} +\key{na začiatok uzla}{. {\rm (tečka)}} Pohyb medzi uzlami: -\key{{\bf al} uzol}{n} -\key{{\bf predchdzajci} uzol}{p} -\key{{\bf nadraden} uzol}{u} -\key{vybra z~menu poda nzvu}{m} -\key{vybra {\it n\/}-t poloku menu (1--9)}{{\it n}} -\key{najbli nasledujci krov odkaz (nvrat \kbd{l})}{f} -\key{vrti sa do naposledy prezeranho uzlu}{l} -\key{vrti sa do adresra uzlov}{d} -\key{prejs do ktorhokovek uzlu poda mena}{g} +\key{{\bf ďalší} uzol}{n} +\key{{\bf predchádzajúci} uzol}{p} +\key{{\bf nadradený} uzol}{u} +\key{vybrať z~menu podľa názvu}{m} +\key{vybrať {\it n\/}-tú položku menu (1--9)}{{\it n}} +\key{najbližší nasledujúci krížový odkaz (návrat \kbd{l})}{f} +\key{vrátiť sa do naposledy prezeraného uzlu}{l} +\key{vrátiť sa do adresára uzlov}{d} +\key{prejsť do ktoréhokoľvek uzlu podľa mena}{g} -alie: +Ďalšie: -\key{spusti {\bf ttorial} k~Infu}{h} +\key{spustiť {\bf tútorial} k~Infu}{h} % \key{look up a subject in the indices}{i} % FIXME -\key{vyhada reazec v uzloch}{M-s} -\key{{\bf skoni} Info}{q} +\key{vyhľadať reťazec v uzloch}{M-s} +\key{{\bf skončiť} Info}{q} \endindentedkeys \section{Registre} -\key{uloi oblas do registra}{C-x r s} -\key{vloi obsah registra do buffera}{C-x r i} +\key{uložiť oblasť do registra}{C-x r s} +\key{vložiť obsah registra do buffera}{C-x r i} -\key{uloi pozciu kurzoru do registra}{C-x r SPC} -\key{skoi na pozciu uloen v~registri}{C-x r j} +\key{uložiť pozíciu kurzoru do registra}{C-x r SPC} +\key{skočiť na pozíciu uloženú v~registri}{C-x r j} -\section{Klvesov makr} +\section{Klávesové makrá} -\key{{\bf zaa} definovanie klvesovho makra}{C-x (} -\key{{\bf skoni} definovanie klvesovho makra}{C-x )} -\key{{\bf vykona} naposledy definovan makro}{C-x e} -\key{pripoji k~poslednmu klvesovmu makru}{C-u C-x (} -\metax{pomenova posledn makro}{M-x name-last-kbd-macro} -\metax{vloi do buffera lispov definciu}{M-x insert-kbd-macro} +\key{{\bf začať} definovanie klávesového makra}{C-x (} +\key{{\bf skončiť} definovanie klávesového makra}{C-x )} +\key{{\bf vykonať} naposledy definované makro}{C-x e} +\key{pripojiť k~poslednému klávesovému makru}{C-u C-x (} +\metax{pomenovať posledné makro}{M-x name-last-kbd-macro} +\metax{vložiť do buffera lispovú definíciu}{M-x insert-kbd-macro} -\section{Prkazy svisiace s~Emacs Lispom} +\section{Príkazy súvisiace s~Emacs Lispom} -\key{vyhodnoti {\bf vraz} pred kurzorom}{C-x C-e} -\key{vyhodnoti {\bf funkciu} pod kurzorom}{C-M-x} -\metax{vyhodnoti {\bf oblas}}{M-x eval-region} -\key{nata a vyhodnoti vraz v~minibufferi}{M-:} -\metax{nata sbor zo systmovho adresra}{M-x load-library} +\key{vyhodnotiť {\bf výraz} pred kurzorom}{C-x C-e} +\key{vyhodnotiť {\bf funkciu} pod kurzorom}{C-M-x} +\metax{vyhodnotiť {\bf oblasť}}{M-x eval-region} +\key{načítať a vyhodnotiť výraz v~minibufferi}{M-:} +\metax{načítať súbor zo systémového adresára}{M-x load-library} -\section{Jednoduch prispsobenia} +\section{Jednoduché prispôsobenia} -\metax{nastavi premenn a faces}{M-x customize} +\metax{nastaviť premenné a faces}{M-x customize} % The intended audience here is the person who wants to make simple % customizations and knows Lisp syntax. -Defincia veobecnej klvesovej skratky v~Emacs Lispe (prklad): +Definícia všeobecnej klávesovej skratky v~Emacs Lispe (príklad): \beginexample% (global-set-key "\\C-cg" 'goto-line) (global-set-key "\\M-\#" 'query-replace-regexp) \endexample -\section{Zpis prkazov} +\section{Zápis príkazov} \beginexample% (defun \ (\) @@ -645,7 +640,7 @@ \section{Z \) \endexample -Prklad: +Príklad: \beginexample% (defun this-line-to-top-of-window (line) @@ -657,8 +652,8 @@ \section{Z (prefix-numeric-value line)))) \endexample -pecifikcia \kbd{interactive} vrav, ako interaktvne nata ar\-gu\-men\-ty. -Viac sa dozviete po vykonan \kbd{C-h f interactive}. +Špecifikácia \kbd{interactive} vraví, ako interaktívne načítať ar\-gu\-men\-ty. +Viac sa dozviete po vykonaní \kbd{C-h f interactive}. \copyrightnotice @@ -666,6 +661,4 @@ \section{Z % Local variables: % compile-command: "csplain sk-refcard" -% coding: iso-latin-2 % End: - diff --git a/etc/refcards/sk-survival.tex b/etc/refcards/sk-survival.tex index b7e35946c92..20d85b59009 100644 --- a/etc/refcards/sk-survival.tex +++ b/etc/refcards/sk-survival.tex @@ -3,7 +3,7 @@ % Copyright (C) 2000-2014 Free Software Foundation, Inc. % Author: Wlodek Bzyl -% Czech translation: Pavel Jank , March 2001 +% Czech translation: Pavel Janík , March 2001 % Slovak translation: Miroslav Vasko , March 2001 % This file is part of GNU Emacs. @@ -55,11 +55,6 @@ % Slovak hyphenation rules applied \shyph -% Without this, pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) -% aborts with: "! UTF-8 INPUT IS CORRUPTED ! -% May be you are using another input encoding" -\input utf8off - \input emacsver.tex \def\copyrightnotice{\penalty-1\vfill @@ -67,12 +62,12 @@ Copyright \copyright\ \year\ Free Software Foundation, Inc.\break Pre GNU Emacs \versionemacs\break W{\l}odek Bzyl (matwb@univ.gda.pl)\break - Do etiny preloil Pavel Jank (Pavel@Janik.cz)\break - Do sloveniny preloil Miroslav Vako (vasko@debian.cz) + Do češtiny preložil Pavel Janík (Pavel@Janik.cz)\break + Do slovenčiny preložil Miroslav Vaško (vasko@debian.cz) - Kpie tohto dokumentu mete vytvra a ri - za predpokladu, e bud obsahova tto poznmku - o autorskch prvach.\par}} + Kópie tohto dokumentu môžete vytvárať a šíriť + za predpokladu, že budú obsahovať túto poznámku + o autorských právach.\par}} \hsize 3.2in \vsize 7.95in @@ -175,244 +170,244 @@ %**end of header -\title{Karta\ \ pre\ \ preitie\ \ s\ \ GNU\ \ Emacsom}{pre verziu \versionemacs} +\title{Karta\ \ pre\ \ prežitie\ \ s\ \ GNU\ \ Emacsom}{pre verziu \versionemacs} -V~nasledujcom texte \kbd{C-z} znamen: stlate klvesu {\it Ctrl}, drte ju -a sasne stlate klvesu `\kbd{z}'. \kbd{M-z} znamen, e -sasne s klvesou {\it Meta\/} stlate klvesu `\kbd{z}' ({\it Meta\/} je -vinou oznaen ako {\it Alt\/}) alebo mete poui stlaenie -klvesy {\it Esc\/} a potom `\kbd{z}'. +V~nasledujúcom texte \kbd{C-z} znamená: stlačte klávesu {\it Ctrl}, držte ju +a súčasne stlačte klávesu `\kbd{z}'. \kbd{M-z} znamená, že +súčasne s klávesou {\it Meta\/} stlačíte klávesu `\kbd{z}' ({\it Meta\/} je +väčšinou označená ako {\it Alt\/}) alebo môžete použiť stlačenie +klávesy {\it Esc\/} a potom `\kbd{z}'. \section{Spustenie Emacsu} -Pre spustenie GNU Emacsu jednoducho napte jeho meno: \kbd{emacs}. -Emacs rozdeuje rmec na niekoko ast: +Pre spustenie GNU Emacsu jednoducho napíšte jeho meno: \kbd{emacs}. +Emacs rozdeľuje rámec na niekoľko častí: riadok menu, - buffer s editovanm textom, - tzv. mode line popisujca buffer nad ou + buffer s editovaným textom, + tzv. mode line popisujúca buffer nad ňou a minibuffer v poslednom riadku. \askip -\key{C-x C-c} ukonenie Emacsu -\key{C-x C-f} editovanie sboru; tento prkaz vyuva minibuffer na pretanie - mena sboru; tento prkaz pouite aj vtedy, ak chcete - vytvori nov sbor zadanho mena -\key{C-x C-s} uloi sbor -\key{C-x k} zatvori buffer -\key{C-g} vo vine situci: zastavenie prve vykonvanej innosti, - zruenie zadvania prkazu a~pod. -\key{C-x u} obnovi +\key{C-x C-c} ukončenie Emacsu +\key{C-x C-f} editovanie súboru; tento príkaz využíva minibuffer na prečítanie + mena súboru; tento príkaz použite aj vtedy, ak chcete + vytvoriť nový súbor zadaného mena +\key{C-x C-s} uložiť súbor +\key{C-x k} zatvoriť buffer +\key{C-g} vo väčšine situácií: zastavenie práve vykonávanej činnosti, + zrušenie zadávania príkazu a~pod. +\key{C-x u} obnoviť \section{Pohyb} -\key{C-l} presun aktulneho riadku do stredu okna -\key{C-x b} prepnutie do inho bufferu -\key{M-<} presun na zaiatok bufferu +\key{C-l} presun aktuálneho riadku do stredu okna +\key{C-x b} prepnutie do iného bufferu +\key{M-<} presun na začiatok bufferu \key{M->} presun na koniec bufferu -\key{M-x goto-line} presun na riadok zadanho sla +\key{M-x goto-line} presun na riadok zadaného čísla \section{Viac okien} -\key{C-x 0} odstrnenie aktulneho okna -\key{C-x 1} aktulne okno sa stane jedinm oknom -\key{C-x 2} rozdelenie okna horizontlne -\key{C-x 3} rozdelenie okna vertiklne -\key{C-x o} presun do inho okna +\key{C-x 0} odstránenie aktuálneho okna +\key{C-x 1} aktuálne okno sa stane jediným oknom +\key{C-x 2} rozdelenie okna horizontálne +\key{C-x 3} rozdelenie okna vertikálne +\key{C-x o} presun do iného okna -\section{Reginy} +\section{Regióny} -Emacs definuje `regin' ako priestor medzi {\it znakou\/} a -{\it bodom}. Znaka je nastaven pomocou \kbd{C-{\it space}}. -Bod je v mieste aktulnej pozcie kurzoru. +Emacs definuje `región' ako priestor medzi {\it značkou\/} a +{\it bodom}. Značka je nastavená pomocou \kbd{C-{\it space}}. +Bod je v mieste aktuálnej pozície kurzoru. \askip -\key{M-h} ozna cel odstavec -\key{C-x h} ozna cel buffer +\key{M-h} označ celý odstavec +\key{C-x h} označ celý buffer -\section{Vystrihnutie a koprovanie} +\section{Vystrihnutie a kopírovanie} -\key{C-w} vystrihni regin -\key{M-w} skopruj regin do kill-ringu +\key{C-w} vystrihni región +\key{M-w} skopíruj región do kill-ringu \key{C-k} vystrihni text od kurzora do konca riadku \key{M-DEL} vystrihni slovo -\key{C-y} vlo sp posledn vystrihnut text (kombincia klves \kbd{C-w C-y} - me by pouit pre presuny textov) -\key{M-y} nahra naposledy vloen text predchdzajcim vystrihnutm textom +\key{C-y} vlož späť posledný vystrihnutý text (kombinácia kláves \kbd{C-w C-y} + môže byť použitá pre presuny textov) +\key{M-y} nahraď naposledy vložený text predchádzajúcim vystrihnutým textom -\section{Vyhadvanie} +\section{Vyhľadávanie} -\key{C-s} hadaj reazec -\key{C-r} hadaj reazec smerom vzad -\key{RET} ukoni hadanie -\key{M-C-s} hadaj regulrny vraz -\key{M-C-r} hadaj regulrny vraz smerom vzad +\key{C-s} hľadaj reťazec +\key{C-r} hľadaj reťazec smerom vzad +\key{RET} ukonči hľadanie +\key{M-C-s} hľadaj regulárny výraz +\key{M-C-r} hľadaj regulárny výraz smerom vzad \askip -Kombinciu \kbd{C-s} alebo \kbd{C-r} mete poui aj na opakovan hadanie -tm istm smerom. +Kombináciu \kbd{C-s} alebo \kbd{C-r} môžete použiť aj na opakované hľadanie +tým istým smerom. -\section{Znaky (tags)} +\section{Značky (tags)} -Tabuky znaiek (tags) zaznamenvaj polohu funkci a procedr, globlnych -premennch, dtovch typov a inch. Pre vytvorenie tabuky znaiek spustite -prkaz `{\tt etags} {\it vstupn\_sbory}' v prkazovom interprtereri. +Tabuľky značiek (tags) zaznamenávajú polohu funkcií a procedúr, globálnych +premenných, dátových typov a iných. Pre vytvorenie tabuľky značiek spustite +príkaz `{\tt etags} {\it vstupné\_súbory}' v príkazovom interprétereri. \askip -\key{M-.} njdi defincu -\key{C-u M-.} njdi al vskyt defincie -\key{M-*} cho tam, odkia bola volan posledn \kbd{M-.} -\mkey{M-x tags-query-replace} spusti query-replace na vetkch sboroch -zaznamenanch v tabuke znaiek. -\key{M-,} pokrauj v poslednom hadan znaky alebo query-replace +\key{M-.} nájdi definícu +\key{C-u M-.} nájdi ďalší výskyt definície +\key{M-*} choď tam, odkiaľ bola volaná posledná \kbd{M-.} +\mkey{M-x tags-query-replace} spusti query-replace na všetkých súboroch +zaznamenaných v tabuľke značiek. +\key{M-,} pokračuj v poslednom hľadaní značky alebo query-replace \section{Preklady} -\key{M-x compile} prelo kd v aktvnom okne -\key{C-c C-c} cho na posledn chybu prekladaa, v okne prekladu -\key{C-x `} v okne so zdrojovm textom +\key{M-x compile} prelož kód v aktívnom okne +\key{C-c C-c} choď na poslednú chybu prekladača, v okne prekladu +\key{C-x `} v okne so zdrojovým textom -\section{Dired, editor adresrov} +\section{Dired, editor adresárov} \key{C-x d} spusti Dired -\key{d} ozna tento sbor na zmazanie -\key{\~{}} ozna vetky zlohy na zmazanie -\key{u} odstr vetky znaky na zmazanie -\key{x} zma sbory oznaen na zmazanie -\key{C} kopruj sbor +\key{d} označ tento súbor na zmazanie +\key{\~{}} označ všetky zálohy na zmazanie +\key{u} odstráň všetky značky na zmazanie +\key{x} zmaž súbory označené na zmazanie +\key{C} kopíruj súbor \key{g} obnov buffer Diredu -\key{f} otvor sbor v aktulnom riadku -\key{s} prepni medzi triedenm poda abecedy a dtumu/asu +\key{f} otvorí súbor v aktuálnom riadku +\key{s} prepni medzi triedením podľa abecedy a dátumu/času -\section{tanie a posielanie poty} +\section{Čítanie a posielanie pošty} -\key{M-x rmail} zani ta potu -\key{q} skoni tanie poty -\key{h} uk hlaviky -\key{d} ozna aktulnu sprvu na zmazanie -\key{x} zma vetky sprvy oznaen na zmazanie +\key{M-x rmail} začni čítať poštu +\key{q} skonči čítanie pošty +\key{h} ukáž hlavičky +\key{d} označ aktuálnu správu na zmazanie +\key{x} zmaž všetky správy označené na zmazanie -\key{C-x m} nov sprva -\key{C-c C-c} poli sprvu a prepni sa do inho bufferu -\key{C-c C-f C-c} presu sa na hlaviku `CC', a ak neexistuje, tak ju +\key{C-x m} nová správa +\key{C-c C-c} pošli správu a prepni sa do iného bufferu +\key{C-c C-f C-c} presuň sa na hlavičku `CC', a ak neexistuje, tak ju vytvor -\section{Rzne} +\section{Rôzne} \key{M-q} zarovnaj odstavec -\key{M-/} dopl dynamicky predchdzajce slovo -\key{C-z} ikonizuj (preru) Emacs -\mkey{M-x revert-buffer} nahra text editovanho sboru tm istm sborom z~disku +\key{M-/} doplň dynamicky predchádzajúce slovo +\key{C-z} ikonizuj (preruš) Emacs +\mkey{M-x revert-buffer} nahraď text editovaného súboru tým istým súborom z~disku \section{Nahradzovanie} -\key{M-\%} interaktvne hadaj a nahradzuj -\key{M-C-\%} s pouitm regulrnych vrazov +\key{M-\%} interaktívne hľadaj a nahradzuj +\key{M-C-\%} s použitím regulárnych výrazov \askip -Mon odpovede v mde hadania s +Možné odpovede v móde hľadania sú \askip -\key{SPC} nahra tento vskyt; cho na al -\key{,} nahra tento vskyt a skoni -\key{DEL} tento vskyt nenahradzuj a cho alej -\key{!} nahra vetky alie vskyty -\key{\^{}} sp na predchdzajci vskyt -\key{RET} skoni query-replace -\key{C-r} zani rekurzvne editovanie (\kbd{M-C-c} ho skon) +\key{SPC} nahraď tento výskyt; choď na ďalší +\key{,} nahraď tento výskyt a skonči +\key{DEL} tento výskyt nenahradzuj a choď ďalej +\key{!} nahraď všetky ďalšie výskyty +\key{\^{}} späť na predchádzajúci výskyt +\key{RET} skonči query-replace +\key{C-r} začni rekurzívne editovanie (\kbd{M-C-c} ho skončí) -\section{Regulrne vrazy} +\section{Regulárne výrazy} -\key{. {\rm(teka)}} ubovon znak okrem znaku novho riadku -\key{*} iadne alebo viac opakovan -\key{+} jedno alebo viac opakovan -\key{?} iadne alebo jedno opakovanie -\key{[$\ldots$]} oznauje triedu znakov +\key{. {\rm(tečka)}} ľubovoľný znak okrem znaku nového riadku +\key{*} žiadne alebo viac opakovaní +\key{+} jedno alebo viac opakovaní +\key{?} žiadne alebo jedno opakovanie +\key{[$\ldots$]} označuje triedu znakov \key{[\^{}$\ldots$]} neguje triedu znakov -\key{\\{\it c}} uvedenie znaku, ktor by mal inak pecilny vznam -v~regulrnom vraze +\key{\\{\it c}} uvedenie znaku, ktorý by mal inak špeciálny význam +v~regulárnom výraze -\key{$\ldots$\\|$\ldots$\\|$\ldots$} vyhovuje jednej z alternatv (\uv{alebo}) -\key{\\( $\ldots$ \\)} zoskupenie niekokch vzorkov do jednho -\key{\\{\it n}} to ist ako {\it n\/}-t skupina +\key{$\ldots$\\|$\ldots$\\|$\ldots$} vyhovuje jednej z alternatív (\uv{alebo}) +\key{\\( $\ldots$ \\)} zoskupenie niekoľkých vzorkov do jedného +\key{\\{\it n}} to isté ako {\it n\/}-tá skupina -\key{\^{}} vyhovuje na zaiatku riadku +\key{\^{}} vyhovuje na začiatku riadku \key{\$} vyhovuje na konci riadku -\key{\\w} vyhovuje znaku, ktor me by sasou slova -\key{\\W} vyhovuje znaku, ktor neme by sasou slova -\key{\\<} vyhovuje na zaiatku slova +\key{\\w} vyhovuje znaku, ktorý môže byť súčasťou slova +\key{\\W} vyhovuje znaku, ktorý nemôže byť súčasťou slova +\key{\\<} vyhovuje na začiatku slova \key{\\>} vyhovuje na konci slova -\key{\\b} vyhovuje medzislovnm medzerm -\key{\\B} vyhovuje medzerm, ktor nie s medzislovn +\key{\\b} vyhovuje medzislovným medzerám +\key{\\B} vyhovuje medzerám, ktoré nie sú medzislovné \section{Registre} -\key{C-x r s} ulo regin do registra -\key{C-x r i} vlo obsah registra do bufferu +\key{C-x r s} ulož región do registra +\key{C-x r i} vlož obsah registra do bufferu -\key{C-x r SPC} ulo aktulnu pozciu kurzora do registra -\key{C-x r j} sko na pozciu kurzoru uloen v registri +\key{C-x r SPC} ulož aktuálnu pozíciu kurzora do registra +\key{C-x r j} skoč na pozíciu kurzoru uloženú v registri -\section{Obdniky} +\section{Obdĺžniky} -\key{C-x r r} skopruj obdnik do registra -\key{C-x r k} vystrihni obdnik -\key{C-x r y} vlo obdnik -\key{C-x r t} uvedenie kadho riadku reazcom +\key{C-x r r} skopíruj obdĺžnik do registra +\key{C-x r k} vystrihni obdĺžnik +\key{C-x r y} vlož obdĺžnik +\key{C-x r t} uvedenie každého riadku reťazcom -\key{C-x r o} otvor obdnik, posu text vpravo -\key{C-x r c} vyprzdni obdnik +\key{C-x r o} otvor obdĺžnik, posuň text vpravo +\key{C-x r c} vyprázdni obdĺžnik -\section{Prkazov interprter} +\section{Príkazový interpréter} -\key{M-x shell} spusti prkazov interprter v Emacsu -\key{M-!} spusti prkaz prkazovho interprtera -\key{M-|} spusti prkaz prkazovho interprtera na regine -\key{C-u M-|} filtruj regin cez prkaz prkazovho interprtera +\key{M-x shell} spusti príkazový interpréter v Emacsu +\key{M-!} spusti príkaz príkazového interprétera +\key{M-|} spusti príkaz príkazového interprétera na regióne +\key{C-u M-|} filtruj región cez príkaz príkazového interprétera \section{Kontrola pravopisu} \key{M-\$} skontroluj pravopis slova pod kurzorom -\mkey{M-x ispell-region} skontroluj pravopis vetkch slov v regine +\mkey{M-x ispell-region} skontroluj pravopis všetkých slov v regióne \mkey{M-x ispell-buffer} skontroluj pravopis v bufferi -\section{Mezinrodn znakov sady} +\section{Mezinárodné znakové sady} -\key{C-x RET C-\\} zvo a aktivuj vstupn metdu pre aktulny buffer -\key{C-\\} aktivuj alebo deaktivuj vstupn metdu -\mkey{M-x list-input-methods} zobraz zoznam vetkch vstupnch metd -\mkey{M-x set-language-environment} pecifikuj hlavn jazyk +\key{C-x RET C-\\} zvoľ a aktivuj vstupnú metódu pre aktuálny buffer +\key{C-\\} aktivuj alebo deaktivuj vstupnú metódu +\mkey{M-x list-input-methods} zobraz zoznam všetkých vstupných metód +\mkey{M-x set-language-environment} špecifikuj hlavný jazyk -\key{C-x RET c} nastav kdovac systm pre nasledujci prkaz -\mkey{M-x find-file-literally} edituj sbor bez akchkovek konverzi +\key{C-x RET c} nastav kódovací systém pre nasledujúci príkaz +\mkey{M-x find-file-literally} edituj súbor bez akýchkoľvek konverzií -\mkey{M-x list-coding-systems} uk vetky kdovacie systmy -\mkey{M-x prefer-coding-system} zvo preferovan kdovac systm +\mkey{M-x list-coding-systems} ukáž všetky kódovacie systémy +\mkey{M-x prefer-coding-system} zvoľ preferovaný kódovací systém -\section{Klvesov makr} +\section{Klávesové makrá} -\key{C-x (} zani definciu klvesovho makra -\key{C-x )} ukoni definciu klvesovho makra -\key{C-x e} spusti naposledy definovan klvesov makro -\key{C-u C-x (} pridaj do naposledy definovanho klvesovho makra -\mkey{M-x name-last-kbd-macro} pomenuj naposledy definovan makro +\key{C-x (} začni definíciu klávesového makra +\key{C-x )} ukonči definíciu klávesového makra +\key{C-x e} spusti naposledy definované klávesové makro +\key{C-u C-x (} pridaj do naposledy definovaného klávesového makra +\mkey{M-x name-last-kbd-macro} pomenuj naposledy definované makro -\section{Jednoduch nastavenie} +\section{Jednoduché nastavenie} -\key{M-x customize} jednoduch nastavenie +\key{M-x customize} jednoduché nastavenie -\section{Npoveda} +\section{Nápoveda} -Emacs dopa prkazy. Ak stlate \kbd{M-x} {\it tab\/} alebo {\it -space\/}, dostanete zoznam prkazov Emacsu. +Emacs dopĺňa príkazy. Ak stlačíte \kbd{M-x} {\it tab\/} alebo {\it +space\/}, dostanete zoznam príkazov Emacsu. \askip -\key{C-h} npoveda Emacsu -\key{C-h t} spust ttorial Emacsu -\key{C-h i} spust Info, prezera dokumentcie -\key{C-h a} uke prkazy vyhovujce zadanmu reazcu (apropos) -\key{C-h k} zobraz dokumentciu funkcie spustenej pomocou zadanej klvesy +\key{C-h} nápoveda Emacsu +\key{C-h t} spustí tútorial Emacsu +\key{C-h i} spustí Info, prezerač dokumentácie +\key{C-h a} ukáže príkazy vyhovujúce zadanému reťazcu (apropos) +\key{C-h k} zobrazí dokumentáciu funkcie spustenej pomocou zadanej klávesy \askip -Emacs pracuje v rznych {\it mdoch}, ktor upravuj chovanie -Emacsu pre editovan text danho typu. Mode line obsahuje men aktulnych -mdov v ztvorkch. +Emacs pracuje v rôznych {\it módoch}, ktoré upravujú chovanie +Emacsu pre editovaný text daného typu. Mode line obsahuje mená aktuálnych +módov v zátvorkách. \askip -\key{C-h m} zobraz dokumentciu aktulnych mdov. +\key{C-h m} zobraz dokumentáciu aktuálnych módov. \copyrightnotice @@ -420,5 +415,4 @@ \section{N % Local variables: % compile-command: "csplain sk-survival" -% coding: iso-latin-2 % End: diff --git a/etc/srecode/doc-cpp.srt b/etc/srecode/doc-cpp.srt index 520f3f7d8c6..60f0947082e 100644 --- a/etc/srecode/doc-cpp.srt +++ b/etc/srecode/doc-cpp.srt @@ -19,7 +19,7 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . -set mode "c++-mode" +set mode "c-mode" set application "document" context declaration diff --git a/etc/themes/leuven-theme.el b/etc/themes/leuven-theme.el index 7285398e6c9..40304c899b6 100644 --- a/etc/themes/leuven-theme.el +++ b/etc/themes/leuven-theme.el @@ -4,7 +4,7 @@ ;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")> ;; URL: https://github.com/fniessen/emacs-leuven-theme -;; Version: 20140113.1205 +;; Version: 20140929.1232 ;; Keywords: color theme ;; This file is part of GNU Emacs. @@ -24,7 +24,7 @@ ;;; Commentary: -;; This Org-enhancing color theme "leuven" ROCKS! +;; This elegant Org-enhancing color theme "leuven" ROCKS! ;; ... and not just for Org mode. ;; ;; To use it, put the following in your Emacs configuration file: @@ -46,18 +46,26 @@ Semantic, and Ansi-Color faces are included -- and much more...") (cancel '(:slant italic :strike-through t :foreground "gray55")) (clock-line '(:box (:line-width 1 :color "#335EA8") :foreground "black" :background "#EEC900")) (code-block '(:foreground "#000088" :background "#FFFFE0")) - (code-inline '(:foreground "#007300" :background "#EBF5EB")) + (code-inline '(:foreground "#006400" :background "#FDFFF7")) (column '(:height 1.0 :weight normal :slant normal :underline nil :strike-through nil :foreground "#E6AD4F" :background "#FFF2DE")) (diff-added '(:foreground "#008000" :background "#DDFFDD")) + (diff-changed '(:foreground "#0000FF" :background "#DDDDFF")) + (diff-header '(:foreground "#800000" :background "#FFFFAF")) (diff-hunk-header '(:foreground "#990099" :background "#FFEEFF")) (diff-none '(:foreground "gray33")) (diff-removed '(:foreground "#A60000" :background "#FFDDDD")) (directory '(:weight bold :foreground "blue" :background "#FFFFD2")) - (highlight-line '(:background "#FEFCAE")) ; #F5F5F5 or #CCDEED - (link '(:underline t :foreground "#006DAF")) - (mail-header-name '(:weight bold :foreground "black")) + (highlight-line '(:background "#FFFFD7")) ; #F5F5F5 + (highlight-line-gnus '(:background "#DAEAFC")) ; defined in `gnus-leuven.el' + (link '(:weight normal :underline t :foreground "#006DAF")) + (mail-header-name '(:family "Sans Serif" :weight normal :foreground "#A3A3A2")) + (mail-header-other '(:family "Sans Serif" :slant normal :foreground "#666666")) + (mail-read '(:weight normal :foreground "#86878B")) + (mail-ticked '(:weight bold :background "#FBE6EF")) + (mail-to '(:family "Sans Serif" :underline nil :foreground "#006DAF")) + (mail-unread '(:weight bold :foreground "black")) (marked-line '(:weight bold :foreground "white" :background "red")) - (match '(:background "#FBE448")) + (match '(:weight bold :background "#FBE448")) ; occur patterns (ol1 '(:height 1.3 :weight bold :overline "#A7A7A7" :foreground "#3C3C3C" :background "#F0F0F0")) (ol2 '(:height 1.0 :weight bold :overline "#123555" :foreground "#123555" :background "#E5F4FB")) (ol3 '(:height 1.0 :weight bold :foreground "#005522" :background "#EFFFEF")) @@ -66,12 +74,14 @@ Semantic, and Ansi-Color faces are included -- and much more...") (ol6 '(:height 1.0 :weight bold :slant italic :foreground "#0077CC")) (ol7 '(:height 1.0 :weight bold :slant italic :foreground "#2EAE2C")) (ol8 '(:height 1.0 :weight bold :slant italic :foreground "#FD8008")) - (region '(:background "#ADD6FF")) ; #CCCCCC + (paren-matched '(:background "#99CCFF")) + (paren-unmatched '(:underline "red" :foreground nil :background "#FFDCDC")) + (region '(:background "#ABDFFA")) (shadow '(:foreground "#7F7F7F")) - (string '(:foreground "#036A07")) ; #D0372D or #23238E or #20590C - (subject '(:weight bold :foreground "#CF5D60")) + (string '(:foreground "#008000")) ; or #D0372D + (subject '(:family "Sans Serif" :weight bold :foreground "black")) (symlink '(:foreground "deep sky blue")) - (volatile-highlight '(:background "#FBE448")) + (volatile-highlight '(:underline nil :background "#FFF876")) (vc-branch '(:box (:line-width 1 :color "#00CC33") :foreground "black" :background "#AAFFAA"))) (custom-theme-set-faces @@ -84,19 +94,19 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(cursor ((,class (:background "#0FB300")))) ;; Highlighting faces - `(fringe ((,class (:foreground "#F7A421" :background "#F2F2F2")))) + `(fringe ((,class (:foreground "#9B9B9B" :background "#EDEDED")))) `(highlight ((,class ,volatile-highlight))) `(region ((,class ,region))) `(secondary-selection ((,class ,match))) ; used by Org-mode for highlighting matched entries and keywords - `(isearch ((,class (:weight bold :foreground "#00AA00" :background "#99FF99")))) + `(isearch ((,class (:weight bold :underline "#FF9632" :foreground nil :background "#FDBD33")))) `(isearch-fail ((,class (:weight bold :foreground "black" :background "#FF9999")))) - `(lazy-highlight ((,class (:weight bold :foreground "#990099" :background "#FF66FF")))) - `(trailing-whitespace ((,class (:background "#F6EBFE")))) + `(lazy-highlight ((,class (:underline "#FF9632" :background "#FFFF00")))) ; isearch others + `(trailing-whitespace ((,class (:background "#FFFF57")))) `(whitespace-hspace ((,class (:foreground "#D2D2D2")))) - `(whitespace-indentation ((,class (:foreground "firebrick" :background "yellow")))) + `(whitespace-indentation ((,class (:foreground "#A1A1A1" :background "white")))) `(whitespace-line ((,class (:foreground "#CC0000" :background "#FFFF88")))) - `(whitespace-tab ((,class (:foreground "lightgray" :background "beige")))) - `(whitespace-trailing ((,class (:weight bold :foreground "yellow" :background "red1")))) + `(whitespace-tab ((,class (:foreground "#A1A1A1" :background "white")))) + `(whitespace-trailing ((,class (:foreground "#B3B3B3" :background "#FFFF57")))) ;; Mode line faces `(mode-line ((,class (:box (:line-width 1 :color "#1A2F54") :foreground "#85CEEB" :background "#335EA8")))) @@ -118,8 +128,8 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(font-lock-comment-delimiter-face ((,class (:foreground "#8D8D84")))) ; #696969 `(font-lock-comment-face ((,class (:slant italic :foreground "#8D8D84")))) ; #696969 `(font-lock-constant-face ((,class (:foreground "#D0372D")))) - `(font-lock-doc-face ((,class (:foreground "#008000")))) - `(font-lock-doc-string-face ((,class (:foreground "#008000")))) + `(font-lock-doc-face ((,class (:foreground "#036A07")))) + ;; `(font-lock-doc-string-face ((,class (:foreground "#008000")))) ; XEmacs only, but is used for HTML exports from org2html (and not interactively) `(font-lock-function-name-face ((,class (:weight normal :foreground "#006699")))) `(font-lock-keyword-face ((,class (:bold nil :foreground "#0000FF")))) ; #3654DC `(font-lock-preprocessor-face ((,class (:foreground "#808080")))) @@ -131,12 +141,13 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(font-lock-warning-face ((,class (:weight bold :foreground "red")))) ;; Button and link faces - `(link ((,class (:underline t :foreground "#8AC6F2")))) + `(link ((,class ,link))) `(link-visited ((,class (:underline t :foreground "#E5786D")))) `(button ((,class (:underline t :foreground "#006DAF")))) `(header-line ((,class (:weight bold :underline "black" :overline "black" :foreground "black" :background "#FFFF88")))) ;; Gnus faces + `(gnus-button ((,class (:weight normal)))) `(gnus-cite-attribution-face ((,class (:foreground "#5050B0")))) `(gnus-cite-face-1 ((,class (:foreground "#5050B0")))) `(gnus-cite-face-10 ((,class (:foreground "#990000")))) @@ -155,7 +166,7 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(gnus-group-mail-2 ((,class (:weight bold :foreground "#FF0066")))) `(gnus-group-mail-2-empty ((,class (:foreground "#660066")))) `(gnus-group-mail-3 ((,class (:weight bold :foreground "black")))) - `(gnus-group-mail-3-empty ((,class (:foreground "#808080")))) + `(gnus-group-mail-3-empty ((,class ,mail-read))) `(gnus-group-mail-low ((,class ,cancel))) `(gnus-group-mail-low-empty ((,class ,cancel))) `(gnus-group-news-1 ((,class (:weight bold :foreground "#FF50B0")))) @@ -170,8 +181,8 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(gnus-group-news-5-empty ((,class (:foreground "#000099")))) `(gnus-group-news-6 ((,class (:weight bold :foreground "gray50")))) `(gnus-group-news-6-empty ((,class (:foreground "#808080")))) - `(gnus-header-content ((,class (:family "Sans Serif" :foreground "#3399CC")))) - `(gnus-header-from ((,class (:family "Sans Serif" :foreground "blue")))) + `(gnus-header-content ((,class ,mail-header-other))) + `(gnus-header-from ((,class (:family "Sans Serif" :foreground "black")))) `(gnus-header-name ((,class ,mail-header-name))) `(gnus-header-newsgroups ((,class (:family "Sans Serif" :foreground "#3399CC")))) `(gnus-header-subject ((,class ,subject))) @@ -179,50 +190,51 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(gnus-picon-xbm ((,class (:foreground "yellow" :background "white")))) `(gnus-server-closed ((,class (:slant italic :foreground "blue" :background "white")))) `(gnus-server-denied ((,class (:weight bold :foreground "red" :background "white")))) - `(gnus-server-opened ((,class (:foreground "white" :background "#83B869")))) - `(gnus-signature ((,class (:slant italic :foreground "#7F7F7F")))) + `(gnus-server-opened ((,class (:family "Sans Serif" :foreground "white" :foreground "#466BD7")))) + `(gnus-signature ((,class (:slant italic :foreground "#8B8D8E")))) `(gnus-splash ((,class (:foreground "#FF8C00")))) `(gnus-summary-cancelled ((,class ,cancel))) `(gnus-summary-high-ancient ((,class (:weight normal :foreground "#808080" :background "#FFFFE6")))) - `(gnus-summary-high-read ((,class (:weight normal :foreground "#808080" :background "#FFFFE6")))) - `(gnus-summary-high-ticked ((,class (:weight normal :foreground "black" :background "#E7AEB0")))) - `(gnus-summary-high-unread ((,class (:weight normal :foreground "black" :background "#FFFFCC")))) + `(gnus-summary-high-read ((,class (:weight normal :foreground "#999999" :background "#FFFFE6")))) + `(gnus-summary-high-ticked ((,class ,mail-ticked))) + `(gnus-summary-high-unread ((,class (:weight bold :foreground "black" :background "#FFFFCC")))) `(gnus-summary-low-ancient ((,class (:slant italic :foreground "gray55")))) - `(gnus-summary-low-read ((,class (:slant italic :foreground "gray55" :background "#E0E0E0")))) - `(gnus-summary-low-ticked ((,class (:slant italic :foreground "black" :background "#E7AEB0")))) + `(gnus-summary-low-read ((,class (:slant italic :foreground "#999999" :background "#E0E0E0")))) + `(gnus-summary-low-ticked ((,class ,mail-ticked))) `(gnus-summary-low-unread ((,class (:slant italic :foreground "black")))) - `(gnus-summary-normal-ancient ((,class (:foreground "#808080")))) - `(gnus-summary-normal-read ((,class (:foreground "#808080")))) - `(gnus-summary-normal-ticked ((,class (:foreground "black" :background "#E7AEB0")))) - `(gnus-summary-normal-unread ((,class (:foreground "black")))) - `(gnus-summary-selected ((,class (:underline t :foreground "black" :background "#FFD0D0")))) + `(gnus-summary-normal-ancient ((,class ,mail-read))) + `(gnus-summary-normal-read ((,class ,mail-read))) + `(gnus-summary-normal-ticked ((,class ,mail-ticked))) + `(gnus-summary-normal-unread ((,class ,mail-unread))) + `(gnus-summary-selected ((,class (:foreground "white" :background "#008CD7")))) `(gnus-x-face ((,class (:foreground "black" :background "white")))) ;; Message faces `(message-header-name ((,class ,mail-header-name))) - `(message-header-cc ((,class (:family "Sans Serif" :foreground "blue")))) - `(message-header-other ((,class (:family "Sans Serif" :foreground "#3399CC")))) + `(message-header-cc ((,class ,mail-to))) + `(message-header-other ((,class ,mail-header-other))) `(message-header-subject ((,class ,subject))) - `(message-header-to ((,class (:family "Sans Serif" :foreground "blue")))) + `(message-header-to ((,class ,mail-to))) `(message-cited-text ((,class (:foreground "#5050B0")))) - `(message-separator ((,class (:family "Sans Serif" :weight bold :foreground "red")))) + `(message-separator ((,class (:family "Sans Serif" :weight normal :foreground "#BDC2C6")))) `(message-header-newsgroups ((,class (:family "Sans Serif" :foreground "#3399CC")))) - `(message-header-xheader ((,class (:family "Sans Serif" :foreground "#3399CC")))) + `(message-header-xheader ((,class ,mail-header-other))) `(message-mml ((,class (:foreground "forest green")))) ;; Diff `(diff-added ((,class ,diff-added))) - `(diff-changed ((,class (:foreground "blue" :background "#DDDDFF")))) + `(diff-changed ((,class ,diff-changed))) `(diff-context ((,class ,diff-none))) - `(diff-file-header ((,class (:foreground "#0000CC" :background "#EAF2F5")))) + `(diff-file-header ((,class ,diff-header))) `(diff-file1-hunk-header ((,class (:foreground "dark magenta" :background "#EAF2F5")))) `(diff-file2-hunk-header ((,class (:foreground "#2B7E2A" :background "#EAF2F5")))) - `(diff-header ((,class (:foreground "#999999" :background "#EAF2F5")))) + `(diff-function ((,class (:foreground "darkgray")))) + `(diff-header ((,class ,diff-header))) `(diff-hunk-header ((,class ,diff-hunk-header))) - `(diff-index ((,class (:foreground "#4183C4" :background "#EAF2F5")))) ; my foreground is NOT applied!? - `(diff-indicator-added ((,class (:foreground "#008000" :background "#AAFFAA")))) - `(diff-indicator-changed ((,class (:foreground "black" :background "#AAAAFF")))) - `(diff-indicator-removed ((,class (:foreground "#A60000" :background "#FFAAAA")))) + `(diff-index ((,class ,diff-header))) + `(diff-indicator-added ((,class (:background "#AAFFAA")))) + `(diff-indicator-changed ((,class (:background "#8080FF")))) + `(diff-indicator-removed ((,class (:background "#FFBBBB")))) `(diff-refine-change ((,class (:background "#DDDDFF")))) `(diff-removed ((,class ,diff-removed))) @@ -241,8 +253,11 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(ediff-odd-diff-B ((,class (:foreground "black" :background "light grey")))) ;; Flyspell +;; (when (version< emacs-version "24.XXX") `(flyspell-duplicate ((,class (:underline "#008000" :inherit nil)))) `(flyspell-incorrect ((,class (:underline "red" :inherit nil)))) +;; `(flyspell-duplicate ((,class (:underline (:style wave :color "#008000") :inherit nil)))) +;; `(flyspell-incorrect ((,class (:underline (:style wave :color "red") :inherit nil)))) ;; ;; Semantic faces ;; `(semantic-decoration-on-includes ((,class (:underline ,cham-4)))) @@ -257,13 +272,19 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(Info-title-2-face ((,class ,ol2))) `(Info-title-3-face ((,class ,ol3))) `(Info-title-4-face ((,class ,ol4))) + `(ac-completion-face ((,class (:underline nil :foreground "#C0C0C0")))) ; like Google `(ace-jump-face-foreground ((,class (:foreground "black" :background "#FBE448")))) + `(auto-dim-other-buffers-face ((,class (:background "#F7F7F7")))) `(bbdb-company ((,class (:slant italic :foreground "steel blue")))) `(bbdb-field-name ((,class (:weight bold :foreground "steel blue")))) `(bbdb-field-value ((,class (:foreground "steel blue")))) `(bbdb-name ((,class (:underline t :foreground "#FF6633")))) + `(bmkp-light-autonamed ((,class (:background "#C2DDFD")))) + `(bmkp-light-fringe-autonamed ((,class (:background "#90AFD5")))) + `(bmkp-light-fringe-non-autonamed ((,class (:background "#D5FFD5")))) + `(bmkp-light-non-autonamed ((,class (:background "#C4FFC4")))) `(browse-kill-ring-separator-face ((,class (:weight bold :foreground "slate gray")))) - `(calendar-today ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFABE")))) + `(calendar-today ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) `(cfw:face-annotation ((,class (:foreground "green" :background "red")))) `(cfw:face-day-title ((,class (:foreground "#C9C9C9")))) `(cfw:face-default-content ((,class (:foreground "#2952A3")))) @@ -277,8 +298,8 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(cfw:face-select ((,class (:foreground "#4A95EB" :background "#EDF1FA")))) `(cfw:face-sunday ((,class (:foreground "#4E4E4E" :background "white" :weight bold)))) `(cfw:face-title ((,class (:height 2.0 :foreground "#676767" :weight bold :inherit variable-pitch)))) - `(cfw:face-today ((,class (:foreground "#4F4A3D" :background "#FFFABE")))) - `(cfw:face-today-title ((,class (:foreground "#4A95EB" :background "#FFFABE")))) + `(cfw:face-today ((,class (:foreground "#4F4A3D" :background "#FFFFCC")))) + `(cfw:face-today-title ((,class (:foreground "#4A95EB" :background "#FFFFCC")))) `(cfw:face-toolbar ((,class (:background "white")))) `(cfw:face-toolbar-button-off ((,class (:foreground "#CFCFCF" :background "white")))) `(cfw:face-toolbar-button-on ((,class (:foreground "#5E5E5E" :background "#F6F6F6")))) @@ -290,8 +311,13 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(circe-originator-face ((,class (:foreground "blue")))) `(circe-prompt-face ((,class (:foreground "red")))) `(circe-server-face ((,class (:foreground "#99CAE5")))) - `(comint-highlight-input ((,class (:weight bold :foreground "#0000FF")))) - `(comint-highlight-prompt ((,class (:weight bold :foreground "black" :background "gold")))) + `(comint-highlight-input ((,class (:weight bold :foreground "#0000FF" :inherit nil)))) + ;; `(comint-highlight-prompt ((,class (:weight bold :foreground "black" :background "gold")))) + `(comint-highlight-prompt ((,class (:weight bold :foreground "#0000FF" :inherit nil)))) + `(company-preview-common ((,class (:foreground "#C0C0C0" :background "#FFFFD7")))) ; same background as highlight-line + `(company-tooltip-annotation ((,class (:foreground "#999999" :background "cornsilk")))) + `(company-tooltip-common ((,class (:weight bold :inherit company-tooltip)))) + `(company-tooltip-common-selection ((,class (:weight bold :inherit company-tooltip-selection)))) `(compare-windows ((,class (:background "#FFFF00")))) `(compilation-error ((,class (:weight bold :foreground "red")))) `(compilation-info ((,class (:weight bold :foreground "#2A489E")))) ; used for grep @@ -322,25 +348,31 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(custom-variable-button ((,class (:weight bold :underline t)))) `(custom-variable-tag ((,class (:family "Sans Serif" :height 1.2 :weight bold :foreground "blue1")))) `(custom-visibility ((,class ,link))) + `(diff-hl-change ((,class (:foreground "blue3" :inherit diff-changed)))) + `(diff-hl-delete ((,class (:foreground "red3" :inherit diff-removed)))) + `(diff-hl-dired-change ((,class (:background "#FFA335" :foreground "black" :weight bold)))) + `(diff-hl-dired-unknown ((,class (:foreground "white" :background "#3F3BB4")))) + `(diff-hl-insert ((,class (:foreground "green4" :inherit diff-added)))) + `(diff-hl-unknown ((,class (:foreground "white" :background "#3F3BB4")))) `(diary-face ((,class (:foreground "#87C9FC")))) `(dircolors-face-asm ((,class (:foreground "black")))) `(dircolors-face-backup ((,class (:foreground "black")))) `(dircolors-face-compress ((,class (:foreground "red")))) `(dircolors-face-dir ((,class ,directory))) `(dircolors-face-doc ((,class (:foreground "black")))) - `(dircolors-face-dos ((,class (:foreground "green3")))) + `(dircolors-face-dos ((,class (:foreground "ForestGreen")))) `(dircolors-face-emacs ((,class (:foreground "black")))) - `(dircolors-face-exec ((,class (:foreground "green3")))) + `(dircolors-face-exec ((,class (:foreground "ForestGreen")))) `(dircolors-face-html ((,class (:foreground "black")))) - `(dircolors-face-img ((,class (:foreground "black")))) + `(dircolors-face-img ((,class (:foreground "magenta3")))) `(dircolors-face-lang ((,class (:foreground "black")))) `(dircolors-face-lang-interface ((,class (:foreground "black")))) `(dircolors-face-make ((,class (:foreground "black")))) `(dircolors-face-objet ((,class (:foreground "black")))) - `(dircolors-face-package ((,class (:foreground "red")))) + `(dircolors-face-package ((,class (:foreground "black")))) `(dircolors-face-paddb ((,class (:foreground "black")))) `(dircolors-face-ps ((,class (:foreground "black")))) - `(dircolors-face-sound ((,class (:foreground "black")))) + `(dircolors-face-sound ((,class (:foreground "DeepSkyBlue")))) `(dircolors-face-tar ((,class (:foreground "red")))) `(dircolors-face-text ((,class (:foreground "black")))) `(dircolors-face-yacc ((,class (:foreground "black")))) @@ -355,9 +387,9 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(diredp-dir-heading ((,class ,directory))) `(diredp-dir-priv ((,class ,directory))) `(diredp-exec-priv ((,class (:background "#03C03C")))) - `(diredp-executable-tag ((,class (:foreground "green3" :background "white")))) + `(diredp-executable-tag ((,class (:foreground "ForestGreen" :background "white")))) `(diredp-file-name ((,class (:foreground "black")))) - `(diredp-file-suffix ((,class (:foreground "#008000")))) + `(diredp-file-suffix ((,class (:foreground "#C0C0C0")))) `(diredp-flag-mark-line ((,class ,marked-line))) `(diredp-ignored-file-name ((,class ,shadow))) `(diredp-read-priv ((,class (:background "#0A99FF")))) @@ -389,14 +421,18 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(helm-ff-symlink ((,class ,symlink))) `(helm-file-name ((,class (:foreground "blue")))) `(helm-gentoo-match-face ((,class (:foreground "red")))) + `(helm-grep-match ((,class ,match))) `(helm-grep-running ((,class (:weight bold :foreground "white")))) `(helm-grep-lineno ((,class ,shadow))) `(helm-isearch-match ((,class (:background "#CCFFCC")))) `(helm-match ((,class ,match))) `(helm-moccur-buffer ((,class (:foreground "#0066CC")))) - `(helm-selection ((,class ,highlight-line))) + `(helm-selection ((,class ,volatile-highlight))) `(helm-selection-line ((,class ,volatile-highlight))) `(helm-source-header ((,class (:family "Sans Serif" :height 1.3 :weight bold :foreground "white" :background "#2F69BF")))) + `(helm-swoop-target-line-face ((,class ,volatile-highlight))) + `(helm-swoop-target-line-block-face ((,class (:background "#CCCC00" :foreground "#222222")))) + `(helm-swoop-target-word-face ((,class (:weight bold :foreground nil :background "#FDBD33")))) `(helm-visible-mark ((,class ,marked-line))) `(helm-w3m-bookmarks-face ((,class (:underline t :foreground "cyan1")))) `(highlight-symbol-face ((,class (:background "#FFFFA0")))) @@ -424,7 +460,7 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(info-xref ((,class (:underline t :foreground "#006DAF")))) ; unvisited cross-references `(info-xref-visited ((,class (:underline t :foreground "magenta4")))) ; previously visited cross-references `(light-symbol-face ((,class (:background "#FFFFA0")))) - `(linum ((,class (:foreground "#AFAFAF" :background "white")))) + `(linum ((,class (:foreground "#9A9A9A" :background "#EDEDED")))) `(log-view-file ((,class (:foreground "#0000CC" :background "#EAF2F5")))) `(lui-button-face ((,class ,link))) `(lui-highlight-face ((,class (:box '(:line-width 1 :color "#CC0000") :foreground "#CC0000" :background "#FFFF88")))) ; my nickname @@ -440,7 +476,7 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(magit-item-mark ((,class ,marked-line))) `(magit-log-head-label ((,class (:box (:line-width 1 :color "blue" :style nil))))) `(magit-log-tag-label ((,class (:box (:line-width 1 :color "#00CC00" :style nil))))) - `(magit-section-title ((,class (:family "Sans Serif" :height 1.8 :weight bold :foreground "cornflower blue")))) + `(magit-section-title ((,class (:family "Sans Serif" :height 1.8 :weight bold :foreground "cornflower blue" :inherit nil)))) `(makefile-space-face ((,class (:background "hot pink")))) `(makefile-targets ((,class (:weight bold :foreground "blue")))) `(match ((,class ,match))) @@ -459,23 +495,22 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(nxml-processing-instruction-target-face ((,class (:foreground "purple1")))) `(nxml-tag-delimiter-face ((,class (:foreground "blue")))) `(nxml-tag-slash-face ((,class (:foreground "blue")))) - `(org-agenda-block-count ((,class (:weight bold :foreground "blue")))) + `(org-agenda-block-count ((,class (:weight bold :foreground "#A5A5A5")))) `(org-agenda-calendar-event ((,class (:weight bold :foreground "#3774CC" :background "#A8C5EF")))) `(org-agenda-calendar-sexp ((,class (:foreground "#777777" :background "#E4EBFE")))) - `(org-agenda-clocking ((,class ,clock-line))) + `(org-agenda-clocking ((,class (:foreground "black" :background "#EEC900")))) `(org-agenda-column-dateline ((,class ,column))) `(org-agenda-current-time ((,class (:underline t :foreground "#1662AF")))) `(org-agenda-date ((,class (:height 1.6 :weight bold :foreground "#1662AF")))) - `(org-agenda-date-today ((,class (:height 1.6 :weight bold :foreground "#4F4A3D" :background "#FFFABE")))) + `(org-agenda-date-today ((,class (:height 1.6 :weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) `(org-agenda-date-weekend ((,class (:height 1.6 :weight bold :foreground "#4E4E4E")))) `(org-agenda-diary ((,class (:weight bold :foreground "green4" :background "light blue")))) `(org-agenda-dimmed-todo-face ((,class (:foreground "gold2")))) - `(org-agenda-done ((,class (:foreground "#555555" :background "#EEEEEE")))) + `(org-agenda-done ((,class (:foreground "#555555")))) `(org-agenda-filter-category ((,class (:weight bold :foreground "orange")))) `(org-agenda-filter-tags ((,class (:weight bold :foreground "orange")))) `(org-agenda-restriction-lock ((,class (:background "#E77D63")))) - ;; `(org-agenda-structure ((,class (:height 1.6 :weight bold :box (:line-width 1 :color "#999999") :foreground "#666666" :background "#CCCCCC")))) - `(org-agenda-structure ((,class (:height 1.6 :bold nil :foreground "#999999")))) + `(org-agenda-structure ((,class (:height 1.6 :weight bold :foreground "#1F8DD6")))) `(org-archived ((,class (:foreground "gray70")))) `(org-beamer-tag ((,class (:box (:line-width 1 :color "#FABC18") :foreground "#2C2C2C" :background "#FFF8D0")))) `(org-block ((,class ,code-block))) @@ -488,7 +523,7 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(org-column ((,class ,column))) `(org-column-title ((,class ,column))) `(org-date ((,class (:underline t :foreground "#00459E")))) - `(org-default ((,class (:foreground "#333333")))) + `(org-default ((,class (:foreground "#333333" :background "#FFFFFF")))) `(org-dim ((,class (:foreground "#AAAAAA")))) `(org-document-info ((,class (:foreground "#484848")))) `(org-document-info-keyword ((,class (:foreground "#008ED1" :background "#EAEAFF")))) @@ -499,10 +534,10 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(org-example ((,class (:foreground "blue" :background "#EAFFEA")))) `(org-footnote ((,class (:underline t :foreground "#008ED1")))) `(org-formula ((,class (:foreground "chocolate1")))) - `(org-headline-done ((,class (:height 1.0 :weight normal :foreground "#999999")))) + `(org-headline-done ((,class (:height 1.0 :weight normal :strike-through t :foreground "#ADADAD")))) `(org-hide ((,class (:foreground "#E2E2E2")))) `(org-inlinetask ((,class (:box (:line-width 1 :color "#EBEBEB") :foreground "#777777" :background "#FFFFD6")))) - `(org-latex-and-related ((,class ,code-block))) + `(org-latex-and-related ((,class (:foreground "#336699" :background "white")))) `(org-level-1 ((,class ,ol1))) `(org-level-2 ((,class ,ol2))) `(org-level-3 ((,class ,ol3))) @@ -513,6 +548,7 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(org-level-8 ((,class ,ol8))) `(org-link ((,class ,link))) `(org-list-dt ((,class (:weight bold :foreground "#335EA8")))) + `(org-macro ((,class (:foreground "white" :background "#EDB802")))) `(org-meta-line ((,class (:slant normal :foreground "#008ED1" :background "#EAEAFF")))) `(org-mode-line-clock ((,class ,clock-line))) `(org-mode-line-clock-overrun ((,class (:weight bold :box (:line-width 1 :color "#335EA8") :foreground "white" :background "#FF4040")))) @@ -520,12 +556,12 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(org-property-value ((,class (:foreground "#00A000")))) `(org-quote ((,class (:slant italic :foreground "dim gray" :background "#FFFFE0")))) `(org-scheduled ((,class (:foreground "#333333")))) - `(org-scheduled-previously ((,class (:weight bold :foreground "#373737")))) - `(org-scheduled-today ((,class (:foreground "#4F4A3D" :background "#FFFABE")))) + `(org-scheduled-previously ((,class (:foreground "#F22659")))) + `(org-scheduled-today ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFFCC")))) `(org-sexp-date ((,class (:foreground "#3774CC")))) `(org-special-keyword ((,class (:weight bold :foreground "#00BB00" :background "#EAFFEA")))) `(org-table ((,class (:foreground "dark green" :background "#EAFFEA")))) - `(org-tag ((,class (:weight normal :slant italic :foreground "#9A9FA4" :background "#F3F3F3")))) + `(org-tag ((,class (:weight normal :slant italic :foreground "#9A9FA4" :background "white")))) `(org-target ((,class ,link))) `(org-time-grid ((,class (:foreground "#CFCFCF")))) `(org-todo ((,class (:weight bold :box (:line-width 1 :color "#D8ABA7") :foreground "#D8ABA7" :background "#FFE6E4")))) @@ -544,9 +580,25 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(pabbrev-debug-display-label-face ((,class (:background "chartreuse")))) `(pabbrev-suggestions-face ((,class (:weight bold :foreground "white" :background "red")))) `(pabbrev-suggestions-label-face ((,class (:weight bold :foreground "white" :background "purple")))) - `(paren-face-match ((,class (:foreground "#E2464C" :background "#FFE182")))) - `(paren-face-mismatch ((,class (:weight bold :foreground "white" :background "#FF3F3F")))) - `(paren-face-no-match ((,class (:weight bold :foreground "white" :background "#FF3F3F")))) + `(paren-face-match ((,class ,paren-matched))) + `(paren-face-mismatch ((,class ,paren-unmatched))) + `(paren-face-no-match ((,class ,paren-unmatched))) + `(persp-selected-face ((,class (:weight bold :foreground "#EEF5FE")))) + `(powerline-active1 ((,class (:background "grey22" :inherit mode-line)))) + `(powerline-active2 ((,class (:background "#4070B6" :inherit mode-line)))) + `(powerline-inactive1 ((,class (:background "#686868" :inherit mode-line-inactive)))) + `(powerline-inactive2 ((,class (:background "#A9A9A9" :inherit mode-line-inactive)))) + `(rainbow-delimiters-depth-1-face ((,class (:foreground "#707183")))) + `(rainbow-delimiters-depth-2-face ((,class (:foreground "#7388D6")))) + `(rainbow-delimiters-depth-3-face ((,class (:foreground "#909183")))) + `(rainbow-delimiters-depth-4-face ((,class (:foreground "#709870")))) + `(rainbow-delimiters-depth-5-face ((,class (:foreground "#907373")))) + `(rainbow-delimiters-depth-6-face ((,class (:foreground "#6276BA")))) + `(rainbow-delimiters-depth-7-face ((,class (:foreground "#858580")))) + `(rainbow-delimiters-depth-8-face ((,class (:foreground "#80A880")))) + `(rainbow-delimiters-depth-9-face ((,class (:foreground "#887070")))) + `(rainbow-delimiters-mismatched-face ((,class ,paren-unmatched))) + `(rainbow-delimiters-unmatched-face ((,class ,paren-unmatched))) `(recover-this-file ((,class (:weight bold :background "#FF3F3F")))) `(rng-error ((,class (:weight bold :foreground "red" :background "#FBE3E4")))) `(sh-heredoc ((,class (:foreground "blue" :background "#EEF5FE")))) @@ -556,9 +608,9 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(shell-output-2-face ((,class (:foreground "blue")))) `(shell-output-3-face ((,class (:foreground "purple")))) `(shell-output-face ((,class (:foreground "black")))) - `(shell-prompt-face ((,class (:weight bold :foreground "yellow")))) - `(show-paren-match ((,class (:foreground "#E2464C" :background "#FFFF00")))) - `(show-paren-mismatch ((,class (:weight bold :foreground "white" :background "#FF3F3F")))) + ;; `(shell-prompt-face ((,class (:weight bold :foreground "yellow")))) + `(show-paren-match ((,class ,paren-matched))) + `(show-paren-mismatch ((,class ,paren-unmatched))) `(sml-modeline-end-face ((,class (:background "#6BADF6")))) ; #335EA8 `(sml-modeline-vis-face ((,class (:background "#1979CA")))) `(speedbar-button-face ((,class (:foreground "green4")))) @@ -625,10 +677,13 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(yas/field-highlight-face ((,class (:background "DarkSeaGreen1")))) )) -(custom-theme-set-variables - 'leuven - '(ansi-color-names-vector ["#242424" "#E5786D" "#95E454" "#CAE682" - "#8AC6F2" "#333366" "#CCAA8F" "#F6F3E8"])) +(custom-theme-set-variables 'leuven + '(ansi-color-faces-vector + [default default default italic underline success warning error]) + '(ansi-color-names-vector + ["black" "red3" "ForestGreen" "yellow3" "blue" "magenta3" "DeepSkyBlue" "gray50"]) + ; colors used in Shell mode + ) ;;;###autoload (when (and (boundp 'custom-theme-load-path) diff --git a/etc/tutorials/TUTORIAL.fr b/etc/tutorials/TUTORIAL.fr index 916ec51285d..30a5c717055 100644 --- a/etc/tutorials/TUTORIAL.fr +++ b/etc/tutorials/TUTORIAL.fr @@ -698,7 +698,7 @@ inquiétez pour les modifications que vous avez faites, C-x C-c vous proposera de sauvegarder tous les fichiers modifiés avant de quitter Emacs). -Si vous utiliser un affichage graphique, vous n'avez pas besoin de +Si vous utilisez un affichage graphique, vous n'avez pas besoin de commande spéciale pour vous déplacer d'Emacs à une autre application. Vous pouvez le faire à l'aide de la souris ou avec les commandes du gestionnaire de fenêtres. Cependant, si vous utilisez un terminal @@ -1143,7 +1143,7 @@ C-x C-f à côté de find-file). >> Faites C-x 1 pour supprimer la fenêtre d'aide. C-h i Manuels en ligne (alias Info). Cette commande vous place dans - un tampon spéciale, appelé « *info* », où vous pouvez + un tampon spécial, appelé « *info* », où vous pouvez lire les manuels en ligne des paquetages installés sur votre système. Faites m emacs pour lire le manuel d'Emacs. Si vous n'avez jamais utilisé Info diff --git a/leim/.gitignore b/leim/.gitignore deleted file mode 100644 index 02175a1deb4..00000000000 --- a/leim/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.elc -leim-list.el diff --git a/leim/ChangeLog b/leim/ChangeLog index ac698f63e71..eeffc8a220c 100644 --- a/leim/ChangeLog +++ b/leim/ChangeLog @@ -1,3 +1,11 @@ +2014-12-14 Paul Eggert + + * SKK-DIC/SKK-JISYO.L: Update to version 1.1216. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-06-10 Glenn Morris Use GNU Make features to simplify and parallelize. diff --git a/leim/SKK-DIC/SKK-JISYO.L b/leim/SKK-DIC/SKK-JISYO.L index e81ccdedc71..44d86448fd4 100644 Binary files a/leim/SKK-DIC/SKK-JISYO.L and b/leim/SKK-DIC/SKK-JISYO.L differ diff --git a/leim/ja-dic/.gitignore b/leim/ja-dic/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/leim/ja-dic/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lib-src/.gitignore b/lib-src/.gitignore deleted file mode 100644 index c931a15d7b6..00000000000 --- a/lib-src/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -DOC -ctags.c -stamp_BLD -echolisp.tmp - -oo/ -oo-spd/ diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 199d46f4984..9b6c0daf210 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,48 @@ +2014-12-14 Glenn Morris + + * grep-changelog: Remove file. + * Makefile.in (INSTALLABLE_SCRIPTS): Remove. + (all, install, uninstall): Remove INSTALLABLE_SCRIPTS. + +2014-11-23 Glenn Morris + + * Makefile.in (emacsclient.res): Fix yesterday's thinko. + +2014-11-22 Glenn Morris + + * Makefile.in (emacsclient.res): Update deps for nt/emacsclient.rc + now being in the build directory, not the source directory. + + * Makefile.in (emacsclient.res): Add dependency on icons/emacs.ico. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-09-23 Paul Eggert + + movemail: don't dump core if the current time is outlandish + * movemail.c (popmail): Check for mbx_delimit_begin failure. + (mbx_delimit_begin): Fail if the current time is so outlandish + that localtime would fail or asctime would have undefined + behavior. Use strftime to avoid asctime undefined behavior. + +2014-09-01 Paul Eggert + + --enable-silent-rules now suppresses more chatter. + * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_) + (am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0) + (am__v_CCLD_1): New macros, taken from Automake. + (regex.o, etags${EXEEXT}, ctags${EXEEXT}, ebrowse${EXEEXT}) + (profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT}) + (pop.o, emacsclient${EXEEXT}, emacsclientw${EXEEXT}) + (emacsclientw${EXEEXT}, ntlib.o, hexl${EXEEXT}) + (update-game-score${EXEEXT}): Use them. + + * etags.c (emacs_strchr, emacs_strrchr): Remove. + All uses replaced by strchr and strrchr, which are on all + target platforms now. + 2014-07-15 Paul Eggert Use "b" flag more consistently; avoid "t" (Bug#18006). @@ -2972,7 +3017,7 @@ filter), show help instead of blindingly dumping every single ChangeLog available. Doc fix. Update version. -2006-11-02 Tim Van Holder (tiny change) +2006-11-02 Tim Van Holder * emacsclient.c [WINDOWSNT]: Define HAVE_INET_SOCKETS. [!WINDOWSNT]: Include if available. @@ -2997,7 +3042,7 @@ (set_tcp_socket): Prefer O_NONBLOCK, then O_NDELAY, then FIONBIO to set the socket in non-blocking mode. -2006-10-31 Tim Van Holder (tiny change) +2006-10-31 Tim Van Holder * emacsclient.c [!WINDOWSNT]: Include and . (INVALID_SOCKET): Define. @@ -7711,7 +7756,7 @@ (consider_token): DEFUNs now treated like funcs in ctags mode. * etags.c (LEVEL_OK_FOR_FUNCDEF): Remove. - (C_entries): Optimized the test that used LEVEL_OK_FOR_FUNCDEF. + (C_entries): Optimize the test that used LEVEL_OK_FOR_FUNCDEF. (C_entries): Remove a piece of useless code. (C_entries): Making typedef tags is delayed until a semicolon is met. This handles "typedef int X, Y, Z;" correctly. @@ -8111,7 +8156,7 @@ * Makefile.in (prefix, bindir, libdir, srcdir): New variables, as described in the top-level Makefile. (UTILITIES): Add make-path to the list of utility programs. - (../arch-lib): Replaced by the ${archlibdir} target, which places + (../arch-lib): Replace by the ${archlibdir} target, which places the executables in their permanent home. (install, install.sysv, install.xenix): Consolidated into one target which should work under all circumstances, modulo a few diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index 7eb13f667ec..cae0898a2c4 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -45,6 +45,19 @@ UPDATE_MANIFEST = @UPDATE_MANIFEST@ # Program name transformation. TRANSFORM = @program_transform_name@ +# 'make' verbosity. +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ + +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = + +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = + # ==================== Where To Install Things ==================== # Location to install Emacs.app under GNUstep / Mac OS X. @@ -124,8 +137,6 @@ CLIENTW = @CLIENTW@ INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) \ ebrowse${EXEEXT} -INSTALLABLE_SCRIPTS = grep-changelog - # Things that Emacs runs internally, or during the build process, # which should not be installed in bindir. UTILITIES = profile${EXEEXT} movemail${EXEEXT} hexl${EXEEXT} \ @@ -202,7 +213,7 @@ CPP_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${CPPFLAGS} ${CFLAGS} # Configuration files for .o files to depend on. config_h = ../src/config.h $(srcdir)/../src/conf_post.h -all: ${EXE_FILES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS} +all: ${EXE_FILES} ${SCRIPTS} .PHONY: all need-blessmail maybe-blessmail @@ -268,17 +279,11 @@ install: $(DESTDIR)${archlibdir} for file in ${INSTALLABLES} ; do \ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} "$(DESTDIR)${bindir}"/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ done - for file in ${INSTALLABLE_SCRIPTS} ; do \ - $(INSTALL_SCRIPT) ${srcdir}/$${file} "$(DESTDIR)${bindir}"/`echo $${file} | sed '$(TRANSFORM)'` ; \ - done uninstall: for file in ${INSTALLABLES}; do \ rm -f "$(DESTDIR)${bindir}"/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ done - for file in ${INSTALLABLE_SCRIPTS}; do \ - rm -f "$(DESTDIR)${bindir}"/`echo $${file} | sed '$(TRANSFORM)'` ; \ - done if [ -d "$(DESTDIR)${archlibdir}" ]; then \ (cd "$(DESTDIR)${archlibdir}" && rm -f ${UTILITIES} ${SCRIPTS}) \ fi @@ -311,7 +316,7 @@ TAGS: etags${EXEEXT} $(MAKE) -C ../lib libgnu.a regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h $(config_h) - ${CC} -c ${CPP_CFLAGS} $< + $(AM_V_CC)$(CC) -c $(CPP_CFLAGS) $< etags_deps = ${srcdir}/etags.c regex.o $(NTLIB) $(config_h) @@ -319,41 +324,41 @@ etags_cflags = -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" -o $@ etags_libs = regex.o $(LOADLIBES) $(NTLIB) etags${EXEEXT}: ${etags_deps} - $(CC) ${ALL_CFLAGS} $(etags_cflags) $< $(etags_libs) + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $(etags_cflags) $< $(etags_libs) ## ctags.c is distinct from etags.c so that parallel makes do not write two ## etags.o files on top of each other. ## FIXME? ## Can't we use a wrapper that calls 'etags --ctags'? ctags${EXEEXT}: ${srcdir}/ctags.c ${etags_deps} - $(CC) ${ALL_CFLAGS} $(etags_cflags) $< $(etags_libs) + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $(etags_cflags) $< $(etags_libs) ebrowse${EXEEXT}: ${srcdir}/ebrowse.c ${srcdir}/../lib/min-max.h $(NTLIB) \ $(config_h) - $(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" \ + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" \ $< $(LOADLIBES) $(NTLIB) -o $@ profile${EXEEXT}: ${srcdir}/profile.c $(NTLIB) $(config_h) - $(CC) ${ALL_CFLAGS} $< \ + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $< \ $(LOADLIBES) $(NTLIB) $(LIB_CLOCK_GETTIME) -o $@ make-docfile${EXEEXT}: ${srcdir}/make-docfile.c $(NTLIB) $(config_h) - $(CC) ${ALL_CFLAGS} $< $(LOADLIBES) $(NTLIB) -o $@ + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $< $(LOADLIBES) $(NTLIB) -o $@ movemail${EXEEXT}: ${srcdir}/movemail.c pop.o $(NTLIB) $(config_h) - $(CC) ${ALL_CFLAGS} ${MOVE_FLAGS} $< pop.o \ + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} ${MOVE_FLAGS} $< pop.o \ $(LOADLIBES) $(NTLIB) $(LIBS_MOVE) -o $@ pop.o: ${srcdir}/pop.c ${srcdir}/pop.h ${srcdir}/../lib/min-max.h $(config_h) - $(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} $< + $(AM_V_CC)$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} $< emacsclient${EXEEXT}: ${srcdir}/emacsclient.c $(NTLIB) $(config_h) - $(CC) ${ALL_CFLAGS} $< \ + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $< \ -DVERSION="\"${version}\"" $(NTLIB) $(LOADLIBES) $(LIB_FDATASYNC) \ $(LIB_WSOCK32) $(LIBS_ECLIENT) -o $@ emacsclientw${EXEEXT}: ${srcdir}/emacsclient.c $(NTLIB) $(CLIENTRES) $(config_h) - $(CC) ${ALL_CFLAGS} $(CLIENTRES) -mwindows $< \ + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $(CLIENTRES) -mwindows $< \ -DVERSION="\"${version}\"" $(LOADLIBES) $(LIB_FDATASYNC) \ $(LIB_WSOCK32) $(LIBS_ECLIENT) -o $@ @@ -365,16 +370,17 @@ NTDEPS = $(NTINC)/ms-w32.h $(NTINC)/sys/stat.h $(NTINC)/inttypes.h \ # The dependency on $(NTDEPS) is a trick intended to cause recompile of # programs on MinGW whenever some private header in nt/inc is modified. ntlib.o: ${srcdir}/ntlib.c ${srcdir}/ntlib.h $(NTDEPS) - $(CC) -c ${CPP_CFLAGS} $< + $(AM_V_CC)$(CC) -c ${CPP_CFLAGS} $< hexl${EXEEXT}: ${srcdir}/hexl.c $(NTLIB) $(config_h) - $(CC) ${ALL_CFLAGS} $< $(LOADLIBES) -o $@ + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $< $(LOADLIBES) -o $@ update-game-score${EXEEXT}: ${srcdir}/update-game-score.c $(NTLIB) $(config_h) - $(CC) ${ALL_CFLAGS} -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \ + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} \ + -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \ $< $(LOADLIBES) $(NTLIB) -o $@ -emacsclient.res: $(NTINC)/../emacsclient.rc +emacsclient.res: ../nt/emacsclient.rc $(NTINC)/../icons/emacs.ico $(WINDRES) -O coff --include-dir=$(NTINC)/.. -o $@ $< ## Makefile ends here. diff --git a/lib-src/etags.c b/lib-src/etags.c index ae5491a8204..6639ac4f235 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -314,7 +314,7 @@ static long readline_internal (linebuffer *, FILE *); static bool nocase_tail (const char *); static void get_tag (char *, char **); -static void analyse_regex (char *); +static void analyze_regex (char *); static void free_regexps (void); static void regex_tag_multiline (void); static void error (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2); @@ -339,8 +339,6 @@ static char *skip_non_spaces (char *); static char *skip_name (char *); static char *savenstr (const char *, int); static char *savestr (const char *); -static char *etags_strchr (const char *, int); -static char *etags_strrchr (const char *, int); static char *etags_getcwd (void); static char *relative_filename (char *, char *); static char *absolute_filename (char *, char *); @@ -1209,7 +1207,7 @@ main (int argc, char **argv) lang = argbuffer[i].lang; break; case at_regexp: - analyse_regex (argbuffer[i].what); + analyze_regex (argbuffer[i].what); break; case at_filename: this_file = argbuffer[i].what; @@ -1334,8 +1332,8 @@ get_compressor_from_suffix (char *file, char **extptr) /* File has been processed by canonicalize_filename, so we don't need to consider backslashes on DOS_NT. */ - slash = etags_strrchr (file, '/'); - suffix = etags_strrchr (file, '.'); + slash = strrchr (file, '/'); + suffix = strrchr (file, '.'); if (suffix == NULL || suffix < slash) return NULL; if (extptr != NULL) @@ -1422,7 +1420,7 @@ get_language_from_filename (char *file, int case_sensitive) return lang; /* If not found, try suffix after last dot. */ - suffix = etags_strrchr (file, '.'); + suffix = strrchr (file, '.'); if (suffix == NULL) return NULL; suffix += 1; @@ -1699,7 +1697,7 @@ find_entries (FILE *inf) /* Set lp to point at the first char after the last slash in the line or, if no slashes, at the first nonblank. Then set cp to the first successive blank and terminate the string. */ - lp = etags_strrchr (lb.buffer+2, '/'); + lp = strrchr (lb.buffer+2, '/'); if (lp != NULL) lp += 1; else @@ -1884,9 +1882,9 @@ pfnote (char *name, bool is_func, char *linestart, int linelen, int lno, /* If ctags mode, change name "main" to M. */ if (CTAGS && !cxref_style && streq (name, "main")) { - register char *fp = etags_strrchr (curfdp->taggedfname, '/'); + char *fp = strrchr (curfdp->taggedfname, '/'); np->name = concat ("M", fp == NULL ? curfdp->taggedfname : fp + 1, ""); - fp = etags_strrchr (np->name, '.'); + fp = strrchr (np->name, '.'); if (fp != NULL && fp[1] != '\0' && fp[2] == '\0') fp[0] = '\0'; } @@ -4116,7 +4114,7 @@ Ada_funcs (FILE *inf) /* Skip a string i.e. "abcd". */ if (inquote || (*dbp == '"')) { - dbp = etags_strchr (dbp + !inquote, '"'); + dbp = strchr (dbp + !inquote, '"'); if (dbp != NULL) { inquote = false; @@ -4274,7 +4272,7 @@ Perl_functions (FILE *inf) cp++; if (cp == sp) continue; /* nothing found */ - if ((pos = etags_strchr (sp, ':')) != NULL + if ((pos = strchr (sp, ':')) != NULL && pos < cp && pos[1] == ':') /* The name is already qualified. */ make_tag (sp, cp - sp, true, @@ -5029,7 +5027,7 @@ TEX_decode_env (const char *evarname, const char *defenv) /* Allocate a token table */ for (len = 1, p = env; p;) - if ((p = etags_strchr (p, ':')) && *++p != '\0') + if ((p = strchr (p, ':')) && *++p != '\0') len++; TEX_toktab = xnew (len, linebuffer); @@ -5037,7 +5035,7 @@ TEX_decode_env (const char *evarname, const char *defenv) /* zero-length strings (leading ':', "::" and trailing ':') */ for (i = 0; *env != '\0';) { - p = etags_strchr (env, ':'); + p = strchr (env, ':'); if (!p) /* End of environment string. */ p = env + strlen (env); if (p - env > 0) @@ -5575,7 +5573,7 @@ scan_separators (char *name) /* Look at the argument of --regex or --no-regex and do the right thing. Same for each line of a regexp file. */ static void -analyse_regex (char *regex_arg) +analyze_regex (char *regex_arg) { if (regex_arg == NULL) { @@ -5606,7 +5604,7 @@ analyse_regex (char *regex_arg) pfatal (regexfile); linebuffer_init (®exbuf); while (readline_internal (®exbuf, regexfp) > 0) - analyse_regex (regexbuf.buffer); + analyze_regex (regexbuf.buffer); free (regexbuf.buffer); fclose (regexfp); } @@ -5767,9 +5765,9 @@ substitute (char *in, char *out, struct re_registers *regs) /* Pass 1: figure out how much to allocate by finding all \N strings. */ if (out[size - 1] == '\\') fatal ("pattern error in \"%s\"", out); - for (t = etags_strchr (out, '\\'); + for (t = strchr (out, '\\'); t != NULL; - t = etags_strchr (t + 2, '\\')) + t = strchr (t + 2, '\\')) if (ISDIGIT (t[1])) { dig = t[1] - '0'; @@ -6051,7 +6049,7 @@ readline (linebuffer *lbp, FILE *stream) { char *endp = lbp->buffer + start; - while ((endp = etags_strchr (endp, '"')) != NULL + while ((endp = strchr (endp, '"')) != NULL && endp[-1] == '\\') endp++; if (endp != NULL) @@ -6236,43 +6234,6 @@ savenstr (const char *cp, int len) return memcpy (dp, cp, len); } -/* - * Return the ptr in sp at which the character c last - * appears; NULL if not found - * - * Identical to POSIX strrchr, included for portability. - */ -static char * -etags_strrchr (register const char *sp, register int c) -{ - register const char *r; - - r = NULL; - do - { - if (*sp == c) - r = sp; - } while (*sp++); - return (char *)r; -} - -/* - * Return the ptr in sp at which the character c first - * appears; NULL if not found - * - * Identical to POSIX strchr, included for portability. - */ -static char * -etags_strchr (register const char *sp, register int c) -{ - do - { - if (*sp == c) - return (char *)sp; - } while (*sp++); - return NULL; -} - /* Skip spaces (end of string is not space), return new pointer. */ static char * skip_spaces (char *cp) @@ -6398,7 +6359,7 @@ relative_filename (char *file, char *dir) /* Build a sequence of "../" strings for the resulting relative file name. */ i = 0; - while ((dp = etags_strchr (dp + 1, '/')) != NULL) + while ((dp = strchr (dp + 1, '/')) != NULL) i += 1; res = xnew (3*i + strlen (fp + 1) + 1, char); res[0] = '\0'; @@ -6431,7 +6392,7 @@ absolute_filename (char *file, char *dir) res = concat (dir, file, ""); /* Delete the "/dirname/.." and "/." substrings. */ - slashp = etags_strchr (res, '/'); + slashp = strchr (res, '/'); while (slashp != NULL && slashp[0] != '\0') { if (slashp[1] == '.') @@ -6463,7 +6424,7 @@ absolute_filename (char *file, char *dir) } } - slashp = etags_strchr (slashp + 1, '/'); + slashp = strchr (slashp + 1, '/'); } if (res[0] == '\0') /* just a safety net: should never happen */ @@ -6484,7 +6445,7 @@ absolute_dirname (char *file, char *dir) char *slashp, *res; char save; - slashp = etags_strrchr (file, '/'); + slashp = strrchr (file, '/'); if (slashp == NULL) return savestr (dir); save = slashp[1]; diff --git a/lib-src/grep-changelog b/lib-src/grep-changelog deleted file mode 100755 index ab8c5e38618..00000000000 --- a/lib-src/grep-changelog +++ /dev/null @@ -1,265 +0,0 @@ -#! /usr/bin/perl - -# Copyright (C) 1999-2014 Free Software Foundation, Inc. -# -# This file is part of GNU Emacs. - -# GNU Emacs 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 3 of the License, or -# (at your option) any later version. - -# GNU Emacs 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 GNU Emacs. If not, see . - - -# Extract entries from ChangeLogs matching specified criteria. -# Optionally format the resulting output to a form suitable for RCS -# logs, like they are used in Emacs, for example. In this format, -# author lines, leading spaces, and file names are removed. - -require 5; -use strict; - -# Parse command line options. - -use vars qw($author $regexp $exclude $from_date $to_date - $rcs_log $with_date $version $help $reverse - @entries); - -use Getopt::Long; - -my $result; - -if (@ARGV == 0) { - - # No arguments cannot possibly mean "show everything"!! - $result = 0; - -} else { - - $result = GetOptions ("author=s" => \$author, - "text=s" => \$regexp, - "exclude=s" => \$exclude, - "from-date=s" => \$from_date, - "to-date=s" => \$to_date, - "rcs-log" => \$rcs_log, - "with-date" => \$with_date, - "reverse!" => \$reverse, - "version" => \$version, - "help" => \$help); - - # If date options are specified, check that they have the format - # YYYY-MM-DD. - - $result = 0 if $from_date && $from_date !~ /^\d\d\d\d-\d\d-\d\d$/; - $result = 0 if $to_date && $to_date !~ /^\d\d\d\d-\d\d-\d\d$/; -} - -# Print usage information and exit when necessary. - -if ($result == 0 || $help) { - print <)) { - if ($line =~ /^\S/) { - # Line is an author-line. Print previous entry if - # it matches. - print_log ($header, $entry) - if header_match_p ($header) && entry_match_p ($entry); - - $entry = ""; - $header = $line; - - # Add empty lines below the header. - while (defined($line = ) && $line =~ /^\s*$/) { - $header = "$header$line"; - } - } - - last unless defined $line; - - if ($line =~ /^\s*\*/) { - # LINE is the first line of a ChangeLog entry. Print - # previous entry if it matches. - print_log ($header, $entry) - if header_match_p ($header) && entry_match_p ($entry); - $entry = $line; - } else { - # Add LINE to the current entry. - $entry = "$entry$line"; - } - } - - # Print last entry if it matches. - print_log ($header, $entry) - if header_match_p ($header) && entry_match_p ($entry); - - close IN; - - if ($reverse) { - for (my $entry = @entries; $entry; $entry--) { - print $entries[$entry-1]; - } - } -} - - -# Main program. Process ChangeLogs. - -# If files were specified on the command line, parse those files in the -# order supplied by the user; otherwise parse default files ChangeLog and -# ChangeLog.NNN according to $reverse. -unless (@ARGV > 0) { - @ARGV = ("ChangeLog"); - - push @ARGV, - map {"ChangeLog.$_"} - sort {$b <=> $a} - map {/\.(\d+)$/; $1} - do { - opendir D, '.'; - grep /^ChangeLog\.\d+$/, readdir D; - }; - - @ARGV = reverse @ARGV if $reverse; -} - -while (defined (my $log = shift @ARGV)) { - parse_changelog ($log) if -f $log; -} - - -# grep-changelog ends here. diff --git a/lib-src/movemail.c b/lib-src/movemail.c index c600fc0ea53..b0196b309d8 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -714,8 +714,8 @@ popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse for (i = start; i * increment <= end * increment; i += increment) { - mbx_delimit_begin (mbf); - if (pop_retr (server, i, mbf) != OK) + if (mbx_delimit_begin (mbf) != OK + || pop_retr (server, i, mbf) != OK) { error ("%s", Errmsg, 0); close (mbfi); @@ -832,15 +832,15 @@ mbx_write (char *line, int len, FILE *mbf) static int mbx_delimit_begin (FILE *mbf) { - time_t now; - struct tm *ltime; - char fromline[40] = "From movemail "; - - now = time (NULL); - ltime = localtime (&now); - - strcat (fromline, asctime (ltime)); + time_t now = time (NULL); + struct tm *ltime = localtime (&now); + if (!ltime) + return NOTOK; + char fromline[100]; + if (! strftime (fromline, sizeof fromline, + "From movemail %a %b %e %T %Y\n", ltime)) + return NOTOK; if (fputs (fromline, mbf) == EOF) return (NOTOK); return (OK); diff --git a/lib/fcntl.c b/lib/fcntl.c index 54f748606b7..1e35dd1a4f9 100644 --- a/lib/fcntl.c +++ b/lib/fcntl.c @@ -89,8 +89,25 @@ dupfd (int oldfd, int newfd, int flags) inherit, /* InheritHandle */ DUPLICATE_SAME_ACCESS)) /* Options */ { - /* TODO: Translate GetLastError () into errno. */ - errno = EMFILE; + switch (GetLastError ()) + { + case ERROR_TOO_MANY_OPEN_FILES: + errno = EMFILE; + break; + case ERROR_INVALID_HANDLE: + case ERROR_INVALID_TARGET_HANDLE: + case ERROR_DIRECT_ACCESS_HANDLE: + errno = EBADF; + break; + case ERROR_INVALID_PARAMETER: + case ERROR_INVALID_FUNCTION: + case ERROR_INVALID_ACCESS: + errno = EINVAL; + break; + default: + errno = EACCES; + break; + } result = -1; break; } @@ -98,7 +115,6 @@ dupfd (int oldfd, int newfd, int flags) if (duplicated_fd < 0) { CloseHandle (new_handle); - errno = EMFILE; result = -1; break; } diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h index e23b4b2bcdd..f63cd6a734c 100644 --- a/lib/fcntl.in.h +++ b/lib/fcntl.in.h @@ -34,7 +34,7 @@ extern "C" { ... } block, which leads to errors in C++ mode with the overridden from gnulib. These errors are known to be gone with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) +#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include #endif #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ @@ -53,7 +53,7 @@ extern "C" { ... } block, which leads to errors in C++ mode with the overridden from gnulib. These errors are known to be gone with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) +#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include #endif /* The include_next requires a split double-inclusion guard. */ diff --git a/lib/getdtablesize.c b/lib/getdtablesize.c index 946738cdb68..f0c62713a65 100644 --- a/lib/getdtablesize.c +++ b/lib/getdtablesize.c @@ -104,4 +104,12 @@ rpl_getdtablesize(void) return getdtablesize (); } +#elif defined _SC_OPEN_MAX + +int +getdtablesize (void) +{ + return sysconf (_SC_OPEN_MAX); +} + #endif diff --git a/lib/gnulib.mk b/lib/gnulib.mk index 231b38dbf03..740ebb1e96c 100644 --- a/lib/gnulib.mk +++ b/lib/gnulib.mk @@ -21,7 +21,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=stdarg --avoid=stdbool --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv update-copyright utimens warnings +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=stdarg --avoid=stdbool --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt binary-io byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stddef stdio strftime strtoimax strtoumax symlink sys_stat sys_time time time_r timer-time timespec-add timespec-sub unsetenv update-copyright utimens vla warnings MOSTLYCLEANFILES += core *.stackdump @@ -915,6 +915,7 @@ stddef.h: stddef.in.h $(top_builddir)/config.status -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ + -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ @@ -1141,6 +1142,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ + -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ @@ -1192,6 +1194,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ + -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ @@ -1746,9 +1749,11 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ + -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ + -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ @@ -1798,6 +1803,13 @@ EXTRA_DIST += verify.h ## end gnulib module verify +## begin gnulib module vla + + +EXTRA_DIST += vla.h + +## end gnulib module vla + ## begin gnulib module xalloc-oversized if gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec diff --git a/lib/readlinkat.c b/lib/readlinkat.c index c8a60500f18..83ea0af02e4 100644 --- a/lib/readlinkat.c +++ b/lib/readlinkat.c @@ -20,6 +20,18 @@ #include +#if HAVE_READLINKAT + +# undef readlinkat + +ssize_t +rpl_readlinkat (int fd, char const *file, char *buf, size_t len) +{ + return readlinkat (fd, file, buf, len); +} + +#else + /* Gnulib provides a readlink stub for mingw; use it for distinction between EINVAL and ENOENT, rather than always failing with ENOSYS. */ @@ -34,14 +46,16 @@ then readlink/restore_cwd. If either the save_cwd or the restore_cwd fails, then give a diagnostic and exit nonzero. */ -#define AT_FUNC_NAME readlinkat -#define AT_FUNC_F1 readlink -#define AT_FUNC_POST_FILE_PARAM_DECLS , char *buf, size_t len -#define AT_FUNC_POST_FILE_ARGS , buf, len -#define AT_FUNC_RESULT ssize_t -#include "at-func.c" -#undef AT_FUNC_NAME -#undef AT_FUNC_F1 -#undef AT_FUNC_POST_FILE_PARAM_DECLS -#undef AT_FUNC_POST_FILE_ARGS -#undef AT_FUNC_RESULT +# define AT_FUNC_NAME readlinkat +# define AT_FUNC_F1 readlink +# define AT_FUNC_POST_FILE_PARAM_DECLS , char *buf, size_t len +# define AT_FUNC_POST_FILE_ARGS , buf, len +# define AT_FUNC_RESULT ssize_t +# include "at-func.c" +# undef AT_FUNC_NAME +# undef AT_FUNC_F1 +# undef AT_FUNC_POST_FILE_PARAM_DECLS +# undef AT_FUNC_POST_FILE_ARGS +# undef AT_FUNC_RESULT + +#endif diff --git a/lib/save-cwd.c b/lib/save-cwd.c index b8dae34ca02..833783cbab0 100644 --- a/lib/save-cwd.c +++ b/lib/save-cwd.c @@ -1,3 +1,89 @@ +/* save-cwd.c -- Save and restore current working directory. + + Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2014 Free Software + Foundation, Inc. + + 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 3 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, see . */ + +/* Gnulib needs to save and restore the current working directory to + fully emulate functions like fstatat. But Emacs doesn't care what + the current working directory is; it always uses absolute file + names. This module replaces the Gnulib module by omitting the code + that Emacs does not need. */ + #include -#define SAVE_CWD_INLINE _GL_EXTERN_INLINE + #include "save-cwd.h" + +#include +#include + +/* Record the location of the current working directory in CWD so that + the program may change to other directories and later use restore_cwd + to return to the recorded location. This function may allocate + space using malloc (via getcwd) or leave a file descriptor open; + use free_cwd to perform the necessary free or close. Upon failure, + no memory is allocated, any locally opened file descriptors are + closed; return non-zero -- in that case, free_cwd need not be + called, but doing so is ok. Otherwise, return zero. + + The _raison d'etre_ for this interface is that the working directory + is sometimes inaccessible, and getcwd is not robust or as efficient. + So, we prefer to use the open/fchdir approach, but fall back on + getcwd if necessary. This module works for most cases with just + the getcwd-lgpl module, but to be truly robust, use the getcwd module. + + Some systems lack fchdir altogether: e.g., OS/2, pre-2001 Cygwin, + SCO Xenix. Also, SunOS 4 and Irix 5.3 provide the function, yet it + doesn't work for partitions on which auditing is enabled. If + you're still using an obsolete system with these problems, please + send email to the maintainer of this code. */ + +#if !defined HAVE_FCHDIR && !defined fchdir +# define fchdir(fd) (-1) +#endif + +int +save_cwd (struct saved_cwd *cwd) +{ + cwd->desc = open (".", O_SEARCH | O_CLOEXEC); + /* The 'name' member is present only to minimize differences from + gnulib. Initialize it to zero, if only to simplify debugging. */ + cwd->name = 0; + return 0; +} + +/* Change to recorded location, CWD, in directory hierarchy. + Upon failure, return -1 (errno is set by chdir or fchdir). + Upon success, return zero. */ + +int +restore_cwd (const struct saved_cwd *cwd) +{ + /* Restore the previous directory if possible, to avoid tying down + the file system of the new directory (Bug#18232). + Don't worry if fchdir fails, as Emacs doesn't care what the + working directory is. The fchdir call is inside an 'if' merely to + pacify compilers that complain if fchdir's return value is ignored. */ + if (fchdir (cwd->desc) == 0) + return 0; + + return 0; +} + +void +free_cwd (struct saved_cwd *cwd) +{ + close (cwd->desc); +} diff --git a/lib/save-cwd.h b/lib/save-cwd.h index 9a1eb3519c8..6b84e4601d3 100644 --- a/lib/save-cwd.h +++ b/lib/save-cwd.h @@ -1,6 +1,7 @@ -/* Do not save and restore the current working directory. +/* Save and restore current working directory. - Copyright 2013-2014 Free Software Foundation, Inc. + Copyright (C) 1995, 1997-1998, 2003, 2009-2014 Free Software Foundation, + Inc. 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 @@ -15,32 +16,19 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -/* Gnulib needs to save and restore the current working directory to - fully emulate functions like fstatat. But Emacs doesn't care what - the current working directory is; it always uses absolute file - names. This module replaces the Gnulib module by omitting the code - that Emacs does not need. */ +/* Written by Jim Meyering. */ #ifndef SAVE_CWD_H -#define SAVE_CWD_H 1 +# define SAVE_CWD_H 1 -_GL_INLINE_HEADER_BEGIN -#ifndef SAVE_CWD_INLINE -# define SAVE_CWD_INLINE _GL_INLINE -#endif +struct saved_cwd + { + int desc; + char *name; + }; -struct saved_cwd { int desc; }; +int save_cwd (struct saved_cwd *cwd); +int restore_cwd (const struct saved_cwd *cwd); +void free_cwd (struct saved_cwd *cwd); -SAVE_CWD_INLINE int -save_cwd (struct saved_cwd *cwd) -{ - cwd->desc = -1; - return 0; -} - -SAVE_CWD_INLINE int restore_cwd (struct saved_cwd const *cwd) { return 0; } -SAVE_CWD_INLINE void free_cwd (struct saved_cwd *cwd) { } - -_GL_INLINE_HEADER_END - -#endif +#endif /* SAVE_CWD_H */ diff --git a/lib/stat-time.h b/lib/stat-time.h index b3df6eb816d..9cbf8e044d0 100644 --- a/lib/stat-time.h +++ b/lib/stat-time.h @@ -54,7 +54,7 @@ _GL_INLINE_HEADER_BEGIN #endif /* Return the nanosecond component of *ST's access time. */ -_GL_STAT_TIME_INLINE long int +_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_atime_ns (struct stat const *st) { # if defined STAT_TIMESPEC @@ -67,7 +67,7 @@ get_stat_atime_ns (struct stat const *st) } /* Return the nanosecond component of *ST's status change time. */ -_GL_STAT_TIME_INLINE long int +_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_ctime_ns (struct stat const *st) { # if defined STAT_TIMESPEC @@ -80,7 +80,7 @@ get_stat_ctime_ns (struct stat const *st) } /* Return the nanosecond component of *ST's data modification time. */ -_GL_STAT_TIME_INLINE long int +_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_mtime_ns (struct stat const *st) { # if defined STAT_TIMESPEC @@ -93,7 +93,7 @@ get_stat_mtime_ns (struct stat const *st) } /* Return the nanosecond component of *ST's birth time. */ -_GL_STAT_TIME_INLINE long int +_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_birthtime_ns (struct stat const *st) { # if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC @@ -108,7 +108,7 @@ get_stat_birthtime_ns (struct stat const *st) } /* Return *ST's access time. */ -_GL_STAT_TIME_INLINE struct timespec +_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_atime (struct stat const *st) { #ifdef STAT_TIMESPEC @@ -122,7 +122,7 @@ get_stat_atime (struct stat const *st) } /* Return *ST's status change time. */ -_GL_STAT_TIME_INLINE struct timespec +_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_ctime (struct stat const *st) { #ifdef STAT_TIMESPEC @@ -136,7 +136,7 @@ get_stat_ctime (struct stat const *st) } /* Return *ST's data modification time. */ -_GL_STAT_TIME_INLINE struct timespec +_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_mtime (struct stat const *st) { #ifdef STAT_TIMESPEC @@ -151,7 +151,7 @@ get_stat_mtime (struct stat const *st) /* Return *ST's birth time, if available; otherwise return a value with tv_sec and tv_nsec both equal to -1. */ -_GL_STAT_TIME_INLINE struct timespec +_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_birthtime (struct stat const *st) { struct timespec t; diff --git a/lib/stdalign.in.h b/lib/stdalign.in.h index dcaab55b577..413936df78c 100644 --- a/lib/stdalign.in.h +++ b/lib/stdalign.in.h @@ -95,7 +95,10 @@ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 # if defined __cplusplus && 201103 <= __cplusplus # define _Alignas(a) alignas (a) -# elif (__GNUC__ || __HP_cc || __HP_aCC || __IBMC__ || __IBMCPP__ \ +# elif ((defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__) \ + || __HP_cc || __HP_aCC || __IBMC__ || __IBMCPP__ \ || __ICC || 0x5110 <= __SUNPRO_C) # define _Alignas(a) __attribute__ ((__aligned__ (a))) # elif 1300 <= _MSC_VER diff --git a/lib/stddef.in.h b/lib/stddef.in.h index f5c0e056554..9924a327fca 100644 --- a/lib/stddef.in.h +++ b/lib/stddef.in.h @@ -39,7 +39,6 @@ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t -# undef _@GUARD_PREFIX@_STDDEF_H # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ @@ -54,33 +53,45 @@ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ -# ifndef _@GUARD_PREFIX@_STDDEF_H -# define _@GUARD_PREFIX@_STDDEF_H - /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ -#if @REPLACE_NULL@ -# undef NULL -# ifdef __cplusplus +# if (@REPLACE_NULL@ \ + && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) +# undef NULL +# ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ -# if __GNUG__ >= 3 +# if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ -# define NULL __null -# else -# define NULL 0L +# define NULL __null +# else +# define NULL 0L +# endif +# else +# define NULL ((void *) 0) +# endif # endif -# else -# define NULL ((void *) 0) -# endif -#endif + +# ifndef _@GUARD_PREFIX@_STDDEF_H +# define _@GUARD_PREFIX@_STDDEF_H /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif +/* Some platforms lack max_align_t. */ +#if !@HAVE_MAX_ALIGN_T@ +typedef union +{ + char *__p; + double __d; + long double __ld; + long int __i; +} max_align_t; +#endif + # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index 46e10dba972..ee643247d85 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -520,6 +520,29 @@ _GL_CXXALIAS_SYS (putenv, int, (char *string)); _GL_CXXALIASWARN (putenv); #endif +#if @GNULIB_QSORT_R@ +# if @REPLACE_QSORT_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef qsort_r +# define qsort_r rpl_qsort_r +# endif +_GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, + int (*compare) (void const *, void const *, + void *), + void *arg) _GL_ARG_NONNULL ((1, 4))); +_GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, + int (*compare) (void const *, void const *, + void *), + void *arg)); +# else +_GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, + int (*compare) (void const *, void const *, + void *), + void *arg)); +# endif +_GL_CXXALIASWARN (qsort_r); +#endif + #if @GNULIB_RANDOM_R@ # if !@HAVE_RANDOM_R@ diff --git a/lib/sys_select.in.h b/lib/sys_select.in.h index a876b9caa3f..58508b0c5e5 100644 --- a/lib/sys_select.in.h +++ b/lib/sys_select.in.h @@ -24,8 +24,8 @@ On Cygwin, includes . Simply delegate to the system's header in this case. */ #if (@HAVE_SYS_SELECT_H@ \ + && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H \ && ((defined __osf__ && defined _SYS_TYPES_H_ \ - && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H \ && defined _OSF_SOURCE) \ || (defined __sun && defined _SYS_TYPES_H \ && (! (defined _XOPEN_SOURCE || defined _POSIX_C_SOURCE) \ @@ -36,12 +36,13 @@ #elif (@HAVE_SYS_SELECT_H@ \ && (defined _CYGWIN_SYS_TIME_H \ - || (defined __osf__ && defined _SYS_TIME_H_ \ - && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H \ - && defined _OSF_SOURCE) \ - || (defined __sun && defined _SYS_TIME_H \ - && (! (defined _XOPEN_SOURCE || defined _POSIX_C_SOURCE) \ - || defined __EXTENSIONS__)))) + || (!defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H \ + && ((defined __osf__ && defined _SYS_TIME_H_ \ + && defined _OSF_SOURCE) \ + || (defined __sun && defined _SYS_TIME_H \ + && (! (defined _XOPEN_SOURCE \ + || defined _POSIX_C_SOURCE) \ + || defined __EXTENSIONS__)))))) # define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ diff --git a/lib/timespec.h b/lib/timespec.h index 872cbb76e37..dfc1277a71f 100644 --- a/lib/timespec.h +++ b/lib/timespec.h @@ -74,7 +74,7 @@ make_timespec (time_t s, long int ns) The (int) cast avoids a gcc -Wconversion warning. */ -_GL_TIMESPEC_INLINE int +_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE timespec_cmp (struct timespec a, struct timespec b) { return (a.tv_sec < b.tv_sec ? -1 @@ -84,7 +84,7 @@ timespec_cmp (struct timespec a, struct timespec b) /* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be nonnegative. */ -_GL_TIMESPEC_INLINE int +_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE timespec_sign (struct timespec a) { return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec; diff --git a/lib/unistd.in.h b/lib/unistd.in.h index 622b2287577..dda0b4d104a 100644 --- a/lib/unistd.in.h +++ b/lib/unistd.in.h @@ -401,6 +401,12 @@ _GL_WARN_ON_USE (dup3, "dup3 is unportable - " /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ +# include +# if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR +# define _GL_USE_CRT_EXTERNS +# endif +# endif +# ifdef _GL_USE_CRT_EXTERNS # include # define environ (*_NSGetEnviron ()) # else @@ -1287,13 +1293,24 @@ _GL_WARN_ON_USE (readlink, "readlink is unportable - " #if @GNULIB_READLINKAT@ -# if !@HAVE_READLINKAT@ +# if @REPLACE_READLINKAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define readlinkat rpl_readlinkat +# endif +_GL_FUNCDECL_RPL (readlinkat, ssize_t, + (int fd, char const *file, char *buf, size_t len) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (readlinkat, ssize_t, + (int fd, char const *file, char *buf, size_t len)); +# else +# if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); -# endif +# endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len)); +# endif _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat @@ -1407,13 +1424,25 @@ _GL_WARN_ON_USE (symlink, "symlink is not portable - " #if @GNULIB_SYMLINKAT@ -# if !@HAVE_SYMLINKAT@ +# if @REPLACE_SYMLINKAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef symlinkat +# define symlinkat rpl_symlinkat +# endif +_GL_FUNCDECL_RPL (symlinkat, int, + (char const *contents, int fd, char const *file) + _GL_ARG_NONNULL ((1, 3))); +_GL_CXXALIAS_RPL (symlinkat, int, + (char const *contents, int fd, char const *file)); +# else +# if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); -# endif +# endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); +# endif _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat diff --git a/lib/utimens.c b/lib/utimens.c index dd3ec668f37..04441037631 100644 --- a/lib/utimens.c +++ b/lib/utimens.c @@ -24,7 +24,6 @@ #define _GL_UTIMENS_INLINE _GL_EXTERN_INLINE #include "utimens.h" -#include #include #include #include @@ -87,7 +86,6 @@ validate_timespec (struct timespec timespec[2]) { int result = 0; int utime_omit_count = 0; - assert (timespec); if ((timespec[0].tv_nsec != UTIME_NOW && timespec[0].tv_nsec != UTIME_OMIT && ! (0 <= timespec[0].tv_nsec diff --git a/lib/vla.h b/lib/vla.h new file mode 100644 index 00000000000..05125a7978e --- /dev/null +++ b/lib/vla.h @@ -0,0 +1,27 @@ +/* vla.h - variable length arrays + + Copyright 2014 Free Software Foundation, Inc. + + 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 3 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, see . + + Written by Paul Eggert. */ + +/* A function's argument must point to an array with at least N elements. + Example: 'int main (int argc, char *argv[VLA_ELEMS (argc)]);'. */ + +#ifdef __STDC_NO_VLA__ +# define VLA_ELEMS(n) +#else +# define VLA_ELEMS(n) static n +#endif diff --git a/lisp/.gitignore b/lisp/.gitignore deleted file mode 100644 index 6d5166e1349..00000000000 --- a/lisp/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.elc -*-loaddefs.el -loaddefs.el -subdirs.el -finder-inf.el -cus-load.el diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5b07bbe6c74..d8bb1c89f1f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,4481 @@ +2014-12-22 Stefan Monnier + + * completion.el: Use post-self-insert-hook (bug#19400). + (completion-separator-self-insert-command) + (completion-separator-self-insert-autofilling): Remove. + (completion-separator-chars): New var. + (completion-c-mode-hook, completion-setup-fortran-mode): Use it instead + of changing the keymap. + (completion--post-self-insert): New function. + (dynamic-completion-mode): Use it instead of rebinding keys. + (cmpl--completion-string): Rename from completion-string. + (add-completion-to-head, delete-completion): Let-bind it explicitly. + +2014-12-22 Bozhidar Batsov + + * progmodes/ruby-mode.el (ruby--string-region): Simplify code + by leveraging `syntax-ppss'. + +2014-12-22 Artur Malabarba + + * let-alist.el (let-alist): Use `make-symbol' instead of `gensym'. + +2014-12-20 Michael Albinus + + * net/tramp-sh.el (tramp-histfile-override): Add :version. + +2014-12-20 Teodor Zlatanov + + * net/tramp-sh.el (tramp-histfile-override): Clarify docstring. + +2014-12-19 Artur Malabarba + + * let-alist.el (let-alist): Enable access to deeper alists by + using dots inside the dotted symbols. + +2014-12-19 Alan Mackenzie + + Make C++11 uniform init syntax work. New keywords "final" and "override" + + * progmodes/cc-engine.el (c-back-over-member-initializer-braces): + New function. + (c-guess-basic-syntax): Set `containing-sex' and `lim' using the + new function. + + * progmodes/cc-fonts.el (c-font-lock-declarations): Check more + carefully for "are we at a declarator?" using + c-back-over-member-initializers. + + * progmodes/cc-langs.el (c-type-modifier-kwds): include "final" + and "override" in the C++ value. + +2014-12-19 Martin Rudalics + + * textmodes/ispell.el (ispell-command-loop): Don't use + `next-window'. + +2014-12-21 Lars Ingebrigtsen + + * net/nsm.el (nsm-save-host): Don't save the host name twice + (bug#19269). + +2014-12-18 Sam Steingold + + Keyboard interface (C-f10) to `mouse-buffer-menu' (C-down-mouse-1). + * mouse.el (mouse-buffer-menu-map): Extract from `mouse-buffer-menu'. + (mouse-buffer-menu): Use `mouse-buffer-menu-map'. + * menu-bar.el (menu-bar-buffer-vector): Extract from + `menu-bar-update-buffers'. + (menu-bar-update-buffers): Use `menu-bar-buffer-vector'. + (buffer-menu-open): New user command, bound globally to C-f10, + provides a keyboard interface to `mouse-buffer-menu' (C-down-mouse-1). + (mouse-buffer-menu-keymap): Use `menu-bar-buffer-vector' to + convert the value returned by `mouse-buffer-menu-map' to a list + acceptable to `popup-menu' for `buffer-menu-open'. + +2014-12-18 Artur Malabarba + + * let-alist.el (let-alist): Evaluate the `alist' argument only + once. + +2014-12-18 Sam Steingold + + * emacs-lisp/package.el: Avoid compilation warning by declaring + the `find-library-name' function. + (package-activate-1): Fix the `with-demoted-errors' calls: + the first argument must be a string literal. + +2014-12-18 Martin Rudalics + + Add code for "preserving" window sizes. + * dired.el (dired-pop-to-buffer): Call fit-window-to-buffer with + `preserve-size' t. + (dired-mark-pop-up): Preserve size of window showing marked + files. + * electric.el (Electric-pop-up-window): + * help.el (resize-temp-buffer-window): Call fit-window-to-buffer + with `preserve-size' t. + * minibuffer.el (minibuffer-completion-help): Use + `resize-temp-buffer-window' instead of `fit-window-to-buffer' + (Bug#19355). Preserve size of completions window. + * register.el (register-preview): Preserve size of register + preview window. + * tmm.el (tmm-add-prompt): Call fit-window-to-buffer + with `preserve-size' t (Bug#1291). + * window.el (with-displayed-buffer-window): Add calls to + `window-preserve-size'. + (window-min-pixel-size, window--preservable-size) + (window-preserve-size, window-preserved-size) + (window--preserve-size, window--min-size-ignore-p): New + functions. + (window-min-size, window-min-delta, window--resizable) + (window--resize-this-window, split-window-below) + (split-window-right): Amend doc-string. + (window--min-size-1, window-sizable, window--size-fixed-1) + (window-size-fixed-p, window--min-delta-1) + (frame-windows-min-size, window--max-delta-1, window-resize) + (window--resize-child-windows, window--resize-siblings) + (enlarge-window, shrink-window, split-window): Handle preserving + window sizes. + (adjust-window-trailing-edge): Handle preserving window + sizes. Signal user-error instead of an error when there's no + window above or below. + (window--state-put-2): Handle horizontal scroll bars. + (window--display-buffer): Call `preserve-size' if asked for. + (display-buffer): Mention `preserve-size' alist member in + doc-string. + (fit-window-to-buffer): New argument PRESERVE-SIZE. + * textmodes/ispell.el (ispell-command-loop): Suppress horizontal + scroll bar on ispell's windows. Don't count window lines and + don't deal with dedicated windows. + (ispell-show-choices, ispell-help): Let `ispell-display-buffer' + do the window handling. + (ispell-adjusted-window-height, ispell-overlay-window): Remove. + (ispell-display-buffer): New function to reuse, create and fit + window to ispell's buffers. (Bug#3413) + +2014-12-18 Dmitry Gutov + + * emacs-lisp/package.el (package-activate): Do not re-activate or + reload the dependencies (bug#19390). + +2014-12-18 Stefan Monnier + + * progmodes/cc-cmds.el (c-subword-mode): Alias to subword-mode. + (c-update-modeline): + * progmodes/cc-langs.el (c-mode-menu): Use c-subword-mode. + * progmodes/cc-mode.el (subword-mode): Move autoload to cc-cmds.el. + (c-mode-base-map): Use c-subword-mode. + +2014-12-18 Eli Zaretskii + + * international/mule-diag.el (describe-font-internal): + Display additional info returned by font-info. + + * linum.el (linum--face-width): Rename from linum--face-height, + and use the new functionality of font-info. + (linum-update-window): Use linum--face-width and frame-char-width, + instead of approximating with height. + +2014-12-18 Dmitry Gutov + + * vc/vc-svn.el (vc-svn-dir-status-files): Revert the 2014-12-02 + change (bug#19387). Use `apply' on `vc-dir-command' (bug#19405). + + * emacs-lisp/package.el (package-activate-1): Add RELOAD argument + and a docstring. + (package-activate): Call itself on dependencies on PACKAGE with + the same FORCE argument. Pass FORCE as RELOAD into + `package-activate-1' (bug#19390). + +2014-12-17 Sam Steingold + + * emacs-lisp/package.el (package--list-loaded-files): + Handle `(nil ...)' elements in `load-history'. + +2014-12-17 Teodor Zlatanov + + * net/tramp-sh.el (tramp-histfile-override): New variable. + (tramp-open-shell, tramp-maybe-open-connection): Use it. + +2014-12-17 Dmitry Gutov + + * vc/vc.el: Improve `dir-status-files' description. + + * emacs-lisp/package.el (package--list-loaded-files): Don't call + file-truename on load-history elements (bug#19390). + +2014-12-16 Nicolas Petton + + * emacs-lisp/seq.el: New file. + +2014-12-16 Stefan Monnier + + * jit-lock.el (jit-lock-function): Don't defer if jit-lock-defer-time + is 0 and there is no input pending. + +2014-12-15 Juri Linkov + + * replace.el (query-replace-read-from): Use query-replace-compile-replacement + only on the return value (bug#19383). + +2014-12-15 Juri Linkov + + * isearch.el (isearch-lazy-highlight-search): Extend the bound of + the wrapped search by the length of the search string to be able + to lazy-highlight the whole search string at point (bug#19353). + +2014-12-15 Lars Magne Ingebrigtsen + + * net/shr.el (shr-fold-text): Don't bug out on zero-length text. + +2014-12-14 Alan Mackenzie + + * lisp/cus-start.el (all): Add fast-but-imprecise-scrolling. + +2014-12-14 Artur Malabarba + + * let-alist.el: Add lexical binding. + +2014-12-14 Steve Purcell (tiny change) + + * emacs-lisp/package.el (package-menu-mode): Use an extra column + for the "Version" column, to accomodate date-and-time-based + versions. + +2014-12-14 Cameron Desautels + + * cus-edit.el (custom-unsaved-options): New function, extracted + from `customize-unsaved'. + (custom-unsaved): Use it. + (custom-prompt-customize-unsaved-options): New function. + (Bug#19328) + +2014-12-14 Dmitry Gutov + + * fringe.el (fringe-bitmap-p): Fix 2014-12-05 breakage. + +2014-12-14 Dmitry Gutov + + Move ASYNC argument to the `diff' VC command to the fifth + position, for better compatibility with existing third-party code, + and document it. + + * vc/vc.el (vc-diff-internal): Pass `async' argument to the + backend `diff' command in the last position. + + * vc/vc-svn.el (vc-svn-diff): + * vc/vc-src.el (vc-src-diff): + * vc/vc-sccs.el (vc-sccs-diff): + * vc/vc-rcs.el (vc-rcs-diff): + * vc/vc-mtn.el (vc-mtn-diff): + * vc/vc-hg.el (vc-hg-diff): + * vc/vc-git.el (vc-git-diff): + * vc/vc-dav.el (vc-dav-diff): + * vc/vc-cvs.el (vc-cvs-diff): + * vc/vc-bzr.el (vc-bzr-diff): + * obsolete/vc-arch.el (vc-arch-diff): Move ASYNC argument to the end. + +2014-12-13 Andreas Schwab + + * net/shr.el (shr-next-link): Don't error out at eob. + +2014-12-05 Nicolas Richard + + * isearch.el (isearch-open-necessary-overlays): Open overlay + ending at point (bug#19333). + +2014-12-13 Lars Magne Ingebrigtsen + + * net/shr.el (shr-fold-text): New function. + (shr-show-alt-text, shr-urlify, shr-tag-img): Use it to fold long + alt/title texts. + (shr-fold-text): Inhibit state from being altered. + + * files.el (directory-files-recursively): Really check whether + files are symlinks. + (directory-name-p): New function. + (directory-files-recursively): Use it. + +2014-12-13 Artur Malabarba + + * emacs-lisp/package.el (package--list-loaded-files): New function + to list files in a given directory which correspond to already + loaded files. + (package-activate-1): Reload files given by `package--list-loaded-files'. + Fix bug#10125, bug#18443, and bug#18448. + +2014-12-13 Eric S. Raymond + + * vc/vc-svn.el (vc-svn-diff): Fix bug #19312. + +2014-12-13 Michael Albinus + + * simple.el (password-word-equivalents): Add "passcode", used for + numeric secrets like PINs or RSA tokens. + +2014-12-13 Michael Albinus + + * net/tramp-sh.el (tramp-get-remote-path): Use a login shell in + order to determine `tramp-own-remote-path'. + +2014-12-13 Fabián Ezequiel Gallina + + * progmodes/python.el (python-shell-parse-command): + Quote `python-shell-interpreter`. (Bug#19289) + +2014-12-12 Stefan Monnier + + * progmodes/python.el (python-indent-line): Use `noindent' in strings. + (python-indent-levels): Document extra value. + (python-indent-calculate-indentation): Return `noindent' in strings. + (python-indent-post-self-insert-function) + (python-indent-calculate-levels): Handle new value. + +2014-12-12 Lars Magne Ingebrigtsen + + * net/network-stream.el (network-stream-open-starttls): No need to + check for the availability of `gnutls-available-p'. + + * files.el (directory-files-recursively): Don't follow symlinks to + other directories. + +2014-12-12 Eric S. Raymond + + * vc/vc-dav.el, vc/vc-git.el, vc/vc-hg.el, vc/vc-src.el, + vc/vc.el: latest-on-branch-p is no longer a public method. + + * vc/vc.el, vc/vc-hg.el, vc/vc-git.el, vc/vc-hooks.el, + vc/vc-mtn.el, vc/vc-rcs.el, vc/vc-sccs.el, vc/vc-src.el: Remove `rollback' + method, to be replaced in the future by uncommit. + +2014-12-11 Michael Albinus + + * vc/vc-hg.el (vc-hg-state): Make FILE absolute. Handle the case + that there is empty output. + +2014-12-11 Stefan Monnier + + * emacs-lisp/eldoc.el (eldoc-documentation-function): Change default. + (eldoc-mode, eldoc-schedule-timer): Adjust to new default. + +2014-12-10 Artur Malabarba + + * let-alist.el: Add new package and macro. + +2014-12-10 Eric S. Raymond + + * vc/vc-dispatcher.el, vc/vc-hooks.el, vc/vc-rcs.el, + vc/vc-sccs.el, vc/vc.el: Righteous featurectomy of + vc-keep-workfiles, it's a shoot-self-in-foot archaism. + Workfiles are always kept. + +2014-12-10 Rasmus Pank Roulund + + * net/ange-ftp.el (ange-ftp-switches-ok): Disallow flags causing + trouble with ls over ftp. These flags result in ls returning no + output, causing Tramp-breakage. (bug#19192) + +2014-12-10 Andreas Schwab + + * files.el (file-tree-walk): Use file-name-as-directory unconditionally. + +2014-12-10 Lars Magne Ingebrigtsen + + * files.el (directory-files-recursively): + Use `file-name-all-completions' instead of `directory-files' for + greater speed. + + * net/shr.el (shr-tag-object): Don't bug out on text elements in + . + +2014-12-09 Bozhidar Batsov + + * progmodes/ruby-mode.el (auto-mode-alist): Add .rabl, Berksfile + and Puppetfile. + (ruby-toggle-string-quotes): New command that allows you to quickly + toggle between single-quoted and double-quoted string literals. + +2014-12-09 Eric S. Raymond + + * vc/vc-src.el (vc-src-do-comand): Prepend -- to file argument + list, avoids problems witth names containing hyphens. + +2014-12-09 Wilson Snyder + + Sync with upstream verilog-mode revision aa4b777. + * progmodes/verilog-mode.el (verilog-mode-version): Update. + (verilog-auto-end-comment-lines-re, verilog-end-block-ordered-re) + (verilog-set-auto-endcomments): Automatically comment property/ + endproperty blocks to match other similar blocks like sequence/ + endsequence, function/endfunction, etc. Reported by Alex Reed. + (verilog-set-auto-endcomments): Fix end comments for functions of + type void, etc. Detect the function- or task-name when + auto-commenting blocks that lack an explicit portlist. + Reported by Alex Reed. + (verilog-nameable-item-re): Fix nameable items that can have an + end-identifier to include endchecker, endgroup, endprogram, + endproperty, and endsequence. Reported by Alex Reed. + (verilog-preprocessor-re, verilog-beg-of-statement): + Fix indentation of property/endproperty around pre-processor + directives. Reported by Alex Reed. + (verilog-label-be): When auto-commenting a buffer, consider + auto-comments on all known keywords (not just a subset thereof). + Reported by Alex Reed. + (verilog-beg-of-statement): Fix labeling do-while blocks, bug842. + Reported by Alex Reed. + (verilog-beg-of-statement-1, verilog-at-constraint-p): + Fix hanging with many curly-bracket pairs, bug663. + (verilog-do-indent): Fix electric tab deleting form-feeds. + Note caused by indent-line-to deleting tabls pre 24.5. + (verilog-auto-output, verilog-auto-input, verilog-auto-inout) + (verilog-auto-inout-module, verilog-auto-inout-in): Doc fixes. + (verilog-read-always-signals, verilog-auto-sense-sigs) + (verilog-auto-reset): Fix AUTORESET with always_comb and always_latch, + bug844. Reported by Greg Hilton. + +2014-12-09 Alex Reed (tiny change) + + * progmodes/verilog-mode.el (verilog-no-indent-begin-re): + Fix `verilog-indent-begin-after-if' nil not honoring 'forever', + 'foreach', and 'do' keywords. + (verilog-endcomment-reason-re, verilog-beg-of-statement): + Fix labeling do-while blocks, bug842. + (verilog-backward-token): Fix indenting sensitivity lists with + named events, bug840. + +2014-12-09 Reto Zimmermann + + Sync with upstream vhdl mode v3.36.1. + * progmodes/vhdl-mode.el (vhdl-version, vhdl-time-stamp): Update. + (vhdl-compiler-alist): Anchor all error regexps. + (vhdl-compile-use-local-error-regexp): Change default to nil. + (vhdl-asort, vhdl-anot-head-p): Remove. + (vhdl-aput, vhdl-adelete, vhdl-aget): Simplify. + Remove optional argument of vhdl-aget and update all callers. + (vhdl-import-project): Also set `vhdl-compiler'. + +2014-12-09 Lars Magne Ingebrigtsen + + * files.el (find-files): New function. + + * net/shr.el (shr-dom-print): Don't print comments. + (shr-tag-svg): Give inline SVG images the right type. + + * net/eww.el (eww-update-header-line-format): Mark valid/invalid + certificates in the header line. + (eww-invalid-certificate, eww-valid-certificate): New faces. + +2014-12-09 Fabián Ezequiel Gallina + + * progmodes/python.el (inferior-python-mode): + Set `comint-prompt-read-only` to `t` only locally. + +2014-12-08 Lars Magne Ingebrigtsen + + * net/nsm.el (nsm-check-protocol): Test for RC4 on `high'. + (nsm-format-certificate): Include more data about the connection. + (nsm-query): Fill the text to that it looks nicer. + (nsm-check-protocol): Also warn if using SSL3 or older. + +2014-12-08 Stefan Monnier + + * progmodes/gud.el (gud-gdb-completions): Remove unused var `start'. + + * obsolete/gulp.el (gulp-create-m-p-alist): Remove unused var `mnt-tm'. + + * net/tramp.el (tramp-handle-make-symbolic-link): Mark unused arg. + + * info.el (Info-mode-map): Remove left-over binding. + + * emacs-lisp/avl-tree.el: Use lexical-binding and cl-lib. + (avl-tree--root): Remove redundant defsetf. + +2014-12-08 Lars Magne Ingebrigtsen + + * net/nsm.el (network-security-level): Remove the detailed + description, which was already outdated, and refer the users to + the manual. + (nsm-check-protocol): Check for weak Diffie-Hellman prime bits + (bug#19153). + +2014-12-06 Andrey Kotlarski + + * net/eww.el (eww-buffers-mode): New major mode. + (eww-list-buffers, eww-buffer-select, eww-buffer-show-next) + (eww-buffer-show-previous, eww-buffer-kill, eww-buffer-show): + New commands/functions (bug#19131). + +2014-12-08 Lars Magne Ingebrigtsen + + * net/gnutls.el (gnutls-negotiate): Ignore files found via + 'file-name-handler-alist' since the gnutls library can't use those + (bug#15866). + +2014-12-08 Dmitry Gutov + + * vc/vc-hg.el (vc-hg-dir-status-files): Only include ignores files + when FILES is non-nil (bug#19304). + +2014-12-08 Eric S. Raymond + + * vc/vc-arch.el: Moved to obsolete directory so a test framework + won't trip over bit-rot in it. There has been no Arch snapshot + for nine years. + +2014-12-07 Lars Magne Ingebrigtsen + + * net/eww.el (eww-follow-link): Revert prefix behaviour to + previous behavior. + (eww-copy-page-url): Add doc string. + +2014-12-07 Ivan Shmakov + + * net/eww.el (eww): Move history recording here... + (eww-browse-url): ... from here (bug#19253). + + * net/eww.el (eww-browse-url): Use generate-new-buffer (was: + iterating over possible buffer names.) + +2014-12-07 Lars Magne Ingebrigtsen + + * net/eww.el (eww-reload): Take a prefix to work locally (bug#19086). + (eww-current-buffer): Compilation fix for bug#18550 patch. + +2014-12-07 Ivan Shmakov + + * net/eww.el (eww-list-histories): Restore the history in the + correct buffer (bug#18550). + +2014-12-07 Lars Magne Ingebrigtsen + + * net/eww.el (eww-bookmark-prepare): Display URLs in first by + displaying shortened titles first (bug#16398). + +2014-12-07 Tom Willemse (tiny change) + + * progmodes/python.el: Recognize docstrings. + (python-docstring-at-p, python-font-lock-syntactic-face-function): + New functions. + (python-mode): Use them. + +2014-12-06 Ulf Jasper + + * net/newst-treeview.el (newsticker--treeview-list-add-item) + (newsticker--treeview-propertize-tag): Bind tree menu to mouse-3. + (newsticker--treeview-create-groups-menu) + (newsticker--treeview-create-tree-menu): Remove. + (newsticker--treeview-tree-open-menu): New. + (newsticker-treeview-tree-click): Pass event to + `newsticker-treeview-tree-do-click'. + (newsticker-treeview-tree-do-click): Open treemenu on mouse-3. + +2014-12-05 Juri Linkov + + * comint.el (comint-history-isearch-search) + (comint-history-isearch-wrap): Use field-beginning instead of + comint-line-beginning-position. + (comint-send-input): Go to the end of the field instead of the end + of the line to accept whole multi-line input. + http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00305.html + +2014-12-05 Juri Linkov + + * minibuffer.el (minibuffer-completion-help): + Compare selected-window with minibuffer-window to check whether + completions should be displayed near the minibuffer. (Bug#17809) + http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00311.html + +2014-12-05 Michael Albinus + + * vc/vc-mtn.el (vc-mtn-root): + * vc/vc-svn.el (vc-svn-registered): Make FILE absolute. + +2014-12-05 Stefan Monnier + + * progmodes/sh-script.el (sh-smie-sh-rules): Go back to the beginning + of the whole pipe when indenting an opening keyword after a |. + Generalize this treatment to opening keywords like "while" (bug#18031). + +2014-12-05 Stefan Monnier + + * simple.el (newline): Place the hook buffer-locally, + to make sure it's first. + + * progmodes/prog-mode.el (prettify-symbols--compose-symbol): + Fix handling of symbols with different syntax at beginning/end or with + symbol rather than word syntax. + +2014-12-05 Eli Zaretskii + + * simple.el (line-move): If noninteractive, call line-move-1, not + forward-line, since the former is compatible with line-move-visual + both in terms of the column to which it moves and the return + value. (Bug#19211) + +2014-12-05 Stefan Monnier + + * vc/ediff-init.el (ediff-odd-p): Remove. + (ediff-background-face): Use cl-oddp instead. + (ediff-buffer-live-p): Make it a defsubst. + + * tooltip.el (tooltip-region-active-p): Remove. + + * net/shr.el (shr-char-breakable-p, shr-char-kinsoku-bol-p) + (shr-char-kinsoku-eol-p, shr-char-nospace-p): Use define-inline. + + * fringe.el (fringe-bitmap-p): Make it a plain function. + + * emacs-lisp/eieio-core.el: Prefer inlinable functions over macros. + (class-p, generic-p, eieio-object-p, class-abstract-p): + Make them defsubst, so as to avoid corner case problems where + the arg might be evaluated in the condition-case, or it can't be passed + to higher-order functions like `cl-some'. + +2014-12-05 Nicolas Richard + + * wid-edit.el (widget-choose): Let numeric keypad work (bug#19268) + and remove old menu-related code. + +2014-12-05 Lars Magne Ingebrigtsen + + * net/eww.el (eww-display-pdf): Let mailcap determine how to + display PDF files (bug#19270). + +2014-12-05 Juri Linkov + + Compare with the most recent window by default. + * vc/compare-w.el (compare-windows-get-window-function): New defcustom. + (compare-windows-get-recent-window) + (compare-windows-get-next-window): New functions. + (compare-windows, compare-windows-sync-default-function): + Use `compare-windows-get-window-function' instead of `next-window'. + (compare-windows): Add diff/match messages with region boundaries. + (Bug#19170) + +2014-12-04 Stefan Monnier + + * subr.el (filter): Remove. Use `cl-remove-if-not' or `seq-filter'. + +2014-12-04 Lars Magne Ingebrigtsen + + * net/shr.el (shr--extract-best-source): Ignore non-text children. + +2014-12-04 Eli Zaretskii + + Implement copying of a buffer portion while preserving visual order. + * simple.el (bidi-directional-controls-chars) + (bidi-directional-non-controls-chars): New variables. + (squeeze-bidi-context-1, squeeze-bidi-context) + (line-substring-with-bidi-context) + (buffer-substring-with-bidi-context): New functions. + + * files.el (file-tree-walk): Doc fix. + +2014-12-04 Rupert Swarbrick (tiny change) + Rüdiger Sonderfeld + + * autoinsert.el (auto-insert-alist): Update C/C++ header and + program support to match more extensions. Replace non-alnum + characters when generating include guards (headers) and check for + more extensions when generating includes (programs) + (bug#19254). + +2014-12-03 Eric S. Raymond + + * files.el (file-tree-walk): Fix docstring. + +2014-12-03 Karl Fogel + + Fix bug whereby saving files hung in VC hook. + + Saving a buffer visiting a file under SVN control would hang if + the remote repository were unreachable, because the VC hooks tried + to run "svn status -u" on the file, where the "-u" tells svn to + get update information from the remote repository. + http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00174.html + + * vc/vc-svn.el (vc-svn-state): Remove optional `localp' + argument and always pass "-v" to "svn status", never "-u". + +2014-12-03 Stefan Monnier + + * emacs-lisp/inline.el: Fix up copyright header. + (inline-quote, inline-const-p, inline-const-val, inline-error): + Silence compiler warnings. + (inline-letevals): Fix edebug spec. + (inline--testconst-p): Consider lambda expressions as const-p. + (inline--getconst-val): Use inline--testconst-p. + + * minibuffer.el (completion-table-dynamic): Add arg `switch-buffer' + and change default to stay in the minibuffer when called from + the minibuffer (bug#19250). + (lazy-completion-table): Use this new argument to preserve the + old behavior. + + * progmodes/elisp-mode.el (elisp--local-variables): Don't burp on + incorrect lexical elements (bug#19250). + +2014-12-03 A. N. Other + + * files.el (file-tree-walk): Lisp translation of ANSI ftw(3). + +2014-12-02 Glenn Morris + + * whitespace.el (whitespace-big-indent-regexp): Add :version. + +2014-12-02 Eric S. Raymond + + * subr.el (filter): New macro. Because it's just silly for a Lisp + not to have this in 2014. And VC needs it. + + * vc.el, all backends: API simplification: Abolish dir-status. + It's replaced by dir-status-files. + + * vc.el, all backends: API simplification: Remove 4th + 'default-state' argument from vc-dir-status files and its backend + methods - no backend method ever set it. It was used only in the + fallback method to to set a default of 'up-to-date, though a + convoluted call chain obscured this. + + * vc-hooks.el: Bind vc-delete-file to Ctrl-x v delete. + + * vc.el (vc-expand-dirs): Now takes a second BACKEND argument, + improving behavior on directories using multiple file-oriented VCSes. + + * vc/vc.el and all backends: API simplification; clear-headers + is no longer a public method. It is now local to the one place + it's used, in the RCS steal-lock method. + +2014-12-01 Eric S. Raymond + + * vc/vc.el and all backends: API simplification; could-register + is no longer a public method. (vc-cvs.el still has a private + implementation.) + + * vc/vc.el and all backends: API cleanup; the backend diff method + takes an explicit async flag. This eliminates a particularly ugly + global. + + * vc-bzr.el: Restore vc-bzr-state-heuristic as a private method. + VC randomly/unpredictably fails without it; cause not yet established. + +2014-12-01 Stefan Monnier + + Merge some of the differences from the standalone CC-mode. + The main change is to only use the `category' text-property only when + available. For that many calls are changed to use c-get-char-property, + c-next-single-property-change, c-sc-scan-lists, + c-sc-parse-partial-sexp, c-unmark-<->-as-paren. + + * progmodes/cc-mode.el (c-just-done-before-change): New var. + (c-basic-common-init): Initialize it. + (c-common-init): Only use mode-require-final-newline when available. + (c-before-change): Check and set c-just-done-before-change. + (c-after-change): Re-set c-just-done-before-change. + (c-advise-fl-for-region): New macro. + (lazy-lock-defer-rest-after-change, lazy-lock-defer-line-after-change) + (font-lock-after-change-function, jit-lock-after-change): + Advise if needed. + + * progmodes/cc-langs.el (c-modified-constant): New lang var. + (c-known-type-key): Don't make a list just to throw it away. + + * progmodes/cc-engine.el (c-invalidate-state-cache, c-parse-state): + Handle the case where categories are not available. + (c-record-parse-state-state, c-replay-parse-state-state): + Handle marker values. + (c-before-change-check-<>-operators): Look for the `syntax-table' + property rather than for the corresponding `category'. + (c-looking-at-decl-block): Remove unused var + `c-disallow-comma-in-<>-arglists'. + (c-forward-<>-arglist-recur): Remove unused var + `orig-record-found-types'. + + * progmodes/cc-defs.el (c-version): Bump up to 5.33. + (c-use-category): New const. + (c-next-single-property-change): New macro. + (c-region-is-active-p): Prefer region-active-p when available. + (c-search-backward-char-property): Fix old min/max typo; probably + a copy/paste error. + (c-mark-<-as-paren, c-mark->-as-paren, c-unmark-<->-as-paren): + Turn them into macros that obey c-use-category. + (c-sc-scan-lists-no-category+1+1, c-sc-scan-lists-no-category+1-1) + (c-sc-scan-lists-no-category-1+1, c-sc-scan-lists-no-category-1-1) + (c-sc-scan-lists, c-sc-parse-partial-sexp) + (c-looking-at-non-alphnumspace): New macros. + (c-sc-parse-partial-sexp-no-category): New function. + (c-emacs-features): Add `category-properties' element. + + * progmodes/cc-cmds.el (c-forward-into-nomenclature) + (c-backward-into-nomenclature): Use cc-subword if subword-mode is + not available. + (c-beginning-of-defun, c-end-of-defun, c-mark-function) + (c-indent-line-or-region): Use c-region-is-active-p. + + * progmodes/cc-bytecomp.el (cc-bytecomp-unbound-variables) + (cc-bytecomp-original-functions, cc-bytecomp-original-properties) + (cc-bytecomp-loaded-files): Re-set each time the file is loaded. + (cc-bytecomp-obsolete-var, cc-bytecomp-ignore-obsolete) + (cc-bytecomp-obsolete-fun): Delete unused functions. + + * progmodes/cc-align.el (c-lineup-respect-col-0): New function. + +2014-12-01 Lars Magne Ingebrigtsen + + * net/shr.el (shr-dom-print): Fix up `shr-dom-print' after the + dom.el changes. + +2014-12-01 Stefan Monnier + + * vc/vc.el (vc-find-conflicted-file): Look for conflicted files in the + current "project" rather than just the current directory. + * vc/vc-git.el (vc-git-conflicted-files): Clarify in which directory + the file names make sense. + + * vc/smerge-mode.el (smerge-swap): New command. + + * vc/diff-mode.el (diff-kill-applied-hunks): New command. + +2014-12-01 Ulf Jasper + + * net/newst-treeview.el (newsticker--treeview-item-show): + Check window liveliness before measuring its width. + + * net/newst-backend.el (newsticker--get-news-by-url-callback): + Pass correct status to `newsticker--sentinel-work'. + (newsticker--sentinel-work): Use "newsticker--download-error" as + guid in order to prevent multiple "Could not download..." + messages. Fixes bug#19166. + +2014-12-01 Ivan Shmakov + + * net/eww.el (eww-render): Call `eww-after-render-hook' in the + correct buffer (bug#19225). + +2014-12-01 Lars Magne Ingebrigtsen + + * net/nsm.el (network-security-level): Change the default to `medium'. + + * net/eww.el (eww): Leave point in a place that doesn't cause + scrolling when displaying "Loading...". + +2014-12-01 Eric S. Raymond + + * vc/vc.el, vc/vc-cvs.el, vc/vc-rcs.el, vc/vc-svn.el: The 'merge' + backend method of RCS/CVS/SVN is now 'merge-file', to contrast with + 'merge-branch'. Prompting for merge revisions is pushed down to + the back ends; this fixes a layering violation that caused bad + behavior with SVN. + + * vc/vc.el, vc-hooks.el, and all backends: API simplification; + vc-stay-local-p and repository-hostname are no longer public + methods. Only the CVS and SVN backends used these, and the SVN + support was conditioned out because svn status -v is too slow. + The CVS back end retains this machibery and the vc-stay-local + configuration variable now only affects it. + +2014-12-01 Stefan Monnier + + * emacs-lisp/inline.el: New file. + +2014-12-01 Eric S. Raymond + + * vc/vc.el, vc-hooks.el, and all backends: API simplification; + vc-state-heuristic is no longer a public method, having been + removed where it is redundant, unnecessary, or known buggy. + This eliminated all backends except CVS. Eliminates bug#7850. + + * vc/vc-cvs.el, vc/vc-hooks.el, vc/vc-rcs.el, vc/vc-sccs.el: + Eliminate vc-mistrust-permissions. It was only relevant to the + RCS and SCCS back ends and defaulted to t. Code now always + mistrusts permissions - by actual measurement the effect on + performance is negligible. As a side effect bug#11490 is now + irrelevant. + + * vc/vc.el, vc-hooks.el, and all backends: API simplification; + vc-workfile-unchanged-p is no longer a public method (but the RCS + and SCCS back ends retain it as a private method used in state + computation). This method was redundant with vc-state and usually + implemented as a trivial call to same. Fixes the failure mode + described in bug#694. + + * vc/vc.el and all backends: API simplification; init-revision is + gone, and vc-registered functions no longer take an + initial-revision argument. + +2014-11-29 Glenn Morris + + * vc/vc-src.el (vc-src, vc-src-diff-switches) + (vc-src-master-templates): Fix :version tags. + +2014-11-29 Paul Rankin (tiny change) + + * outline.el (outline-move-subtree-down): Refactor and improve code. + +2014-11-29 Stephen Berman + Stefan Monnier + + * outline.el (outline-move-subtree-down): Make sure we can move + forward to find the end of the subtree and the insertion point + (bug#19102). + +2014-11-29 Fabián Ezequiel Gallina + + * progmodes/python.el (python-shell-completion-setup-code): + Use __builtin__ module (or builtins in Python 3) and catch all errors + when importing readline and rlcompleter. + +2014-11-29 Stephen Berman + + * calendar/todo-mode.el: Handle calling revert-buffer (bug#19187). + (todo-revert-buffer): New function. + (todo-modes-set-1): Use it as the buffer-local value of + revert-buffer-function. + +2014-11-29 Stephen Berman + + * calendar/todo-mode.el (todo-mode): If called interactively, just + display a message saying to call todo-show to enter Todo mode + (Bug#19112). + +2014-11-29 Dmitry Gutov + + * vc/vc-hg.el (vc-hg-dir-status-files): Include ignored files. + (Bug#18579) + + * vc/vc-bzr.el (vc-bzr-after-dir-status): Don't skip ignored + files. (Bug#18579) + +2014-11-29 Michael Albinus + + * textmodes/makeinfo.el (makeinfo-buffer): Make it work also for + remote `buffer-file-name'. + +2014-11-29 Leo Liu + + * calendar/diary-lib.el (calendar-mark-1): Fix thinko. + +2014-11-29 Fabián Ezequiel Gallina + + Set PYTHONUNBUFFERED on shell startup. + + * progmodes/python.el (python-shell-unbuffered): New var. + (python-shell-calculate-process-environment): Use it. + +2014-11-29 Michael Albinus + + * net/tramp.el (tramp-action-password): Clean password on subsequent + attempts even if there was no wrong password indication. (Bug#19047) + + * net/tramp-sh.el (tramp-get-remote-locale): Return "LC_ALL=C" as + fallback. + (tramp-open-connection-setup-interactive-shell): No need to check + for nil as `tramp-get-remote-locale' return value. + +2014-11-29 Eli Zaretskii + + * vc/vc-git.el (vc-git-command, vc-git--call): + Bind coding-system-for-read and coding-system-for-write to + vc-git-commits-coding-system. + (vc-git-previous-revision): Use "~1" instead of "^", since the + latter is a special character for MS-Windows system shells. + +2014-11-29 Michael Albinus + + Improve XEmacs compatibility. + + * net/tramp.el (tramp-autoload-file-name-handler): + Wrap `temporary-file-directory' by `symbol-value', it doesn't + exist in XEmacs. + (tramp-read-passwd): Don't use `with-timeout-suspend' and + `with-timeout-unsuspend' if they don't exist, like in XEmacs. + (tramp-time-less-p, tramp-time-subtract): Remove functions. + (tramp-handle-file-newer-than-file-p, tramp-time-diff): + * net/tramp-adb.el (tramp-adb-ls-output-time-less-p): + * net/tramp-cache.el (tramp-get-file-property): + * net/tramp-smb.el (tramp-smb-handle-insert-directory): + Use `time-less-p' and `time-subtract, respectively. + + * net/tramp-adb.el (top): Do not require time-date.el. + + * net/tramp-compat.el (top): Require time-date.el for XEmacs. + + * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Check, whether `utf-8' is a valid coding system. + +2014-11-29 Eli Zaretskii + + * vc/vc.el (vc-retrieve-tag): Doc fix. + +2014-11-28 Stefan Monnier + + * simple.el (execute-extended-command--shorter): Fix the "M-p" case + (bug#19152). + +2014-11-28 Martin Rudalics + + Fix two issues around help-window-select. (Bug#11039) (Bug#19012) + * help.el (help-window-old-frame): New variable. + (help-window-select): Default to nil (Bug#11039). + Rewrite doc-string. + (help-window-setup): When the help window appears on another + frame and `help-window-select' is non-nil, give that frame input + focus too (Bug#19012). + (with-help-window): Store selected frame in + help-window-old-frame. + +2014-11-28 Ulf Jasper + + * net/newst-treeview.el (newsticker--treeview-load): Take care of + nil value for `newsticker-groups-filename'. + +2014-11-28 Daiki Ueno + + * epa.el (epa-sign-file, epa-encrypt-file, epa-decrypt-region) + (epa-sign-region, epa-encrypt-region): + Use `epg-context-set-{passphrase,progress}-callback', instead of + `setf'. This partially reverts commit 9e48a95c (bug#19150). + Reported by José A. Romero L. + +2014-11-27 Lars Magne Ingebrigtsen + + * net/eww.el (eww-restore-history): + Bind `inhibit-modification-hooks' instead of `after-change-functions'. + +2014-11-27 Ulf Jasper + + * net/newst-backend.el (newsticker--parse-atom-1.0): + Handle embedded (x)html in summary node. + +2014-11-27 Sam Steingold + + * menu-bar.el (menu-bar-open): When everything else fails, + use (mouse-menu-bar-map). + +2014-11-27 Ulf Jasper + + * net/newst-treeview.el (newsticker-groups-filename): + Change default value to nil. Point out that variable is obsolete in doc + string. + (newsticker--treeview-load): Change wording of the questions the + user is asked when `newsticker-groups-filename' is found to be + used and we offer to read and remove the groups file. (bug#19165) + +2014-11-27 Lars Magne Ingebrigtsen + + * net/eww.el (eww): Record the new URL immediately, so that if the + HTTP fetch fails, we have the right URL in the buffer. + (eww-process-text-input): Don't shorten the input field if + deleting at the last character (bug#19085). + (eww-restore-history): Inhibit change functions while restoring + the history. + (eww-process-text-input): Fix deletion at the start of the field, too. + (eww-mode): Revert mistanken removal of `buffer-disable-undo'. + (eww-process-text-input): Try to keep track of the size more reliably. + + * dom.el (dom-pp): New function. + +2014-11-27 Eli Zaretskii + + * vc/vc-bzr.el (vc-bzr-print-log, vc-bzr-expanded-log-entry): + Don't assume --long is the default for "bzr log", always specify + it explicitly, in case the user defined an alias for 'log' that + uses some other format. + +2014-11-27 Fabián Ezequiel Gallina + + * progmodes/python.el (python-eldoc--get-doc-at-point): + Strip shell output before returning. (bug#18794) + +2014-11-27 Dmitry Gutov + + Fix indentation before `!=' and after `+='. Originally reported + in https://github.com/mooz/js2-mode/issues/174. + * progmodes/js.el (js--indent-operator-re): Make assignments and + (in)equality operator a separate case. + (js--continued-expression-p): Escape the second `+' in the regexp. + +2014-11-27 Stefan Monnier + + * window.el (handle-select-window): Deactivate shift-region (bug#19003). + +2014-11-26 Lars Magne Ingebrigtsen + + * net/nsm.el (nsm-new-fingerprint-ok-p): Display the certificate + when querying about new certificates. + + * net/shr.el (shr-make-table-1): dom.el changes for table rendering. + + * dom.el (dom-by-tag): Use `equal' for comparisons so that tags + can be strings. + (dom-elements): Protect against non-text nodes. + (dom-non-text-children): New function. + + * net/eww.el (eww-tag-title): Use `dom-text'. + +2014-11-26 Sam Steingold + + * textmodes/sgml-mode.el (sgml-validate-command): Pass -utf8 to tidy. + +2014-11-26 Lars Magne Ingebrigtsen + + * net/eww.el (eww-highest-readability): More dom.el fixes. + +2014-11-26 Ulf Jasper + + * net/newst-backend.el (newsticker--parse-generic-items): + Take care of UIDs when adding elements to cache. + +2014-11-26 Alan Mackenzie + + Remove spurious reference to symbol category_properties. + * progmodes/cc-engine.el (c-state-pp-to-literal): Fix here. + +2014-11-26 Lars Magne Ingebrigtsen + + * net/eww.el: Use the new dom.el accessors throughout. + + * net/shr.el: Ditto. + + * dom.el: New file. + +2014-11-26 Glenn Morris + + * arc-mode.el (archive-visit-single-files): Add :version. + +2014-11-25 Lars Magne Ingebrigtsen + + * net/nsm.el (nsm-format-certificate): Don't bug out on missing + elements. + (nsm-warnings-ok-p): The new version of this function always + returned nil when everything was OK. + +2014-11-25 Teodor Zlatanov + + * net/gnutls.el (gnutls): Set :group to 'comm so it's near NSM. + + * net/nsm.el (nsm-check-tls-connection, nsm-save-host) + (nsm-warnings-ok-p): Use `gnutls-peer-status-warning-describe'. + +2014-11-20 Nicolas Richard + + * emacs-lisp/byte-run.el (function-put): Match argument names to + docstring. + +2014-11-24 Sam Steingold + + * vc/vc-hooks.el (vc-directory-exclusion-list): + Fix a trivial typo (bug#19171). + +2014-11-24 Stefan Monnier + + * vc/vc-hooks.el (vc-state-base-face): Don't override + mode-line-inactive. + +2014-11-24 Lars Magne Ingebrigtsen + + * net/eww.el (eww-set-character-encoding): Use `read-coding-system'. + (eww-process-text-input): Inhibit read only so that input fields + don't get shortened (bug#19085). + +2014-11-24 Leo Liu + + * emacs-lisp/macroexp.el (macroexp-let2*): New macro. + + * window.el (with-temp-buffer-window) + (with-current-buffer-window, with-displayed-buffer-window): + * emacs-lisp/cl-macs.el (cl--compiler-macro-adjoin): + * emacs-lisp/cl-lib.el (substring): + * emacs-lisp/cl-extra.el (cl-getf): Use it. + +2014-11-24 Eli Zaretskii + + * isearch.el (isearch-update): Don't assume + pos-visible-in-window-p will return nil when point is hscrolled + out of view. (Bug#19157) + +2014-11-20 Andrey Kotlarski + + * net/eww.el (eww-browse-url): Optionally create new eww buffer. + (eww-follow-link): Follow in new buffer in case of prefix + argument, open externally with double prefix (bug#19130). + +2014-11-23 Lars Magne Ingebrigtsen + + * net/eww.el (eww-display-html): Decode the document-defined charset. + (eww): Pop to the *eww* buffer immediately after executing the + `M-x eww' command to avoid having buffers pop up later. + (eww-display-html): Don't pop the *eww* buffer. + (eww-display-raw): Ditto. + (eww-display-image): Ditto. + (eww-follow-link): Make going to #targets in the page work again. + +2014-11-23 Ivan Shmakov + + * net/eww.el (eww-suggest-uris): New variable. + (eww-suggested-uris): New function. + (eww): Default to URL under point. + (eww-links-at-point): New function. + +2014-11-20 Mark Oteiza (tiny change) + + * net/eww.el (eww-add-bookmark): Fix bookmark titles. + +2014-11-17 Mark Oteiza (tiny change) + + * net/eww.el (eww-mode-map): Bind backtab to shr-previous-link. + +2014-11-23 Kenjiro Nakayama + + * net/eww.el (eww-set-character-encoding): New command and keystroke. + (eww-display-raw): Use it (bug#16225). + +2014-11-23 Lars Magne Ingebrigtsen + + * net/nsm.el (network-security-level): Rename from + `nsm-security-level' and documented. + + * mail/smtpmail.el (smtpmail-via-smtp): Warn unless encrypted and + we're sending a password. + + * net/nsm.el: New file that implements a Network Security Manager. + + * net/network-stream.el (open-network-stream): Add a new + :warn-unless-encrypted parameter. + (network-stream-open-plain): Allow warning unless encrypted. + (network-stream-open-starttls): Call the Network Security Manager. + (network-stream-open-tls): Ditto. + +2014-11-23 Leo Liu + + * calendar/cal-china.el (calendar-chinese-from-absolute-for-diary) + (calendar-chinese-to-absolute-for-diary) + (calendar-chinese-mark-date-pattern, diary-chinese-anniversary): + Handle leap months in Chinese calendar. (Bug#18953) + +2014-11-22 Alan Mackenzie + + Fix error with `mark-defun' and "protected:" in C++ Mode. + Fixes: debbugs:19134. + + * progmodes/cc-cmds.el (c-where-wrt-brace-construct): Handle a + return code of (label) from c-beginning-of-decl-1. + +2014-11-22 Ulf Jasper + + * net/newst-backend.el (newsticker--sentinel-work): + Tell `libxml-parse-xml-region' to discard comments. Fixes bug#18787. + +2014-11-22 Michael Albinus + + * net/tramp-sh.el (tramp-sh-handle-start-file-process) + (tramp-sh-handle-process-file): Propagate `process-environment'. + + * vc/vc-hg.el (vc-hg-state): No special handling for remote files; + Tramp propagates environment variables now. + +2014-11-22 Eric S. Raymond + + * vc/vc-filewise.el: New file to isolate code used only by the + file-oriented back ends (SCCS/RCS/CVS/SRC) which should not + live in vc.el and certainly not in vc-hooks.el. + + * vc/vc-hooks.el, vc-rcs.el, vc-sccs.el: vc-name -> vc-master-name. + This is preaparatory to isolating all the 'master' functions + used only by the file-oriented back ends. With this done first, + the substantive diffs will be easier to read. + +2014-11-21 Rüdiger Sonderfeld + + * play/morse.el (nato-alphabet): Mark URL in docstring in a way + that is recognized by `help-mode'. + +2014-11-21 Stefan Monnier + + * desktop.el (desktop-create-buffer): Use activate-mark to set + `mark-active' (bug#19058). + +2014-11-21 Eric S. Raymond + + * vc/vc-src.el (vc-src-state): Fix bug that produced spurious + nil state. + +2014-11-21 Eli Zaretskii + + * vc/vc.el (vc-deduce-fileset): Support invocation from + *vc-change-log* buffer. (Bug#19084) + +2014-11-13 Matthew Leach + + * arc-mode.el (archive-visit-single-files): New. + (archive-mode): Visit file if archive contains a single file. + (Bug#1702) + +2014-11-21 Ulrich Müller + + * vc/vc.el: Fix a typo in the commentary. + +2014-11-20 Eric S. Raymond + + * vc/vc-src.el, vc/vc.el: Added support for SRC. Needs more + testing and a real log-view mode. + + * vc/vc-bzr.el, vc/vc-cvs.el, vc/vc-dav.el, vc/vc-git.el: + * vc/vc-hg.el, vc/vc-mtn.el, vc/vc-rcs.el, vc/vc-sccs.el: + * vc/vc-svn.el, vc/vc.el: Remove editable argument from the backend + checkout methods; where it matters (which is only in SCCS and RCS) + files are always checked out editable. This may actually have + been dynamically true already - it looks like the vc-next-action + code evolved past visiting the other case. Tested with RCS. + + * vc/vc-arch.el, vc/vc-bzr.el, vc/vc-cvs.el, vc/vc-dav.el: + * vc/vc-git.el, vc/vc-hg.el, vc/vc-mtn.el, vc/vc-rcs.el: + * vc/vc-sccs.el, vc/vc-svn.el, vc/vc.el: Remove never-used rev + argument from the backend checkin methods. Only the RCS, SCCS, + and CVS back ends tried to do anything with it, and that code was + never exercised. Chiseling away the cruft of decades... + +2014-11-19 Lars Magne Ingebrigtsen + + * net/eww.el (eww-render): Remove a no-op :title setting. + +2014-11-19 Ivan Shmakov + + * net/eww.el (eww-history-limit): New variable. + (eww-save-history): Use it (bug#19105). + (eww-reload): Reload the page in the right buffer. + +2014-11-19 Lars Magne Ingebrigtsen + + * net/eww.el (eww-desktop-misc-data): Use `cl-remove-duplicates'. + +2014-11-19 Ivan Shmakov + + * net/eww.el (eww-desktop-remove-duplicates) + (eww-restore-desktop, eww-restore-reload-prompt): New variables. + (eww-mode): Set up desktop mode (bug#18010). + (eww-desktop-data-save, eww-desktop-data-1) + (eww-desktop-history-duplicate, eww-desktop-misc-data) + (eww-restore-desktop): New functions. + +2014-11-19 Eli Zaretskii + + * vc/vc.el (vc-log-internal-common): Turn on log-view-mode in the + correct buffer. (Bug#19101) + +2014-11-19 Rüdiger Sonderfeld + + * vc/vc-git.el (vc-git-diff): Use "difftool -x diff" with + `diff-switches' if `vc-git-diff-switches' is nil. (Bug#19099) + +2014-11-19 Artur Malabarba + + * lisp/ido.el (ido-bury-buffer-at-head): New command. + (ido-buffer-completion-map): Bind it to C-S-b. + +2014-11-18 Juri Linkov + + * simple.el (next-line-or-history-element): Wrap next-line + in with-no-warnings. + (previous-line-or-history-element): Wrap previous-line + in with-no-warnings. + +2014-11-18 Juri Linkov + + * progmodes/grep.el (grep-compute-defaults): + Compute grep-highlight-matches before its use. + +2014-11-18 Juri Linkov + + * replace.el (query-replace-from-to-separator): Turn defvar into + defcustom. Wrap char-displayable-p in ignore-errors because an + attempt to autoload char-displayable-p fails during pre-loading. + Move (propertize "\0" ... 'separator t) out of customizable part + to query-replace-read-from. + (query-replace-read-from): Call custom-reevaluate-setting on + query-replace-from-to-separator to reevaluate the separator + depending on the return value of char-displayable-p. + http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg00466.html + +2014-11-18 Juri Linkov + + * bindings.el (minibuffer-local-map): Rebind [down] from + next-history-element to next-line-or-history-element, and [up] + from previous-history-element to previous-line-or-history-element. + + * simple.el (next-line-or-history-element) + (previous-line-or-history-element): New commands. + http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg00822.html + +2014-11-18 Leo Liu + + * emacs-lisp/nadvice.el (define-advice): New macro. + * emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): + Add define-advice. + (lisp-font-lock-keywords-1): Add define-advice. + +2014-11-18 Daiki Ueno + + * epg.el (epg-context): New slot EDIT-CALLBACK. + (epg--process-filter): Call EDIT-CALLBACK when editing a key. + (epg-reset): Reset EDIT-CALLBACK of the context. + (epg-start-edit-key): New function. + (epg-edit-key): New function. + +2014-11-18 Paul Eggert + + Port new time stamp handling to Emacs 23.2. + This fix is for Gnus. Problem reported by Katsumi Yamaoka. + * calendar/time-date.el (time-add, time-subtract, time-less-p): + Use eval-and-compile, not eval-when-compile. + +2014-11-18 Daiki Ueno + + * epg.el (epg-context-set-passphrase-callback) + (epg-context-set-progress-callback): Check if the CALLBACK + argument is a function, instead of a cons. + +2014-11-18 Daiki Ueno + + * epa-file.el (epa-file-insert-file-contents) + (epa-file-write-region): Remove redundant check of + epa-pinentry-mode. + * epa.el (epa-sign-file, epa-encrypt-file, epa-decrypt-region) + (epa-sign-region, epa-encrypt-region): Remove redundant check of + epa-pinentry-mode. + +2014-11-18 Daiki Ueno + + * epa-file.el (epa-file-insert-file-contents): Don't show + "*Error*" buffer if input file does not exist. + Reported by Herbert J. Skuhra. + +2014-11-18 Paul Pogonyshev + Rüdiger Sonderfeld + + * progmodes/cc-langs.el: Support some of the new keywords in C++11. + An alternative version of the patch from bug#13871. + (c-operators): Add "alignof". + (c-primitive-type-kwds): Add "char16_t", "char32_t". + (c-type-modifier-kwds): Add "constexpr", "noexcept". + (c-modifier-kwds): Add "thread_local". + (c-constant-kwds): Add "nullptr". + +2014-11-17 Michal Nazarewicz + + * textmodes/tildify.el (tildify-pattern, tildify-space-string): + New variables for specifying tildify pattern and representation of + a hard space -- a no-break space by default -- respectively. + Being buffer-local they are much easier to handle than + `tildify-string-alist' and `tildify-pattern-alist' respectively + that have been used so far. They also works better with derived + modes. + (tildify-foreach-region-function): New variable specifying + a function determining portions of buffer that should be + tildified. It allows major modes to create a filtering function + more elaborate than a set of regular expressions. Initialised to + `tildify--deprecated-ignore-evironments' by default to handle now + deprecated `tildify-ignored-environments-alist' variable. + (tildify--foreach-region): A new function that takes + `tildify-foreach-region-function' into account and calls callback + for regions of the buffer that should be tildified. + (tildify-foreach-ignore-environments): A new function which can be + partially applied and used as `tildify-foreach-region-function'. + (tildify-ignored-environments-alist, tildify-pattern) + (tildify-string-alist, tildify--pick-alist-entry): Mark as obsolete. + (tildify--find-env): Rename from `tildify-find-env' and mark as + obsolete. + (tildify--deprecated-ignore-evironments): New function, + immediately marked as obsolete, used to handle deprecated + `tildify-ignored-environments-alist'. + + * textmodes/tex-mode.el (tex-common-initialization): + Set `tildify-space-string' and `tildify-foreach-region-function' + variables in all variants of TeX mode since `tildify-string-alist' + and `tildify-ignored-environments-alist' are now empty by default. + + * nxml/nxml-mode.el (nxml-mode): Ditto in `nxml-mode'. + If encoding supports it use no-break space instead of character + entity; this changes previous default which used a numeric + reference. + + * textmodes/sgml-mode.el (sgml-mode): ditto in `sgml-mode'. + If encoding does not support no-break space, use numeric reference; + this changes previous default which used named entity (“ ”) + in HTML mode. + +2014-11-17 Ulf Jasper + + * calendar/icalendar.el (icalendar-export-alarms): + New customizable variable. (Bug#5433) + (icalendar-export-region): Export alarms as specified in + `icalendar-export-alarms'. + (icalendar--create-ical-alarm, icalendar--do-create-ical-alarm): + New functions for exporting alarms. + +2014-11-17 Lars Magne Ingebrigtsen + + * bindings.el (search-map): Move `eww-search-words' to `M-s M-w'. + +2014-11-17 Paul Eggert + + Port new time stamp handling to old Emacs and to XEmacs. + This is needed for Gnus, which copies time-date.el and which + runs on older Emacs implementations. + * calendar/time-date.el (with-decoded-time-value): + Handle 'nil' and floating-point arg more compatibly with new Emacs. + (encode-time-value, with-decoded-time-value): + Obsolete only if new Emacs. + (time-add, time-subtract, time-less-p): Define if not new Emacs. + + Improve time stamp handling, and be more consistent about it. + This implements a suggestion made in: + http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00587.html + Among other things, this means timer.el no longer needs to + autoload the time-date module. + * allout-widgets.el (allout-elapsed-time-seconds): Doc fix. + * arc-mode.el (archive-ar-summarize): + * calendar/time-date.el (seconds-to-time, days-to-time, time-since): + * emacs-lisp/timer.el (timer-relative-time, timer-event-handler) + (run-at-time, with-timeout-suspend, with-timeout-unsuspend): + * net/tramp.el (tramp-time-less-p, tramp-time-subtract): + * proced.el (proced-time-lessp): + * timezone.el (timezone-time-from-absolute): + * type-break.el (type-break-schedule, type-break-time-sum): + Simplify by using new functionality. + * calendar/cal-dst.el (calendar-next-time-zone-transition): + Do not return time values in obsolete and undocumented (HI . LO) + format; use (HI LO) instead. + * calendar/time-date.el (with-decoded-time-value): + Treat 'nil' as current time. This is mostly for XEmacs. + (encode-time-value, with-decoded-time-value): Obsolete. + (time-add, time-subtract, time-less-p): Use no-op autoloads, for + XEmacs. Define only if XEmacs, as they're now C builtins in Emacs. + * ldefs-boot.el: Update to match new time-date.el + * proced.el: Do not require time-date. + +2014-11-16 Lars Magne Ingebrigtsen + + * net/eww.el (eww-mode): Make the buffer read-only. + (eww-form-text): Inhibit read-only-ness in text input fields + (bug#16476). + +2014-11-16 Stefan Monnier + + * simple.el (execute-extended-command--shorter): Cut search here. + (execute-extended-command): Instead of here. + +2014-11-16 Fabián Ezequiel Gallina + + * progmodes/python.el (python-mode): Avoid use of set-local to + keep Emacs 24.x compatibility. + +2014-11-16 Lars Magne Ingebrigtsen + + * net/shr.el (shr): Move to the new defgroup `web'. + + * net/eww.el (eww): Ditto. + + * simple.el (execute-extended-command): Don't show the help + message if the binding isn't significantly shorter than the + M-x command the user typed (bug#19013). + +2014-11-16 Ulf Jasper + + * calendar/icalendar.el (icalendar--convert-tz-offset): + Return complete cons when offsets of standard time and daylight saving + time are equal. + (icalendar-export-region): Fix unbound variable warning. + +2014-11-16 Fabián Ezequiel Gallina + + * progmodes/python.el (run-python): Allow CMD to be optional and + default it to a safe command, even for Windows. (bug#18596) + +2014-11-16 Fabián Ezequiel Gallina + + * progmodes/python.el (python-shell-calculate-command): + Rename from python-shell-parse-command. Cleanup. + (run-python, run-python-internal): Use it. + (python-shell-calculate-pythonpath): Rename from + python-new-pythonpath. + (python-shell-calculate-process-environment): Use it. + (python-shell-calculate-exec-path): Add comment. + +2014-11-16 Thierry Banel (tiny change) + + * calc/calc-arith.el (math-max-list, math-min-list): Fix bug + for date handling. + +2014-11-16 Andreas Schwab + + * version.el (emacs-repository-get-version): Use git rev-parse + instead of git log. + +2014-11-16 Fabián Ezequiel Gallina + + * progmodes/python.el (python-indent-calculate-levels): + Fix indentation behavior multiline dedenter statement. (Bug#18432) + +2014-11-16 Fabián Ezequiel Gallina + + * progmodes/python.el (python-indent-region): + Use python-indent-line and skip special cases. (Bug#18843) + +2014-11-16 Peder O. Klingenberg + + * mail/emacsbug.el (report-emacs-bug): Make a better guess at + envelope-from when reporting through sendmail (bug#19054). + +2014-11-16 Oscar Fuentes + + Add faces for the VC modeline state indicator. + * lisp/vc/vc-hooks.el: + (vc-state-faces, vc-state-base-face) + (vc-up-to-date-state, vc-needs-update-state) + (vc-locked-state, vc-locally-added-state) + (vc-conflict-state, vc-removed-state) + (vc-missing-state, vc-edited-state): + New faces. + (vc-default-mode-line-string): Use them + +2014-11-16 Stefan Monnier + + * emacs-lisp/backquote.el (backquote-process): Optimize away ",'". + +2014-11-15 Lars Magne Ingebrigtsen + + * net/eww.el (eww-search-words): Mention `eww-search-prefix'. + +2014-11-15 Fabián Ezequiel Gallina + + * progmodes/python.el (python-eldoc-setup-code): Enhance string + type checks, simplify printing. (Bug#18962) + +2014-11-14 Ivan Andrus + + * progmodes/python.el (python-shell-font-lock-kill-buffer): + (python-shell-font-lock-with-font-lock-buffer) + (python-shell-get-buffer, python-ffap-module-path): + Use `derived-mode-p' instead of equality test on `major-mode'. + +2014-11-14 Fabián Ezequiel Gallina + + * progmodes/python.el (python-shell-virtualenv-root): Rename from + python-shell-virtualenv-path. + (python-shell-internal-get-process-name) + (python-shell-calculate-process-environment) + (python-shell-calculate-exec-path): Use it. + +2014-11-14 Eli Zaretskii + + * bindings.el (search-map): Fix last change: don't use 'kbd' in + bindings.el, since it is not yet loaded when bindings.el is + preloaded. + +2014-11-14 Fabián Ezequiel Gallina + + * progmodes/python.el (python-shell-completion-get-completions): + Fix previous merge. + +2014-11-14 Lars Magne Ingebrigtsen + + * net/eww.el (eww-render): Don't set the title to the URL. + +2014-11-13 Ulrich Müller + + * version.el (emacs-repository-get-version): Call `git log' + command with proper format argument (bug#19049). + +2014-11-14 Lars Magne Ingebrigtsen + + * bindings.el (search-map): Bind M-s M-s to `eww-search-words'. + +2014-11-14 Kenjiro NAKAYAMA + + * net/eww.el (eww-search-words): New command (bug#16258). + +2014-11-13 Lars Magne Ingebrigtsen + + * net/shr.el (shr-inhibit-images): Add a doc string. + + * net/eww.el (eww-after-render-hook): New variable. + (eww-render): Use it. + + * net/shr.el (shr-descend): Don't descend further than + `max-specpdl-size' allows (bug#16587). + (shr-depth): New variable. + (shr-warning): New variable. + +2014-11-13 Ivan Shmakov + + * net/shr.el (shr-parse-base): Handle correctly. + (shr-expand-url): Expand absolute URLs correctly (bug#17958). + +2014-11-13 Lars Magne Ingebrigtsen + + * net/eww.el (eww): Add comment to clarify. + + * net/shr.el (shr-parse-image-data): Remove blocked bits from + external SVG images. + (shr-tag-object): Display images in forms (bug#16244). + (shr-tag-table): Also insert after the tables. + +2014-11-13 Michael Albinus + + * vc/vc-hg.el (vc-hg-state): Disable pager. (Bug#18940) + +2014-11-13 Lars Magne Ingebrigtsen + + * net/eww.el (eww-form-file): Fix version number. + +2014-11-10 Lars Magne Ingebrigtsen + + * net/eww.el (eww-form-file): :type isn't a valid `defface' keyword. + +2014-11-10 Kenjiro NAKAYAMA + + * net/eww.el(eww-form-file(defface)): New defface of file upload form. + (eww-submit-file): New key map of file upload. + (eww-form-file): New file upload button and file name context. + (eww-select-file): Select file and display selected file name. + (eww-tag-input): Handle input tag of file type. + (eww-update-field): Add point offset. + (eww-submit): Add submit with multipart/form-data. + +2014-11-10 Lars Magne Ingebrigtsen + + * net/eww.el (eww-render, eww-display-html, eww-setup-buffer): + Allow taking a buffer to render data in. This allows using several + eww buffers (bug#16211). + +2014-11-10 Charles Rendleman (tiny change) + + * net/eww.el (eww-download-callback): Save only the file contents, + not the headers. + +2014-11-10 Lars Magne Ingebrigtsen + + * net/eww.el (eww-data): New plist to store all the data relevant + to a single page, used throughout the file instead of the + variables `eww-current-url', `eww-current-dom', + `eww-current-source', and `eww-current-title'. + (eww-readable): Copy over pertinent data from the parent page. + (eww-save-history): Don't let the history grow infinitely. + + * net/eww.el: Remove `eww-next-url', `eww-previous-url', + `eww-up-url', `eww-home-url', `eww-start-url' and + `eww-contents-url' and put the data into the `eww-data' plist. + This allow restoring these values after going back in the history. + +2014-11-10 Sylvain Chouleur (tiny change) + + Allow VTIMEZONE where daylight and standard time zones are equal. + See: http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg00494.html + * calendar/icalendar.el (icalendar--convert-tz-offset): + Support timezone without daylight saving time. + +2014-11-10 Glenn Morris + + * startup.el (command-line): Handle nil elements in load-path. + +2014-11-10 Stefan Monnier + + * help.el (view-lossage): Include the actual commands run. + +2014-11-10 Dmitry Gutov + + * vc/vc-dir.el (vc-dir-hide-state): Also hide `ignored' items when + no state is specified. (Bug#18964) + +2014-11-09 Eric Ludlam + + * emacs-lisp/eieio-custom.el (eieio-customize-object): + Set eieio-cog (current group) to g, which is an improved form of input + group. + +2014-11-09 Juri Linkov + + * isearch.el (isearch-message-prefix): Show "Multi-file" and + "Multi-buffer" instead of "Multi". (Bug#13592) + + * misearch.el (multi-isearch-file-list): + Autoload multi-isearch-buffer-list and multi-isearch-file-list. + (multi-isearch-end): Reset multi-isearch-buffer-list and + multi-isearch-file-list to nil. + +2014-11-09 Stefan Monnier + + * emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): + Don't call byte-compile-preprocess since the result will go through + cconv. + (byte-compile-output-docform): Handle uninterned `name' correctly. + * emacs-lisp/cl-macs.el (cl-define-compiler-macro): Use interned name + to circumvent byte-compiler bug. + + * emacs-lisp/macroexp.el (macroexp--expand-all): Fix typo. + (macroexp--compiler-macro): Remove left-over debug code. + + * emacs-lisp/cl-extra.el (cl-get): Silence compiler warning. + +2014-11-08 Juri Linkov + + * simple.el (shell-command): Use buffer-name when output-buffer is + a buffer. (Bug#18096) + +2014-11-08 Juri Linkov + + * minibuffer.el (minibuffer-completion-help): Compare this-command + with completion-at-point. (Bug#17809) + +2014-11-08 Glenn Morris + + * emacs-lisp/bytecomp.el (byte-compile-report-error): + Allow the argument to be a string. Due to the vague doc, + it was already being used this way. + +2014-11-08 Michael Albinus + + * net/tramp.el (tramp-check-cached-permissions): Include hop in + the constructed Tramp file name. (Bug#18943) + +2014-11-08 Stefan Monnier + + * emulation/cua-base.el (cua--select-keymaps): Use region-active-p + (bug#18952). + (cua-set-mark, cua--post-command-handler-1): + * emulation/cua-gmrk.el (cua-cancel-global-mark): Same. + +2014-11-08 Michael Albinus + + * files.el (file-name-non-special): Wrap the call of + `insert-file-contents' by `unwind-protect', in order to set the + buffer's file name anyway. (Bug#18891) + +2014-11-08 Alan Mackenzie + + Fix wrong bound to c-font-lock-declarators. Fixes bug #18948. + * progmodes/cc-fonts.el (c-font-lock-declarations): + Pass "(point-max)" as bound to c-font-lock-declarators, not "limit", as + the buffer is sometimes narrowed to less than "limit" (e.g., in + the presence of macros). + +2014-11-08 Michael Albinus + + * net/tramp.el (tramp-error-with-buffer): Show connection buffer + only when message appeared in minibuffer. (Bug#18891) + + * net/tramp-adb.el (tramp-adb-handle-file-attributes): + * net/tramp-gvfs.el (tramp-gvfs-handle-file-attributes): + * net/tramp-sh.el (tramp-sh-handle-file-attributes): Return nil in + case of errors. + +2014-11-08 Stefan Monnier + + * emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): + Don't compile before eval in `eval-and-compile'. + (byte-compile-arglist-warn): Add check for defining macros after their + first use. Check call use even if the function is fboundp. + +2014-11-08 Richard Stallman + + * mail/rmail.el (rmail-epa-decrypt): Detect armor with line prefixes. + Check more carefully for mime-part specified character set. + Check for mime-part Content Transfer Encoding. + Notify if no armor found. + +2014-11-08 Martin Rudalics + + * faces.el (face-set-after-frame-default): Enable running + `window-configuration-change-hook'. + +2014-11-07 Juri Linkov + + * replace.el: History for query replace pairs. + (query-replace-defaults): Promote to a list of cons cell. Doc fix. + (query-replace-from-to-separator): New variable. + (query-replace-read-from): Let-bind query-replace-from-to-history + to a list of FROM-TO strings created from query-replace-defaults + and separated by query-replace-from-to-separator. Use it as + the history while reading from the minibuffer. Split the returned + string by the separator to get FROM and TO parts, and add them + to the history variables. + (query-replace-read-to): Add FROM-TO pairs to query-replace-defaults. + (query-replace-regexp-eval): Let-bind query-replace-defaults to nil. + http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg00253.html + + * isearch.el (isearch-text-char-description): Keep characters + intact and put formatted strings with the `display' property. + +2014-11-07 Martin Rudalics + + * cus-start.el (frame-resize-pixelwise): Fix group. + (frame-inhibit-implied-resize): Add entry. + +2014-11-07 Daiki Ueno + + * epa.el (epa-pinentry-mode): New user option. + (epa-sign-file, epa-encrypt-file, epa-decrypt-region) + (epa-sign-region, epa-encrypt-region): Respect epa-pinentry-mode. + * epa-file.el (epa-file-insert-file-contents) + (epa-file-write-region): Respect epa-pinentry-mode. + +2014-11-07 Daiki Ueno + + * epg.el (epg--list-keys-1): Ignore fields after the 15th field + (bug#18979). Reported by Hideki Saito. + +2014-11-06 Daiki Ueno + + * emacs-lisp/package.el (package--display-verify-error): New function. + (package--check-signature): Use it to display output sent to stderr. + +2014-11-06 Stefan Monnier + + * subr.el (pop): Don't call the getter twice (bug#18968). + + * emacs-lisp/macroexp.el (macroexp--expand-all): Optimize away trivial + uses of `funcall'. + +2014-11-06 Daiki Ueno + + * epa.el (epa-error-buffer): New variable. + (epa-display-error): New function. + (epa-decrypt-file, epa-verify-file, epa-verify-region) + (epa-delete-keys, epa-import-keys): Display output sent to stderr. + (epa-sign-file, epa-sign-region, epa-encrypt-region) + (epa-export-keys, epa-insert-keys): Display output sent to stderr. + Use setf instead of epg-context-set-*. + * epa-file.el (epa-file-insert-file-contents): + Use epa-display-error instead of epa-display-info. Mimic the behavior + of jka-compr when decryption program is not found. + (epa-file-write-region): Use epa-display-error instead of + epa-display-info. + +2014-11-05 Stefan Monnier + + * vc/vc.el (vc-region-history): New command. + (vc-print-log-internal): Use cl-some. + + * vc/vc-git.el (vc-git-region-history): New function. + (vc-git-region-history-mode-map) + (vc-git--log-view-long-font-lock-keywords) + (vc-git-region-history-font-lock-keywords): New vars. + (vc-git-region-history-font-lock): New function. + (vc-git-region-history-mode): New major mode. + +2014-11-05 Tassilo Horn + + * net/eww.el (subr-x): Require subr-x at compile-time because eww + uses string-trim. + +2014-11-05 Daiki Ueno + + * epg.el (epg-context): Add new slot ERROR-OUTPUT. + (epg-error-output): New buffer-local variable. + (epg--start): Initialize epg-error-output. + (epg--process-filter): Record output lines sent to stderr, in + epg-error-output. + (epg-wait-for-completion): Copy epg-error-output to ERROR-OUTPUT + slot of context. + * epa-file.el (epa-file-insert-file-contents): On error, display + output sent to stderr. + (epa-file-write-region): Likewise. + +2014-11-05 Eli Zaretskii + + * jit-lock.el (jit-lock-stealth-fontify): Be tolerant to nil being + returned by load-average. + +2014-11-05 Michael Albinus + + * net/tramp-sh.el (tramp-do-copy-or-rename-file-via-buffer): Don't use + a local copy; setting `inhibit-file-name-handlers' proper might be + more performant. (Bug#18751) + +2014-11-05 Glenn Morris + + * mail/emacsbug.el (report-emacs-bug): No longer include + recent-keys in the report. (Bug#18900) + +2014-11-04 Paul Eggert + + * mouse.el (mouse-drag-line): Fix misspelling of "right-fringe". + +2014-11-04 Teodor Zlatanov + + * net/eww.el (eww): Trim URL with `string-trim'. + Suggested by Vibhav Pant . + +2014-11-03 Lars Magne Ingebrigtsen + + * net/eww.el (eww-score-readability): Don't count comments positively. + + * net/shr.el (shr-retransform-dom): Typo fix. + + * net/eww.el (eww-score-readability): Parse SVC images correctly. + (eww-display-html): Don't leave point inside forms. + + * net/shr.el: Ditto. + +2014-11-03 Stefan Monnier + + * emacs-lisp/edebug.el (edebug-safe-prin1-to-string): Assume that + edebug-prin1-to-string already handles circularity. + + * emacs-lisp/byte-run.el (defun-declarations-alist): Fix compiler-macro + autoloading when specified as a lambda. + + * simple.el (execute-extended-command--last-typed): New var. + (read-extended-command): Set it. + Don't complete obsolete commands. + (execute-extended-command--shorter-1) + (execute-extended-command--shorter): New functions. + (execute-extended-command): Use them to suggest shorter names. + (indicate-copied-region, deactivate-mark): Use region-active-p. + +2014-11-03 Michael Albinus + + * net/tramp-sh.el (tramp-do-copy-or-rename-file-via-buffer): Use a + local copy of FILENAME, when it is remote. (Bug#18751) + + * net/tramp-adb.el (tramp-adb-handle-process-file): Do not raise + an error when the command fails; the return code must indicate. + (tramp-adb-send-command-and-check): Fix docstring. + +2014-11-03 Lars Magne Ingebrigtsen + + * net/shr.el (shr-retransform-dom): Don't ignore elements that + have no children like
. + + * net/eww.el (eww-display-html): Clear `url-queue'. + (eww-display-pdf): New function. + (eww-render): Display PDFs with `doc-view'. + (url-queue): Require `url-queue' to avoid compilation warning. + (eww-colorize-region): Remove duplicate function. + (eww-tag-body): Use `shr-colorize-region'. + +2014-11-03 Yoni Rabkin + + * net/eww.el (eww-list-bookmarks): Autoload. + +2014-11-03 Lars Magne Ingebrigtsen + + * net/shr.el (shr-retransform-dom): Allow several text sub-nodes. + + * net/eww.el (eww-display-html): The charset is called `utf-8', + not `utf8'. + (eww-readable): Decode the saved text correctly. + (eww-readable): Save the history before displaying so that we can + go back to the non-readable version. + (eww-display-html): Don't try to decode the text if we've been + passed in a pre-parsed DOM. + (eww-tag-title): Remove newlines and extra whitespace from the + displayed title. + +2014-11-02 Lars Magne Ingebrigtsen + + * net/eww.el (eww-readable): New command and keystroke. + + * net/shr.el (shr-retransform-dom): New function. + + * net/eww.el (eww-display-html): Set `eww-current-source' in the + correct buffer. + (eww-view-source): Use it. + +2014-11-02 Ivan Shmakov + + * net/eww.el (eww): Recognize colon-delimited IPv6 addresses. + (Bug#18603). + +2014-11-02 Brian McKenna (tiny change) + + * net/eww.el (eww-submit): Encode empty form values as "". (Bug#17785). + +2014-11-02 Ivan Shmakov + + * net/eww.el (eww): Allow "file:/file/name" URLs. (Bug#18825). + +2014-11-02 Ivan Shmakov + + * net/eww.el (eww-mode-map): Remove mentions of `eww-quit'. + (Bug#18834). + +2014-11-02 Eric Abrahamsen + + * emacs-lisp/eieio.el (eieio-edebug-prin1-to-string): Adjust for + use as advice. + (edebug-setup-hook): Advise `edebug-prin1-to-string'. (Bug#18897) + +2014-11-02 Stefan Monnier + + * emacs-lisp/pp.el (pp-macroexpand-expression): Use macroexpand-1 + (bug#18821). + * progmodes/elisp-mode.el (emacs-lisp-macroexpand): Idem. + +2014-11-01 Michael R. Mauger + + * sql.el (sql-mode-oracle-font-lock-keywords): Correct regexp + syntax, add new keywords, and parse longer keywords first. + (sql-redirect-one): Protect against empty command. + (sql-mode, sql-interactive-mode): Set `custom-mode-group' property + to SQL. (Bug#14759) + +2014-11-01 Michael R. Mauger + + * sql.el (sql-interactive-mode, sql-stop): Correct fix for + Bug#16814 with let-bind of comint-input-ring variables around read + and save functions. + +2014-11-01 Michael Albinus + + * net/tramp-cache.el (tramp-get-file-property) + (tramp-set-file-property): Check that `tramp-cache-get-count-*' + and `tramp-cache-set-count-*' are bound. Otherwise, there might + be compiler warnings. + + * net/tramp-sh.el (tramp-get-remote-uid, tramp-get-remote-gid): + Return -1 respective "UNKNOWN", if uid or gid cannot be determined. + +2014-11-01 Eli Zaretskii + + * progmodes/compile.el (compilation-mode): Turn off deferred + fontifications locally. (Bug#18856) + +2014-11-01 Wolfgang Jenkner + + * net/tramp-sh.el (tramp-send-command): Fix the case where the + remote-echo connection property is non-nil (bug#18858). + +2014-11-01 Stefan Monnier + + * simple.el (newline): Add assertions to try and help catch bug#18913. + + * emulation/cua-base.el (cua-delete-region): Use delete-active-region + (bug#18886). + (cua--last-deleted-region-pos, cua--last-deleted-region-text): Remove. + +2014-11-01 Kim F. Storm + + Restore cua-delete-copy-to-register-0 and M-v command (bug#18886). + * delsel.el (delete-selection-save-to-register) + (delsel--replace-text-or-position): New vars. + (delete-active-region): Use them. + (delete-selection-repeat-replace-region): New command, moved from + cua-base.el. + * emulation/cua-base.el (cua--repeat-replace-text): Remove var. + (cua-repeat-replace-region): Move command to delsel.el. + (cua--init-keymaps): Update binding accordingly. + (cua-mode): Set delete-selection-save-to-register. + +2014-11-01 Alan Mackenzie + + Make blink-parens work with a closing template delimiter. + * progmodes/cc-cmds.el (c-electric-lt-gt): Cause a redisplay + before calling blink-paren-function, so as to apply syntax-table + properties to the ">". + +2014-11-01 Jan Djärv + + * select.el (gui-get-selection): Comment: data-type ignored on NS. + +2014-10-31 Stefan Monnier + + * emacs-lisp/macroexp.el (macroexpand-1): New function (bug#18821). + (macroexp--expand-all): Unrelated tweaks. + + * emacs-lisp/gv.el (gv-get): Use macroexpand-1. + +2014-10-30 Glenn Morris + + * startup.el (command-line): Remove pointless attempt to avoid + statting the file-system (which expand-file-name doesn't do). + +2014-10-30 Daniel Colascione + + Add "enum class" support to C++ mode. + * progmodes/cc-langs.el (c-after-brace-list-decl-kwds) + (c-after-brace-list-key): New language consts/variables. + * progmodes/cc-engine.el (c-looking-at-decl-block): + Exclude spurious match of "enum struct" from decl-block recognition. + (c-backward-colon-prefixed-type): New function. + (c-backward-over-enum-header): Call above function to extend + recognition of enum structure. + +2014-10-30 Stefan Monnier + + * progmodes/cc-defs.el (c--macroexpand-all): New function (bug#18845). + (c-lang-defconst): + * progmodes/cc-langs.el (c-make-init-lang-vars-fun): Use it. + +2014-10-30 Eli Zaretskii + + * progmodes/compile.el (compilation-start): + If compilation-scroll-output is non-nil, don't force window-start of + the compilation buffer to be at beginning of buffer. (Bug#18874) + + * startup.el (fancy-about-text): Read the entire tutorial, not + just its first 256 bytes. (Bug#18760) + +2014-10-30 Stefan Monnier + + * emacs-lisp/bytecomp.el: Require cl-extra (bug#18804). + * emacs-lisp/cl-extra.el: Add missing provide. + + * emacs-lisp/bytecomp.el (byte-compile-and-folded): Optimize case where + all args are copyable (bug#18767). + (=, <, >, <=, >=): Re-enable the optimization. + +2014-10-29 Glenn Morris + + * net/rcirc.el (rcirc-fill-column): Unbump :version. Mark :risky. + + * version.el (emacs-bzr-version, emacs-bzr-get-version): + Revert 2014-10-26 change. + +2014-10-29 Paul Eggert + + Simplify use of current-time and friends. + * allout-widgets.el (allout-widgets-hook-error-handler): + * calendar/appt.el (appt-display-message): + * calendar/icalendar.el (icalendar--convert-float-to-ical): + * calendar/timeclock.el (timeclock-in, timeclock-when-to-leave) + (timeclock-last-period, timeclock-day-base): + * eshell/em-ls.el (eshell-ls-file): + * eshell/esh-util.el (eshell-parse-ange-ls): + * generic-x.el (named-database-print-serial): + * net/newst-backend.el (newsticker--get-news-by-url-callback) + (newsticker-get-news, newsticker--sentinel-work) + (newsticker--image-get, newsticker--image-sentinel): + * net/tramp-sh.el (tramp-get-remote-touch): + * progmodes/opascal.el (opascal-debug-log): + * textmodes/remember.el (remember-mail-date) + (remember-store-in-files): + * vc/vc-annotate.el (vc-annotate-display-autoscale) + (vc-default-annotate-current-time): + * vc/vc-bzr.el (vc-bzr-shelve-snapshot): + * vc/vc-cvs.el (vc-cvs-annotate-current-time): + * vc/vc-rcs.el (vc-rcs-annotate-current-time): + Omit unnecessary call to current-time. + * calendar/time-date.el (time-to-seconds) [!float-time]: + * vc/vc-annotate.el (vc-annotate-convert-time): + Use current time if arg is nil, to be compatible with float-time. + (time-date--day-in-year): New function, with most of the guts of + the old time-to-day-in-year. + (time-to-day-in-year): Use it. + (time-to-days): Use it, to avoid decoding the same time stamp twice. + * calendar/timeclock.el (timeclock-time-to-date): + Arg is now optional, like current-time-string. + (timeclock-update-mode-line): + Don't call current-time twice to get the current time stamp, + as this can lead to inconsistent results. + * completion.el (cmpl-hours-since-origin): + * ido.el (ido-time-stamp): + * vc/vc-annotate.el (vc-annotate-convert-time): + Simplify by using float-time. + * completion.el (save-completions-to-file): + Rename local var to avoid confusion. + * net/rcirc.el (rcirc-float-time): Simplify to an alias because + time-to-seconds now behaves like float-time with respect to nil arg. + * subr.el (progress-reporter-do-update): + Don't call float-time unless needed. + +2014-10-29 Leo Liu + + * net/rcirc.el (rcirc-fill-column): Use function. + (rcirc-markup-fill): Remove adjustment. + +2014-10-28 Christopher Schmidt + + * calc/calc.el (quick-calc): + * calc/calc-aent.el (calc-do-quick-calc): New argument INSERT. + +2014-10-28 Sam Steingold + + * net/rcirc.el (rcirc-fill-column): Allow any symbolic value for + the sake of `window-body-width' (in addition to `frame-width'). + +2014-10-26 Eric S. Raymond + + * version.el: Fix some fallback values to conform to the actual + release number. + +2014-10-25 Eric S. Raymond + + * Makefile.in: Change some production names so they're neutral + about the repository type. + +2014-10-25 Michael Albinus + + * net/tramp-gvfs.el (tramp-gvfs-methods-mounttracker) + (tramp-gvfs-mountlocation-signature): Check `tramp-gvfs-enabled' + during initialization. (Bug#18774) + +2014-10-25 Vincent Belaïche + + * ses.el (macroexp): Add require for this package, so that + function `ses--cell' gets macroexp-quote --- this change was + supposed to be in my previous commit, but left out by mistake. + (ses--cell): Do not make formula a macroexp-quote of value when + value, not formula, is *skip*. + +2014-10-24 Vincent Belaïche + + * ses.el (macroexp): Add require for this package, so that function + `ses--cell gets macroexp-quote. + (ses--cell): Makes formula a macroexp-quote of value when formula + is nil. The rationale of this changr is to allow in the future + shorter SES files, e.g. we could have only `(ses-cell A1 1.0)' + instead of `(ses-cell A1 1.0 1.0 nil REFLIST)'. In such a case + reference list REFLIST would be re-computed after load --- thus + trading off load time against file size. + + * emacs-lisp/package.el (package--alist-to-plist-args): + Use macroexp-quote instead of a lambda expression which has the same + content as macroexp-quote. + (macroexp): Add require for this package, so that function + `package--alist-to-plist-args' gets macroexp-quote. + + * emacs-lisp/macroexp.el (macroexp-quote): New defun. + +2014-10-24 Stefan Monnier + + * term/ns-win.el (ns-store-cut-buffer-internal) + (ns-copy-including-secondary): Use gui-set-selection (bug#18816). + +2014-10-24 Martin Rudalics + + * mouse.el (mouse-drag-line): Don't use mouse-pixel-position. + Calculate increment from last position instead of window edge. + Add right- and bottom-divider bindings to transient map. + +2014-10-23 Stefan Monnier + + * emacs-lisp/cl-macs.el (cl-defstruct): Define an internal predicate + even if :predicate was nil, for the benefit of typep. + Record the name of the predicate for typep's use. + (cl--make-type-test): Use pcase. Obey new + cl-deftype-satisfies property. + + * epg.el: Use cl-defstruct. + (epg-make-data-from-file, epg-make-data-from-string, epg-data-file) + (epg-data-string): Define via cl-defstruct. + (epg--gv-nreverse): New macro. + (epg-context--make): New constructor (provided vi cl-defstruct). + (epg-make-context): Rewrite using it. + (epg-context-protocol, epg-context-program) + (epg-context-home-directory, epg-context-armor, epg-context-textmode) + (epg-context-include-certs, epg-context-cipher-algorithm) + (epg-context-digest-algorithm, epg-context-compress-algorithm) + (epg-context-passphrase-callback, epg-context-progress-callback) + (epg-context-signers, epg-context-sig-notations, epg-context-process) + (epg-context-output-file, epg-context-result, epg-context-operation) + (epg-context-pinentry-mode): Define using cl-defstruct. + (epg-context-set-protocol, epg-context-set-program) + (epg-context-set-include-certs, epg-context-set-cipher-algorithm) + (epg-context-set-digest-algorithm) + (epg-context-set-sig-notations, epg-context-set-process) + (epg-context-set-output-file, epg-context-set-result) + (epg-context-set-operation, epg-context-set-pinentry-mode) + (epg-context-set-compress-algorithm): Remove. Use setf instead. + (epg-context-set-armor, epg-context-set-textmode) + (epg-context-set-signers): Redefine using setf + and declare as obsolete. + (epg-context-set-passphrase-callback) + (epg-context-set-progress-callback): Use setf. + (epg-signature-notations): Rename from epg-sig-notations. + (epg-make-signature, epg-signature-status, epg-signature-key-id) + (epg-signature-validity, epg-signature-fingerprint) + (epg-signature-creation-time, epg-signature-expiration-time) + (epg-signature-pubkey-algorithm, epg-signature-digest-algorithm) + (epg-signature-class, epg-signature-version): Define vi cl-defstruct. + (epg-signature-set-status, epg-signature-set-key-id) + (epg-signature-set-validity, epg-signature-set-fingerprint) + (epg-signature-set-creation-time, epg-signature-set-expiration-time) + (epg-signature-set-pubkey-algorithm) + (epg-signature-set-digest-algorithm, epg-signature-set-class) + (epg-signature-set-version, epg-signature-set-notations): Remove. + Use setf instead. + (epg-make-new-signature, epg-new-signature-type) + (epg-new-signature-pubkey-algorithm) + (epg-new-signature-digest-algorithm, epg-new-signature-class) + (epg-new-signature-creation-time, epg-new-signature-fingerprint): + Define using cl-defstruct. + (epg-make-key, epg-key-owner-trust, epg-key-sub-key-list) + (epg-key-user-id-list): Define using cl-defstruct. + (epg-key-set-sub-key-list, epg-key-set-user-id-list): Remove. + Use setf instead. + (epg-make-sub-key, epg-sub-key-validity, epg-sub-key-capability) + (epg-sub-key-secret-p, epg-sub-key-algorithm, epg-sub-key-length) + (epg-sub-key-id, epg-sub-key-creation-time) + (epg-sub-key-expiration-time, epg-sub-key-fingerprint): Define using + cl-defstruct. + (epg-sub-key-set-fingerprint): Remove. Use setf instead. + (epg-make-user-id, epg-user-id-validity, epg-user-id-string) + (epg-user-id-signature-list): Define using cl-defstruct. + (epg-user-id-set-signature-list): Remove. Use setf instead. + (epg-make-key-signature, epg-key-signature-validity) + (epg-key-signature-pubkey-algorithm, epg-key-signature-key-id) + (epg-key-signature-creation-time, epg-key-signature-expiration-time) + (epg-key-signature-user-id, epg-key-signature-class) + (epg-key-signature-exportable-p): Define using cl-defstruct. + (epg-make-sig-notation, epg-sig-notation-name) + (epg-sig-notation-value, epg-sig-notation-human-readable) + (epg-sig-notation-critical): Define using cl-defstruct. + (epg-sig-notation-set-value): Remove. Use setf instead. + (epg-make-import-status, epg-import-status-fingerprint) + (epg-import-status-reason, epg-import-status-new) + (epg-import-status-user-id, epg-import-status-signature) + (epg-import-status-sub-key, epg-import-status-secret): Define using + cl-defstruct. + (epg-make-import-result, epg-import-result-considered) + (epg-import-result-no-user-id, epg-import-result-imported) + (epg-import-result-imported-rsa, epg-import-result-unchanged) + (epg-import-result-new-user-ids, epg-import-result-new-sub-keys) + (epg-import-result-new-signatures, epg-import-result-new-revocations) + (epg-import-result-secret-read, epg-import-result-secret-imported) + (epg-import-result-secret-unchanged, epg-import-result-not-imported) + (epg-import-result-imports): Define using cl-defstruct. + + * emacs-lisp/package.el: Require EPG during macroexpansion. + (package--check-signature, package-import-keyring): Use setf instead of + epg-context-set-home-directory. + +2014-10-23 Stefan Monnier + + * emacs-lisp/bytecomp.el (byte-compile--use-old-handlers): Change default. + +2014-10-23 Leo Liu + + * progmodes/cfengine.el (cfengine3-defun-full-re): New var. + (cfengine3-create-imenu-index): Use it and use ` ' for separation. + (cfengine3-current-defun): New function. + (cfengine3-mode): Set add-log-current-defun-function. + +2014-10-23 Stefan Monnier + + * select.el: Use lexical-binding. + (gui-set-selection): Provide an implementation for non-GUI frames + (bug#18791). + * term/x-win.el: Use lexical-binding. + (x-clipboard-yank): Fix up missed renamings. + * term/w32-win.el (libgif-version, libjpeg-version): Silence compiler. + (w32--set-selection): Fix up var names. + * term/pc-win.el: Use lexical-binding. + (w16-selection-exists-p): Silence compiler warning. + (w16-selection-owner-p): Fix up missed renamings. + + * emacs-lisp/bytecomp.el (byte-compile-form): Remove left-over debug. + + * frame.el (frame-notice-user-settings): Fix excessive quoting. + +2014-10-22 Tassilo Horn + + * doc-view.el (doc-view-open-text): View the document's plain text + in the current buffer instead of a new one. + (doc-view-toggle-display): Handle the case where the current + buffer contains the plain text contents of the document. + (doc-view-initiate-display): Don't switch to fallback mode if the + user wants to view the doc's plain text. + (doc-view-set-doc-type): Use assoc-string instead of + assoc-ignore-case. + +2014-10-21 Stefan Monnier + + * subr.el (read-key): Fix clicks on the mode-line. + (set-transient-map): Return exit function. + + * mouse.el (mouse-drag-line): Use set-transient-map (bug#18015). + (mouse--down-1-maybe-follows-link): Remove unused var `this-event'. + (mouse-yank-secondary): Use gui-get-selection. + (mouse--down-1-maybe-follows-link): Use read-key. + + * xt-mouse.el: Add `event-kind' property on the fly from + xterm-mouse-translate-1 rather than statically at the outset. + +2014-10-21 Daniel Colascione + + * vc/vc-dispatcher.el (vc-resynch-window): Tell view-mode not to + change window configuration when we turn it off. + +2014-10-21 Stefan Monnier + + Get rid of backend-dependent selection-handling functions for kill/yank + and make it generic instead by relying on the lower-level selection + management functions. + + * select.el (select-enable-clipboard): Rename from + gui-select-enable-clipboard. + (select-enable-primary): Move from x-win.el and rename from + x-select-enable-primary. + (gui-last-selected-text): Remove. + (gui--last-selected-text-clipboard, gui--last-selected-text-primary): + New vars. + (gui-select-text): Rewrite, based on x-win.el's old x-select-text. + (gui-select-text-alist, gui-selection-value-alist): Remove. + (x-select-request-type): Move from x-win.el. + (gui--selection-value-internal): New function, taken from x-win's + x-selection-value-internal. + (gui-selection-value): Rewrite, based on x-win.el's old x-selection-value. + (gui-set-selection-alist): Rename from gui-own-selection-alist and + extend it to handle a nil value as a "disown" request. + (gui-disown-selection-alist): Remove. + (xselect-convert-to-delete): Adjust accordingly. + (gui-set-selection): Simplify accordingly as well. Use dotimes. + + * term/x-win.el (x-last-selected-text-primary) + (x-select-enable-primary): Remove (moved to select.el). + (x-select-request-type): Move to select.el. + (x-selection-value-internal, x--selection-value): Remove functions. + (gui-selection-value, gui-select-text): Remove moethods. + (gui-set-selection): Merge own and disown methods. + + * term/w32-win.el (w32--select-text, w32--get-selection-value): + Delete function (move functionality into w32--set-selection and + w32--get-selection). + (gui-select-text, gui-selection-value): Don't define methods. + (w32--set-selection, w32--get-selection, w32--selection-owner-p): + New functions. + (gui-get-selection, gui-selection-owner-p, gui-selection-exists-p): + Use them. + (gui-selection-exists-p): Adjust to new name of C primitive. + + * term/pc-win.el (w16-get-selection-value): Add dummy argument and drop + test of gui-select-enable-clipboard, to make it usable as + a gui-get-selection method. + (gui-selection-exists-p): Adjust to new name of C primitive. + (gui-set-selection): Merge own and disown methods. + (gui-select-text, gui-selection-value): Delete methods. + (w16--select-text): Delete function. + + * term/ns-win.el (ns-get-pasteboard, ns-set-pasteboard) + (ns-selection-value): Remove functions. + (gui-select-text, gui-selection-value): Don't define method any more. + (gui-set-selection): Merge the old own and disown methods. + (gui-selection-exists-p, gui-get-selection): Adjust to new name of + underlying C primitive. + + * startup.el (command-line): Adjust now that `gui-method' expects nil + for ttys. + + * frame.el (gui-method): Use window-system rather than framep. + (gui-method-declare): The tty case is now nil rather than t. + (make-frame): Adjust accordingly. + +2014-10-21 Stefan Monnier + + * net/newst-reader.el (newsticker--image-read): Simplify. + (newsticker--icon-read): Use dolist and fix free var error. + + * imenu.el (imenu--menubar-keymap): New var. + (imenu-add-to-menubar): Set it to remember the keymap we used. + (imenu-update-menubar): Use it instead of asking lookup-key. + + * obsolete/cc-compat.el: Make obsolete (bug#18561). + + * epg-config.el (epg-gpg-program): Don't use absolute names by default. + + * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg + case (bug#18767). + +2014-10-21 Glenn Morris + + * Merge in all changes up to version 24.4 release. + +2014-10-20 Stefan Monnier + + * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg + case (bug#18767). + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-20 Ulf Jasper + + * net/newst-backend.el + (newsticker--image-download-by-url-callback): Make this function + actually work: Check status properly, then save image. + +2014-10-20 Stefan Monnier + + * mouse.el (mouse--down-1-maybe-follows-link): Remove unused var + `this-event'. + (mouse-drag-line): Unless there's no actual mouse, use the event's + position info. + +2014-10-20 Stefan Monnier + + * textmodes/css-mode.el (scss-mode): New major-mode. + (css-mode-syntax-table): Use d style comment, to ease the scss case. + (css-ident-re): Allow things like @-moz-keyframes. + (scss--hash-re): New const. + (css--font-lock-keywords): New function, extracted from + css-font-lock-keywords. + +2014-10-19 Ulf Jasper + + * net/newst-backend.el: Require url-parse. + (newsticker--get-news-by-wget): Store feed name as process property. + (newsticker--sentinel): Read feed name from process property. + (newsticker--sentinel-work): Rename argument name to feed-name. + Rename variable imageurl to image-url. Pick icon url from Atom + 1.0 data. Launch download of feed icon. + (newsticker--get-icon-url-atom-1.0): New. + (newsticker--unxml) + (newsticker--unxml-node) + (newsticker--unxml-attribute): Documentation. + (newsticker--icons-dir): New. + (newsticker--image-get): New arguments FILENAME and DIRECTORY. + Use `url-retrieve' if `newsticker-retrieval-method' is 'intern. + (newsticker--image-download-by-wget): New. Use process properties + for storing informations. + (newsticker--image-sentinel): Read informations from process properties. + (newsticker--image-save) + (newsticker--image-remove) + (newsticker--image-download-by-url) + (newsticker--image-download-by-url-callback): New. + (newsticker-opml-export): Handle url list entries containing a + function instead of an url string. + + * net/newst-reader.el (newsticker-html-renderer): Whitespace. + (newsticker--print-extra-elements) + (newsticker--do-print-extra-element): + Documentation (newsticker--image-read): Optionally limit image height. + Use imagemagick if possible. + (newsticker--icon-read): New. + + * net/newst-treeview.el (newsticker--treeview-item-show): Limit height of feed logo. + (newsticker--treeview-tree-expand): Use feed icons in treeview. + (newsticker--tree-widget-icon-create): New. Set the tree widget icon. + (newsticker--tree-widget-leaf-icon): Use feed icon. + +2014-10-19 Stefan Monnier + + * emacs-lisp/eieio-opt.el (eieio-lambda-arglist): Remove. + Use help-function-arglist instead. + + * emacs-lisp/eieio-core.el (eieio-compiled-function-arglist): Remove. + (eieio--with-scoped-class): Use `declare'. + (eieio-defclass): Remove compatibility code. + (no-method-definition, no-next-method, inconsistent-class-hierarchy) + (invalid-slot-type, unbound-slot, invalid-slot-name): Use define-error. + +2014-10-18 Jan Djärv + + * cus-start.el (x-gtk-whole-detached-tool-bar): Remove. + + * term/x-win.el (x-gtk-stock-map): Add icon names suggested as + replacements to stock names before stock names in a list. + Cdr may be a list, each name is tried in turn until one is found. + +2014-10-18 Alan Mackenzie + + Check that a "macro" found near point-min isn't a ## operator. + Fixes bug #18749. + * progmodes/cc-engine.el (c-macro-is-genuine-p): New function. + (c-beginning-of-macro): Use the above new function. + +2014-10-18 Teodor Zlatanov + + * net/gnutls.el (gnutls-negotiate): Don't use cl-mapcan; pass + correct data to `gnutls-boot' (Bug#18664). + Reported by Toke Høiland-Jørgensen . + +2014-10-18 Michal Nazarewicz + + * whitespace.el (whitespace-style, whitespace-big-indent) + (whitespace-big-indent-regexp, whitespace-style-value-list) + (whitespace-toggle-option-alist, whitespace-interactive-char) + (whitespace-toggle-options) + (global-whitespace-toggle-options, whitespace-help-text) + (whitespace-style-face-p, whitespace-color-on): Add a 'big-indent + style to `whitespace-mode' to indicate that the line indentation + is too deep. By default, 32 SPACEs or four TABs are considered + too many but `whitespace-big-indent-regexp' can be configured. + +2014-10-17 Michal Nazarewicz + + * textmodes/tildify.el (tildify--pick-alist-entry): Rename from + tildify-mode-alist. + +2014-10-17 Stefan Monnier + + * emacs-lisp/eieio.el: Use lexical-binding drop non-GV fallback. + (defclass, defgeneric, defmethod): Add doc-string position. + (with-slots): Require cl-lib. + + * emacs-lisp/eieio-core.el: Use lexical-binding and cl-lib. + (list-of): New type. + (eieio--typep): Remove. + (eieio-perform-slot-validation): Use cl-typep instead. + + * emacs-lisp/eieio-base.el: Use lexical-binding and cl-lib. + + * emacs-lisp/cl-macs.el (cl--make-type-test): Avoid ((lambda ..) ..). + +2014-10-16 Alan Mackenzie + + Trigger showing when point is in the "periphery" of a line or just + inside a paren. + * paren.el (show-paren-style, show-paren-delay) + (show-paren-priority, show-paren-ring-bell-on-mismatch): + Remove superfluous :group specifications. + (show-paren-when-point-inside-paren) + (show-paren-when-point-in-periphery): New customizable variables. + (show-paren-highlight-openparen): Make into a defcustom. + (show-paren--unescaped-p, show-paren--categorize-paren) + (show-paren--locate-near-paren): New defuns. + (show-paren--default): Refaactor and trigger on more paren + positions. + (show-paren-function): Small consequential changes. + +2014-10-16 Tom Tromey + + * files.el (auto-mode-alist): Use javascript-mode for .jsm + (bug #18719). + +2014-10-16 Eli Zaretskii + + * international/characters.el (bracket-type): Force pre-loading of + uni-brackets.el. + +2014-10-16 Alan Mackenzie + + * cus-edit.el (custom-command-apply): Specify the return value in + the doc string. + (Custom-reset-standard): Save custom-file (e.g. .emacs) only when + custom-command-apply has returned non-nil. + +2014-10-15 Stefan Monnier + + * emacs-lisp/eldoc.el (global-eldoc-mode): Enable by default. + Remove incorrect handling of eldoc-print-after-edit. + (eldoc-message-commands, eldoc-last-data): Use defvar. + * loadup.el (emacs-lisp/eldoc): Load it. + + * progmodes/m4-mode.el (m4-syntax-propertize): New var. + (m4-mode): Use it. + (m4--quoted-p): New function. + (m4-font-lock-keywords): Don't handle #..\n comments any more. + (m4-mode-syntax-table): Use punctuation syntax (according to m4 manual) + for most special characters. + + * progmodes/compile.el (compilation--previous-directory): Simplify. + (compilation-next-error): Ensure the parse before we look at + compilation-message property. + +2014-10-15 Eli Zaretskii + + * simple.el (what-cursor-position): + * descr-text.el (describe-char): Update to support the new bidi + characters. + + * emacs-lisp/tabulated-list.el (tabulated-list-mode): + Force bidi-paragraph-direction to 'left-to-right'. This fixes + buffer-menu display when the first buffer happens to start with + R2L letter. + +2014-10-15 Stefan Monnier + + * progmodes/elisp-mode.el (elisp--local-variables-1): + Handle quoted expressions (bug#18688). + +2014-10-14 Jérémy Compostella + Michael Albinus + + * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Reduce the amount of set environment variable commands. + +2014-10-12 Fabián Ezequiel Gallina + + Fix import completion. (Bug#18582) + * progmodes/python.el (python-shell-completion-get-completions): + Fix import case regexp. + +2014-10-12 Stefan Monnier + + * progmodes/bat-mode.el (bat-font-lock-keywords): Fix \\<_ typo + (bug#18622). Reported by Arni Magnusson . + * progmodes/prolog.el (prolog-electric--underscore): Same. + +2014-10-12 Michael Albinus + + * net/tramp-sh.el (tramp-get-remote-id): Check also for "gid". + +2014-10-11 Jan Djärv + + * cus-start.el (all): Add missing ns and boolean to + ns-use-fullscreen-animation. + +2014-10-11 Leo Liu + + * progmodes/cfengine.el (cfengine3-defuns, cfengine3-vartypes): + Use strings. + (cfengine3-create-imenu-index): New function. + (cfengine3-mode): Use it for `imenu-create-index-function'. + (cfengine-auto-mode): Improve and prefer cfengine3-mode when + buffer is empty. + +2014-10-11 Jan Djärv + + * cus-start.el (all): Add ns-use-fullscreen-animation. + +2014-10-11 Glenn Morris + + * calendar/diary-lib.el (diary-display-function): + Drop support for deprecated nil and list forms. + (diary-list-entries): Update for the above. + * calendar/cal-x.el (calendar-dedicate-diary): Simplify accordingly. + +2014-10-10 Leo Liu + + * window.el (temp-buffer-window-show): Make BUFFER a required arg. + (Bug#18656) + +2014-10-10 Stefan Monnier + + * select.el (gui-selection-exists-p-alist): New method. + * menu-bar.el (menu-bar-edit-menu, clipboard-yank): + * simple.el (deactivate-mark): Use it. + * term/x-win.el (gui-selection-exists-p): + * term/w32-win.el (gui-selection-exists-p): + * term/pc-win.el (gui-selection-exists-p): + * term/ns-win.el (gui-selection-exists-p): Provide a backend instance. + +2014-10-10 Glenn Morris + + * info.el (Info-fontify-maximum-menu-size): Bump to 400k. (Bug#16227) + Fix :type. Allow t to mean no limit. + (Info-fontify-node): Handle Info-fontify-maximum-menu-size = t. + +2014-10-09 Glenn Morris + + * frame.el (display-monitor-attributes-list): Doc tweaks. + +2014-10-09 Eli Zaretskii + + * faces.el (display-grayscale-p): Mention in the doc string that + the argument can be either a display name or a frame. + + * frame.el (display-pixel-height, display-pixel-width) + (display-mm-height, display-mm-width, display-backing-store) + (display-save-under, display-planes, display-color-cells) + (display-visual-class, display-monitor-attributes-list) + (display-screens): Mention in the doc string that the argument can + be either a display name or a frame. Improve the docs of the + monitor attributes. (Bug#18636) + +2014-10-09 Martin Rudalics + + * term.el (term-window-width): Subtract 1 from the width when + any fringe has zero width, not just the right fringe. (Bug#18601) + +2014-10-09 Stefan Monnier + + * frame.el (make-frame): Use t rather than nil for `w' (bug#18653). + +2014-10-08 Leo Liu + + * emacs-lisp/cl-extra.el (cl-fresh-line): New function. + +2014-10-08 Glenn Morris + + * calendar/cal-x.el (calendar-dedicate-diary): + Drop support for recently deleted aliases. + +2014-10-08 Leo Liu + + * progmodes/cfengine.el (cfengine3-make-syntax-cache): + Always return a syntax. Replace call-process-shell-command with + process-file. Ensure cfengine-mode-syntax-functions-regex is + always set. Ensure cache when cfengine-cf-promises fails. + (Bug#18620) + +2014-10-07 Glenn Morris + + * font-lock.el (font-lock-fontify-buffer): Fix interactive-only markup. + +2014-10-07 Wilson Snyder + + Sync with upstream verilog-mode revision c075a492. + * progmodes/verilog-mode.el (verilog-mode-version): Bump. + (verilog-menu): Add AUTOINSERTLAST. + (verilog-no-indent-begin-re): When `verilog-indent-begin-after-if' + is nil, fix indenting initial/final to match always statements, bug825. + Reported by Tim Clapp. + (verilog-extended-complete-re): Fix indentation of DPI-C imports, + bug557. Reported by ZeDong Mao and Jason Forkey. + (verilog-read-decls): Fix parsing typed interfaces. + Fix AUTOINOUTMODPORT missing types. Reported by Stephan Bourduas. + (verilog-auto-arg-ports): Fix verilog-auto-arg-format single. + (verilog-auto-output-every): Add regexp to AUTOOUTPUTEVERY, bug793. + Reported by Pierre-David Pfister. + (verilog-auto-insert-lisp): Doc fix. + (verilog-auto-insert-last, verilog-auto): Add AUTOINSERTLAST to + allow post-AUTO user fixups, bug826. Reported by Dennis Muhlestein. + (verilog-sk-ovm-class, verilog-sk-uvm-object) + (verilog-sk-uvm-component): Fix missing string keyword in class + skeletons, bug824. Reported by eldad faruhi. + +2014-10-06 Stefan Monnier + + * term/w32-win.el: Move all code from 32-common-fns.el here. + (gui-select-text, gui-selection-value): Use w32 handlers in the w32 + console as well (bug#18629). + * w32-common-fns.el: Remove. + * loadup.el: Don't load w32-common-fns.el. + * w32-fns.elc: Don't require w32-common-fns. + + * icomplete.el: Move Iswitchb autoload here. Much simpler. + * obsolete/iswitchb.el (iswitchb-mode): Use normal autoload cookie. + Remove redundant obsolescence thingy. + * loadup.el: Don't load obsolete/loaddefs.el. + * Makefile.in (obsolete-autoloads): Remove. + (AUTOGENEL): Remove obsolete/loaddefs.el. + +2014-10-06 Glenn Morris + + * Makefile.in (obsolete-autoloads): Write to a separate file, + to workaround autoloads bug. (Bug#17407) + (AUTOGENEL): Add obsolete/loaddefs.el. + * loadup.el: Load obsolete/loaddefs.el if present. + * subr.el (do-after-load-evaluation): + Don't warn about obsolete/loaddefs.el. + + * menu-bar.el (menu-bar-games-menu): Remove landmark. + It has zero relationship to a game. + +2014-10-06 Leo Liu + + * imenu.el (imenu): Re-write for clarity. + +2014-10-06 Glenn Morris + + Remove calendar code obsolete since at least version 23.1. + * calendar/cal-bahai.el (calendar-absolute-from-bahai) + (calendar-print-bahai-date, calendar-bahai-prompt-for-date) + (calendar-goto-bahai-date, list-bahai-diary-entries) + (mark-bahai-calendar-date-pattern, mark-bahai-diary-entries) + (insert-bahai-diary-entry, insert-monthly-bahai-diary-entry) + (insert-yearly-bahai-diary-entry): + * calendar/cal-china.el (chinese-calendar-time-zone) + (chinese-calendar-location-name) + (chinese-calendar-daylight-time-offset) + (chinese-calendar-standard-time-zone-name) + (chinese-calendar-daylight-time-zone-name) + (chinese-calendar-daylight-savings-starts) + (chinese-calendar-daylight-savings-ends) + (chinese-calendar-daylight-savings-starts-time) + (chinese-calendar-daylight-savings-ends-time) + (chinese-calendar-celestial-stem) + (chinese-calendar-terrestrial-branch) + (calendar-absolute-from-chinese, calendar-print-chinese-date) + (calendar-goto-chinese-date): + * calendar/cal-coptic.el (calendar-absolute-from-coptic) + (calendar-print-coptic-date, coptic-prompt-for-date) + (calendar-goto-coptic-date, calendar-absolute-from-ethiopic) + (calendar-print-ethiopic-date, calendar-goto-ethiopic-date): + * calendar/cal-french.el (calendar-absolute-from-french) + (calendar-print-french-date, calendar-goto-french-date): + * calendar/cal-hebrew.el (diary-sabbath-candles-minutes) + (calendar-absolute-from-hebrew, calendar-print-hebrew-date) + (hebrew-calendar-yahrzeit, calendar-goto-hebrew-date) + (holiday-rosh-hashanah-etc, holiday-hanukkah) + (holiday-passover-etc, holiday-tisha-b-av-etc) + (list-hebrew-diary-entries, mark-hebrew-calendar-date-pattern) + (mark-hebrew-diary-entries, insert-hebrew-diary-entry) + (insert-monthly-hebrew-diary-entry) + (insert-yearly-hebrew-diary-entry, list-yahrzeit-dates) + (diary-omer, diary-yahrzeit, diary-rosh-hodesh, diary-parasha) + (diary-sabbath-candles): + * calendar/cal-islam.el (calendar-absolute-from-islamic) + (calendar-print-islamic-date, calendar-goto-islamic-date) + (list-islamic-diary-entries, mark-islamic-calendar-date-pattern) + (mark-islamic-diary-entries, insert-islamic-diary-entry) + (insert-monthly-islamic-diary-entry) + (insert-yearly-islamic-diary-entry): + * calendar/cal-iso.el (calendar-absolute-from-iso) + (calendar-print-iso-date, calendar-iso-read-args) + (calendar-goto-iso-date, calendar-goto-iso-week): + * calendar/cal-julian.el (calendar-absolute-from-julian) + (calendar-print-julian-date, calendar-goto-julian-date) + (calendar-absolute-from-astro, calendar-print-astro-day-number) + (calendar-goto-astro-day-number): + * calendar/cal-mayan.el (calendar-print-mayan-date) + (calendar-next-haab-date, calendar-previous-haab-date) + (calendar-next-tzolkin-date, calendar-previous-tzolkin-date) + (calendar-next-calendar-round-date) + (calendar-previous-calendar-round-date) + (calendar-absolute-from-mayan-long-count) + (calendar-goto-mayan-long-count-date): + * calendar/cal-move.el (scroll-calendar-left) + (scroll-calendar-right, scroll-calendar-left-three-months) + (scroll-calendar-right-three-months): + * calendar/cal-persia.el (calendar-absolute-from-persian) + (calendar-print-persian-date, persian-prompt-for-date) + (calendar-goto-persian-date): + * calendar/cal-x.el (calendar-after-frame-setup-hooks): + * calendar/calendar.el (view-diary-entries-initially) + (mark-diary-entries-in-calendar, calendar-today-face) + (diary-face, holiday-face, view-calendar-holidays-initially) + (mark-holidays-in-calendar, initial-calendar-window-hook) + (today-visible-calendar-hook, today-invisible-calendar-hook) + (hebrew-diary-entry-symbol, islamic-diary-entry-symbol) + (bahai-diary-entry-symbol, american-date-diary-pattern) + (european-date-diary-pattern, european-calendar-display-form) + (american-calendar-display-form, holidays-in-diary-buffer) + (all-hebrew-calendar-holidays, all-christian-calendar-holidays) + (all-islamic-calendar-holidays, all-bahai-calendar-holidays) + (fancy-diary-buffer, increment-calendar-month) + (extract-calendar-month, extract-calendar-day) + (extract-calendar-year, exit-calendar, calendar-date-is-legal-p) + (mark-visible-calendar-date, calendar-version): + * calendar/diary-lib.el (diary-button-face, sexp-diary-entry-symbol) + (diary-display-hook, list-diary-entries-hook) + (mark-diary-entries-hook, nongregorian-diary-listing-hook) + (nongregorian-diary-marking-hook, print-diary-entries-hook) + (abbreviated-calendar-year, number-of-diary-entries) + (view-other-diary-entries, add-to-diary-list) + (include-other-diary-files, simple-diary-display) + (fancy-diary-display, print-diary-entries, mark-diary-entries) + (mark-sexp-diary-entries, mark-included-diary-files) + (mark-calendar-days-named, mark-calendar-month) + (mark-calendar-date-pattern, sort-diary-entries) + (list-sexp-diary-entries, make-diary-entry, insert-diary-entry) + (insert-weekly-diary-entry, insert-monthly-diary-entry) + (insert-yearly-diary-entry, insert-anniversary-diary-entry) + (insert-block-diary-entry, insert-cyclic-diary-entry) + (fancy-diary-font-lock-keywords, fancy-diary-display-mode): + * calendar/holidays.el (general-holidays, oriental-holidays) + (local-holidays, other-holidays, hebrew-holidays) + (christian-holidays, islamic-holidays, bahai-holidays) + (solar-holidays, list-calendar-holidays) + (check-calendar-holidays, mark-calendar-holidays) + (filter-visible-calendar-holidays): + * calendar/lunar.el (calendar-phases-of-moon, phases-of-moon) + (diary-phases-of-moon): Remove obsolete aliases. + * calendar/cal-menu.el (cal-menu-load-hook): Remove obsolete hook. + * calendar/cal-x.el (calendar-one-frame-setup) + (calendar-only-one-frame-setup, calendar-two-frame-setup): + Remove obsolete functions. + (cal-x-load-hook): Remove obsolete hook. + * calendar/calendar.el (european-calendar-style): + Remove obsolete variable. + (calendar-date-style): No longer consult european-calendar-style. + * calendar/calendar.el (european-calendar, american-calendar): + Remove obsolete commands. + * calendar/calendar.el (calendar-for-loop): Remove obsolete macro. + * calendar/diary-lib.el (diary-face): Remove obsolete variable. + (diary-font-lock-date-forms, diary-fancy-font-lock-keywords): + Use the face `diary' instead of the variable `diary-face'. + * calendar/holidays.el (hebrew-holidays-1, hebrew-holidays-2) + (hebrew-holidays-3, hebrew-holidays-4): Remove obsolete variables. + * calendar/icalendar.el (icalendar--date-style): Remove function. + Replace all uses with calendar-date-style. + * textmodes/remember.el (calendar-date-style): Declare. + (remember-diary-convert-entry): + No longer consult european-calendar-style. + +2014-10-05 Leo Liu + + * imenu.el (imenu-default-goto-function): Fix typo. + +2014-10-04 Thomas Fitzsimmons + + * net/ntlm.el (ntlm-build-auth-request): + Add NTLM2 Session support. (Bug#15603) + +2014-10-04 Glenn Morris + + * apropos.el (apropos-symbols-internal): + Avoid error with non-symbol properties. (Bug#18337#16) + + * startup.el (command-line): + Handle altered user-emacs-directory in load-path warning. (Bug#18512) + +2014-10-04 Martin Rudalics + + * window.el (window-full-height-p): Make it behave correctly for + minibuffer window. + (window-current-scroll-bars): Fix code. + (fit-frame-to-buffer): Use window-scroll-bar-height instead of + window-scroll-bars. + * frame.el (frame-current-scroll-bars): Fix doc-string. + * scroll-bar.el (toggle-horizontal-scroll-bar): New command. + +2014-10-04 Mark Oteiza (tiny change) + + * files.el (auto-mode-alist): Use sh-mode for .zsh files. (Bug#18488) + +2014-10-04 Glenn Morris + + * frame.el (frame-monitor-attributes) + (display-monitor-attributes-list): Doc fixes. + +2014-10-04 Stefan Monnier + + Merge trivially safe differences from standalone CC-mode. + * progmodes/cc-mode.el (c-initialize-cc-mode): Don't quote a symbol + just to then pass it to `symbol-value'. + (prog-mode): Provide fallback definition, if needed. + * progmodes/cc-langs.el: Always load `cl'. Don't load `cl-lib'. + Remove "cl-" prefix accordingly. + * progmodes/cc-fonts.el (c-font-lock-invalid-string): Use integerp or + characterp depending on the type of characters. + (c-font-lock-enum-tail): Remove unused var `start'. + * progmodes/cc-engine.el: Load CL at compile-time. + (c-declare-lang-variables): Use mapcan. + (c-append-to-state-cache): Remove unused var `ce+1'. + (c-parse-state-state): Make buffer-local. + (c-ssb-lit-begin): Remove unused var `pps-end-pos'. + (c-just-after-func-arglist-p): Remove unused var `end'. + * progmodes/cc-defs.el: Load cc-fix if delete-dups is undefined. + (c-<-as-paren-syntax, c->-as-paren-syntax): Move definition earlier. + (c-make-keywords-re): Use delete-dups. + (c-get-current-file): Avoid file-name-base. + * progmodes/cc-cmds.el (c-electric-lt-gt): Remove unused var + `close-paren-inserted'. + * progmodes/cc-awk.el (c-forward-sws): Remove unused declaration. + + * progmodes/python.el: Avoid building unneeded markers. + (python-font-lock-keywords, python-indent-dedent-line) + (python-fill-paren, python-shell-completion-complete-or-indent): + Prefer point over point-marker. + (inferior-python-mode): Remove redundant completion settings. + +2014-10-03 Dmitry Gutov + + * vc/vc-svn.el (vc-svn-ignore-completion-table): Implement. + (vc-svn-ignore): Use it. (Bug#18619) + +2014-10-03 Martin Rudalics + + * frame.el (toggle-frame-maximized, toggle-frame-fullscreen): + In doc-string mention need to set `frame-resize-pixelwise'. + +2014-10-03 Stefan Monnier + + * vc/vc-svn.el (vc-svn-after-dir-status): Fix the non-remote regexp, + similarly to Rogers's 2010-06-16 change for the remote case + (bug#18605). + +2014-10-03 Stefan Monnier + + New gui-selection-value consolidating x-selection-value. + * select.el (gui-selection-value-alist): New method. + (gui-selection-value): New function. + (x-selection-value): Make it an obsolete alias. + * simple.el (interprogram-paste-function): Default to + gui-selection-value. + * w32-common-fns.el (w32-get-selection-value): Simplify. + (x-selection-value): Remove alias. + (interprogram-paste-function): Don't set. + (gui-selection-value): Define for w32. + * term/x-win.el (gui-selection-value): Define for x. + (x--selection-value): Rename from x--selection-value. + (interprogram-paste-function): Don't set. + * term/pc-win.el (w16-get-selection-value): Simplify. + (msdos-initialize-window-system): Don't set + interprogram-paste-function. + (gui-selection-value): Define for pc. + * term/ns-win.el (x-selection-value): Remove. + (gui-selection-value): Define for ns, instead. + * term/common-win.el (x-setup-function-keys): Don't set + interprogram-paste-function. + * obsolete/mouse-sel.el (mouse-sel-get-selection-function): + Use gui-selection-value. + +2014-10-02 David Raynes (tiny change) + + * term/ns-win.el: Add functions to ns frame, not x frame (bug#18614). + +2014-10-02 Stefan Monnier + + * obsolete/lucid.el (read-number): Remove, redundant. + * obsolete/cl-compat.el (cl-floor, cl-ceiling, cl-round, cl-truncate): + Remove, broken. + +2014-10-02 Glenn Morris + + * emacs-lisp/package.el (package-import-keyring): + Create gnupg directory private. (Bug#17625#155) + +2014-10-02 Stefan Monnier + + * progmodes/python.el (python-shell-completion-get-completions): + Use python-shell--prompt-calculated-input-regexp from the + process buffer (bug#18582). + Don't assume that `line' comes from the process buffer. + +2014-10-02 Stefan Monnier + + * frame.el: Use lexical-binding (bug#18598). + (make-frame): Use t rather than nil for tty's window-system. + * startup.el (command-line): Use gui-method. + + Consolidate management/ownership of selections. + * select.el (gui-get-selection-alist): New method. + (gui-get-selection): Use it. Rename from x-get-selection. + (x-get-selection): Define as obsolete alias. + (x-get-clipboard): Mark obsolete. + (gui-get-primary-selection): New function. + (x-get-selection-value): Mark obsolete. + (gui-own-selection-alist, gui-disown-selection-alist) + (gui-selection-owner-p-alist): New methods. + (gui-set-selection): Use them. Rename from x-set-selection. + (x-set-selection): Define as obsolete alias. + (gui--valid-simple-selection-p): Rename from + x-valid-simple-selection-p. + * w32-common-fns.el (gui-own-selection, gui-disown-selection) + (gui-selection-owner-p, gui-get-selection): Define for w32. + (w32-get-selection-value): Rename from x-get-selection-value. + Use the new gui-last-selected-text. + * term/x-win.el (x-get-selection-value): Remove. + (x-clipboard-yank): Declare obsolete. + (gui-own-selection, gui-disown-selection, gui-get-selection) + (gui-selection-owner-p): Define for x. + * term/w32-win.el (w32-win-suspend-error): Rename from + x-win-suspend-error. + * term/pc-win.el (w16-get-selection-value): Rename from + x-get-selection-value. + (w16-selection-owner-p): Rename from x-selection-owner-p. + (gui-own-selection, gui-disown-selection, gui-get-selection) + (gui-selection-owner-p): Define for pc. + (w16--select-text): New function. + * term/ns-win.el (gui-own-selection, gui-disown-selection) + (gui-get-selection, gui-selection-owner-p): Define for ns. + * term.el (term-mouse-paste): + * mouse.el (mouse-yank-primary): Use gui-get-primary-selection. + +2014-10-02 H. Dieter Wilhelm + + * calc/calc-help.el (calc-describe-thing): Quote strings + which could look like regexps. + +2014-10-01 Stefan Monnier + + Consolidate x-select-text. + * frame.el (gui-method, gui-method-define, gui-method-declare) + (gui-call): New macros. + (gui-method--name): New function. + (frame-creation-function-alist): Use gui-method-declare. + (make-frame): Use gui-method. + * select.el (gui-select-enable-clipboard): Rename from + x-select-enable-clipboard and move here. + (x-select-enable-clipboard): Define as obsolete alias. + (gui-last-selected-text): New var, to replace x-last-selected-text. + (gui-select-text): New GUI method. + (gui-select-text): New function. + (x-select-text): Define as obsolete alias. + * term/common-win.el (x-select-enable-clipboard, x-select-text): + Move to select.el. + * simple.el (interprogram-cut-function): Change default to + x-select-text. + (interprogram-paste-function): Change default to `ignore'. + * w32-common-fns.el (interprogram-cut-function): Don't modify. + * term/x-win.el (interprogram-cut-function): Don't modify. + (gui-select-text): Add method for x. + * term/w32-win.el (gui-select-text): Add method for w32. + * term/pc-win.el (x-last-selected-text): Remove, use + gui-last-selected-text instead. + (msdos-initialize-window-system): Don't set interprogram-cut-function. + (gui-select-text): Add method for pc. + * term/ns-win.el (ns-last-selected-text): Remove, use + gui-last-selected-text instead. + (gui-select-text): Add method for ns. + (x-setup-function-keys): Don't change interprogram-cut-function. + * loadup.el ("startup"): Load after "frame". + * subr.el (package--builtin-versions, package--description-file): + Move from startup.el. + * startup.el (package--builtin-versions, package--description-file): + Move to subr.el. + (handle-args-function-alist, window-system-initialization-alist): + Use gui-method-declare. + (command-line): Use gui-method. + +2014-10-01 Stefan Monnier + + * subr.el (alist-get): New accessor. + * emacs-lisp/gv.el (alist-get): Provide expander. + * winner.el (winner-remember): + * tempo.el (tempo-use-tag-list): + * progmodes/gud.el (minor-mode-map-alist): + * international/mule-cmds.el (define-char-code-property): + * frameset.el (frameset-filter-params): + * files.el (dir-locals-set-class-variables): + * register.el (get-register, set-register): + * calc/calc-yank.el (calc-set-register): Use it. + * ps-print.el (ps-get, ps-put, ps-del): Mark as obsolete. + * tooltip.el (tooltip-set-param): Mark as obsolete. + (tooltip-show): Use alist-get instead. + * ses.el (ses--alist-get): Remove. Use alist-get instead. + +2014-10-01 Ulf Jasper + + * net/newst-backend.el: Remove Time-stamp. Rename variable + `newsticker--download-logos' to `newsticker-download-logos' and + make it customizable. + (newsticker--sentinel-work): Move xml-workarounds to function + `newsticker--do-xml-workarounds', call unless libxml-parser is + used. Allow single quote in regexp for encoding. + Use libxml-parser if available, else fall back to `xml-parse-region'. + Take care of possibly missing namespace prefixes (like "RDF" + instead of "rdf:RDF") when checking xml nodes and attributes (as + libxml correctly removes the prefixes). Always use Atom 1.0 as + fallback feed type. Rename `newsticker--download-logos' to + `newsticker-download-logos' + (newsticker--unxml, newsticker--unxml-node) + (newsticker--unxml-attribute): New. + (newsticker--parse-atom-1.0): Call `unxml' in case that embedded + HTML code has become part of the xml parse tree. + (newsticker--parse-rss-1.0, newsticker--parse-rss-2.0): Take care + of possibly missing namespace prefixes. + (newsticker--parse-generic-items): Code formatting. Typo. + (newsticker--images-dir): Add trailing slash. + (newsticker--image-get): Fix error message. + + * net/newst-plainview.el: Remove Time-stamp. + + * net/newst-reader.el: Remove Time-stamp. + (newsticker-download-logos): Rename variable + `newsticker--download-logos' to `newsticker-download-logos' and + make it customizable. + (newsticker--print-extra-elements): Add optional parameter + 'htmlish for using html markup. Amend list of ignored elements. + (newsticker--do-print-extra-element): Add parameter 'htmlish for + using html markup. + + * net/newst-ticker.el: Remove Time-stamp. + + * net/newst-treeview.el (newsticker--treeview-item-show): Use html + for formatting extra elements. + + * net/newsticker.el: Remove Time-stamp, Version. + (newsticker-version): Make obsolete. + +2014-09-30 Leonardo Nobrega (tiny change) + + * progmodes/python.el (python-fill-paren): Don't inf-loop at EOB + (bug#18462). + +2014-09-30 Stefan Monnier + + * emacs-lisp/package.el (package-check-signature): Default to nil if + GPG is not available. + (package-refresh-contents): Don't mess with the keyring if we won't + check the signatures anyway. + +2014-09-30 Stefan Monnier + + * ses.el (ses--row, ses--col): New dyn-scoped vars, to replace row&col. + (ses-center, ses-center-span): Use them. + (ses-print-cell): Bind them while calling the printer. + (row, col, maxrow, maxcol): Don't declare as dynamically scoped. + (ses-dorange): Revert last change. + (ses-calculate-cell): Don't bind row&col dynamically while evaluating + the formula. + (ses-set-cell): Avoid `eval'. + (ses--time-check): Rename it from ses-time-check and turn it into + a macro. + + * ses.el (ses-setup): Don't assume modifying the iteration var of + dotimes affects the iteration (bug#18191). + +2014-09-30 Vincent Belaïche + + * ses.el (ses-calculate-cell): Bind row and col dynamically to + their values with 'cl-progv'. + (ses-dorange): Bind row, col, maxrow and maxcol dynamically to + their values with 'cl-progv', also use non-interned symbols for + row, minrow, maxrow, mincol and maxcol. + (maxrow maxcol): New defvar, to make the compiler happy. + +2014-09-30 Stefan Monnier + + * minibuffer.el (completion-at-point): Emit warning for ill-behaved + completion functions. + +2014-09-29 Stefan Monnier + + * ses.el (ses--letref): Quote value before it gets re-evaluated. + +2014-09-28 Thien-Thi Nguyen + + Font-lock `cl-flet*', too. + * emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2): + Add "flet*" to intermediate var `cl-lib-kw'. + +2014-09-27 Stefan Monnier + + * epg-config.el (epg-gpg-program): Use the plain program names rather + than their absolute file name. + + * subr.el (track-mouse): New macro. + * emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): + Remove track-mouse case. + * emacs-lisp/bytecomp.el (byte-compile-track-mouse): Remove. + +2014-09-27 Leo Liu + + * progmodes/elisp-mode.el (elisp--eldoc-last-data): Use defvar. + + * emacs-lisp/eldoc.el (eldoc-mode): Fix thinko. + +2014-09-27 Stefan Monnier + + * emacs-lisp/pcase.el (pcase--split-match, pcase--app-subst-match): + Handle the case where `match' is :pcase--succeed or :pcase--fail + (bug#18554). + + Introduce global-eldoc-mode. Move Elisp-specific code to elisp-mode.el. + * emacs-lisp/eldoc.el (global-eldoc-mode): New minor mode. + (eldoc-schedule-timer): Obey it. + (eldoc-documentation-function): Default to nil. + (eldoc-mode): Don't enable if eldoc-documentation-function is not set. + (eldoc-documentation-function-default, eldoc-get-fnsym-args-string) + (eldoc-highlight-function-argument, eldoc-get-var-docstring) + (eldoc-last-data-store, eldoc-docstring-first-line) + (eldoc-docstring-format-sym-doc, eldoc-fnsym-in-current-sexp) + (eldoc-beginning-of-sexp, eldoc-current-symbol) + (eldoc-function-argstring): Move to elisp-mode.el. + (eldoc-symbol-function): Remove, unused. + * progmodes/elisp-mode.el: New file. Rename all "eldoc-*" to "elisp--*". + (elisp-completion-at-point): Rename from lisp-completion-at-point. + (elisp--preceding-sexp): Rename from preceding-sexp. + * loadup.el: Load new file progmodes/elisp-mode. + * ielm.el (inferior-emacs-lisp-mode): Set eldoc-documentation-function. + * emacs-lisp/lisp.el (lisp--local-variables-1, lisp--local-variables) + (lisp--local-variables-completion-table, lisp--expect-function-p) + (lisp--form-quoted-p, lisp--company-doc-buffer) + (lisp--company-doc-string, lisp--company-location) + (lisp-completion-at-point): Move to elisp-mode.el. + * emacs-lisp/lisp-mode.el (lisp--mode-syntax-table): New syntax-table, + extracted from emacs-lisp-mode-syntax-table. + (emacs-lisp-mode-abbrev-table, emacs-lisp-mode-syntax-table): Move to + elisp-mode.el. + (lisp-imenu-generic-expression): Add comments to document what comes + from which Lisp dialect. + (emacs-lisp-mode-map, emacs-lisp-byte-compile) + (emacs-lisp-byte-compile-and-load, emacs-lisp-mode-hook) + (emacs-lisp-mode, emacs-list-byte-code-comment-re) + (emacs-lisp-byte-code-comment) + (emacs-lisp-byte-code-syntax-propertize, emacs-lisp-byte-code-mode) + (lisp-interaction-mode-map, lisp-interaction-mode) + (eval-print-last-sexp, last-sexp-setup-props) + (last-sexp-toggle-display, prin1-char, preceding-sexp) + (eval-last-sexp-1, eval-last-sexp-print-value) + (eval-last-sexp-fake-value, eval-sexp-add-defvars, eval-last-sexp) + (eval-defun-1, eval-defun-2, eval-defun): Move to elisp-mode.el. + +2014-09-26 Paul Eggert + + * progmodes/grep.el (grep-regexp-alist): Use more-accurate regexp. + Do not match file names that end in '/', as they cannot be 'grep' + hits nowadays. This prevents confusion when 'grep -r' reports a + match in a file whose basename is ':12345:'. Conversely, do not + require exactly the same sequence of spaces and tabs after both + colons, and allow spaces or tabs before the second colon, as per + the POSIX spec for 'grep' output. + +2014-09-26 Leo Liu + + Add cl-parse-integer based on parse-integer (Bug#18557) + * calendar/parse-time.el (parse-time-digits): Remove. + (digit-char-p, parse-integer) Moved to cl-lib.el. + (parse-time-tokenize, parse-time-rules, parse-time-string): + Use cl-parse-integer. + + * emacs-lisp/cl-extra.el (cl-parse-integer): New function. + + * emacs-lisp/cl-lib.el (cl-digit-char-table): New var. + (cl-digit-char-p): New function. + +2014-09-25 Juri Linkov + + * vc/add-log.el (change-log-next-buffer): Don't create an empty + buffer "ChangeLog" when the current buffer doesn't match ChangeLog.[0-9]. + Return the current buffer if no files match the default pattern + ChangeLog.[0-9]. Signal "end of multi" when file is nil. (Bug#18547) + +2014-09-25 Stefan Monnier + + * net/tramp-sh.el (tramp-sh-handle-vc-registered): Don't modify + the global vc-handled-backends (bug#18535). + +2014-09-24 Stefan Monnier + + * find-cmd.el (find-cmd): Use grep's `find-program' (bug#18518). + Suggested by . + +2014-09-24 Ulf Jasper + + * net/newst-treeview.el (newsticker--treeview-do-get-node-by-id): + Rename from `newsticker--treeview-do-get-node'. + (newsticker--treeview-get-node-by-id): + Rename from `newsticker--treeview-get-node'. + (newsticker--treeview-buffer-init) + (newsticker--treeview-buffer-init): Disable buffer undo. + (newsticker--treeview-unfold-node): Adapt to modified + `newsticker--group-find-parent-group'. + (newsticker--group-do-find-group): + Rename from `newsticker--group-do-find-group-for-feed'. + Now works for both, groups and feeds. + (newsticker--group-find-parent-group): + Rename from `newsticker--group-find-group-for-feed'. + Now works for both, groups and feeds. + (newsticker--group-do-get-parent-group) + (newsticker--group-get-parent-group): Remove. + (newsticker-group-add-group): Change interactive prompts. + (newsticker-group-add-group): Finally jump to added group. + (newsticker-group-delete-group): Finally jump to current feed. + (newsticker--group-do-rename-group, newsticker-group-rename-group) + (newsticker--get-group-names, newsticker--group-names): New. + (newsticker-group-move-feed): Finally jump to moved feed. + (newsticker-group-shift-feed-down, newsticker-group-shift-feed-up) + (newsticker-group-shift-group-down) + (newsticker-group-shift-group-up, newsticker--group-shift): New. + (newsticker-treeview-mode-map): New keybindings for new shift commands. + + * net/newst-backend.el (newsticker--item-list) + (newsticker--item-position, newsticker--prev-message) + (newsticker--scrollable-text): Move to newst-ticker.el. + + * net/newst-ticker.el (newsticker--item-list) + (newsticker--item-position, newsticker--prev-message) + (newsticker--scrollable-text): Move from newst-backend.el. + +2014-09-22 Kan-Ru Chen + + * window.el (fit-window-to-buffer): When counting buffer width, + count the whole visible buffer. Correctly convert the body-height + to pixel size for window-text-pixel-size (Bug#18498). + +2014-09-22 Sam Steingold + + * progmodes/sql.el (sql-product-alist): Improve the Vertica entry. + (sql-execute): Use `special-mode'. + +2014-09-22 Stefan Monnier + + Add pcase-defmacro, as well as `quote' and `app' patterns. + * loadup.el: Increase max-lisp-eval-depth when macroexpanding macroexp. + * emacs-lisp/pcase.el: Allow (F . ARGS) in `app' patterns. + (pcase--funcall, pcase--eval): New functions. + (pcase--u1): Use them for guard, pred, let, and app. + (\`): Use the new feature to generate better code for vector patterns. + * emacs-lisp/pcase.el: Use pcase-defmacro to handle backquote. + (pcase--upat): Remove. + (pcase--macroexpand): Don't hardcode handling of `. + (pcase--split-consp, pcase--split-vector): Remove. + (pcase--split-equal): Disregard ` since it's expanded away. + (pcase--split-member): Optimize for quote rather than for `. + (pcase--split-pred): Optimize for quote rather than for `. + (pcase--u1): Remove handling of ` (and of `or' and `and'). + Quote non-selfquoting values when passing them to `eq'. + Drop `app's let-binding if the variable is not used. + (pcase--q1): Remove. + (`): Define as a pattern macro. + * emacs-lisp/pcase.el (pcase--match): New smart-constructor function. + (pcase--expand pcase--q1, pcase--app-subst-match): Use it. + (pcase--macroexpand): Handle self-quoting patterns here, expand them to + quote patterns. + (pcase--split-match): Don't hoist or/and here any more. + (pcase--split-equal): Optimize quote patterns as well as ` patterns. + (pcase--flip): New helper macro. + (pcase--u1): Optimize the memq case directly. + Don't handle neither self-quoting nor and/or patterns any more. + * emacs-lisp/pcase.el (pcase-defmacro): New macro. + (pcase--macroexpand): New function. + (pcase--expand): Use it. + * emacs-lisp/pcase.el (pcase--app-subst-match, pcase--app-subst-rest): + New optimization functions. + (pcase--u1): Add support for `quote' and `app'. + (pcase): Document them in the docstring. + +2014-09-22 Stefan Monnier + + Use lexical-bindin in Ibuffer. + * ibuffer.el (ibuffer-do-toggle-read-only): `arg' is unused. + (ibuffer-compile-format): Simplify. + (ibuffer-clear-summary-columns): Simplify. + * ibuf-ext.el (ibuffer-generate-filter-groups): Don't use the third + elem of dotimes when we don't refer to the iteration var from it. + (ibuffer-toggle-sorting-mode): Avoid add-to-list. + * ibuf-macs.el (define-ibuffer-column, define-ibuffer-op): + Silence byte-compiler. + +2014-09-22 Stefan Monnier + + * font-lock.el (font-lock-compile-keyword): Don't confuse a lambda + expression for a list. + + * emacs-lisp/bytecomp.el (byte-compile-lambda): Don't add fundoc usage + for functions with no arguments. + + * mpc.el (mpc-data-directory): Use locate-user-emacs-file. + (mpc-volume-refresh): Make sure the corresponding header-line is updated. + +2014-09-17 Tom Willemse (tiny change) + + * simple.el (clone-indirect-buffer): Mention the return value + (bug#18478). + + * progmodes/prog-mode.el (prog-mode-hook): Replace reference to + Text mode in docstring (bug#18464). + +2014-09-21 Stefan Monnier + + * progmodes/perl-mode.el (perl-syntax-propertize-function): + Accept underscores in identifiers after "sub" (bug#18502). + +2014-09-21 Tassilo Horn + + * textmodes/reftex-sel.el (reftex-select-label-mode) + (reftex-select-bib-mode, reftex-insert-docstruct): Derive modes + from special-mode (instead of fundamental-mode) and propertize + with font-lock-face instead of just face. (Bug#18496) + + * textmodes/reftex-toc.el (reftex-toc-mode, reftex-toc): Ditto. + +2014-09-19 Dmitry Gutov + + * emacs-lisp/lisp.el (lisp-completion-at-point): Only calculate + `table-etc' when `end' is non-nil. + (lisp-completion-at-point): Move `end' back if it's after quote. + If in comment or string, only complete when after backquote. + (Bug#18265) + (lisp-completion-at-point): Don't use + `lisp--local-variables-completion-table' in the + `lisp--form-quoted-p' case. + +2014-09-19 Dmitry Gutov + + * emacs-lisp/lisp.el (lisp--expect-function-p) + (lisp--form-quoted-p): New functions. + (lisp-completion-at-point): Use them to see if we're completing a + variable reference, a function name, or just any symbol. + http://lists.gnu.org/archive/html/emacs-devel/2014-02/msg00229.html + +2014-09-18 Ivan Kanis + + * net/shr.el, net/eww.el: Don't override `shr-width', but + introduce a new variable `shr-internal-width'. This allows users + to specify a width themselves. + +2014-09-18 Lars Magne Ingebrigtsen + + * image-mode.el (image-toggle-display-image): If we have a + `fit-width' or a `fit-height', don't limit the size of the image + to the window size, because that doesn't preserve the aspect ratio. + * image-mode.el: Move defvars earlier to avoid a byte-compilation + warning. + +2014-09-17 Reuben Thomas + + * progmodes/js.el: Add interpreter-mode-alist support for various + JavaScript interpreters. + +2014-09-17 Paul Eggert + + Don't assume 'grep' supports GREP_OPTIONS. + The GREP_OPTIONS environment variable is planned to be marked + obsolescent in GNU grep, due to problems in its use, so stop + relying on it. + * progmodes/grep.el (grep-highlight-matches): Document this. + (grep-process-setup): Do not set GREP_OPTIONS. + (grep-compute-defaults): Use an explicit --color option if supported. + +2014-09-16 Stefan Monnier + + * msb.el (msb--make-keymap-menu, msb-menu-bar-update-buffers): + Don't add outdated key-shortcut cache (bug#18482). + +2014-09-15 Glenn Morris + + * image.el (image-multi-frame-p): Fix thinko - do not force + a delay if none was specified. (Bug#18334) + +2014-09-15 Kan-Ru Chen + + * window.el (fit-window-to-buffer): Doc fix. + +2014-09-15 Ivan Shmakov + + * desktop.el (desktop-create-buffer): Check that buffers are still live + before burying them (bug#18373). + +2014-09-15 Glenn Morris + + * calendar/diary-lib.el (diary-list-entries): + Restore 24.3 display behavior. (Bug#18381) + +2014-09-15 Eli Zaretskii + + * mouse.el (mouse-drag-line): On text-mode frames, count the mode + line and header line as 1 pixel. This fixes the 1-"pixel" (row) + discrepancy between window-pixel-edges and mouse events, and + avoids moving mode line up when the mouse click is on the modeline + and no drag is attempted. + +2014-09-14 Daniel Colascione + + * register.el (insert-register): Change default interactive + insertion mode. + +2014-09-14 Michael Albinus + + * net/tramp-cache.el (tramp-flush-file-function): Simplify check. + Suppress debug messages. + + * net/tramp.el (tramp-file-name-handler): + * net/tramp-gvfs.el (tramp-gvfs-url-file-name): Apply `cons' where + appropriate. + +2014-09-13 Christopher Schmidt + + * calendar/calendar.el (calendar-update-mode-line): + Do not overwrite mode-line-format if calendar-mode-line-format is + nil. (Bug#18467) + +2014-09-13 Leo Liu + + * emacs-lisp/pcase.el (pcase--dontwarn-upats): New var. + (pcase--expand): Use it. + (pcase-exhaustive): New macro. (Bug#16567) + + * emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): + Add pcase-exhaustive. + +2014-09-13 Eli Zaretskii + + * mail/rmailmm.el (rmail-mime-insert-html): Decode the HTML part + using the specified transfer-encoding, if any, or 'undecided'. + (rmail-mime-render-html-shr): Bind shr-width to nil, so lines are + broken at the window margin. + +2013-12-27 Ken Olum + + Support rendering of HTML parts in Rmail (bug#4258). + * mail/rmailmm.el (rmail-mime-process): Handle text/html + separately from other text/ types. Suppress tagline for + multipart body. + (rmail-mime-parse): Don't change visibility of tagline here. + (rmail-mime-set-bulk-data, rmail-mime-insert-bulk): + Handle text/html specially. + (rmail-mime-render-html-function,rmail-mime-prefer-html): New variables. + (rmail-mime-insert-html, rmail-mime-render-html-shr) + (rmail-mime-render-html-lynx): New functions. + (rmail-mime-fix-inserted-faces): New function. + (rmail-mime-process-multipart): Find the best part to show + following rmail-mime-prefer-html if set. + (rmail-mime-searching): New variable. + (rmail-search-mime-message): Bind rmail-mime-searching to + suppress rendering while searching. + +2014-09-12 Sam Steingold + + * progmodes/sql.el (sql-product-alist): Add vertica. + (sql-vertica-program, sql-vertica-options) + (sql-vertica-login-params, sql-comint-vertica, sql-vertica): + New functions and variables to support Vertica. + Inspired by code by Roman Scherer . + +2014-09-11 Paul Eggert + + * ses.el (ses-file-format-extend-parameter-list): Rename from + ses-file-format-extend-paramter-list, to correct a misspelling. + All uses changed. + +2014-09-10 Alan Mackenzie + + CC Mode: revert recent changes and fix bug 17463 (cc-langs.elc + gets loaded at run-time). + * progmodes/cc-langs.el (c-no-parens-syntax-table): Rename the + c-lang-const to c-make-no-parens-syntax-table and correct the + logic. + (c-no-parens-syntax-table): Correct the logic of the + c-lang-defvar. + +2014-09-10 Stefan Monnier + + CC-mode: Set open-paren-in-column-0-is-defun-start to nil; + plus misc cleanup. + * progmodes/cc-mode.el (c-basic-common-init): + Set open-paren-in-column-0-is-defun-start. + (adaptive-fill-first-line-regexp, font-lock-syntactic-keywords): + Remove declarations, unused. + (run-mode-hooks): Remove declaration. + (font-lock-defaults): Use plain `defvar' to declare. + (c-run-mode-hooks): Test existence of run-mode-hooks with fboundp. + * progmodes/cc-langs.el (c-filter-ops): Avoid `setq'. + (c-make-mode-syntax-table): Don't micro-optimize. + (c-keywords, c-keyword-member-alist): Simplify. + (c-kwds-lang-consts): Don't eval at compile-time. + (c-primary-expr-regexp): Comment out unused vars. + * progmodes/cc-fonts.el (c-font-lock-context): Declare at top-level. + (c-font-byte-compile): New var. + (c--compile): New function. Use it instead of `byte-compile'. + (c-cpp-matchers): Quote the value returned by + `c-make-syntactic-matcher' in case it's not self-evaluating. + (c-basic-matchers-before): Avoid a plain MATCHER as keyword, wrap it in + parentheses instead (in case MATCHER happens to be a list). + (c-font-lock-enum-tail): Remove unused var `start'. + (c-font-lock-objc-methods): Silence byte-compiler warnings. + * progmodes/cc-engine.el (c-syntactic-re-search-forward): Sink an `if' + test into an argument. + * progmodes/cc-defs.el (c-point, c-major-mode-is, c-put-char-property) + (c-get-char-property): Don't use `eval' just to unquote a constant. + (c-use-extents): Remove. Use (featurep 'xemacs), compiled + more efficiently. + (c-put-char-property-fun): Don't call `byte-compile' by hand. + (c-clear-char-property, c-clear-char-properties): Check that `property' + is a quoted constant. + (c-emacs-features): Remove `infodock', `syntax-properties', and + `pps-extended-state' (never used), `8-bit' and `1-bit' (use (featurep + 'xemacs) instead). Use `with-temp-buffer' and let-bind vars after + changing buffer, so we don't have to setq them again afterwards. + (c-lang-const): Remove redundant symbolp assertions. + (c-find-assignment-for-mode): Use `or'. + * Makefile.in (compile-one-process): Remove cc-mode dependency. + +2014-09-09 Sam Steingold + + * progmodes/sql.el (sql-default-directory): Fix type annotation. + +2014-09-09 Stefan Monnier + + * progmodes/cc-awk.el: Remove unneeded cc-bytecomp use. + Change doc comments into docstrings. + * Makefile.in: Remove cc-awk dependency. + +2014-09-08 Sam Steingold + + * progmodes/sql.el (sql-send-line-and-next): New command, + bound to C-c C-n. + (sql-show-sqli-buffer): Display the buffer instead of its name and + bind the command to C-c C-z. + (sql-default-directory): New user option. + (sql-product-interactive): Bind `default-directory' to it to + enable remote connections using Tramp. + (sql-set-sqli-buffer): Call `sql-product-interactive' when no + suitable buffer is available. + +2014-09-08 Glenn Morris + + * calendar/calendar.el (calendar-basic-setup): + Fix calendar-view-holidays-initially-flag and fancy display. + * calendar/diary-lib.el (diary-live-p): Doc fix. + + * calendar/calendar.el (calendar-basic-setup): + Avoid clobbering calendar with diary. (Bug#18381) + +2014-09-08 Stefan Monnier + + * vc/vc-dir.el (vc-dir-update): Don't burp in corner case. + +2014-09-08 Lars Ljung (tiny change) + + * isearch.el (isearch-yank-word-or-char): Obey superword-mode + as well (bug#18400). + +2014-09-08 Eli Zaretskii + + * subr.el (posn-actual-col-row): Doc fix. (Bug#18385) + +2014-09-06 Leo Liu + + * emacs-lisp/pcase.el (pcase): Doc fix. + (pcase--split-vector): New function. + (pcase--q1): Support vector qpattern. (Bug#18327) + +2014-09-05 Sam Steingold + + * textmodes/tex-mode.el (tex-print-file-extension): New user + option. + (tex-print): Use it instead of the hard-coded string. + +2014-09-05 Michael Albinus + + * net/tramp-sh.el (tramp-sh-handle-start-file-process): + Expand `default-directory'. + +2014-09-05 Martin Rudalics + + * scroll-bar.el (horizontal-scroll-bars-available-p): + New function. + (horizontal-scroll-bar-mode): Rewrite using + horizontal-scroll-bars-available-p. + * menu-bar.el (menu-bar-showhide-scroll-bar-menu): Rewrite using + horizontal-scroll-bars-available-p. + +2014-09-05 Stefan Monnier + + * subr.el (call-process-shell-command, process-file-shell-command): + Make the `args' obsolete (bug#18409). + (start-process-shell-command, start-file-process-shell-command): + Use `declare'. + +2014-09-05 Jay Belanger + + * calc/calc-forms.el (math-normalize-hms): Do a better check for + "negative" hms forms. + +2014-09-04 Rasmus Pank Roulund + + * vc/vc-git.el (vc-git-conflicted-files): Fix bug when git status + returns nil (bug#18391). + +2014-09-04 Stefan Monnier + + * emacs-lisp/eldoc.el (eldoc-function-argstring): Don't strip + terminating paren (bug#18352). + (eldoc-last-data-store): Return cached data. + (eldoc-get-var-docstring): Avoid setq. + (eldoc-get-fnsym-args-string): Clarify data flow. + +2014-09-04 Thierry Volpiatto + + * emacs-lisp/eldoc.el (eldoc-highlight-function-argument): Handle the + case where we're currently providing part of the &rest arg after some + &key args, as in define-ibuffer-op (bug#18048). + +2014-09-03 Stefan Monnier + + * progmodes/which-func.el (which-func-ff-hook): Obey pre-existing + buffer-local setting of which-func-mode. + (which-func-mode): Use defvar-local. + (which-function-mode): Don't reset which-func-mode in each buffer since + it might have been set by someone else. + (which-func-update-ediff-windows): Check which-function-mode. + +2014-09-03 Martin Rudalics + + * frame.el (frame-initialize): Remove horizontal-scroll-bars + from frame-initial-frame-alist. + * scroll-bar.el (previous-horizontal-scroll-bar-mode) + (horizontal-scroll-bar-mode-explicit) + (set-horizontal-scroll-bar-mode, get-horizontal-scroll-bar-mode) + (toggle-horizontal-scroll-bar): Remove. + (horizontal-scroll-bar-mode): Remove defcustom. + (horizontal-scroll-bar-mode): Fix doc-string. + (scroll-bar-toolkit-scroll) + (scroll-bar-toolkit-horizontal-scroll): Add doc-strings stubs. + +2014-09-03 Stefan Monnier + + * emacs-lisp/package.el (package-generate-description-file): + Properly quote the arguments (bug#18332). Change second arg. + (package--alist-to-plist-args): Rename from package--alist-to-plist and + quote the elements. + (package--make-autoloads-and-stuff): Fix the test for pre-existence of + the *-pkg.el file. Adjust to new calling convention of + package-generate-description-file. + + * progmodes/gud.el (gud-gdb-completion-at-point): Add hack (bug#18282). + (gud-gdb-completions): Remove obsolete workaround. + +2014-09-03 Eli Zaretskii + + * subr.el (posn-col-row): Revert the change from commit + 2010-11-13T21:07:58Z!eliz@gnu.org, which + was inadvertently merged from emacs-23 release branch in 2010-11-18T03:54:14Z!monnier@iro.umontreal.ca + monnier@iro.umontreal.ca-20101118035414-yvlg7k7dk4k4l3q, and + introduced an off-by-one error in the reported row when there is a + header line. (Bug#18384) + +2014-09-03 Fabián Ezequiel Gallina + + * progmodes/python.el (python-indent-post-self-insert-function): + Avoid electric colon at beginning-of-defun. (Bug#18228) + +2014-09-03 Glenn Morris + + * tutorial.el (tutorial--display-changes): + Fix 2014-08-01 change. (Bug#18382) + +2014-09-03 Ken Brown + + * startup.el (fancy-splash-frame): Extend the fix for Bug#16014 to + the Cygwin-w32 build. (Bug#18347) + +2014-09-03 Glenn Morris + + * tar-mode.el (tar--extract, tar-extract): + Avoid permanently disabling undo in extracted buffers. (Bug#18344) + +2014-09-03 Stefan Monnier + + * progmodes/sh-script.el (sh-font-lock-quoted-subshell): Try to better + handle multiline elements (bug#18380). + +2014-09-01 Eli Zaretskii + + * ls-lisp.el (ls-lisp-use-string-collate) + (ls-lisp-UCA-like-collation): New defcustoms. + (ls-lisp-string-lessp): Use them to control sorting by file + names. (Bug#18051) + (ls-lisp-version-lessp): New function. + (ls-lisp-handle-switches): Use it to implement the -v switch of + GNU ls. + (ls-lisp--insert-directory): Mention the -v switch in the doc string. + +2014-08-31 Christoph Scholtes + + * ibuffer.el: Replace mode-specific quit function with + `quit-window' via `special-mode'. + (ibuffer-mode-map): Use keybindings from special-mode-map instead + of local overrides. + (ibuffer): Don't store previous windows configuration. + Let `quit-window' handle restoring. + (ibuffer-quit): Remove function. Use `quit-window' instead. + (ibuffer-restore-window-config-on-quit): Remove variable. + (ibuffer-prev-window-config): Remove variable. + +2014-08-29 Michael Heerdegen + + * emacs-lisp/easy-mmode.el (define-minor-mode): Use mode function + name instead of variable name in hook docstring. (Bug#18349) + +2014-08-29 Martin Rudalics + + * window.el (display-buffer-at-bottom): Prefer bottom-left + window to other bottom windows. Reuse a bottom window if it + shows the buffer already. Suggested by Juri Linkov + in discussion of (Bug#18181). + +2014-08-29 Leo Liu + + * files.el (minibuffer-with-setup-hook): Allow (:append FUN) to + append to minibuffer-setup-hook. (Bug#18341) + +2014-08-28 Stefan Monnier + + * progmodes/cc-defs.el: Expose c-lanf-defconst's expressions to the + byte-compiler. + (lookup-syntax-properties): Silence byte-compiler. + (c-lang-defconst): Quote the code with `lambda' rather than with + `quote'. + (c-lang-const): Avoid unneeded setq. + (c-lang-constants-under-evaluation): Add docstring. + (c-lang--novalue): New constant. + (c-find-assignment-for-mode): Use it instead of c-lang-constants. + (c-get-lang-constant): Same here. + Get the mode's value using `funcall' now that the code is quoted + with `lambda'. + +2014-08-28 Michael Albinus + + * net/tramp.el (tramp-handle-shell-command): Use `display-buffer'. + (Bug#18326) + +2014-08-28 Martin Rudalics + + * scroll-bar.el (scroll-bar-horizontal-drag-1): Handle new + interpretation of `portion-whole'. + +2014-08-28 Michael Albinus + + * net/tramp-adb.el: Spell author name correctly. + +2014-08-28 João Távora + + * net/shr.el (shr-expand-url): Plain expand-file-name is not enough; + use url-expand-file-name. (Bug#18310) + +2014-08-28 Glenn Morris + + * emulation/cua-rect.el (cua--highlight-rectangle): + Avoid error at point-min. (Bug#18309) + +2014-08-28 Stefan Monnier + + * progmodes/python.el (python-shell-prompt-detect): Remove redundant + executable-find (bug#18244). + + * simple.el (self-insert-uses-region-functions): Defvar. + +2014-08-28 Glenn Morris + + * subr.el (remq): Revert 2014-08-25 doc change (not always true). + +2014-08-27 Dmitry Antipov + + * startup.el (normal-top-level): Now use internal--top-level-message. + +2014-08-26 Dmitry Antipov + + * startup.el (normal-top-level): Use top-level-message. + +2014-08-25 Lars Magne Ingebrigtsen + + * net/shr.el (shr-copy-url): Encode copied URL to avoid getting + URLs containing spaces and the like. + +2014-08-25 Christoph Scholtes + + * subr.el (remq): Fix docstring (Bug#18253). + +2014-08-25 Christoph Scholtes + + * replace.el (query-replace): Fix typo in docstring (Bug#18320). + +2014-08-24 Alan Mackenzie + + Handle C++11's "auto" and "decltype" constructions. + * progmodes/cc-engine.el (c-forward-type): Enhance to recognise + and return 'decltype. + (c-forward-decl-or-cast-1): New let variables backup-kwd-sym, + prev-kwd-sym, new-style-auto. Enhance to handle the new "auto" + keyword. + * progmodes/cc-fonts.el (c-font-lock-declarations): Handle the + "decltype" keyword. + (c-font-lock-c++-new): Handle "decltype" constructions. + * progmodes/cc-langs.el (c-auto-ops, c-auto-ops-re): + New c-lang-defconsts/defvars. + (c-haskell-op, c-haskell-op-re): New c-lang-defconsts/defvars. + (c-typeof-kwds, c-typeof-key): New c-lang-defconsts/defvars. + (c-typeless-decl-kwds): Append "auto" onto the C++ value. + (c-not-decl-init-keywords): Also exclude c-typeof-kwds from value. + + Make ">>" act as double template ender in C++ Mode. (Bug#11386) + * progmodes/cc-langs.el (c->-op-cont-tokens): New lang-const split + off from c->-op-cont-re. + (c->-op-cont-tokens): Change to use the above. + (c->-op-without->-cont-regexp): New lang-const. + * progmodes/cc-engine.el (c-forward-<>-arglist-recur): + Use c->-op-without->-cont-regexp in place of c->-op-cont-tokens. + + +2014-08-23 Alan Mackenzie + + * progmodes/cc-fonts.el (c-font-lock-declarators): Fix infinite + loop, bug #18306. The bug was introduced on 2014-08-02. + +2014-08-21 Eli Zaretskii + + * textmodes/texnfo-upd.el (texinfo-specific-section-type): + Don't recognize a Top node if there are other sectioning commands + earlier in the Texinfo file. This fixes a bug in + texinfo-make-menu and avoids inflooping in + texinfo-all-menus-update when they are invoked on texinfo.texi. + +2014-08-21 Martin Rudalics + + * window.el (window--side-window-p): New function. + (split-window, window-splittable-p): Use window--side-window-p to + determine whether WINDOW can be split (Bug#18304). + * calendar/calendar.el (calendar-basic-setup): Fix one call of + `window-splittable-p' and add another (Bug#18304). + +2014-08-20 Sam Steingold + + * progmodes/python.el (python-new-pythonpath): Extract from + `python-shell-calculate-process-environment'. + +2014-08-18 Thierry Volpiatto + + * emacs-lisp/eldoc.el (eldoc-highlight-function-argument): Add support + for &key args (bug#18048). + +2014-08-18 Stefan Monnier + + * emacs-lisp/eldoc.el (eldoc-argument-case): Obsolete and change default. + (eldoc-function-argstring-format): Remove. + (eldoc-function-argstring): Always return upcase args. + Use help-make-usage. Don't add parens. + (eldoc-get-fnsym-args-string): Don't obey eldoc-argument-case since + it's too late to do it right (bug#18048). + +2014-08-18 Eli Zaretskii + + * scroll-bar.el (scroll-bar-horizontal-drag-1) + (scroll-bar-toolkit-horizontal-scroll): When determining the + paragraph direction, use the buffer of the window designated in + the event. + +2014-08-16 Andreas Schwab + + * vc/diff-mode.el (diff-fixup-modifs): Handle empty line in + context of unified diff. + +2014-08-16 Paul Eggert + + Add dependencies to fix loaddefs race during parallel builds. + Without this, for example, 'make -j bootstrap' can fail and report + "Opening input file: no such file or directory, + .../lisp/calendar/diary-loaddefs.el ... recipe for target + 'calendar/hol-loaddefs.el' failed", where the hol-loaddefs.el rule + got confused because diary-loaddefs.el was being built in parallel. + * Makefile.in ($(CAL_DIR)/diary-loaddefs.el): + Depend on $(CAL_DIR)/cal-loaddefs.el. + ($(CAL_DIR)/hol-loaddefs.el): Depend on $(CAL_DIR)/diary-loaddefs.el. + +2014-08-16 Martin Rudalics + + * scroll-bar.el (scroll-bar-horizontal-drag-1): Use cdr of + portion-whole for scrolling right-to-left text. + +2014-08-15 Leo Liu + + * speedbar.el (speedbar-generic-list-tag-p): Allow special + elements from imenu. + +2014-08-15 Glenn Morris + + * subr.el (with-output-to-temp-buffer): Doc fix; from elisp manual. + +2014-08-13 Jan Nieuwenhuizen + + * progmodes/compile.el (compilation-error-regexp-alist-alist): + Add Guile regexpses. + +2014-08-13 Jan Nieuwenhuizen + + * progmodes/gud.el (guiler): New function. Starts the Guile REPL; + add Guile debugger support for GUD. + +2014-08-13 Stefan Monnier + + * obsolete/mouse-sel.el (mouse-sel-mode): Use add/remove-function. + (mouse-sel--ignore): New function. + (mouse-sel-has-been-enabled, mouse-sel-original-bindings) + (mouse-sel-original-interprogram-cut-function) + (mouse-sel-original-interprogram-paste-function): Remove. + +2014-08-13 Eric S. Raymond + + * vc/vc-git.el (vc-git-resolve-when-done): New function. + Call "git add" when there are no longer conflict markers. + +2014-08-13 Rüdiger Sonderfeld + + * vc/vc-git.el (vc-git-find-file-hook): New function. + Adds support for calling smerge (and resolve) on a conflicted file. + (vc-git-conflicted-files): New function. + Useful in itself and a step towards better smerge support. + +2014-08-12 Stefan Monnier + + * mpc.el (mpc-reorder): Don't bother splitting the "active" elements + to the first part if they're the same as the selection. + +2014-08-12 Lars Magne Ingebrigtsen + + * image-mode.el (image-transform-reset): New command and menu item. + (image-mode-map): Rearrange the menu items to put presumably more + obscure items at the end. + +2014-08-12 Juri Linkov + + * vc/vc-annotate.el (vc-annotate-background-mode): + Use `with-demoted-errors' instead of `ignore-errors'. (Bug#18189) + +2014-08-12 Stefan Monnier + + * files.el (out-of-memory-warning-percentage): Turn it off by default. + +2014-08-11 Sam Steingold + + * textmodes/sgml-mode.el (sgml-validate-command): Set depending on + the presence of known validators (tidy, (o)nsgmls). + +2014-08-11 Ulf Jasper + + Newsticker: introduce `newsticker-treeview-date-format'. (Bug#17227) + + * net/newst-treeview.el (newsticker-treeview-date-format): New. + (newsticker--treeview-list-add-item): Use `newsticker-treeview-date-format'. + +2014-08-11 Glenn Morris + + * files.el (basic-save-buffer-2): Revert 2013-01-31 change, which + chose coding system for writing before backing up, since it causes + a more serious problem than the one it solves. (Closes Bug#18141, + reopens Bug#13522.) + +2014-08-11 Martin Rudalics + + * window.el (window-total-size): Make doc-string more self-contained. + + * window.el (display-buffer-below-selected): Restore original + behavior if buffer is already displayed in the window below the + selected one (Bug#18181). + +2014-08-11 Stefan Monnier + + * mouse.el (mouse--down-1-maybe-follows-link): Don't convert the down + event (bug#18212). + +2014-08-11 Eli Zaretskii + + * info.el (info): Doc fix. + +2014-08-11 Stefan Monnier + + * info.el (Info-mode-map): Override a global down-mouse-2 binding + (bug#18212). + +2014-08-11 Eli Zaretskii + + * simple.el (default-line-height): A floating-point value of + line-spacing means a fraction of the default frame font's height, + not of the font currently used by the 'default' face. + Truncate the pixel value, like the display engine does. + (window-screen-lines): Use window-inside-pixel-edges for + determining the window height in pixels. (Bug#18195) + +2014-08-11 Grégoire Jadi + + * leim/quail/latin-post.el: Transform " __" into " _". (Bug#18023) + +2014-08-10 Ulf Jasper + + Enumerate evaluated sexp diary entries (Bug#7911). + * calendar/icalendar.el (icalendar-export-sexp-enumerate-all) + (icalendar-export-sexp-enumeration-days): New. + (icalendar-export-region): Now `icalendar--convert-to-ical' + returns a cons cell or a list of cons cells. + (icalendar--convert-to-ical): Take care of + `icalendar-export-sexp-enumerate-all'. Return (a list of) cons cells. + (icalendar--convert-ordinary-to-ical) + (icalendar--convert-weekly-to-ical, icalendar--convert-yearly-to-ical) + (icalendar--convert-block-to-ical, icalendar--convert-block-to-ical) + (icalendar--convert-float-to-ical, icalendar--convert-cyclic-to-ical) + (icalendar--convert-anniversary-to-ical): Return cons cell. + (icalendar--convert-sexp-to-ical): Enumerate evaluated sexp + entries. Return (list of) cons cells. + +2014-08-09 Juri Linkov + + * vc/vc-annotate.el (vc-annotate-background-mode): Add :set + to reevaluate `vc-annotate-color-map'. (Bug#18189) + +2014-08-09 Alan Mackenzie + + * progmodes/cc-fonts.el (c-font-lock-declarators): Remove check + for top-level that can cause unacceptable slow-down in scrolling. + See email Subject: Huge {...} blocks in C/C++ again, from Dmitry + Antipov from 2013-10-14 in emacs-devel. + +2014-08-08 Rüdiger Sonderfeld + + * ibuffer.el (ibuffer-mode-map): Use toggle button for + `ibuffer-auto-mode' menu entry. + (ibuffer-mode-hook): Add `ibuffer-auto-mode' customization option. + +2014-08-08 Matthias Meulien + + * progmodes/prog-mode.el (prog-mode-hook): Make customizable. + (Bug#16394) + +2014-08-07 Martin Rudalics + + * window.el (window--min-size-1): Explicitly set WINDOW arg in + calls of window-min-pixel-height and window-min-pixel-width. + +2014-08-07 Reuben Thomas + + * progmodes/ada-mode.el: + * net/tramp.el (tramp-handle-file-symlink-p): + * net/tramp-ftp.el (tramp-ftp-file-name-handler): Remove a comment + about VMS, which we no longer support. + * progmodes/ada-xref.el (ada-xref-current): Remove mention of VMS, + and fix a FIXME, using convert-standard-filename in place of + removed ada-convert-file-name. + +2014-08-07 Eli Zaretskii + + * files.el (auto-mode-alist): Remove support for VMS from a pattern. + +2014-08-07 Reuben Thomas + + Refer to MS-DOS using the same name everywhere. + * arc-mode.el, files.el, frame.el: ``MS-DOG'', ``MSDOG'' and + ``msdog'' become ``MS-DOS''. + +2014-08-07 Michael Albinus + + * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): + Use cached "remote-copy-args" value, if available. (Bug#18199) + +2014-08-07 Leo Liu + + * help.el (temp-buffer-setup-hook,temp-buffer-show-hook): + Revert change on 2014-03-22. + +2014-08-06 Ulf Jasper + + * calendar/icalendar.el (icalendar--diarytime-to-isotime) + (icalendar--convert-ordinary-to-ical): Allow for missing minutes + (Bug#13750). + + +2014-08-05 Lars Magne Ingebrigtsen + + * image-mode.el (image-toggle-display-image): Always rescale images + to not be bigger than the current window. + +2014-08-05 Eric Brown (tiny change) + + * net/eww.el (eww-bookmarks-directory): New variable. + (eww-write-bookmarks): Use it. + (eww-read-bookmarks): Ditto. + +2014-08-05 Lars Magne Ingebrigtsen + + * net/shr.el (shr-copy-url): Also copy the image URL. + +2014-08-05 Michael Albinus + + * net/tramp-cache.el (tramp-flush-file-function): Suppress function + also for Tramp working buffers. + +2014-08-04 Fabián Ezequiel Gallina + + * progmodes/python.el: Fix completions inside (i)pdb. + (python-shell-completion-pdb-string-code): Make obsolete. + (python-shell-completion-get-completions): + Use python-shell-completion-string-code resending setup code + continuously for (i)pdb. + +2014-08-04 Paul Eggert + + * rect.el (rectangle--default-line-number-format): Rename + from misspelled rectange--default-line-number-format (Bug#18045). + All uses changed. + +2014-08-03 Paul Eggert + + Don't mishandle year-9999 dates (Bug#18176). + * calendar/parse-time.el (parse-time-rules): + Allow years up to most-positive-fixnum. + * calendar/time-date.el (date-to-time): + Pass "Specified time is not representable" errors through. + +2014-08-02 Fabián Ezequiel Gallina + + * progmodes/python.el: Completion code cleanups. + (python-shell-completion-get-completions): Detect and send import + statements directly to completion function. + (python-shell-completion-at-point): Simplify prompt calculation + and import vs input completion logic. + +2014-08-02 Alan Mackenzie + + Fix confusion in C++ file caused by comma in "= {1,2},". + Bug #17756. + * progmodes/cc-engine.el (c-beginning-of-statement-1): In checking + for a statement boundary marked by "}", check there's no "=" + before the "{". + (c-guess-basic-syntax CASE 9B): Call c-beginning-of-statement with + non-nil `comma-delim' argument. + * progmodes/cc-fonts.el (c-font-lock-declarators): Parse an + initializer expression more accurately. + + Correct loop termination condition in c-syntactic-skip-backward. + * progmodes/cc-engine.el (c-syntactic-skip-backward): Correct for + the situation where, after moving back out of a literal, + skip-chars-backward doesn't move further, yet checks have still to + be done. + +2014-08-01 Eli Zaretskii + + * tutorial.el (tutorial--display-changes): Accept punctuation + characters before the key binding. (Bug#18146) + +2014-07-31 Fabián Ezequiel Gallina + + * progmodes/python.el: Shell output capture enhancements. + (python-shell-accept-process-output): New function. + (inferior-python-mode) + (python-shell-send-setup-code): Use it. + 2014-07-30 Christophe Deleuze (tiny change) - * calendar/icalendar.el (icalendar--decode-isodatetime): Use - actual current-time-zone when converting to local time. (Bug#15408) + * calendar/icalendar.el (icalendar--decode-isodatetime): + Use actual current-time-zone when converting to local time. (Bug#15408) 2014-07-29 Martin Rudalics @@ -112,17 +4586,17 @@ 2014-07-28 Fabián Ezequiel Gallina Grab all Python process output before inferior-python-mode hooks. - * progmodes/python.el (inferior-python-mode): Call - accept-process-output and sit-for to ensure all output for process + * progmodes/python.el (inferior-python-mode): + Call accept-process-output and sit-for to ensure all output for process has been received before running hooks. - (python-shell-internal-get-or-create-process): Cleanup - accept-process-output and sit-for calls. + (python-shell-internal-get-or-create-process): + Cleanup accept-process-output and sit-for calls. 2014-07-28 Fabián Ezequiel Gallina More robust shell startup and code setup. - * progmodes/python.el (python-shell-make-comint): Remove - accept-process-output call. + * progmodes/python.el (python-shell-make-comint): + Remove accept-process-output call. (python-shell-get-buffer): Return current buffer if major-mode is inferior-python-mode. (python-shell-get-or-create-process): Use it. @@ -131,8 +4605,8 @@ 2014-07-27 Eli Zaretskii - * scroll-bar.el (scroll-bar-toolkit-horizontal-scroll): Add - rudimentary support for bidirectional text. + * scroll-bar.el (scroll-bar-toolkit-horizontal-scroll): + Add rudimentary support for bidirectional text. 2014-07-27 Martin Rudalics @@ -285,8 +4759,8 @@ (python-shell-output-filter): Fix comment typo. Fix Python shell prompts detection for remote hosts. - * progmodes/python.el (python-shell-prompt-detect): Replace - call-process with process-file and make it more robust. + * progmodes/python.el (python-shell-prompt-detect): + Replace call-process with process-file and make it more robust. Autodetect Python shell prompts. (Bug#17370) * progmodes/python.el: @@ -506,8 +4980,8 @@ (linum-update-window): Use it to adjust margin to linum's width. * leim/quail/sisheng.el (sisheng-list): Don't bother with-case-table. - * eshell/em-smart.el (eshell-smart-scroll-window): Use - with-selected-window. + * eshell/em-smart.el (eshell-smart-scroll-window): + Use with-selected-window. * xt-mouse.el (xterm-mouse-translate-1): Intern drag event (bug#17894). Remove also pointless window&mark manipulation. @@ -588,7 +5062,7 @@ (dbus-register-service): Register it. (Bug#17858) (dbus-managed-objects-handler): Fix docstring. -2014-07-04 Phil Sainty (tiny change) +2014-07-04 Phil Sainty * emacs-lisp/lisp.el (narrow-to-defun-include-comments): New var. (narrow-to-defun): New arg include-comments, defaulting to it @@ -1078,7 +5552,7 @@ (bug#17818). * mouse.el (mouse-drag-line): Don't re-add to unread-comment-events, - since it's already done inside the loop (bug#17819). + since it's already done inside the loop (bug#17819). 2014-06-21 Martin Rudalics @@ -1613,7 +6087,7 @@ outside of ignored environments. (tildify-build-regexp): Remove function since it is now incorporated in `tildify-foreach-region-outside-env' where it is - optimised and simplified by the use of `mapconcat'. + optimized and simplified by the use of `mapconcat'. (tildify-tildify): Return number of substitutions made so that… (tildify-count): …can be removed. (tildify-find-env): Accept a new PAIRS argument which was @@ -1626,7 +6100,7 @@ and instead using or. * textmodes/tildify.el (tildify-ignored-environments-alist): - Optimise environments regexes + Optimize environments regexes Each time beginning of an environment to ignore is found, `tildify-find-env' needs to identify regexp for the ending @@ -1708,7 +6182,7 @@ The most trivial fix would be to replace `expression' in the true-part of the if-statement with `aux', but instead, this commit - optimises `tildify-find-env' by changing it to use `mapconcat' + optimizes `tildify-find-env' by changing it to use `mapconcat' rather than open-coded while-loop. 2014-06-05 Mario Lang @@ -1838,9 +6312,9 @@ 2014-05-30 Alan Mackenzie Guard (looking-at "\\s!") from XEmacs. - * progmodes/cc-engine.el (c-state-pp-to-literal): add guard form. + * progmodes/cc-engine.el (c-state-pp-to-literal): Add guard form. -2014-05-30 Ken Olum (tiny change) +2014-05-30 Ken Olum * mail/rmail.el (rmail-delete-forward, rmail-delete-backward): The argument COUNT is now optional, to be more backward-compatible. @@ -2186,7 +6660,7 @@ * vc/emerge.el (emerge-make-temp-file): Simplify. 2014-05-14 Stephen Berman - Stefan Monnier + Stefan Monnier * minibuffer.el (completion-pcm--merge-try): Merge trailing / with suffix (bug#15419). @@ -3539,7 +8013,7 @@ 2014-03-23 Lars Ingebrigtsen * calendar/parse-time.el (parse-time-iso8601-regexp) - (parse-iso8601-time-string): Copied from `url-dav' so that we can use + (parse-iso8601-time-string): Copy from `url-dav' so that we can use it more generally. 2014-03-23 Lars Ingebrigtsen @@ -3559,9 +8033,7 @@ 2014-03-23 Daniel Colascione Change subword-mode to use `find-word-boundary-function-table' and - replace `capitalized-words-mode'. Also, convert to lexical - binding. - + replace `capitalized-words-mode'. Also, convert to lexical binding. * progmodes/cap-words.el: Delete now-obsolete file. * progmodes/subword.el: Reimplement using `find-word-boundary-function-table'. @@ -5143,7 +9615,7 @@ * help-at-pt.el (help-at-pt-string, help-at-pt-maybe-display): Also try to display local help from just before point. -2014-02-02 Alan Mackenzie +2014-02-02 Alan Mackenzie c-parse-state. Don't "append-lower-brace-pair" in certain circumstances. Also fix an obscure bug where "\\s!" shouldn't be @@ -5630,15 +10102,15 @@ COMMAND-alternatives variable, assign COMMAND as its definition name so that `describe-variable' can relocate it. -2014-01-14 Matthew Leach (tiny change) +2014-01-14 Matthew Leach * font-lock.el (font-lock-keywords): Fix typo in docstring (bug#16307). 2014-01-14 Agustín Martín Domingo - * ispell.el (ispell-region): Reset `in-comment' for new line - instead of wrongly reset `add-coment' (bug#13577). + * textmodes/ispell.el (ispell-region): Reset `in-comment' for new + line instead of wrongly reset `add-coment' (bug#13577). 2014-01-14 Daiki Ueno @@ -7903,7 +12375,7 @@ Add option to delete file when done. (Bug#15647) (python-shell-send-string, python-shell-send-region): Use it. -2013-11-23 Ivan Shmakov (tiny change) +2013-11-23 Ivan Shmakov * vc/diff-mode.el (diff-mode): Only allow diff-default-read-only to set buffer-read-only to t, never to nil. (Bug#15938) @@ -14932,7 +19404,7 @@ 2013-06-04 Alan Mackenzie - Remove faulty optimisation from indentation calculation. + Remove faulty optimization from indentation calculation. * progmodes/cc-engine.el (c-guess-basic-syntax): Don't calculate search limit based on 2000 characters back from indent-point. diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10 index dd5267725e5..6e65e4ca493 100644 --- a/lisp/ChangeLog.10 +++ b/lisp/ChangeLog.10 @@ -1,4 +1,4 @@ -2003-07-03 Martin Stjernholm +2003-07-03 Martin Stjernholm * progmodes/cc-menus.el (cc-imenu-init): Do not set `imenu-create-index-function' if the second argument is left @@ -9,7 +9,7 @@ (c-lineup-arglist-close-under-paren): Fixes to cope with special brace lists in Pike. -2003-07-03 Alan Mackenzie +2003-07-03 Alan Mackenzie * progmodes/cc-mode.el (awk-mode): Call c-awk-after-change to ensure syntax-table props at loading. @@ -21,7 +21,7 @@ analyze AWK top-level forms properly (c-guess-basic-syntax CASE 5P), c-awk-backward-syntactic-ws. -2003-07-03 Martin Stjernholm +2003-07-03 Martin Stjernholm * progmodes/cc-fix.el: cc-mode-19.el has been renamed to progmodes/cc-fix.el since it now contains compatibility stuff @@ -59,7 +59,7 @@ * progmodes/cc-langs.el (comment-end): Put a space in front of the comment ender in C, as it was before the move from cc-mode.el. -2003-07-03 Alan Mackenzie +2003-07-03 Alan Mackenzie * progmodes/cc-fonts.el: Do not load progmodes/cc-awk.elc or awk-font-lock-keywords unless there is an AWK Mode buffer. @@ -72,7 +72,7 @@ * progmodes/cc-engine.el, progmodes/cc-fonts.el: Changes for the new AWK support. -2003-07-03 Martin Stjernholm +2003-07-03 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-langs.el (c-decl-block-key, c-search-uplist-for-classkey): Check that @@ -940,8 +940,8 @@ This change is slightly incompatible. Although the calling convention for line-up functions is strictly extended, the format - of the `c-syntactic-context' variable has changed slightly. It's - believed that this incompatibility is minor, though; not a single + of the `c-syntactic-context' variable has changed slightly. + It's believed that this incompatibility is minor, though; not a single line-up function distributed with CC Mode needed to be changed, for instance. @@ -1612,7 +1612,7 @@ * dabbrev.el (dabbrev--goto-start-of-abbrev): Use minibuffer-prompt-end. - * comint.el (comint-move-point-for-output): Renamed from + * comint.el (comint-move-point-for-output): Rename from comint-scroll-to-bottom-on-output. Old name is alias. All uses changed. Doc fix. (comint-scroll-show-maximum-output): Doc fix. @@ -2918,7 +2918,7 @@ 2003-05-09 Sam Steingold - * pcvs.el (cvs-mode-find-file): Fixed the last patch's logic. + * pcvs.el (cvs-mode-find-file): Fix the last patch's logic. 2003-05-09 Stefan Monnier @@ -3253,7 +3253,7 @@ 2003-05-03 Richard M. Stallman - * emacs-lisp/autoload.el (update-directory-autoloads): Renamed from + * emacs-lisp/autoload.el (update-directory-autoloads): Rename from update-autoloads-from-directories. * progmodes/cperl-mode.el (cperl-nonoverridable-face): Doc fix. @@ -3792,7 +3792,7 @@ for both the argument and the value. * desktop.el (desktop-base-file-name): - Renamed from desktop-basefilename. Add defvaralias. + Rename from desktop-basefilename. Add defvaralias. 2003-04-14 John Paul Wallington @@ -3859,7 +3859,7 @@ (describe-minor-mode-completion-table-for-symbol): New functions. minor-mode-list is used here. (describe-minor-mode-from-symbol): - Renamed from (old) describe-minor-mode. + Rename from (old) describe-minor-mode. Use describe-minor-mode-completion-table-for-symbol. Don't use eval. Just use symbol-name. (describe-minor-mode-from-indicator): Document is updated. @@ -3929,7 +3929,7 @@ * international/mule.el: Don't set after-insert-file-adjust-coding-function. (after-insert-file-set-coding): - Renamed from after-insert-file-set-buffer-file-coding-system. + Rename from after-insert-file-set-buffer-file-coding-system. 2003-04-11 Kenichi Handa @@ -3952,13 +3952,13 @@ (quail-make-guidance-frame): Delete the arg BUF. Fix position calculation. Don't set the window buffer, just return the new frame. (quail-minibuffer-message): New function. - (quail-show-guidance): Renamed from quail-show-guidance-buf. + (quail-show-guidance): Rename from quail-show-guidance-buf. Use message and quail-minibuffer-message to display the guidance. - (quail-hide-guidance): Renamed from quail-hide-guidance-buf. + (quail-hide-guidance): Rename from quail-hide-guidance-buf. Only delete quail-guidance-frame. (quail-update-guidance): Just update quail-guidance-str, not display it. - (quail-get-translations): Renamed from quail-show-translations. + (quail-get-translations): Rename from quail-show-translations. Return a string instead of inserting it in quail-guidance-buf. 2003-04-11 Kenichi Handa @@ -3969,7 +3969,7 @@ 2003-04-10 Juanma Barranquero - * frame.el (modify-all-frames-parameters): Deleted. + * frame.el (modify-all-frames-parameters): Delete. 2003-04-10 Sebastian Tennant (tiny change) @@ -4071,7 +4071,7 @@ (utf-16-le-with-signature, utf-16-be-with-signature) (utf-16): Aliases of the above coding systems. -2003-04-08 Martin Stjernholm +2003-04-08 Martin Stjernholm * progmodes/cc-langs.el (c-symbol-key): Use POSIX char classes to match symbols. This makes CC Mode cope with the full range @@ -4146,7 +4146,7 @@ 2003-04-06 Masatake YAMATO - * progmodes/etags.el (tag-find-file-of-tag): Renamed from + * progmodes/etags.el (tag-find-file-of-tag): Rename from find-file-of-tag to avoid name space pollution. (tag-find-file-of-tag-noselect): Likewise. (etags-list-tags, etags-tags-apropos): @@ -4270,10 +4270,10 @@ 2003-04-02 Masatake YAMATO - * woman.el (woman-xref): Removed. + * woman.el (woman-xref): Remove. (woman-mode): Use `Man-highlight-references' instead of `WoMan-highlight-references'. - (WoMan-highlight-references): Removed. + (WoMan-highlight-references): Remove. * man.el (toplevel): Require button. (Man-header-file-path): New option. @@ -4285,7 +4285,7 @@ `button-buffer-map'. (Man-xref-man-page, Man-xref-header-file, Man-xref-normal-file): New buttons. `Man-xref-man-page' comes from woman.el. - (man-follow-mouse): Removed. + (man-follow-mouse): Remove. (Man-fontify-manpage): Use `Man-highlight-references' instead of calling `add-text-properties' directly. (Man-highlight-references, Man-highlight-references0): New functions. @@ -4525,7 +4525,7 @@ * net/net-utils.el (dns-lookup-host): New function. -2003-03-23 Martin Stjernholm +2003-03-23 Martin Stjernholm * progmodes/cc-mode.el (c-parse-state): Add kludge to avoid an infinite loop when Emacs' open-paren-in-column-zero rule @@ -5471,8 +5471,8 @@ * ffap.el: Many doc fixes. (ffap-replace-file-component): - Renamed from ffap-replace-path-component. Callers changed. - (ffap-host-to-filename): Renamed from ffap-host-to-path. Callers chgd. + Rename from ffap-replace-path-component. Callers changed. + (ffap-host-to-filename): Rename from ffap-host-to-path. Callers chgd. * international/iso-ascii.el (iso-ascii-display-table): New variable. (iso-ascii-standard-display-table): New variable. @@ -5801,13 +5801,13 @@ * language/ind-util.el (indian-itrans-v5-table): Add entries for "E" and "O". -2003-02-10 Martin Stjernholm +2003-02-10 Martin Stjernholm * progmodes/cc-styles.el (c-set-offset): Don't find a default syntactic element through syntactic analysis if called outside a CC Mode buffer. -2003-02-09 Martin Stjernholm +2003-02-09 Martin Stjernholm * progmodes/cc-mode.el (c-basic-common-init): Install `c-fill-paragraph' on `fill-paragraph-function'. @@ -5974,7 +5974,7 @@ * term.el (term-raw-map): Set it up at load time. (term-char-mode): Don't set up term-raw-map here. (term-set-escape-char): Don't set up C-x subcommand. - (term-ansi-face-already-done): Renamed from + (term-ansi-face-already-done): Rename from term-ansi-face-alredy-done. (term-command-hook): Avoid error if STRING is empty. (term, term-mode): Doc fixes. @@ -6134,7 +6134,7 @@ (antlr-slow-syntactic-context): Use cache. (antlr-slow-cache-enabling-symbol): New internal variable. (antlr-slow-cache-diff-threshold): New variable. - (antlr-fast-invalidate-context-cache): Renamed from + (antlr-fast-invalidate-context-cache): Rename from antlr-xemacs-bug-workaround. (antlr-imenu-create-index-function): Search from beginning. @@ -6152,13 +6152,13 @@ (antlr-simple-read-shell-command): Define. (antlr-simple-with-displaying-help-buffer): Define. (antlr-simple-scan-sexps, antlr-simple-scan-lists): - Renamed from antlr-scan-{sexps,lists}-internal. + Rename from antlr-scan-{sexps,lists}-internal. Changes from 2002-02-28: * progmodes/antlr-mode.el: Version 2.2 is released. - * progmodes/antlr-mode.el (antlr): Moved to SourceForge.net + * progmodes/antlr-mode.el (antlr): Move to SourceForge.net * progmodes/antlr-mode.el: Minor bug fixes: insert options and indentation. @@ -6284,7 +6284,7 @@ * ibuf-ext.el (ibuffer-yank-filter-group): Move check for empty `ibuffer-filter-group-kill-ring' out of `interactive' declaration. -2003-01-28 Martin Stjernholm +2003-01-28 Martin Stjernholm * progmodes/cc-vars.el, progmodes/cc-mode.el (c-require-final-newline): Made this variable an alist to @@ -6325,7 +6325,7 @@ * progmodes/ebrowse.el (ebrowse-draw-tree-fn): Likewise. -2003-01-26 Martin Stjernholm +2003-01-26 Martin Stjernholm * progmodes/cc-vars.el, progmodes/cc-mode.el (c-require-final-newline): Add a variable to make the @@ -6930,7 +6930,7 @@ 2003-01-08 Francesco Potortì - * mail/undigest.el (unforward-rmail-message): Simplified. + * mail/undigest.el (unforward-rmail-message): Simplify. No functional change. 2003-01-07 Markus Rost @@ -7354,7 +7354,7 @@ (makeinfo-compilation-sentinel-buffer, makeinfo-current-node): New functions. (makeinfo-compile): Add a sentinel parameter. - (makeinfo-compilation-sentinel-region): Renamed from + (makeinfo-compilation-sentinel-region): Rename from makeinfo-compilation-sentinel, and makeinfo-temp-file now never nil. (makeinfo-region): Use this. * info.el (Info-revert-find-node): New function. @@ -7412,7 +7412,7 @@ 2002-12-20 Francesco Potortì - * mail/undigest.el (rmail-mail-separator): Renamed from + * mail/undigest.el (rmail-mail-separator): Rename from rmail-digest-mail-separator. All users changed. (unforward-rmail-message): Rewritten to be more robust and to additionally account for the common style of forwarding messages @@ -7618,7 +7618,7 @@ 2002-12-10 Steven Tamm - * generic-x.el (javascript-generic-mode): Added C style block + * generic-x.el (javascript-generic-mode): Add C style block comments as used in ECMA-262 standard. 2002-12-10 Kenichi Handa @@ -8136,7 +8136,7 @@ * progmodes/sql.el: Added LINTER support. (sql-linter-program): New variable. (sql-linter-options): New variable. - (sql-mode-menu): Added Linter keywords. + (sql-mode-menu): Add Linter keywords. (sql-mode-linter-font-lock-keywords): New variable. (sql-highlight-linter-keywords): New function. (sql-linter): New function. @@ -8165,7 +8165,7 @@ 2002-11-20 Markus Rost - * Makefile.in (setwins_almost): Renamed from finder_setwins. + * Makefile.in (setwins_almost): Rename from finder_setwins. (custom-deps): Use it. (finder-data): Adjust to that name change. @@ -8317,10 +8317,10 @@ diary-entries-list. (diary-mode, fancy-diary-display-mode): New derived modes, for diary file and fancy diary buffer respectively. - (fancy-diary-font-lock-keywords, diary-font-lock-keywords): New - variables. - (font-lock-diary-sexps, font-lock-diary-date-forms): New - functions, used in diary-font-lock-keywords. + (fancy-diary-font-lock-keywords, diary-font-lock-keywords): + New variables. + (font-lock-diary-sexps, font-lock-diary-date-forms): + New functions, used in diary-font-lock-keywords. * calendar/calendar.el (diary-face): New. (european-calendar-display-form, describe-calendar-mode) @@ -8335,9 +8335,9 @@ * international/codepage.el (cp866-decode-table): Fix the translation table. -2002-11-16 Martin Stjernholm +2002-11-16 Martin Stjernholm - * progmodes/cc-bytecomp.el (cc-bytecomp-defun): Fixed bug that + * progmodes/cc-bytecomp.el (cc-bytecomp-defun): Fix bug that caused existing function definitions to be overridden by phonies when the bytecomp environment is restored. @@ -8390,7 +8390,7 @@ * files.el (mode-name): Mark it as risky-local-variable like the other mode-line elements (moved from bindings.el). - * bindings.el (mode-name): Moved mark as risky-local-variable to + * bindings.el (mode-name): Move mark as risky-local-variable to files.el. 2002-11-14 Juanma Barranquero @@ -8452,7 +8452,7 @@ * vc-sccs.el (vc-sccs-registered): Improve comment. -2002-11-13 Tim Van Holder (tiny change) +2002-11-13 Tim Van Holder * progmodes/compile.el (compilation-error-regexp-alist): Don't include colon and space after a file name as part of the name. @@ -8655,13 +8655,13 @@ don't defvar, and make permanent-local. (ucs-unify-8859, ucs-unify-8859, ucs-fragment-8859): Add/remove set-buffer-major-mode-hook, not quail-activate-hook. - (ucs-set-table-for-input): Renamed from ucs-quail-activate. + (ucs-set-table-for-input): Rename from ucs-quail-activate. (ucs-unify-8859, ucs-unify-8859, ucs-fragment-8859): Setup keyboard-translate-table, not translation-table-for-input. Modify set-buffer-major-mode-hook, not quail-activate-hook. (ucs-fragment-8859): Don't use translation-table-for-input coding system property. - (ucs-quail-activate): Deleted. + (ucs-quail-activate): Delete. (ucs-set-table-for-input): New. (ucs-minibuffer-setup): Use it. @@ -8691,7 +8691,7 @@ 2002-11-06 Kim F. Storm - * info.el (Info-fontify-node): Fixed hiding of *note references + * info.el (Info-fontify-node): Fix hiding of *note references with embedded file names like (xxx.yyy). Avoid making any lines visibly longer if hiding newlines inside note references by wrapping line after references if it contained @@ -8852,7 +8852,7 @@ 2002-10-29 Kim F. Storm - * ido.el (ido-wide-find-dirs-or-files): Fixed problem that caused + * ido.el (ido-wide-find-dirs-or-files): Fix problem that caused incomplete list of matches to be returned. 2002-10-29 Masayuki Ataka (tiny change) @@ -9119,21 +9119,21 @@ * international/mule-diag.el (non-iso-charset-alist): Add koi8-u. - * international/code-pages.el (cp-make-translation-table): Use - ucs-mule-to-mule-unicode. + * international/code-pages.el (cp-make-translation-table): + Use ucs-mule-to-mule-unicode. (cp-fix-safe-chars): Fix typo. (non-iso-charset-alist): Don't define. (cp-make-coding-system): Use utf-8-translation-table-for-decode. Define translation-table-for-input. (cp866): Reinstate. (alternativnj): Don't define alias. - (koi8-u): Deleted. + (koi8-u): Delete. * language/european.el ("Slovenian"): Use slovenian input-method. (encode-mac-roman): Use ucs-mule-to-mule-unicode. - * language/cyrillic.el (cyrillic-alternativnyj-decode-table): Fix - the table. + * language/cyrillic.el (cyrillic-alternativnyj-decode-table): + Fix the table. (cyrillic-alternativnyj): Don't give it `mime-charset' property. (cp866): Delete this alias. ("Bulgarian"): Fix the value of `input-method'. @@ -9162,8 +9162,8 @@ 2002-10-15 Kenichi Handa - * mail/sendmail.el (sendmail-send-it): Call - select-message-coding-system before changing the current buffer to + * mail/sendmail.el (sendmail-send-it): + Call select-message-coding-system before changing the current buffer to " sendmail temp". 2002-10-14 Andre Spiegel @@ -9171,7 +9171,7 @@ * files.el (insert-directory): Handle //SUBDIRED// lines in recursive listings from ls --dired. - * vc.el (vc-dired-reformat-line): Simplified. Handles text + * vc.el (vc-dired-reformat-line): Simplify. Handles text properties correctly now. 2002-10-14 Juanma Barranquero @@ -9208,7 +9208,7 @@ * ediff-init.el (ediff-frame-char-height): Use frame-selected-window. - * ediff-util.el (ediff-file-checked-in-p): Changed progn with and. + * ediff-util.el (ediff-file-checked-in-p): Change progn with and. * ediff-wind.el (ediff-skip-unsuitable-frames): Distinguish selected frame from frame of selected window. @@ -9341,7 +9341,7 @@ 2002-10-07 Kim F. Storm * emulation/cua-base.el (cua-normal-cursor-color): - Fixed initialization to make "Erase Customization" work. + Fix initialization to make "Erase Customization" work. 2002-10-07 Stefan Monnier @@ -9469,7 +9469,7 @@ (widget-editable-list-entry-create): Update caller. * wid-edit.el (widget-types-copy): New function. - (default): Added :copy keyword. + (default): Add :copy keyword. (menu-choice): Ditto. (checklist): Ditto. (radio-button-choice): Ditto. @@ -9580,17 +9580,17 @@ * international/utf-8.el (ucs-mule-to-mule-unicode): Don't define this translation-table name here. (utf-translation-table-for-encode): New translation-table name. - (utf-fragmentation-table): Renamed from utf-8-fragmentation-table. + (utf-fragmentation-table): Rename from utf-8-fragmentation-table. (utf-defragmentation-table): New variable. - (ucs-mule-cjk-to-unicode): Renamed from utf-8-subst-rev-table. + (ucs-mule-cjk-to-unicode): Rename from utf-8-subst-rev-table. (utf-subst-table-for-encode): New translation-table name. - (ucs-unicode-to-mule-cjk): Renamed from utf-8-subst-table. + (ucs-unicode-to-mule-cjk): Rename from utf-8-subst-table. (utf-subst-table-for-decode): New translation-table name. - (utf-fragment-on-decoding): Renamed from + (utf-fragment-on-decoding): Rename from utf-8-fragment-on-decoding. Correctly handle the case that unify-8859-on-encoding-mode is off. Handle mule-utf-16-le and mule-utf-16-be too. - (utf-translate-cjk): Renamed from utf-8-translate-cjk. + (utf-translate-cjk): Rename from utf-8-translate-cjk. Handle mule-utf-16-le and mule-utf-16-be too. (ccl-decode-mule-utf-8): Refer to utf-translation-table-for-decode and utf-subst-table-for-decode. @@ -10044,7 +10044,7 @@ (gamegrid-display-type): Use Emacs' standard `display-.*-p' functions to check for display capabilities. Fix the recognition of image-support in Emacs 21 by this way. - (gamegrid-hide-cursor): Removed. + (gamegrid-hide-cursor): Remove. (gamegrid-setup-default-font): Ported the code from XEmacs to Emacs: create a new face and assign the variable `gamegrid-face' to it. Make sure that the face is not higher than the smallest @@ -10234,7 +10234,7 @@ 2002-09-10 Michael Albinus - * net/tramp.el (tramp-handle-write-region): Added missing + * net/tramp.el (tramp-handle-write-region): Add missing `)'. Hope it's the right place. 2002-09-09 Kai Großjohann @@ -10246,7 +10246,7 @@ something harmless, but the /bin/sh will display a dollar sign which confused the subsequent prompt recognition. (tramp-multi-action-password): More debugging output. - (tramp-encoding-shell): Renamed from tramp-sh-program. + (tramp-encoding-shell): Rename from tramp-sh-program. More documentation. Default to cmd.exe on Windows NT. (tramp-encoding-command-switch): New variable. Use instead of hard-wired "-c" which is only good for /bin/sh. @@ -10286,7 +10286,7 @@ (tramp-completion-handle-file-name-all-completions): Change function call for user/host completion according to definition in `tramp-completion-function-alist'. - (tramp-parse-passwd): Added exception handling for "root", because + (tramp-parse-passwd): Add exception handling for "root", because `tramp-get-completion-su' (the previous place for this stuff) doesn't exist any longer. @@ -10375,7 +10375,7 @@ (tramp-multi-file-name-hop-structure-unified) (tramp-multi-file-name-hop-structure-separate) (tramp-make-multi-tramp-file-format-unified) - (tramp-make-multi-tramp-file-format-separate): Removed. + (tramp-make-multi-tramp-file-format-separate): Remove. (tramp-make-tramp-file-name): Allow partial tramp file names. Generate tramp file format on-the-fly depending on parameters. Apply atomar format strings resp expressions. @@ -10402,7 +10402,7 @@ (tramp-completion-file-name-handler-alist): Add handler for `file-exists-p. (tramp-completion-handle-file-exists-p): New function. - (tramp-completion-handle-file-name-completion): Simplified. + (tramp-completion-handle-file-name-completion): Simplify. (tramp-completion-dissect-file-name): Regexp's reorganized. (tramp-completion-handle-file-name-all-completions): Call completion-function only if `user' or `host' is given. @@ -10683,7 +10683,7 @@ * viper-util.el (viper-chars-in-region): Simplification. - * viper.el (viper-emacs-state-mode-list): Added modes. + * viper.el (viper-emacs-state-mode-list): Add modes. 2002-09-18 Jonathan Yavner @@ -10766,13 +10766,13 @@ (nonincremental-search-forward, nonincremental-re-search-forward) (nonincremental-search-backward, nonincremental-re-search-backward): Set menu-bar-last-search-type to string or regexp. - (nonincremental-repeat-re-search-forward): Removed. - (nonincremental-repeat-re-search-backward): Removed. + (nonincremental-repeat-re-search-forward): Remove. + (nonincremental-repeat-re-search-backward): Remove. (menu-bar-replace-menu): New keymap for "Edit->Replace" submenu. (menu-bar-i-search-menu): New keymap for "Incremental Search" submenu. - (menu-bar-adv-search-menu): Removed. + (menu-bar-adv-search-menu): Remove. (menu-bar-search-menu): Reorganized. - (menu-bar-edit-menu): Added "Replace" submenu. + (menu-bar-edit-menu): Add "Replace" submenu. 2002-09-15 Richard M. Stallman @@ -10917,7 +10917,7 @@ 2002-09-13 Kim F. Storm - * kmacro.el (kmacro-keymap): Changed bindings: + * kmacro.el (kmacro-keymap): Change bindings: C-x C-k s to kmacro-start-macro, C-x C-k b to kmacro-bind-to-key. 2002-09-12 Richard M. Stallman @@ -11033,7 +11033,7 @@ * loadup.el ("simple.el"): Move to after loaddefs.el. - * subr.el (define-mail-user-agent): Moved from simple.el. + * subr.el (define-mail-user-agent): Move from simple.el. 2002-09-10 Richard M. Stallman @@ -11051,11 +11051,11 @@ * international/ucs-tables.el: Bind utf-8-translation-table-for-decode when setting up tables and remove useless optimize-char-table. - (ucs-mule-to-mule-unicode): Deleted. + (ucs-mule-to-mule-unicode): Delete. (ucs-unify-8859): Maybe optimize ucs-mule-to-mule-unicode. * international/utf-16.el (utf-16-le-pre-write-conversion) - (utf-16-be-pre-write-conversion): Deleted. + (utf-16-be-pre-write-conversion): Delete. (mule-utf-16-le, mule-utf-16-be): Register encoding translation table. 2002-09-10 Richard M. Stallman @@ -11384,10 +11384,10 @@ * vc-hooks.el: Require vc.el at compile-time. (vc-workfile-unchanged-p, vc-default-workfile-unchanged-p): - Moved here from vc.el. + Move here from vc.el. * vc.el (vc-workfile-unchanged-p, vc-default-workfile-unchanged-p): - Moved to vc-hooks.el. + Move to vc-hooks.el. * vc-rcs.el (vc-rcs-state): Don't require vc.el. @@ -11540,7 +11540,7 @@ 2002-08-30 ARISAWA Akihiro (tiny change) - * ps-print.el (ps-lp-system): Fixed typo in `usg-unix-v'. + * ps-print.el (ps-lp-system): Fix typo in `usg-unix-v'. 2002-08-30 Markus Rost @@ -11660,7 +11660,7 @@ 2002-08-28 Juanma Barranquero - * replace.el (occur-hook): Renamed from `occur-mode-hook'. + * replace.el (occur-hook): Rename from `occur-mode-hook'. (occur-mode): Remove call to `occur-mode-hook'. (occur-rename-buffer): Fix reference to `occur-mode-hook' in docstring. (occur-1): Add call to `occur-hook'. @@ -11700,9 +11700,9 @@ (reftex-section-number): Better handling of parts: No chapter counter resets. - * textmodes/reftex.el (reftex-highlight-overlays): Added a third + * textmodes/reftex.el (reftex-highlight-overlays): Add a third overlay. - (reftex-mode-menu): Added entry for `reftex-toc-recenter. + (reftex-mode-menu): Add entry for `reftex-toc-recenter. Also moved `reftex-reset-mode' to top level. * textmodes/reftex-toc.el (reftex-toc-recenter): New command. @@ -11745,15 +11745,15 @@ 2002-08-25 Miles Bader * rfn-eshadow.el (file-name-shadow-properties-custom-type): - Renamed from `read-file-name-electric-shadow-properties-custom-type'. + Rename from `read-file-name-electric-shadow-properties-custom-type'. Change name of face. - (file-name-shadow-properties): Renamed from + (file-name-shadow-properties): Rename from `read-file-name-electric-shadow-properties'. - (file-name-shadow-tty-properties): Renamed from + (file-name-shadow-tty-properties): Rename from `read-file-name-electric-shadow-tty-properties'. - (file-name-shadow): Renamed from `read-file-name-electric-shadow'. + (file-name-shadow): Rename from `read-file-name-electric-shadow'. (rfn-eshadow-setup-minibuffer): Update references to renamed variables. - (file-name-shadow-mode): Renamed from + (file-name-shadow-mode): Rename from `read-file-name-electric-shadow-mode'. Update references to renamed variables. @@ -11797,7 +11797,7 @@ * files.el (ange-ftp-completion-hook-function): Add safe-magic prop. * subr.el (symbol-file-load-history-loaded) - (load-symbol-file-load-history): Deleted. + (load-symbol-file-load-history): Delete. (symbol-file): Don't call load-symbol-file-load-history. 2002-08-23 Andre Spiegel @@ -11859,18 +11859,18 @@ 2002-08-21 Kim F. Storm - * bindings.el (mode-line-format): Moved global-mode-string last. - (mode-line-position): Moved %p first. Added padding to %l/%c to + * bindings.el (mode-line-format): Move global-mode-string last. + (mode-line-position): Move %p first. Added padding to %l/%c to eliminate jumpiness in modeline. Use (%l,%c) format if both line-number-mode and column-number-mode are enabled. -2002-08-20 Martin Stjernholm +2002-08-20 Martin Stjernholm - * progmodes/cc-engine.el (c-forward-syntactic-ws): Fixed a bug + * progmodes/cc-engine.el (c-forward-syntactic-ws): Fix a bug that could cause an infinite loop if something that looks like a macro begins in the middle of a line. - * progmodes/cc-engine.el (c-parse-state): Fixed a bug that + * progmodes/cc-engine.el (c-parse-state): Fix a bug that could cause `c-state-cache' to contain two conses in sequence when there's an unbalanced open paren in a macro. @@ -11990,7 +11990,7 @@ 2002-08-15 Carsten Dominik - * textmodes/reftex.el (reftex-mode): Moved the creation of special + * textmodes/reftex.el (reftex-mode): Move the creation of special syntax tables to top-level. 2002-08-15 David Kastrup @@ -12094,7 +12094,7 @@ * international/mule-cmds.el (search-unencodable-char): New function. (select-safe-coding-system): Show unencodable characters. - (unencodable-char-position): Deleted, and implemented in C in coding.c. + (unencodable-char-position): Delete, and implemented in C in coding.c. 2002-04-09 John Wiegley @@ -12177,9 +12177,9 @@ 2002-08-05 Alan Shutko - * ibuffer.el (ibuffer-mode-map): Added ibuffer-filter-by-used-mode. - (ibuffer-mode-map): Added ibuffer-filter-by-used-mode. - (ibuffer-mode): Added ibuffer-filter-by-used-mode to doc string. + * ibuffer.el (ibuffer-mode-map): Add ibuffer-filter-by-used-mode. + (ibuffer-mode-map): Add ibuffer-filter-by-used-mode. + (ibuffer-mode): Add ibuffer-filter-by-used-mode to doc string. * ibuf-ext.el (ibuffer-list-buffer-modes): New. (ibuffer-filter-by-used-mode): New. @@ -12359,11 +12359,11 @@ 2002-07-31 Richard M. Stallman - * makefile.w32-in (compile-after-backup): Renamed from `compile'. + * makefile.w32-in (compile-after-backup): Rename from `compile'. Use `compile-always'. (bootstrap): Use `compile', not `compile-files'. Use `update-subdirs'. - (compile): Renamed from `compile-files'. - (compile-CMD, compile-SH): Renamed from `compile-files-*'. + (compile): Rename from `compile-files'. + (compile-CMD, compile-SH): Rename from `compile-files-*'. * emacs-lisp/bytecomp.el (byte-compile-find-cl-functions): Check that (car elt) is a string. @@ -12574,10 +12574,10 @@ 2002-07-25 Carsten Dominik * textmodes/reftex.el (reftex-compile-variables): - Simplified regular expression. + Simplify regular expression. * textmodes/reftex-parse.el (reftex-locate-bibliography-files): - Simplified the regexp. + Simplify the regexp. * textmodes/reftex-cite.el (reftex-get-bibkey-default): New function. (reftex-extract-bib-entries-from-thebibliography): @@ -12639,8 +12639,8 @@ * warnings.el (warning-levels): Add %s to the strings. (warning-group-format): New variable. - (warning-suppress-log-types): Renamed from warning-suppress-log. - (warning-suppress-types): Renamed from warning-suppress. + (warning-suppress-log-types): Rename from warning-suppress-log. + (warning-suppress-types): Rename from warning-suppress. (display-warning): Implement those changes. 2002-07-23 Richard M. Stallman @@ -12677,7 +12677,7 @@ (finder-inf.el): Remove. (update-authors): New target. (TAGS-LISP): Remove $(lispsource). - (compile-always): Renamed from `compile-files'. + (compile-always): Rename from `compile-files'. (compile): New target, adapted from `compile-files'. (compile-calc): New target. (recompile): Change `.' to $(lisp). @@ -12698,7 +12698,7 @@ * net/browse-url.el (browse-url-lynx-input-attempts): Use defcustom. (browse-url-lynx-input-delay): Add custom type and group. - * cus-start.el (double-click-fuzz): Added. + * cus-start.el (double-click-fuzz): Add. 2002-07-22 Alan Shutko @@ -12747,7 +12747,7 @@ (reftex-toc-split-windows-horizontally): New option. (reftex-toc-split-windows-horizontally-fraction): New option. (reftex-include-file-commands): New option. - (reftex-cite-format-builtin): Added ?n for nocite. + (reftex-cite-format-builtin): Add ?n for nocite. * textmodes/reftex-index.el (reftex-query-index-phrase): Use `reftex-index-verify-function'. @@ -12764,7 +12764,7 @@ * textmodes/reftex.el (reftex-compile-variables): Use `reftex-include-file-commands'. - (reftex-type-query-prompt): Changed defconst to defvar. + (reftex-type-query-prompt): Change defconst to defvar. (reftex-type-query-help, reftex-typekey-to-format-alist) (reftex-typekey-to-prefix-alist, reftex-env-or-mac-alist) (reftex-special-env-parsers, reftex-label-mac-list) @@ -12929,7 +12929,7 @@ (ucs-mule-to-mule-unicode): New. (ucs-unify-8859): Use utf-8-fragment-on-decoding, set up Quail translation. - (ucs-fragment-8859): Modified consistent with ucs-unify-8859. + (ucs-fragment-8859): Modify consistent with ucs-unify-8859. (unify-8859-on-encoding-mode): Doc mod. Fix custom version. (unify-8859-on-decoding-mode): Doc mod. Change code. Fix custom version. Add custom dependencies. @@ -13184,7 +13184,7 @@ 2002-07-13 Kim F. Storm - * progmodes/compile.el (grep-tree): Fixed autoload. + * progmodes/compile.el (grep-tree): Fix autoload. Corrected use of undefined variable `match-files-aliases'. 2002-07-12 Glenn Morris @@ -13263,7 +13263,7 @@ (tramp-handle-file-name-directory): Don't return "/" when completing a remote root directory (where the filename looks like "/method:user@host:/"). - (tramp-handle-ange-ftp): Deleted. + (tramp-handle-ange-ftp): Delete. (tramp-disable-ange-ftp): New function, called at toplevel, deletes Ange-FTP from file-name-handler-alist. (tramp-handle-make-symbolic-link): Implement. @@ -13357,7 +13357,7 @@ * files.el (after-find-file): Don't check for read-only status of files just created (and not yet saved on disk). - * ido.el (ido-completion-help): Changed XEmacs specific code to + * ido.el (ido-completion-help): Change XEmacs specific code to avoid byte compiler warning in GNU Emacs. (ido-set-matches1): Use regexp-quote instead of identity. (ido-complete-space): New function. @@ -13549,7 +13549,7 @@ (define-stroke, strokes-fix-button2-command, strokes-insinuated) (strokes-insinuate, global-set-stroke, describe-stroke) (load-user-strokes, save-strokes, strokes-bug-address) - (strokes-click-command): Deleted. + (strokes-click-command): Delete. (strokes-execute-stroke): Remove strokes-click-p case. (strokes-describe-stroke): Remove strokes-click-p stuff. (strokes-help): Fix. @@ -13868,7 +13868,7 @@ end-statement, specially with regards to nested subprograms. (comment-region advice): Initially disabled, for better compatibility with other modes. - (ada-fill-comment-paragraph): Fixed (no longer worked with Emacs 21). + (ada-fill-comment-paragraph): Fix (no longer worked with Emacs 21). * progmodes/ada-xref.el: Update copyright notice. (ada-xref-create-ali): The default is now not to create automatically @@ -13889,7 +13889,7 @@ (ada-find-references): New parameters arg and local-only. (ada-find-any-references): New parameters local-only and append. (ada-goto-declaration): Fix handling of predefined entities in xref. - (ada-get-all-references): Updated to the new xref format in GNAT 3.15, + (ada-get-all-references): Update to the new xref format in GNAT 3.15, still compatible with GNAT 3.14 of course. Fix various calls to count-lines, that didn't work correctly when the buffer was narrowed. @@ -13958,17 +13958,17 @@ * simple.el (what-cursor-position): Use describe-char. - * descr-text.el (describe-char): Moved from mule-diag.el, renamed + * descr-text.el (describe-char): Move from mule-diag.el, renamed from describe-char-after. Now calls describe-text-properties. - (describe-property-list): Renamed from describe-text-properties. - (describe-text-properties): Renamed from describe-text-at. + (describe-property-list): Rename from describe-text-properties. + (describe-text-properties): Rename from describe-text-at. New arg OUTPUT-BUFFER. (describe-text-properties-1): New subroutine, broken out from describe-text-properties. Output a newline before each section of the output. * international/mule-diag.el (describe-char-after): - Moved to descr-text.el. + Move to descr-text.el. 2002-06-17 Eli Zaretskii @@ -14143,9 +14143,9 @@ (eshell-sublist): Use copy-sequence. (eshell-copy-tree): Make it an alias for copy-tree. - * emacs-lisp/cl.el (copy-list): Moved back from subr.el. + * emacs-lisp/cl.el (copy-list): Move back from subr.el. - * subr.el (copy-list): Moved to cl.el. + * subr.el (copy-list): Move to cl.el. (copy-tree): Don't use copy-list or cl-pop. 2002-06-10 Miles Bader @@ -14189,7 +14189,7 @@ `tty-color-translate' and `tty-color-by-index'; this is now the main place to do it. -2002-06-09 Martin Stjernholm +2002-06-09 Martin Stjernholm * progmodes/cc-styles.el (c-set-style, c-set-style-1): Add another state for the `dont-override' flag where it only keeps @@ -14218,13 +14218,13 @@ 2002-06-08 Colin Walters - * subr.el (copy-list): Moved here from cl.el. - (copy-tree): Renamed here from `cl-copy-tree' in cl-extra.el. + * subr.el (copy-list): Move here from cl.el. + (copy-tree): Rename here from `cl-copy-tree' in cl-extra.el. - * emacs-lisp/cl-extra.el (cl-copy-tree): Moved to `copy-tree' in + * emacs-lisp/cl-extra.el (cl-copy-tree): Move to `copy-tree' in subr.el. Add a defalias with the old name. - * emacs-lisp/cl.el (copy-list): Moved to subr.el. + * emacs-lisp/cl.el (copy-list): Move to subr.el. * replace.el (occur-mode): Don't set up categories. Do set `font-lock-defaults', and be sure to set `font-lock-core-only'. @@ -14245,7 +14245,7 @@ (ibuffer-compile-format): Don't treat `name' category specially. (ibuffer-column name): Use `font-lock-face'. (filename-and-process): Ditto. - (ibuffer-buffer-name-category): Renamed to + (ibuffer-buffer-name-category): Rename to `ibuffer-buffer-name-face'. Don't use categories. (ibuffer-update-title-and-summary): Use `font-lock-face'. (ibuffer-insert-filter-group): Ditto. @@ -14374,15 +14374,15 @@ * subr.el (open-network-stream, open-network-stream-nowait) (open-network-stream-server, process-kill-without-query): - Moved from simple.el. + Move from simple.el. * simple.el (open-network-stream, open-network-stream-nowait) (open-network-stream-server, process-kill-without-query): - Moved to subr.el. + Move to subr.el. * simple.el (byte-compiling-files-p): Function deleted. - * textmodes/ispell.el (ispell-library-directory): Renamed from + * textmodes/ispell.el (ispell-library-directory): Rename from ispell-library-path. If Ispell is not installed, init to nil. (check-ispell-version): Doc fix. (ispell-menu-map): Get rid of byte-compiling-files-p hackery; @@ -14432,7 +14432,7 @@ * textmodes/sgml-mode.el (xml-mode): New alias for `sgml-mode'. - * emacs-lisp/bytecomp.el (byte-compile-last-line): Deleted. + * emacs-lisp/bytecomp.el (byte-compile-last-line): Delete. (byte-compile-delete-first): New function. (byte-compile-read-position): New variable. (byte-compile-last-position): New variable. @@ -14460,7 +14460,7 @@ 2002-05-27 Kim F. Storm - * simple.el (push-mark-command): Added optional NOMSG arg. + * simple.el (push-mark-command): Add optional NOMSG arg. * emulation/cua-base.el (cua-set-mark): Align pop to mark behavior with standard set-mark-command. @@ -14506,7 +14506,7 @@ * rot13.el (rot13-translate-table): New variable. (rot13, rot13-string, rot13-region): New functions. -2002-05-25 Martin Stjernholm +2002-05-25 Martin Stjernholm * progmodes/cc-engine.el (c-add-stmt-syntax): Fix some cases of wrong anchoring, e.g. for else-if compounds. @@ -14575,7 +14575,7 @@ (apropos-command, apropos, apropos-value, apropos-documentation): Allow keywords in addition to regexp. Added scoring. (apropos-documentation-check-doc-file) - (apropos-documentation-check-elc-file): Added scoring. + (apropos-documentation-check-elc-file): Add scoring. (apropos-print): Sort according to score. 2002-05-22 Colin Walters @@ -14660,8 +14660,8 @@ (ibuffer-compile-format): If the current column is a `name' column, figure out the appropriate category to put on it. (filename-and-process): Use category property. - (ibuffer-fontify-region-function): Deleted. - (ibuffer-unfontify-region-function): Deleted. + (ibuffer-fontify-region-function): Delete. + (ibuffer-unfontify-region-function): Delete. (ibuffer-update-title-and-summary): Use category properties. (ibuffer-insert-filter-group): Ditto. (ibuffer-mode): Set up category properties. @@ -14677,7 +14677,7 @@ * ibuffer.el (toplevel): Require font-lock, to get the face definitions. - (ibuffer-use-fontification): Deleted. + (ibuffer-use-fontification): Delete. (column filename-and-process): New column. (ibuffer-formats): Use it by default. (ibuffer-name-map, ibuffer-mode-name-map) @@ -15096,8 +15096,8 @@ * emacs-lisp/find-func.el (find-function-search-for-symbol): Add autoload cookie. - (find-function-regexp): Include - "\(quote " to match the defaliases in loaddefs.el. + (find-function-regexp): + Include "\(quote " to match the defaliases in loaddefs.el. * filesets.el (filesets-conditional-sort): Use copy-sequence, not copy-list. @@ -15287,7 +15287,7 @@ 2002-05-03 John Wiegley - * eshell/esh-var.el (eshell-modify-global-environment): Added this + * eshell/esh-var.el (eshell-modify-global-environment): Add this customization variable, which will cause any "export" commands within any eshell buffer to modify the global Emacs environment. It defaults to nil, which means that such commands will only @@ -15375,7 +15375,7 @@ * align.el (align-region): Fix the fix to align-region, because the "name" argument was appearing twice. -2002-05-01 Martin Stjernholm +2002-05-01 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-decl-1): Better way to handle protection labels, one which doesn't get confused by @@ -15465,7 +15465,7 @@ * subr.el (remove-yank-excluded-properties): New helper function. (insert-for-yank, insert-buffer-substring-as-yank): Use it. - * simple.el (yank-excluded-properties): Added help-echo to list. + * simple.el (yank-excluded-properties): Add help-echo to list. 2002-04-29 Glenn Morris @@ -15556,7 +15556,7 @@ not a list. * replace.el (occur-revert-arguments): - Renamed from occur-revert-properties. All uses changed. + Rename from occur-revert-properties. All uses changed. 2002-04-28 Pavel Janík @@ -15838,7 +15838,7 @@ (buffers-menu-show-status): New variables. (menu-bar-update-buffers-1): Use them. -2002-04-24 Martin Stjernholm +2002-04-24 Martin Stjernholm * progmodes/cc-cmds.el (c-mask-comment): More fixes when used from `c-do-auto-fill' and point is at or near the limit of the @@ -15863,19 +15863,19 @@ (occur-mode-display-occurrence): Handle buffer property. (list-matching-lines-face): Use defcustom. (list-matching-lines-buffer-name-face): New variable. - (occur-accumulate-lines): Renamed from `ibuffer-accumulate-lines', + (occur-accumulate-lines): Rename from `ibuffer-accumulate-lines', in ibuffer.el. (occur-read-primary-args): Move out of `occur'. (occur): Delete. Now simply call `occur-1'. (multi-occur, multi-occur-by-filename-regexp): New functions. (occur-1): New function. - (occur-engine): Renamed from `ibuffer-occur-engine' to replace the + (occur-engine): Rename from `ibuffer-occur-engine' to replace the previous implementation of `occur'; taken from ibuf-ext.el. (occur-fontify-on-property): New function. (occur-fontify-region-function, occur-unfontify-region-function): New functions. - * ibuffer.el (ibuffer-accumulate-lines): Moved to replace.el. + * ibuffer.el (ibuffer-accumulate-lines): Move to replace.el. * ibuf-ext.el (ibuffer-depropertize-string): Delete. (ibuffer-occur-match-face): Delete. @@ -15883,7 +15883,7 @@ (ibuffer-occur-mouse-display-occurence): Delete. (ibuffer-occur-goto-occurence, ibuffer-occur-display-occurence) (ibuffer-do-occur-1, ibuffer-occur-revert-buffer-function): Delete. - (ibuffer-occur-engine): Moved to replace.el. + (ibuffer-occur-engine): Move to replace.el. (ibuffer-do-occur): Simply call `occur-1'. * play/gamegrid.el (gamegrid-add-score-with-update-game-score): @@ -15921,9 +15921,9 @@ * dired.el (dired-mouse-find-file-other-window): Handle events that move out of the window. -2002-04-23 Martin Stjernholm +2002-04-23 Martin Stjernholm - * progmodes/cc-cmds.el (c-mask-comment): Fixed bug where point + * progmodes/cc-cmds.el (c-mask-comment): Fix bug where point was moved to the following line when it was at the first line of a block comment where comment-start-skip matched to eol. @@ -15948,13 +15948,13 @@ * diary-lib.el (include-other-diary-files): Allow modifying included buffer, to turn off selective display. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-mode.el (c-define-abbrev-table): New function to pass the SYSTEM-FLAG to `define-abbrev' in a way that works in emacsen that doesn't support it. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-align.el, progmodes/cc-engine.el, * progmodes/cc-styles.el, progmodes/cc-vars.el @@ -15976,27 +15976,27 @@ (c-opt-asm-stmt-key): New language variable to recognize the beginning of asm statements. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-guess-basic-syntax): Detect variable declarations after class and struct declarations correctly. Fixed limit error when finding the anchor for template-args-cont and topmost-intro-cont. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-beginning-of-defun) (c-declaration-limits): Find the "line oriented" declaration start too, just like the "line oriented" end is found. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-vars.el (c-offsets-alist): A more sane default for `inexpr-statement'. This is not compatible, though. I think the benefit of a good default style outweights that in this case. Besides, `inexpr-statement' is not very common. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-delete-forward): Fix silly bug that caused it to delete backwards in hungry delete @@ -16013,7 +16013,7 @@ list initializers correctly (but costly; it ought to be integrated into `c-beginning-of-statement-1'). -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-engine.el (c-beginning-of-defun, c-end-of-defun, c-mark-function): @@ -16028,7 +16028,7 @@ handles declarations that continue after the block. * progmodes/cc-engine.el (c-syntactic-re-search-forward): - Added an option to restrict matching to the top level of the + Add an option to restrict matching to the top level of the current paren sexp. * progmodes/cc-langs.el (c-opt-block-decls-with-vars-key): @@ -16036,9 +16036,9 @@ (c-syntactic-eol): New regexp to match a "syntactic" eol. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed a bug + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix a bug that often caused the backward limit to be lost at the top level. This improves performance a bit. @@ -16052,12 +16052,12 @@ (c-beginning-of-decl-1): New function that put point at the beginning of the declaration. It handles K&R argdecl blocks. - (c-guess-basic-syntax): Replaced the `knr-argdecl' recognition + (c-guess-basic-syntax): Replace the `knr-argdecl' recognition code with one that doesn't depend on the current indentation. The anchor position for `knr-argdecl' has also changed, but in a way that is unlikely to cause compatibility problems. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-defs.el, progmodes/cc-engine.el (c-forward-comment): `forward-comment' in XEmacs skips over @@ -16069,19 +16069,19 @@ setup of the language specific variables. The regexp-opt mangling is also done at compile time now. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-indent-line-or-region): Call `c-indent-line' directly instead of through `indent-according-to-mode' so that this function always indents syntactically. - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed a bug + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix a bug where a class beginning with a nested class could cause an infinite loop (the state outside the narrowed out class is never used now). -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-align.el, progmodes/cc-cmds.el, progmodes/cc-engine.el, progmodes/cc-vars.el: Fixes so that @@ -16102,7 +16102,7 @@ * progmodes/cc-align.el: Use the vector form in the return value in all cases where lineup functions return absolute columns. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-add-stmt-syntax) (c-guess-basic-syntax): Anchor `brace-list-intro' and @@ -16122,7 +16122,7 @@ (c-major-mode-is): Compare against the buffer local variable `c-buffer-is-cc-mode', which is faster than using `derived-mode-class'. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-forward-syntactic-ws) (c-backward-syntactic-ws, c-forward-token-1) @@ -16133,19 +16133,19 @@ That's signified by making their documentation into docstrings. (c-whack-state, c-hack-state, c-skip-case-statement-forward): - Removed these internal functions since they aren't used. + Remove these internal functions since they aren't used. (c-forward-to-cpp-expression): Classified this function as internal. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-langs.el (c-ObjC-class-key, c-Java-class-key): - Simplified these regexps; the class keywords they contain + Simplify these regexps; the class keywords they contain ought to be enough to avoid false matches, so checking for following identifiers etc is just unnecessary (and might also fail for oddly formatted code). -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-cmds.el (c-forward-comment-lc): New function that behaves like @@ -16160,7 +16160,7 @@ normal label in a switch block as a case label, to get consistent lineup with the case labels. - * progmodes/cc-engine.el (c-backward-syntactic-ws): Fixed bug + * progmodes/cc-engine.el (c-backward-syntactic-ws): Fix bug in skipping over a macro that ends with an empty line. * progmodes/cc-styles.el: Require cc-align since styles added @@ -16168,7 +16168,7 @@ defined there, and so the `c-valid-offset' check might otherwise complain on them. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-align.el, progmodes/cc-mode.el: * progmodes/cc-vars.el: Added two new lineup functions: @@ -16195,7 +16195,7 @@ * progmodes/cc-langs.el (c-symbol-key): Made this variable mode specific, to handle Pike special symbols like `== better. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-engine.el, progmodes/cc-vars.el (c-report-syntactic-errors): A new @@ -16203,13 +16203,13 @@ to off; since CC Mode ignores most syntactic errors it might as well ignore them all for the sake of consistency. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-looking-at-inexpr-block): Optimization. Can give a noticeable speedup if there's a large preceding function or class body. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-align.el, progmodes/cc-cmds.el: Use more efficient and correct insertion functions in many places. @@ -16221,21 +16221,21 @@ * progmodes/cc-styles.el (c-read-offset): Unbind SPC in the completion to make it easier to enter lists. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm - * progmodes/cc-cmds.el (c-beginning-of-defun): Fixed bug where + * progmodes/cc-cmds.el (c-beginning-of-defun): Fix bug where c-state-cache was clobbered. * progmodes/cc-cmds.el, progmodes/cc-engine.el - (c-calculate-state): Moved from cc-cmds.el to cc-engine.el due + (c-calculate-state): Move from cc-cmds.el to cc-engine.el due to dependency. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-parse-state): Ignore unbalanced open parens in macros (if point isn't in the same one). -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-context-open-line): New function that is the `open-line' equivalent to `c-context-line-break'. @@ -16244,7 +16244,7 @@ for Emacs 21 since `indent-new-comment-line' has been changed to `comment-indent-new-line' there. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-langs.el (c-stmt-delim-chars, c-stmt-delim-chars-with-comma): @@ -16257,7 +16257,7 @@ the set of statement delimiting characters, to allow it to be changed dynamically and per-mode. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-looking-at-bos) (c-looking-at-inexpr-block, c-add-stmt-syntax) @@ -16270,21 +16270,21 @@ Made arglist-cont anchor correctly in arglists that contain statements. * progmodes/cc-engine.el (c-guess-basic-syntax): - Fixed consistent anchoring of defun-block-intro in defuns in code + Fix consistent anchoring of defun-block-intro in defuns in code blocks (can only occur in Pike). * progmodes/cc-engine.el (c-looking-at-inexpr-block) - (c-looking-at-inexpr-block-backward): Changed the arguments to + (c-looking-at-inexpr-block-backward): Change the arguments to require containing sexps and paren state, for better efficiency. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-engine.el, progmodes/cc-vars.el: Improved anchoring of statement and handling of labels in front of substatements. (c-guess-continued-construct, c-guess-basic-syntax): - Improved and unified anchoring at statements. Statements beginning + Improve and unified anchoring at statements. Statements beginning with comments or labels are now avoided, by going out of blocks and containing statements if necessary. This nesting handling also fixes the case when there's a statement after a @@ -16293,7 +16293,7 @@ (c-electric-colon): Map the new `substatement-label' to `label' when consulting `c-hanging-colons-alist'. - (c-offsets-alist): Added substatement-label. Updated the + (c-offsets-alist): Add substatement-label. Updated the comments for the new anchoring positions at statements. * progmodes/cc-engine.el (c-guess-basic-syntax): Use more sane @@ -16302,7 +16302,7 @@ neutralized by a kludge in `c-get-syntactic-indentation' which ignored such anchor points. - (c-get-syntactic-indentation): Removed the kludge that was + (c-get-syntactic-indentation): Remove the kludge that was necessary due to buggy anchor points. * progmodes/cc-engine.el (c-guess-basic-syntax): Do not check @@ -16312,7 +16312,7 @@ recognized as normal arglist-cont if we're directly in a macro arglist, for consistency with other "bare" statements. - * progmodes/cc-engine.el (c-looking-at-bos): Added optional + * progmodes/cc-engine.el (c-looking-at-bos): Add optional limit arg for backward searches. * progmodes/cc-engine.el (c-looking-at-inexpr-block): @@ -16325,7 +16325,7 @@ in the list of syntactic symbols. Only the first is used as the base for the offset calculation. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-indent-defun): Indent the current macro if inside one at the top level. Do not throw an error @@ -16340,7 +16340,7 @@ * progmodes/cc-engine.el (c-least-enclosing-brace): Rewritten to not be destructive. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-context-line-break): Only do a macro line break when point is inside the content of it; if it's in @@ -16349,21 +16349,21 @@ * progmodes/cc-engine.el (c-guess-basic-syntax): Do not add cpp-macro-cont inside the argument list to a #define. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-defs.el (c-forward-comment): Implemented a kludge to avoid the problem most forward-comment incarnations have with `\' together with comment parsing. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm - * progmodes/cc-engine.el (c-check-state-cache): Fixed bug + * progmodes/cc-engine.el (c-check-state-cache): Fix bug which could cause the state returned by `c-parse-state' to lack a closed paren element. That in turn could result in very long searches, since it's common that they start from the last preceding close brace. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-statement-1): Do not treat else-if as a single continuation, since that'd make it @@ -16373,7 +16373,7 @@ the starting if, but that doesn't affect the indentation for any reasonably sane style. Also introduced a noerror flag. - (c-beginning-of-closest-statement): Removed; + (c-beginning-of-closest-statement): Remove; c-beginning-of-statement-1 now avoids the problem this one solved. * progmodes/cc-engine.el (c-guess-continued-construct) @@ -16384,7 +16384,7 @@ before the start of the statement. * progmodes/cc-engine.el (c-looking-at-inexpr-block): - Added flag to disable looking at the type of the surrounding paren + Add flag to disable looking at the type of the surrounding paren since that confuses c-beginning-of-statement-1 and a couple of other places. @@ -16392,7 +16392,7 @@ Avoid stepping to the previous statement in case 18. Improvements in recognition of statement blocks on the top level. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-statement-1) (c-crosses-statement-barrier-p): Rewritten to get a well @@ -16400,7 +16400,7 @@ in recognition of do-while constructs. (c-backward-to-start-of-do, c-backward-to-start-of-if): - Removed; use c-beginning-of-statement-1 instead. + Remove; use c-beginning-of-statement-1 instead. (c-guess-continued-construct, c-guess-basic-syntax): Various fixes to not depend on the bugs previously in @@ -16408,20 +16408,20 @@ use the new behavior of c-beginning-of-statement-1 better. Fixed recognition of catch blocks inside macros. - * progmodes/cc-engine.el (c-backward-syntactic-ws): Fixed bug + * progmodes/cc-engine.el (c-backward-syntactic-ws): Fix bug in skipping over a macro. * progmodes/cc-langs.el (c-label-kwds): New variable to contain the appropriate c-*-label-kwds value. - * progmodes/cc-vars.el (defcustom-c-stylevar): Fixed value + * progmodes/cc-vars.el (defcustom-c-stylevar): Fix value evaluation bug that caused the widget for c-block-comment-prefix to bug out. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-guess-basic-syntax): - Improved recognition of statements: They are now recognized in + Improve recognition of statements: They are now recognized in contexts where they normally can't occur, e.g. on the top level or in function call arguments. This is mainly useful to recognize statements in macros at the top level, and in arguments to @@ -16444,7 +16444,7 @@ analysis in ObjC mode. * progmodes/cc-engine.el (c-beginning-of-statement-1): - Fixed bug in do-while statements where the body is not a block. + Fix bug in do-while statements where the body is not a block. * progmodes/cc-styles.el (c-set-style): Reset c-special-indent-hook to its global value if in override mode. @@ -16454,7 +16454,7 @@ * progmodes/cc-engine.el (c-evaluate-offset, c-get-offset): Use c-benign-error to report the c-strict-syntax-p error. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-align.el, progmodes/cc-defs.el: * progmodes/cc-cmds.el, progmodes/cc-engine.el, progmodes/cc-vars.el: @@ -16469,7 +16469,7 @@ default. An extra flag argument is required to do that. (c-macro-start, c-query-macro-start) - (c-query-and-set-macro-start): Added a cache for the macro + (c-query-and-set-macro-start): Add a cache for the macro start position. (c-forward-syntactic-ws, c-backward-syntactic-ws): Fixes for @@ -16477,7 +16477,7 @@ in forward-comment in some emacsen when it hits a buffer limit with a large repeat count. - (c-lineup-macro-cont): Improved behavior when + (c-lineup-macro-cont): Improve behavior when c-syntactic-indentation-in-macros is nil. (c-syntactic-indentation-in-macros, c-backslash-max-column) @@ -16495,15 +16495,15 @@ (c-benign-error): New macro to report errors that doesn't need to interrupt the operation. - * progmodes/cc-defs.el (c-point): Added eonl and eopl positions. + * progmodes/cc-defs.el (c-point): Add eonl and eopl positions. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-brace, c-indent-region): - Removed most of the c-state-cache fiddling, since the global + Remove most of the c-state-cache fiddling, since the global state cache now handles this. - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix bug when there's an open paren at the very first char of the visible buffer region. @@ -16515,7 +16515,7 @@ * progmodes/cc-engine.el (c-whack-state-after): Slight optimization. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-langs.el, progmodes/cc-align.el: Improvements to syntactic analysis @@ -16524,7 +16524,7 @@ (c-block-stmt-1-kwds, c-block-stmt-2-kwds): New variables used by `c-guess-basic-syntax'. - (c-parse-state): Fixed bug with braces inside macros when + (c-parse-state): Fix bug with braces inside macros when using cached state info. (c-forward-to-cpp-expression): New function to aid in @@ -16542,7 +16542,7 @@ (c-offsets-alist): Made `c-lineup-macro-cont' the default for cpp-macro-cont. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-statement-1) (c-forward-syntactic-ws): Fixes to handle continued lines. @@ -16550,7 +16550,7 @@ (c-backward-to-start-of-if, c-guess-basic-syntax): Do syntactic analysis inside macros. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-indent-region): Did a speedup made possible by the more flexible state cache. @@ -16558,22 +16558,22 @@ * progmodes/cc-engine.el (c-parse-state, c-whack-state-before) (c-whack-state-after, c-hack-state) (c-narrow-out-enclosing-class, c-guess-basic-syntax): - Improved the state cache system. It now can use partial info from + Improve the state cache system. It now can use partial info from an old cached state to calculate a new one at a different position. Removed some kludges to avoid the state cache. The new functions `c-whack-state-before' and `c-whack-state-after' replace the now obsolete `c-whack-state'. * progmodes/cc-engine.el (c-beginning-of-statement-1): - Optimized backing through a macro. This can speed things up + Optimize backing through a macro. This can speed things up quite a bit when there are long macros before point. (c-beginning-of-macro): Do not ignore the limit. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-continued-statement): - Fixed a bug where the keyword wasn't reindented correctly if + Fix a bug where the keyword wasn't reindented correctly if followed by another keyword or identifier. * progmodes/cc-engine.el (c-parse-state): Ignore closed brace @@ -16581,7 +16581,7 @@ second of two "do { } while (0)" macros after each other indented differently. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-macro) (c-forward-syntactic-ws): Recognize "#!" as a preprocessor @@ -16589,13 +16589,13 @@ interpreter lines like "#!/usr/bin/pike" at the beginning of the file. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-looking-at-inexpr-block): Recognize brace blocks inside a parenthesis expression as inexpr-statement. Useful when writing statements as macro arguments. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-fill-paragraph, c-do-auto-fill) (c-mask-comment): Broke out the comment masking code from @@ -16603,14 +16603,14 @@ able to do the same thing in `c-do-auto-fill'. This should make auto-fill-mode behave better. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-brace, c-electric-paren): Check `executing-macro' to avoid blinking parens when macros are executed. * progmodes/cc-mode.el, progmodes/cc-styles.el - (c-setup-filladapt): Moved from cc-mode.el to cc-styles.el for + (c-setup-filladapt): Move from cc-mode.el to cc-styles.el for consistency with `c-setup-paragraph-variables' (which was placed there due to the dependency from `c-set-style'). @@ -16619,14 +16619,14 @@ there already is a style called "user" defined when CC Mode starts up for the first time. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-vars.el - (c-comment-indent, c-indent-comment-alist): Added new variable + (c-comment-indent, c-indent-comment-alist): Add new variable `c-indent-comment-alist' to allow better control over `c-comment-indent'. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-align.el (c-lineup-C-comments): Try to match both `comment-start-skip' and the comment prefix on the @@ -16636,29 +16636,29 @@ `comment-start-skip' match whatever `c-comment-prefix-regexp' matches. * progmodes/cc-mode.el, progmodes/cc-styles.el (c-common-init) - (c-set-style-1, c-setup-paragraph-variables): Moved the + (c-set-style-1, c-setup-paragraph-variables): Move the variable initialization based on `c-comment-prefix-regexp' to a new function `c-setup-paragraph-variables', which is now used both at mode init and when a style that sets `c-comment-prefix-regexp' is activated. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-member-init-list): Better handling of C++ template args to avoid confusion with `<' and `>' used as operators in member init expressions. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-most-enclosing-brace) - (c-least-enclosing-brace): Added optional second arg to limit + (c-least-enclosing-brace): Add optional second arg to limit the search to before a certain point. - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug which + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix bug which could cause incorrect analysis if a cached state is used (usually only happens when an electric key reindents a line). -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-defs.el (c-forward-comment): More idiosyncrasy insulation. This time for XEmacs 21. @@ -16676,25 +16676,25 @@ the indentation of the current line. Switched places on cases 5D.3 and 5D.4 and made them use more syntactically correct methods. - (c-inher-key): Removed since the code in + (c-inher-key): Remove since the code in `c-guess-basic-syntax' now uses token-based search. * progmodes/cc-cmds.el, progmodes/cc-mode.el (c-mode-menu): - Added a submenu to access some toggles. + Add a submenu to access some toggles. (c-toggle-syntactic-indentation): New function to toggle the variable `c-syntactic-indentation'. - * progmodes/cc-styles.el (c-set-style): Improved the error + * progmodes/cc-styles.el (c-set-style): Improve the error message for incorrect offsets a bit. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-indent-exp): Don't require that the sexp follows point immediately, instead find the closest following open paren that ends on another line. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-align.el (c-lineup-cascaded-calls): New indentation function. @@ -16702,26 +16702,26 @@ * progmodes/cc-engine.el (c-beginning-of-macro): Bugfix for directives with whitespace between the '#' and the name. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-forward-syntactic-ws) (c-backward-syntactic-ws): Handle line continuations as whitespace. Don't move past a macro if that'd take us past the limit. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-macro) (c-forward-syntactic-ws): Multiline strings begin with `#"' in Pike, and that shouldn't be confused with a preprocessor directive. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el: Extended the kludge to interoperate with the delsel and pending-del packages wrt to the new function `c-electric-delete-forward'. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-indent-exp): Keep the indentation of the block itself, i.e. only indent the contents in it. @@ -16730,38 +16730,38 @@ argument to completing-read instead of initial-contents, if the function is recent enough to support it. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-mode.el (c-mode-help-address): - Removed bug-gnu-emacs@gnu.org from the receiver list for bug reports. + Remove bug-gnu-emacs@gnu.org from the receiver list for bug reports. I've almost never seen a bug reported this way that should go to that list, but it's rather common that the reports concern the combination CC Mode and XEmacs instead. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm - * progmodes/cc-cmds.el (c-electric-paren): Fixed bug when both + * progmodes/cc-cmds.el (c-electric-paren): Fix bug when both brace-elseif-brace and brace-catch-brace are active and there's a "else if"-block before the catch block. * progmodes/cc-menus.el (cc-imenu-c++-generic-expression): Detect function headers that span lines. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-brace) (c-electric-semi&comma, c-electric-colon, c-electric-paren): Check for last on line only for doing the auto-newline-mode stuff, not for the reindentation. - * progmodes/cc-cmds.el (c-electric-brace): Fixed bugs in the + * progmodes/cc-cmds.el (c-electric-brace): Fix bugs in the handling of c-syntactic-indentation: When it's nil, indent the new lines but don't reindent the current one. Reindent the line only when the inserted brace comes first on it, instead of last. * progmodes/cc-cmds.el (c-electric-brace) - (c-electric-semi&comma): Fixed two places where + (c-electric-semi&comma): Fix two places where c-syntactic-indentation wasn't heeded. * progmodes/cc-cmds.el (c-electric-pound): Don't be electric @@ -16772,7 +16772,7 @@ is found. Fixed case where an else following a do-while statement could be associated with an if inside the do-while. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-guess-fill-prefix): Tuned the dwim for the fallback to add a single space after the comment prefix. @@ -16781,15 +16781,15 @@ behavior in some special cases, especially for single-line comments. Avoid breaking up a comment starter or ender. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el (c-outline-level): Applied patch from the Emacs sources to make this work in invisible text. - * progmodes/cc-langs.el (c-switch-label-key): Fixed regexp to + * progmodes/cc-langs.el (c-switch-label-key): Fix regexp to not be confused by a later ':' on the same line as the label. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-mode.el (c-electric-delete, c-electric-delete-forward): @@ -16800,20 +16800,20 @@ `c-electric-delete-forward' is now bound to C-d to get the electric behavior on that key too. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm - * progmodes/cc-cmds.el (c-fill-paragraph): Fixed bogus direct + * progmodes/cc-cmds.el (c-fill-paragraph): Fix bogus direct use of c-comment-prefix-regexp, which caused an error when it's a list. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-mode.el, progmodes/cc-vars.el (c-common-init) - (c-default-style): Removed the hardcoded switch to "java" style + (c-default-style): Remove the hardcoded switch to "java" style in Java mode. It's instead taken care of by the default value for c-default-style. -2002-04-22 Martin Stjernholm +2002-04-22 Martin Stjernholm * progmodes/cc-align.el (c-lineup-math): Fix bug where lineup was triggered by equal signs in string literals. @@ -16864,9 +16864,9 @@ 2002-04-19 Miles Bader * custom.el (customize-mark-to-save, customize-mark-as-set) - (custom-quote): Moved here from `cus-edit.el'. + (custom-quote): Move here from `cus-edit.el'. * cus-edit.el (customize-mark-to-save, customize-mark-as-set) - (custom-quote): Moved to `custom.el'. + (custom-quote): Move to `custom.el'. 2002-04-18 Richard M. Stallman @@ -16958,7 +16958,7 @@ (ediff-clone-buffer-for-region-comparison): More robust window arrangement while prompting for regions to compare. (ediff-make-cloned-buffer): Use generate-new-buffer-name. - (ediff-inferior-compare-regions): Deleted unused vars + (ediff-inferior-compare-regions): Delete unused vars ctl-buf and quit-now. 2002-04-15 Richard M. Stallman @@ -17039,7 +17039,7 @@ call `math-group-float'. * play/gamegrid.el (gamegrid-add-score-with-update-game-score): - Renamed from `gamegrid-add-score'. + Rename from `gamegrid-add-score'. (gamegrid-add-score-insecure): Restored from the old `gamegrid-add-score'. (gamegrid-add-score): Just dispatch on `system-type' to one of the @@ -17453,7 +17453,7 @@ (sgml-insert-end-tag): New funs taken from xml-lite.el. (sgml-calculate-indent): Use them. (sgml-slash-matching): Rename from sgml-slash. - (sgml-slash): Copied from xml-lite and changed to use + (sgml-slash): Copy from xml-lite and changed to use sgml-slash-matching and sgml-quick-keys. * international/mule-cmds.el (standard-keyboard-coding-systems): @@ -17502,10 +17502,10 @@ * info.el (info-tool-bar-map): Use tool-bar-local-item-from-menu. - * toolbar/tool-bar.el (tool-bar-local-item): Renamed from + * toolbar/tool-bar.el (tool-bar-local-item): Rename from tool-bar-add-item, and new arg MAP. (tool-bar-add-item): Now calls tool-bar-local-item. - (tool-bar-local-item-from-menu): Renamed from + (tool-bar-local-item-from-menu): Rename from tool-bar-add-item-from-menu, and new arg IN-MAP. (tool-bar-add-item-from-menu): Now calls tool-bar-local-item-from-menu. @@ -17542,9 +17542,9 @@ 2002-03-29 Richard M. Stallman - * subr.el (play-sound-file): Moved to simple.el. + * subr.el (play-sound-file): Move to simple.el. - * simple.el (play-sound-file): Moved from subr.el, made unconditional. + * simple.el (play-sound-file): Move from subr.el, made unconditional. 2002-03-29 Colin Walters @@ -17626,7 +17626,7 @@ 2002-03-28 Richard M. Stallman - * dired.el (dired-toggle-marks): Renamed from dired-do-toggle. + * dired.el (dired-toggle-marks): Rename from dired-do-toggle. Bindings changed. * progmodes/compile.el (compilation-handle-exit): @@ -17714,7 +17714,7 @@ * gud.el (gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value. (gud-jdb-build-source-files-list): Comment clarification. - (gud-jdb-massage-args): Reworked into loop-based argument list + (gud-jdb-massage-args): Rework into loop-based argument list processing in order to support -classpath and -sourcepath argument processing. (gud-jdb-find-source-using-classpath): Prepend gud-jdb-sourcepath @@ -17894,11 +17894,11 @@ * ediff-util.el (ediff-toggle-hilit): Fix toggling of highlighting. (ediff-select-difference): Take highlighting style into account. (ediff-clone-buffer-for-region-comparison): New function. - (ediff-inferior-compare-regions): Added comparison of current diff + (ediff-inferior-compare-regions): Add comparison of current diff regions. * ediff.el (ediff-clone-buffer-for-region-comparison) - (ediff-clone-buffer-for-window-comparison): Moved to ediff-util.el. + (ediff-clone-buffer-for-window-comparison): Move to ediff-util.el. 2002-03-19 Paul Reilly @@ -17977,7 +17977,7 @@ 2002-03-17 Stefan Monnier - * textmodes/sgml-mode.el (sgml-xml-mode): Renamed from sgml-xml. + * textmodes/sgml-mode.el (sgml-xml-mode): Rename from sgml-xml. (sgml-xml-guess): Simplify. (sgml-mode-common): Remove (move into sgml-mode). (sgml-mode): Add code from sgml-mode-common. @@ -18020,7 +18020,7 @@ 2002-03-16 Simon Marshall - * imenu.el (imenu-menubar-modified-tick): Renamed from + * imenu.el (imenu-menubar-modified-tick): Rename from imenu-update-menubar-modified-tick. (imenu-update-menubar): Update imenu-menubar-modified-tick whenever outer condition succeeds. @@ -18098,7 +18098,7 @@ (dired-internal-do-deletions): Use dired-fun-in-all-buffers and dired-delete-entry, to update this buffer (and others). - * dired-aux.el (dired-fun-in-all-buffers): Moved to dired.el. + * dired-aux.el (dired-fun-in-all-buffers): Move to dired.el. * facemenu.el (facemenu-add-new-face): Pass region args to facemenu-set-face, when there is a region. @@ -18167,7 +18167,7 @@ (lisp-loop-forms-indentation, lisp-simple-loop-indentation): New user options. (extended-loop-p, common-lisp-loop-part-indentation): New functions. - (common-lisp-indent-function-1): Renamed from + (common-lisp-indent-function-1): Rename from common-lisp-indent-function. (common-lisp-indent-function): Handle loop forms specially. (lisp-indent-defmethod): Use car/cdr instead of first/rest. @@ -18278,7 +18278,7 @@ (ibuffer-insert-buffer-line): Ditto. (ibuffer-map-lines): Ditto. (ibuffer-insert-buffers-and-marks): Ditto. - (ibuffer-update-title-and-summary): Renamed from + (ibuffer-update-title-and-summary): Rename from `ibuffer-update-title'. Handle "summarizer" columns. (ibuffer-clear-summary-columns): New function. @@ -18321,7 +18321,7 @@ (hif-tokenize): Handle `?' and ':' as tokens. (hif-expr): Parse conditional expressions. (hif-or-expr): Parse `||' expressions. - (hif-and-expr): Renamed from hif-term. + (hif-and-expr): Rename from hif-term. (hif-conditional): New function to evaluate a conditional expression. @@ -18441,14 +18441,14 @@ * cus-start.el: Rename automatic-hscroll-step and automatic-hscroll-margin into hscroll-step and hscroll-margin. - * frame.el (auto-hscroll-mode): Renamed from automatic-hscrolling. + * frame.el (auto-hscroll-mode): Rename from automatic-hscrolling. (automatic-hscrolling): Now a defvaralias for auto-hscroll-mode. * mouse.el (mouse-region-delete-keys): Add deletechar. 2002-03-03 Sam Steingold - * play/snake.el (snake-score-file): Fixed parens (broken by the + * play/snake.el (snake-score-file): Fix parens (broken by the last patch). * play/tetris.el (tetris-score-file): Ditto. @@ -18574,14 +18574,14 @@ `winner-boring-buffers', will no longer be restored by `winner-undo'. (winner-sorted-window-list): Used to improve comparison between window configurations. - (winner-win-data): Simplified and moved. - (winner-conf): Simplified (now uses `winner-win-data'). + (winner-win-data): Simplify and moved. + (winner-conf): Simplify (now uses `winner-win-data'). (winner-change-fun, winner-save-old-configurations) (winner-save-(un)conditionally, winner-redo): Changes made while in the minibuffer will be ignored. (Such changes are undone upon exit for the minibuffer, anyway.) (winner-set-conf): Preserve selected window whenever possible. - (winner-make-point-alist): Simplified. + (winner-make-point-alist): Simplify. (winner-mode, winner-save-unconditionally): Save current window configuration on entering minibuffer. (minor-mode-alist): Don't add winner-mode to `minor-mode-alist', @@ -18589,11 +18589,11 @@ 2002-02-26 Eli Zaretskii - * international/mule-conf.el (compound-text): Renamed back from + * international/mule-conf.el (compound-text): Rename back from compound-text-no-extensions. (ctext-no-compositions): Remove the mime-charset property. - (compound-text-with-extensions): Renamed from compound-text. - (x-ctext-with-extensions, ctext-with-extensions): Renamed aliases. + (compound-text-with-extensions): Rename from compound-text. + (x-ctext-with-extensions, ctext-with-extensions): Rename aliases. 2002-02-26 Juanma Barranquero @@ -18636,7 +18636,7 @@ 2002-02-25 Per Abrahamsen - * ps-print.el (ps-print-printer): Added `lpr' customize group member. + * ps-print.el (ps-print-printer): Add `lpr' customize group member. 2002-02-25 Juanma Barranquero @@ -18715,7 +18715,7 @@ (snake-update-game, snake-move-left) (snake-move-right, snake-move-up, snake-move-down, snake-active-p) (snake-start-game): Use that queue. - (snake-use-glyphs-flag): Renamed from snake-use-glyphs. + (snake-use-glyphs-flag): Rename from snake-use-glyphs. (snake-use-color-flag): Likewise. (snake-mode): Rename uses of those variables. @@ -18725,7 +18725,7 @@ * international/mule-conf.el (ctext-no-compositions): New coding system. - (compound-text-no-extensions): Renamed from compound-text. + (compound-text-no-extensions): Rename from compound-text. (x-ctext-no-extensions, ctext-no-extensions): Aliases for compound-text-no-extensions. (compound-text): Redefined using post-read and pre-write conversions. @@ -18813,7 +18813,7 @@ 2002-02-19 Per Abrahamsen - * facemenu.el (describe-text-mode-map): Removed bootstrap kludge. + * facemenu.el (describe-text-mode-map): Remove bootstrap kludge. * toolbar/tool-bar.el (tool-bar-mode): Made the standard value t. * menu-bar.el (menu-bar-mode): Ditto. @@ -18860,10 +18860,10 @@ 2002-02-17 Per Abrahamsen - * menu-bar.el (menu-bar-showhide-menu): Added speedbar. - (menu-bar-tools-menu): Removed speedbar. + * menu-bar.el (menu-bar-showhide-menu): Add speedbar. + (menu-bar-tools-menu): Remove speedbar. - * textmodes/ispell.el (ispell-menu-map): Added `customize-ispell' + * textmodes/ispell.el (ispell-menu-map): Add `customize-ispell' and `flyspell-mode' entries. * textmodes/flyspell.el (flyspell): Add to ispell group. @@ -18962,13 +18962,13 @@ 2002-02-16 John Wiegley - * eshell/esh-ext.el (eshell-external-command): Added a fix for + * eshell/esh-ext.el (eshell-external-command): Add a fix for XEmacs' new dired.el, which adds a global entry in the `file-name-handler-alist'. 2002-02-16 John Wiegley - * align.el (align-region): Added a missing name argument. + * align.el (align-region): Add a missing name argument. 2002-02-16 John Wiegley @@ -19037,7 +19037,7 @@ 2002-02-12 Per Abrahamsen - * menu-bar.el (menu-bar-options-save): Removed `truncate-lines'. + * menu-bar.el (menu-bar-options-save): Remove `truncate-lines'. (menu-bar-options-menu): Don't set default value for `truncate-lines'. 2002-02-12 Per Abrahamsen @@ -19063,7 +19063,7 @@ 2002-02-11 Per Abrahamsen - * toolbar/tool-bar.el (tool-bar-mode): Removed standard value. + * toolbar/tool-bar.el (tool-bar-mode): Remove standard value. * menu-bar.el (menu-bar-mode): Ditto. * cus-edit.el (customize-mark-to-save): Always save variables without a standard value. @@ -19111,7 +19111,7 @@ table information. Maybe report char-code-property-table info. Maybe report character's unicode. Tweak printing of list info. (list-input-methods): Add xref buttons. - (dump-charsets, dump-codings): Deleted (obsolete). + (dump-charsets, dump-codings): Delete (obsolete). From Dave Love . 2002-02-10 Pavel Janík @@ -19455,8 +19455,8 @@ (batch-byte-compile-if-not-done): New function. * Makefile.in (compile): New target. - (compile-always): Renamed from compile-files. - (compile-after-backup): Renamed from compile. + (compile-always): Rename from compile-files. + (compile-after-backup): Rename from compile. (bootstrap): Depend on compile-always, not compile-files. * emulation/pc-select.el (pc-select-save-and-set-mode): @@ -19769,7 +19769,7 @@ 2002-01-16 Richard M. Stallman - * mouse.el (mouse-drag-region-1): Renamed from mouse-drag-region, + * mouse.el (mouse-drag-region-1): Rename from mouse-drag-region, more or less. (mouse-drag-region): New function. For a click in the echo area, show *Messages*. @@ -19812,7 +19812,7 @@ (eudc-pre-select-window-configuration, eudc-insertion-marker): Variables removed. (eudc-insert-selected): Function removed. - (eudc-select): Reimplemented. + (eudc-select): Reimplement. (eudc-expand-inline): Delete the strings only after its expansion is chosen not before. @@ -20045,7 +20045,7 @@ * viper-util.el: Use viper-cond-compile-for-xemacs-or-emacs. (viper-read-key-sequence, viper-set-unread-command-events) - (viper-char-symbol-sequence-p, viper-char-array-p): Moved here. + (viper-char-symbol-sequence-p, viper-char-array-p): Move here. * viper-ex.el: Use viper-cond-compile-for-xemacs-or-emacs. @@ -20072,7 +20072,7 @@ (ediff-convert-fine-diffs-to-overlays, ediff-empty-diff-region-p) (ediff-whitespace-diff-region-p, ediff-get-region-contents): Move to ediff-util.el. - (ediff-event-key): Moved here. + (ediff-event-key): Move here. * ediff-merge.el: Got rid of unreferenced variables. @@ -20091,7 +20091,7 @@ (ediff-unhighlight-diff, ediff-unhighlight-diffs-totally) (ediff-empty-diff-region-p, ediff-whitespace-diff-region-p) (ediff-get-region-contents, ediff-make-current-diff-overlay): - Moved here. + Move here. (ediff-format-bindings-of): New function by Hannu Koivisto . (ediff-setup): Make sure the merge buffer is always widened and @@ -20116,7 +20116,7 @@ (ediff-regions-internal): Get rid of the warning about comparing regions of the same buffer. - * ediff-diff.el (ediff-convert-fine-diffs-to-overlays): Moved here. + * ediff-diff.el (ediff-convert-fine-diffs-to-overlays): Move here. Plus the following fixes courtesy of Dave Love: Doc fixes. (ediff-word-1): Use word class and move - to the front per regexp documentation. @@ -20177,19 +20177,19 @@ 2002-01-05 Andre Spiegel * vc.el (vc-branch-part): Return nil if there's no `.'. - (vc-default-previous-version): Renamed from vc-previous-version. + (vc-default-previous-version): Rename from vc-previous-version. New args BACKEND and FILE. Return nil for revision numbers without a `.'. (vc-version-diff): Call vc-BACKEND-previous-version. (vc-steal-lock): Steal lock before composing mail, so that no mail is sent when the stealing goes wrong. And we'll actually see the error in that case now. - (vc-finish-steal): Removed. + (vc-finish-steal): Remove. * vc-rcs.el (vc-rcs-steal-lock): Do a real checkout after stealing the lock, so that we see expanded headers. (vc-rcs-trunk-p, vc-rcs-branch-part, vc-rcs-branch-p) - (vc-rcs-minor-part, vc-rcs-previous-version): Removed. These are + (vc-rcs-minor-part, vc-rcs-previous-version): Remove. These are available from vc.el. Updated all callers. 2002-01-05 Richard M. Stallman @@ -20235,7 +20235,7 @@ 2002-01-03 Per Abrahamsen - * custom.el (defcustom): Documented :tag, :link and :load. + * custom.el (defcustom): Document :tag, :link and :load. 2002-01-03 Eli Zaretskii @@ -20321,7 +20321,7 @@ (xscheme-send-string-1): Call xscheme-insert-expression to save expression in ring. (xscheme-yank-previous-send): Now an alias for xscheme-yank. - (xscheme-previous-send): Deleted variable. + (xscheme-previous-send): Delete variable. (xscheme-send-string-2, xscheme-send-char, xscheme-send-proceed) (xscheme-send-control-g-interrupt): Use process-send-string rather @@ -20591,15 +20591,15 @@ * viper-cmd.el (viper-change-state): Got rid of make-local-hook. (viper-special-read-and-insert-char): Make C-m work right in the r command. - (viper-buffer-search-enable): Fixed format string. + (viper-buffer-search-enable): Fix format string. * viper-ex.el (ex-token-alist): Use ex-set-visited-file-name instead of viper-info-on-file. (ex-set-visited-file-name): New function. - * viper.el (viper-emacs-state-mode-list): Added mail-mode. + * viper.el (viper-emacs-state-mode-list): Add mail-mode. - * ediff-mult.el (ediff-meta-mark-equal-files): Added optional + * ediff-mult.el (ediff-meta-mark-equal-files): Add optional action argument. * ediff-init.el: Fixed some doc strings. @@ -20626,7 +20626,7 @@ * emacs-lisp/elint.el (elint-unknown-builtin-args): Remove mocklisp entries. - * subr.el (insert-string): Moved from mocklisp.c, reimplemented in + * subr.el (insert-string): Move from mocklisp.c, reimplemented in Lisp. Obsoleted. * emulation/mlconvert.el: File removed. @@ -20887,8 +20887,8 @@ (lm-crack-copyright): Cope with multi-line copyright `lines'. * simple.el (newline): Doc fix. - (eval-expression-print-level, eval-expression-print-length): Doc - fix. Amend :type. + (eval-expression-print-level, eval-expression-print-length): + Doc fix. Amend :type. (next-line, previous-line): Make arg optional. (newline): Doc fix. @@ -20914,10 +20914,10 @@ 2001-12-16 Richard M. Stallman - * dired.el (dired-copy-filename-as-kill): Moved from dired-x.el. + * dired.el (dired-copy-filename-as-kill): Move from dired-x.el. (dired-mode-map): Bind w to dired-copy-filename-as-kill. - * dired-x.el (dired-copy-filename-as-kill): Moved to dired.el. + * dired-x.el (dired-copy-filename-as-kill): Move to dired.el. * autoinsert.el (auto-insert-alist): Redo finding C and C++ headers. Add a DESCRIPTION for the makefile item. @@ -20977,26 +20977,26 @@ 2001-12-15 Richard M. Stallman * language/ind-util.el (range): Function deleted. - (indian-regexp-of-hashtbl-keys): Renamed from `regexp-of-hashtbl-keys'. + (indian-regexp-of-hashtbl-keys): Rename from `regexp-of-hashtbl-keys'. All calls changed. - * language/devan-util.el (devanagari-range): Renamed from `range'. + * language/devan-util.el (devanagari-range): Rename from `range'. All calls changed. (devanagari-regexp-of-hashtbl-keys): - Renamed from `regexp-of-hashtbl-keys'. All calls changed. + Rename from `regexp-of-hashtbl-keys'. All calls changed. 2001-12-15 Dave Love * language/ind-util.el: Don't require cl. (indian-glyph-char, indian-glyph-max-char) - (indian-char-glyph): Moved from indian.el. + (indian-char-glyph): Move from indian.el. (indian--puthash-char, mapthread): Don't quote lambda. (indian--map): New function. (indian--puthash-v, indian--puthash-c, indian--puthash-m) (indian--puthash-cv): Use it. * language/indian.el (indian-glyph-char, indian-glyph-max-char) - (indian-char-glyph): Moved to ind-util.el + (indian-char-glyph): Move to ind-util.el * language/devan-util.el (devanagari-post-read-conversion): New function. @@ -21132,7 +21132,7 @@ * derived.el (derived-mode-p): Function moved to subr.el. - * subr.el (derived-mode-p): Moved here from derived.el. + * subr.el (derived-mode-p): Move here from derived.el. * international/mule.el (set-auto-coding): Use set-auto-mode-1. @@ -21282,7 +21282,7 @@ 2001-12-07 Miles Bader * progmodes/compile.el (compilation-error-regexp-alist): - Added regexps for RXP. + Add regexps for RXP. 2001-12-05 Eli Zaretskii @@ -21792,7 +21792,7 @@ * menu-bar.el (menu-bar-apropos-menu): New variable. Moved all `apropos' bindings to this menu. - (menu-bar-help-menu): Added `menu-bar-apropos-menu'. + (menu-bar-help-menu): Add `menu-bar-apropos-menu'. 2001-11-24 KAWABATA, Taichi @@ -22048,7 +22048,7 @@ (browse-url-galeon, browse-url-galeon-sentinel): New functions. (browse-url-default-browser): New function. (browse-url-process-environment): Use browse-url-browser-display. - (browse-url-browser-display): Renamed from browse-url-netscape-display. + (browse-url-browser-display): Rename from browse-url-netscape-display. (browse-url-mozilla-startup-arguments, browse-url-galeon-program) (browse-url-galeon-arguments, browse-url-galeon-startup-arguments) (browse-url-mozilla-program, browse-url-mozilla-arguments): New vars. @@ -22077,7 +22077,7 @@ (Math-integer-neg, Math-equal, Math-lessp, Math-primp) (Math-num-integerp, Math-bignum-test, Math-equal-int) (Math-natnum-lessp, math-format-radix-digit): Change to `defsubst'. - (calc-record-compilation-date-macro): Deleted. Callers updated. + (calc-record-compilation-date-macro): Delete. Callers updated. (math-format-radix-digit): Move to calc-bin.el. * calc/calc.el (calc-record-compilation-date): Remove. @@ -22523,7 +22523,7 @@ * calc/calc-keypd.el (toplevel): Bind mouse buttons. (calc-do-keypad): Don't attempt to use nonexistent global mouse-map, use calc-keypad-map. - (calc-keypad-x-left-click): Renamed to calc-keypad-left-click. + (calc-keypad-x-left-click): Rename to calc-keypad-left-click. (calc-keypad-left-click): Don't use mouse-map; update to new event interface. (calc-keypad-x-middle-click, calc-keypad-x-right-click): Ditto. @@ -22632,7 +22632,7 @@ * textmodes/flyspell.el (flyspell-correct-word/local-keymap): Function deleted. (flyspell-correct-word): Old definition deleted. - (flyspell-correct-word/mouse-keymap): Renamed to flyspell-correct-word. + (flyspell-correct-word/mouse-keymap): Rename to flyspell-correct-word. All references renamed too. 2001-11-10 Gerd Moellmann @@ -22641,7 +22641,7 @@ 2001-11-09 Per Abrahamsen - * wid-edit.el (checklist): Removed `:menu-tag'. + * wid-edit.el (checklist): Remove `:menu-tag'. (radio-button-choice): Ditto. (editable-list): Ditto. @@ -23102,7 +23102,7 @@ 2001-10-28 Per Abrahamsen - * cus-start.el (recursive-load-depth-limit): Added. + * cus-start.el (recursive-load-depth-limit): Add. 2001-10-28 Richard M. Stallman @@ -23176,7 +23176,7 @@ 2001-10-27 Sam Steingold - * textmodes/sgml-mode.el (sgml-xml): Renamed from `html-xhtml'. + * textmodes/sgml-mode.el (sgml-xml): Rename from `html-xhtml'. (sgml-xml-guess): Extracted from `html-mode' and generalized. (sgml-mode-common): Call it. (sgml-mode, html-mode): Set `mode-name' based on `sgml-xml'. @@ -23369,10 +23369,10 @@ 2001-10-24 Sam Steingold - * mouse.el (mouse-buffer-menu-mode-groups): Added "Version + * mouse.el (mouse-buffer-menu-mode-groups): Add "Version Control" and "SGML" groups. -2001-10-24 Martin Stjernholm +2001-10-24 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-member-init-list): Better handling of C++ template args to avoid confusion with `<' @@ -23455,25 +23455,25 @@ * vc.el (vc-annotate-display-default): Accept colormap scaling ratio (now deprecated). - (vc-annotate-display-autoscale): Added. + (vc-annotate-display-autoscale): Add. (vc-annotate-add-menu): New autoscaling menu options "Span to Oldest" and "Span Oldest->Newest". Easymenu support added for toggle menus driven by customize variable `vc-annotate-display-mode'. - (vc-annotate-display-select): Added. - (vc-annotate): Changed temp-buffer-show-function to + (vc-annotate-display-select): Add. + (vc-annotate): Change temp-buffer-show-function to `vc-annotate-display-select'. - (vc-annotate-display): Removed arguments BUFFER and BACKEND. + (vc-annotate-display): Remove arguments BUFFER and BACKEND. Added argument OFFSET. Instead of backend function, calls now generic `vc-annotate-difference'. - (vc-annotate-difference): Added as generic function instead of + (vc-annotate-difference): Add as generic function instead of backend-specific function. No longer takes argument POINT, but instead accepts a time OFFSET. - (vc-default-annotate-current-time): Added. + (vc-default-annotate-current-time): Add. - * vc-cvs.el (vc-cvs-annotate-difference): Removed to generic + * vc-cvs.el (vc-cvs-annotate-difference): Remove to generic version in vc.el. - (vc-cvs-annotate-current-time): Added, as override of default. - (vc-cvs-annotate-time): Added. Taken mostly from the (now removed) + (vc-cvs-annotate-current-time): Add, as override of default. + (vc-cvs-annotate-time): Add. Taken mostly from the (now removed) `vc-cvs-annotate-difference'. 2001-10-22 Gerd Moellmann diff --git a/lisp/ChangeLog.11 b/lisp/ChangeLog.11 index bbba11dd9be..eee8b91f70f 100644 --- a/lisp/ChangeLog.11 +++ b/lisp/ChangeLog.11 @@ -40,8 +40,8 @@ * progmodes/fortran.el (fortran-mode): Use mode-require-final-newline. * progmodes/f90.el (f90-mode): Use mode-require-final-newline. * progmodes/cperl-mode.el (cperl-mode): Use mode-require-final-newline. - * progmodes/cfengine.el (cfengine-mode): Use - mode-require-final-newline. + * progmodes/cfengine.el (cfengine-mode): + Use mode-require-final-newline. * progmodes/ada-mode.el (ada-mode): Use mode-require-final-newline. * textmodes/text-mode.el (text-mode): Use mode-require-final-newline. * textmodes/texinfo.el (texinfo-mode): Use mode-require-final-newline. @@ -438,8 +438,8 @@ * net/tramp-smb.el (tramp-smb-advice-PC-do-completion): Make the advice less fragile. Surround temporary redefinition of - `substitute-in-file-name' with `unwind-protect'. Suggested by - Matt Hodges . + `substitute-in-file-name' with `unwind-protect'. + Suggested by Matt Hodges . 2004-12-17 Juri Linkov @@ -1608,9 +1608,9 @@ 2004-11-24 Jay Belanger - * calc/calc.el (calc-embedded-active): Removed unnecessary + * calc/calc.el (calc-embedded-active): Remove unnecessary declaration. - (calc-show-banner): Removed redundant declaration. + (calc-show-banner): Remove redundant declaration. * calc/calc-graph.el (calc-gnuplot-default-device) (calc-gnuplot-default-output, calc-gnuplot-print-device) @@ -1662,7 +1662,7 @@ (math-nri-n): New variable. (math-nth-root-integer, math-nth-root-int-iter): Replace variable n by declared variable. - (calcFunc-log): Removed misplaced condition. + (calcFunc-log): Remove misplaced condition. 2004-11-24 Stefan Monnier @@ -3366,8 +3366,8 @@ 2004-10-24 Kai Grossjohann - * simple.el (process-file): Accept nil for INFILE. Reported by - Luc Teirlinck. + * simple.el (process-file): Accept nil for INFILE. + Reported by Luc Teirlinck. 2004-10-24 Masatake YAMATO @@ -3969,7 +3969,7 @@ * indent.el (set-left-margin, set-right-margin): Rename `lm' arg to `width' for consistency with docstring. Doc fix. -2004-10-01 Martin Stjernholm +2004-10-01 Martin Stjernholm * progmodes/cc-langs.el: Load cl here since cc-defs doesn't do it. This is necessary for derived modes. @@ -4330,8 +4330,8 @@ (calc-mode): Compare `calc-settings-file' to `user-init-file' rather than "\\.emacs" to determine if it is the user-init-file. - * calc/calc-embed.el (calc-embedded-set-modes): Use - `calc-mode-var-list' correctly. + * calc/calc-embed.el (calc-embedded-set-modes): + Use `calc-mode-var-list' correctly. 2004-09-15 Thien-Thi Nguyen @@ -5129,7 +5129,7 @@ (speedbar-directory): New image (unused pixmap already existed). (speedbar-expand-image-button-alist): Use it. -2004-08-11 Martin Stjernholm +2004-08-11 Martin Stjernholm CC Mode update to 5.30.9: @@ -5212,7 +5212,7 @@ Fix bug that could cause an error from `after-change-functions' when the changed region is at bob. -2004-08-11 Alan Mackenzie +2004-08-11 Alan Mackenzie CC Mode update to 5.30.9: @@ -5503,8 +5503,8 @@ since Emacs 22.1 only (XEmacs has it). Implementation rewritten in order to avoid this function. (tramp-handle-write-region): Set current buffer. If connection - wasn't open, `file-modes' has changed it accidentally. Reported by - David Kastrup . + wasn't open, `file-modes' has changed it accidentally. + Reported by David Kastrup . (tramp-enter-password, tramp-read-passwd): New arguments USER and HOST. (tramp-action-password, tramp-multi-action-password): Apply it. @@ -8532,8 +8532,8 @@ 2004-04-16 Dave Love - * progmodes/python.el (python-compilation-line-number): Fix - braindamage. + * progmodes/python.el (python-compilation-line-number): + Fix braindamage. (python-load-file): Fix python-orig-start setting. * progmodes/compile.el: Doc fixes. @@ -9482,8 +9482,8 @@ 2004-03-22 Luc Teirlinck - * autorevert.el (global-auto-revert-non-file-buffers): Expand - docstring. + * autorevert.el (global-auto-revert-non-file-buffers): + Expand docstring. (buffer-stale-function): New variable. (auto-revert-list-diff, auto-revert-dired-file-list) (auto-revert-dired-changed-p, auto-revert-buffer-p): Delete. @@ -10230,8 +10230,8 @@ * progmodes/ebnf-abn.el: New file, implements an ABNF parser. - * progmodes/ebnf2ps.el: Doc fix. Accept ABNF (Augmented BNF). New - arrow shapes: semi-up-hollow, semi-up-full, semi-down-hollow and + * progmodes/ebnf2ps.el: Doc fix. Accept ABNF (Augmented BNF). + New arrow shapes: semi-up-hollow, semi-up-full, semi-down-hollow and semi-down-full. Fix a bug on productions like test = {"test"}* | ( "tt" ["test"] ). Reported by Markus Dreyer . @@ -10568,7 +10568,7 @@ (ses-mode-map): Use them. (ses-read-number) New fun. Duplicates code from interactive "N" spec. -2004-02-14 Martin Stjernholm +2004-02-14 Martin Stjernholm * Makefile.in: Fix the CC Mode recompile kludge so it works when building in a different directory. @@ -10642,7 +10642,7 @@ * tar-mode.el (tar-extract): Fix for the case that a file doesn't have end-of-line. -2004-02-09 Martin Stjernholm +2004-02-09 Martin Stjernholm * Makefile.in: Added extra dependencies in the recompile target needed to cope with the compile time macro expansions in CC Mode. @@ -11034,8 +11034,8 @@ 2004-01-21 Jan Djärv - * term/x-win.el (x-clipboard-yank, menu-bar-edit-menu): Call - menu-bar-enable-clipboard and make Paste use clipboard first. + * term/x-win.el (x-clipboard-yank, menu-bar-edit-menu): + Call menu-bar-enable-clipboard and make Paste use clipboard first. 2004-01-20 Stefan Monnier @@ -11714,8 +11714,8 @@ 2003-11-30 Kai Grossjohann Version 2.0.38 of Tramp released. - * net/tramp.el (tramp-chunksize): Extend docstring. Suggested by - Charles Curley . + * net/tramp.el (tramp-chunksize): Extend docstring. + Suggested by Charles Curley . (tramp-multi-connection-function-alist): Add ssht entry which adds "-e none -t -t" to the list of ssh args. Suggested by Adrian Aichner. @@ -11932,7 +11932,7 @@ by returning the original value of 8 in all cases, but 99% of the time this is a waste of whitespace). -2003-11-16 Martin Stjernholm +2003-11-16 Martin Stjernholm * progmodes/cc-engine.el (c-guess-continued-construct) (c-guess-basic-syntax): Check a little more carefully if it's a @@ -12696,13 +12696,13 @@ * window.el (window-current-scroll-bars): New defun. -2003-09-24 Martin Stjernholm +2003-09-24 Martin Stjernholm * progmodes/cc-engine.el (c-parse-state): Fix bug that could cause errors when the state cache contains info on parts that have been narrowed out. -2003-09-24 Martin Stjernholm +2003-09-24 Martin Stjernholm * progmodes/cc-vars.el (c-comment-prefix-regexp): Document that `c-setup-paragraph-variables' has to be used when this variable is @@ -12712,7 +12712,7 @@ * progmodes/cc-styles.el (c-setup-paragraph-variables): Make it interactive. -2003-09-24 Martin Stjernholm +2003-09-24 Martin Stjernholm * progmodes/cc-fonts.el (c-font-lock-declarations): Fix recognition of constructors and destructors for classes whose @@ -12721,14 +12721,14 @@ * progmodes/cc-langs.el (c-type-list-kwds): If "operator" is followed by an identifier in C++ then it's a type. -2003-09-24 Martin Stjernholm +2003-09-24 Martin Stjernholm * progmodes/cc-fonts.el (c-font-lock-invalid-string): Fix eob problem that primarily affected XEmacs. Don't use faces to find unterminated strings since Emacs and XEmacs fontify strings differently - this function should now work better in XEmacs. -2003-09-24 Martin Stjernholm +2003-09-24 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-brace): Fix a bug in the `expand-abbrev' workaround which caused braces to misbehave inside @@ -12737,7 +12737,7 @@ * progmodes/cc-engine.el (c-forward-keyword-clause): Fix error handling. This bug could cause interactive font locking to bail out. -2003-09-24 Martin Stjernholm +2003-09-24 Martin Stjernholm * progmodes/cc-engine.el (c-just-after-func-arglist-p): Handle paren-style types in Pike. Also fixed some cases of @@ -13113,13 +13113,13 @@ * image.el (image-jpeg-p): Don't search beyond length of data. -2003-08-26 Martin Stjernholm +2003-08-26 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-brace): Work around for a misfeature in `expand-abbrev' which caused electric keywords like "else" to disappear if an open brace was typed directly afterwards. -2003-08-26 Martin Stjernholm +2003-08-26 Martin Stjernholm * progmodes/cc-vars.el (c-extra-types-widget): The doc string is mandatory in `define-widget'. @@ -13132,7 +13132,7 @@ (c-assignment-op-regexp): New language var used by `c-lineup-math'. -2003-08-26 Martin Stjernholm +2003-08-26 Martin Stjernholm * progmodes/cc-engine.el (c-just-after-func-arglist-p): Safeguard against unbalanced sexps. @@ -13467,12 +13467,12 @@ * textmodes/reftex.el (reftex-region-active-p): New function. - * textmodes/reftex-parse.el (reftex-locate-bibliography-files): Improved the + * textmodes/reftex-parse.el (reftex-locate-bibliography-files): Improve the regexp to find the \bibliography macro. - * textmodes/reftex-vars.el (reftex-section-levels): Removed subsubparagraph, + * textmodes/reftex-vars.el (reftex-section-levels): Remove subsubparagraph, which does not exist in LaTeX. - (reftex-cite-format-builtin): Added amsrefs support. + (reftex-cite-format-builtin): Add amsrefs support. (reftex-toc-confirm-promotion): New option * textmodes/reftex-toc.el @@ -13482,7 +13482,7 @@ (reftex-toc-promote-action, reftex-toc-extract-section-number) (reftex-toc-newhead-from-alist) (reftex-toc-load-all-files-for-promotion): New functions. - (reftex-toc-help): Added description of new keys. + (reftex-toc-help): Add description of new keys. (reftex-toc-split-windows-fraction): New option. (reftex-recenter-toc-when-idle): Search *toc* window on all visible frames. @@ -13498,8 +13498,8 @@ (reftex-toc-quit): Adapted to delete frame when called in dedicated frame. - * textmodes/reftex-index.el (reftex-index-phrase-match-is-indexed): Check - all enclosing macros. + * textmodes/reftex-index.el (reftex-index-phrase-match-is-indexed): + Check all enclosing macros. 2003-08-08 Vinicius Jose Latorre @@ -13618,7 +13618,7 @@ * calendar/holidays.el, calendar/lunar.el, calendar/solar.el: (displayed-month, displayed-year): Define for compiler. -2003-08-03 Martin Stjernholm +2003-08-03 Martin Stjernholm * progmodes/cc-mode.el (c-init-language-vars-for): Add argument MODE. Renamed from c-init-c-language-vars'. @@ -13632,7 +13632,7 @@ (pike-mode): Ditto. (awk-mode): Ditto. -2003-08-03 Martin Stjernholm +2003-08-03 Martin Stjernholm * progmodes/cc-engine.el (c-end-of-current-token): Return whether or not the point moved. @@ -13850,7 +13850,7 @@ * simple.el (current-word): Don't include punctuation char when `really-word' arg is non-nil. -2003-07-17 Martin Stjernholm +2003-07-17 Martin Stjernholm * progmodes/awk-mode.el: Obsoleted by the AWK support in CC Mode - moved to the directory obsolete. @@ -13865,12 +13865,12 @@ (syntax-ppss-after-change-function): New alias. Update uses. (syntax-ppss): Catch the case where the buffer is narrowed. -2003-07-16 Martin Stjernholm +2003-07-16 Martin Stjernholm * progmodes/cc-defs.el (c-langelem-sym, c-langelem-pos) (c-langelem-2nd-pos): Add accessor functions for syntactic elements. -2003-07-16 Martin Stjernholm +2003-07-16 Martin Stjernholm * progmodes/cc-engine.el (c-literal-faces): Declare as a variable since it might be modified. @@ -13964,8 +13964,8 @@ 2003-07-10 Vinicius Jose Latorre - * ps-print.el: Print line number correctly in a region. Reported by - Tim Allen . + * ps-print.el: Print line number correctly in a region. + Reported by Tim Allen . (ps-print-version): New version number (6.6.2). (ps-printing-region): Code fix. @@ -14004,24 +14004,24 @@ * dired.el (dired-move-to-filename-regexp): Allow quote in months. -2003-07-08 Martin Stjernholm +2003-07-08 Martin Stjernholm * progmodes/cc-engine.el (c-guess-basic-syntax): Do not do hidden buffer changes; there's third party code that calls this function directly. -2003-07-08 Martin Stjernholm +2003-07-08 Martin Stjernholm * progmodes/cc-fonts.el (javadoc-font-lock-keywords) (autodoc-font-lock-keywords): Don't byte compile on font lock initialization when running from byte compiled files. -2003-07-08 Alan Mackenzie +2003-07-08 Alan Mackenzie * progmodes/cc-engine.el: Fix AWK mode indentation when previous statement ends with auto-increment "++". -2003-07-08 Martin Stjernholm +2003-07-08 Martin Stjernholm * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist) (c-lang-variable-inits, c-lang-variable-inits-tail): The values of @@ -14110,13 +14110,13 @@ * info.el (Info-menu-entry-name-re): Add `:' to second [] part. This should fix the infinite loop when extracting menu names. -2003-07-05 Martin Stjernholm +2003-07-05 Martin Stjernholm * files.el (auto-mode-alist, interpreter-mode-alist): Remove entries to CC Mode modes to avoid duplicates; they are now added with autoload directives in cc-mode.el. -2003-07-05 Martin Stjernholm +2003-07-05 Martin Stjernholm * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist) (c-lang-variable-inits, c-lang-variable-inits-tail): The values of diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12 index 7d868b9db09..309fa14c021 100644 --- a/lisp/ChangeLog.12 +++ b/lisp/ChangeLog.12 @@ -932,7 +932,7 @@ * international/quail.el (quail-setup-completion-buf): Make the completion buffer read-only. - (quail-completion): Adjusted for the above change. Leave the + (quail-completion): Adjust for the above change. Leave the modified flag nil. 2007-03-20 David Kastrup @@ -2371,8 +2371,8 @@ 2007-01-27 Eli Zaretskii * ls-lisp.el (ls-lisp-use-localized-time-format): New defcustom. - (ls-lisp-format-time-list): Doc fix. Mention - ls-lisp-use-localized-time-format. + (ls-lisp-format-time-list): Doc fix. + Mention ls-lisp-use-localized-time-format. (ls-lisp-format-time): Use ls-lisp-format-time-list if ls-lisp-use-localized-time-format is non-nil, even if a valid locale is defined. @@ -3410,8 +3410,8 @@ * wdired.el (wdired-change-to-wdired-mode, wdired-finish-edit) (wdired-search-and-rename): Simplify code. - (wdired-preprocess-files, wdired-preprocess-perms): Make - read-only property of preceding character rear-nonsticky to + (wdired-preprocess-files, wdired-preprocess-perms): + Make read-only property of preceding character rear-nonsticky to avoid that it can be modified. Put old-name and old-link properties on character preceding name and replace put-text-property by add-text-properties. @@ -3560,8 +3560,8 @@ 2006-12-04 Michael Albinus * net/tramp.el (tramp-methods): Add "ControlPath" and - "ControlMaster" to scp, scp1 and scp2 methods. Suggested by - Andreas Schwab . + "ControlMaster" to scp, scp1 and scp2 methods. + Suggested by Andreas Schwab . (tramp-do-copy-or-rename-file-out-of-band) (tramp-open-connection-rsh): Compute format spec for ?t. (tramp-process-actions): Trace command parameters. @@ -6782,9 +6782,9 @@ * mail/feedmail.el (feedmail-buffer-to-sendmail): Look for sendmail in several common directories. - * mail/sendmail.el (sendmail-program): Moved here from paths.el. + * mail/sendmail.el (sendmail-program): Move here from paths.el. - * paths.el (sendmail-program): Removed. + * paths.el (sendmail-program): Remove. 2006-09-04 Daiki Ueno @@ -6822,8 +6822,8 @@ * net/rcirc.el (rcirc-keywords): New variable. (rcirc-bright-nicks, rcirc-dim-nicks): New variables. - (rcirc-bright-nick-regexp, rcirc-dim-nick-regexp): Remove - variables. + (rcirc-bright-nick-regexp, rcirc-dim-nick-regexp): + Remove variables. (rcirc-responses-no-activity): New function. (rcirc-handler-generic): Check for responses in above. (rcirc-process-command): Add ?: character to arguments of raw @@ -6870,8 +6870,8 @@ 2006-08-31 Richard Stallman * cus-edit.el (custom-save-variables): Slight cleanup. - (Custom-no-edit): Renamed from custom-no-edit. - (Custom-newline): Renamed from custom-newline. + (Custom-no-edit): Rename from custom-no-edit. + (Custom-newline): Rename from custom-newline. (custom-mode-map): Use new names. * emacs-lisp/easy-mmode.el (define-minor-mode): Reference manual @@ -7465,7 +7465,7 @@ 2006-08-09 John Wiegley - * calendar/timeclock.el (timeclock-use-elapsed): Added a new + * calendar/timeclock.el (timeclock-use-elapsed): Add a new variable, which causes timeclock to report elapsed time worked, instead of just work remaining. @@ -8041,8 +8041,8 @@ instead of retired `allout-resumptions'. For hook functions, use `local' parameter so hook settings are created and removed as buffer-local settings. Revise (resumptions) setting - auto-fill-function so it is set only if already active. The - related fill-function settings are all made in either case, so + auto-fill-function so it is set only if already active. + The related fill-function settings are all made in either case, so that activating auto-fill-mode activity will have the custom allout-mode behaviors (hanging indent on topics, if configured for it). Remove all allout-exposure-category overlays on mode deactivation. @@ -9914,7 +9914,7 @@ * progmodes/idlw-shell.el (idlwave-shell-move-or-history): Remove spurious move to point-max (new comint behavior fixes). - * progmodes/idlwave.el (idlwave-push-mark): Removed obsolete + * progmodes/idlwave.el (idlwave-push-mark): Remove obsolete compatibility function (Emacs 18/19). (idlwave-is-continuation-line): Always return point at start of previous non-blank continuation line. @@ -9978,12 +9978,12 @@ `point'. (diff-hunk-text, diff-goto-source): Doc fix. - * startup.el (fancy-splash-screens, normal-splash-screen): Use - face `mode-line-buffer-id' for mode-line buffer face instead of + * startup.el (fancy-splash-screens, normal-splash-screen): + Use face `mode-line-buffer-id' for mode-line buffer face instead of hard-coded `(:weight bold)'. - * arc-mode.el (archive-set-buffer-as-visiting-file): Bind - buffer-undo-list to t (undo-ask is reproducible by visiting + * arc-mode.el (archive-set-buffer-as-visiting-file): + Bind buffer-undo-list to t (undo-ask is reproducible by visiting nested archives). 2006-05-09 Kim F. Storm @@ -9999,9 +9999,9 @@ 2006-05-09 Masatake YAMATO - * font-lock.el (cpp-font-lock-keywords-source-directives): Added - "warning" and "import". - (cpp-font-lock-keywords): Added "warning". + * font-lock.el (cpp-font-lock-keywords-source-directives): + Add "warning" and "import". + (cpp-font-lock-keywords): Add "warning". 2006-05-08 Dan Nicolaescu @@ -12213,41 +12213,41 @@ * progmodes/etags.el (tags-completion-table): Do completion from all the tables in the current list, as documented in the manual. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * CC Mode Update to 5.31.3. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-mode.el (c-postprocess-file-styles): Bind inhibit-read-only to t, around the call to c-remove-any-local-eval-or-mode-variables, so that it works on a RO file. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-awk.el: Correct a typo. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-cmds.el, progmodes/cc-mode.el: Rename c-hungry-backspace to c-hungry-delete-backwards, at the request of RMS. Leave the old name as an alias. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-mode.el: Correct a typo. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-defs.el: Update the version number to 5.31.3. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-cmds.el (c-electric-brace): Fix clean-up brace-else-brace (error due to mbeg, mend being undefined). -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-mode.el: File Local variables: Solve the problem where both `mode' and c-file-offsets are specified: `mode' will @@ -12257,7 +12257,7 @@ c-tentative-buffer-change, to splat `mode' and `eval' before the second hack-local-variables. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-mode.el: [Supersedes patch to cc-engine.el 2005-12-16T20:07:49Z!monnier@iro.umontreal.ca] @@ -12272,7 +12272,7 @@ with save-match-data. It was being corrupted when Font Lock was not enabled. -2006-02-24 Alan Mackenzie +2006-02-24 Alan Mackenzie * progmodes/cc-langs.el (c-mode-menu): Add menu items for Electric Mode and Subword Mode. @@ -12292,7 +12292,7 @@ * progmodes/cc-cmds.el (c-electric-brace, c-electric-semi&comma) (c-electric-colon): Correct doc-strings: "/ln" -> "/la". -2006-02-24 Martin Stjernholm +2006-02-24 Martin Stjernholm * progmodes/cc-langs.el (c-make-init-lang-vars-fun): Improve the error message when there's an evaluation error to show whether @@ -12630,8 +12630,8 @@ (Info-isearch-push-state): Add quote before Info-current-file and Info-current-node. (Info-isearch-pop-state): Use `equal' instead of `string='. - (Info-extract-pointer, Info-following-node-name): Use - `match-string-no-properties' instead of `match-string'. + (Info-extract-pointer, Info-following-node-name): + Use `match-string-no-properties' instead of `match-string'. (Info-up): Check `old-file' for `stringp'. (Info-history): Use `equal' instead of `string-equal'. Check `file' for `stringp'. @@ -12681,8 +12681,8 @@ (rcirc-get-buffer-create): Fix bug with setting the target. (rcirc-any-buffer): Rename from rcirc-get-any-buffer, and include test for rcirc-always-use-server-buffer-flag here. - (rcirc-response-formats): Add %N, which is a facified nick. %n - uses the default face. Change the ACTION format string. If the + (rcirc-response-formats): Add %N, which is a facified nick. + %n uses the default face. Change the ACTION format string. If the "nick" is the server, don't print anything for that field. Comment fixes. (rcirc-target-buffer): Don't test @@ -12707,7 +12707,7 @@ (allout-version): Incremented, corrected, revised, and refined module commentary. - (provide 'allout): Moved to the bottom, added a require of overlay. + (provide 'allout): Move to the bottom, added a require of overlay. (allout-encrypt-unencrypted-on-saves): Defaults to t instead of `except-current'. @@ -12730,19 +12730,19 @@ Clarify provision for various write-file hook var names. Adjusted for invisible-text overlays instead of selective-display. - (allout-depth): Really return 0 if not within any topic. This - rectifies `allout-beginning-of-level' and sequence numbering + (allout-depth): Really return 0 if not within any topic. + This rectifies `allout-beginning-of-level' and sequence numbering errors that occur when cutting and pasting numbered topics. Changed from a in-line subst to a regular function, as well. - (allout-pre-next-prefix): Renamed from allout-pre-next-preface. + (allout-pre-next-prefix): Rename from allout-pre-next-preface. (allout-end-of-subtree, allout-end-of-subtree) (allout-end-of-entry, allout-end-of-current-heading) (allout-next-visible-heading, allout-open-topic, allout-show-entry) (allout-show-children, allout-show-to-offshoot) - (allout-hide-current-entry, allout-show-current-entry): Rectified - handling of trailing blank lines between items. + (allout-hide-current-entry, allout-show-current-entry): + Rectified handling of trailing blank lines between items. (allout-line-boundary-regexp, set-allout-regexp, allout-depth) (allout-current-depth, allout-unprotected, allout-hidden-p) @@ -12753,11 +12753,11 @@ (allout-hide-region-body, allout-toggle-subtree-encryption) (allout-encrypt-string, allout-encrypted-key-info) (allout-next-topic-pending-encryption, allout-encrypt-decrypted) - (allout-file-vars-section-data): Adjusted for use with + (allout-file-vars-section-data): Adjust for use with invisible-text overlays instead of selective-display. (allout-kill-line, allout-kill-topic, allout-yank-processing): - Reworked for use with invisible text overlays. + Rework for use with invisible text overlays. (allout-current-topic-collapsed-p): New function. @@ -12777,8 +12777,8 @@ (allout-overlay-insert-in-front-handler) (allout-overlay-interior-modification-handler) - (allout-before-change-handler, allout-isearch-end-handler): New - functions to handle extraordinary actions affecting concealed + (allout-before-change-handler, allout-isearch-end-handler): + New functions to handle extraordinary actions affecting concealed text. (allout-flag-region): Use overlays instead of selective-display @@ -12810,8 +12810,8 @@ 2006-02-17 Agustín Martín - * textmodes/ispell.el (ispell-change-dictionary): Call - ispell-buffer-local-dict instead of + * textmodes/ispell.el (ispell-change-dictionary): + Call ispell-buffer-local-dict instead of ispell-accept-buffer-local-defs. (ispell-local-dictionary-alist): Accept as valid any coding-system supported by Emacs. @@ -12918,8 +12918,8 @@ (hack-local-variables): Construct list of variable-value pairs, and apply or reject them in one go. Ask for confirmation if variables are not known safe. - (hack-local-variables-confirm): Complete rewrite. Support - `safe-local-variable-values'. + (hack-local-variables-confirm): Complete rewrite. + Support `safe-local-variable-values'. (enable-local-variables): Update docstring to reflect new behavior. (ignored-local-variables): Ignore ignored-local-variables and @@ -13018,8 +13018,8 @@ 2006-02-12 Michael Albinus * net/tramp.el (tramp-remote-path): Add "/usr/xpg4/bin" on top, - because on Solaris a POSIX compatible "id" is needed. Reported by - Magnus Henoch . + because on Solaris a POSIX compatible "id" is needed. + Reported by Magnus Henoch . 2006-02-12 Juri Linkov @@ -13103,10 +13103,10 @@ * help.el (describe-key-briefly): Now a wrapper for describe-key-briefly-internal. Bind enable-disabled-menus-and-buttons to t. Populate yank-menu if empty. - (describe-key-briefly-internal): Renamed from describe-key-briefly. + (describe-key-briefly-internal): Rename from describe-key-briefly. (describe-key): Now a wrapper for describe-key-internal. Bind enable-disabled-menus-and-buttons to t. Populate yank-menu if empty. - (describe-key-internal): Renamed from describe-key. + (describe-key-internal): Rename from describe-key. 2006-02-11 Milan Zamazal @@ -13641,8 +13641,8 @@ 2006-01-22 Kenichi Handa - * international/mule.el (make-subsidiary-coding-system): Reset - `coding-system-define-form' property of subsidiaries to nil. + * international/mule.el (make-subsidiary-coding-system): + Reset `coding-system-define-form' property of subsidiaries to nil. Avoid duplicated entry in coding-system-alist. (make-coding-system): Avoid duplicated entry in coding-system-alist. @@ -13790,8 +13790,8 @@ (tramp-unload-file-name-handler-alist) (tramp-unload-tramp): New defuns. (tramp-advice-PC-expand-many-files): New defadvice. - (tramp-save-PC-expand-many-files, tramp-setup-complete): Defuns - removed. + (tramp-save-PC-expand-many-files, tramp-setup-complete): + Defuns removed. (tramp-handle-expand-file-name): Remove double slash. (tramp-handle-file-attributes-with-ls): Return t as 9th attribute. It doesn't matter, because it will be converted later on. @@ -13869,7 +13869,7 @@ 2006-01-20 Carsten Dominik - * textmodes/org.el (org-open-at-point): Fixed bug with matching a + * textmodes/org.el (org-open-at-point): Fix bug with matching a link. Fixed buggy argument sequence in call to `org-view-tags'. (org-compile-prefix-format): Set `org-prefix-has-tag'. (org-prefix-has-tag): New variable. @@ -13886,8 +13886,8 @@ images remain visible. (thumbs-file-alist): Construct list in thumbs-buffer and reverse order. - (thumbs-show-image-num): Get image from thumbs-file-alist. Set - mode name. + (thumbs-show-image-num): Get image from thumbs-file-alist. + Set mode name. (thumbs-next-image, thumbs-previous-image): Make them work. 2006-01-19 Luc Teirlinck @@ -14197,8 +14197,8 @@ 2006-01-12 Masatake YAMATO - * progmodes/ld-script.el (auto-mode-alist): Support - suffix conventions used in netbsd and eCos. + * progmodes/ld-script.el (auto-mode-alist): + Support suffix conventions used in netbsd and eCos. 2006-01-11 Luc Teirlinck @@ -15573,7 +15573,7 @@ * hi-lock.el (hi-lock-mode): Rename from hi-lock-buffer-mode; react if global-hi-lock-mode seems intended. - (global-hi-lock-mode): Renamed from hi-lock-mode. + (global-hi-lock-mode): Rename from hi-lock-mode. (hi-lock-archaic-interface-message-used) (hi-lock-archaic-interface-deduce): New variables. (turn-on-hi-lock-if-enabled, hi-lock-line-face-buffer) @@ -15723,7 +15723,7 @@ No need to check gud-comint-buffer is bound. (gdb): Prevent multiple debugging when first session uses gdba. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie CC Mode update to 5.31. @@ -15736,7 +15736,7 @@ New macros c-sentence-end and c-default-value-sentence end, to cope with Emacs 22's new function `sentence-end'. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-cmds.el (c-show-syntactic-information): Solve the compat issue using `c-put-overlay' and `c-delete-overlay'. @@ -15744,7 +15744,7 @@ * progmodes/cc-defs.el (c-put-overlay, c-delete-overlay): New compat macros to handle overlays/extents. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-fix.el: Add definitions of the macros push and pop (for GNU Emacs 20.4). @@ -15761,7 +15761,7 @@ call to the new macro c-int-to-char. This solves XEmacs's regarding characters as different from integers. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-fonts.el (c-make-syntactic-matcher): New internal helper. @@ -15777,7 +15777,7 @@ * progmodes/cc-fonts.el (c-negation-char-face-name): New variable to map to `font-lock-negation-char-face' in emacsen where it exists. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-mode.el: Bind c-subword-mode to C-c C-w. @@ -15787,12 +15787,12 @@ * progmodes/cc-mode.el: Added tty suitable bindings for C-c and C-c C-. (To the c-hungry- delete functions). -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-mode.el: Added autoload directive for `c-subword-move-mode' for use in older emacsen. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-mode.el: (i): Insert a binding for C-c C-backspace into @@ -15810,7 +15810,7 @@ * progmodes/cc-awk.el: Apply a tidy-up patch (from Stefan Monnier). -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-fonts.el, progmodes/cc-vars.el (gtkdoc-font-lock-doc-comments, gtkdoc-font-lock-doc-protection) @@ -15829,7 +15829,7 @@ key behavior in XEmacs according to `delete-forward-p'. C.f. `c-electric-delete'. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-mode.el: Give c-hungry-backspace and c-hungry-delete-forward permanent key bindings. @@ -15847,7 +15847,7 @@ response to a report from Joseph Kiniry that it was difficult to understand. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-engine.el (c-on-identifier): Fix bug when at the first char of an identifier. @@ -15855,7 +15855,7 @@ * progmodes/cc-engine.el (c-on-identifier): Handle the "operator +" syntax in C++. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-cmds.el (c-mask-paragraph): Correct, so that auto-fill doesn't split a c-comment's last word from a hanging @@ -15871,7 +15871,7 @@ with blank comment-prefix, and a blank line as the comment's second line. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-fonts.el (c-cpp-matchers, c-basic-matchers-before): Incorporate the patterns added in the Emacs development branch @@ -15883,7 +15883,7 @@ * progmodes/cc-engine.el (c-literal-faces): Add `font-lock-comment-delimiter-face' which is new in Emacs 22. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-cmds.el: Make C-c C-a (`c-toggle-auto-newline') forcibly enable c-electric-flag. @@ -15892,7 +15892,7 @@ `comment-close-slash' on c-electric-slash: if enabled, typing `/' just after the comment-prefix of a C-style comment will close that comment. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-fonts.el (c-basic-matchers-before) (c-complex-decl-matchers): Fix the "not-arrow-prefix" regexp used @@ -15956,11 +15956,11 @@ Enable heuristics below the point to cope with classes inside special brace lists in Pike. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-cmds.el: Amend c-point-syntax to handle macros. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-guess.el (cc-guess-install): New function to install an already guessed style in another buffer. @@ -15969,7 +15969,7 @@ sets `inhibit-read-only' - `c-save-buffer-state' should be used anyway if the change always is undone. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie Implement togglable electricity: @@ -16009,7 +16009,7 @@ (c-electric-semi&comma, c-electric-colon, c-electric-paren): restructure a bit. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-cmds.el (c-show-syntactic-information): Show the anchor position(s) using faces. Thanks to Masatake YAMATO for the idea. @@ -16037,7 +16037,7 @@ (c-subword-move-mode): Minor mode that replaces all the standard word handling functions with their subword equivalences. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-vars.el (c-cleanup-list): Insert a customization entry for one-liner-defun. @@ -16064,7 +16064,7 @@ c-max-one-liner-length. In c-default-style, set the default style for AWK to "awk". -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-engine.el (c-forward-label): Fix fontification of macros inside labels. @@ -16139,7 +16139,7 @@ * progmodes/cc-engine.el (c-beginning-of-statement-1): Fix a macro related issue. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-awk.el: Change the terminology of regexps: A char list is now [asdf], a char class [:alpha:]. @@ -16175,14 +16175,14 @@ c-string-par-start, c-string-par-separate to be more like Text Mode than Fundamental Mode. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-fonts.el (c-font-lock-declarations): Always narrow to the fontified region so that fontification doesn't occur outside it (could happen e.g. when fontifying a line with an unfinished declaration). -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-awk.el: Move regexps for analyzing AWK code to near the start of the file. ^L now separate sections of the file. @@ -16220,7 +16220,7 @@ * progmodes/cc-mode.el: Fix what's almost a semantic ambiguity in a comment. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-brace): Clean up using `c-tentative-buffer-changes'. @@ -16241,7 +16241,7 @@ avoid some false alarms. * progmodes/cc-engine.el, progmodes/cc-langs.el (c-looking-at-inexpr-block): - Fixed a situation where an error could be thrown for unbalanced + Fix a situation where an error could be thrown for unbalanced parens. Changed to make use of c-keyword-member' to avoid some repeated regexp matches. @@ -16279,7 +16279,7 @@ * progmodes/cc-defs.el (c-point): Add `bosws' and `eosws'. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-cmds.el, progmodes/cc-styles.el: * progmodes/cc-vars.el: New variables @@ -16290,7 +16290,7 @@ * progmodes/cc-cmds.el (c-electric-brace): Don't delete a comment which precedes the newly inserted `{'. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-langs.el: Rewrote the recognition function for declaration level blocks. It should now cope with @@ -16475,7 +16475,7 @@ when macros occur in obscure places. Optimized the sexp movement a bit. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie Enhancements for c-beginning-of-statement to work in AWK Mode: @@ -16498,7 +16498,7 @@ * progmodes/cc-mode.el: Put M-a and M-e into awk-mode-map. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-fonts.el: * progmodes/cc-langs.el: Cleaned up the @@ -16650,13 +16650,13 @@ (c-lineup-math): Change to use `c-lineup-assignments'. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-cmds.el: Fix some bugs in subfunctions of c-beginning-of-statement. New subfunctions c-in-comment-line-prefix-p, c-narrow-to-comment-innards. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-fonts.el, progmodes/cc-langs.el: Use `c-simple-ws' instead of hardcoded char classes wherever possible. Changed a couple of @@ -16688,7 +16688,7 @@ in `regexp-opt' in Emacs 20 and XEmacs when strings contain newlines. Allow and ignore nil elements in the list. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-cmds.el: Comment out a (n almost certainly superfluous) check, (eq here (point-max)) in c-beginning-of-statement. @@ -16712,7 +16712,7 @@ c-beginning-of-statement, including new variable c-block-comment-start-regexp. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-langs.el (c-known-type-key): Optimize simple symbols from `*-font-lock-extra-types' so that there's no need to @@ -16731,7 +16731,7 @@ * progmodes/cc-vars.el (c-emacs-features): Remove compatibility with older emacsen: We now require `pps-extended-state'. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-cmds.el: New function c-beginning-of-sentence, which obviates the need to hack sentence-end. This now handles @@ -16746,7 +16746,7 @@ * progmodes/cc-cmds.el: Restructure c-beginning-of-statement: Improve its doc-string. Improve the handling of certain specific cases. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-fonts.el, progmodes/cc-langs.el (c-guess-basic-syntax): Change the way class-level labels are @@ -16857,16 +16857,16 @@ `template-args-cont' in nested template arglists. There's still much to be desired in this area, though. -2005-12-08 Alan Mackenzie +2005-12-08 Alan Mackenzie * progmodes/cc-cmds.el, progmodes/cc-engine.el: * progmodes/cc-langs.el, progmodes/cc-vars.el: Make the "Text Filling and Line Breaking" commands work for AWK buffers. -2005-12-08 Martin Stjernholm +2005-12-08 Martin Stjernholm * progmodes/cc-defs.el, progmodes/cc-engine.el (c-mode-is-new-awk-p): - Removed; (c-major-mode-is 'awk-mode) can be used instead now. + Remove; (c-major-mode-is 'awk-mode) can be used instead now. * progmodes/cc-mode.el: Always set up AWK mode since emacsen where it doesn't work no longer are supported. @@ -17613,7 +17613,7 @@ 2005-11-24 Chong Yidong - * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'. + * hi-lock.el (hi-lock-buffer-mode): Rename from `hi-lock-mode'. Use define-minor-mode, and make it a local mode. Turn on font-lock. (hi-lock-mode): New global minor mode. (turn-on-hi-lock-if-enabled): New function. @@ -17659,8 +17659,8 @@ New functions. (org-move-item-down, org-move-item-up): New commands. (org-export-as-html): New classes for CSS support. Bug fix in - regular expression detecting fixed-width regions. Respect - `org-local-list-ordered-item-terminator'. + regular expression detecting fixed-width regions. + Respect `org-local-list-ordered-item-terminator'. (org-set-autofill-regexps, org-adaptive-fill-function): "1)" is also a list item. (org-metaup, org-metadown, org-shiftmetaup, org-shiftmetadown): @@ -17685,8 +17685,8 @@ (gdb-var-update-handler): Find values for all variable objects. (gdb-info-frames-custom): Identify frames by leading "#". - * progmodes/gud.el (gud-speedbar-menu-items): Add - gdb-speedbar-auto-raise as radio button. + * progmodes/gud.el (gud-speedbar-menu-items): + Add gdb-speedbar-auto-raise as radio button. (gud-speedbar-buttons): Raise speedbar if requested. Don't match on "char **...". (gud-speedbar-buttons): Add (pointer) value for non-leaves. @@ -20089,8 +20089,8 @@ 2005-10-17 Bill Wohler Move all remaining images from lisp/toolbar to etc/images, move - lisp/toolbar/tool-bar to lisp and "delete" lisp/toolbar. Place - the low resolution images in their own directory (low-color). + lisp/toolbar/tool-bar to lisp and "delete" lisp/toolbar. + Place the low resolution images in their own directory (low-color). * toolbar/attach.*, toolbar/cancel.*, toolbar/close.* * toolbar/copy.*, toolbar/cut.*, toolbar/diropen.*, toolbar/exit.* @@ -20357,8 +20357,8 @@ 2005-10-13 Jan Djärv * toolbar/diropen.xpm, toolbar/diropen.pbm: New versions made from - Gnome file-manager.png. Suggested by - Joachim Nilsson . + Gnome file-manager.png. + Suggested by Joachim Nilsson . * toolbar/README: Add diropen.xpm. @@ -20636,8 +20636,8 @@ trailing ":". Reported by Kurt Steinkraus . (tramp-chunksize): Improve docstring. (tramp-set-auto-save-file-modes): Octal integer code #o600 breaks - Emacs 20. Use `tramp-octal-to-decimal' therefore. Reported by - Christian Joergensen . + Emacs 20. Use `tramp-octal-to-decimal' therefore. + Reported by Christian Joergensen . 2005-10-07 Glenn Morris @@ -20792,8 +20792,8 @@ * emulation/viper-cmd.el (viper-normalize-minor-mode-map-alist) (viper-refresh-mode-line): Use make-local-variable to localize - some vars instead of make-variable-buffer-local. Suggested by - Stefan Monnier. + some vars instead of make-variable-buffer-local. + Suggested by Stefan Monnier. * emulation/viper-init.el (viper-make-variable-buffer-local): Delete alias. @@ -21035,23 +21035,23 @@ Frame management code (including timer, and mouse click specifics) moved to dframe.el: - (speedbar-attached-frame): Removed. Use dframe-attached-frame. - (speedbar-timer): Removed. Use dframe-timer. - (speedbar-close-frame): Removed. Use dframe-close-frame. - (speedbar-activity-change-focus-flag): Removed. Use - dframe-activity-change-focus-flag. - (speedbar-update-speed, speedbar-navigating-speed): Obsolete. Use - dframe-update-speed. + (speedbar-attached-frame): Remove. Use dframe-attached-frame. + (speedbar-timer): Remove. Use dframe-timer. + (speedbar-close-frame): Remove. Use dframe-close-frame. + (speedbar-activity-change-focus-flag): Remove. + Use dframe-activity-change-focus-flag. + (speedbar-update-speed, speedbar-navigating-speed): Obsolete. + Use dframe-update-speed. (speedbar-current-frame): New macro. Use this instead of the variable speedbar-frame. (speedbar-use-images, speedbar-expand-image-button-alist) - (speedbar-insert-image-button-maybe): Moved to sb-image.el. + (speedbar-insert-image-button-maybe): Move to sb-image.el. - (speedbar-find-image-on-load-path): Removed. Replaced by + (speedbar-find-image-on-load-path): Remove. Replaced by defezimage in ezimage.el. - (speedbar-expand-image-button-alist): Removed. Replaced by + (speedbar-expand-image-button-alist): Remove. Replaced by ezimage-expand-image-button-alist in ezimage.el. (speedbar-ignored-directory-regexp) @@ -21059,7 +21059,7 @@ (speedbar-ignored-directory-expressions) (speedbar-line-directory, speedbar-buffers-line-directory) (speedbar-directory-line, speedbar-buffers-line-directory): - Renamed, replacing `path' with `directory'. + Rename, replacing `path' with `directory'. (speedbar-create-directory, speedbar-expand-line-descendants) (speedbar-toggle-line-expansion) @@ -21617,8 +21617,8 @@ 2005-09-17 Milan Zamazal - * progmodes/glasses.el (glasses-make-readable): If - glasses-separator differs from underscore, put appropriate + * progmodes/glasses.el (glasses-make-readable): + If glasses-separator differs from underscore, put appropriate overlays over underscore characters. (glasses-convert-to-unreadable): If glasses-separator differs from underscore, try to convert glasses-separator characters to @@ -21975,7 +21975,7 @@ * custom.el (custom-known-themes): Clarify meaning of "standard". (custom-push-theme): Save old values in the standard theme. (disable-theme): Correct typo. - (custom-face-theme-value): Deleted unused function. + (custom-face-theme-value): Delete unused function. (custom-theme-recalc-face): Rewritten to treat enable/disable properly. 2005-09-05 Stefan Monnier @@ -25828,14 +25828,14 @@ (antlr-font-lock-default-face, antlr-font-lock-keyword-face) (antlr-font-lock-syntax-face, antlr-font-lock-ruledef-face) (antlr-font-lock-tokendef-face, antlr-font-lock-ruleref-face) - (antlr-font-lock-tokenref-face, antlr-font-lock-literal-face): New - backward-compatibility aliases for renamed faces. + (antlr-font-lock-tokenref-face, antlr-font-lock-literal-face): + New backward-compatibility aliases for renamed faces. (antlr-default-face, antlr-keyword-face, antlr-syntax-face) (antlr-ruledef-face, antlr-tokendef-face, antlr-ruleref-face) (antlr-tokenref-face, antlr-literal-face): Variables renamed to remove "font-lock-". Use renamed antlr-mode faces. - (antlr-font-lock-additional-keywords): Use renamed faces. Replace - literal face-names with face variable references. + (antlr-font-lock-additional-keywords): Use renamed faces. + Replace literal face-names with face variable references. * buff-menu.el (Buffer-menu-buffer): Remove "-face" suffix from face name. @@ -27387,7 +27387,7 @@ * emacs-lisp/cl.el (acons, pairlis): Add docstring. -2005-05-23 Martin Stjernholm +2005-05-23 Martin Stjernholm CC Mode update to 5.30.10: @@ -27417,7 +27417,7 @@ * progmodes/cc-engine.el (c-guess-basic-syntax): Fix anchoring in `objc-method-intro' and `objc-method-args-cont'. -2005-05-23 Alan Mackenzie +2005-05-23 Alan Mackenzie CC Mode update to 5.30.10: @@ -28294,8 +28294,8 @@ 2005-05-11 Stefan Monnier - * files.el (executable-find): Move from executable.el. Use - locate-file. + * files.el (executable-find): Move from executable.el. + Use locate-file. * progmodes/executable.el (executable-find): Move to files.el. * font-lock.el (font-lock-fontify-keywords-region): Use a marker @@ -28524,8 +28524,8 @@ * term/mac-win.el: Don't define or bind scroll bar functions if x-toolkit-scroll-bars is t. - (x-select-text, x-get-selection-value): Clear - x-last-selected-text-clipboard if x-select-enable-clipboard is + (x-select-text, x-get-selection-value): + Clear x-last-selected-text-clipboard if x-select-enable-clipboard is nil. (PRIMARY): Put mac-scrap-name property. (mac-select-convert-to-file-url): New function. @@ -30854,8 +30854,8 @@ Catch `dont-send' signal. (tramp-set-auto-save-file-modes): Set always permissions, because there might be an old auto-saved file belonging to another - original file. This could be a security threat. Reported by - Kjetil Kjernsmo . + original file. This could be a security threat. + Reported by Kjetil Kjernsmo . Check for Emacs 21.3.50 removed. * net/tramp-smb.el (all): Remove debug construct for @@ -31383,7 +31383,7 @@ 2005-03-07 Karl Chen - * align.el (align-rules-list): Added an alignment rule for CSS + * align.el (align-rules-list): Add an alignment rule for CSS declarations (applies to css-mode and html-mode buffers). 2005-03-07 Stefan Monnier @@ -32494,7 +32494,7 @@ (bibtex-field-list, bibtex-find-crossref): Fix typos in error messages. 2005-01-24 Dan Nicolaescu - Juri Linkov + Juri Linkov * textmodes/reftex-global.el (reftex-isearch-push-state-function) (reftex-isearch-pop-state-function, reftex-isearch-isearch-search) @@ -32731,8 +32731,8 @@ * net/tramp-vc.el (tramp-vc-do-command, tramp-vc-do-command-new) (tramp-vc-simple-command): Call `tramp-handle-shell-command' but - `shell-command', because it isn't magic in XEmacs. Reported by - Adrian Aichner . + `shell-command', because it isn't magic in XEmacs. + Reported by Adrian Aichner . * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry for `substitute-in-file-name'. diff --git a/lisp/ChangeLog.13 b/lisp/ChangeLog.13 index f6bdc4326e0..e0adfdd2cee 100644 --- a/lisp/ChangeLog.13 +++ b/lisp/ChangeLog.13 @@ -3984,7 +3984,7 @@ * ibuffer.el (ibuffer-mode): Fix typo in previous change. 2008-01-17 Vinicius Jose Latorre - Miles Bader + Miles Bader * blank-mode.el: New file. Minor mode to visualize (HARD) SPACE, TAB, NEWLINE. Miles Bader wrote the original code @@ -5480,7 +5480,7 @@ (verilog-insert-indices): Escape braces in doc strings. 2007-12-08 Michael McNamara - Wilson Snyder + Wilson Snyder * progmodes/verilog-mode.el: New file. @@ -13486,7 +13486,7 @@ Use native Emacs functions, when appropriate. 2007-08-01 Dan Nicolaescu - Stefan Monnier + Stefan Monnier * vc.el: Document new VC operation `extra-menu'. diff --git a/lisp/ChangeLog.14 b/lisp/ChangeLog.14 index 52612a7a724..3ca5d716bc3 100644 --- a/lisp/ChangeLog.14 +++ b/lisp/ChangeLog.14 @@ -3016,12 +3016,12 @@ Don't activate node nil. (Bug#1569) 2009-01-22 Paul Reilly - Henrik Enberg - Alex Schroeder - Chong Yidong - Richard M Stallman - Glenn Morris - Juanma Barranquero + Henrik Enberg + Alex Schroeder + Chong Yidong + Richard M Stallman + Glenn Morris + Juanma Barranquero * mail/rmail.el: Code implementing Rmail-mbox functionality. (rmail-attribute-header, rmail-keyword-header) @@ -4314,7 +4314,7 @@ was orderly adjusted, nil otherwise. 2008-12-12 Juanma Barranquero - Stefan Monnier + Stefan Monnier * server.el (server-sentinel): Uncomment code to delete connection file. (server-start): Save the connection file in the server property list. @@ -4373,7 +4373,7 @@ terminal variable assignment. 2008-12-10 Yukihiro Matsumoto - Nobuyoshi Nakada + Nobuyoshi Nakada * progmodes/ruby-mode.el: New file. @@ -5178,7 +5178,7 @@ * kmacro.el (kmacro-insert-counter): Doc fix. -2008-11-21 Ivan Shmakov (tiny change) +2008-11-21 Ivan Shmakov * progmodes/tcl.el (tcl-filter): Don't forcibly move point. @@ -5603,7 +5603,7 @@ New aliases, to satisfy `define-derived-mode' expectations. 2008-11-15 Glenn Morris - Martin Rudalics + Martin Rudalics * emacs-lisp/find-func.el (find-function-advised-original): New. (find-function-C-source, find-function-noselect): @@ -10312,8 +10312,8 @@ (newsticker--treeview-propertize-tag): Show item title in tooltip. 2008-06-20 Martin Blais - Stefan Merten - David Goodger + Stefan Merten + David Goodger * textmodes/rst.el: New file. @@ -10631,7 +10631,7 @@ * term/linux.el (terminal-init-linux): Load t-mouse. 2008-06-13 Stefan Monnier - Drew Adams + Drew Adams * info.el (Info-breadcrumbs-depth): New var. (Info-insert-breadcrumbs): New function. @@ -18798,7 +18798,7 @@ for useful options. 2008-03-01 Dan Nicolaescu - Glenn Morris + Glenn Morris * emacs-lisp/bytecomp.el (byte-recompile-directory) (byte-compile-file, batch-byte-compile, batch-byte-compile-file): diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15 index 6f71a6ade88..7589061c70b 100644 --- a/lisp/ChangeLog.15 +++ b/lisp/ChangeLog.15 @@ -628,7 +628,7 @@ (global-auto-revert-ignore-buffer): Remove leading "*" from docs. 2011-02-19 Dmitry Bolshakov - Dima Kogan (tiny change) + Dima Kogan (tiny change) * progmodes/hideshow.el (hs-find-block-beginning) (hs-hide-level-recursive): Ignore comments when parsing braces @@ -2970,7 +2970,7 @@ * loadup.el (symbol-file-load-history-loaded): Remove; unused. 2010-12-15 Jari Aalto - Scott Evans + Scott Evans * rect.el (rectange--default-line-number-format) (rectangle-number-line-callback): New functions. @@ -7986,7 +7986,7 @@ * iswitchb.el (iswitchb-kill-buffer): Re-make the list. 2010-08-22 Kirk Kelsey - Stefan Monnier + Stefan Monnier * progmodes/make-mode.el (makefile-fill-paragraph): Account for the extra backslash added to each line (bug#6890). @@ -8502,7 +8502,7 @@ * tutorial.el (help-with-tutorial): Hack safe file-local variables after reading the tutorial. -2010-08-06 Alan Mackenzie +2010-08-06 Alan Mackenzie * progmodes/cc-cmds.el (c-mask-paragraph, c-fill-paragraph): Fix for the case that a C style comment has its delimiters alone on @@ -8844,9 +8844,9 @@ (sql-mode-menu): Add submenu to select connections. (sql-interactive-mode-menu): Add "Save Connection" item. (sql-add-product): Fix menu item. - (sql-get-product-feature): Improved error handling. + (sql-get-product-feature): Improve error handling. (sql--alt-buffer-part, sql--alt-if-not-empty): Remove. - (sql-make-alternate-buffer-name): Simplified. + (sql-make-alternate-buffer-name): Simplify. (sql-product-interactive): Handle missing product. (sql-connect): Support string keys, minor improvements. (sql-save-connection): New function. @@ -8908,7 +8908,7 @@ (sql-connection-alist): New variable. (sql-connect): New function. (sql--alt-buffer-part, sql--alt-if-not-empty) - (sql-make-alternate-buffer-name): Improved alternative buffer name. + (sql-make-alternate-buffer-name): Improve alternative buffer name. 2010-07-17 Thierry Volpiatto @@ -9002,7 +9002,7 @@ another buffer (e.g gnus-art). 2010-07-13 Karl Fogel - Thierry Volpiatto + Thierry Volpiatto Preparation for setting bookmarks in Gnus article buffers (Bug#5975). @@ -9383,7 +9383,7 @@ `compose-mail-user-agent-warnings', instead of to the nonexistent `compose-mail-check-user-agent'. -2010-06-21 Alan Mackenzie +2010-06-21 Alan Mackenzie Fix an indentation bug: @@ -9392,7 +9392,7 @@ of existing values. * progmodes/cc-engine.el (c-clear-<-pair-props-if-match-after) - (c-clear->-pair-props-if-match-before): now return t when they've + (c-clear->-pair-props-if-match-before): Now return t when they've cleared properties, nil otherwise. (c-before-change-check-<>-operators): Set c-new-beg/end correctly by taking account of the existing value. @@ -10301,7 +10301,7 @@ (rcirc-user-name-history): Add variable. 2010-05-25 Ryan Yeske - Jonathan Rockway + Jonathan Rockway * net/rcirc.el (rcirc-server-alist): Add :pass. (rcirc): When prompting for connection parameters, also prompt for @@ -10969,7 +10969,7 @@ * Version 23.2 released. 2010-05-07 Deniz Dogan - Stefan Monnier + Stefan Monnier Highlight vendor specific properties. * textmodes/css-mode.el (css-proprietary-nmstart-re): New var. @@ -11162,7 +11162,7 @@ (filter-buffer-substring): Use it. Remove unused arg `noprops'. 2010-05-01 Toru TSUNEYOSHI - Michael Albinus + Michael Albinus Implement compression for inline methods. @@ -12209,7 +12209,7 @@ values. 2010-03-29 Phil Hagelberg - Chong Yidong + Chong Yidong * subr.el: Extend progress reporters to perform "spinning". (progress-reporter-update, progress-reporter-do-update): @@ -15603,7 +15603,7 @@ * Makefile.in (ELCFILES): Adapt to subword.el move. 2009-11-21 Thierry Volpiatto - Stefan Monnier + Stefan Monnier * bookmark.el (bookmark-bmenu-bookmark-column): Remove var. (bookmark-bmenu-list): Save name on `bookmark-name-prop' text-prop. @@ -19070,7 +19070,7 @@ indent buffer only if called interactively (Bug#4452). 2009-09-19 Juanma Barranquero - Eli Zaretskii + Eli Zaretskii This fixes bug#4197 (merged to bug#865, though not identical). * server.el (server-auth-dir): Add docstring note about FAT32. @@ -19887,7 +19887,7 @@ Don't call substitute-in-file-name on diary-file. 2009-09-03 Eduard Wiebe - Stefan Monnier + Stefan Monnier * mail/footnote.el (footnote-prefix): Make it a defcustom. (footnote-mode-map): Move initialization into the declaration. @@ -20998,7 +20998,7 @@ * progmodes/hideshow.el (hs-special-modes-alist): Add js-mode entry. 2009-08-14 Daniel Colascione - Karl Landstrom + Karl Landstrom * progmodes/js.el: New file. @@ -22765,7 +22765,7 @@ XZ is the successor to LZMA: 2009-06-22 Dmitry Dzhus - Nick Roberts + Nick Roberts * progmodes/gdb-mi.el: Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/). diff --git a/lisp/ChangeLog.16 b/lisp/ChangeLog.16 index 2e8c6df24a6..06556847062 100644 --- a/lisp/ChangeLog.16 +++ b/lisp/ChangeLog.16 @@ -1,6 +1,6 @@ 2013-03-11 Glenn Morris - * Version 24.3 released. + * Merge in all changes up to version 24.3 release. 2013-03-11 Stefan Monnier @@ -3340,7 +3340,7 @@ already registered with a different backend (Bug#10589). 2012-11-29 Jambunathan K - Stefan Monnier + Stefan Monnier * icomplete.el: Change separator; add ido-style commands. (icomplete-show-key-bindings): Remove custom var. @@ -4571,7 +4571,7 @@ to `bookmark' (bug#11131). 2012-10-26 Bastien Guerry - Stefan Monnier + Stefan Monnier * face-remap.el: Use lexical-binding. (text-scale-adjust): Improve docstring. Use itself for the temporary @@ -5052,7 +5052,7 @@ (w32-handle-dropped-file): Convert incoming dropped files from Windows paths to Cygwin ones before passing them on to the rest of Emacs. - (w32-drag-n-drop): New paramter new-frame. Simplify logic. + (w32-drag-n-drop): New parameter new-frame. Simplify logic. (w32-initialize-window-system): Assert we're not initialized twice. * term/x-win.el: Require cl-lib; add ourselves to display-format-alist. @@ -5879,7 +5879,7 @@ * international/uni-numeric.el: Regenerate. 2012-09-26 Tomohiro Matsuyama - Stefan Monnier + Stefan Monnier * profiler.el: New file. @@ -7534,7 +7534,7 @@ In doc-strings state whether the argument window has to denote a live, valid or any window. -2012-08-16 Phil Sainty (tiny change) +2012-08-16 Phil Sainty * progmodes/subword.el (subword-forward-function) (subword-backward-function, subword-forward-regexp) @@ -17100,7 +17100,7 @@ * vc/ediff-init.el (ediff-toggle-read-only-function): Use toggle-read-only. -2011-10-22 Alan Mackenzie +2011-10-22 Alan Mackenzie Fix bug #9560, sporadic wrong indentation; improve instrumentation of c-parse-state. diff --git a/lisp/ChangeLog.3 b/lisp/ChangeLog.3 index 767b4dd46ab..c9bd4e79c9a 100644 --- a/lisp/ChangeLog.3 +++ b/lisp/ChangeLog.3 @@ -26,7 +26,7 @@ (find-file-read-only-other-window): Likewise. (find-file-read-only-other-frame): Likewise. - * timer.el (cancel-function-timers): Renamed from spurious duplicate + * timer.el (cancel-function-timers): Rename from spurious duplicate definition of cancel-timer. * add-log.el (find-change-log): Use file-chase-links. @@ -82,7 +82,7 @@ * paths.el (Info-default-directory-list): Take out ../../info. Avoid duplication. - (manual-formatted-dirlist, manual-formatted-dir-prefix): Deleted. + (manual-formatted-dirlist, manual-formatted-dir-prefix): Delete. * subr.el (baud-rate): Doc fix. @@ -137,7 +137,7 @@ Delete the "local thinking machines" definitions at the end since they caused compilation failure. - * cl.el (cl-member): Renamed from member. + * cl.el (cl-member): Rename from member. * time.el (display-time-day-and-date): Use defvar, not defconst. @@ -163,7 +163,7 @@ (timezone-make-date-sortable): Make autoload for this. (rmail-sort-by-recipient): Downcase the strings for sorting. (rmail-sort-by-recipient): Likewise. - (rmail-sort-by-lines): Renamed from rmail-sort-by-size-lines. + (rmail-sort-by-lines): Rename from rmail-sort-by-size-lines. Use numbers to sort by. (rmail-summary-...): New functions. Bind in rmail-summary-mode-map. (rmail-sort-from-summary): New function. @@ -172,10 +172,10 @@ Choose string< or < as predicate. Reorder messages by exchanging them, with inhibit-quit bound. (rmail-fetch-field): Start by widening. - (rmail-sortable-date-string): Deleted. + (rmail-sortable-date-string): Delete. (rmail-make-date-sortable): New function, used instead. - * paths.el (gnus-local-organization): Renamed from ...-your-... + * paths.el (gnus-local-organization): Rename from ...-your-... (gnus-local-domain): Likewise. 1993-05-26 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) @@ -185,8 +185,8 @@ (set-face-font): Only use x-resolve-font-name if FONT is a string. Copying a faces shouldn't resolve the font. - * paths.el (Info-default-directory-list): Add - configure-info-directory to this list. + * paths.el (Info-default-directory-list): + Add configure-info-directory to this list. 1993-05-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -247,15 +247,15 @@ 1993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - * term/x-win.el (command-switch-alist, x-switch-definitions): Treat - `-i' like `-itype', as in Emacs 18. + * term/x-win.el (command-switch-alist, x-switch-definitions): + Treat `-i' like `-itype', as in Emacs 18. 1993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) * Version 19.8 released. - * startup.el (command-line-1): Don't handle `-i'. We're - abandoning the `insert file' meaning in favor of the `use a + * startup.el (command-line-1): Don't handle `-i'. + We're abandoning the `insert file' meaning in favor of the `use a bitmapped icon' meaning. * faces.el (set-face-font): Call x-resolve-font-name on the font @@ -265,8 +265,8 @@ * iso-syntax.el: Make downcase into a proper case table before passing it to set-standard-case-table. - * disp-table.el (standard-display-european): Doc fix. Make - it autoload. Make it respond to prefix arg like a minor mode. + * disp-table.el (standard-display-european): Doc fix. + Make it autoload. Make it respond to prefix arg like a minor mode. 1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -360,8 +360,8 @@ 1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) - * cl.el (cl-floor, cl-ceiling, cl-truncate, cl-round): Renamed - from floor, ceiling, truncate, and round; the old names conflict + * cl.el (cl-floor, cl-ceiling, cl-truncate, cl-round): + Rename from floor, ceiling, truncate, and round; the old names conflict with built-in functions. 1993-05-22 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -524,7 +524,7 @@ 1993-05-16 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * texinfo.el (texinfo-chapter-level-regexp): Copied here. + * texinfo.el (texinfo-chapter-level-regexp): Copy here. 1993-05-17 Roland McGrath (roland@geech.gnu.ai.mit.edu) @@ -536,7 +536,7 @@ * gnus.el, gnuspost.el, gnusmail.el, gnusmisc.el, * nntp.el, nnspool.el, mhspool.el: Version 3.15 from Umeda. - * frame.el (toggle-scroll-bar): Renamed from toggle-vertical-scroll... + * frame.el (toggle-scroll-bar): Rename from toggle-vertical-scroll... 1993-05-16 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -623,14 +623,14 @@ * menu-bar.el (menu-bar-mode): New command. Use for initialization. * faces.el (make-face): Add interactive spec. - (set-default-font): Deleted. + (set-default-font): Delete. * isearch.el (isearch-mode-map): Handle any length vector in keymap. (isearch-char-to-string): Handle non-character events properly. 1993-05-14 Jim Blandy (jimb@geech.gnu.ai.mit.edu) - * subr.el (overlay-start, overlay-end, overlay-buffer): Removed. + * subr.el (overlay-start, overlay-end, overlay-buffer): Remove. * vc.el (vc-version-diff): Match parens. @@ -643,26 +643,26 @@ * emerge.el: Installed version 5 from drw. Merged in previous FSF changes, plus new changes: - (emerge-count-matches-string): Renamed from count-matches-string. + (emerge-count-matches-string): Rename from count-matches-string. (emerge-command-prefix): Now C-c C-c. - (emerge-shadow-key-definition): Deleted. + (emerge-shadow-key-definition): Delete. Callers use substitute-key-definition. - (emerge-recursively-substitute-key-definition): Deleted. + (emerge-recursively-substitute-key-definition): Delete. Callers use substitute-key-definition. - (emerge-unselect-hook): Renamed from emerge-unselect-hooks. + (emerge-unselect-hook): Rename from emerge-unselect-hooks. (emerge-files-internal): Use file-local-copy to handle remote files. (emerge-files-with-ancestor-internal): Likewise. - (emerge-remote-file-p): Deleted. + (emerge-remote-file-p): Delete. (emerge-abort): New command. - (describe-mode): Deleted. - (emerge-hash-string-into-string): Renamed from hash-string-into-string. - (emerge-unslashify-name): Renamed from unslashify-name. + (describe-mode): Delete. + (emerge-hash-string-into-string): Rename from hash-string-into-string. + (emerge-unslashify-name): Rename from unslashify-name. (emerge-write-and-delete): Don't write-file if file-out is nil. (emerge-setup-fixed-keymaps): Put emerge-abort on C-]. - (emerge-find-difference-diff): Renamed from emerge-find-difference. + (emerge-find-difference-diff): Rename from emerge-find-difference. (emerge-find-difference): New command. Now on `.'. - (emerge-diff-ok-lines-regexp): Renamed from emerge-diff-ok-lines. - (emerge-diff3-ok-lines-regexp): Renamed from emerge-diff3-ok-lines. + (emerge-diff-ok-lines-regexp): Rename from emerge-diff-ok-lines. + (emerge-diff3-ok-lines-regexp): Rename from emerge-diff3-ok-lines. 1993-05-13 Paul Eggert (eggert@twinsun.com) @@ -877,9 +877,9 @@ * comint.el (comint-previous-matching-input): New command, on M-r. (comint-next-matching-input): New command, on M-s. - (comint-previous-similar-input): Commented out. + (comint-previous-similar-input): Comment out. (comint-next-similar-input): Likewise. - (comint-previous-input-matching): Deleted. + (comint-previous-input-matching): Delete. (comint-last-input-match): Var commented out. (comint-mode): Don't make comint-last-input-match local. @@ -911,8 +911,8 @@ * help.el (help-for-help): Use lower case letters for help options. - * rect.el (string-rectangle): Renamed from fill-rectangle. - (string-rectangle-line): Renamed from fill-rectangle-line. + * rect.el (string-rectangle): Rename from fill-rectangle. + (string-rectangle-line): Rename from fill-rectangle-line. 1993-05-01 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -944,8 +944,8 @@ FORCE argument non-nil, so that we don't get an error if the mark isn't set yet. - * edebug.el (global-edebug-prefix, global-edebug-map): Add - autoload cookies for these, so they are present when Emacs starts + * edebug.el (global-edebug-prefix, global-edebug-map): + Add autoload cookies for these, so they are present when Emacs starts up. * edebug.el (global-edebug-map): Bind `C-x X d' to edebug-defun in @@ -957,7 +957,7 @@ * complete.el: New file. - * vc.el (vc-match-substring): Renamed from match-substring. + * vc.el (vc-match-substring): Rename from match-substring. (vc-parse-buffer): Use new name. * shell.el (shell-prompt-pattern): Undo last change. @@ -965,7 +965,7 @@ * files.el (file-truename): Redo esr's change. * loaddefs.el: Put arrow key bindings back to the ordinary Emacs cmds. - * simple.el (up-arrow, down-arrow, left-arrow, right-arrow): Deleted. + * simple.el (up-arrow, down-arrow, left-arrow, right-arrow): Delete. * simple.el (kill-line, next-line-add-newlines): Doc fix. (kill-whole-line): Doc fix. @@ -1089,42 +1089,42 @@ * gud.el: Set no-byte-compile local variable t to work around a byte-compiler bug. - (gud-def, global-map): Move C-x C-a commands to global map. Restore - original C-x SPC global binding. + (gud-def, global-map): Move C-x C-a commands to global map. + Restore original C-x SPC global binding. * vc.el (vc-diff): Get proper error message when you run this with no prefix arg on an empty buffer. (vc-directory): Better directory format --- replace the user and group IDs with locking-user (if any). - (vc-finish-logentry, vc-next-comment, vc-previous-comment): Replace - *VC-comment-buffer* with a ring vector. + (vc-finish-logentry, vc-next-comment, vc-previous-comment): + Replace *VC-comment-buffer* with a ring vector. 1993-04-25 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) - * simple.el (down-arrow): New function. Uses - next-line-add-newlines to suppress addition of new lines at end of + * simple.el (down-arrow): New function. + Uses next-line-add-newlines to suppress addition of new lines at end of buffer. (up-arrow): Alias of previous-line, added for consistency. These changes complete terminal-type-independent support for arrow keys. - * tex-mode.el (tex-compilation-parse-errors): Added. At the + * tex-mode.el (tex-compilation-parse-errors): Add. At the moment, this would have to be applied manually. It's not worth trying to integrate this with the rest of the mode more tightly until we decide whether and how compile's interface is going to change away from a closed subsystem. - * files.el (cd): Changed to use to resolve relative cd calls. - (cd-absolute): Added. This is actually the old cd code with a + * files.el (cd): Change to use to resolve relative cd calls. + (cd-absolute): Add. This is actually the old cd code with a changed doc string. - (parse-colon-path): Added. Path-to-string exploder --- may be + (parse-colon-path): Add. Path-to-string exploder --- may be useful elsewhere. * ring.el: Added and fixed documentation. (ring-rotate): Nuked. It was (a) unused, and (b) totally broken (as in, any attempt to use it died with a type error, and when I patched it to fix that I found its algorithm was broken). - (ring-ref): Added doc string. + (ring-ref): Add doc string. 1993-04-25 Jim Blandy (jimb@totoro.cs.oberlin.edu) @@ -1144,7 +1144,7 @@ 1993-04-23 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) - * bytecomp.el (define-function): Changed name back to defaliases + * bytecomp.el (define-function): Change name back to defaliases to get things in a known-good state. The unload patch had been half-applied, leading to lossage. @@ -1158,7 +1158,7 @@ * telnet.el: Commentary added. (telnet): Doc fix. - (rsh): Added entry point for rsh to remote host, per suggestion by + (rsh): Add entry point for rsh to remote host, per suggestion by Michael McNamara . No change to any other code. * info.el (Info-find-node, Info-insert-subfile): Do the right @@ -1166,15 +1166,15 @@ saving me lots of disk space. * simple.el: All fsets changed to defaliases. - (kill-forward-chars, kill-backward-chars): Deleted. These were + (kill-forward-chars, kill-backward-chars): Delete. These were internal subroutines used by delete-char and delete-backward-char before those functions were moved into the C kernel. Now nothing uses them. - (kill-line): Added kill-whole-line variable. Defaults to nil; a + (kill-line): Add kill-whole-line variable. Defaults to nil; a non-nil value causes a kill-line at the beginning of a line to kill the newline as well as the line. I find it very convenient. Emulates Unipress' &kill-lines-magic variable. - (next-line): Added next-line-add-newlines variable. If nil, + (next-line): Add next-line-add-newlines variable. If nil, next-line will not insert newlines when invoked at the end of a buffer. This obviates three LCD packages. (left-arrow, right-arrow): New functions. These do backward-char @@ -1182,7 +1182,7 @@ left or right as necessary to make sure point is visible. * loaddefs.el: All fsets changes to defaliases. - (global-map): Changed bindings of [left] and [right] to left-arrow and + (global-map): Change bindings of [left] and [right] to left-arrow and right-arrow respectively. 1993-04-22 Roland McGrath (roland@mole.gnu.ai.mit.edu) @@ -1240,7 +1240,7 @@ 1993-04-16 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) * electric.el (shrink-window-if-larger-than-buffer): - Moved to window.el. + Move to window.el. 1993-04-16 Jim Blandy (jimb@totoro.cs.oberlin.edu) @@ -1267,12 +1267,12 @@ 1993-04-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * resume.el (resume-suspend-hook): Renamed from empty-args-file. + * resume.el (resume-suspend-hook): Rename from empty-args-file. Add autoload cookie. - (resume-emacs-args-buffer): Renamed. - (resume-write-buffer-to-file): Renamed. + (resume-emacs-args-buffer): Rename. + (resume-write-buffer-to-file): Rename. - * two-column.el (tc-dissociate): Renamed from tc-kill-association. + * two-column.el (tc-dissociate): Rename from tc-kill-association. Move binding to C-x 6 d. 1993-04-14 Roland McGrath (roland@churchy.gnu.ai.mit.edu) @@ -1291,7 +1291,7 @@ * gud.el (gud-mode): Created C-c synonym bindings in the GUD buffer's local map. - (gud-key-prefix): Changed to C-x C-a. + (gud-key-prefix): Change to C-x C-a. 1993-04-14 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) @@ -1307,11 +1307,11 @@ ability to browse package commentary sections and a completely point-and-shoot interface similar to Dired's. - * window.el (shrink-window-if-larger-than-buffer): Moved from + * window.el (shrink-window-if-larger-than-buffer): Move from electric.el to windows.el, minor bug fix. This is to avoid code duplication between vc.el, electric.el, and finder.el. - (ctl-x-map): Added C-x - and C-x + as experimental bindings for + (ctl-x-map): Add C-x - and C-x + as experimental bindings for shrink-window-if-larger-than-buffer and balance-windows respectively. Since shrink-window-if-larger-than-buffer has to live here anyhow, let users use it to manage screen space. @@ -1354,7 +1354,7 @@ 1993-04-10 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) - * gud.el (gdb, sdb, dbx): Improved prompting a la grep. + * gud.el (gdb, sdb, dbx): Improve prompting a la grep. * comint.el: Clean up cmu* uses in header comments. @@ -1380,8 +1380,8 @@ 1993-04-09 Jim Blandy (jimb@totoro.cs.oberlin.edu) - * subr.el (overlay-start, overlay-end, overlay-buffer): New - defsubsts. + * subr.el (overlay-start, overlay-end, overlay-buffer): + New defsubsts. * finder.el (finder-by-keyword): Build an alist to pass to completing-read, instead of building an invalid obarray. @@ -1443,7 +1443,7 @@ (compile-internal): Make it the process's filter. * compile.el (compilation-error-regexp-alist): - Fixed MIPS CC regexp to match file + Fix MIPS CC regexp to match file names longer than one char. (compilation-parse-errors): Error if compilation-error-regexp-alist is nil. @@ -1473,7 +1473,7 @@ * compile.el (compilation-filter): New function. (compile-internal): Make it the process's filter. - * compile.el (compilation-error-regexp-alist): Fixed MIPS CC + * compile.el (compilation-error-regexp-alist): Fix MIPS CC regexp to match file names longer than one char. (compilation-parse-errors): Error if compilation-error-regexp-alist is nil. @@ -1492,7 +1492,7 @@ (add-change-log-entry): FILE-NAME frobnicating code moved there; call it. * vc.el (vc-comment-to-change-log): - Renamed from vc-comment-to-changelog. + Rename from vc-comment-to-changelog. Take optional arg and pass it to find-change-log. Added docstring and interactive spec. @@ -1505,7 +1505,7 @@ Apollo cc regexp: make "s optional, and don't anchor to bol. * compile.el (compilation-error-regexp-alist): - Changed MIPS RISC CC regexp (last one) to + Change MIPS RISC CC regexp (last one) to be anchored at bol, and to never match multiple lines. 1993-04-03 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) @@ -1528,7 +1528,7 @@ * mpuz.el (mpuz-try-letter): Use read-char to read digit. Use message directly also. Use downcase. - (mpuz-read-map): Deleted. + (mpuz-read-map): Delete. * dired.el (dired-unmark-all-files): Read the arg as just a char. @@ -1614,7 +1614,7 @@ 1993-03-29 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) * vc.el (vc-next-action, vc-print-log, vc-diff, vc-revert-buffer): - Improved logic for parent buffer finding. + Improve logic for parent buffer finding. (vc-cancel-version): Bug fix. @@ -1627,7 +1627,7 @@ * fill.el (fill-individual-paragraphs): When skipping mail headers, skip to a blank line. - * env.el (setenv): Renamed back from putenv. + * env.el (setenv): Rename back from putenv. * replace.el (regexp-history): New history list. (occur, flush-lines, keep-lines, how-many): Use it. @@ -1638,7 +1638,7 @@ 1993-03-28 Noah Friedman (friedman@splode.com) * setenv.el: Renamed to env.el. Provide `env', not `setenv'. - (setenv): Renamed to `putenv', which is the more proper complement + (setenv): Rename to `putenv', which is the more proper complement of `getenv'. `setenv' retained as an alias. Make VALUE parameter optional; if not set, remove VARIABLE from process-environment. @@ -1664,10 +1664,10 @@ * makefile.el: Added autoload cookie for entry point. - * files.el (auto-mode-alist): Added pairs for .ms, .man, .mk, + * files.el (auto-mode-alist): Add pairs for .ms, .man, .mk, [Mm]akefile, .lex. - * electric.el (shrink-window-if-larger-than-buffer): Added doc + * electric.el (shrink-window-if-larger-than-buffer): Add doc string. Made argument optional, because window-buffer does the right thing with nil. @@ -1691,8 +1691,8 @@ * rlogin.el: Updated copyright year and added autoload cookies. (rlogin): Set process marker to beginning of buffer. - (rlogin-filter): Use unwind-protect to restore match-data. Use - insert-before-markers instead of insert to keep input and output + (rlogin-filter): Use unwind-protect to restore match-data. + Use insert-before-markers instead of insert to keep input and output from getting garbled. Delete spurious ?\C-m chars in output instead of replacing them with ?\ . @@ -1710,26 +1710,26 @@ 1993-03-27 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) - * lpr.el (printify-buffer): Added, debugged from Roland McGrath's + * lpr.el (printify-buffer): Add, debugged from Roland McGrath's printify-buffer code in LCD. - * cookie.el (cookie): Enhanced it to handle both LINS files and + * cookie.el (cookie): Enhance it to handle both LINS files and UNIX fortune files. - * rect.el (fill-rectangle): Added. Inspired by Lynn Slater's + * rect.el (fill-rectangle): Add. Inspired by Lynn Slater's insert-box package in LCD, but the interface and implementation are different. - * loaddefs.el (ctl-x-map): Added binding for fill-rectangle. + * loaddefs.el (ctl-x-map): Add binding for fill-rectangle. - * buff-menu.el (Buffer-menu-toggle-read-only): Added, per Rob + * buff-menu.el (Buffer-menu-toggle-read-only): Add, per Rob Austein's suggestion in the LCD package bm-toggle.el. - * subr.el (add-hook): Added optional arg to cause hook to be + * subr.el (add-hook): Add optional arg to cause hook to be appended rather than prepended to the hook list. This obviates the 23 different hook-bashing packages in LCD. - * subr.el (current-word): Added. Lots of help and default-generator + * subr.el (current-word): Add. Lots of help and default-generator functions in LCD use it, and it's remarkably difficult to get right, especially given the new syntax primitives. @@ -1741,8 +1741,8 @@ 1993-03-26 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) - * yow.el (psychoanalyze-pinhead): Needed a prefrontal lobotomy. I - gave it one. + * yow.el (psychoanalyze-pinhead): Needed a prefrontal lobotomy. + I gave it one. * two-column.el: Added Commentary. @@ -1754,13 +1754,13 @@ 1993-03-25 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) - * lisp-mnt.el (lm-last-modified-date): Fixed return bug. + * lisp-mnt.el (lm-last-modified-date): Fix return bug. (lm-author, lm-maintainer): These now return cons pairs, not strings. * shell.el: Brent Benson's patch to support `cd -'. - * mh-e.el (mh-unshar): Added. + * mh-e.el (mh-unshar): Add. * emacsbug.el: Added a (provide 'emacsbug); lisp-mnt.el needs this. @@ -1873,8 +1873,8 @@ * time.el (display-time): Doc fix. - * isearch.el (isearch-switch-frame-handler): Call - handle-switch-frame instead of select-frame; it has been renamed. + * isearch.el (isearch-switch-frame-handler): + Call handle-switch-frame instead of select-frame; it has been renamed. * simple.el (comment-indent-function): New variable, intended to replace comment-indent-hook. @@ -1930,7 +1930,7 @@ 1993-03-18 Richard Stallman (rms@geech.gnu.ai.mit.edu) - * frame.el (make-frame): Renamed from new-frame. + * frame.el (make-frame): Rename from new-frame. (new-frame): Alias for make-frame. 1993-03-18 Edward M. Reingold (reingold@emr.cs.uiuc.edu) @@ -2048,8 +2048,8 @@ 1993-03-14 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - * sort.el (sort-float-fields, sort-numeric-fields): Use - string-to-number, not string-to-float or string-to-int. + * sort.el (sort-float-fields, sort-numeric-fields): + Use string-to-number, not string-to-float or string-to-int. * sort.el (sort-float-fields): Make this autoloaded. @@ -2080,7 +2080,7 @@ 1993-03-12 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) - * loaddefs.el (global-map): Fixed a typo in the binding of + * loaddefs.el (global-map): Fix a typo in the binding of [kp-backtab]. * term/x-win.el: Added library headers back in. Didn't touch @@ -2122,8 +2122,8 @@ and featureful interface across many different keyboard types. * loaddefs.el (global-map): Natural default keybindings set up for - almost all supported keysyms other than function keys. All - other keysyms are now default-bound to a function which explains + almost all supported keysyms other than function keys. + All other keysyms are now default-bound to a function which explains that the key is not bound to anything, then raises an error. * term/README: Terminal package conventions and standard keysym @@ -2144,8 +2144,8 @@ * term/news.el: Cleaned up, headers added. - * term/sun.el: Headers added, [again] changed to [redo]. This - package is a hairball and should probably be scrapped if we + * term/sun.el: Headers added, [again] changed to [redo]. + This package is a hairball and should probably be scrapped if we can find or built a better one. * term/tvi970.el: Headers added, [enter] changed to [kp-enter]. @@ -2170,7 +2170,7 @@ * help.el: Added binding and menu line for new `P' package-finder command. Won't actually take effect till the next Emacs build. - * vc.el (vc-backend-checkin): Fixed bizarre POM-dependent bug + * vc.el (vc-backend-checkin): Fix bizarre POM-dependent bug introduced into VC by a bad patch. This was one for the books....badly corrupted vc-checkin code somehow mostly functioned for three days. The Code That Would Not Die... @@ -2252,7 +2252,7 @@ 1993-03-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) * subr.el (posn-timestamp, posn-col-row, posn-point, posn-window) - (event-end, event-start, mouse-movement-p): Moved from mouse.el. + (event-end, event-start, mouse-movement-p): Move from mouse.el. * mouse.el: Functions moved to subr.el. 1993-03-07 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -2363,7 +2363,7 @@ 1993-03-05 Richard Stallman (rms@mole.gnu.ai.mit.edu) * disp-table.el: Add autoload comments. - (rope-to-vector): Deleted. + (rope-to-vector): Delete. (describe-display-table): Don't use rope-to-vector. * compare-w.el (compare-windows): Use compare-buffer-substrings. @@ -2424,7 +2424,7 @@ (rmail-undelete-previous-message, rmail-delete-forward) (rmail-get-new-mail, rmail-show-message): Update summary buffer if any. Call rmail-maybe-display-summary to put it back on screen. - (rmail-only-expunge): Renamed from rmail-expunge. + (rmail-only-expunge): Rename from rmail-expunge. (rmail-expunge): New function. (rmail-message-recipients-p, rmail-message-regexp-p): New functions. (rmail-summary-exists, rmail-summary-displayed): New functions. @@ -2470,7 +2470,7 @@ 1993-03-01 Richard Stallman (rms@mole.gnu.ai.mit.edu) * frame.el: Doc fixes. - (set-pointer-color): Renamed to set-mouse-color. + (set-pointer-color): Rename to set-mouse-color. (set-border-color): New function. * info.el (Info-insert-dir): Make menu items in Top node @@ -2510,8 +2510,8 @@ 1993-02-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * frame.el (auto-raise-mode): Renamed from toggle-auto-raise. - (auto-lower-mode): Renamed from toggle-auto-lower. + * frame.el (auto-raise-mode): Rename from toggle-auto-raise. + (auto-lower-mode): Rename from toggle-auto-lower. 1993-02-26 Jim Blandy (jimb@totoro.cs.oberlin.edu) @@ -2550,8 +2550,8 @@ * gud.el (gud-break): With a prefix argument, set a temporary breakpoint. - (gud-apply-from-source): New argument ARGS, to pass to FUNC. Now - it's really like `apply'. + (gud-apply-from-source): New argument ARGS, to pass to FUNC. + Now it's really like `apply'. (gud-set-break): Add another argument to this method. Document it in the section describing how the methods are supposed to be used. @@ -2614,11 +2614,11 @@ * frame.el (frame-initialize): Fix error syntax. (toggle-horizontal-scroll-bar): Likewise. - (toggle-horizontal-scroll-bar): Renamed from set-horizontal-bar. + (toggle-horizontal-scroll-bar): Rename from set-horizontal-bar. (toggle-vertical-scroll-bar): Likewise. (toggle-auto-lower, toggle-auto-raise): Likewise. (set-foreground-color, set-background-color): - Renamed from set-frame-{fore,back}ground. + Rename from set-frame-{fore,back}ground. 1993-02-15 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) @@ -2674,7 +2674,7 @@ 1993-02-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * flow-ctrl.el (enable-flow-control...): Renamed from evade... + * flow-ctrl.el (enable-flow-control...): Rename from evade... (enable-flow-control): Add autoload. 1993-02-10 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -2691,7 +2691,7 @@ * fortran.el (fortran-prepare-abbrev-list-buffer): Put quote in front of first argument to `insert-abbrev-table-description'. - * fortran.el (fortran-is-in-string-p): Fixed incorrect behavior + * fortran.el (fortran-is-in-string-p): Fix incorrect behavior when in first statement of a buffer. 1993-02-08 Roland McGrath (roland@geech.gnu.ai.mit.edu) @@ -2737,7 +2737,7 @@ 1993-02-05 Roland McGrath (roland@geech.gnu.ai.mit.edu) - * comint.el (make-comint): Added docstring. + * comint.el (make-comint): Add docstring. 1993-02-05 Roland McGrath (roland@geech.gnu.ai.mit.edu) @@ -2766,7 +2766,7 @@ 1993-01-31 Roland McGrath (roland@geech.gnu.ai.mit.edu) * mailabbrev.el (mail-abbrev-end-of-buffer): - Changed interactive spec from "P" to "p". + Change interactive spec from "P" to "p". 1993-01-29 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -2789,7 +2789,7 @@ x-own-selection has been renamed to x-set-selection, and the order of its arguments has been reversed, for consistency with other lisp functions like put and aset. - * term/x-win.el (x-select-text): Adjusted. + * term/x-win.el (x-select-text): Adjust. (x-cut-buffer-or-selection-value): Check the primary selection, using x-selection, instead of checking the cut buffer again. @@ -2804,7 +2804,7 @@ x-own-selection has been renamed to x-set-selection, and the order of its arguments has been reversed, for consistency with other lisp functions like put and aset. - * term/x-win.el (x-select-text): Adjusted. + * term/x-win.el (x-select-text): Adjust. (x-cut-buffer-or-selection-value): Check the primary selection, using x-selection, instead of checking the cut buffer again. @@ -3070,13 +3070,13 @@ * etags.el: Many comments added and docstrings fixed. (tags-table-list): Elt of nil is not special. (tags-expand-table-name): Value of nil is not special. - (tags-next-table): Removed arg RESET; no caller used it. + (tags-next-table): Remove arg RESET; no caller used it. (visit-tags-table-buffer): Don't need to do tags-expand-table-name in or form. When table is invalid, only set tags-file-name to nil globally if its global value contained the losing table file name. (find-tag-tag): Return a string, not a list. (find-tag-noselect, find-tag, find-tag-other-window) - (find-tag-other-frame): Changed callers. + (find-tag-other-frame): Change callers. (etags-recognize-tags-table): Call etags-verify-tags-table, rather than duplicating its functionality. (visit-tags-table-buffer): When CONT is 'same, set it to nil after the @@ -3153,7 +3153,7 @@ 1992-12-09 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) - * info.el (Info-{first,second,third,fourth,fifth}-menu-item): Removed. + * info.el (Info-{first,second,third,fourth,fifth}-menu-item): Remove. (Info-nth-menu-item): New function; bound to 1..9. 1992-12-08 Jim Blandy (jimb@totoro.cs.oberlin.edu) @@ -3167,8 +3167,8 @@ Just that. * ls-lisp.el (insert-directory): Just that. - * ange-ftp.el (ange-ftp-unhandled-file-name-directory): New - function. Set ange-ftp's `unhandled-file-name-property' to its + * ange-ftp.el (ange-ftp-unhandled-file-name-directory): + New function. Set ange-ftp's `unhandled-file-name-property' to its name. 1992-12-07 Jim Blandy (jimb@totoro.cs.oberlin.edu) @@ -3238,7 +3238,7 @@ * paths.el (rmail-spool-directory): Add dgux-unix to the list of systems which put their mail in "/usr/mail". - * lpr.el (lpr-command, lpr-switches): Removed strings starting + * lpr.el (lpr-command, lpr-switches): Remove strings starting with \newline; this file is loaded in loaddefs.el, and doesn't need to follow that convention. @@ -3351,8 +3351,8 @@ * fortran.el: Version 1.28.7a. Cleaned up some doc strings. - (fortran-abbrev-help, fortran-prepare-abbrev-list-buffer): Use - `insert-abbrev-table-description' and make buffer in abbrevs-mode. + (fortran-abbrev-help, fortran-prepare-abbrev-list-buffer): + Use `insert-abbrev-table-description' and make buffer in abbrevs-mode. * fortran.el: Version 1.28.7. Many changes since version 1.28.3. Added auto-fill-mode, support @@ -3366,7 +3366,7 @@ New functions to implement auto fill. (fortran-indent-line, fortran-reindent-then-newline-and-indent): - Added auto fill support. + Add auto fill support. (find-comment-start-skip, is-in-fortran-string-p): New functions. @@ -3376,7 +3376,7 @@ (fortran-indent-to-column): Use find-comment-start-skip instead of searching for `comment-start-skip'. - (fortran-mode, calculate-fortran-indent): Added indentation + (fortran-mode, calculate-fortran-indent): Add indentation for fortran 90 statements. (fortran-next-statement, fortran-previous-statement): Bug fixes. @@ -3431,7 +3431,7 @@ 1992-10-31 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * files.el (make-directory): Renamed from make-directory-path. + * files.el (make-directory): Rename from make-directory-path. Optional argument says whether to create parent dirs. Invoke file-name handler here. (after-find-file): Delete code that offers to create dir. @@ -3469,7 +3469,7 @@ * info.el: Rename buffer-flush-undo to buffer-disable-undo. (Info-goto-emacs-key-command-node): Fix typo. - (Info-menu-item-sequence): Commented out. + (Info-menu-item-sequence): Comment out. (Info-follow-nearest-node): Use new event format. Select the window clicked on. @@ -3561,9 +3561,9 @@ * mailabbrev.el: Delete version 18 compatibility stuff. (mail-abbrevs, build-mail-abbrevs, rebuild-mail-abbrevs) - (merge-mail-abbrevs): Renamed `mail-aliases' to `mail-abbrevs'. - (mail-abbrev-end-of-buffer): Renamed from abbrev-hacking-end-of-buffer. - (mail-abbrev-next-line): Renamed from abbrev-hacking-next-line. + (merge-mail-abbrevs): Rename `mail-aliases' to `mail-abbrevs'. + (mail-abbrev-end-of-buffer): Rename from abbrev-hacking-end-of-buffer. + (mail-abbrev-next-line): Rename from abbrev-hacking-next-line. * isearch-mode.el (isearch-mode-map): Use sparse keymaps. Start printing-char loop at SPC. @@ -3729,7 +3729,7 @@ 1992-10-05 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * ls-lisp.el (insert-directory): Renamed from dired-ls. + * ls-lisp.el (insert-directory): Rename from dired-ls. All other functions renamed to start with ls-lisp. * ls-lisp.el: New file from Kremer. @@ -3748,7 +3748,7 @@ * mouse.el: Begin adapting this to the new event format. (event-window, event-point, mouse-coords, mouse-timestamp): - Removed. + Remove. (event-start, event-end, posn-window, posn-point, posn-col-row) (posn-timestamp): New accessors; these are defsubsts. (mouse-delete-window, mouse-delete-other-windows) @@ -3783,7 +3783,7 @@ 1992-09-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - * gud.el (gud-last-frame): Added defvar for this. + * gud.el (gud-last-frame): Add defvar for this. 1992-09-29 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -3814,8 +3814,8 @@ Use x-get-cut-buffer and x-set-cut-buffer, instead of expecting x-selection-value to manipulate the cut buffers. - * term/x-win.el (x-cut-buffer-or-selection-value): Treat - selections whose value is the empty string like unset selections. + * term/x-win.el (x-cut-buffer-or-selection-value): + Treat selections whose value is the empty string like unset selections. This allows us to truncate cut buffers to the empty string (if the text is too large, say) without causing interprogram-paste-function to wipe out the latest kill. @@ -3841,13 +3841,13 @@ latter doesn't exist. (gud-dbx-debugger-setup): Use the argument `f', not the variable `file', which happens to be bound in the caller. - (gud-filter-insert): The variable `start' is never used. The - variable `moving' is unnecessary. The variable `old-buffer' and + (gud-filter-insert): The variable `start' is never used. + The variable `moving' is unnecessary. The variable `old-buffer' and the unwind-protect form are unneeded, since save-excursion can do their work. The binding of output-after-point should be done after switching to the process's buffer, not in whatever random buffer - happens to be current when the process filter is called. There's - no need to set the process mark if we've just inserted at its + happens to be current when the process filter is called. + There's no need to set the process mark if we've just inserted at its location using insert-before-markers. (gud-read-address): Don't bother setting the variable `result'; it is never used. @@ -3920,8 +3920,8 @@ * two-column.el (tc-window-width, tc-separator, tc-other): Add permanent-local property. - (tc-two-columns): Renamed from tc-split. - (tc-split): Renamed from tc-unmerge. Put it on C-x 6 s. + (tc-two-columns): Rename from tc-split. + (tc-split): Rename from tc-unmerge. Put it on C-x 6 s. Use make-local-variable on tc-separator. * spook.el (spook): Make it autoload. @@ -3929,7 +3929,7 @@ * gomoku.el (gomoku): Make it autoload. * mpuz.el: Fix setup of mpuz-read-map not to depend on keymap format. - (mpuz): Renamed from mult-puzzle. Make it autoload. + (mpuz): Rename from mult-puzzle. Make it autoload. * setenv.el (setenv): Doc fix. Make it autoload. @@ -3969,9 +3969,9 @@ * texinfo.el (texinfo-mode): Capitalize the mode name string. - * mail-extr.el (mail-undo-backslash-quoting): Renamed from undo-... - (mail-safe-move-sexp): Renamed from safe-... - (mail-variant-method): Renamed from variant-method. + * mail-extr.el (mail-undo-backslash-quoting): Rename from undo-... + (mail-safe-move-sexp): Rename from safe-... + (mail-variant-method): Rename from variant-method. * tq.el: Doc fixes. Make tq-create autoload. @@ -3994,7 +3994,7 @@ * prompt.el: File deleted. - * find-dired.el (start-process-shell-command): Deleted. + * find-dired.el (start-process-shell-command): Delete. * diff.el (diff-switches): Default is now -c. (diff-parse-differences): Use line beg as location of message. @@ -4028,7 +4028,7 @@ (search-last-string, search-last-regexp): Vars deleted. (search-highlight): No longer a user option. - * subr.el (baud-rate): Defined. + * subr.el (baud-rate): Define. (substitute-key-definition): Understand today's keymap format. New arg OLDMAP. Operate recursively on prefix keys. @@ -4060,7 +4060,7 @@ 1992-09-16 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) - * isearch-mode.el (isearch-ring-advance-edit): Added missing + * isearch-mode.el (isearch-ring-advance-edit): Add missing closing paren to end of this function. 1992-09-16 Roland McGrath (roland@geech.gnu.ai.mit.edu) @@ -4087,7 +4087,7 @@ * simple.el (previous-history-element): Doc fix. * isearch-mode.el (isearch-event-data-type): - Renamed from isearch-events-exist. + Rename from isearch-events-exist. (isearch-frames-exist): Set properly in Emacs 18. (isearch-mode): Use baud-rate as variable, not function. (isearch-abort): Use nil as 2nd arg to `signal'. @@ -4137,8 +4137,8 @@ Don't try using length of keymap. (isearch-update): Handle unread-command-char properly for Emacs 19. (isearch-switch-frame-handler): Use select-frame to switch frames. - (isearch-pre-command-hook): Commented out. - (search-upper-case): Renamed from search-caps-disable-folding. + (isearch-pre-command-hook): Comment out. + (search-upper-case): Rename from search-caps-disable-folding. 1992-09-14 Roland McGrath (roland@geech.gnu.ai.mit.edu) @@ -4240,7 +4240,7 @@ * dired-aux.el (dired-add-entry, dired-insert-subdir-doinsert): Use insert-directory. * dired.el (dired-readin-insert): Use insert-directory. - (dired-ls, dired-ls-program): Deleted. + (dired-ls, dired-ls-program): Delete. 1992-09-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -4264,7 +4264,7 @@ * term/x-win.el (scroll-bar-mode): New function (and variable too). - * dired.el (dired-next-subdir, dired-subdir-index): Moved here + * dired.el (dired-next-subdir, dired-subdir-index): Move here * dired-aux.el: From here. * dired.el (dired-build-subdir-alist): Don't print msg after each dir. Clarify final message. @@ -4296,7 +4296,7 @@ 1992-09-08 Joseph Arceneaux (jla@geech.gnu.ai.mit.edu) - * mailabbrev.el (sendmail-pre-abbrev-expand-hook): Changed the + * mailabbrev.el (sendmail-pre-abbrev-expand-hook): Change the structure of this function: don't check to call mail-resolve-all-aliases unless we are actually in a header field where an abbrev should be expanded. @@ -4345,7 +4345,7 @@ 1992-09-02 Jim Blandy (jimb@pogo.cs.oberlin.edu) - * c-mode.el (c-auto-newline): Added backslashed before quotes in + * c-mode.el (c-auto-newline): Add backslashed before quotes in docstring. 1992-09-01 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -4446,7 +4446,7 @@ (mail-signature-file): This, since this is the way all the other lisp packages do it, and it's how people always say they want it on the mailing lists. - (mail-setup, mail-signature): Adjusted accordingly. + (mail-setup, mail-signature): Adjust accordingly. (mail): Doc fix. 1992-08-17 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -4544,9 +4544,9 @@ * calendar.el (calendar-interval): Fix doc string. - * calendar.el (calendar): Changed use of prefix arg--now it causes + * calendar.el (calendar): Change use of prefix arg--now it causes prompting for the month and year. - (regenerate-calendar-window): Renamed generate-calendar-window. + (regenerate-calendar-window): Rename generate-calendar-window. Changed optional argument from an offset from the current month to a month, year pair. (redraw-calendar, calendar-current-month, scroll-calendar-left) @@ -4562,7 +4562,7 @@ 1992-08-08 Jim Blandy (jimb@pogo.cs.oberlin.edu) - * frame.el (set-screen-width, set-screen-height): Changed these + * frame.el (set-screen-width, set-screen-height): Change these from fset aliases to actual functions, since they aren't supposed to take a frame argument, while set-frame-{width,height} do. @@ -4595,8 +4595,8 @@ * appt.el (appt-issue-message, appt-message-warning-time) (appt-audible, appt-visible, appt-display-mode-line) - (appt-msg-window, appt-display-duration, appt-display-diary): Added - ;;;###autoload cookies for these variables, since they are options + (appt-msg-window, appt-display-duration, appt-display-diary): + Add ;;;###autoload cookies for these variables, since they are options for the user to set. * tex-mode.el (tex-shell-file-name, tex-directory, tex-offer-save) (tex-run-command, latex-run-command, latex-block-names) @@ -4610,29 +4610,29 @@ * add-log.el (add-log-current-defun): Use eq instead of = when one side might be nil. - * compile.el (compilation-mode-map): Change - compilation-previous/next-file bindings to M-{ and M-}. + * compile.el (compilation-mode-map): + Change compilation-previous/next-file bindings to M-{ and M-}. 1992-08-05 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) * cl.el (*cl-valid-named-list-accessors*, *cl-valid-nth-offsets*) - (byte-compile-named-accessors): Deleted. + (byte-compile-named-accessors): Delete. (first, second, ... tenth, rest): Define these with defsubst, to get the same effect. - (byte-compile-ca*d*r): Deleted. + (byte-compile-ca*d*r): Delete. (caar, cadr, ..., cddddr): Define these using defsubst. Installed changes from Zawinski-Furuseth 2.04 to 2.07: * byte-run.el (dont-compile): Doc fix. (make-obsolete-variable): New function. - * bytecomp.el (byte-compile-log-1): Added new optional argument, + * bytecomp.el (byte-compile-log-1): Add new optional argument, FILL; if it is non-nil, reformat the error message. (byte-compile-warn): Use that flag. (byte-recompile-directory): Offer to recompile subdirectories. If prefix argument is zero, create .elc files for those .el files which lack them, without asking. - (byte-compile-output-form, byte-compile-output-docform): Disable - print-gensym while writing the form. + (byte-compile-output-form, byte-compile-output-docform): + Disable print-gensym while writing the form. (byte-compile-form): Warn if t or nil are called as functions. (byte-compile-variable-ref): Check for, and warn about, obsolete variable uses. @@ -4649,7 +4649,7 @@ * inf-lisp.el (inferior-lisp-filter-regexp, inferior-lisp-program) (inferior-lisp-load-command, inferior-lisp-prompt) - (inferior-lisp-mode-hook, inferior-lisp): Added ;;;###autoload + (inferior-lisp-mode-hook, inferior-lisp): Add ;;;###autoload cookies for these. * bytecomp.el (byte-compile-warnings): When choosing the default @@ -4685,8 +4685,8 @@ * info.el (Info-mode): scroll-up, scroll-down now do the right thing for preorder browsing when the beginning/end of the node - is visible. RET now goes to the next preorder node. These - changes make sequential reading of info subtrees easier. + is visible. RET now goes to the next preorder node. + These changes make sequential reading of info subtrees easier. 1992-08-04 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) @@ -4698,7 +4698,7 @@ * vc.el (vc-next-action, vc-register, vc-diff, vc-insert-headers) (vc-directory, vc-create-snapshot, vc-retrieve-snapshot) (vc-print-log, vc-revert-buffer, vc-cancel-version) - (vc-update-change-log): Added the ;;;###autoload cookies to these + (vc-update-change-log): Add the ;;;###autoload cookies to these functions, since they get bound to keys in the global keymap. * loadup.el: Load vc-hooks.el. @@ -4773,7 +4773,7 @@ (medit-zap-define-to-mdl): Change `medit-save-defun' to `medit-save-define'. (medit-save-region, medit-save-buffer, medit-zap-define-to-mdl): - Changed `medit-go-to-mdl' to `medit-goto-mdl'. Did anyone ever + Change `medit-go-to-mdl' to `medit-goto-mdl'. Did anyone ever try this code? 1992-08-02 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -4805,13 +4805,13 @@ (dired-create-files, dired-handle-overwrite): Rename overwrite-confirmed to dired-overwrite-confirmed. (dired-do-kill-lines): Handle prefix arg as number of lines to kill. - (dired-kill-line-or-subdir): Deleted. + (dired-kill-line-or-subdir): Delete. 1992-08-01 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - * mailabbrev.el [from jwz] (mail-interactive-insert-alias): Do - mail-aliases-setup if necessary before completing for interactive. - (build-mail-aliases): Changed parsing regexp. + * mailabbrev.el [from jwz] (mail-interactive-insert-alias): + Do mail-aliases-setup if necessary before completing for interactive. + (build-mail-aliases): Change parsing regexp. * compile.el (compilation-parse-errors): Take 2nd arg FIND-AT-LEAST. If non-nil, stop after parsing that many new errors. @@ -4826,7 +4826,7 @@ * comint.el: ring-* functions deleted--get them from ring.el. - * ring.el (ring-mod): Renamed from comint-mod. + * ring.el (ring-mod): Rename from comint-mod. Provide `ring', not history'. (make-ring, ring-p): Add autoloads. * history.el: Link deleted. @@ -4846,7 +4846,7 @@ Use buffer-disable-undo instead of buffer-flush-undo; the latter is obsolete. - * lpr.el (print-region-new-buffer): Added arguments START and END; + * lpr.el (print-region-new-buffer): Add arguments START and END; this used to use dynamic scope, but it makes things less readable. (print-region-1): Always call this with two arguments, not sometimes two and sometimes none. @@ -4877,7 +4877,7 @@ * hideif.el (hif-endif-to-ifdef): Fix munged comment which was interfering with parsing. - * hexl.el (hexl-next-line): Fixed up malformed let binding. + * hexl.el (hexl-next-line): Fix up malformed let binding. * bytecomp.el (byte-compile-file): Catch errors that occur during compilation, and record them in the compilation log. This allows @@ -5042,10 +5042,10 @@ 1992-07-28 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * files.el (backup-extract-version): Copied from Emacs 18. + * files.el (backup-extract-version): Copy from Emacs 18. (find-backup-file-name): Use that. - * dired-aux.el (dired-clean-directory): Moved here. + * dired-aux.el (dired-clean-directory): Move here. (dired-map-dired-file-lines, dired-collect-file-versions) (dired-trample-file-versions): Likewise. * dired.el: Moved from here. @@ -5070,7 +5070,7 @@ * compile.el (compile-goto-error): Doc fix. - * etags.el (find-tag): Fixed prompt. + * etags.el (find-tag): Fix prompt. (tag-exact-match-p): Rewritten (again). * startup.el (command-line): Load site-start here. @@ -5082,7 +5082,7 @@ * completion.el: Moved to external-lisp. - * diff.el (diff-rcs, diff-sccs): Deleted. + * diff.el (diff-rcs, diff-sccs): Delete. 1992-07-27 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) @@ -5127,9 +5127,9 @@ 1992-07-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) * diff.el (diff-backup): New function. - (diff-last-backup-file): Renamed from dired-last-backup-file. + (diff-last-backup-file): Rename from dired-last-backup-file. * dired-aux.el (dired-backup-diff): Use diff-backup. - (dired-last-backup-file): Moved and renamed. + (dired-last-backup-file): Move and renamed. * dired.el, dired-aux.el (dired-diff, dired-backup-diff): Doc fixes. * help.el (command-apropos): Fix call to apropos for new arg. @@ -5185,9 +5185,9 @@ * replace.el (perform-replace): Fix typo: match-after => match-again. (map-query-replace-regexp): Delete duplicate definition. - * subr.el (defun-inline): Commented out. + * subr.el (defun-inline): Comment out. - * comint.el (comint-input-ring*): Renamed from input-ring*. + * comint.el (comint-input-ring*): Rename from input-ring*. (ring-remove, ring-rotate): Use setcar, not set-car. * co-isearch.el: input-ring* renamed to comint-input-ring*. @@ -5227,7 +5227,7 @@ 1992-07-22 Richard Stallman (rms@mole.gnu.ai.mit.edu) * emerge.el (emerge-startup-hook, emerge-quit-hook): - Renamed from ...-hooks. + Rename from ...-hooks. * dired.el (dired-display-file): New command, on C-o. @@ -5282,15 +5282,15 @@ * c-mode.el (c-backslash-region): New command. (c-append-backslash, c-delete-backslash): New functions. * c++-mode.el (c++-macroize-region, backslashify-current-line): - Deleted. - (c++-comment-region, c++-uncomment-region): Deleted. + Delete. + (c++-comment-region, c++-uncomment-region): Delete. comment-region works just fine. - (c++-beginning-of-defun, c++-end-defun, c++-indent-defun): Deleted. - (c++-point-bol): Renamed from point-bol. - (c++-within-string-p): Renamed from within-string-p. - (c++-count-char-in-string): Renamed from count-char-in-string. - (fill-c++-comment): Renamed from fill-C-comment. - (c++-insert-header): Deleted. + (c++-beginning-of-defun, c++-end-defun, c++-indent-defun): Delete. + (c++-point-bol): Rename from point-bol. + (c++-within-string-p): Rename from within-string-p. + (c++-count-char-in-string): Rename from count-char-in-string. + (fill-c++-comment): Rename from fill-C-comment. + (c++-insert-header): Delete. 1992-07-21 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) @@ -5329,7 +5329,7 @@ * simple.el (end-of-buffer): If buffer end is on screen, don't scroll. - * c-mode.el (set-c-style): Deleted the first version of this function. + * c-mode.el (set-c-style): Delete the first version of this function. It was badly written. Modified the remaining version by adding new argument GLOBAL and setting the parameters locally if GLOBAL is nil. @@ -5343,7 +5343,7 @@ 1992-07-21 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - * frame.el (get-frame): Renamed to get-other-frame; get-frame + * frame.el (get-frame): Rename to get-other-frame; get-frame sounds like a parallel to get-buffer or get-process. * c-mode.el (set-c-style): Remove the extraneous copy of this @@ -5352,7 +5352,7 @@ * c++-mode.el (within-string-p): Use `%', not `mod', as the name of the modulus function. - * frame.el (frame-height, frame-width): Fixed several confusions + * frame.el (frame-height, frame-width): Fix several confusions here. * blackbox.el: When building blackbox-mode-map, locally rebind all @@ -5384,7 +5384,7 @@ (visit-tags-file): If find-file-noselect changed the file name, propagate the change to tags-file-name and tags-table-list. - * startup.el (command-line): Fixed typo in comment. + * startup.el (command-line): Fix typo in comment. 1992-07-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) @@ -5406,7 +5406,7 @@ (frame-configuration-to-register): New function. * loaddefs.el: Put them on C-x r w, C-x r f. * window.el (window-config-to-register, register-to-window-config): - Deleted, along with keybindings C-x 6 and C-x 7. + Delete, along with keybindings C-x 6 and C-x 7. 1992-07-19 Edward M. Reingold (reingold@emr.cs.uiuc.edu) @@ -5431,7 +5431,7 @@ (calendar-mode-map): Put it on a key. (calendar-mode): Describe it. - * cal-french.el (diary-french-date): Moved from diary.el and fixed + * cal-french.el (diary-french-date): Move from diary.el and fixed accent. * diary.el: Move dairy-french-date to cal-french.el and autoload it. @@ -5469,7 +5469,7 @@ * files.el (auto-mode-alist): Recognize .texi. - * rmail.el (rmail-delete-forward): Removed the feature + * rmail.el (rmail-delete-forward): Remove the feature of moving back if there's nowhere to go forward. 1992-07-17 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) @@ -5519,12 +5519,12 @@ form so that it returns a list containing the filename and the prefix argument, not just the prefix argument by itself. - * bytecomp.el (byte-compile-file): Changed reference to + * bytecomp.el (byte-compile-file): Change reference to byte-compile-report-call-tree to use display-call-tree. * bytecomp.el (byte-recompile-directory, byte-compile-file) (batch-byte-compile, byte-compile, compile-defun) - (display-call-tree): Added autoload cookies for these functions. + (display-call-tree): Add autoload cookies for these functions. 1992-07-16 Roland McGrath (roland@churchy.gnu.ai.mit.edu) @@ -5533,7 +5533,7 @@ 1992-07-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - * byte-run.el (defsubst): Removed extra closing paren at the end + * byte-run.el (defsubst): Remove extra closing paren at the end of this function. 1992-07-16 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) @@ -5567,7 +5567,7 @@ * bytecomp.el: Deleted support for running compiler in Emacs 18. Spell "Emacs 18" properly. (byte-compile-version): FSF 2.1. - (byte-compiler-valid-options): Deleted. + (byte-compiler-valid-options): Delete. (byte-compile-single-version): Always return nil. (byte-compiler-version-cond): Always return the argument. @@ -5588,7 +5588,7 @@ * buff-menu.el, bg-mouse.el, appt.el, abbrevlist.el, term/x-win.el, * term/wyse50.el, term/vt200.el, term/vt100.el: All uses changed. * screen.el (screen-height, screen-width, set-screen-height) - (set-screen-width): Defined as aliases for frame-height, + (set-screen-width): Define as aliases for frame-height, frame-width, set-frame-height, and set-frame-width. (set-frame-height, set-frame-width): Functions deleted; they are defined in frame.c. @@ -5613,8 +5613,8 @@ * rmailsort.el: Change copyright to FSF; update permission notice. * byte-run.el: Delete compatibility definition of make-byte-code. - (byte-compiler-options): Commented out. - (proclaim-inline, proclaim-notinline): Commented out. + (byte-compiler-options): Comment out. + (proclaim-inline, proclaim-notinline): Comment out. * byte-opt.el: Change several doc strings to comments. They had the wrong format anyway. @@ -5623,22 +5623,22 @@ * disass.el: Require just bytecomp, not byte-opt. * bytecomp.el (emacs-lisp-file-regexp): - Renamed from elisp-source-file-re. All uses changed. + Rename from elisp-source-file-re. All uses changed. (byte-compile-dest-file): Don't use that var. - (compile-defun): Renamed from elisp-compile-defun. + (compile-defun): Rename from elisp-compile-defun. (byte-compile-report-ops): Define unconditionally. It's a bad idea to make function definitions of moderate size conditional on anything. - (byte-compile-and-load-file): Commented out. + (byte-compile-and-load-file): Comment out. (byte-compiler-valid-options): - Renamed from byte-compiler-legal-options. + Rename from byte-compiler-legal-options. (byte-compile-overwrite-file): Variable deleted. (byte-compile-file): Don't use that var. (byte-compile-compatibility): - Renamed from byte-compile-emacs18-compatibility. + Rename from byte-compile-emacs18-compatibility. (byte-compile-generate-emacs19-bytecodes): Variable deleted. Use byte-compile-compatibility instead. - (byte-compiler-options-handler): Deleted. + (byte-compiler-options-handler): Delete. (byte-compile-body-do-effect, byte-compile-form-do-effect): Use defsubst, not proclaim-inline. @@ -5694,7 +5694,7 @@ * disass.el: New version of the disassembler, to fit with the new compiler. - * mouse.el (mouse-select-buffer-line): Removed extraneous setting + * mouse.el (mouse-select-buffer-line): Remove extraneous setting of the variable `the-buffer'; it's never used elsewhere. * mouse.el (mouse-kill): Don't set the mark; pass point and the @@ -5702,7 +5702,7 @@ 1992-07-09 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - * abbrev.el (write-abbrev-file): Removed extraneous interactive spec. + * abbrev.el (write-abbrev-file): Remove extraneous interactive spec. * screen.el (current-screen-configuration, set-screen-configuration): New functions. @@ -5713,8 +5713,8 @@ instead of `deiconify-screen'; the latter no longer exists. * files.el (find-backup-file-name): Replace the reference to - `backup-extract-version' with a literal `function' form. This - eliminates the use of dynamic binding, and allows us to remove + `backup-extract-version' with a literal `function' form. + This eliminates the use of dynamic binding, and allows us to remove backup-extract-version, which doesn't really want to be its own function. (backup-extract-version): Function removed. @@ -5766,7 +5766,7 @@ * tex-mode.el: Require comint instead of oshell. (tex-start-shell): Use comint, not oshell. - (tex-filter): Deleted function; no filter is now longer needed. + (tex-filter): Delete function; no filter is now longer needed. * tex-mode.el (tex-run-command, latex-run-command, slitex-run-command) (tex-bibtex-run-command, tex-dvi-print-command) @@ -5843,7 +5843,7 @@ 1992-06-28 Jim Blandy (jimb@pogo.cs.oberlin.edu) * completion.el (completion-separator-self-insert-autofilling): - Changed references to `auto-fill-hook' to `auto-fill-function'. + Change references to `auto-fill-hook' to `auto-fill-function'. * mh-e.el (mh-letter-mode): Same thing. * texinfo-upd.el (texinfo-update-node, texinfo-sequential-node-update): Same thing. @@ -5863,7 +5863,7 @@ calendar-daylight-savings-starts, calendar-daylight-savings-ends. Add autoload of calendar-sunrise-sunset. (calendar-mode): Add description of sunrise/sunset capability. - (calendar-version): Changed to 5. + (calendar-version): Change to 5. * diary.el: Autoload diary-sunrise-sunset and diary-sabbath-candles. @@ -5915,10 +5915,10 @@ (all-christian-calendar-holidays, all-islamic-calendar-holidays) (list-diary-entries-hook, diary-display-hook) (nongregorian-diary-listing-hook, nongregorian-diary-marking-hook) - (diary-list-include-blanks): Added autoload cookie for these; + (diary-list-include-blanks): Add autoload cookie for these; Reingold's distribution suggests that these variables are ones that you are especially likely to want to customize. - * holiday.el (holidays): Added autoload cookie for this. + * holiday.el (holidays): Add autoload cookie for this. 1992-06-25 Edward M. Reingold (reingold@emr.cs.uiuc.edu) @@ -5953,7 +5953,7 @@ * dired.el: Complete rewrite, mostly by sk@thp.uni-koeln.de. * dired-aux.el: Other parts of dired. - * files.el (enable-local-eval): Renamed from `ignore-local-eval'; + * files.el (enable-local-eval): Rename from `ignore-local-eval'; now has values like `enable-local-variables'. (hack-local-variables): Test `enable-local-eval' properly. @@ -5974,7 +5974,7 @@ 1992-06-21 Jim Blandy (jimb@pogo.cs.oberlin.edu) - * screen.el (ctl-x-5-map): Removed declaration and initialization + * screen.el (ctl-x-5-map): Remove declaration and initialization of this here; it's done in subr.el, alongside ctl-x-4-map. * autoload.el (generate-file-autoloads): If FILE is in the same @@ -6003,7 +6003,7 @@ 1992-06-18 Jim Blandy (jimb@pogo.cs.oberlin.edu) - * edebug.el (edebug-debug): Added autoload cookie for this. + * edebug.el (edebug-debug): Add autoload cookie for this. * etags.el (find-tag-other-frame): New function. Bind it to `C-x 5 .'. @@ -6043,7 +6043,7 @@ now the keymap `isearch-mode-map' controls special characters in isearch-mode. - * blackbox.el (blackbox): Added ;;;###autoload cookie. + * blackbox.el (blackbox): Add ;;;###autoload cookie. * add-log.el (change-log-mode): Integrated some code from the `change-log-mode' function in `text-mode.el'. Docstring now @@ -6085,7 +6085,7 @@ 1992-06-12 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) - * simple.el (current-kill): Fixed misnamed parameter and + * simple.el (current-kill): Fix misnamed parameter and reorganized code slightly. 1992-06-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -6122,7 +6122,7 @@ 1992-06-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * csharp.el (c-find-nesting): Renamed from csharp-find-nesting. + * csharp.el (c-find-nesting): Rename from csharp-find-nesting. Add autoload. All other functions in this file renamed to start with c-find-nesting. @@ -6204,7 +6204,7 @@ 1992-06-02 Roland McGrath (roland@geech.gnu.ai.mit.edu) * add-log.el: Fixed copyright years to not use a range. - (change-log-mode): Added docstring. + (change-log-mode): Add docstring. (add-change-log-entry): Put a space between the file name and "(function name):". Put a colon after the file name if we have found no function name. @@ -6247,7 +6247,7 @@ * fill.el (fill-region-as-paragraph): Treat } like closeparen. If a fill prefix is specified globally, always use that one. - * flow-ctrl.el (evade-flow-control-memstr=): Renamed from memstr=. + * flow-ctrl.el (evade-flow-control-memstr=): Rename from memstr=. 1992-05-31 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) @@ -6258,7 +6258,7 @@ 1992-05-31 Noah Friedman (friedman@splode.com) - * subr.el (lambda): Added docstring. + * subr.el (lambda): Add docstring. 1992-05-31 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) @@ -6286,7 +6286,7 @@ of writing out its code. * comint.el: Merged with Olin Shivers' comint version 2.03. - (comint-version): Changed accordingly. + (comint-version): Change accordingly. (comint-previous-input-matching): Bind this to c-m-r, rather than c-c c-r. (comint-exec-hook): Make this variable buffer-local. @@ -6300,8 +6300,8 @@ to "Non-echoed text: ". This conforms with the convention used by existing prompts, and gives more room to type stuff. - * comint.el (comint-last-input-start): New variable. In - particular, this helps support subprocesses that insist on echoing + * comint.el (comint-last-input-start): New variable. + In particular, this helps support subprocesses that insist on echoing their input. Added comments to porting guide indicating that this should probably not be used for implementing history stuff. (comint-mode): Create and initialize comint-last-input-start as a @@ -6340,9 +6340,9 @@ 1992-05-24 Edward M. Reingold (reingold@emr.cs.uiuc.edu) * calendar.el (list-yahrzeit-dates): New function. - (hebrew-calendar-yahrzeit): Moved from diary.el. + (hebrew-calendar-yahrzeit): Move from diary.el. - * diary.el (hebrew-calendar-yahrzeit): Moved to calendar.el. + * diary.el (hebrew-calendar-yahrzeit): Move to calendar.el. (diary-ordinal-suffix): Give correct suffix for 111, 112, 113, 211, 212, 213, etc. @@ -6361,7 +6361,7 @@ below instead of manipulating the kill ring directly, since the functions correctly deal with interprogram cutting and pasting. (kill-new): New function. - (kill-append): Added doc string. Be sure to call the + (kill-append): Add doc string. Be sure to call the interprogram-cut-function on the new string. (current-kill): New function. (rotate-yank-pointer): New optional argument do-not-move, to @@ -6388,7 +6388,7 @@ how many characters were saved, and it's hard to interpret intuitively. - * screen.el (ctl-x-3-map): Renamed to ctl-x-5-map, and now bound + * screen.el (ctl-x-3-map): Rename to ctl-x-5-map, and now bound to C-x 5, not C-x 3. This makes a nicer analogy with C-x 4. Moving split-window-horizontally to C-x 3 also makes a nicer analogy with C-x 2. @@ -6503,7 +6503,7 @@ 1992-04-21 Jim Blandy (jimb@pogo.cs.oberlin.edu) - * doctor.el (doctor-svo): Deleted second expression from top let + * doctor.el (doctor-svo): Delete second expression from top let binding; it used to read "(let ((foo sent)) ...)"; let bindings can only have one expression. @@ -6649,7 +6649,7 @@ * compile.el (compilation-mode-hook): New variable. (compilation-mode): Run it. (compilation-search-path): Made user variable, added autoload cookie. - (compilation-window-height): Added autoload cookie. + (compilation-window-height): Add autoload cookie. 1992-02-27 Jim Blandy (jimb@pogo.cs.oberlin.edu) @@ -6720,7 +6720,7 @@ 1992-01-08 Jim Blandy (jimb@occs.cs.oberlin.edu) - * simple.el (temporary-goal-column): Added missing closing paren. + * simple.el (temporary-goal-column): Add missing closing paren. 1991-12-25 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -6752,7 +6752,7 @@ 1991-12-14 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) - * etags.el (find-tag-noselect): Fixed subtle bug due to + * etags.el (find-tag-noselect): Fix subtle bug due to save-excursion. (tags-tag-match): New function, made smarter about exact matches. @@ -6803,7 +6803,7 @@ 1991-12-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) * diff.el (diff-internal-diff): New subroutine. - (diff): Removed from here. + (diff): Remove from here. (diff-sccs, diff-rcs): New commands using diff-internal-diff. (diff-rcs-extension): New variable. @@ -6855,7 +6855,7 @@ 1991-11-06 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) * screen.el (screen-initialize, screen-notice-user-settings): - Renamed global-minibuffer-screen to default-minibuffer-screen. + Rename global-minibuffer-screen to default-minibuffer-screen. 1991-11-05 Edward M. Reingold (reingold@emr.cs.uiuc.edu) @@ -6864,8 +6864,8 @@ 1991-10-31 Richard Mlynarik (mly@peduncle) - * ebuff-menu.el (electric-buffer-menu-mode-map): Define - < and > to scroll-left and scroll-right per user suggestion. + * ebuff-menu.el (electric-buffer-menu-mode-map): + Define < and > to scroll-left and scroll-right per user suggestion. 1991-10-31 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) @@ -6881,7 +6881,7 @@ * cmushell.el: This is now the real shell.el. Removed the "cmu" prefix from names. - (shell): Marked this to be autoloaded. + (shell): Mark this to be autoloaded. 1991-10-29 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) @@ -6902,8 +6902,8 @@ 1991-10-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) * disass.el (disassemble): Correctly distinguish functions with no - interactive spec and functions that are (interactive). Correctly - extract components of explicit calls to byte-code (old-style + interactive spec and functions that are (interactive). + Correctly extract components of explicit calls to byte-code (old-style compiled functions). Correctly pass byte code of function to disassemble-1. (disassemble-1): Use nth to extract components of explicit call to @@ -6923,14 +6923,14 @@ 1991-10-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) - * info.el (Info-follow-nearest-node): Adjusted for new return + * info.el (Info-follow-nearest-node): Adjust for new return value format from coordinates-in-window-p. 1991-10-08 Roland McGrath (roland@albert.gnu.ai.mit.edu) * add-log.el (change-log-name): New fn. - (add-change-log-entry, add-change-log-entry-other-window): All - args optional. FILE-NAME defaults to new var + (add-change-log-entry, add-change-log-entry-other-window): + All args optional. FILE-NAME defaults to new var `change-log-default-name'. Give this var a local value in the buffer we were run from, pointing to the file we found. @@ -6972,7 +6972,7 @@ 1991-09-26 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - * map-ynp.el (map-y-or-n-p): Fixed for lists containing nil. + * map-ynp.el (map-y-or-n-p): Fix for lists containing nil. 1991-09-10 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) @@ -7034,7 +7034,7 @@ * rmail.el (rmail-convert-to-babyl-format): Roland added the missing paren in the wrong place; fixed. - * screen.el (screen-initialize): Added missing `function' around + * screen.el (screen-initialize): Add missing `function' around lambda expression. 1991-08-20 Roland McGrath (roland@churchy.gnu.ai.mit.edu) @@ -7063,7 +7063,7 @@ 1991-08-17 Roland McGrath (roland@geech.gnu.ai.mit.edu) * doctor.el (doctor-strangelove): New fn. - (doctor-member): Removed. + (doctor-member): Remove. (doctor-doc): Use member instead of doctor-member. (doctor-rms): Restored. @@ -7073,7 +7073,7 @@ 1991-08-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) - * screen.el (screen-create-initial-screen): Renamed to + * screen.el (screen-create-initial-screen): Rename to screen-initialize. Arrange to cause errors if people try to create screens when no window system is running. @@ -7085,14 +7085,14 @@ * loaddefs.el (ctl-x-4-map): Move definition from here... * subr.el (ctl-x-4-map): To here. (ctl-x-3-map): New prefix. - (mouse-map): Deleted. + (mouse-map): Delete. * screen.el (new-screen-x-delta, new-screen-y-delta) - (new-screen-position): Removed. - (new-screen): Simplified. - (split-to-other-screen): Removed. + (new-screen-position): Remove. + (new-screen): Simplify. + (split-to-other-screen): Remove. (switch-to-buffer-other-screen, find-file-other-screen) - (find-file-read-only-other-screen, mail-other-screen): Moved, along + (find-file-read-only-other-screen, mail-other-screen): Move, along with their keybindings, to... * files.el (switch-to-buffer-other-screen, find-file-other-screen) (find-file-read-only-other-screen): Here... @@ -7136,11 +7136,11 @@ * screen.el, term/x-win.el: Renamed screen-default-alist to default-screen-alist. - (default-screen-alist): Moved declaration to screen.c; the + (default-screen-alist): Move declaration to screen.c; the screen creation subrs should consult this transparently. - * term/x-win.el (x-get-resources, x-pop-initial-window): Functions - deleted. Don't call them at the bottom of the file anymore. + * term/x-win.el (x-get-resources, x-pop-initial-window): + Functions deleted. Don't call them at the bottom of the file anymore. 1991-08-12 Roland McGrath (roland@geech.gnu.ai.mit.edu) @@ -7152,15 +7152,15 @@ 1991-08-12 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) * window.el (split-window-keep-point): New user option. - (split-window-vertically): Modified to support it. + (split-window-vertically): Modify to support it. * startup.el (command-line): Choose a default value for split-window-keep-point according to the baud rate. * term/x-win.el: Set split-window-keep-point. 1991-08-10 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) - * term/x-win.el (x-daemon-mode, x-establish-daemon-mode): Removed - these functions; we do this differently now. + * term/x-win.el (x-daemon-mode, x-establish-daemon-mode): + Remove these functions; we do this differently now. 1991-08-07 Roland McGrath (roland@geech.gnu.ai.mit.edu) @@ -7169,7 +7169,7 @@ 1991-08-05 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) - * screen.el (screen-creation-func): Renamed to + * screen.el (screen-creation-func): Rename to screen-creation-function, as per the convention. * screen.el (screen-creation-func): Do not initialize this @@ -7184,7 +7184,7 @@ * startup.el (pre-init-hook): New variable. (window-setup-hook): Doc fix. (command-line): Call pre-init-hook. - (command-line-1): Updated copyright date. + (command-line-1): Update copyright date. 1991-07-31 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) @@ -7193,7 +7193,7 @@ 1991-07-31 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - * screen.el (auto-new-screen-function): Renamed to + * screen.el (auto-new-screen-function): Rename to pop-up-screen-function. (buffer-in-other-screen): Use pop-up-screens, not auto-new-screen. @@ -7239,12 +7239,12 @@ * view.el: (define-key "C-xv" 'view-file). (view-file-other-window, view-buffer-other-window): New functions. - (view-prev-buffer): Renamed to view-return-here. + (view-prev-buffer): Rename to view-return-here. (view-exit): If view-return-here is a buffer, switch to it; if it is a window configuration, apply it. - * subr.el (search-forward-regexp, search-backward-regexp): Added - alternate names. + * subr.el (search-forward-regexp, search-backward-regexp): + Add alternate names. 1991-07-24 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) @@ -7256,7 +7256,7 @@ * isearch.el (isearch): If the user switches to a different screen, exit the isearch. - * isearch.el (isearch): Changed reference to `cmds' to use + * isearch.el (isearch): Change reference to `cmds' to use variable's new name `history'. 1991-07-23 Roland McGrath (roland@churchy.gnu.ai.mit.edu) @@ -7264,7 +7264,7 @@ * rmail.el (rmail-first-unseen-message): Make loop looking for unseen msgs not skip the first one. - * rmail.el (rmail-widen-to-current-msgbeg): Added missing close paren. + * rmail.el (rmail-widen-to-current-msgbeg): Add missing close paren. 1991-07-21 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) @@ -7286,7 +7286,7 @@ 1991-07-19 Roland McGrath (roland@albert.gnu.ai.mit.edu) - * files.el (save-some-buffers): Added save-excursions around code + * files.el (save-some-buffers): Add save-excursions around code that does set-buffer. 1991-07-15 Roland McGrath (roland@churchy.gnu.ai.mit.edu) @@ -7297,7 +7297,7 @@ (find-tag-tag): Pass 'tags-completion-alist as TABLE to completing-read, so the table is built on demand. - * sendmail.el (mail-do-fcc): Added missing close paren. + * sendmail.el (mail-do-fcc): Add missing close paren. 1991-07-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) @@ -7313,8 +7313,8 @@ * fortran.el version 1.28.3 Now works in either mode when `tab-width' is not 8. - (fortran-electric-line-number, fortran-indent-to-column): Use - `fortran-minimum-statement-indent' instead of 8. + (fortran-electric-line-number, fortran-indent-to-column): + Use `fortran-minimum-statement-indent' instead of 8. (fortran-current-line-indentation): Now skips over line number and whitespace correctly when tab-width is not 8. @@ -7331,7 +7331,7 @@ * startup.el (command-line): Remove the arguments from command-line-args as we process them. - (command-line-1): Removed code to ignore the arguments processed + (command-line-1): Remove code to ignore the arguments processed in command-line, because they're all deleted now. * replace.el (occur): Set tem to the location of the match before @@ -7351,7 +7351,7 @@ 1991-07-09 Roland McGrath (roland@albert.gnu.ai.mit.edu) - * map-ynp.el (map-y-or-n-p): Fixed lossage on ? or random char. + * map-ynp.el (map-y-or-n-p): Fix lossage on ? or random char. 1991-07-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -7368,8 +7368,8 @@ * fortran.el: Added ;;;###autoload definition for fortran-tab-mode-default variable. - * fortran.el (fortran-numerical-continuation-char): Replace - (backward-line 1) with (forward-line -1) since backward-line is + * fortran.el (fortran-numerical-continuation-char): + Replace (backward-line 1) with (forward-line -1) since backward-line is defined only in edt. (fortran-previous-statement): Fix error in parens. (fortran-indent-to-column): Likewise. @@ -7378,7 +7378,7 @@ * files.el (save-some-buffers): Use map-y-or-n-p return value. - * map-ynp.el (map-y-or-n-p): Fixed bug that caused first elt on ! + * map-ynp.el (map-y-or-n-p): Fix bug that caused first elt on ! hit not get acted on. 1991-07-04 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -7390,7 +7390,7 @@ 1991-07-01 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - * map-ynp.el (map-y-or-n-p): Fixed misplaced paren. + * map-ynp.el (map-y-or-n-p): Fix misplaced paren. Fixed list-eating bug. 1991-07-01 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -7425,7 +7425,7 @@ 1991-06-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - * subr.el (ignore): Added docstring for this; it appears as a key + * subr.el (ignore): Add docstring for this; it appears as a key binding, so it ought to be described. 1991-06-19 Roland McGrath (roland@albert.gnu.ai.mit.edu) @@ -7443,16 +7443,16 @@ 1991-06-12 Roland McGrath (roland@albert.gnu.ai.mit.edu) - * upd-copyr.el (update-copyright): Fixed typo in help text. + * upd-copyr.el (update-copyright): Fix typo in help text. 1991-05-26 Roland McGrath (roland@albert.gnu.ai.mit.edu) - * disass.el (disassemble-internal): Fixed typo string? -> stringp. + * disass.el (disassemble-internal): Fix typo string? -> stringp. 1991-05-26 Edward M. Reingold (reingold@emr.cs.uiuc.edu) - * holiday.el (calendar-holiday-function-passover-etc): Correct - date and spelling of Yom HaAtzma'ut. + * holiday.el (calendar-holiday-function-passover-etc): + Correct date and spelling of Yom HaAtzma'ut. 1991-05-23 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) @@ -7501,14 +7501,14 @@ screen-default-alist alone; don't use x-switches-specified. (x-read-resources): New function to read the X defaults and put them in screen-default-alist. Call this function at the bottom. - * screen.el (death-function): Removed, because this is now handled + * screen.el (death-function): Remove, because this is now handled better in startup.el. (pop-initial-screen): Don't do a condition-case to call death-function. 1991-05-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) - * macros.el (apply-macro-to-region-lines): Added a save-excursion + * macros.el (apply-macro-to-region-lines): Add a save-excursion around the macro invocation, so that the macro doesn't need to stay on the same line. @@ -7614,7 +7614,7 @@ * find-dired.el (find-dired-filter): Don't search; use forward-line instead. - (find-dired-filter, find-dired-sentinel): Changed docstrings to + (find-dired-filter, find-dired-sentinel): Change docstrings to comments. 1991-05-11 Roland McGrath (roland@albert.gnu.ai.mit.edu) @@ -7755,8 +7755,8 @@ Now supports tab or fixed format style of continuation control and indentation. In tab style, lines start with a tab, or a line number followed by a tab. If the first character after the tab is - a digit from 1 to 9, the line is a continuation line. When - entering fortran mode for a file, the first line that begins with + a digit from 1 to 9, the line is a continuation line. + When entering fortran mode for a file, the first line that begins with 6 spaces or a tab is found. The buffer is then set respectively to either fixed format or tab format style. The mode may be toggled with the command fortran-tab-mode. @@ -7965,7 +7965,7 @@ 1991-02-25 Paul Hilfinger (hilfingr@hilfinger.cs.nyu.edu) - * fill.el (fill-individual-paragraphs): Changed response to mailp + * fill.el (fill-individual-paragraphs): Change response to mailp to effect only leading lines in a region (was getting confused about colons embedded in ordinary text). Changed method of moving to next paragraph in the main loop to use forward-paragraph @@ -7978,7 +7978,7 @@ 1991-02-23 Roland McGrath (mcgrath@cygint.cygnus.com) - * compile.el (next-error): Fixed bug in rms's optimization. + * compile.el (next-error): Fix bug in rms's optimization. 1991-02-23 Richard Stallman (rms@mole.ai.mit.edu) @@ -8040,7 +8040,7 @@ 1991-02-04 Jim Blandy (jimb@gnu.ai.mit.edu) - * simple.el (eval-current-buffer): Removed, since it has been + * simple.el (eval-current-buffer): Remove, since it has been reintroduced to the C code. 1991-02-02 Jim Blandy (jimb@gnu.ai.mit.edu) @@ -8114,8 +8114,8 @@ * bibtex.el: Expanded the various bibtex-field-* patterns to allow fields like 'title = poft # "Fifth Triquaterly" # random-conf,'. Needs to have more work done to accept all cases. Added code for - the bibtex 'crossref' command, which subsumes other options. Made - field ordering different when this option on. Also allow user to + the bibtex 'crossref' command, which subsumes other options. + Made field ordering different when this option on. Also allow user to have a list of field to be added to all entries (bibtex-mode-user-optional-fields). Merged in Bengt Martensson's changes. @@ -8148,13 +8148,13 @@ 1991-01-08 Roland McGrath (roland@albert.ai.mit.edu) - * compile.el (compilation-parse-errors): Fixed maintenance of + * compile.el (compilation-parse-errors): Fix maintenance of last-linenum, so dups are really found. 1991-01-08 Jim Blandy (jimb@pogo.ai.mit.edu) - * bytecomp.el (byte-compile-byte-code-maker): Since - byte-compile-lambda is free to return the original lambda + * bytecomp.el (byte-compile-byte-code-maker): + Since byte-compile-lambda is free to return the original lambda expression, we'd better be prepared to handle things that aren't bytecode objects. @@ -8242,8 +8242,8 @@ 1990-12-20 Chris Hanson (cph@kleph) - * texnfo-upd.el (texinfo-update-menu-region-beginning): Change - code that searches for "top" node so it returns the position of + * texnfo-upd.el (texinfo-update-menu-region-beginning): + Change code that searches for "top" node so it returns the position of the beginning of the node line. Always search from the buffer's start when looking for that node. (texinfo-make-one-menu): Bump forward over the outer node line. @@ -8317,7 +8317,7 @@ 1990-12-12 Roland McGrath (roland@albert.ai.mit.edu) - * compile.el (compilation-error-buffer): Removed. + * compile.el (compilation-error-buffer): Remove. (compilation-last-buffer): Now last buffer in which any of: started compilation; C-x `; C-c C-c; was done. (compile-internal): Don't set compilation-error-buffer. @@ -8340,7 +8340,7 @@ error-message, and regexp-alist. (compile-internal): Do it here, after calling compilation-mode. - * compile.el (compilation-error-list): Changed elt format. + * compile.el (compilation-error-list): Change elt format. (compilation-parse-errors): Don't find files when parsing. Instead record ((DIR . FILE) . LINENO) structures to describe each error. @@ -8401,35 +8401,35 @@ 1990-11-30 Mike Newton (newton@gumby.cs.caltech.edu) - * bibtex.el (start comments): Added earlier comments of Bengt + * bibtex.el (start comments): Add earlier comments of Bengt Martensson. Some of the changes listed below are originally his (including clean-entry, OPTkey and OPTannote, the function renaming and the preamble code). - * bibtex.el (bibtex-field-* patterns): Expanded to allow fields + * bibtex.el (bibtex-field-* patterns): Expand to allow fields like 'title = poft # "Fifth Triquaterly" # random-conf,'. Needs to have more work done to accept all cases. - * bibtex.el (bibtex-clean-entry-zap-empty-opts): Added. + * bibtex.el (bibtex-clean-entry-zap-empty-opts): Add. - * bibtex.el (bibtex-include-OPTcrossref): Added. If set, changes + * bibtex.el (bibtex-include-OPTcrossref): Add. If set, changes order of the lists presented to luser. - * bibtex.el (bibtex-include-OPTkey & bibtex-include-OPTannote): Added. + * bibtex.el (bibtex-include-OPTkey & bibtex-include-OPTannote): Add. * bibtex.el (bibtex-mode-user-optional-fields): Can be set to a list of field the user wants to add to entries. - * bibtex.el (bibtex-mode documentation string): Updated for new changes, + * bibtex.el (bibtex-mode documentation string): Update for new changes, DEAthesis added back in, bibtex-preamble call added. * bibtex.el (bibtex-entry): Add OPTkey/annote. If OPTcrossref set then put it in. - * bibtex.el (bibtex-make-entry): Renamed bibtex-make-field. + * bibtex.el (bibtex-make-entry): Rename bibtex-make-field. - * bibtex.el (bibtex-make-optional-entry): Renamed - bibtex-make-optional-field. + * bibtex.el (bibtex-make-optional-entry): + Rename bibtex-make-optional-field. * bibtex.el (bibtex-Article): Change order of presentation if OPTcrossref is set. @@ -8443,16 +8443,16 @@ * bibtex.el (bibtex-InProceedings): Change order of presentation if OPTcrossref is set. - * bibtex.el (bibtex-MastersThesis): Added "note". + * bibtex.el (bibtex-MastersThesis): Add "note". - * bibtex.el (bibtex-preamble): Added. + * bibtex.el (bibtex-preamble): Add. * bibtex.el (bibtex-inside-field): Only go backwards if quote is there. - * bibtex.el (bibtex-clean-entry): Added call to + * bibtex.el (bibtex-clean-entry): Add call to bibtex-clean-entry-zap-empty-opts, OPT field testing for errors. - * bibtex.el (bibtex-x-help): Added options Conference and preamble, + * bibtex.el (bibtex-x-help): Add options Conference and preamble, restored DEAthesis. 1990-11-30 Richard Stallman (rms@mole.ai.mit.edu) @@ -8552,7 +8552,7 @@ (insert-hebrew-diary-entry, insert-monthly-hebrew-diary-entry) (insert-yearly-hebrew-diary-entry, insert-islamic-diary-entry) (insert-monthly-islamic-diary-entry) - (insert-yearly-islamic-diary-entry): Modified so that if a prefix arg + (insert-yearly-islamic-diary-entry): Modify so that if a prefix arg is supplied these make nonmarking diary entries; otherwise the entries made are marking. (insert-block-diary-entry, insert-anniversary-diary-entry) @@ -8572,27 +8572,27 @@ 1990-11-06 Ed Reingold (reingold@emr.cs.uiuc.edu) * calendar.el (sexp-diary-entry-symbol): New variable. - (cursor-to-iso-calendar-date): Simplified, slightly. - (cursor-to-calendar-day-of-year): Fixed punctuation. - (cursor-to-french-calendar-date): Moved French names to arrays. + (cursor-to-iso-calendar-date): Simplify, slightly. + (cursor-to-calendar-day-of-year): Fix punctuation. + (cursor-to-french-calendar-date): Move French names to arrays. * diary.el (list-sexp-diary-entries, diary-sexp-entry, diary-cyclic) (diary-hebrew-date, diary-iso-date, diary-day-of-year) (diary-float, diary-islamic-date, diary-anniversary, diary-block) (diary-french-date, diary-omer, diary-yahrzeit, diary-parasha) (diary-rosh-hodesh, hebrew-calendar-parasha-name): New functions. - (list-diary-entries): Added call to (list-sexp-diary-entries) and + (list-diary-entries): Add call to (list-sexp-diary-entries) and fixed an obscure error that caused a diary entry to be missed if it was preceded by an empty entry of the same style. - (list-hebrew-diary-entries, list-islamic-diary-entries): Fixed an + (list-hebrew-diary-entries, list-islamic-diary-entries): Fix an obscure error that caused a diary entry to be missed if it was preceded by an empty entry of the same style. - (mark-islamic-calendar-date-pattern): Renamed some local variables + (mark-islamic-calendar-date-pattern): Rename some local variables more appropriately. 1990-11-05 Roland McGrath (roland@geech.ai.mit.edu) - * compile.el (compilation-window-height): Added defconst for this, + * compile.el (compilation-window-height): Add defconst for this, since it somehow disappeared. * compile.el: Unoverhauled. Restored from old 19 compile.el, plus @@ -8622,7 +8622,7 @@ called to generate a name for a compilation buffer. Passed one arg, the name of the major mode of the buffer. (compile-internal): Use it. [From tale's changes:] - (compile): Moved window enlarging to compile-internal. + (compile): Move window enlarging to compile-internal. (compile-internal): Don't use with-output-to-temp-buffer. Use display-buffer instead. @@ -8704,10 +8704,10 @@ 1990-10-23 David Lawrence (tale@pogo.ai.mit.edu) - * emerge.el (emerge-setup, emerge-setup-with-ancestor): Moved - insert-buffer calls back before call to emerge-extract-diffs where + * emerge.el (emerge-setup, emerge-setup-with-ancestor): + Move insert-buffer calls back before call to emerge-extract-diffs where the merge-buffer really needs to have something in it. - (emerge-extract-diffs,emerge-extract-diffs3): Moved errant + (emerge-extract-diffs,emerge-extract-diffs3): Move errant kill-buffer which interfered with return value of functions. 1990-10-22 David Lawrence (tale@pogo.ai.mit.edu) @@ -8782,7 +8782,7 @@ (texinfo-menu-locate-entry-p, texinfo-copy-menu-title) (texinfo-update-menu-region-beginning, texinfo-update-menu-region-end): Handle `@ifinfo' as well as comment line following node line. - (texinfo-multiple-files-update and aux. files): Added to handle + (texinfo-multiple-files-update and aux. files): Add to handle multi-file Texinfo sources. 1990-10-18 Richard Stallman (rms@mole.ai.mit.edu) @@ -8830,9 +8830,9 @@ * dired.el (dired-compress, dired-uncompress): Put output from subprocess in a buffer to display it. - * appt.el (fix-time): Deleted. - (appt-select-lowest-window): Renamed from select-lowest-window. - (appt-visible): Renamed from appt-visable. + * appt.el (fix-time): Delete. + (appt-select-lowest-window): Rename from select-lowest-window. + (appt-visible): Rename from appt-visable. * time.el (display-time-filter): Run display-time-hook. @@ -8842,10 +8842,10 @@ 1990-10-08 Ed Reingold (reingold@emr.cs.uiuc.edu) - * holiday.el (calendar-holiday-function-hebrew): Fixed minor problem + * holiday.el (calendar-holiday-function-hebrew): Fix minor problem with the code to short-circuit the calculations to save time. - * diary.el (mark-hebrew-calendar-date-pattern): Fixed minor problem + * diary.el (mark-hebrew-calendar-date-pattern): Fix minor problem with the code to short-circuit the calculations to save time. 1990-10-08 Richard Stallman (rms@mole.ai.mit.edu) @@ -8957,7 +8957,7 @@ 1990-09-18 Richard Stallman (rms@mole.ai.mit.edu) - * doctor.el (doctor-caddr, doctor-cadr, doctor-cddr): Renamed. + * doctor.el (doctor-caddr, doctor-cadr, doctor-cddr): Rename. 1990-09-13 Richard Stallman (rms@mole.ai.mit.edu) @@ -8979,7 +8979,7 @@ 1990-09-10 Ed Reingold (reingold@emr.cs.uiuc.edu) * diary.el (list-diary-entries, list-hebrew-diary-entries) - (list-islamic-diary-entries): Fixed to use add-to-diary-list. + (list-islamic-diary-entries): Fix to use add-to-diary-list. 1990-09-10 Chris Hanson (cph@kleph) @@ -9039,7 +9039,7 @@ * diary.el (mark-diary-entries, mark-islamic-diary-entries) (mark-hebrew-diary-entries): Eliminated use of constant alists for month and day names. - (prepare-fancy-diary-buffer): Fixed the way holidays are displayed + (prepare-fancy-diary-buffer): Fix the way holidays are displayed when there are no diary entries but lots of holidays. (ordinary-list-diary-hook, add-to-diary-list): New functions. @@ -9049,21 +9049,21 @@ Changed reference at beginning of file from the report to the published version of the paper. Changed all calls to `mod' to call `%' to avoid problem with cl. - (calendar-date-string): Added optional parameter `nodayname'. - (cursor-to-islamic-calendar-date): Fixed so that + (calendar-date-string): Add optional parameter `nodayname'. + (cursor-to-islamic-calendar-date): Fix so that calendar-date-string doesn't try find the day name. - (cursor-to-hebrew-calendar-date): Fixed so that + (cursor-to-hebrew-calendar-date): Fix so that calendar-date-string doesn't try find the day name. nongregorian-diary-marking-hook: Fixed typo in doc string. - (calendar-mode): Fixed a typo in doc string. + (calendar-mode): Fix a typo in doc string. (cursor-to-iso-calendar-date): Made message consistent with similar functions for Julian, Islamic, Hebrew, and French calendars. - (calendar-absolute-from-gregorian): Simplified calculation. - (calendar-mark-today): Changed today mark to `=' to avoid + (calendar-absolute-from-gregorian): Simplify calculation. + (calendar-mark-today): Change today mark to `=' to avoid confusion with the default holiday mark. (calendar-julian-from-absolute): Rewrote parallel to other functions. (calendar-islamic-from-absolute): Rewrote parallel to other functions. - (calendar-forward-day): Fixed movement when cursor is not on a date + (calendar-forward-day): Fix movement when cursor is not on a date and arg is negative. Added description of new `if' form to doc string for calendar-holidays. @@ -9074,10 +9074,10 @@ * holiday.el: Changed all calls to `mod' to call `%' to avoid problem with cl. - (calendar-holiday-function-rosh-hashanah-etc): Fixed grammatical + (calendar-holiday-function-rosh-hashanah-etc): Fix grammatical error in a comment. - (calendar-holiday-function-hebrew): Fixed typo in doc string. - (calendar-holiday-function-islamic): Fixed typo in doc string. + (calendar-holiday-function-hebrew): Fix typo in doc string. + (calendar-holiday-function-islamic): Fix typo in doc string. (calendar-holiday-function-if): New function. 1990-09-06 Richard Stallman (rms@mole.ai.mit.edu) @@ -9114,12 +9114,12 @@ * loaddefs.el: (gnus, gnus-post-news): Autoload gnus. (sendnews, postnews): fset to gnus-post-news instead of news-post-news. - (rnews, news-post-news): Removed autoloads. + (rnews, news-post-news): Remove autoloads. * gnus.el: New file. - (gnus-make-newsrc-file): Removed. + (gnus-make-newsrc-file): Remove. (gnus-read-newsrc-file): Work without above. - (gnus-Info-directory): Removed. + (gnus-Info-directory): Remove. (gnus-Info-find-node): Work without above. (lots of variables): Made non-interactive. Some doc fixes. @@ -9151,7 +9151,7 @@ (fortran-current-line-indentation): Only skip over continuation char or line number for statements. It was giving back wrong values for statements which started in columns 1-6. - (fortran-mode-version): Removed. + (fortran-mode-version): Remove. 1990-08-28 David Lawrence (tale@pogo.ai.mit.edu) @@ -9161,8 +9161,8 @@ copy-vector. Calling copy-sequence does the job. (defsetf for point): Point's inverse is goto-char. Of course, what do we do with the other basic types of Emacs Lisp? - (member): Another, perhaps counterproductive, speed hack. When - test or testnot are symbols (hopefully, non-null), they are + (member): Another, perhaps counterproductive, speed hack. + When test or testnot are symbols (hopefully, non-null), they are replaced by their symbol-function slots. This presumably reduces one indirection per each funcall in the inner loop. (byte-compile-named-list-accessors): Another byte-compile @@ -9172,7 +9172,7 @@ (with-keyword-args): Macro that simplifies most of the handling of klists. The only neglected functionality is that no supplied-p forms exist (although that is true also of lambda lists in Emacs Lisp). - (cl-eval-print-last-sexp): Added half-hearted support for -, +, + (cl-eval-print-last-sexp): Add half-hearted support for -, +, ++, +++, *, **, ***, /, //, ///; and cleared the mvalues mechanism at every call. (declare, proclaim, the): Make some more CL codes easy to load. @@ -9183,7 +9183,7 @@ (byte-compile-ca*d*r): New function, used as a handler from byte-compile-form to eliminate the extra call to the c*r functions in compiled code. - (adjoin, map): Changed to use `memq' instead of `member', too. + (adjoin, map): Change to use `memq' instead of `member', too. (case, ecase): Via a change in case-clausify, these macros now generate tests using the primitive `memq', instead of the heavier `member'. @@ -9203,8 +9203,8 @@ functions. (build-klist): Better error messages. (psetf): Rewrote, patterned after the new psetq. - (psetq): Added early check for even number of arguments. This - causes a better error message than previously. + (psetq): Add early check for even number of arguments. + This causes a better error message than previously. (defstruct, parse$defstruct$options): asp@CS.CMU.EDU (James Aspnes) reported that defstruct wasn't handling properly the use of accessors of an :included definition applied to instances of @@ -9252,8 +9252,8 @@ *Completions* not *Help*. * help.el (describe-mode): Use Dale Worley's version to also show - minor mode documentation if argument is given. Fset - defining-keyboard-macro to start-keyboard-macro so its + minor mode documentation if argument is given. + Fset defining-keyboard-macro to start-keyboard-macro so its documentation can be found. Currently does not work with auto-fill-mode because of the hook nature of its minor mode indicator variable. @@ -9357,7 +9357,7 @@ 1990-07-26 David Lawrence (tale@pogo.ai.mit.edu) * c-mode.el (c-auto-newline): Doc addition. - (electric-c-terminator): Removed bogus set-marker. + (electric-c-terminator): Remove bogus set-marker. (electric-c-sharp-sign): Make sure c-auto-newline is nil for call to electric-c-terminator. @@ -9464,7 +9464,7 @@ * compile.el (grep): Use `grep-command' to also hold args for grep, like compile-command. - * simple.el (kill-ring-save): Fixed to not reference free + * simple.el (kill-ring-save): Fix to not reference free variable `verbose' but to just unconditionally echo message. (shell-command): Use new `last-shell-command' interactively. (shell-command-on-region): Use new `last-shell-command-on-region' @@ -9478,7 +9478,7 @@ 1990-06-23 Randall Smith (randy@substantia-nigra) - * dired.el (dired-flag-regexp-files): Added function to flag all + * dired.el (dired-flag-regexp-files): Add function to flag all files matching a REGEXP for deletion. (): Bound this function to key "F" in dired-mode ("D" was already taken). @@ -9506,8 +9506,8 @@ * isearch.el (isearch): Do exit on meta keys. Also exit on function keys and mouse clicks. * loaddefs.el (search-exit-char): Change back to escape. - (search-ring-advance-char): Moved from isearch.el. - (search-ring-retreat-char): Renamed from ...-recline-char and moved. + (search-ring-advance-char): Move from isearch.el. + (search-ring-retreat-char): Rename from ...-recline-char and moved. * float.el: Provide 'float. @@ -9561,7 +9561,7 @@ updated all existing menus (very time consuming). (texinfo-all-menus-update, texinfo-every-node-update): - Added a save-excursion to each so that point does not move when + Add a save-excursion to each so that point does not move when you update the menus or nodes. * texinfmt.el (texinfo-format-parse-args): Expand arguments so @@ -9572,16 +9572,16 @@ * backquote.el (bq-splicequote): Correctly splice in elements when followed by constant elements; don't list the constant elements. - * add-log.el (add-change-log-entry): Fixed match test for full name. + * add-log.el (add-change-log-entry): Fix match test for full name. - * lpr.el (print-buffer): Removed an extra trailing parenthesis. + * lpr.el (print-buffer): Remove an extra trailing parenthesis. 1990-05-30 David Lawrence (tale@geech) * comint.el (comint-load-hook): Superseded by eval-after-load. - * inf-lisp.el (lisp-eval-region, lisp-compile-region): Use - temporary files instead of send-string to avoid problems with pty + * inf-lisp.el (lisp-eval-region, lisp-compile-region): + Use temporary files instead of send-string to avoid problems with pty buffering. * tex-mode.el (tex-close-latex-block): Allow whitespace after @@ -9629,7 +9629,7 @@ * informat.el (Info-tagify): Give status messages before and after tagifying. - (batch-info-validate): Removed status messages around Info-tagify. + (batch-info-validate): Remove status messages around Info-tagify. * rmailout.el (rmail-output): Check for From:, Really-From: and Sender: fields, in that order, and run mail-strip-quoted-names on @@ -9637,13 +9637,13 @@ 1990-05-21 Richard Stallman (rms@mole.ai.mit.edu) - * buff-menu.el (Buffer-menu-buffer): Simplified. + * buff-menu.el (Buffer-menu-buffer): Simplify. Set Buffer-menu-buffer-column initially. 1990-05-18 Robert J. Chassell (bob@apple-gunkies) * page-ext.el (pages-addresses-file-name): - Renamed from addresses-file-name. + Rename from addresses-file-name. 1990-05-17 Robert J. Chassell (bob@apple-gunkies) @@ -9990,12 +9990,12 @@ * screen.el (iconify-function, iconify-emacs, deiconify-function): New functions. - * files.el (save-some-buffers): Removed last parameter skip-list. + * files.el (save-some-buffers): Remove last parameter skip-list. Now this checks for buffer-local variable save-buffers-skip to determine whether or not to avoid asking to save the buffer. - * rmail.el (rmail-mode): Removed skip-list stuff. + * rmail.el (rmail-mode): Remove skip-list stuff. (rmail-variables): make-local-variable save-buffers-skip. - * compile.el (compile): Removed additional parameter to save-buffers. + * compile.el (compile): Remove additional parameter to save-buffers. 1990-02-26 David Lawrence (tale@pogo.ai.mit.edu) @@ -10004,21 +10004,21 @@ display-time-string. (rmail-pop-up): Default display-time-hook to automatically retrieve new mail if the variable rmail-pop-up is non-nil. - (add-clock-handler): Removed; superseded by timer.el. + (add-clock-handler): Remove; superseded by timer.el. * loaddefs.el: Removed add-clock-handler. 1990-02-25 David Lawrence (tale@pogo.ai.mit.edu) * c++-mode.el: New file. - (point-bol): Removed this function. + (point-bol): Remove this function. * loaddefs.el: Autoload C++-mode. (auto-mode-alist): c++-mode for .C and .cc files. 1990-02-25 Joseph Arceneaux (jla@gnu.ai.mit.edu) - * lisp-mode.el (indent-sexp): Changed opoint to last-point. + * lisp-mode.el (indent-sexp): Change opoint to last-point. Very strange, I thought I'd already fixed this. * screen.el: New file. @@ -10048,11 +10048,11 @@ * files.el (file-newest-backup): Return either the name of an existing backup file or nil if none exists. - * server.el (server-program): Renamed from "server" to "emacsserver". + * server.el (server-program): Rename from "server" to "emacsserver". 1990-02-20 Joseph Arceneaux (jla@gnu.ai.mit.edu) - * fill.el (fill-region-as-paragraph): Fixed regexp typo in call to + * fill.el (fill-region-as-paragraph): Fix regexp typo in call to re-search-forward. 1990-02-19 David Lawrence (tale@pogo.ai.mit.edu) @@ -10110,9 +10110,9 @@ * calendar.el (french-calendar-leap-year-p): Rewritten with corrected rule. - (calendar-absolute-from-french): Fixed comments. + (calendar-absolute-from-french): Fix comments. (calendar-french-from-absolute): Rewrote using calendar-sum. - (cursor-to-french-calendar-date): Simplified and corrected spelling. + (cursor-to-french-calendar-date): Simplify and corrected spelling. 1990-02-06 Richard Stallman (rms@mole.ai.mit.edu) @@ -10151,9 +10151,9 @@ 1990-01-27 Ed Reingold (reingold@emr.cs.uiuc.edu) - * calendar.el (scroll-calendar-left): Fixed so it works when the cursor + * calendar.el (scroll-calendar-left): Fix so it works when the cursor is not positioned on a day. - (cursor-to-calendar-day-of-year): Fixed so that "day" is properly + (cursor-to-calendar-day-of-year): Fix so that "day" is properly pluralized, depending how many days remain in the year. (french-calendar-leap-year-p): New function. (french-calendar-last-day-of-month): New function. @@ -10222,14 +10222,14 @@ 1990-01-11 Ed Reingold (reingold@emr.cs.uiuc.edu) - * diary.el (list-diary-entries): Deleted several lines of extraneous + * diary.el (list-diary-entries): Delete several lines of extraneous code and added `nongregorian-diary-listing-hook' to the list of hooks called@the end; this is for use in including Hebrew, Islamic, Julian, or ISO diary entries. A similar `nongregorian-diary-marking-hook' was added to the list of hooks called at the end of mark-diary-entries for the same reason. - (diary-name-pattern): Fixed the documentation and added an optional + (diary-name-pattern): Fix the documentation and added an optional parameter FULLNAME which insists on the full spelling of the name; this is also for use in marking Hebrew or Islamic diary entries (those month names are not unique in the first three characters). @@ -10241,8 +10241,8 @@ (list-islamic-diary-entries): New function. (mark-islamic-calendar-date-pattern): New function. - (list-diary-entries): Added nongregorian-diary-listing-hook. - (mark-diary-entries): Added nongregorian-diary-marking-hook. + (list-diary-entries): Add nongregorian-diary-listing-hook. + (mark-diary-entries): Add nongregorian-diary-marking-hook. * calendar.el: Added documentation for the hooks described above. @@ -10256,7 +10256,7 @@ 1990-01-08 Robert J. Chassell (bob@apple-gunkies.ai.mit.edu) * texnfo-upd.el (texinfo-update-node, texinfo-sequential-node-update): - Fixed auto-fill-hook bug. + Fix auto-fill-hook bug. 1990-01-08 Joseph Arceneaux (jla@spiff) @@ -10265,7 +10265,7 @@ 1990-01-08 Ed Reingold (reingold@emr.cs.uiuc.edu) * calendar.el (calendar-date-is-visible-p): - Fixed so it does not switch to the calendar buffer. + Fix so it does not switch to the calendar buffer. * diary.el (prepare-fancy-diary-buffer): Compute the list of holidays only once for each three-month period, not once for each date @@ -10275,12 +10275,12 @@ 1990-01-07 Ed Reingold (reingold@emr.cs.uiuc.edu) * calendar.el: Fixed the value of list-diary-entries-hook. - (regenerate-calendar-window): Changed (update-display) to (sit-for 0). + (regenerate-calendar-window): Change (update-display) to (sit-for 0). Corrected several instances of "dairy" to "diary". - (describe-calendar-mode): Added this function to issue the message + (describe-calendar-mode): Add this function to issue the message "Preparing..." to `?' key in calendar-mode because it's so incredibly slow for describe-mode to prepare the help buffer. - (calendar-holidays): Fixed the examples in the doc-string. + (calendar-holidays): Fix the examples in the doc-string. * diary.el: Corrected several instances of "dairy" to "diary". @@ -10323,7 +10323,7 @@ (calendar-iso-from-absolute): New function. (calendar-absolute-from-iso): New function. - (cursor-to-iso-calendar-date): Added `D' calendar command to give + (cursor-to-iso-calendar-date): Add `D' calendar command to give the day number in the Gregorian year and number of days remaining. (mark-diary-entries): Made two-digit abbreviated years acceptable in diary entries. Changed possible diary entry styles: DAY @@ -10338,11 +10338,11 @@ (all functions containing the word `hebrew'). (list-diary-entries, mark-diary-entries) (include-other-diary-files, mark-included-diary-files): - Added the possibility of `shared diary files' with a recursive + Add the possibility of `shared diary files' with a recursive include mechanism like the C preprocessor. (list-calendar-holidays): Eliminated the 'special class of holidays, rewriting the entire mechanism to make it more general. - (calendar-holiday-function-float): Changed the 'float class of + (calendar-holiday-function-float): Change the 'float class of holidays so that negative values count backward from end of month: 5 is no longer used for the last occurrence of a day in a month; -1 is used instead. @@ -10408,8 +10408,8 @@ 1989-12-11 David Lawrence (tale@cocoa-puffs) - * telnet.el: Converted to use comint. Removed - delete-char-or-send-eof and telnet-copy-last-input. Added + * telnet.el: Converted to use comint. + Removed delete-char-or-send-eof and telnet-copy-last-input. Added telnet-mode-hook. Modified telnet-filter to insert-before-markers at the process-mark. @@ -10418,8 +10418,8 @@ * prolog.el: Converted to use comint. Replaced copy-keymap for copy-alist of comint-mode-map. - * kermit.el: Converted to use comint. Replaced - kermit-clean-filter with a more efficient version. + * kermit.el: Converted to use comint. + Replaced kermit-clean-filter with a more efficient version. * comint.el: Added optional arguments ``terminator'' and ``delete'' to comint-send-input, for processes that want to see @@ -10449,7 +10449,7 @@ 1989-12-05 David Lawrence (tale@wheat-chex) * comint.el (new file): - Added FSF copyright. + Add FSF copyright. Moved bindings off of C-c LETTER. Cleaned up references to cmu* files. Made comint-send-input do unconditional end-of-line before processing. @@ -10594,7 +10594,7 @@ * x-mouse.el (x-paste-text): push-mark before inserting text. (x-insert-selection, x-select): - Moved these functions over from mouse.el. + Move these functions over from mouse.el. 1989-10-12 Richard Stallman (rms@mole.ai.mit.edu) @@ -10768,7 +10768,7 @@ 1989-09-11 Robert J. Chassell (bob@apple-gunkies.ai.mit.edu) * texinfo.el (texinfo-update-node, texinfo-make-menu) - (texinfo-master-menu, texinfo-sequential-node-update): Added functions + (texinfo-master-menu, texinfo-sequential-node-update): Add functions to insert or update the next, previous, and up node pointers in a Texinfo file, or alternatively to insert node pointers as a depth-first traversal---sequentially through the file, each pointing to the next @@ -10953,7 +10953,7 @@ 1989-07-12 Joseph Arceneaux (jla@spiff) - * lisp.el (insert-parentheses): Changed conditions for pre- and + * lisp.el (insert-parentheses): Change conditions for pre- and post- insertion of blanks. * bytecomp.el (byte-compile-file): If current buffer is in @@ -11072,7 +11072,7 @@ 1989-06-08 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu) - * term/x-win.el (new-screen): Added this function, which is the default + * term/x-win.el (new-screen): Add this function, which is the default auto-screen function. It uses new variables new-screen-x-delta and new-screen-y-delta. (next-multiscreen-window, previous-multiscreen-window): @@ -11200,7 +11200,7 @@ 1989-05-15 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu) - * tags.el (next-file): Fixed typo: " *next-file*" --> "*next-file*" + * tags.el (next-file): Fix typo: " *next-file*" --> "*next-file*" 1989-05-14 Richard Stallman (rms@mole.ai.mit.edu) @@ -11280,7 +11280,7 @@ confusing and incompatible with xterm. * mouse.el (mouse-scroll, mouse-del-char, mouse-kill-line) - (narrow-window-to-region, mouse-window-to-region): Added these + (narrow-window-to-region, mouse-window-to-region): Add these new functions. 1989-05-08 Richard Stallman (rms@mole.ai.mit.edu) @@ -11439,7 +11439,7 @@ * replace.el (occur-mode-goto-occurrence): Insure arg to count-lines is@start of line. - * replace.el (occur): Removed an extraneous save-excursion. + * replace.el (occur): Remove an extraneous save-excursion. * replace.el (perform-replace): Make ! undo as a unit. @@ -11530,7 +11530,7 @@ (view-exit): Restore old mode from those local variables. Apply specified fn to buffer that was viewed. This is on C-c and q. - (view-command-loop): Deleted. + (view-command-loop): Delete. (view-window-size): Now applies to selected window. * startup.el (normal-top-level): Use PWD envvar to set default dir. @@ -11651,8 +11651,8 @@ (bibtex-enclosing-reference, bibtex-enclosing-regexp, bibtex-flash-entr) (bibtex-flash-head, bibtex-inside-field, bibtex-make-optional-entry) (bibtex-remove-OPT): New functions. - (bibtex-find-it, bibtex-make-OPT-entry, bibtex-next-position): Deleted. - (kill-current-line): Deleted. + (bibtex-find-it, bibtex-make-OPT-entry, bibtex-next-position): Delete. + (kill-current-line): Delete. (bibtex-mode-map): C-c keys to make entries moved to C-c C-e. (general): Use regexps instead of simple-minded cursor motion. New keys include C-c C-p, C-c C-n, C-c C-k, C-c C-d, C-c C-c, TAB, LF. @@ -12400,7 +12400,7 @@ * compile.el (grep): Use grep-command for program. * loaddefs.el (grep-command): New variable. - (compile-command): Moved to compile.el. + (compile-command): Move to compile.el. * c-mode.el (electric-c-terminator): Make insertpos a marker. diff --git a/lisp/ChangeLog.6 b/lisp/ChangeLog.6 index dc2722105fe..c8e07b65368 100644 --- a/lisp/ChangeLog.6 +++ b/lisp/ChangeLog.6 @@ -3687,7 +3687,7 @@ When changing the environment, avoid need for setenv. 1996-01-05 Karl Eichwalder - Karl Fogel + Karl Fogel * bookmark.el: "cyclic.com" addresses changed to "red-bean.com". (bookmark-bmenu-mode-map): Don't bind C-k. diff --git a/lisp/ChangeLog.7 b/lisp/ChangeLog.7 index a4f02875972..7c553970286 100644 --- a/lisp/ChangeLog.7 +++ b/lisp/ChangeLog.7 @@ -13,10 +13,10 @@ * speedbar.el (speedbar-timer-fn): Disable updating if the frame is an icon, or if the user is using the minibuffer. - (speedbar-key-map): Added Q binding to destroy the frame. - (speedbar-easymenu-definition-trailer): Added Quit item. + (speedbar-key-map): Add Q binding to destroy the frame. + (speedbar-easymenu-definition-trailer): Add Quit item. (speedbar-frame-mode): Set the frame position at creation time. - (speedbar-file-unshown-regexp): Added .# lock files. + (speedbar-file-unshown-regexp): Add .# lock files. 1998-08-18 Kenichi Handa @@ -56,8 +56,8 @@ 1998-08-17 Kenichi Handa - * international/mule-cmds.el (set-language-environment): Reset - syntax and case table to the defaults if the value of + * international/mule-cmds.el (set-language-environment): + Reset syntax and case table to the defaults if the value of unibyte-syntax key is nil. 1998-08-16 Richard Stallman @@ -86,8 +86,8 @@ * international/mule-cmds.el (language-info-alist): Doc-string modified. - (set-language-info-alist): Fix typo in doc-string. Update - setup-language-environment-map unconditionally. + (set-language-info-alist): Fix typo in doc-string. + Update setup-language-environment-map unconditionally. (mule-keymap): Key bindings for set-selection-coding-system and set-next-selection-coding-system. (set-coding-system-map): Add items of set-selection-coding-system @@ -110,13 +110,13 @@ 1998-08-14 Andreas Schwab - * international/mule-cmds.el (select-safe-coding-system): If - default-coding-system is no-conversion return that, it is always + * international/mule-cmds.el (select-safe-coding-system): + If default-coding-system is no-conversion return that, it is always safe. 1998-08-13 Eric Ludlam - * speedbar.el (speedbar-frame-parameters): Removed scroll-bar-width. + * speedbar.el (speedbar-frame-parameters): Remove scroll-bar-width. 1998-08-13 Richard Stallman @@ -124,9 +124,9 @@ * dired-aux.el (dired-do-rename-regexp): Doc fix. - * midnight.el (midnight-float-time): Renamed from float-time. - (midnight-time-float): Renamed from time-float. - (midnight-buffer-display-time): Renamed from buffer-display-time. + * midnight.el (midnight-float-time): Rename from float-time. + (midnight-time-float): Rename from time-float. + (midnight-buffer-display-time): Rename from buffer-display-time. (midnight-mode): Specify :initialize. Use nil as default value. * complete.el (PC-do-completion): Exclude ./ and ../ from completion. @@ -201,14 +201,14 @@ (read-language-name): Handle the case that the arg KEY is nil. (describe-language-environment): Handle input-method property. - * international/quail.el (quail-start-translation): If - enable-multibyte-characters is nil, convert multibyte character to + * international/quail.el (quail-start-translation): + If enable-multibyte-characters is nil, convert multibyte character to unibyte. (quail-start-conversion): Likewise. * language/: All files under this directory modified as below. - (setup-XXX-environment): Just call set-language-environment. If - they used to do some other jobs than what done by + (setup-XXX-environment): Just call set-language-environment. + If they used to do some other jobs than what done by set-language-environment, those jobs are done in setup-XXX-environment-internal now. ("LANGUAGE-ENVIRONMENT"): Delete property setup-function or change @@ -278,7 +278,7 @@ 1998-08-08 Eric M. Ludlam * speedbar.el (speedbar-edit-line, speedbar-buffer-kill-buffer) - (speedbar-buffer-revert-buffer): Updated buffer finding regex to + (speedbar-buffer-revert-buffer): Update buffer finding regex to handle the [?] tag. (speedbar-find-selected-file): New function. (speedbar-clear-current-file): Uses `speedbar-find-selected-file'. @@ -364,18 +364,18 @@ (quail-start-translation): Handle the case the arg KEY is nil. Bind echo-keystrokes and help-char. Initialize quail-current-str to "". If input-method-use-echo-area is non-nil, call - read-key-sequence with appropriate PROMPT arg. Setup - last-command-event by local variable `keyseq'. Generate an event + read-key-sequence with appropriate PROMPT arg. + Setup last-command-event by local variable `keyseq'. Generate an event list form quail-current-str. If input-method-exit-on-first-char is non-nil, return only the first event. - (quail-start-conversion): Likewise. Initialize - quail-conversion-str to "". Generate an event list form + (quail-start-conversion): Likewise. + Initialize quail-conversion-str to "". Generate an event list form quail-conversion-str. (quail-update-translation): Expect that the function given by (quail-update-translation-function) returns a new control-flag. - Handle the case the length of quail-current-key is 1. Use - string-as-unibyte if enable-multibyte-characters is nil. Always - assures that quail-current-str is Lisp string. + Handle the case the length of quail-current-key is 1. + Use string-as-unibyte if enable-multibyte-characters is nil. + Always assures that quail-current-str is Lisp string. (quail-self-insert-command): Use `or' instead of `unless'. (quail-update-current-translations): Always assures that quail-current-str is Lisp string. @@ -429,14 +429,14 @@ 1998-08-04 Eric Ludlam - * speedbar.el (speedbar-refresh): Removed special code to remove + * speedbar.el (speedbar-refresh): Remove special code to remove the speedbar update message. Not necessary here. (speedbar-timer-fn): Add code to remove the updating message and thus restore the minibuffer. - (speedbar-center-buffer-smartly): Fixed center error to handle + (speedbar-center-buffer-smartly): Fix center error to handle the whole buffer. (speedbar-delete-subblock): Rewrote to be more robust, less clever. - (speedbar-timer-fn): Removed short display time for messages. + (speedbar-timer-fn): Remove short display time for messages. 1998-08-04 Dave Love @@ -445,8 +445,8 @@ 1998-08-04 Eli Zaretskii - * international/mule.el (find-new-buffer-file-coding-system): When - inhibit-eol-conversion is non-nil and the buffer didn't already + * international/mule.el (find-new-buffer-file-coding-system): + When inhibit-eol-conversion is non-nil and the buffer didn't already set a fully-qualified coding system, force -unix eol-type. 1998-08-04 Richard Stallman @@ -469,15 +469,15 @@ 1998-08-03 Eric Ludlam - * info.el (Info-speedbar-hierarchy-buttons): Improved the speedbar + * info.el (Info-speedbar-hierarchy-buttons): Improve the speedbar frame management. - * speedbar.el (speedbar-update-current-file): Added call to + * speedbar.el (speedbar-update-current-file): Add call to `speedbar-center-buffer-smartly' to improve the display. (speedbar-center-buffer-smartly) Fixed off-by-one error in window height calculation. (speedbar-hack-buffer-menu): New function. - (speedbar-frame-parameters): Removed scroll bar width. + (speedbar-frame-parameters): Remove scroll bar width. (speedbar-frame-mode): Change pointer shape for X and W32 window-systems only. When window-system is pc, bind the speedbar frame name to "Speedbar", and select that frame so it is @@ -488,8 +488,8 @@ (speedbar-directory-buttons-follow): Support both upper- and lower-case drive letters. Use directory-sep-char instead of a literal backslash. - (speedbar-reconfigure-keymaps): Call - `easy-menu-remove' before reconfiguring for a new menu bar. + (speedbar-reconfigure-keymaps): + Call `easy-menu-remove' before reconfiguring for a new menu bar. (speedbar-previous-menu): New Variable. (speedbar-frame-plist): Remove pointers. (speedbar-refresh): Prevent the mark from being deactivated. @@ -505,8 +505,8 @@ * international/kkc.el (kkc-lookup-cache): Initialize it to nil. (kkc-lookup-cache-tag): New constant. - (kkc-lookup-key): If kkc-lookup-cache is nil, initialize it. Use - kkc-init-file-name. + (kkc-lookup-key): If kkc-lookup-cache is nil, initialize it. + Use kkc-init-file-name. (kkc-region): Fix previous change. Call kkc-error on error. (kkc-shorter-conversion, kkc-longer-phrase): New functions. (kkc-keymap): Bind them to "I" and "O" respectively. @@ -547,8 +547,8 @@ * language/cyril-util.el (cyrillic-encode-koi8-r-char): New function. (cyrillic-encode-alternativnyj-char): New function. - * language/cyrillic.el (cyrillic-koi8-r-decode-table): New - variable. + * language/cyrillic.el (cyrillic-koi8-r-decode-table): + New variable. (cyrillic-koi8-r-encode-table): Likewise. (ccl-decode-koi8): Use cyrillic-koi8-r-decode-table. (ccl-encode-koi8): Use cyrillic-koi8-r-encode-table. @@ -558,10 +558,10 @@ charset-origin-alist properties. (cyrillic-alternativnyj-decode-table): New variable. (cyrillic-alternativnyj-encode-table): Likewise. - (ccl-decode-alternativnyj): Use - cyrillic-alternativnyj-decode-table. - (ccl-encode-alternativnyj): Use - cyrillic-alternativnyj-encode-table. + (ccl-decode-alternativnyj): + Use cyrillic-alternativnyj-decode-table. + (ccl-encode-alternativnyj): + Use cyrillic-alternativnyj-encode-table. (ccl-encode-alternativnyj-font): Likewise. (cyrillic-alternativnyj-nonascii-translation-table): New variable. ("Cyrillic-ALT"): Add nonascii-translation-table and @@ -615,8 +615,8 @@ * emacs-lisp/cl-indent.el (lisp-indent-defun-method): New variable. (common-lisp-indent-function): Use it. (lisp-indent-259): Uncomment the `&lambda' code. - (top-level let): Remove duplicate `catch' and `block'. Use - `&lambda' when appropriate. Now the lambda lists are indented + (top-level let): Remove duplicate `catch' and `block'. + Use `&lambda' when appropriate. Now the lambda lists are indented appropriately. 1998-07-30 Richard Stallman @@ -697,7 +697,7 @@ 1998-07-27 Richard Stallman * textmodes/flyspell.el (flyspell-emacs-popup): - Renamed from flyspell-gnuemacs-popup. Callers changed. + Rename from flyspell-gnuemacs-popup. Callers changed. (push): Macro deleted. Callers changed to do it explicitly. (flyspell-incorrect-face, flyspell-duplicate-face): Use defface. (flyspell-incorrect-color): Variable deleted. @@ -705,7 +705,7 @@ (flyspell-underline-p): Variable deleted. (flyspell-font-lock-make-face): Function deleted. (flyspell-mark-duplications-flag): - Renamed from flyspell-doublon-as-error-flag. + Rename from flyspell-doublon-as-error-flag. (flyspell-mode-on): Delete the debugging message. (flyspell-mode-off): Delete the debugging message. (flyspell-mode-on): Set flyspell-generic-check-word-p @@ -796,16 +796,16 @@ 1998-07-25 Kenichi Handa * international/mule.el (auto-coding-alist): New variable. - (set-auto-coding): Argument FILENAME is added. Check - auto-coding-alist at first. + (set-auto-coding): Argument FILENAME is added. + Check auto-coding-alist at first. * international/kkc.el (kkc-region): Unwind-protect the conversion process. (kkc-show-conversion-list-update): Pay attention to the length of kkc-show-conversion-list-index-chars. - * international/mule-cmds.el (find-multibyte-characters): New - function. + * international/mule-cmds.el (find-multibyte-characters): + New function. (select-safe-coding-system): Highlight characters which can't be encoded. Show list of such characters also in *Warning* buffer. @@ -822,10 +822,10 @@ (crisp-last-last-command): Doc fix. (mark-something): Function deleted. (crisp-mark-line): Avoid using mark-something. - (crisp-region-active): Renamed from region-active. - (crisp-set-clipboard): Renamed from copy-primary-selection. - (crisp-kill-region): Renamed from kill-primary-selection. - (crisp-yank-clipboard): Renamed from yank-clipboard-selection. + (crisp-region-active): Rename from region-active. + (crisp-set-clipboard): Rename from copy-primary-selection. + (crisp-kill-region): Rename from kill-primary-selection. + (crisp-yank-clipboard): Rename from yank-clipboard-selection. * files.el (basic-save-buffer-2): New function. (basic-save-buffer-1): Use basic-save-buffer-2, @@ -850,8 +850,8 @@ 1998-07-23 Ken'ichi Handa - * international/quail.el (quail-start-translation): Call - this-single-command-raw-keys instead of this-single-command-keys. + * international/quail.el (quail-start-translation): + Call this-single-command-raw-keys instead of this-single-command-keys. (quail-start-conversion): Likewise. 1998-07-23 Kenichi Handa @@ -862,8 +862,8 @@ not isearch-printing-char, don't read multibyte chars from minibuffer, but just call isearch-process-search-char. - * international/quail.el (quail-start-translation): Use - this-single-command-keys to get raw events instead of + * international/quail.el (quail-start-translation): + Use this-single-command-keys to get raw events instead of listify-key-sequence. (quail-start-conversion): Likewise. @@ -878,7 +878,7 @@ (imenu-extract-index-name-function, imenu-default-goto-function) (imenu-sort-function, imenu-prev-index-position-function): Likewise. - * ange-ftp.el (ange-ftp-reread-dir): Renamed from `re-read'. + * ange-ftp.el (ange-ftp-reread-dir): Rename from `re-read'. Old name defined as alias. Doc fix. 1998-07-21 Kenichi Handa @@ -888,8 +888,8 @@ (kkc-terminate): Update kkc-overlay-head correctly. (kkc-cancel): Don't call kkc-terminate, but set kkc-converting to nil. - * international/quail.el (quail-simple-translation-keymap): Typo - in doc-string fixed. + * international/quail.el (quail-simple-translation-keymap): + Typo in doc-string fixed. (quail-start-translation): Check start position of quail-overlay before calling quail-overlay-region-events. (quail-start-conversion): Likewise. @@ -915,8 +915,8 @@ * isearch.el (isearch-input-method-function): New variable. (isearch-input-method-local-p): New variable. - (isearch-mode): Setup the above two variable. Set - input-method-function to nil locally. + (isearch-mode): Setup the above two variable. + Set input-method-function to nil locally. (isearch-done): Restore the previous value of input-method-function. @@ -939,7 +939,7 @@ * international/kkc.el (kkc-region): Fix the return value. * international/isearch-x.el - (isearch-toggle-specified-input-method): Adjusted for the change + (isearch-toggle-specified-input-method): Adjust for the change in isearch.el. (isearch-toggle-input-method): Likewise. (isearch-minibuffer-local-map): New variable. @@ -949,8 +949,8 @@ characters from minibuffer with the keymap isearch-minibuffer-local-map. - * international/mule-cmds.el (read-multilingual-string): Don't - activate an input method in the current buffer, but just bind + * international/mule-cmds.el (read-multilingual-string): + Don't activate an input method in the current buffer, but just bind current-input-method. * language/japan-util.el (japanese-replace-region): New function. @@ -964,7 +964,7 @@ 1998-07-17 Simon Marshall - * lazy-lock.el (lazy-lock-fontify-after-visage): Renamed from + * lazy-lock.el (lazy-lock-fontify-after-visage): Rename from lazy-lock-fontify-after-outline. (lazy-lock-install-hooks): Add it to hs-hide-hook too. (lazy-lock-unstall): Remove it from hs-hide-hook too. @@ -989,14 +989,14 @@ * international/kkc.el (kkc-show-conversion-list-index-chars): Default value changed. - (kkc-keymap): Renamed from kkc-mode-map. Key binding for + (kkc-keymap): Rename from kkc-mode-map. Key binding for kkc-non-kkc-command are deleted. (kkc-mode): This function deleted. (kkc-canceled): This variable deleted. (kkc-converting): New variable. (kkc-region): 3rd optional arg is deleted. Completely rewritten to adjust for the change in quail.el. - (kkc-terminate, kkc-cancel): Adjusted for the change of + (kkc-terminate, kkc-cancel): Adjust for the change of kkc-region. (kkc-non-kkc-command): This function deleted. (kkc-select-from-list): Use last-input-event instead of @@ -1008,16 +1008,16 @@ (quail-current-str, quail-current-translations): Likewise. (quail-reset-conversion-region): This variable deleted. (quail-use-package): Call quail-activate at the tail. - (quail-translation-keymap, quail-simple-translation-keymap): Key - bindings for quail-execute-non-quail-command deleted. + (quail-translation-keymap, quail-simple-translation-keymap): + Key bindings for quail-execute-non-quail-command deleted. (quail-conversion-keymap): Likewise. Add key bindings for quail-self-insert-command. (quail-delete-overlays): Check overlay-start for overlays before deleting them. (quail-mode): This function deleted. (quail-inactivate, quail-activate): New functions. - (quail-saved-current-map, quail-saved-current-buffer): These - variables deleted. + (quail-saved-current-map, quail-saved-current-buffer): + These variables deleted. (quail-toggle-mode-temporarily, quail-execute-non-quail-command): These functions deleted. (quail-exit-conversion-mode, quail-prefix-arg): These variables @@ -1032,9 +1032,9 @@ (quail-start-conversion): New function. (quail-terminate-translation): Just set quail-translating to nil. (quail-update-translation): Put some events back to - unread-input-method-events instead of unread-command-events. Call - quail-error instead of error. - (quail-self-insert-command): Adjusted for the change of + unread-input-method-events instead of unread-command-events. + Call quail-error instead of error. + (quail-self-insert-command): Adjust for the change of quail-start-translation. (quail-next-translation): Don't call quail-execute-non-quail-command, instead, put an event back of @@ -1079,7 +1079,7 @@ (crisp-mode-map): Make this a sparse keymap parented from current-global-map. (crisp-mode-original-keymap): Don't copy the keymap. - (crisp-last-last-command): Renamed from last-last-command. defvar it. + (crisp-last-last-command): Rename from last-last-command. defvar it. (crisp-mode): Honor ARG. (crisp-kill-line, crisp-copy-line): When a region isn't highlighted, @@ -1145,7 +1145,7 @@ 1998-07-12 Richard Stallman * international/mule.el (set-selection-coding-system): - Renamed from set-clipboard-coding-system. + Rename from set-clipboard-coding-system. Set the variable's new name, selection-coding-system. * mail/rmailout.el (rmail-output-to-rmail-file): @@ -1155,9 +1155,9 @@ * speedbspec.el: Deleted; now integrated into speedbar.el. * speedbar.el: More commentary. - (speedbar-xemacsp): Moved definition. - (speedbar-initial-expansion-mode-list): Was - `speedbar-initial-expansion-list' and now has multiple modes. + (speedbar-xemacsp): Move definition. + (speedbar-initial-expansion-mode-list): + Was `speedbar-initial-expansion-list' and now has multiple modes. (speedbar-stealthy-function-list): Now has mode labels. (speedbar-initial-expansion-list-name) (speedbar-previously-used-expansion-list-name) @@ -1165,27 +1165,27 @@ (speedbar-tag-hierarchy-method, speedbar-tag-split-minimum-length) (speedbar-tag-regroup-maximum-length) (speedbar-hide-button-brackets-flag): New variables. - (speedbar-special-mode-expansion-list): Updated documentation. + (speedbar-special-mode-expansion-list): Update documentation. (speedbar-navigating-speed, speedbar-update-speed): Phasing out. - (speedbar-vc-indicator): Removed space from this var. + (speedbar-vc-indicator): Remove space from this var. (speedbar-indicator-separator, speedbar-obj-do-check) (speedbar-obj-to-do-point, speedbar-obj-indicator, speedbar-obj-alist) (speedbar-indicator-regex): New variables. (speedbar-directory-unshown-regexp): New variable. - (speedbar-supported-extension-expressions): Added more extensions. + (speedbar-supported-extension-expressions): Add more extensions. (speedbar-add-supported-extension) (speedbar-add-ignored-path-regexp): Made interactive. (speedbar-update-flag): Nil w/ no window system. - (speedbar-file-key-map): Moved some key bindings from + (speedbar-file-key-map): Move some key bindings from `speedbar-key-map' to this map. (speedbar-make-specialized-keymap): New function. (speedbar-file-key-map): New key map. - (speedbar-easymenu-definition-special): Updated to new functions. - (speedbar-easymenu-definition-trailer): Changed conditional part. - (speedbar-frame-mode): Removed commented code, fixed W32 cursor + (speedbar-easymenu-definition-special): Update to new functions. + (speedbar-easymenu-definition-trailer): Change conditional part. + (speedbar-frame-mode): Remove commented code, fixed W32 cursor bug, Updated to better handle terminal frames. (speedbar-switch-buffer-attached-frame): New function. - (speedbar-mode): Updated documentation, no local keymap, + (speedbar-mode): Update documentation, no local keymap, correct `temp-buffer-show-function' use, enable mouse-tracking. (speedbar-show-info-under-mouse): New function. (speedbar-reconfigure-keymaps): Was `speedbar-reconfigure-menubar'. @@ -1195,9 +1195,9 @@ (speedbar-restricted-move, speedbar-restricted-next) (speedbar-restricted-prev, speedbar-navigate-list) (speedbar-forward-list, speedbar-backward-list): New commands. - (speedbar-refresh): Updated message printing & verbosity. - (speedbar-item-load): Updated message. - (speedbar-item-byte-compile): Updated doc & reset scanners. + (speedbar-refresh): Update message printing & verbosity. + (speedbar-item-load): Update message. + (speedbar-item-byte-compile): Update doc & reset scanners. (speedbar-item-info): Overhauled with more details. (speedbar-item-copy): Update messages. (speedbar-generic-item-info): New function. @@ -1245,7 +1245,7 @@ * mail/rmail.el: No longer depends on speedbspec for byte compile. (rmail-speedbar-match-folder-regexp): New variable. - (rmail-speedbar-menu-items): Updated speedbar menu items. + (rmail-speedbar-menu-items): Update speedbar menu items. (rmail-speedbar-key-map): New keymap. (rmail-install-speedbar-variables): New function. Install speedbar keymap only when speedbar is loaded. @@ -1264,13 +1264,13 @@ * gud.el (gud-speedbar-key-map): New variable. (gud-install-speedbar-variables): New function Install speedbar keymap only when speedbar is loaded. - (gud-gdb-get-stackframe): Added ":" to regex for c++. + (gud-gdb-get-stackframe): Add ":" to regex for c++. 1998-07-09 Sam Steingold * emacs-lisp/cl-indent.el: Indent `handler-case' correctly. - * font-lock.el (lisp-font-lock-keywords): Fontify - `handler-case', `ccase', `ctypecase', `assert', `error'. + * font-lock.el (lisp-font-lock-keywords): + Fontify `handler-case', `ccase', `ctypecase', `assert', `error'. 1998-07-09 Andrew Innes @@ -1342,8 +1342,8 @@ 1998-07-05 Richard Stallman - * mail/mail-utils.el (rmail-dont-reply-to): Understand - about doublequotes; don't be fooled by commas inside them. + * mail/mail-utils.el (rmail-dont-reply-to): + Understand about doublequotes; don't be fooled by commas inside them. 1998-07-04 Richard Stallman @@ -1378,7 +1378,7 @@ 1998-07-03 Espen Skoglund - * pascal.el (pascal-insert-block): Fixed space-deletion bug in + * pascal.el (pascal-insert-block): Fix space-deletion bug in front of the "begin" string. (pascal-beg-of-defun): Used to locate the beginning of a function incorrectly when a function contained several begin-end blocks. @@ -1398,7 +1398,7 @@ * dos-vars.el (dos-printer): Obsolete variable deleted. (dos-ps-printer): Likewise. - * dos-w32.el (direct-print-region-function): Renamed from + * dos-w32.el (direct-print-region-function): Rename from dos-print-region-function. Added &rest keyword. (print-region-function): Set to direct-print-region-function. (lpr-headers-switches): Initialize. @@ -1441,12 +1441,12 @@ 1998-07-03 Eric Ludlam - * emacs-lisp/checkdoc.el (checkdoc): Updated commentary. - (checkdoc-autofix-flag): Updated doc. - (checkdoc-force-docstrings-flag): Updated doc. + * emacs-lisp/checkdoc.el (checkdoc): Update commentary. + (checkdoc-autofix-flag): Update doc. + (checkdoc-force-docstrings-flag): Update doc. (checkdoc-force-history-flag): New flag. - (checkdoc-triple-semi-comment-check-flag): Fixed name. - (checkdoc-spellcheck-documentation-flag): Fixed doc. + (checkdoc-triple-semi-comment-check-flag): Fix name. + (checkdoc-spellcheck-documentation-flag): Fix doc. (checkdoc-ispell-lisp-words): Update default value. (checkdoc-generate-compile-warnings-flag, checkdoc-proper-noun-list) (checkdoc-proper-noun-regexp, checkdoc-symbol-words): New variables. @@ -1458,22 +1458,22 @@ Cursor now sits next to the error, forcing scrolling if needed, and using a better centering algorithm, and much better error navigation after choosing "f"ix. - (checkdoc-next-error): Added parameter ENABLE-FIX. + (checkdoc-next-error): Add parameter ENABLE-FIX. (checkdoc-next-message-error, checkdoc-recursive-edit): New functions. (checkdoc-start): Was `checkdoc', uses new note taking system. (checkdoc-current-buffer, checkdoc-continue, checkdoc-comments): - Updated to use new note taking system. + Update to use new note taking system. (checkdoc-rogue-spaces, checkdoc-rogue-space-check-engine): - Added INTERACT parameter, uses new warnings functions. + Add INTERACT parameter, uses new warnings functions. (checkdoc-message-text, checkdoc-defun): - Updated to use new note taking system. + Update to use new note taking system. (checkdoc-ispell-current-buffer, checkdoc-ispell-interactive): Fix doc. (checkdoc-ispell-message-text, checkdoc-ispell-start): New function. (checkdoc-create-error, checkdoc-error-text, checkdoc-error-start) (checkdoc-error-end, checkdoc-error-unfixable): New functions. - (checkdoc-minor-keymap): Updated keybinds to new interactive functions, + (checkdoc-minor-keymap): Update keybinds to new interactive functions, completely re-arranged the minor-mode menu. - (checkdoc-this-string-valid): Moved no doc-string warning here, + (checkdoc-this-string-valid): Move no doc-string warning here, and added autofix if a comment already exists there. (checkdoc-this-string-valid-engine): Fix doc, robusted doc finder. All previously returned errors now call `checkdoc-create-error'. @@ -1497,7 +1497,7 @@ for history and commentary. All previously returned errors now call `checkdoc-create-error'. Message spelling and format. (checkdoc-message-text-search): - Moved parts to `checkdoc-message-text-next-string'. + Move parts to `checkdoc-message-text-next-string'. (checkdoc-message-text-next-string): New function. (checkdoc-message-text-engine): All previously returned errors now call `checkdoc-create-error'. Can find/skip 'format' call @@ -1506,12 +1506,12 @@ (checkdoc-y-or-n-p): New function. (checkdoc-autofix-ask-replace): Update doc. Protect match-data. Correctly handle `checkdoc-autofix-flag' of 'never. New behavior - with `checkdoc-autofix-flag' of 'automatic-then-never. Better - overlay handling. - (checkdoc-output-font-lock-keywords): Updated to new output format. + with `checkdoc-autofix-flag' of 'automatic-then-never. + Better overlay handling. + (checkdoc-output-font-lock-keywords): Update to new output format. (checkdoc-pending-errors): New variable. - (checkdoc-find-error): Updated to new output format. - (checkdoc-start-section, checkdoc-error): Improved the output. + (checkdoc-find-error): Update to new output format. + (checkdoc-start-section, checkdoc-error): Improve the output. (checkdoc-show-diagnostics): Smarter show algorithm. 1998-07-03 Kenichi Handa @@ -1563,12 +1563,12 @@ * derived.el (derived-mode-hooks-name): Use -hook, not -hooks, in mode hook name. - (derived-mode-hook-name): Renamed from ...-hooks; caller changed. + (derived-mode-hook-name): Rename from ...-hooks; caller changed. 1998-07-01 Ken'ichi Handa - * international/mule.el (mule-version): Changed to 4.0. - (mule-version-date): Updated. + * international/mule.el (mule-version): Change to 4.0. + (mule-version-date): Update. 1998-06-30 Richard Stallman @@ -1679,7 +1679,7 @@ * language/korea-util.el (isearch-toggle-korean-input-method) (isearch-hangul-switch-symbol-ksc, isearch-hangul-switch-hanja): New functions. - (korean-key-bindings): Renamed from exit-korean-environment-data. + (korean-key-bindings): Rename from exit-korean-environment-data. Initialized appropriately. (setup-korean-environment): Setup key bindings according to korean-key-bindings. @@ -1714,10 +1714,10 @@ of `find-function-noselect'. (find-function-search-for-symbol): `regexp-quote' the symbol name: needed to find-function `mapcar*' for example. - (find-function-noselect): Improved docstring. Don't include + (find-function-noselect): Improve docstring. Don't include `library' in let. Use `symbol-file' instead of `describe-symbol-find-file'. - (find-function-read): Renamed from `find-function-read-function'. + (find-function-read): Rename from `find-function-read-function'. With optional arg now read a variable. (find-function-read): Separate `completing-read' calls for variables and functions. @@ -1746,7 +1746,7 @@ (find-variable-other-window): Remove most of docstring and add reference to `find-variable' instead. (find-variable-other-frame): Ditto. - (find-function-on-key): Simplified. Removed stuff now taken care + (find-function-on-key): Simplify. Removed stuff now taken care of by interactive "k". (find-function-at-point): New function. (find-variable-at-point): Ditto. @@ -1768,7 +1768,7 @@ 1998-06-24 Andrew Innes - * dos-w32.el (null-device): Renamed from grep-null-device. + * dos-w32.el (null-device): Rename from grep-null-device. 1998-06-24 Richard Stallman @@ -1795,8 +1795,8 @@ (ange-ftp-generate-anonymous-password): Use `other' widget type. * autoinsert.el (auto-insert, auto-insert-query): Use `other' widget type. - * bookmark.el (bookmark-save-flag, bookmark-version-control): Use - `other' widget type. + * bookmark.el (bookmark-save-flag, bookmark-version-control): + Use `other' widget type. * comint.el (comint-input-autoexpand): Use `other' widget type. * complete.el (PC-first-char): Use `other' widget type. * cus-edit.el (custom-magic-show): Use `other' widget type. @@ -1855,8 +1855,8 @@ 1998-06-23 Ken'ichi Handa - * international/fontset.el (x-style-funcs-alist): Remove - duplicated code. + * international/fontset.el (x-style-funcs-alist): + Remove duplicated code. 1998-06-23 Richard Stallman @@ -1896,8 +1896,8 @@ `composition'. Add property `jisx0208' to Japanese hankaku characters. (japanese-kana-table): Add more data. (japanese-symbol-table): Change the order of elements. - (japanese-katakana-region): Adjusted for the above changes. Check - character code properties directly here. + (japanese-katakana-region): Adjust for the above changes. + Check character code properties directly here. (japanese-hiragana-region): Likewise. (japanese-hankaku-region): Likewise. (japanese-zenkaku-region): Likewise. @@ -1983,8 +1983,8 @@ 1998-06-20 Kenichi Handa - * international/fontset.el (x-style-funcs-alist): If - x-make-font-demibold or x-make-font-bold return nil, don't try + * international/fontset.el (x-style-funcs-alist): + If x-make-font-demibold or x-make-font-bold return nil, don't try further style modification. * international/encoded-kb.el (encoded-kbd-self-insert-sjis): @@ -2003,8 +2003,8 @@ ethio-mode-map, and function ethio-mode. (exit-ethiopic-environment-data): New variable. (setup-ethiopic-environment): Recode information of changed key - bindings in exit-ethiopic-environment-data. Add - ethio-select-a-translation to quail-mode-hook. + bindings in exit-ethiopic-environment-data. + Add ethio-select-a-translation to quail-mode-hook. (exit-ethiopic-environment): New function. (ethio-find-file): Don't check ethio-mode. (ethio-write-file): Likewise. @@ -2067,7 +2067,7 @@ * international/mule.el (set-auto-coding): Redo the previous change. - * tar-mode.el (tar-extract): Adjusted for the change of the spec + * tar-mode.el (tar-extract): Adjust for the change of the spec of set-auto-coding-function. 1998-06-14 Richard Stallman @@ -2154,8 +2154,8 @@ * faces.el (set-face-font): Pay attention to fontset. (set-face-font-auto): Call resolve-fontset-name. - * international/fontset.el (instantiate-fontset): Delete - duplicated call of x-complement-fontset-spec. Call new-fontset + * international/fontset.el (instantiate-fontset): + Delete duplicated call of x-complement-fontset-spec. Call new-fontset with a correct argument. (x-compose-font-name): Argument name adjusted for the doc-string. (x-complement-fontset-spec): Don't alter the contents of the @@ -2163,8 +2163,8 @@ (x-style-funcs-alist): The format changed. (x-modify-font-name): New function. (create-fontset-from-fontset-spec): The arg STYLE-VARIANT-P is - changed to STYLE-VARIANT, the format also changed. Use - x-modify-font-name instead of calling functions in + changed to STYLE-VARIANT, the format also changed. + Use x-modify-font-name instead of calling functions in x-style-funcs-alist directly. (instantiate-fontset): Use x-modify-font-name instead of calling functions in x-style-funcs-alist directly. @@ -2283,8 +2283,8 @@ 1998-06-09 Ed Reingold - * calendar/cal-tex.el (cal-tex-list-diary-entries): Set - diary-display-hook correctly. + * calendar/cal-tex.el (cal-tex-list-diary-entries): + Set diary-display-hook correctly. * calendar/cal-menu.el (calendar-mouse-holidays) (calendar-mouse-view-diary-entries) @@ -2342,8 +2342,8 @@ 1998-06-08 Andrew Innes - * ange-ftp.el (ange-ftp-file-name-completion): Use - ange-ftp-this-dir instead of literal "/" when calling real + * ange-ftp.el (ange-ftp-file-name-completion): + Use ange-ftp-this-dir instead of literal "/" when calling real completion function. 1998-06-08 Richard Stallman @@ -2450,8 +2450,8 @@ 1998-06-05 Andrew Innes - * jka-compr.el (jka-compr-write-region): Ensure - `last-coding-system-used' is updated, so that basic-save-buffer + * jka-compr.el (jka-compr-write-region): + Ensure `last-coding-system-used' is updated, so that basic-save-buffer sees the right value. 1998-06-05 Richard Stallman @@ -2531,8 +2531,8 @@ * docref.el: Deleted in view of current approach to doc strings. - * startup.el (normal-top-level-add-subdirs-to-load-path): Ignore - CVS directories too. + * startup.el (normal-top-level-add-subdirs-to-load-path): + Ignore CVS directories too. 1998-06-02 Richard Stallman @@ -2571,15 +2571,15 @@ 1998-06-01 Per Starbäck - * apropos.el (apropos-variable): Fixed argument to apropos-command. + * apropos.el (apropos-variable): Fix argument to apropos-command. (apropos-command): Let `var-predicate' have higher priority than `do-all'. 1998-06-01 Dave Love * textmodes/sgml-mode.el (sgml-font-lock-keywords-1): Add -. as - NMCHARs. Elide upper case (see font-lock-defaults). Generalize - comment declaration not to exclude markup. + NMCHARs. Elide upper case (see font-lock-defaults). + Generalize comment declaration not to exclude markup. 1998-05-31 Richard Stallman @@ -2602,8 +2602,8 @@ 1998-05-31 Alan Shutko - * emacs-lisp/easy-mmode.el (easy-mmode-define-minor-mode): Add - missing format arg. + * emacs-lisp/easy-mmode.el (easy-mmode-define-minor-mode): + Add missing format arg. 1998-05-30 Dave Love @@ -2626,17 +2626,17 @@ 1998-05-30 Michael Kifer * ediff-mult.el (ediff-mark-for-hiding-at-pos) - (ediff-mark-for-operation-at-pos): Renamed from + (ediff-mark-for-operation-at-pos): Rename from ediff-mark-for-hiding, ediff-mark-for-operation. (ediff-mark-session-for-hiding, ediff-mark-session-for-operation) - (ediff-unmark-all-for-operation, ediff-unmark-all-for-hiding): New - functions. - (ediff-setup-meta-map): Changed bindings. + (ediff-unmark-all-for-operation, ediff-unmark-all-for-hiding): + New functions. + (ediff-setup-meta-map): Change bindings. * viper-cmd.el (viper-backward-Word, viper-skip-separators): Bugfix. (viper-switch-to-buffer, viper-switch-to-buffer-other-window): Bugfix. * viper-util.el (viper-skip-syntax): Bug fix for eob/bob cases. - * viper-mous.el (viper-surrounding-word): Added '_' to alpha modifiers. + * viper-mous.el (viper-surrounding-word): Add '_' to alpha modifiers. 1998-05-30 Ralph Schleicher @@ -2700,8 +2700,8 @@ 1998-05-27 Ed Reingold - * calendar/calendar.el (calendar-buffer-list): Add - other-calendars-buffer. + * calendar/calendar.el (calendar-buffer-list): + Add other-calendars-buffer. (calendar-mode): Use activate-menubar-hook only in a window system. 1998-05-27 Dave Love @@ -2749,7 +2749,7 @@ * abbrev.el: Likewise. 1998-05-26 Emilio Lopes - Karl Fogel + Karl Fogel * bookmark.el: Changes so bookmark list mode works with Info: (bookmark-jump-noselect): Use an inner save-window-excursion. @@ -2794,13 +2794,13 @@ * emacs-lisp/byte-opt.el (byte-boolean-vars): Add print-escape-nonascii. - * emacs-lisp/autoload.el (generate-file-autoloads): Set - print-escape-nonascii when printing autoload form. + * emacs-lisp/autoload.el (generate-file-autoloads): + Set print-escape-nonascii when printing autoload form. 1998-05-25 Kenichi HANDA - * international/mule.el (set-coding-priority): Call - set-coding-priority-internal at the tail. + * international/mule.el (set-coding-priority): + Call set-coding-priority-internal at the tail. 1998-05-24 Stephen Eglen @@ -2924,12 +2924,12 @@ Use translation-table, not character-translation-table, as char-table subtype. (define-translation-table): - Renamed from define-character-translation-table. + Rename from define-character-translation-table. * mule-util.el: Likewise. * mule-conf.el: Likewise. (standard-translation-table-for-decode) (standard-translation-table-for-encode): - Renamed from standard-character-translation-table-... + Rename from standard-character-translation-table-... 1998-05-21 Richard Stallman @@ -2965,17 +2965,17 @@ 1998-05-21 Eli Zaretskii - * arc-mode.el (archive-file-name-invalid-regexp): Remove. All - users changed to use file-name-invalid-regexp instead. + * arc-mode.el (archive-file-name-invalid-regexp): Remove. + All users changed to use file-name-invalid-regexp instead. * files.el (file-name-invalid-regexp): New variable, moved here from arc-mode.el. 1998-05-21 Richard Stallman * progmodes/vhdl-mode.el (vhdl-customize-colors): - Renamed from vhdl-use-default-colors, and sense reversed. + Rename from vhdl-use-default-colors, and sense reversed. (vhdl-customize-faces): - Renamed from vhdl-use-default-faces, and sense reversed. + Rename from vhdl-use-default-faces, and sense reversed. (vhdl-font-lock-init, vhdl-ps-init): Implement those changes. (vhdl-submit-bug-report): Use new variable names. @@ -2994,10 +2994,10 @@ FONTLIST). (x-style-funcs-alist): New variable. (create-fontset-from-fontset-spec): 2nd optional arg is changed - from STYLE to STYLE-VARIANT-P. The meaning also changed. Delete - unused code. Adjusted for the change of + from STYLE to STYLE-VARIANT-P. The meaning also changed. + Delete unused code. Adjusted for the change of uninstantiated-fontset-alist. - (instantiate-fontset): Adjusted for the change of + (instantiate-fontset): Adjust for the change of uninstantiated-fontset-alist. * international/mule.el (make-coding-system): If ISO2022 based @@ -3039,21 +3039,21 @@ 1998-05-20 Kenichi Handa - * international/fontset.el (x-font-name-charset-alist): New - variable. + * international/fontset.el (x-font-name-charset-alist): + New variable. (register-alternate-fontnames): Doc-string modified. (x-complement-fontset-spec): Likewise. - (x-complement-fontset-spec): Delete unused local variable. Delete - ad hoc code for Latin-1, instead refer to + (x-complement-fontset-spec): Delete unused local variable. + Delete ad hoc code for Latin-1, instead refer to x-font-name-charset-alist. (uninstantiated-fontset-alist): Format changed (BASE-FONTSET -> FONTLIST). (x-style-funcs-alist): New variable. (create-fontset-from-fontset-spec): 2nd optional arg is changed - from STYLE to STYLE-VARIANT-P. The meaning also changed. Delete - unused code. Adjusted for the change of + from STYLE to STYLE-VARIANT-P. The meaning also changed. + Delete unused code. Adjusted for the change of uninstantiated-fontset-alist. - (instantiate-fontset): Adjusted for the change of + (instantiate-fontset): Adjust for the change of uninstantiated-fontset-alist. * international/mule.el (make-coding-system): If ISO2022 based @@ -3083,7 +3083,7 @@ * international/mule-cmds.el: Several doc fixes. (get-language-info, set-language-info): Rename argument. (set-language-info-alist): Likewise. - (find-coding-systems-region-subset-p): Renamed from subset-p. + (find-coding-systems-region-subset-p): Rename from subset-p. (find-coding-systems-region): Use new name. (register-input-method): Rename argument. (activate-input-method): If INPUT-METHOD is nil, deactivate. @@ -3179,13 +3179,13 @@ (checkdoc-message-text-search, checkdoc-message-text-engine): New functions. (checkdoc-this-string-valid-engine): - Added ambiguous function/symbol checking. Added new auto-fix + Add ambiguous function/symbol checking. Added new auto-fix for missing parameters. 1998-05-16 Richard Stallman * international/mule-cmds.el (find-coding-systems-region-subset-p): - Renamed from subset-p. + Rename from subset-p. (find-coding-systems-for-charsets): Call changed. 1998-05-16 Dan Nicolaescu @@ -3217,7 +3217,7 @@ Use expand-file-name on it. * files.el (temporary-file-directory): - Renamed from system-tmp-directory. + Rename from system-tmp-directory. Value is now a directory name, not a file name. * dired-aux.el (dired-mark-subdir-files): Doc fix. @@ -3298,10 +3298,10 @@ All callers changed. (archive-unique-fname): New function. (archive-maybe-copy): Use it. - (archive-maybe-copy, archive-write-file): Bind - coding-system-for-write to no-conversion. - (archive-maybe-update, archive-mode-revert): Bind - coding-system-for-read to no-conversion. + (archive-maybe-copy, archive-write-file): + Bind coding-system-for-write to no-conversion. + (archive-maybe-update, archive-mode-revert): + Bind coding-system-for-read to no-conversion. (archive-maybe-update): Remain at the same line in the archive listing, after updating the archive. Print the buffer name of the archive to be saved. @@ -3309,8 +3309,8 @@ read-only. Don't set buffer-file-type. Remove the write-contents hook for remote archives. Warn about read-only archives inside other archives. - (archive-write-file-member): Handle remote archives. Restore - value of last-coding-system-used. + (archive-write-file-member): Handle remote archives. + Restore value of last-coding-system-used. (archive-*-write-file-member): Handle archives inside other archives. Save the value of last-coding-system-used. (archive-write-file): New optional variable FILE: where to write @@ -3442,10 +3442,10 @@ 1998-05-08 Richard Stallman - * ps-print.el (ps-alist-position): Renamed from ps-position. + * ps-print.el (ps-alist-position): Rename from ps-position. Look for ITEM as the car of an element. (ps-font-number): Use ps-alist-position. - (ps-font-alist): Renamed from ps-font-list. + (ps-font-alist): Rename from ps-font-list. * mail/reporter.el (reporter-bug-hook): Use rfc822-goto-eoh. @@ -3520,13 +3520,13 @@ 1998-05-06 Sam Steingold - * window.el (quit-window): Fixed FRAME to be the frame and + * window.el (quit-window): Fix FRAME to be the frame and never window. 1998-05-06 Michael Kifer * ediff-init.el (ediff-highlight-all-diffs, ediff-use-faces): - Changed the defaults. + Change the defaults. 1998-05-06 Richard Stallman @@ -3577,7 +3577,7 @@ 1998-05-05 Simon Marshall - * font-lock.el (lisp-font-lock-keywords-1): Fixed 1998-04-24 change; + * font-lock.el (lisp-font-lock-keywords-1): Fix 1998-04-24 change; moved defpackage to here from lisp-font-lock-keywords-2. 1998-05-05 Andreas Schwab @@ -3613,7 +3613,7 @@ Now checks for toolbar support before referring toolbars. * ediff-init.el (ediff-has-toolbar-support-p, ediff-use-toolbar-p): - Moved here from ???. + Move here from ???. * ediff-vers.el (cvs-run-ediff-on-file-descriptor): Set default-directory. @@ -3663,8 +3663,8 @@ * progmodes/compile.el (compilation-directory-stack): Doc fix. (compilation-mode): Accept optional parameter and initialize mode-name from it. - (compile-internal): Pass name-of-mode to compilation-mode. Don't - set mode-name here. + (compile-internal): Pass name-of-mode to compilation-mode. + Don't set mode-name here. (compilation-minor-mode): Don't let mode-line-process change. (compilation-next-error-locus): Use forward-char instead of move-to-column. @@ -3723,11 +3723,11 @@ 1998-05-02 Andre Spiegel - * vc-hooks.el (vc-parse-cvs-status): Optimized. Ignore - "Locally Removed" files. + * vc-hooks.el (vc-parse-cvs-status): Optimize. + Ignore "Locally Removed" files. * vc.el (vc-fetch-cvs-status): Don't specify DIR on the command line. - (vc-dired-hook): Optimized for CVS. + (vc-dired-hook): Optimize for CVS. 1998-05-02 Richard Stallman @@ -3776,19 +3776,19 @@ (file-cache-add-directory): Checks to see if directory exists before adding it. Non-existing directories are simply skipped. - * generic.el (generic): Added defgroup declaration. + * generic.el (generic): Add defgroup declaration. (generic-make-keywords-list): Uses regexp-opt. (generic-mode-set-font-lock): Uses regexp-opt. - * generic-x.el (generic-x): Added defgroup declaration. + * generic-x.el (generic-x): Add defgroup declaration. - * generic-x.el (generic-bat-mode-setup-function): Fixed comment-start + * generic-x.el (generic-bat-mode-setup-function): Fix comment-start variable. - * generic-x.el (generic-define-mswindows-modes): Enable - hosts-generic-mode and apache-generic-mode. + * generic-x.el (generic-define-mswindows-modes): + Enable hosts-generic-mode and apache-generic-mode. (generic-define-unix-modes): Enable alias-generic-mode. - (java-properties-generic-mode): Changed regexp to allow property + (java-properties-generic-mode): Change regexp to allow property and value to be separated by whitespace or an equal sign. (alias-generic-mode): Check generic-extras-enable-list before defining this mode. @@ -3815,8 +3815,8 @@ (universal-coding-system-argument): Use buffer-file-coding-system as default. - * international/quail.el (quail-show-translations): Show - followable keys in alphabetic order. + * international/quail.el (quail-show-translations): + Show followable keys in alphabetic order. 1998-04-29 Richard Stallman @@ -3937,10 +3937,10 @@ (ispell-dictionary-alist): Now customizable. Fixed type of custom variables: ispell-help-in-bufferp. (ispell-use-framepop-p): New variable. - (ispell-dictionary-alist): Added dictionaries: castellano, castellano8 + (ispell-dictionary-alist): Add dictionaries: castellano, castellano8 czech, esperanto, esperanto-tex, norsk, russian. Capitalize XEmacs correctly, and change lucid to xemacs in code. - (ispell-menu-lucid): Renamed to ispell-menu-xemacs. + (ispell-menu-lucid): Rename to ispell-menu-xemacs. Changed string compares for version number to be correct for XEmacs. Fixed to work with string properties. (ispell-recursive-edit-marker): New marker saving return point. @@ -4003,7 +4003,7 @@ 1998-04-28 Inge Frick - * emacs-lisp/easymenu.el (easy-menu-define-key): Fixed bug with BEFORE + * emacs-lisp/easymenu.el (easy-menu-define-key): Fix bug with BEFORE argument. Now it works also if you repeat an identical call to easy-menu-define-key. @@ -4099,7 +4099,7 @@ * emacs-lisp/cl-indent.el: Indent defpackage correctly. - * font-lock.el (lisp-font-lock-keywords-2): Added `defpackage'. + * font-lock.el (lisp-font-lock-keywords-2): Add `defpackage'. 1998-04-23 Geoff Voelker @@ -4126,17 +4126,17 @@ * easymenu.el: Use new menu item format. Don't simulate button prefix. (easy-menu-create-menu): Understand also keywords :active, :label and :visible. Don't worry about button prefix. - (easy-menu-button-prefix): Modified value. + (easy-menu-button-prefix): Modify value. (easy-menu-do-add-item): Extensive changes to use new menu item format. (easy-menu-define-key, easy-menu-always-true): New functions. - (easy-menu-make-symbol): Don't use indirection for symbols. Property - `menu-alias' not set. - (easy-menu-filter, easy-menu-update-button): Deleted. + (easy-menu-make-symbol): Don't use indirection for symbols. + Property `menu-alias' not set. + (easy-menu-filter, easy-menu-update-button): Delete. (easy-menu-add-item): Don't worry about button prefix. - (easy-menu-remove-item): Don't worry about button prefix. Use - `easy-menu-define-key'. - (easy-menu-is-button, easy-menu-have-button): Deleted. - (easy-menu-real-binding, easy-menu-change-prefix): Deleted. + (easy-menu-remove-item): Don't worry about button prefix. + Use `easy-menu-define-key'. + (easy-menu-is-button, easy-menu-have-button): Delete. + (easy-menu-real-binding, easy-menu-change-prefix): Delete. 1998-04-23 Richard Stallman @@ -4177,8 +4177,8 @@ 1998-04-22 Eli Zaretskii - * term/pc-win.el (x-select-text, x-get-selection-value): Replace - win16 with w16. + * term/pc-win.el (x-select-text, x-get-selection-value): + Replace win16 with w16. 1998-04-22 Dave Love @@ -4244,9 +4244,9 @@ 1998-04-20 Piet van Oostrum - * smtpmail.el (smtpmail-send-it): Deleted all code related + * smtpmail.el (smtpmail-send-it): Delete all code related to Resent-To: processing. - (smtpmail-deduce-address-list): Changed the search for + (smtpmail-deduce-address-list): Change the search for Resent-\(To\|Cc\|Bcc\) headers. (smtpmail-do-bcc): Delete Resent-Bcc: headers. @@ -4308,11 +4308,11 @@ 1998-04-20 Kenichi Handa - * international/ccl.el (ccl-compile-unify-character): Inhibit - unification tables specified by integer value. + * international/ccl.el (ccl-compile-unify-character): + Inhibit unification tables specified by integer value. (ccl-compile-translate-single-map): Likewise. (ccl-compile-multiple-map-function): Likewise. - (ccl-compile-translate-multiple-map): Modified for nested tables. + (ccl-compile-translate-multiple-map): Modify for nested tables. (ccl-dump-iterate-multiple-map): Handle the case that ID is not integer. (ccl-dump-translate-multiple-map): Likewise. @@ -4323,8 +4323,8 @@ * international/mule.el (make-coding-system): If TYPE is 4, FLAGS can be a cons of CCL-PROGRAM symbols. - * international/quail.el (quail-start-translation): Bind - prefix-arg to current-prefix-arg. + * international/quail.el (quail-start-translation): + Bind prefix-arg to current-prefix-arg. (quail-mode): Doc-string modified. * language/cyrillic.el: FLAGS arguments for make-coding-system @@ -4367,7 +4367,7 @@ * which-func.el (which-func): Add defgroup. - * emacs-lisp/checkdoc.el (checkdoc): Added :version. + * emacs-lisp/checkdoc.el (checkdoc): Add :version. * play/gametree.el (gametree): Likewise. @@ -4442,8 +4442,8 @@ (ange-ftp-file-name-all-completions): Handle Windows filenames. (file-name-handler-alist) [windows-nt]: Add patterns for name with drive letters. - (ange-ftp-dired-call-process, ange-ftp-call-chmod): Use - dired-chmod-program. + (ange-ftp-dired-call-process, ange-ftp-call-chmod): + Use dired-chmod-program. (ange-ftp-disable-netrc-security-check) [windows-nt]: Disable by default. (ange-ftp-real-expand-file-name-actual): New function. @@ -4504,8 +4504,8 @@ (cperl-beautify-levels): New command. (cperl-electric-keyword): Allow here-docs contain `=head1' and friends for keyword expansion. - Fix for broken `font-lock-unfontify-region-function'. Should - preserve `syntax-table' properties even with `lazy-lock'. + Fix for broken `font-lock-unfontify-region-function'. + Should preserve `syntax-table' properties even with `lazy-lock'. (cperl-indent-region-fix-else): New command. (cperl-fix-line-spacing): New command. (cperl-invert-if-unless): New command (C-c C-t and in Menu). @@ -4517,7 +4517,7 @@ Workaround for another `font-lock's `syntax-table' text-property bug. `zerop' could be applied to nil. At last, may work with `font-lock' without setting `cperl-font-lock'. - (cperl-indent-region-fix-constructs): Renamed from + (cperl-indent-region-fix-constructs): Rename from `cperl-indent-region-fix-constructs'. (cperl-fix-line-spacing): Could be triggered inside strings, would not know what to do with BLOCKs of map/printf/etc. @@ -4535,9 +4535,9 @@ (cperl-set-style-back): Old value of style is memorized when choosing a new style, may be restored from the same menu. Mode-documentation added to micro-docs. - (cperl-praise): Updated. + (cperl-praise): Update. (cperl-toggle-construct-fix): New command. Added on C-c C-w and menu. - (auto-fill-mode): Added on C-c C-f and menu. + (auto-fill-mode): Add on C-c C-f and menu. (cperl-style-alist): `PerlStyle' style added. (cperl-find-pods-heres): Message for termination of scan corrected. (cperl-speed): New variable with hints. @@ -4592,8 +4592,8 @@ * arc-mode.el (archive-extract-by-stdout): Don't use binary-process-output. Bind coding-system-for-read `undecided', - so coding system is determined on the fly. Bind - inherit-process-coding-system to t. + so coding system is determined on the fly. + Bind inherit-process-coding-system to t. (archive-dos-members): Remove. (archive-extract): Don't call archive-check-dos. Handle pkunzip errors. @@ -4690,7 +4690,7 @@ * vc.el (vc-next-action-on-file): Don't check out after registering. This is two steps instead of one, and the second does not make sense under CVS. - (vc-next-action): Changed doc string to reflect the above. + (vc-next-action): Change doc string to reflect the above. 1998-04-14 Andreas Schwab @@ -4804,7 +4804,7 @@ 1998-04-09 Andre Spiegel - * vc.el (vc-next-action): Fixed bug that prevented registering + * vc.el (vc-next-action): Fix bug that prevented registering files using C-x v v. 1998-04-09 Stephen Eglen @@ -4843,7 +4843,7 @@ * gud.el (jdb): Do proper analysis of classes defined in a Java source. This removes the restriction of one class per file. - (gud-jdb-package-of-file): Removed. Replaced with parsing routines. + (gud-jdb-package-of-file): Remove. Replaced with parsing routines. (gud-jdb-skip-whitespace): New function. (gud-jdb-skip-single-line-comment): New function. (gud-jdb-skip-traditional-or-documentation-comment): New function. @@ -4914,7 +4914,7 @@ (fortran-mode): Make `fill-column' buffer-local; set `fill-paragraph-function', `indent-region-function', `indent-line-function'. - (calculate-fortran-indent): Renamed to `fortran-calculate-indent'. + (calculate-fortran-indent): Rename to `fortran-calculate-indent'. (fortran-split-line): Simplify. (fortran-remove-continuation): New function. (fortran-join-line): Use it. @@ -4967,18 +4967,18 @@ * language/japanese.el: Set exit-function to exit-japanese-environment for Japanese environment. - * language/japan-util.el (setup-japanese-environment): Setup - sentence-end suitable for Japanese text. + * language/japan-util.el (setup-japanese-environment): + Setup sentence-end suitable for Japanese text. (exit-japanese-environment): New function. - * international/mule-cmds.el (subset-p): Renamed from + * international/mule-cmds.el (subset-p): Rename from find-safe-coding-system-list-subset-p. - (find-coding-systems-region, find-coding-systems-string): New - functions. - (find-coding-systems-for-charsets): Renamed from + (find-coding-systems-region, find-coding-systems-string): + New functions. + (find-coding-systems-for-charsets): Rename from find-safe-coding-system. This is now a helper function of the above two. - (select-safe-coding-system): Adjusted for the above changes. + (select-safe-coding-system): Adjust for the above changes. 1998-04-05 Per Abrahamsen @@ -4997,14 +4997,14 @@ hook, not a local variable. * vc.el (vc-merge, vc-backend-merge): New functions. - (vc-resolve-conflicts): Added optional parameters for buffer names. + (vc-resolve-conflicts): Add optional parameters for buffer names. (vc-branch-p): New function. - * vc-hooks.el (vc-prefix-map): Added "m" for vc-merge. + * vc-hooks.el (vc-prefix-map): Add "m" for vc-merge. * vc.el (vc-ensure-vc-buffer): New function. - (vc-registration-error): Replaced by the above. Updated all callers. - (file-executable-p-18, file-regular-p-18): Removed. + (vc-registration-error): Replace by the above. Updated all callers. + (file-executable-p-18, file-regular-p-18): Remove. 1998-04-05 Richard Stallman @@ -5066,15 +5066,15 @@ 1998-04-03 Andre Spiegel * vc-hooks.el (vc-parse-cvs-status): New function. - (vc-fetch-master-properties): Moved cvs status retrieval to + (vc-fetch-master-properties): Move cvs status retrieval to the above. (vc-backend): If a file is not registered, remember that by setting the property to `none'. (vc-name): Use the mechanism of vc-backend to compute the value. (vc-after-save): Don't access vc-backend property directly. - * vc.el (vc-next-action-dired): Use dired-do-redisplay. Handle - window configuration correctly. + * vc.el (vc-next-action-dired): Use dired-do-redisplay. + Handle window configuration correctly. (vc-next-action): Save window configuration for vc-next-action-dired. (vc-finish-logentry): Only kill log buffer if it does exist. (vc-dired-mode): Rewritten so that it works entirely through @@ -5082,9 +5082,9 @@ ordinary dired. (vc-dired-hook): New function. (vc-state-info, vc-dired-reformat-line): Adapted. - (vc-dired-update, vc-dired-update-line): Removed. + (vc-dired-update, vc-dired-update-line): Remove. (vc-directory): Rewritten. - (vc-directory-18): Removed. + (vc-directory-18): Remove. (vc-dired-mark-locked): New function, bound to "*l" in vc-dired-mode. (vc-do-command): Only compute vc-name if it is really needed. (vc-fetch-cvs-status): New function. @@ -5121,7 +5121,7 @@ * help.el: Make hyperlinks for cross-reference info intuited from *Help* buffer. - (help-font-lock-keywords): Removed. + (help-font-lock-keywords): Remove. (help-mode-map): Define keys for navigating hyperlinks. (help-xref-stack, help-xref-stack-item): New permanent-local variables. @@ -5138,8 +5138,8 @@ New variables. (help-setup-xref, help-make-xrefs, help-xref-button) (help-xref-interned, help-xref-mode, help-follow-mouse) - (help-xref-go-back, help-go-back, help-follow, help-next-ref): New - functions. + (help-xref-go-back, help-go-back, help-follow, help-next-ref): + New functions. 1998-04-02 Richard Stallman @@ -5216,7 +5216,7 @@ (iswitchb-complete): Use iswitchb-common-match-string rather than recomputing the value. (iswitchb-toggle-ignore): Recompute list of buffers. - (iswitchb-init-XEmacs-trick): Renamed from iswitchb-init-Xemacs-trick. + (iswitchb-init-XEmacs-trick): Rename from iswitchb-init-Xemacs-trick. 1998-03-31 Andre Spiegel @@ -5300,8 +5300,8 @@ 1998-03-25 Simon Marshall - * font-lock.el (c-font-lock-keywords-2): Added "sizeof". - (c++-font-lock-keywords-2): Added "export" and "typename". + * font-lock.el (c-font-lock-keywords-2): Add "sizeof". + (c++-font-lock-keywords-2): Add "export" and "typename". * lazy-lock.el (lazy-lock-fontify-after-scroll) (lazy-lock-fontify-after-trigger): Use new window-end UPDATE arg @@ -5324,8 +5324,8 @@ 1998-03-23 Andreas Schwab - * xt-mouse.el (xterm-mouse-translate, xterm-mouse-event): Replace - obsolete `concat with integer' by format. + * xt-mouse.el (xterm-mouse-translate, xterm-mouse-event): + Replace obsolete `concat with integer' by format. * rsz-mini.el (resize-minibuffer-mode): Make it a proper minor mode: toggle resize-minibuffer mode when called without argument. @@ -5341,8 +5341,8 @@ 1998-03-22 Johan Vromans - * complete.el (PC-expand-many-files): Apply - completion-ignored-extensions. + * complete.el (PC-expand-many-files): + Apply completion-ignored-extensions. 1998-03-21 Richard Stallman @@ -5361,8 +5361,8 @@ when user tries to check-in, but file on disk has changed. (vc-do-command): Rewrote doc string. Consider LAST argument only if FILE is non-nil. - (vc-add-triple, vc-record-rename, vc-lookup-file): Find - vc-name-assoc-file based on vc-name of FILE. + (vc-add-triple, vc-record-rename, vc-lookup-file): + Find vc-name-assoc-file based on vc-name of FILE. (vc-backend-admin, vc-rename-file): Handle the SCCS PROJECTDIR feature. @@ -5406,8 +5406,8 @@ 1998-03-18 Dave Love - * emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Adjust - paragraph-start in default filling case so that filling doc + * emacs-lisp/lisp-mode.el (lisp-fill-paragraph): + Adjust paragraph-start in default filling case so that filling doc strings works. 1998-03-18 Andre Spiegel @@ -5446,9 +5446,9 @@ 1998-03-16 Peter Breton * generic-x.el: Customize. - (fvwm-generic-mode): Added new keywords, and .fvwm2rc config file. - (ini-generic-mode): Changed regexps so that value can contain equal signs. - (java-manifest-generic-mode): Added new keywords. + (fvwm-generic-mode): Add new keywords, and .fvwm2rc config file. + (ini-generic-mode): Change regexps so that value can contain equal signs. + (java-manifest-generic-mode): Add new keywords. 1998-03-16 Alfred Correira @@ -5496,9 +5496,9 @@ * locate.el (locate-current-line-number): No longer interactive. * dirtrack.el: Customized. - (dirtrack-forward-slash): Renamed from `forward-slash'. - (dirtrack-backward-slash): Renamed from `backward-slash'. - (dirtrack-replace-slash): Renamed from `replace-slash'. + (dirtrack-forward-slash): Rename from `forward-slash'. + (dirtrack-backward-slash): Rename from `backward-slash'. + (dirtrack-replace-slash): Rename from `replace-slash'. * emacs-lisp/elp.el (elp-version): Now 3.2. @@ -5587,17 +5587,17 @@ (undo-start): New args BEG and END. (undo): If arg or active region, pass args to undo-start. - * mouse.el (mouse-buffer-menu-maxlen): Renamed from + * mouse.el (mouse-buffer-menu-maxlen): Rename from mouse-menu-buffer-maxlen. 1998-03-10 Eric M. Ludlam - * checkdoc.el (checkdoc-continue): Removed check for doc string. + * checkdoc.el (checkdoc-continue): Remove check for doc string. (checkdoc-this-string-valid-engine): Smarter keycode check regexp. 1998-03-10 Carsten Dominik - * textmodes/reftex.el (reftex-mode-map): Added keybinding for + * textmodes/reftex.el (reftex-mode-map): Add keybinding for `reftex-mouse-view-crossref' to `S-mouse-2'. 1998-03-09 Carsten Dominik @@ -5634,7 +5634,7 @@ 1998-03-08 Carsten Dominik * textmodes/reftex.el (reftex-offer-label-menu) - (reftex-select-item): Removed match-everywhere interpretation. + (reftex-select-item): Remove match-everywhere interpretation. 1998-03-08 Carsten Dominik @@ -5660,8 +5660,8 @@ (vc-resynch-buffer): When operating on the current buffer, don't use save-excursion, because that would undo the effects of the above functions. - (vc-clear-headers): Fixed regexp. - (vc-resynch-window): Deleted code that removed vc-find-file-hook + (vc-clear-headers): Fix regexp. + (vc-resynch-window): Delete code that removed vc-find-file-hook temporarily. This was unnecessary, because find-file-hooks are not called when the buffer is reverted. @@ -5671,7 +5671,7 @@ 1998-03-07 Richard Stallman - * subr.el (read-passwd): Renamed from read-password. + * subr.el (read-passwd): Rename from read-password. New second arg CONFIRM. * wid-edit.el (widget-choice-value-create): If there is an @@ -5684,7 +5684,7 @@ * dos-fns.el, find-file.el, follow.el, ispell4.el, shadowfile.el: * tempo.el, tmm.el, vcursor.el, xscheme.el: Customize. -1998-03-06 Barry A. Warsaw +1998-03-06 Barry A. Warsaw * Release 5.21 @@ -5697,7 +5697,7 @@ * progmodes/cc-engine.el (c-inside-bracelist-p): Fix for enum test. * progmodes/cc-mode.el (c-initialize-cc-mode): - Moved require's to top level. + Move require's to top level. * progmodes/cc-cmds.el (c-fill-paragraph): Bind fill-paragraph-function to nil when calling fill-paragraph, @@ -5711,8 +5711,8 @@ the same relative position. Fill comment before point if there's nothing else on the same line. Fill block comments after code a little better. Try harder to find a good fill-prefix when point - is on a block comment ender line. Use - c-Java-javadoc-paragraph-start in block comments in Java mode. + is on a block comment ender line. + Use c-Java-javadoc-paragraph-start in block comments in Java mode. Leave block comment ender alone when c-hanging-comment-ender-p is nil and point is on that line. Detect paragraph-separate in multiparagraph comments. Fix for bug that may strip the `*' off @@ -5733,8 +5733,8 @@ always bol. It's always bol when on the top level, however. Changed cases: 5A.5, 5I, 14A. - * progmodes/cc-engine.el (c-forward-token-1, c-backward-token-1): New - functions to move by tokens. + * progmodes/cc-engine.el (c-forward-token-1, c-backward-token-1): + New functions to move by tokens. (c-guess-basic-syntax): Fixes for Java 1.1 array initialization brace lists. @@ -5791,19 +5791,19 @@ 1998-03-06 Kenichi Handa - * international/titdic-cnv.el (titdic-convert): Use - set-buffer-multibyte. + * international/titdic-cnv.el (titdic-convert): + Use set-buffer-multibyte. * international/quail.el (quail-defrule-internal): New arg REPLACE. (quail-defrule): Call quail-defrule-internal with REPLACE t. 1998-03-05 Peter Breton - * generic.el (generic-mode-ini-file-find-file-hook): Use - and-s instead of if-s. - (generic-use-find-file-hook): Changed from defvar to defcustom. - (generic-lines-to-scan): Changed from defvar to defcustom. - (generic-find-file-regexp): Changed from defvar to defcustom. + * generic.el (generic-mode-ini-file-find-file-hook): + Use and-s instead of if-s. + (generic-use-find-file-hook): Change from defvar to defcustom. + (generic-lines-to-scan): Change from defvar to defcustom. + (generic-find-file-regexp): Change from defvar to defcustom. 1998-03-05 Ivar Rummelhoff @@ -5829,14 +5829,14 @@ configuration if the same command (changing the window configuration) is applied several times in a row. - * winner.el (winner-switch): Removed the command + * winner.el (winner-switch): Remove the command `winner-switch' (and the variables connected to it), since because of the change above, any "switching package" may now be used without disturbing winner-mode too much. * winner.el: Use list syntax for key definitions. - * winner.el (winner-change-fun): Removed the pushnew + * winner.el (winner-change-fun): Remove the pushnew command, so that `cl' will not have to be loaded. * winner.el (winner-set-conf): Introduced "wrapper" around @@ -5969,12 +5969,12 @@ * subr.el (sref): Typo in doc-string fixed. - * international/mule-cmds.el (set-default-coding-systems): Set - default-file-name-coding-system. Doc-string modified. + * international/mule-cmds.el (set-default-coding-systems): + Set default-file-name-coding-system. Doc-string modified. (prefer-coding-system): Doc-string modified. - * language/japan-util.el (setup-japanese-environment): Set - default-file-name-coding-system to japanese-iso-8bit. + * language/japan-util.el (setup-japanese-environment): + Set default-file-name-coding-system to japanese-iso-8bit. 1998-03-02 Richard Stallman @@ -6004,18 +6004,18 @@ 1998-03-01 Peter Breton * locate.el (locate-update): New function. - (locate-current-line-number): Renamed from `current-line'. + (locate-current-line-number): Rename from `current-line'. (locate-default-make-command-line): Use list, not cons. - (locate): Added a `save-window-excursion' form. + (locate): Add a `save-window-excursion' form. (locate): Used an `apply' form for the start-process call. (locate-mode): Now has a `revert-buffer-function'. (locate-do-setup): Now longer deletes window. (locate-header-face): Use underline, not region. (locate-update-command): New option. - (locate-command): Changed from defvar to defcustom. - (locate-make-command-line): Changed from defvar to defcustom. - (locate-fcodes-file): Changed from defvar to defcustom. - (locate-mouse-face): Changed from defvar to defcustom. + (locate-command): Change from defvar to defcustom. + (locate-make-command-line): Change from defvar to defcustom. + (locate-fcodes-file): Change from defvar to defcustom. + (locate-mouse-face): Change from defvar to defcustom. 1998-02-28 Richard Stallman @@ -6048,8 +6048,8 @@ 1998-02-27 Karl Heuer * dired-x.el (dired-do-toggle): Function moved to dired.el. - * dired.el (dired-do-toggle): Moved here from dired-x.el. - (dired-mode-map): Changed dired-do-toggle from "T" to "t". + * dired.el (dired-do-toggle): Move here from dired-x.el. + (dired-mode-map): Change dired-do-toggle from "T" to "t". 1998-02-27 Carsten Dominik @@ -6090,21 +6090,21 @@ (custom-save-delete): Use it. (custom-save-all): Use it. - * shell.el (shell-dirtrack-mode): Renamed from shell-dirtrack-toggle. - (dirtrack-mode, shell-dirtrack-toggle): Defined as aliases. + * shell.el (shell-dirtrack-mode): Rename from shell-dirtrack-toggle. + (dirtrack-mode, shell-dirtrack-toggle): Define as aliases. 1998-02-25 Carsten Dominik * textmodes/reftex.el (reftex-toc-mode, reftex-select-label-mode) (reftex-select-bib-mode): New major modes for RefTeX's special buffers. (reftex-offer-label-menu): Put selection buffer into - `reftex-select-label-mode'. Make selection buffer read-only. Use - `reftex-erase-buffer'. + `reftex-select-label-mode'. Make selection buffer read-only. + Use `reftex-erase-buffer'. (reftex-do-citation): Put selection buffer into - `reftex-select-bib-mode'. Make selection buffer read-only. Use - `reftex-erase-buffer'. Set `reftex-select-return-marker'. - (reftex-toc): Put *toc* buffer into reftex-toc-mode. Add - mouse-face property. + `reftex-select-bib-mode'. Make selection buffer read-only. + Use `reftex-erase-buffer'. Set `reftex-select-return-marker'. + (reftex-toc): Put *toc* buffer into reftex-toc-mode. + Add mouse-face property. (reftex-select-item): Use recursive edit instead of selfmade command loop. Removed unnecessary local bindings. Changed the tag for catch, to avoid problems with `exit' tag in @@ -6126,13 +6126,13 @@ (reftex-select-search-backward, reftex-select-search) (reftex-select-scroll-up, reftex-select-scroll-down) (reftex-scroll-other-window, reftex-scroll-other-window-down) - (reftex-empty-toc-buffer): Removed obsolete functions. - (reftex-highlight-overlays): Removed obsolete 3rd overlay. - (reftex-select-label-map, reftex-select-bib-map): Removed obsolete + (reftex-empty-toc-buffer): Remove obsolete functions. + (reftex-highlight-overlays): Remove obsolete 3rd overlay. + (reftex-select-label-map, reftex-select-bib-map): Remove obsolete bindings, added mouse bindings, `digit-argument', `negative-argument', `reftex-select-show-insertion-point'. (reftex-erase-buffer): BUFFER now defaults to current buffer. - (reftex-label-alist-builtin): Added sidecap packages support. + (reftex-label-alist-builtin): Add sidecap packages support. (reftex-last-follow-point, reftex-select-return-marker): New variables. (reftex-toc, reftex-select-item): Set `reftex-last-follow-point'. (reftex-toc-post-command-hook): Use `reftex-last-follow-point'. @@ -6208,7 +6208,7 @@ * font-lock.el (font-lock-constant-face): Variable and face renamed from font-lock-reference-face. - (font-lock-reference-face): Changed value to font-lock-constant-face. + (font-lock-reference-face): Change value to font-lock-constant-face. * add-log.el: * dired.el: @@ -6246,12 +6246,12 @@ 1998-02-19 Kenichi Handa * international/mule.el - (after-insert-file-set-buffer-file-coding-system): Call - set-buffer-multibyte instead of directly setting + (after-insert-file-set-buffer-file-coding-system): + Call set-buffer-multibyte instead of directly setting enable-multibyte-characters to nil. - * language/china-util.el (setup-chinese-cns-environment): Correct - the setting of default-input-method. + * language/china-util.el (setup-chinese-cns-environment): + Correct the setting of default-input-method. * international/mule-cmds.el (select-safe-coding-system): Kill the warning buffer before returning. @@ -6294,7 +6294,7 @@ * info-look.el (info-complete): Rewrite minibuffer completion code. * info-look.el (info-lookup-minor-mode, turn-on-info-lookup): - Added minor mode interface. + Add minor mode interface. (info-lookup-minor-mode-string): New variable. (info-lookup-minor-mode-map): New variable. @@ -6305,8 +6305,8 @@ (info-lookup-highlight-face): Variables customized. * info-look.el (info-lookup-alist): No longer customizable. - (info-lookup-add-help, info-lookup-maybe-add-help): Interface - functions for adding new modes. + (info-lookup-add-help, info-lookup-maybe-add-help): + Interface functions for adding new modes. (info-lookup-add-help*): New function. (info-lookup-symbol-alist, info-lookup-file-alist): Variables deleted. This info is specified now by calling info-lookup-maybe-add-help @@ -6336,10 +6336,10 @@ `parse-partial-sexp' contains the starting pos of the last literal. -1998-02-16 Barry A. Warsaw +1998-02-16 Barry A. Warsaw - * progmodes/cc-mode.el (c-mode, c++-mode, objc-mode, java-mode): Set - imenu-case-fold-search to nil. + * progmodes/cc-mode.el (c-mode, c++-mode, objc-mode, java-mode): + Set imenu-case-fold-search to nil. * progmodes/cc-langs.el (c-postprocess-file-styles): If a file style or file offsets are set, make the variables local to the @@ -6352,8 +6352,8 @@ * progmodes/cc-defs.el (c-point): In XEmacs, use scan-lists + buffer-syntactic-context-depth. - * progmodes/cc-vars.el (c-enable-xemacs-performance-kludge-p): New - variable. + * progmodes/cc-vars.el (c-enable-xemacs-performance-kludge-p): + New variable. * progmodes/cc-cmds.el, progmodes/cc-engine.el (c-beginning-of-defun) (c-indent-defun, c-parse-state): Use (c-point 'bod) instead of @@ -6362,7 +6362,7 @@ * progmodes/cc-align.el (c-semi&comma-no-newlines-before-nonblanks) (c-semi&comma-no-newlines-for-oneline-inliners): New functions. - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed a few byte + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix a few byte compiler warnings. * progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun): @@ -6379,8 +6379,8 @@ * progmodes/cc-langs.el (c-java-method-key): Variable deleted. - * progmodes/cc-mode.el (java-mode): Set c-method-key to nil. I - don't think this is necessary for Java, and besides, the old value + * progmodes/cc-mode.el (java-mode): Set c-method-key to nil. + I don't think this is necessary for Java, and besides, the old value was inherited from Objective-C which was clearly not right. * progmodes/cc-cmds.el (c-electric-colon): Don't insert newlines @@ -6397,10 +6397,10 @@ * progmodes/cc-cmds.el (c-electric-brace): namespace-open and namespace-close braces can hang. - * progmodes/cc-defs.el (c-emacs-features): Added autoload cookie. + * progmodes/cc-defs.el (c-emacs-features): Add autoload cookie. - * progmodes/cc-engine.el (c-search-uplist-for-classkey): When - searching up for a class key, instead of hardcoding the extended + * progmodes/cc-engine.el (c-search-uplist-for-classkey): + When searching up for a class key, instead of hardcoding the extended search for "extern", use the new variable c-extra-toplevel-key, which is language dependent. For C++, this variable includes the keyword "namespace" which will match C++ namespace introducing @@ -6415,14 +6415,14 @@ CASE 3: we can now determine whether we're at the beginning of a cpp macro definition, or inside the middle of one. Set syntax to - 'cpp-macro in the former case, 'cpp-macro-cont in the latter. In - both cases, the relpos is the beginning of the macro. + 'cpp-macro in the former case, 'cpp-macro-cont in the latter. + In both cases, the relpos is the beginning of the macro. - (c-forward-syntactic-ws): Added code that skips forward over + (c-forward-syntactic-ws): Add code that skips forward over multi-line cpp macros. - (c-beginning-of-macro): Moved, and made into a defsubst. This - function can now actually find the beginning of a multi-line C + (c-beginning-of-macro): Move, and made into a defsubst. + This function can now actually find the beginning of a multi-line C preprocessor macro. (c-backward-syntactic-ws): Use c-beginning-of-macro to skip @@ -6443,8 +6443,8 @@ (c-initialize-on-load): New variable, *not* customized. * progmodes/cc-styles.el (c-offsets-alist): Three new syntactic - symbols: innamespace, namespace-open, namespace-close. These - support C++ namespace blocks. + symbols: innamespace, namespace-open, namespace-close. + These support C++ namespace blocks. Also, new syntactic symbol cpp-macro-cont, by default bound to c-lineup-dont-change. This symbol is assigned to subsequent lines of a multi-line C preprocess macro definition. @@ -6483,7 +6483,7 @@ Introduce the new default style "user" which contains all user customizations. - * progmodes/cc-vars.el (c-default-style): Renamed from + * progmodes/cc-vars.el (c-default-style): Rename from c-site-default-style. 1998-02-15 Aki Vehtari @@ -6500,13 +6500,13 @@ `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. - * bibtex.el (bibtex-autokey): Fixed prefix. + * bibtex.el (bibtex-autokey): Fix prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. - (bibtex-autokey-get-yearfield): Changed to accept year when year + (bibtex-autokey-get-yearfield): Change to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. @@ -6514,7 +6514,7 @@ 1998-02-15 Dirk Herrmann - * bibtex.el (bibtex-autokey-get-yearfield): Fixed problem with + * bibtex.el (bibtex-autokey-get-yearfield): Fix problem with parsing the year field. * bibtex.el (bibtex-comment-start): Font locking for comments added. @@ -6526,7 +6526,7 @@ * bibtex.el (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honored for matches now. - (bibtex-autokey-titleword-ignore): Added entries provide compatibility + (bibtex-autokey-titleword-ignore): Add entries provide compatibility to former behavior. * bibtex.el (bibtex-autokey-titleword-ignore): Title words found in @@ -6561,7 +6561,7 @@ (info-look-completion): New variable. * info-look.el (info-lookup-symbol-alist): - Added support for latex-mode, perl-mode, awk-mode, emacs-lisp-mode. + Add support for latex-mode, perl-mode, awk-mode, emacs-lisp-mode. 1998-02-13 Richard Stallman @@ -6575,12 +6575,12 @@ 1998-02-12 Dave Love - * progmodes/scheme.el (scheme-imenu-generic-expression): Simplify - regexps. + * progmodes/scheme.el (scheme-imenu-generic-expression): + Simplify regexps. (dsssl-imenu-generic-expression): Likewise. (scheme-mode-variables): Set imenu-syntax-alist. - (dsssl-mode): Remove `!' from font-lock-defaults. Set - imenu-syntax-alist. + (dsssl-mode): Remove `!' from font-lock-defaults. + Set imenu-syntax-alist. 1998-02-11 Richard Stallman @@ -6667,12 +6667,12 @@ * international/kinsoku.el: Use aref instead of sref. - * international/mule-cmds.el (find-safe-coding-system): Return - undecided if FROM == TO. + * international/mule-cmds.el (find-safe-coding-system): + Return undecided if FROM == TO. (select-safe-coding-system): Doc-string modified. - * international/mule-util.el (compose-chars-component): Return - result as unibyte string. + * international/mule-util.el (compose-chars-component): + Return result as unibyte string. (decompose-composite-char): Doc-string modified. * international/titdic-cnv.el: Many codes re-written to adjust for @@ -6724,7 +6724,7 @@ 1998-02-02 Dan Nicolaescu - * progmodes/hideshow.el (hs-special-modes-alist): Enhanced java + * progmodes/hideshow.el (hs-special-modes-alist): Enhance java regexp. 1998-02-02 Richard Stallman @@ -6736,8 +6736,8 @@ 1998-02-01 Richard Stallman - * emacs-lisp/easy-mmode.el (easy-mmode-define-minor-mode): Fix - the doc strings used for the mode flag variable and the keymap. + * emacs-lisp/easy-mmode.el (easy-mmode-define-minor-mode): + Fix the doc strings used for the mode flag variable and the keymap. Delete duplicate &optional's. * emacs-lisp/edebug.el: Doc fixes. @@ -6752,7 +6752,7 @@ 1998-02-01 Dan Nicolaescu - * hideshow.el (hs-special-modes-alist): Improved the regexp for java. + * hideshow.el (hs-special-modes-alist): Improve the regexp for java. * isearch.el (isearch-range-invisible): Avoid infinite loop when search-invisible is nil. @@ -6784,8 +6784,8 @@ * fortran.el: Various docstring and commentary fixes, including note of current maintainer. (fortran-mode): Use imenu-syntax-alist. - (fortran-imenu-generic-expression): Use - fortran-continuation-string, not always `+'. + (fortran-imenu-generic-expression): + Use fortran-continuation-string, not always `+'. (fortran-font-lock-keywords-1): Include symbol syntax as well as word, following syntax table changes. (fortran-imenu-generic-expression): Likewise. @@ -6793,23 +6793,23 @@ (fortran-mode-version, fortran-startup-message): Delete misleading variables. (fortran-mode): Don't use them. - (fortran-column-ruler-fixed, fortran-column-ruler-tab): Fix - leading \ which made `0' into null. + (fortran-column-ruler-fixed, fortran-column-ruler-tab): + Fix leading \ which made `0' into null. (fortran-join-line): New function and key binding. (fortran-narrow-to-subprogram): New function and key binding. (fortran-mode-syntax-table): Make ?., ?_, ?$ symbol, not word. 1998-01-29 Carsten Dominik - * textmodes/reftex.el (reftex-toc): Fixed bug with split-window. Using - split-window instead of split-window-vertically. - (reftex-reset-mode): Removed obsolete buffer from kill list. - (reftex-make-and-insert-label-list, reftex-do-citation): Delete - other windows before displaying selection. - (reftex-cite-format-builtin): Fixed bug in Chicago format. + * textmodes/reftex.el (reftex-toc): Fix bug with split-window. + Using split-window instead of split-window-vertically. + (reftex-reset-mode): Remove obsolete buffer from kill list. + (reftex-make-and-insert-label-list, reftex-do-citation): + Delete other windows before displaying selection. + (reftex-cite-format-builtin): Fix bug in Chicago format. (reftex-enlarge-to-fit): New function. - (reftex-nicify-text): Cut context-string at \item,\\. Changed - match sequence for efficiency reasons. + (reftex-nicify-text): Cut context-string at \item,\\. + Changed match sequence for efficiency reasons. (reftex-parse-from-file): Include files can be ignored with `reftex-no-include-regexps'. (reftex-no-include-regexps): New option. @@ -6819,16 +6819,16 @@ (reftex-where-am-I): Interpret appendix match. (reftex-init-section-numbers): New arg: appendix. (reftex-section-number): Treat appendix enumeration. - (reftex-toc-external): Improved message. + (reftex-toc-external): Improve message. (reftex-compute-ref-cite-tables): Regular expression extended for appendix. - (reftex-toc-rescan): Renamed from reftex-toc-redo. - (reftex-toc-Rescan): Renamed from reftex-toc-Redo. + (reftex-toc-rescan): Rename from reftex-toc-redo. + (reftex-toc-Rescan): Rename from reftex-toc-Redo. (reftex-toc-revert): New function. (reftex-select-external-document): Completion on label prefixes. - (reftex-find-file-on-path): Added an extra call to + (reftex-find-file-on-path): Add an extra call to expand-file-name for the directory. - (reftex-locate-bibliography-files): Added expand-file-name call. + (reftex-locate-bibliography-files): Add expand-file-name call. (reftex-guess-label-type): New function. (reftex-word-before-point): Function removed. (reftex-reference): Uses reftex-guess-label-type. Changed meaning @@ -6837,41 +6837,41 @@ (reftex-select-label-maps): Default bindings for TAB, up, down, RET. (reftex-select-read-string): Now uses completion. (reftex-make-and-insert-label-list): Prepare for completion. - (reftex-where-am-I): Fixed bug with input files. + (reftex-where-am-I): Fix bug with input files. (reftex-save-all-document-buffers): New command. (reftex-select-next-heading): New function. (reftex-select-previous-heading): New function. (reftex-select-read-string): New function. (reftex-offer-label-menu): Handle string value from reftex-select-item. - (reftex-reference): Fixed bug (missing save-excursion). - (reftex-toc-map): Added binding for ?n and ?p. - (reftex-do-citation): Changed to use reftex-default-bibliography. + (reftex-reference): Fix bug (missing save-excursion). + (reftex-toc-map): Add binding for ?n and ?p. + (reftex-do-citation): Change to use reftex-default-bibliography. (reftex-default-bibliography): New option. (reftex-find-tex-file): Check for file-name-absolute-p first. (reftex-format-label-function, reftex-format-ref-function) (reftex-format-cite-function): New hooks. (reftex-info): New function. - (reftex-compute-ref-cite-tables): Removed interactive form. - (reftex-where-am-I): Removed interactive form. - (reftex-format-names): Removed interactive form. + (reftex-compute-ref-cite-tables): Remove interactive form. + (reftex-where-am-I): Remove interactive form. + (reftex-format-names): Remove interactive form. (reftex-vref-is-default): New customization variable. (reftex-mode-menu): Capitalize citation options. (reftex-last-cnt): Variable removed. (reftex-last-data, reftex-last-line): New variables. (reftex-select-toggle-varioref): New function. - (reftex-offer-label-menu): Changed mode-line-format for varioref. + (reftex-offer-label-menu): Change mode-line-format for varioref. (reftex-select-label-help): Help string updated. - (reftex-do-parse): Fixed bug with empty xr list. + (reftex-do-parse): Fix bug with empty xr list. (reftex-view-crossref): Prefix argument interpretation changed. (reftex-get-offset): New function. (reftex-label): Remove selection buffer to force update. (reftex-access-scan-info): Remove selection buffers. - (reftex-select-external-document): Fixed bug with highest index. + (reftex-select-external-document): Fix bug with highest index. (reftex-label-index-list, reftex-found-list): Variables removed. (reftex-offer-label-menu, reftex-make-and-insert-label-list) (reftex-select-item, reftex-citation, reftex-select-label-callback) - (reftex-bibtex-selection-callback, reftex-select-callback): Changed - to put the scan data directly into the text property :data, + (reftex-bibtex-selection-callback, reftex-select-callback): + Change to put the scan data directly into the text property :data, instead of doing this indirectly with an index-list. (reftex-make-selection-buffer-name): New function. (reftex-tie-multifile-symbols): Store master-index-as-property. @@ -6884,7 +6884,7 @@ (reftex-access-parse-file): `Restore' action now throws an exception when the file is not found. (reftex-create-customize-menu): New function. - (reftex-label): Fixed bug which made naked labels in \footnotes. + (reftex-label): Fix bug which made naked labels in \footnotes. (reftex-select-label-map, reftex-select-bib-map): New keymaps for the RefTeX Select buffer. (reftex-select-next, reftex-select-previous, reftex-select-scroll-down) @@ -6912,7 +6912,7 @@ (reftex-extract-bib-entries-from-thebibliography): New function. (reftex-format-bibitem): New function. (reftex-parse-bibitem): New function. - (reftex-make-desparate-section-regexp): Changed name to + (reftex-make-desparate-section-regexp): Change name to reftex-make-desperate-section-regexp. (reftex-do-parse, reftex-locate-bibliography-files) (reftex-string-to-label, reftex-select-external-document) @@ -6921,7 +6921,7 @@ (reftex-select-search-minibuffer-map, reftex-access-search-path) (reftex-compute-ref-cite-tables, reftex-recursive-directory-list): All lambda expressions now quoted with `function'. - (reftex-view-crossref, reftex-mouse-view-crossref): Fixed bug with + (reftex-view-crossref, reftex-mouse-view-crossref): Fix bug with multiple calls. (reftex-get-buffer-visiting): Error message changed. (reftex-select-external-document, reftex-query-label-type) @@ -6949,7 +6949,7 @@ * progmodes/etags.el (find-tag-marker-ring-length): New variable. (find-tag-marker-ring): New variable. (tags-location-ring): New variable replacing tags-location-ring. - (tags-location-stack): Deleted. + (tags-location-stack): Delete. (tags-table-format-hooks): Doc fix. (initialize-new-tags-table): Init find-tag-marker-ring, tags-location-ring. @@ -6970,13 +6970,13 @@ * international/mule-cmds.el (toggle-enable-multibyte-characters): Use set-buffer-multibyte. - (find-safe-coding-system-list-subset-p): Renamed from list-subset-p. + (find-safe-coding-system-list-subset-p): Rename from list-subset-p. The call changed also. 1998-01-28 Kenichi Handa - * international/titdic-cnv.el (titdic-convert): Set - enable-multibyte-characters to t after inserting TIT file by + * international/titdic-cnv.el (titdic-convert): + Set enable-multibyte-characters to t after inserting TIT file by no-conversion. (tit-process-body): Do not bind enable-multibyte-characters to nil. @@ -6987,9 +6987,9 @@ instead of (` and (,. Implement :filter. Doc fix. (easy-menu-do-define): Call `easy-menu-create-menu' instead of `easy-menu-create-keymaps'. - (easy-menu-create-keymaps): Replaced by `easy-menu-create-menu'. - (easy-menu-create-menu): New public function. Replaces - `easy-menu-create-keymaps', but with large changes. + (easy-menu-create-keymaps): Replace by `easy-menu-create-menu'. + (easy-menu-create-menu): New public function. + Replaces `easy-menu-create-keymaps', but with large changes. (easy-menu-button-prefix): New constant. (easy-menu-do-add-item, easy-menu-make-symbol): New functions. (easy-menu-update-button): Doc fix. @@ -7064,22 +7064,22 @@ * mail/emacsbug.el (emacsbug): Customized. (report-emacs-bug-no-confirmation): - Renamed from report-emacs-bug-run-tersely. + Rename from report-emacs-bug-run-tersely. (report-emacs-bug-no-explanations): New option. (report-emacs-bug): Handle that option. 1998-01-22 Eric Ludlam - * mail/rmail.el (rmail-speedbar-buttons): Added speedbar support + * mail/rmail.el (rmail-speedbar-buttons): Add speedbar support for Rmail, including rmail-speedbar-button, rmail-speedbar-find-file, rmail-move-message-to-folder-on-line, rmail-speedbar-move-message, and support variables. - * info.el (Info-speedbar-buttons): Added speedbar support for Info + * info.el (Info-speedbar-buttons): Add speedbar support for Info mode, including Info-speedbar-button, Info-speedbar-menu, and support variables. - * gud.el (gud-speedbar-buttons): Added speedbar support for GUD in + * gud.el (gud-speedbar-buttons): Add speedbar support for GUD in general, and for GDB specifically, including gud-gdb-goto-stackframe, gud-gdb-get-stackframe, gud-gdb-run-command-fetch-lines, gud-gdb-speedbar-stack-filter, @@ -7117,10 +7117,10 @@ 1998-01-21 Kenichi Handa - * international/mule-cmds.el (prefer-coding-system): Call - update-iso-coding-systems. + * international/mule-cmds.el (prefer-coding-system): + Call update-iso-coding-systems. - * international/mule-util.el (string-to-sequence): Adjusted for + * international/mule-util.el (string-to-sequence): Adjust for the change of multibyte-form handling (byte-base to char-base). (store-substring): Likewise. (truncate-string-to-width): Likewise. @@ -7160,13 +7160,13 @@ (set-language-environment-coding-systems): New function. * international/mule-conf.el: Adjusted for the change of the - format of make-coding-system's 6th argument. Initialize - coding-category-iso-7-tight to iso-2022-jp. + format of make-coding-system's 6th argument. + Initialize coding-category-iso-7-tight to iso-2022-jp. * international/mule-diag.el (describe-coding-system): Change the format of showing safe charsets. - * international/mule-util.el (find-safe-coding-system): Moved to + * international/mule-util.el (find-safe-coding-system): Move to mule-cmds.el. (detect-coding-with-priority): New macro. (detect-coding-with-language-environment): New function. @@ -7222,8 +7222,8 @@ * language/japanese.el, language/korean.el, language/lao.el, * language/thai.el, language/tibetan.el, language/vietnamese.el: - Adjusted for the change of make-coding-system. Register - coding-priority key in + Adjusted for the change of make-coding-system. + Register coding-priority key in * language/china-util.el, language/japan-util.el, * language/korea-util.el, language/tibet-util.el, @@ -7259,11 +7259,11 @@ (ccl-dump-translate-multiple-map, ccl-dump-translate-single-map): New functions. - * international/mule.el (define-character-unification-table): New - function. + * international/mule.el (define-character-unification-table): + New function. - * international/mule-conf.el (oldjis-newjis-jisroman-ascii): New - character unification table. + * international/mule-conf.el (oldjis-newjis-jisroman-ascii): + New character unification table. (standard-character-unification-table-for-decode): Initialize to `unification-table' property of `oldjis-newjis-jisroman-ascii'. @@ -7316,8 +7316,8 @@ 1998-01-17 Karl Heuer - * register.el (number-to-register, increment-register): Args - renamed to match doc. + * register.el (number-to-register, increment-register): + Args renamed to match doc. 1998-01-17 Dave Love @@ -7430,7 +7430,7 @@ 1998-01-04 Richard Stallman - * subr.el (sref): Defined. + * subr.el (sref): Define. 1998-01-03 Stephen Eglen @@ -7493,8 +7493,8 @@ 1997-12-22 Kevin Rodgers (tiny change) - * simple.el (previous-matching-history-element): Bind - case-fold-search to nil if REGEXP contains an uppercase letter. + * simple.el (previous-matching-history-element): + Bind case-fold-search to nil if REGEXP contains an uppercase letter. (previous-matching-history-element, next-matching-history-element): Doc fixes. @@ -7521,8 +7521,8 @@ 1997-12-21 Richard Stallman - * msb.el (msb--home-dir): Renamed from msb--home-path. - (msb--strip-dir): Renamed from msb--strip-path. + * msb.el (msb--home-dir): Rename from msb--home-path. + (msb--strip-dir): Rename from msb--strip-path. 1997-12-21 Lars Lindberg @@ -7559,8 +7559,8 @@ (ps-generate): Replace (if A B) by (and A B). (ps-do-despool): Dynamic evaluation for ps-lpr-switches. Replace (if A B) by (and A B). - (color-instance-rgb-components, ps-color-values): Replace - pixel-components by color-instance-rgb-components. + (color-instance-rgb-components, ps-color-values): + Replace pixel-components by color-instance-rgb-components. (ps-xemacs-face-kind-p): Replace face-font by face-font-instance, replace x-font-properties by font-instance-properties. @@ -7662,8 +7662,8 @@ * progmodes/scheme.el: Define indentation in normal dialect for let-syntax, letrec-syntax, syntax-rules, call-with-values, dynamic-wind. - (scheme-mode-map): Remove lisp-complete-symbol. Add - uncomment-region menu item. + (scheme-mode-map): Remove lisp-complete-symbol. + Add uncomment-region menu item. (scheme-mode-hook, dsssl-mode-hook): Declare customized. (dsssl-sgml-declaration): Fix customization. @@ -7726,7 +7726,7 @@ * cus-edit.el (customize-changed-options): New function. (customize-version-lessp): New function. - * facemenu.el (facemenu-remove-face-props): Renamed from + * facemenu.el (facemenu-remove-face-props): Rename from facemenu-remove-props. Remove only face and mouse-face. (facemenu-menu): Update menu item for facemenu-remove-face-props. @@ -7853,10 +7853,10 @@ (debugger-mode): Now runs hook `debugger-mode-hook'. * add-log.el (change-log-add-make-room): New function. - (change-log-get-method-definition-1): Renamed get-method-definition-1. - (change-log-get-method-definition): Renamed from get-method-definition. + (change-log-get-method-definition-1): Rename get-method-definition-1. + (change-log-get-method-definition): Rename from get-method-definition. (add-log-keep-changes-together): New user variable. - (add-change-log-entry): Added missing WHOAMI explanation. + (add-change-log-entry): Add missing WHOAMI explanation. Added new functionality according to variable `add-log-keep-changes-together'. @@ -7876,8 +7876,8 @@ * progmodes/cc-menus.el: Require imenu. - * calendar/cal-french.el (french-calendar-special-days-array): New - function. + * calendar/cal-french.el (french-calendar-special-days-array): + New function. (calendar-french-date-string, calendar-goto-french-date): Use that function instead of the variable. @@ -7890,8 +7890,8 @@ 1997-12-01 Eli Zaretskii - * frame.el (make-frame-names-alist, select-frame-by-name): New - functions, support frame selection with completion and history. + * frame.el (make-frame-names-alist, select-frame-by-name): + New functions, support frame selection with completion and history. (frame-name-history, frame-names-alist): New variables. 1997-11-30 Dave Love @@ -7936,8 +7936,8 @@ 1997-11-24 Michael Kifer - * ediff-vers.el (cvs-run-ediff-on-file-descriptor): Set - default-directory. + * ediff-vers.el (cvs-run-ediff-on-file-descriptor): + Set default-directory. (cvs-run-ediff-on-file-descriptor): Use ediff-buffers when type=MODIFIED. * ediff-init.el: Commented out ediff-set-face-pixmap. @@ -7948,7 +7948,7 @@ 1997-11-24 Simon Marshall - * menu-bar.el (menu-bar-describe-menu): Fixed duplicate KEYs. + * menu-bar.el (menu-bar-describe-menu): Fix duplicate KEYs. 1997-11-24 Richard Stallman @@ -8062,7 +8062,7 @@ 1997-11-20 Karl Heuer - * international/mule-cmds.el (set-input-method): Renamed from + * international/mule-cmds.el (set-input-method): Rename from select-input-method. 1997-11-20 Eli Zaretskii @@ -8200,15 +8200,15 @@ * gnus/gnus-mule.el (gnus-mule-initialize): Do not set nntp-coding-system-for-read and nntp-coding-system-for-write. - * gnus/gnus-start.el (gnus-read-descriptions-file): Decode - description if necessary. + * gnus/gnus-start.el (gnus-read-descriptions-file): + Decode description if necessary. * gnus/nntp.el (nntp-coding-system-for-read): Set default value to binary. (nntp-coding-system-for-write): Likewise. - * international/mule-cmds.el (set-language-environment): Run - exit-language-environment-hook before calling `exit-function' + * international/mule-cmds.el (set-language-environment): + Run exit-language-environment-hook before calling `exit-function' which is specified for the language environment. * language/european.el: Add "Upper Sorbian" and "Lower Sorbian" in @@ -8267,7 +8267,7 @@ (ediff-update-markers-in-dir-meta-buffer): New, for fast redisplay of meta buffer. (ediff-update-meta-buffer, ediff-redraw-directory-group-buffer) - (ediff-previous-meta-overlay-start, ediff-next-meta-item): Changed to + (ediff-previous-meta-overlay-start, ediff-next-meta-item): Change to support the above. (ediff-insert-session-info-in-meta-buffer) (diff-replace-session-status-in-meta-buffer) @@ -8315,8 +8315,8 @@ 1997-10-31 Dave Love - * progmodes/fortran.el (fortran-imenu-generic-expression): New - variable. + * progmodes/fortran.el (fortran-imenu-generic-expression): + New variable. (fortran-mode): Use it. 1997-10-31 Richard Stallman @@ -8327,8 +8327,8 @@ 1997-10-28 Simon Marshall * font-lock.el (font-lock-keywords): Doc fix. - (font-lock-match-c++-style-declaration-item-and-skip-to-next): Allow - any number of ::foo suffixes in declarative items. + (font-lock-match-c++-style-declaration-item-and-skip-to-next): + Allow any number of ::foo suffixes in declarative items. * lazy-lock.el (lazy-lock-fontify-after-defer): Check each buffer to make sure it still (a) exists and (b) has Lazy Lock mode turned on. @@ -8369,18 +8369,18 @@ (octave-comment-indent): Handle magic comments correctly. (calculate-octave-indent): Handle magic comments correctly. - * progmodes/octave-mod.el (octave-abbrev-table): Added abbrevs for + * progmodes/octave-mod.el (octave-abbrev-table): Add abbrevs for switch, case, otherwise, and endswitch. - (octave-begin-keywords): Added switch. - (octave-else-keywords): Added case and otherwise. - (octave-end-keywords): Added endswitch. - (octave-block-match-alist): Added an entry for switch syntax. - (calculate-octave-indent): Added support for switch syntax. + (octave-begin-keywords): Add switch. + (octave-else-keywords): Add case and otherwise. + (octave-end-keywords): Add endswitch. + (octave-block-match-alist): Add an entry for switch syntax. + (calculate-octave-indent): Add support for switch syntax. (octave-block-end-offset): New function. (octave-comment-indent): Fix a typo. - * progmodes/octave-mod.el (octave-block-match-alist): Move - `otherwise' to right after `case' to have octave-close-block() + * progmodes/octave-mod.el (octave-block-match-alist): + Move `otherwise' to right after `case' to have octave-close-block() correctly close a `switch' block by `endswitch'. 1997-10-24 Carsten Dominik @@ -8388,16 +8388,16 @@ * reftex.el: The menu now used toggle and radio for some items. (reftex-default-context-regexps): `caption' now prefers the optional short caption. - (reftex-offer-label-menu): Fixed bug which could kill master + (reftex-offer-label-menu): Fix bug which could kill master buffer of external document. - (reftex-select-item, reftex-get-buffer-visiting): Compatibility - code works now the other way round. + (reftex-select-item, reftex-get-buffer-visiting): + Compatibility code works now the other way round. (reftex-select-external-document): Now gives a message when no external documents are available. (reftex-find-duplicate-labels): Single key strokes to exit or to do a query replace. Made more user friendly in general. - (reftex-section-levels, reftex-default-context-regexps): Move - definition of these variables to configuration section. + (reftex-section-levels, reftex-default-context-regexps): + Move definition of these variables to configuration section. 1997-10-24 Richard Stallman @@ -8485,16 +8485,16 @@ * international/mule-util.el (find-safe-coding-system): New function. - * international/mule.el (load-with-code-conversion): Update - preloaded-file-list, bind load-file-name and + * international/mule.el (load-with-code-conversion): + Update preloaded-file-list, bind load-file-name and inhibit-frame-unsplittable properly. (make-char): Make it a function. Set it byte-compile property to optimize byte-compiled codes. (make-coding-system): New optional arg charsets. Set property `safe-charsets' of the coding system to it. - * international/quail.el (quail-require-guidance-buf): Adjusted - for the change of input-method-verbose-flag. + * international/quail.el (quail-require-guidance-buf): + Adjust for the change of input-method-verbose-flag. * language/chinese.el: Give proper SAFE-CHARSET argument in each call of make-coding-system. @@ -8523,7 +8523,7 @@ * language/korean.el: Give proper SAFE-CHARSET argument in each call of make-coding-system. Set exit-function for language environment "Korean" to exit-korean-environment. - (setup-korean-environment): Moved to korean.el. + (setup-korean-environment): Move to korean.el. * language/lao.el: Give proper SAFE-CHARSET argument in each call of make-coding-system. @@ -8539,8 +8539,8 @@ * man.el (Man-getpage-in-background): Bind inhibit-eol-conversion to t before calling start-process or call-process. - (Man-softhyphen-to-minus): New function. If - enable-multibyte-characters is non-nil, convert the code 0255 only + (Man-softhyphen-to-minus): New function. + If enable-multibyte-characters is non-nil, convert the code 0255 only when it is not a part of a multibyte characters. (Man-fontify-manpage): Call Man-softhyphen-to-minus. (Man-cleanup-manpage): Likewise. @@ -8568,7 +8568,7 @@ (lm-insert-at-column): Use FORCE arg of move-to-column. * emulation/tpu-edt.el (tpu-arrange-rectangle): Likewise. -1997-10-23 Barry A. Warsaw +1997-10-23 Barry A. Warsaw Merge in Release 5.19 of cc-mode. @@ -8593,14 +8593,14 @@ comment-column and there is non-whitespace preceding this on the current line. - * progmodes/cc-mode.el (c-submit-bug-report): Remove - c-recognize-knr-p. Add c-comment-continuation-stars. + * progmodes/cc-mode.el (c-submit-bug-report): + Remove c-recognize-knr-p. Add c-comment-continuation-stars. * progmodes/cc-styles.el (c-initialize-builtin-style): Only use copy-tree if it is funcall-able. This is the right patch, and was given by Erik Naggum -1997-10-23 Barry A. Warsaw +1997-10-23 Barry A. Warsaw * progmodes/cc-menus.el (cc-imenu-c-prototype-macro-regexp): New var. @@ -8608,7 +8608,7 @@ Given by jan.dubois@ibm.net (Jan Dubois). * progmodes/cc-menus.el (cc-imenu-java-generic-expression): - Removed test for declaration + Remove test for declaration statements. Patch given by Ake Stenhoff , as forwarded to me by RMS. @@ -8619,7 +8619,7 @@ to cc-imenu-objc-function to enable Imenu support for Objective-C. Contributed by Masatake (jet) YAMATO. -1997-10-23 Barry A. Warsaw +1997-10-23 Barry A. Warsaw * progmodes/cc-styles.el (c-initialize-builtin-style): Use existing copy-tree if it's defined. @@ -8628,7 +8628,7 @@ c-offsets-alist must be copied recursively. Use copy-tree solution given by Simon Marshall . -1997-10-23 Barry A. Warsaw +1997-10-23 Barry A. Warsaw * progmodes/cc-cmds.el (c-beginning-of-statement): Fixes in sentence movement to properly @@ -8660,8 +8660,8 @@ 1997-10-22 Kenichi Handa - * gnus/gnus-art.el (gnus-show-traditional-method): Call - gnus-mule-decode-article only when enable-multibyte-characters is + * gnus/gnus-art.el (gnus-show-traditional-method): + Call gnus-mule-decode-article only when enable-multibyte-characters is non-nil. * gnus/gnus-ems.el (gnus-ems-redefine): Require `gnus-mule' only @@ -8675,10 +8675,10 @@ 1997-10-21 Kenichi Handa - * international/mule-diag.el (describe-coding-system): Print - information about coding system properties, post-read-conversion + * international/mule-diag.el (describe-coding-system): + Print information about coding system properties, post-read-conversion and pre-write-conversion. - (print-coding-system-briefly): Adjusted for the change in mule.el. + (print-coding-system-briefly): Adjust for the change in mule.el. (describe-current-coding-system): Likewise. (print-coding-system): Likewise. @@ -8688,9 +8688,9 @@ (2) Properties of a coding system (except for `coding-system' and `eol-type') is embedded in PLIST slot of coding-spec vector. (coding-spec-plist-idx): Initialize to 3. - (coding-system-spec-ref): Deleted. - (coding-system-spec): Moved from src/coding.c. - (coding-system-type): Adjusted for the above change. + (coding-system-spec-ref): Delete. + (coding-system-spec): Move from src/coding.c. + (coding-system-type): Adjust for the above change. (coding-system-mnemonic): Likewise. (coding-system-doc-string): Likewise. (coding-system-flags): Likewise. @@ -8698,37 +8698,37 @@ (coding-system-category): Likewise. (coding-system-get, coding-system-put, coding-system-category): New functions. - (coding-system-base): Moved from mule-util.el and adjusted for the + (coding-system-base): Move from mule-util.el and adjusted for the above change. (coding-system-parent): Make it obsolete alias of coding-system-base. - (make-subsidiary-coding-system): Adjusted for the above change. + (make-subsidiary-coding-system): Adjust for the above change. Update coding-system-list and coding-system-alist. (make-coding-system): Likewise. (define-coding-system-alias): Likewise. (set-buffer-file-coding-system): Typo in doc-string fixed. - (after-insert-file-set-buffer-file-coding-system): Change - enable-multibyte-characters only when + (after-insert-file-set-buffer-file-coding-system): + Change enable-multibyte-characters only when find-new-buffer-file-coding-system returns non-nil value. - (find-new-buffer-file-coding-system): Adjusted for the above change. + (find-new-buffer-file-coding-system): Adjust for the above change. - * international/mule-cmds.el (read-multilingual-string): Use - current-input-method prior to default-input-method. Don't bind + * international/mule-cmds.el (read-multilingual-string): + Use current-input-method prior to default-input-method. Don't bind current-input-method by `let', instead, activate the specified input method in the current buffer temporarily. * international/mule-conf.el: Change the way of making coding systems no-conversion and undecided. - * international/mule-util.el (coding-system-base): Moved to + * international/mule-util.el (coding-system-base): Move to mule.el. (coding-system-post-read-conversion): Use the new function coding-system-get. (coding-system-pre-write-conversion): Likewise. (coding-system-unification-table-for-decode): Likewise. (coding-system-unification-table-for-encode): Likewise. - (coding-system-list): Adjusted for the change in mule.el. - (coding-system-plist): Deleted. + (coding-system-list): Adjust for the change in mule.el. + (coding-system-plist): Delete. (coding-system-equal): Do not use coding-system-plist. * language/chinese.el: Use coding-system-put to set coding system @@ -8748,8 +8748,8 @@ * language/thai.el: Use coding-system-put to set coding system properties, post-read-conversion and pre-write-conversion. - * language/tibet-util.el (tibetan-post-read-conversion): Return - the length of converted region. + * language/tibet-util.el (tibetan-post-read-conversion): + Return the length of converted region. * language/tibetan.el: Use coding-system-put to set coding system properties, post-read-conversion and pre-write-conversion. @@ -8770,8 +8770,8 @@ 1997-10-21 Tomohiko Morioka - * gnus/nnfolder.el (nnfolder-request-list): Bind - file-name-coding-system to binary. + * gnus/nnfolder.el (nnfolder-request-list): + Bind file-name-coding-system to binary. (nnfolder-possibly-change-group): Likewise. * gnus/nnml.el (nnml-retrieve-headers): Likewise. @@ -8807,13 +8807,13 @@ gnus-mule-initialize and setting coding system for nntp. (gnus-mule-select-coding-system): Get a coding system of the current newsgroup from gnus-summary-buffer. - (gnus-mule-decode-summary): Deleted. + (gnus-mule-decode-summary): Delete. (gnus-mule-initialize): Add-hook gnus-mule-select-coding-system to gnus-parse-headers-hook. Don't add-hook gnus-mule-decode-summary and gnus-mule-decode-article. Don't set process coding system for nntp stream to 'no-conversion, instead set - nntp-coding-system-for-read to 'binary. Set - nnheader-file-coding-system and nnmail-file-coding-system to + nntp-coding-system-for-read to 'binary. + Set nnheader-file-coding-system and nnmail-file-coding-system to 'binary. 1997-10-21 Lars Magne Ingebrigtsen @@ -8866,8 +8866,8 @@ * nnml.el (nnml-directory): Doc fix. - * gnus-topic.el (gnus-topic-make-menu-bar): Added - gnus-topic-edit-parameters. + * gnus-topic.el (gnus-topic-make-menu-bar): + Add gnus-topic-edit-parameters. 1997-10-21 Jay Sachs @@ -8891,8 +8891,8 @@ 1997-10-21 Lars Magne Ingebrigtsen - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Escape - newlines. + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Escape newlines. 1997-10-21 Lars Magne Ingebrigtsen @@ -8901,7 +8901,7 @@ 1997-10-21 Danny Siu * smiley.el (smiley-buffer): Make smiley case sensitive. - (smiley-deformed-regexp-alist): Added more regexp for happy smiley. + (smiley-deformed-regexp-alist): Add more regexp for happy smiley. (smiley-nosey-regexp-alist): Same as above. 1997-10-21 Lars Magne Ingebrigtsen @@ -8919,9 +8919,9 @@ 1997-10-21 Lars Magne Ingebrigtsen - * nntp.el (nntp-nov-gap): Changed default. + * nntp.el (nntp-nov-gap): Change default. - * gnus-nocem.el (gnus-nocem-issuers): Fixed names. + * gnus-nocem.el (gnus-nocem-issuers): Fix names. 1997-10-21 Lars Magne Ingebrigtsen @@ -8969,8 +8969,8 @@ * gnus.el (gnus-simplify-mode-line): Use varying formats. - * gnus-xmas.el (gnus-xmas-group-remove-excess-properties): Removed. - (gnus-xmas-topic-remove-excess-properties): Removed. + * gnus-xmas.el (gnus-xmas-group-remove-excess-properties): Remove. + (gnus-xmas-topic-remove-excess-properties): Remove. 1997-10-21 Lars Magne Ingebrigtsen @@ -8993,8 +8993,8 @@ 1997-10-21 Michael R. Cook - * gnus-topic.el (gnus-topic-toggle-display-empty-topics): List - groups. + * gnus-topic.el (gnus-topic-toggle-display-empty-topics): + List groups. 1997-10-21 Per Abrahamsen @@ -9013,8 +9013,8 @@ * gnus-start.el (gnus-check-first-time-used): Force reading the active file the first time Gnus is used. - * gnus-group.el (gnus-group-set-mode-line): Conditionalize - modified. + * gnus-group.el (gnus-group-set-mode-line): + Conditionalize modified. * gnus-ems.el (gnus-mode-line-modified): New variable. @@ -9053,9 +9053,9 @@ * message.el (message-clone-locals): Made into own function. - * gnus.el (gnus-select-method): Changed default. + * gnus.el (gnus-select-method): Change default. - * gnus-start.el (gnus-read-active-file): Changed default to + * gnus-start.el (gnus-read-active-file): Change default to `some'. 1997-10-21 Lars Magne Ingebrigtsen @@ -9235,12 +9235,12 @@ 1997-10-21 Lars Magne Ingebrigtsen - * gnus-sum.el (t): Moved pop article keystroke. + * gnus-sum.el (t): Move pop article keystroke. 1997-10-21 Lars Magne Ingebrigtsen - * nnmail.el (nnmail-search-unix-mail-delim-backward): Allow - several "From "'s. + * nnmail.el (nnmail-search-unix-mail-delim-backward): + Allow several "From "'s. (nnmail-search-unix-mail-delim): Ditto. 1997-10-21 Lars Magne Ingebrigtsen @@ -9283,8 +9283,8 @@ 1997-10-21 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-summary-limit-children): Typo. Wouldn't - marked NoCeM'ed out messages as read. + * gnus-sum.el (gnus-summary-limit-children): Typo. + Wouldn't marked NoCeM'ed out messages as read. 1997-10-21 Darren Stalder @@ -9300,8 +9300,8 @@ 1997-10-21 Danny Siu - * gnus-picon.el (gnus-group-display-picons): Use - gnus-group-real-name so that picons for foreign groups display + * gnus-picon.el (gnus-group-display-picons): + Use gnus-group-real-name so that picons for foreign groups display correctly. 1997-10-21 Lars Magne Ingebrigtsen @@ -9364,8 +9364,8 @@ 1997-10-21 Per Abrahamsen - * gnus-cite.el (gnus-cite-attribution-prefix): Recognize - Microsoft/Agent style attribution lines. + * gnus-cite.el (gnus-cite-attribution-prefix): + Recognize Microsoft/Agent style attribution lines. (gnus-cite-attribution-suffix): Ditto. 1997-10-21 Lars Magne Ingebrigtsen @@ -9375,8 +9375,8 @@ (gnus-cache-possibly-alter-active): Test statement removed. (gnus-cache-articles-in-group): Would destroy hashtb. - * gnus-sum.el (gnus-summary-limit-mark-excluded-as-read): Don't - mark everything as read. + * gnus-sum.el (gnus-summary-limit-mark-excluded-as-read): + Don't mark everything as read. * gnus-cite.el (gnus-article-fill-cited-article): Nix out gnus-cite-article. @@ -9398,9 +9398,9 @@ * nnml.el (nnml-update-file-alist): Allow forcing. - * nnheaderxm.el (nnheader-xmas-find-file-noselect): Removed. - (nnheader-xmas-cancel-timer): Removed. - (nnheader-xmas-cancel-function-timers): Removed. + * nnheaderxm.el (nnheader-xmas-find-file-noselect): Remove. + (nnheader-xmas-cancel-timer): Remove. + (nnheader-xmas-cancel-function-timers): Remove. 1997-10-21 Lars Magne Ingebrigtsen @@ -9411,7 +9411,7 @@ * message.el (message-set-auto-save-file-name): Create unique auto save file names. - * gnus-topic.el (gnus-topic-tallied-groups): Removed. + * gnus-topic.el (gnus-topic-tallied-groups): Remove. (gnus-topic-prepare-topic): Output right number of articles in each sub-topic. @@ -9451,23 +9451,23 @@ need be displayed. (gnus-picons-lock): Function deleted. (gnus-picons-remove): Don't use it. New way of locking. - (gnus-picons-next-job-internal): New way of locking. Handle - new tag 'bar. + (gnus-picons-next-job-internal): New way of locking. + Handle new tag 'bar. (gnus-picons-next-job): New way of locking. (gnus-picons-buffer): Variable deleted. - (gnus-picons-remove-all): Modified accordingly. + (gnus-picons-remove-all): Modify accordingly. (gnus-group-annotations-lock): Variable deleted. (gnus-article-annotations-lock): Variable deleted. (gnus-x-face-annotations-lock): Variable deleted. - (gnus-picons-news-directories): Renamed, was + (gnus-picons-news-directories): Rename, was gnus-picons-news-directory. (gnus-picons-url-retrieve): Do not change url-show-status. (gnus-picons-clear-cache): Also clear gnus-picons-url-alist. 1997-10-21 Michael R. Cook - * gnus-topic.el (gnus-topic-toggle-display-empty-topics): New - function. + * gnus-topic.el (gnus-topic-toggle-display-empty-topics): + New function. 1997-10-21 Lars Magne Ingebrigtsen @@ -9504,7 +9504,7 @@ 1997-10-21 Lars Magne Ingebrigtsen - * gnus-topic.el (gnus-topic-create-topic): Added doc. + * gnus-topic.el (gnus-topic-create-topic): Add doc. * gnus-sum.el (gnus-summary-refer-article): Insert sparse non-displayed articles properly. @@ -9536,7 +9536,7 @@ (gnus-article-display-picons): Use the job queue if using the network. (gnus-group-display-picons): Ditto. (gnus-picons-make-path): Function deleted. - (gnus-picons-lookup-internal): Modified accordingly. + (gnus-picons-lookup-internal): Modify accordingly. (gnus-picons-lookup-user-internal): Take the LETs out of the loops. (gnus-picons-lookup-pairs): Take constant calculation outside of loop. (gnus-picons-display-picon-or-name): Use COND instead of nested IFs. @@ -9577,23 +9577,23 @@ (gnus-picons-users-image-alist): New variable. (gnus-picons-retrieve-user-callback): Use it. Added support for network retrieval of picons. - (gnus-picons-map): Removed. - (gnus-picons-remove): Removed case to handle processes. + (gnus-picons-map): Remove. + (gnus-picons-remove): Remove case to handle processes. (gnus-picons-processes-alist): New variable. - (gnus-picons-x-face-sentinel): Simplified. Use processes alist. + (gnus-picons-x-face-sentinel): Simplify. Use processes alist. (gnus-picons-display-x-face): Explicitly request an xface image. Always call gnus-picons-prepare-for-annotations. Use processes alist. (gnus-picons-lookup-internal): New function. (gnus-picons-lookup): Use it. (gnus-picons-lookup-user-internal): Ditto. (gnus-picons-display-picon-or-name): No more xface-p argument. - (gnus-picons-try-suffixes): Removed. + (gnus-picons-try-suffixes): Remove. (gnus-picons-try-face): New function. Does the caching in gnus-picons-glyph-alist. (gnus-picons-try-to-find-face): Take a glyph argument instead of a path. No more xface-p argument. Only use one annotation even if gnus-picons-display-as-address. - (gnus-picons-toggle-extent): Changed into an annotation action. + (gnus-picons-toggle-extent): Change into an annotation action. 1997-10-21 Lars Magne Ingebrigtsen @@ -9601,8 +9601,8 @@ 1997-10-21 Kim-Minh Kaplan - * gnus-picon.el (gnus-picons-prepare-for-annotations): New - function, and many changes. + * gnus-picon.el (gnus-picons-prepare-for-annotations): + New function, and many changes. 1997-10-21 Lars Magne Ingebrigtsen @@ -9671,8 +9671,8 @@ * gnus-cache.el (gnus-cache-move-cache): Allow entering directory name. - * nntp.el (nntp-telnet-command, nntp-telnet-switches): New - variables. + * nntp.el (nntp-telnet-command, nntp-telnet-switches): + New variables. * gnus-score.el (gnus-summary-increase-score): Refuse illegal match types. @@ -9684,7 +9684,7 @@ 1997-10-21 Per Abrahamsen - * gnus-ems.el (gnus-article-x-face-command): Removed bogus + * gnus-ems.el (gnus-article-x-face-command): Remove bogus declaration. 1997-10-21 Paul Franklin @@ -9758,8 +9758,8 @@ * message.el (message-cancel-news): Only say we cancel if we cancel. - * gnus-msg.el (gnus-summary-mail-crosspost-complaint): Deactivate - mark. + * gnus-msg.el (gnus-summary-mail-crosspost-complaint): + Deactivate mark. 1997-10-21 Lars Magne Ingebrigtsen @@ -9842,7 +9842,7 @@ (reftex-make-master-buffer-hook): Hook removed. (reftex-insert-buffer-or-file): Function removed. (reftex-parse-document): Function adapted to new parser. - (reftex-access-scan-info): Changed to fit new parser. Now detects + (reftex-access-scan-info): Change to fit new parser. Now detects changes in label-alist related variables automatically. (reftex-parse-one, reftex-parse-all): New functions. (reftex-all-document-files): New function. @@ -9872,8 +9872,8 @@ (reftex-find-nearby-label): Function removed. (reftex-scan-buffer-for-labels): Function removed. (reftex-section-info): New function. - (reftex-nth-parens-substring): Renamed to reftex-nth-arg. Return - nil when not enough args are present. + (reftex-nth-parens-substring): Rename to reftex-nth-arg. + Return nil when not enough args are present. (reftex-move-over-touching-args): New function. (reftex-where-am-I): New function. (reftex-nth-arg-wrapper): New function. @@ -9888,7 +9888,7 @@ several backup methods. (reftex-citation): Recursive edit moved to `e' key. (reftex-scan-buffer): Function removed. - (reftex-get-bibfile-list): Changed to work with chapterbib + (reftex-get-bibfile-list): Change to work with chapterbib package. (reftex-find-tex-file): New function. (reftex-find-files-on-path): Now first looks for file with @@ -9897,7 +9897,7 @@ reftex-do-citation. (reftex-do-citation): Recursive edit now on `e' key. (reftex-what-macro): Allow white space between macro arguments. - (reftex-allow-for-ctrl-m): Renamed to + (reftex-allow-for-ctrl-m): Rename to `reftex-make-regexp-allow-for-ctrl-m'. (reftex-nearest-match): New function. (reftex-auto-mode-alist): New function. @@ -9909,8 +9909,8 @@ (reftex-parse-args): New function. (easy-menu-define): Menu extended. Some parts are now computed. from the user options. - (reftex-move-to-next-arg, reftex-move-to-previous-arg): New - functions. Now we can parse macros with distributed arguments. + (reftex-move-to-next-arg, reftex-move-to-previous-arg): + New functions. Now we can parse macros with distributed arguments. (reftex-goto-label): Function removed. (reftex-position-cursor): Function removed. (reftex-item): Function removed. @@ -9944,8 +9944,8 @@ * iso-insert.el: Add autoloads for `8859-1-map'. - * cus-edit.el (custom-group-value-create): Use - `custom-group-visibility' instead of `group-visibility'. + * cus-edit.el (custom-group-value-create): + Use `custom-group-visibility' instead of `group-visibility'. 1997-10-19 Richard Stallman @@ -10018,7 +10018,7 @@ (double-map): Add customize support. (double-prefix-only): Ditto. - * textmodes/nroff-mode.el (nroff): Moved from `editing' to `wp'. + * textmodes/nroff-mode.el (nroff): Move from `editing' to `wp'. * wid-edit.el (variable-link): New widget. (widget-variable-link-action): New function. @@ -10033,7 +10033,7 @@ (view-highlight-face, view-scroll-auto-exit) (view-try-extend-at-buffer-end) (view-remove-frame-by-deleting, view-mode-hook): - Defined by defcustom instead of by defvar. + Define by defcustom instead of by defvar. (view-mode-enter): Install exit-action also when view-mode is already on. Small rewrite using unless. (view-mode, view-mode-exit, view-scroll-lines, view-really-at-end) @@ -10109,8 +10109,8 @@ * comint.el (comint-regexp-arg): Likewise. * term.el (term-regexp-arg): Likewise. - * simple.el (repeat-complex-command): Bind - minibuffer-history-sexp-flag to the minibuffer depth. + * simple.el (repeat-complex-command): + Bind minibuffer-history-sexp-flag to the minibuffer depth. (next-history-element): Compare minibuffer-history-sexp-flag against the current minibuffer depth to verify its validity. (previous-matching-history-element): Likewise. @@ -10138,7 +10138,7 @@ * finder.el (finder-mode-map): Bind [mouse-2]. (finder-compile-keywords): Match compressed file names, but don't put compression extension in the output. - (finder-find-library): Deleted. + (finder-find-library): Delete. (finder-commentary): Use locate-library, not finder-find-library. (finder-mouse-select): New function. (finder-summary): Mention mouse binding. @@ -10147,7 +10147,7 @@ 1997-09-30 Andre Spiegel - * vc-hooks.el (vc-find-cvs-master): Added missing `throw' for + * vc-hooks.el (vc-find-cvs-master): Add missing `throw' for the case when TIMESTAMP is arbitrary text. 1997-09-30 Hrvoje Niksic @@ -10180,8 +10180,8 @@ * ediff-init.el: Added documentation to face-variables. - * ediff-util.el (ediff-next-difference, ediff-previous-difference): Use - ediff-merge-region-is-non-clash and don't compute fine diffs when + * ediff-util.el (ediff-next-difference, ediff-previous-difference): + Use ediff-merge-region-is-non-clash and don't compute fine diffs when skipping non-clash regions. * ediff-merg.el (ediff-merge-region-is-non-clash): New function. @@ -10316,12 +10316,12 @@ 1997-09-15 Ken'ichi Handa - * mule.el (find-new-buffer-file-coding-system): Reflect - text coding part of default-buffer-file-coding-system to + * mule.el (find-new-buffer-file-coding-system): + Reflect text coding part of default-buffer-file-coding-system to buffer-file-coding-system when buffer-file-coding-system is not locally set and ASCII only text is read. -1997-09-15 Barry A. Warsaw +1997-09-15 Barry A. Warsaw * progmodes/cc-styles.el (c-initialize-builtin-style): Copy the whole tree instead of just copy-sequence. @@ -10335,11 +10335,11 @@ 1997-09-15 Andreas Schwab - * international/quail.el (quail-completion-list-translations): Fix - and simplify generation of translation list. + * international/quail.el (quail-completion-list-translations): + Fix and simplify generation of translation list. - * international/titdic-cnv.el (tit-process-header): Convert - argument of KEYPROMPT if it contains an escape. + * international/titdic-cnv.el (tit-process-header): + Convert argument of KEYPROMPT if it contains an escape. (tit-process-body): Handle trailing whitespace and multiple spaces between phrases. @@ -10483,10 +10483,10 @@ 1997-09-12 Michael Kifer - * viper-keym.el (viper-want-ctl-h-help): Updated doc string. + * viper-keym.el (viper-want-ctl-h-help): Update doc string. (viper-vi-basic-map, viper-insert-basic-map, viper-replace-map): - Added binding for backspace. - * viper-cmd.el (viper-adjust-keys-for): Separated backspace and C-h. + Add binding for backspace. + * viper-cmd.el (viper-adjust-keys-for): Separate backspace and C-h. 1997-09-12 Richard Stallman @@ -10505,7 +10505,7 @@ 1997-09-12 Inge Frick - * compile.el (compilation-parse-errors): Fixed two bugs that + * compile.el (compilation-parse-errors): Fix two bugs that could make compilation-parse-errors loop infinitely. Each round of the parsing loop now either moves point ahead at least a line or sets `found-desired' to true to stop the loop. @@ -10535,8 +10535,8 @@ 1997-09-11 Eli Zaretskii - * international/mule-diag.el (describe-coding-system): Describe - coding systems of type 5, raw-text. + * international/mule-diag.el (describe-coding-system): + Describe coding systems of type 5, raw-text. * hexl.el (hexlify-buffer): Bind coding-system-for-write to raw-text with eol-type derived from the buffer-file-coding-system. @@ -10587,11 +10587,11 @@ 1997-09-10 Michael Ernst - * uniquify.el (uniquify-ignore-buffers-re): Added. + * uniquify.el (uniquify-ignore-buffers-re): Add. 1997-09-10 Michael Kifer - * viper-keym.el (viper-help-modifier-map): Deleted; help mode map is + * viper-keym.el (viper-help-modifier-map): Delete; help mode map is no longer modified. * viper.el (viper-set-hooks): Make help buffers come up in emacs state. @@ -10612,7 +10612,7 @@ (ethio-fidel-to-sera-mail-or-marker): New function. (ethio-find-file): Do nothing if not in ethio-mode. (ethio-write-file): Likewise. - (ethio-prefer-ascii-space): Moved from leim/quail/ethiopic.el. + (ethio-prefer-ascii-space): Move from leim/quail/ethiopic.el. (ethio-toggle-space): Likewise. (ethio-insert-space): Likewise. (ethio-insert-ethio-space): Likewise. @@ -10627,8 +10627,8 @@ 1997-09-10 Kenichi Handa - * language/japan-util.el (setup-japanese-environment): Give - iso-2022-jp to set-default-coding-system if not running on DOS. + * language/japan-util.el (setup-japanese-environment): + Give iso-2022-jp to set-default-coding-system if not running on DOS. (read-hiragana-string): Use input method "japanese-hiragana". * gnus/gnus-mule.el: Add coding system specification for several @@ -10686,15 +10686,15 @@ 1997-09-08 Per Abrahamsen - * cus-edit.el (custom-variable-save): Fixed doc string. + * cus-edit.el (custom-variable-save): Fix doc string. * cus-edit.el (custom-variable-menu): Make it clear that `Lisp mode' edit the initial lisp expression. 1997-09-08 Eli Zaretskii - * info.el (info-insert-file-contents): Bind - coding-system-for-write to no-conversion. + * info.el (info-insert-file-contents): + Bind coding-system-for-write to no-conversion. 1997-09-08 Andreas Schwab @@ -10742,9 +10742,9 @@ * telnet.el (telnet-initial-filter): Temporarily go to proper buffer. -1997-09-07 Barry A. Warsaw +1997-09-07 Barry A. Warsaw - * progmodes/cc-mode.el (c-version): Updated. + * progmodes/cc-mode.el (c-version): Update. * progmodes/cc-cmds.el (c-beginning-of-statement): Fixes in sentence movement to properly @@ -10916,8 +10916,8 @@ 1997-09-05 Ken'ichi Handa - * language/japan-util.el (setup-japanese-environment): Set - coding-category-iso-8-else to japanese-iso-8bit. + * language/japan-util.el (setup-japanese-environment): + Set coding-category-iso-8-else to japanese-iso-8bit. 1997-09-05 Richard Stallman @@ -10950,10 +10950,10 @@ 1997-09-05 Michael Kifer * viper-init.el (viper-replace-region-start-delimiter): - Improved the default. + Improve the default. * viper-mous.el (viper-mouse-click-search-word) (viper-mouse-click-insert-word): - Fixed to not react when click is not over a text area. + Fix to not react when click is not over a text area. * viper.el (read-file-name): Unadvised. * viper-cmd.el (viper-insert-state-post-command-sentinel) (viper-save-last-insertion): @@ -11036,9 +11036,9 @@ 1997-09-02 Geoff Voelker * w32-fns.el: Update doc strings. - (w32-startup): Deleted function. + (w32-startup): Delete function. (w32-check-shell-configuration, w32-init-info): New functions. - (w32-system-shell-p): Renamed from w32-using-system-shell-p. + (w32-system-shell-p): Rename from w32-using-system-shell-p. Added shell name argument. 1997-09-02 Richard Stallman @@ -11170,11 +11170,11 @@ 1997-08-31 Andreas Schwab - * emacs-lisp/bytecomp.el (byte-compile-output-file-form): Handle - custom-declare-variable. + * emacs-lisp/bytecomp.el (byte-compile-output-file-form): + Handle custom-declare-variable. - * international/mule-diag.el (describe-current-coding-system): Add - missing newline in output. + * international/mule-diag.el (describe-current-coding-system): + Add missing newline in output. 1997-08-31 Richard Stallman @@ -11228,17 +11228,17 @@ 1997-08-29 Carsten Dominik - * reftex.el (reftex-customize): Added call to customize browse. + * reftex.el (reftex-customize): Add call to customize browse. (reftex-show-commentary): New function. (reftex-label-alist): Prefix may contain % escapes. Nth macro argument may be context. May give two different context methods. (reftex-default-label-alist-entries): Customization type changed. (reftex-label-menu-flags): Extra flag for searches. - (reftex-cite-format): Changed completely, % escapes are now used. + (reftex-cite-format): Change completely, % escapes are now used. (reftex-comment-citations): New variable. (reftex-cite-comment-format): New variable. (reftex-cite-punctuation): New variable. - (reftex-make-master-buffer): Changed name of master buffer, + (reftex-make-master-buffer): Change name of master buffer, removed interactive. Runs a hook on the buffer. Interpret TEXINPUTS environment variable. Allow naked argument for \input. Master buffer is now in fundamental mode. @@ -11326,25 +11326,25 @@ * international/mule.el (make-coding-system): Make TYPE 5 means raw-text. - (after-insert-file-set-buffer-file-coding-system): Set - enable-multibyte-characters to nil if we read a file with + (after-insert-file-set-buffer-file-coding-system): + Set enable-multibyte-characters to nil if we read a file with no-conversion or raw-text-XXXX. - * international/mule-conf.el (raw-text): New coding system. Set - coding-category-raw-text to raw-text. + * international/mule-conf.el (raw-text): New coding system. + Set coding-category-raw-text to raw-text. - * language/english.el (setup-english-environment): Set - coding-category-raw-text to raw-text. + * language/english.el (setup-english-environment): + Set coding-category-raw-text to raw-text. - * language/viet-util.el (setup-vietnamese-environment): Set - coding-category-raw-text to vietnamese-viscii. + * language/viet-util.el (setup-vietnamese-environment): + Set coding-category-raw-text to vietnamese-viscii. * language/cyril-util.el (setup-cyrillic-alternativnyj-environment): Set coding-category-raw-text to cyrillic-alternativnyj. * international/mule-cmds.el (update-leim-list-file): Make it handle multiple directories. - (update-all-leim-list-files): Deleted. + (update-all-leim-list-files): Delete. * international/quail.el (quail-update-leim-list-file): Make it handle multiple directories. @@ -11357,8 +11357,8 @@ * nnfolder.el (nnfolder-request-list): Override 'nnmail-file-coding-system' by 'nnmail-active-file-coding-system'. - (nnfolder-request-list, nnfolder-possibly-change-group): Protect - from conversion by `pathname-coding-system' for XEmacs/mule. + (nnfolder-request-list, nnfolder-possibly-change-group): + Protect from conversion by `pathname-coding-system' for XEmacs/mule. (nnfolder-group-pathname): Encode pathname for Emacs 20. * nnmh.el (nnmh-request-list, nnmh-active-number): Protect from @@ -11400,8 +11400,8 @@ * gnus-sum.el (gnus-structured-field-decoder): New variable. (gnus-unstructured-field-decoder): New variable. - (gnus-get-newsgroup-headers, gnus-nov-parse-line): Use - `gnus-structured-field-decoder' and + (gnus-get-newsgroup-headers, gnus-nov-parse-line): + Use `gnus-structured-field-decoder' and `gnus-unstructured-field-decoder' for Subject field. 1997-08-28 Miyashita Hisashi @@ -11508,8 +11508,8 @@ * files.el (revert-buffer): Read a file without any code conversion if we are reverting from an auto-saved file. - * language/japanese.el (set-language-info-alist): Change - iso-2022-7bit to iso-2022-jp. + * language/japanese.el (set-language-info-alist): + Change iso-2022-7bit to iso-2022-jp. * replace.el (query-replace-read-args): Locally bind minibuffer-inherit-input-method to t to make a minibuffer inherit @@ -11635,14 +11635,14 @@ and changed into defsubsts. (last): New function. - * emacs-lisp/cl.el (caar, cadr, cdar, cddr): Moved to subr.el. + * emacs-lisp/cl.el (caar, cadr, cdar, cddr): Move to subr.el. (last): Function renamed to last*. * emacs-lisp/cl-macs.el (cl-loop-let): Use last*. * time.el (display-time-hook): Minor doc fix. - * ps-print.el (ps-zebra-stripes): Renamed from ps-zebra-stripe. - (ps-zebra-stripe-height): Renamed from ps-number-of-zebra. + * ps-print.el (ps-zebra-stripes): Rename from ps-zebra-stripe. + (ps-zebra-stripe-height): Rename from ps-number-of-zebra. * vc.el (vc-version-diff): Mention that default file is visited file. @@ -11734,7 +11734,7 @@ (bookmark-bmenu-check-position): Return a meaningful value -- callers have apparently been assuming this anyway. (bookmark-build-xemacs-menu): Unused function deleted. - (bookmark-version): Removed this variable; the Emacs version suffices. + (bookmark-version): Remove this variable; the Emacs version suffices. 1997-08-22 Simon Marshall @@ -11756,7 +11756,7 @@ * viper-cmd.el (viper-replace-char-subr, viper-word-*) (viper-separator-skipback-special): Made to work with mule and syntax tables. - (viper-change-state): Moved iso-accents-mode handling here from + (viper-change-state): Move iso-accents-mode handling here from viper-change-state-to-vi/insert/etc. Also now toggles MULE. 1997-08-21 Richard Stallman @@ -11769,7 +11769,7 @@ 1997-08-21 Kenichi HANDA - * language/cyril-util.el (setup-cyrillic-environment): Deleted. + * language/cyril-util.el (setup-cyrillic-environment): Delete. (setup-cyrillic-iso-environment): New function. (setup-cyrillic-koi8-environment): New function. (setup-cyrillic-alternativnyj-environment): New function. @@ -11784,20 +11784,20 @@ (auto-file-coding-system-function): Set this variable to `auto-file-coding-system'. - * international/quail.el (quail-terminate-translation): Run - input-method-after-insert-chunk-hook only when the current input + * international/quail.el (quail-terminate-translation): + Run input-method-after-insert-chunk-hook only when the current input method doesn't require conversion. (quail-no-conversion): Run input-method-after-insert-chunk-hook. * international/mule-util.el (coding-system-unification-table): - Deleted. + Delete. (coding-system-unification-table-for-decode): New function. (coding-system-unification-table-for-encode): New function. * international/mule.el (make-coding-system): Doc-string fixed. - * international/fontset.el (register-alternate-fontnames): New - function. + * international/fontset.el (register-alternate-fontnames): + New function. (x-complement-fontset-spec): Register alternate fontnames by calling register-alternate-fontnames. (instanciate-fontset): Likewise. @@ -11874,7 +11874,7 @@ (ps-background-image, ps-background, ps-header-height) (ps-get-face): New internal functions. (ps-control-character): Handle control characters. - (ps-gnus-print-article-from-summary): Updated for Gnus 5. + (ps-gnus-print-article-from-summary): Update for Gnus 5. (ps-jack-setup): Replace 'nil by nil, 't by t. 1997-08-19 Richard Stallman @@ -11890,8 +11890,8 @@ * files.el (append-to-file): Doc-string fixed. - * international/quail.el (quail-exit-from-minibuffer): Call - inactivate-input-method instead of (quail-mode -1). + * international/quail.el (quail-exit-from-minibuffer): + Call inactivate-input-method instead of (quail-mode -1). (quail-kill-guidance-buf): New function. (quail-mode): Doc-string and comments modified. Make this function non-interactive. Add quail-kill-guidance-buf to @@ -11970,35 +11970,35 @@ (quail-define-package): Indentation fixed. (quail-setup-overlays): New arg conversion-mode. Pay attention to input-method-highlight-flag. - (quail-mode-line-format): Deleted. - (quail-generate-mode-line-format): Deleted. + (quail-mode-line-format): Delete. + (quail-generate-mode-line-format): Delete. (quail-mode): Don't handle input-method-inactivate-hook and input-method-activate-hook here. Delete code setting quail-mode-line-format. (quail-saved-current-map): Name changed from quail-saved-overriding-local-map. (quail-toggle-mode-temporarily): Completely re-written. - (quail-execute-non-quail-command): Use - quail-toggle-mode-temporarily. - (quail-conv-overlay-modification-hook): Deleted. - (quail-suppress-conversion): Deleted. + (quail-execute-non-quail-command): + Use quail-toggle-mode-temporarily. + (quail-conv-overlay-modification-hook): Delete. + (quail-suppress-conversion): Delete. (quail-start-translation): Completely re-written. (quail-start-translation-in-conversion-mode): Likewise. (quail-delete-region): Check if quail-overlay is active. - (quail-get-current-str): Don't call throw. Set - overriding-terminal-local-map correctly. + (quail-get-current-str): Don't call throw. + Set overriding-terminal-local-map correctly. (quail-update-translation): Run hooks in input-method-after-insert-chunk-hook. (quail-self-insert-command): Catch 'quail-tag here. - (quail-conversion-delete-char): Don't call throw. Set - overriding-terminal-local-map to nil. + (quail-conversion-delete-char): Don't call throw. + Set overriding-terminal-local-map to nil. (quail-conversion-backward-delete-char): Likewise. (quail-no-conversion): Likewise. - (quail-help-insert-keymap-description): Bind - overriding-terminal-local-map instead of overriding-local-map. + (quail-help-insert-keymap-description): + Bind overriding-terminal-local-map instead of overriding-local-map. - * international/mule-cmds.el (previous-input-method): This - variable deleted. + * international/mule-cmds.el (previous-input-method): + This variable deleted. (input-method-history): New variable. (read-input-method-name): Bind minibuffer-history to input-method-history. @@ -12006,27 +12006,27 @@ previous-input-method. Run hooks in input-method-activate-hook. (inactivate-input-method): Update input-method-history. Run hooks in input-method-inactivate-hook. - (select-input-method): Doc-string modified. Use - input-method-history instead of previous-input-method. Set - default-input-method to input-method. - (toggle-input-method): Doc-string modified. Use - input-method-history instead of previous-input-method. + (select-input-method): Doc-string modified. + Use input-method-history instead of previous-input-method. + Set default-input-method to input-method. + (toggle-input-method): Doc-string modified. + Use input-method-history instead of previous-input-method. (read-multilingual-string): Bind minibuffer-setup-hook correctly. (input-method-exit-on-invalid-key): New variable. - * isearch.el (isearch-multibyte-characters-flag): Deleted. + * isearch.el (isearch-multibyte-characters-flag): Delete. (isearch-mode): Do not bind isearch-multibyte-characters-flag and isearch-input-method. (isearch-printing-char): Use current-input-method instead of isearch-input-method. (isearch-message-prefix): Likewise. - * international/isearch-x.el (isearch-input-method): Deleted. - (isearch-input-method-title): Deleted. + * international/isearch-x.el (isearch-input-method): Delete. + (isearch-input-method-title): Delete. (isearch-toggle-specified-input-method): Call toggle-input-method. (isearch-toggle-input-method): Likewise. - (isearch-process-search-multibyte-characters): Use - current-input-method instead of isearch-input-method. + (isearch-process-search-multibyte-characters): + Use current-input-method instead of isearch-input-method. 1997-08-17 Richard Stallman @@ -12045,7 +12045,7 @@ For writing, use buffer-file-coding-system if set, otherwise buffer-file-type. (find-file-not-found-set-buffer-file-coding-system): - Renamed from find-file-not-found-set-buffer-file-type. + Rename from find-file-not-found-set-buffer-file-type. Set buffer-file-coding-system as well as buffer-file-type. 1997-08-16 Richard Stallman @@ -12066,8 +12066,8 @@ * international/isearch-x.el (isearch-process-search-multibyte-characters): Bind input-method-verbose-flag, not input-method-tersely-flag. - * international/mule-cmds.el (input-method-verbose-flag): Renamed - from input-method-tersely-flag and sense inverted. + * international/mule-cmds.el (input-method-verbose-flag): + Rename from input-method-tersely-flag and sense inverted. (input-method-highlight-flag): New variable. (toggle-input-method): Pass missing arg to read-input-method-name. @@ -12079,8 +12079,8 @@ 1997-08-16 Kenichi Handa - * language/china-util.el (setup-chinese-gb-environment): Delete - a code setting default value of default-input-method. + * language/china-util.el (setup-chinese-gb-environment): + Delete a code setting default value of default-input-method. (setup-chinese-big5-environment): Likewise. (setup-chinese-cns-environment): Likewise. @@ -12107,7 +12107,7 @@ * loadup.el (loaddefs.el): Load that file much later, almost last. Delete most calls to garbage-collect. -1997-08-15 Barry A. Warsaw +1997-08-15 Barry A. Warsaw * progmodes/cc-styles.el (c-style-alist): "python" style requires c-comment-continuation-stars be "". @@ -12271,7 +12271,7 @@ * dos-fns.el (dos-print-region-function): Force EOL conversion to DOS CR-LF pairs. -1997-08-10 Barry A. Warsaw +1997-08-10 Barry A. Warsaw * Release 5.15 @@ -12324,7 +12324,7 @@ (c-enable-//-in-c-mode): Obsolete. * progmodes/cc-langs.el (c++-mode-syntax-table, java-mode-syntax-table) - (objc-mode-syntax-table, idl-mode-syntax-table): Added autoload + (objc-mode-syntax-table, idl-mode-syntax-table): Add autoload cookies. c-mode-syntax-table already has one. Use the new syntax table initialization idioms. @@ -12333,7 +12333,7 @@ lines are now analyzed as template-args-cont. * progmodes/cc-styles.el (c-offsets-alist): - Added template-args-cont syntactic symbol. + Add template-args-cont syntactic symbol. * progmodes/cc-styles.el (c-styles-alist): In "java" style, set c-hanging-comment-starter-p to @@ -12353,16 +12353,16 @@ * international/mule.el (make-coding-system): Add a new FLAGS elements SAFE. Use it for terminal coding system if some other coding system is specified explicitly. - (ignore-relative-composition): Initialize - ignore-relative-composition. + (ignore-relative-composition): + Initialize ignore-relative-composition. - * international/mule-util.el(prefer-coding-system): Moved to + * international/mule-util.el(prefer-coding-system): Move to mule-util.el. * international/mule-cmds.el (set-default-coding-systems): Doc-string modified. - (prefer-coding-system): Moved from mule-util.el. Call - set-default-coding-systems. + (prefer-coding-system): Move from mule-util.el. + Call set-default-coding-systems. * international/mule-conf.el (iso-safe): New coding system. @@ -12416,7 +12416,7 @@ * help.el (describe-key): Don't put a colon after the command name. -1997-08-09 Barry A. Warsaw +1997-08-09 Barry A. Warsaw * progmodes/cc-engine.el (c-beginning-of-statement-1): When checking for bare semi, don't match @@ -12438,7 +12438,7 @@ c-hanging-comment-starter-p to nil to preserve Javadoc starter lines. * progmodes/cc-styles.el (c-set-style-2): - Fixed broken implementation of inherited styles. + Fix broken implementation of inherited styles. * progmodes/cc-styles.el (c-set-style): Call c-initialize-builtin-style. @@ -12639,12 +12639,12 @@ 1997-08-04 Espen Skoglund * pascal.el (pascal-mode-syntax-table): _ is now a symbol constituent. - (pascal-indent-case): Removed unnecessary calls to marker-position. + (pascal-indent-case): Remove unnecessary calls to marker-position. (pascal-indent-declaration): Editing a parameterlist at the end of a buffer does not hang. Removed unnecessary call to marker-position. - (pascal-get-lineup-indent): Removed unused variable. + (pascal-get-lineup-indent): Remove unused variable. Indent parameterlist correctly. - (pascal-completion-response): Removed unused variable. + (pascal-completion-response): Remove unused variable. 1997-08-04 Andreas Schwab @@ -12653,16 +12653,16 @@ * isearch.el (isearch-quote-char): Fix handling of control characters, copied from quoted-insert. - * emacs-lisp/pp.el (pp-to-string): Use - emacs-lisp-mode-syntax-table. + * emacs-lisp/pp.el (pp-to-string): + Use emacs-lisp-mode-syntax-table. * international/quail.el (quail-update-leim-list-file): Go to the beginning of the package file, in case it was already visited. 1997-08-04 Kenichi Handa - * language/english.el (setup-english-environment): Call - set-default-coding-systems. + * language/english.el (setup-english-environment): + Call set-default-coding-systems. * language/china-util.el (setup-chinese-gb-environment): Do not call set-terminal-coding-system and set-keyboard-coding-system, @@ -12676,8 +12676,8 @@ * language/korean.el (setup-korean-environment): Likewise. - * international/mule-cmds.el (set-default-coding-systems): New - function. + * international/mule-cmds.el (set-default-coding-systems): + New function. * international/mule.el (default-terminal-coding-system): New var. (set-terminal-coding-system): @@ -12772,20 +12772,20 @@ * term/x-win.el: Fix previous change. - * international/quail.el (quail-next-translation): Call - quail-execute-non-quail-command when no current translations. + * international/quail.el (quail-next-translation): + Call quail-execute-non-quail-command when no current translations. (quail-prev-translation): Likewise. (quail-next-translation-block): Likewise. (quail-prev-translation-block): Likewise. - * language/china-util.el (setup-chinese-gb-environment): Set - default value of default-input-method. + * language/china-util.el (setup-chinese-gb-environment): + Set default value of default-input-method. (setup-chinese-big5-environment): Likewise. (setup-chinese-cns-environment): Likewise. Correct input method name. - * language/ethio-util.el (setup-ethiopic-environment): Bind - correct commands in global-map, rmail-mode-map, and mail-mode-map. + * language/ethio-util.el (setup-ethiopic-environment): + Bind correct commands in global-map, rmail-mode-map, and mail-mode-map. * language/ethiopic.el (ccl-encode-ethio-font): Fix typo in doc-string. Set default value of default-input-method. @@ -12872,23 +12872,23 @@ * international/fontset.el (fontset-name-p): New function. (uninstanciated-fontset-alist): New variable. - (create-fontset-from-fontset-spec): Delete arg STYLE. Register - style-variants of FONTSET in uninstanciated-fontset-alist. - (create-fontset-from-x-resource): Call - create-fontset-from-fontset-spec correctly. + (create-fontset-from-fontset-spec): Delete arg STYLE. + Register style-variants of FONTSET in uninstanciated-fontset-alist. + (create-fontset-from-x-resource): + Call create-fontset-from-fontset-spec correctly. * international/mule-util.el (reference-point-alist): Doc-string modified. - * term/x-win.el: Do not create style-variants of fontset. They - are just registered in uninstanciated-fontset-alist. + * term/x-win.el: Do not create style-variants of fontset. + They are just registered in uninstanciated-fontset-alist. 1997-07-31 Michael Kifer - * ediff*.el (ediff-eval-in-buffer): Changed macro and renamed + * ediff*.el (ediff-eval-in-buffer): Change macro and renamed ediff-with-current-buffer. Eliminated inefficient calls to `intern'. - * ediff-diff.el (ediff-exec-process): Changed to work with buffers + * ediff-diff.el (ediff-exec-process): Change to work with buffers whose names have spaces. (ediff-wordify): Use buffer-substring-no-properties. @@ -13070,8 +13070,8 @@ 1997-07-25 Ken'ichi Handa - * international/quail.el (quail-update-leim-list-file): Call - find-file-noselect with t for arguments NOWARN and RAWFILE. + * international/quail.el (quail-update-leim-list-file): + Call find-file-noselect with t for arguments NOWARN and RAWFILE. * international/mule-cmds.el (leim-list-entry-regexp): Make this match only at beginning of line. @@ -13120,8 +13120,8 @@ * language/tibet-util.el (setup-tibetan-environment): Correct coding system names. Set default-input-method to "tibetan-wylie". - * language/viet-util.el (setup-vietnamese-environment): Add - autoload cookie. + * language/viet-util.el (setup-vietnamese-environment): + Add autoload cookie. 1997-07-25 Richard Stallman @@ -13143,7 +13143,7 @@ 1997-07-24 Michael Kifer * viper.el (viper-non-vi-major-modes): New variable. - (vip-set-hooks): Changed so it'll update viper-non-vi-major-modes. + (vip-set-hooks): Change so it'll update viper-non-vi-major-modes. (viper-mode): Now checks viper-non-vi-major-modes. 1997-07-24 Richard Stallman @@ -13168,11 +13168,11 @@ * cus-face.el (custom-declare-face): Use [set-]face-documentation. - * faces.el (face-documentation): Renamed from face-doc-string. - (set-face-documentation): Renamed from set-face-doc-string. + * faces.el (face-documentation): Rename from face-doc-string. + (set-face-documentation): Rename from set-face-doc-string. (face-doc-string): Make this an alias. - * term/bg-mouse.el (bg-yank-or-pop): Changed eql to eq. + * term/bg-mouse.el (bg-yank-or-pop): Change eql to eq. * international/mule-cmds.el (read-input-method-name): Fix error msg. @@ -13342,8 +13342,8 @@ Use undecided-dos for dos-text file names. Use undecided for non-existing untranslated file names. - * international/mule.el (modify-coding-system-alist): Added. - international/mule-util.el (modify-coding-system-alist): Removed. + * international/mule.el (modify-coding-system-alist): Add. + international/mule-util.el (modify-coding-system-alist): Remove. * loadup.el [windows-nt, ms-dos]: Undo loading of international/mule-utils. @@ -13407,7 +13407,7 @@ (occur-mode-find-occurrence): Use `occur' text property to find marker for locus of the occurrence. (occur-next, occur-prev): New commands. - (occur): Fixed bug preventing line number being displayed if line + (occur): Fix bug preventing line number being displayed if line number is less than the number of lines of context. 1997-07-18 Andre Spiegel @@ -13467,7 +13467,7 @@ * paren.el (show-paren-match-face): Use gray on all non-color screens. -1997-07-17 Barry A. Warsaw +1997-07-17 Barry A. Warsaw * progmodes/cc-mode.el (c-initialize-cc-mode): New function. (c-mode, c++-mode, objc-mode, java-mode): Call it. @@ -13480,7 +13480,7 @@ * progmodes/cc-langs.el: Require 'cc-defs for the definition of c-emacs-features. - * progmodes/cc-langs.el (c-mode-menu): Added uncomment region and + * progmodes/cc-langs.el (c-mode-menu): Add uncomment region and slight rearrangement of items. * progmodes/cc-cmds.el: Require cc-defs for the c-add-syntax macro. @@ -13493,8 +13493,8 @@ * progmodes/cc-engine.el (c-maybe-labelp): Add defvar. - * progmodes/cc-styles.el (c-initialize-builtin-style): Use - copy-sequence instead of c-copy-tree. + * progmodes/cc-styles.el (c-initialize-builtin-style): + Use copy-sequence instead of c-copy-tree. * progmodes/cc-defs.el (c-load-all): Function deleted. @@ -13564,17 +13564,17 @@ * international/quail.el (quail-translate-key): Fix previous change. - * international/mule.el (make-coding-system): Distinguish - coding-category-iso-7-else and coding-category-iso-8-else. + * international/mule.el (make-coding-system): + Distinguish coding-category-iso-7-else and coding-category-iso-8-else. - * international/mule-conf.el (coding-category-emacs-mule): Replace - coding-category-iso-else with coding-category-iso-7-else and + * international/mule-conf.el (coding-category-emacs-mule): + Replace coding-category-iso-else with coding-category-iso-7-else and coding-category-iso-8-else. - * international/mule-diag.el (describe-current-coding-system): Use - coding-category-iso-7-else instead of coding-category-iso-else. + * international/mule-diag.el (describe-current-coding-system): + Use coding-category-iso-7-else instead of coding-category-iso-else. - * language/china-util.el (setup-chinese-gb-environment): Adjusted + * language/china-util.el (setup-chinese-gb-environment): Adjust for the change of coding category names. Set default-input-method to chinese-py-punct. (setup-chinese-big5-environment): Set default-input-method to @@ -13582,18 +13582,18 @@ (setup-chinese-cns-environment): Set default-input-method correctly. - * language/english.el (setup-english-environment): Adjusted for + * language/english.el (setup-english-environment): Adjust for the change of coding category names. - * language/japan-util.el (setup-japanese-environment): Adjusted + * language/japan-util.el (setup-japanese-environment): Adjust for the change of coding category names. Set default-input-method correctly. - * language/ethio-util.el (setup-ethiopic-environment): Set - default-input-method correctly. + * language/ethio-util.el (setup-ethiopic-environment): + Set default-input-method correctly. - * language/korean.el (setup-korean-environment): Set - default-input-method correctly. + * language/korean.el (setup-korean-environment): + Set default-input-method correctly. * language/tibet-util.el (setup-tibetan-environment: Set default-input-method correctly. @@ -13656,8 +13656,8 @@ for iswitchb-kill-buffer and iswitchb-find-file. (iswitchb): When no text typed in, show all buffers. (iswitchb-complete): Use equal rather than eq. - (iswitchb-next-match, iswitchb-prev-match): Use - iswitchb-chop to handle reordering the buffer list. + (iswitchb-next-match, iswitchb-prev-match): + Use iswitchb-chop to handle reordering the buffer list. (iswitchb-chop): New function. (iswitchb-make-buflist): Rewritten for efficiency. (iswitchb-to-end): Operate on a list of buffers, not just one. @@ -13727,8 +13727,8 @@ 1997-07-10 Kenichi Handa - * international/fontset.el (create-fontset-from-fontset-spec): Add - optional arg NOERROR. + * international/fontset.el (create-fontset-from-fontset-spec): + Add optional arg NOERROR. (create-fontset-from-x-resource): Give t as arg NOERROR to create-fontset-from-fontset-spec. @@ -13742,11 +13742,11 @@ (isearch-input-method-title): New variable. (isearch-toggle-specified-input-method): Set the above variables. (isearch-toggle-input-method): Likewise. - (isearch-process-search-multibyte-characters): Give - isearch-input-method as arg to read-multilingual-string. + (isearch-process-search-multibyte-characters): + Give isearch-input-method as arg to read-multilingual-string. - * international/mule-cmds.el (read-multilingual-string): Adjusted - for the previous change of variables related to input methods. + * international/mule-cmds.el (read-multilingual-string): + Adjust for the previous change of variables related to input methods. * isearch.el (isearch-message-prefix): Likewise. @@ -13806,7 +13806,7 @@ * progmodes/cc-*.el: New files, totally reorganized. * dunnet.el: Undo an earlier change: - (dun-piss): Renamed from dunnet-urinate. + (dun-piss): Rename from dunnet-urinate. (dun-verblist): Indecent word added back. (dunnet): Delete "censored" message. @@ -13913,7 +13913,7 @@ * browse-url.el: Require thingatpt when compiling. (browse-url-url-at-point): Use `thing-at-point' (with URL code moved from here). - (browse-url-looking-at): Moved to thingatpt.el, renamed and changed. + (browse-url-looking-at): Move to thingatpt.el, renamed and changed. * thingatpt.el (thing-at-point): Use `thing-at-point' property, if any. (bounds-of-thing-at-point): Use `bounds-of-thing-at-point' property. @@ -13952,11 +13952,11 @@ (widget-default-delete): Ditto. * wid-edit.el (color): Make it an editable field. - (widget-color-value-create): Deleted. - (widget-color-value-get): Deleted. - (widget-color-value-set): Deleted. - (color-item): Deleted. - (widget-color-item-button-face-get): Renamed to + (widget-color-value-create): Delete. + (widget-color-value-get): Delete. + (widget-color-value-set): Delete. + (color-item): Delete. + (widget-color-item-button-face-get): Rename to `widget-color-sample-face-get'. (color-sample): Delete. (editable-color): Delete. @@ -14066,15 +14066,15 @@ (custom-browse-visibility-action, custom-browse-group-tag) (custom-browse-group-tag-action, custom-browse-variable-tag-action) (custom-browse-face-tag, custom-browse-face-tag-action) - (custom-browse-face-tag-action, custom-browse-alist): Changed - prefix from `custom-tree' to `custom-browse'. + (custom-browse-face-tag-action, custom-browse-alist): + Change prefix from `custom-tree' to `custom-browse'. (custom-variable-value-create, custom-face-value-create) - (custom-group-value-create): Updated caller. + (custom-group-value-create): Update caller. * cus-edit.el (custom-browse-only-groups): New option. (custom-group-value-create): Use it. Omit non-groups if non-nil. - * cus-edit.el (custom-help-menu): Renamed "Variable" to "Option". + * cus-edit.el (custom-help-menu): Rename "Variable" to "Option". Remove "..." from non-prompting entries. * wid-edit.el (widget-single-line-field-face): New face. @@ -14096,7 +14096,7 @@ * language/european.el (setup-8-bit-environment): New argument LANGUAGE. - (setup-latin1-environment): Adjusted for the above change. + (setup-latin1-environment): Adjust for the above change. (setup-latin2-environment): Likewise. (setup-latin3-environment): Likewise. (setup-latin4-environment): Likewise. @@ -14106,8 +14106,8 @@ * language/hebrew.el (setup-hebrew-environment): Likewise. - * language/cyril-util.el (setup-cyrillic-environment): Adjusted - for the change of an input method name. + * language/cyril-util.el (setup-cyrillic-environment): + Adjust for the change of an input method name. * language/devan-util.el (setup-devanagari-environment): Likewise. @@ -14155,25 +14155,25 @@ (quail-defrule): Doc-string modified. (quail-defrule-internal): Document it. (quail-get-translation): Change the format of DEF part. - (quail-lookup-key): Make the second argument LEN optional. Reset - quail-current-translations to nil. + (quail-lookup-key): Make the second argument LEN optional. + Reset quail-current-translations to nil. (quail-map-definition): New function. (quail-get-current-str): New function. (quail-guidance-translations-starting-column): New variable. (quail-update-current-translations): New function. - (quail-translate-key): Adjusted for the change of DEF format. + (quail-translate-key): Adjust for the change of DEF format. Call quail-update-current-translations. (quail-next-translation): Call quail-update-current-translations. (quail-prev-translation): Likewise. (quail-next-translation-block): Likewise. (quail-prev-translation-block): Likewise. - (quail-select-translation): Deleted. + (quail-select-translation): Delete. (quail-make-guidance-frame): New function. (quail-show-guidance-buf): Handle the case that minibuffer is in a separate frame. (quail-hide-guidance-buf): Likewise. - (quail-show-translations): Call - quail-update-current-translations. Check width of a frame to be + (quail-show-translations): + Call quail-update-current-translations. Check width of a frame to be used. (quail-completion): Do not supply LEN argument to quail-lookup-key. @@ -14186,8 +14186,8 @@ (charset-chars, charset-width, charset-direction) (charset-iso-final-char, charset-iso-graphic-plane) (charset-reverse-charset, charset-short-name, charset-long-name) - (charset-description, charset-plit, set-charset-plist): Document - them. + (charset-description, charset-plit, set-charset-plist): + Document them. (make-char, charset-list): Doc-string modified. (find-new-buffer-file-coding-system): Fix bug of handling the coding system undecided. @@ -14296,16 +14296,16 @@ (updates): Reject subdirs whose names start with =. (custom-deps, finder-data, autoloads, update-subdirs): Likewise. - * scroll-bar.el (toggle-scroll-bar): Moved from frame.el. + * scroll-bar.el (toggle-scroll-bar): Move from frame.el. Use scroll-bar-mode to determine which side; if it's nil, use left. (set-scroll-bar-mode): New subroutine, taken from scroll-bar-mode. (scroll-bar-mode): Use the variable set-scroll-bar-mode. (scroll-bar-mode): New variable. Extra defvar to avoid warning. - (toggle-horizontal-scroll-bar): Moved from frame.el. + (toggle-horizontal-scroll-bar): Move from frame.el. * frame.el (scroll-bar-side): Variable deleted. (toggle-scroll-bar, toggle-horizontal-scroll-bar): - Moved to scroll-bar.el. + Move to scroll-bar.el. * files.el (file-chase-links): When handling .., make newname absolute. Simplify several places. @@ -14399,7 +14399,7 @@ * wid-edit.el (widget-button-click): Steal up event if key is not bound in `widget-global-map'. - * cus-edit.el (custom-tree-insert-prefix): Renamed from + * cus-edit.el (custom-tree-insert-prefix): Rename from `custom-tree-insert'. (custom-group-value-create): Use it. @@ -14482,7 +14482,7 @@ (custom-button-face): New defface. (custom widget-type): Use custom-button-face for buttons. (custom-group-tag-faces): Initial value is nil. - (custom-variable-tag-face): Renamed from custom-variable-sample-face. + (custom-variable-tag-face): Rename from custom-variable-sample-face. Initialize it like custom-group-tag-face. (custom-group-tag-faces): Initialize to nil. (custom-state-face): New defface. @@ -14497,21 +14497,21 @@ only if the item is modified. Take widget as arg. (custom-mode): Use widget-edit-functions. - * wid-edit.el (widget-edit-functions): Renamed from widget-edit-hook. + * wid-edit.el (widget-edit-functions): Rename from widget-edit-hook. (widget-field-action): Pass the widget as an arg when running hook. - * cus-edit.el (Custom-set): Renamed from custom-set. - (Custom-save): Renamed from custom-save. + * cus-edit.el (Custom-set): Rename from custom-set. + (Custom-save): Rename from custom-save. (custom-browse-sort-predicate): Defalias deleted. (custom-group-value-create): Don't sort, in tree mode. - (Custom-mode-menu): Renamed from custom-mode-menu. - (Custom-reset-current): Renamed from custom-reset-current. - (Custom-reset-saved): Renamed from custom-reset-saved. - (Custom-reset-standard): Renamed from custom-reset-standard. - (Custom-menu-update): Renamed from custom-menu-update. - (customize-set-value): Renamed from custom-set-value. - (customize-set-variable): Renamed from custom-set-variable. - (customize-save-customized): Renamed from custom-save-customized. + (Custom-mode-menu): Rename from custom-mode-menu. + (Custom-reset-current): Rename from custom-reset-current. + (Custom-reset-saved): Rename from custom-reset-saved. + (Custom-reset-standard): Rename from custom-reset-standard. + (Custom-menu-update): Rename from custom-menu-update. + (customize-set-value): Rename from custom-set-value. + (customize-set-variable): Rename from custom-set-variable. + (customize-save-customized): Rename from custom-save-customized. * cus-start.el (double-click-time): Use restricted-sexp. (load-path): Make [Current dir?] itself the active button. @@ -14548,7 +14548,7 @@ instead of displaying an echo area message. (widget-toggle-action): Likewise. (group-visibility, widget-group-visibility-create): - Moved to cus-edit.el and renamed. + Move to cus-edit.el and renamed. 1997-06-23 Dan Nicolaescu @@ -14623,7 +14623,7 @@ 1997-06-22 Richard Stallman * decipher.el (decipher-copy-cons): - Renamed from decipher-get-undo-copy. Calls changed. + Rename from decipher-get-undo-copy. Calls changed. * emacs-lisp/lmenu.el (popup-menu): Redefine as macro. (popup-menu-popup, popup-menu-internal): New function. @@ -14747,11 +14747,11 @@ (custom-variable-value-create): Use it. (custom-face-value-create): Use it. (custom-group-value-create): Use it. - (custom-buffer-groups-last): Changed default. + (custom-buffer-groups-last): Change default. - * wid-edit.el (group-visibility): Deleted. + * wid-edit.el (group-visibility): Delete. (widget-group-visibility-create): Ditto. - (group-link): Deleted. + (group-link): Delete. (widget-group-link-create): Ditto. (widget-group-link-action): Ditto. @@ -14761,12 +14761,12 @@ (custom-group-link-action): New function. (custom-group-value-create): Use `custom-group-link'. - * wid-edit.el (widget-before-change): Fixed comment and debug string. + * wid-edit.el (widget-before-change): Fix comment and debug string. - * cus-edit.el (custom-mode-customize-menu): Deleted. + * cus-edit.el (custom-mode-customize-menu): Delete. (custom-mode-menu): Define here. (custom-mode): Don't add here. - (custom-format-handler): Deleted. + (custom-format-handler): Delete. (custom): Don't add here. * cus-edit.el (custom-browse-sort-predicate): New alias. @@ -14776,7 +14776,7 @@ (custom-group): Ditto. (custom-group-value-create): Ditto. - * cus-edit.el (face): Fixed format. + * cus-edit.el (face): Fix format. (custom-face-value-create): Browse face, not option. * cus-edit.el (custom-group-value-create): Rewrote to replace @@ -14787,8 +14787,8 @@ (custom-variable): Ditto. (custom-face): Delete :format and :format-handler. (custom): Add :format. - (custom-format-handler): Removed unnecessary code. - (custom-face-format-handler): Deleted. + (custom-format-handler): Remove unnecessary code. + (custom-face-format-handler): Delete. (custom-add-see-also): New function. (custom-buffer-style): New option. (widget-face-value-create): Use it here instead of :format. @@ -14817,13 +14817,13 @@ (custom-menu-sort-predicate): Use them. (custom-menu-create): Use it. (custom-buffer-sort-predicate, custom-buffer-order-predicate) - (custom-menu-sort-predicate, custom-menu-order-predicate): Deleted. + (custom-menu-sort-predicate, custom-menu-order-predicate): Delete. * wid-edit.el (widget-leave-text): Don't delete nil overlays. * wid-edit.el (widget-get-indirect): New function. (widget-default-create): Use it. - (widget-button-insert-indirect): Deleted. + (widget-button-insert-indirect): Delete. * wid-edit.el (widget-inactive-face): Use dim gray instead of dark gray. @@ -15004,9 +15004,9 @@ 1997-06-18 Ken'ichi Handa - * mule-util.el (coding-system-parent): Moved to mule.el. + * mule-util.el (coding-system-parent): Move to mule.el. - * mule.el (coding-system-parent): Moved from mule-util.el. + * mule.el (coding-system-parent): Move from mule-util.el. 1997-06-18 Kenichi Handa @@ -15015,7 +15015,7 @@ * subdirs.el: Add "language" in the argument of normal-top-level-add-to-load-path. - * rmail.el (rmail-enable-decoding-message): Deleted. + * rmail.el (rmail-enable-decoding-message): Delete. (rmail-revert): Bind enable-multibyte-characters to nil before calling rmail-convert-file. (rmail-convert-to-babyl-format): If enable-multibyte-characters is @@ -15049,7 +15049,7 @@ (coding-system-list): Sort coding systems by coding-system-lessp. An element of returned list is always coding system, never be a cons. - (modify-coding-system-alist): Renamed from + (modify-coding-system-alist): Rename from set-coding-system-alist. (prefer-coding-system): New function. (compose-chars-component): But fix for handling a composite @@ -15076,8 +15076,8 @@ not a valid KEY argument now. (leim-list-file-name, leim-list-header, leim-list-entry-regexp): New variables. - (update-leim-list-file, update-all-leim-list-files): New - functions. + (update-leim-list-file, update-all-leim-list-files): + New functions. (current-input-method): Doc-string modified because the value is now input method name. (default-input-method, previous-input-method): Likewise. @@ -15086,12 +15086,12 @@ (input-method-alist): New variable. (register-input-method): Register input method in input-method-alist. - (read-language-and-input-method-name): Deleted. + (read-language-and-input-method-name): Delete. (read-input-method-name): New function. (activate-input-method, select-input-method, toggle-input-method): - Modified for the above change. + Modify for the above change. (read-multilingual-string): Likewise. - (describe-current-input-method): Renamed from + (describe-current-input-method): Rename from describe-input-method. (describe-input-method): New function. (describe-language-environment): Don't put a vacant line at the @@ -15121,7 +15121,7 @@ * language/cyril-util.el (setup-cyrillic-iso-environment) (setup-cyrillic-koi8-environment) - (setup-cyrillic-alternativnyj-environment): Deleted. + (setup-cyrillic-alternativnyj-environment): Delete. (setup-cyrillic-environment): New function. * language/cyrillic.el: Don't make the keymap @@ -15171,12 +15171,12 @@ * tar-mode.el (tar-extract): Use second argument of view-buffer instead of setting view-exit-action. - * files.el (view-read-only): New option variable. If - non-nil then buffers visiting files read-only, do it in view mode. + * files.el (view-read-only): New option variable. + If non-nil then buffers visiting files read-only, do it in view mode. (find-file-read-only, find-file-read-only-other-window) (find-file-read-only-other-frame): Call toggle-read-only instead of setting buffer-read-only explicitly. - (toggle-read-only, after-find-file): Changed to be aware + (toggle-read-only, after-find-file): Change to be aware of view-read-only. (save-some-buffers): Use second argument of view-buffer instead of setting view-exit-action. @@ -15191,7 +15191,7 @@ * icon.el (icon-indent-line): A comment ends at the end of the line, delete call to nonexistent function. - * icon.el (icon-font-lock-keywords-1): Improved regexp. + * icon.el (icon-font-lock-keywords-1): Improve regexp. (icon-font-lock-keywords-2): Likewise. 1997-06-16 Richard Stallman @@ -15210,15 +15210,15 @@ 1997-06-16 Simon Marshall - * icon.el (icon-imenu-generic-expression): Improved regexp. - (icon-font-lock-keywords-1): Improved regexps. + * icon.el (icon-imenu-generic-expression): Improve regexp. + (icon-font-lock-keywords-1): Improve regexps. (icon-font-lock-keywords-2): Likewise. (icon-mode): Don't set font-lock-comment-start-regexp via font-lock-defaults; it is not needed anymore. 1996-06-16 Dan Nicolaescu - * icon.el (icon-imenu-generic-expression): Improved regexp. + * icon.el (icon-imenu-generic-expression): Improve regexp. (icon-mode): Don't use pushnew. 1997-06-16 Michelangelo Grigni @@ -15226,9 +15226,9 @@ * ffap.el (ffap-soft-value): Make this a function again; the macro version does intern-soft too early. Deleted XEmacs-specific code. - (ffap-string-at-point-mode-alist): Added "=" and + (ffap-string-at-point-mode-alist): Add "=" and "&" to the url syntax, as suggested by SJE. - (ffap-read-file-or-url): Fixed the HIST argument to + (ffap-read-file-or-url): Fix the HIST argument to completing-read (only visible in XEmacs?), as reported by Christoph Wedler . (ffap-kpathsea-expand-path): New func, replaces ffap-add-subdirs, @@ -15237,7 +15237,7 @@ Added mouse-track support (but no binding), as suggested by MDB. Moved Emacs mouse bindings from "down-mouse" events to ordinary mouse events. - (ffap-alist): Added ffap-fortran-mode, as requested by MDB. + (ffap-alist): Add ffap-fortran-mode, as requested by MDB. Rewrote and merged XEmacs support, eliminating file ffap-xe.el. Modified ffap-other-frame to work in dedicated frames, fixing a bug reported by JENS. @@ -15247,20 +15247,20 @@ (ffap-read-file-or-url): For XEmacs, give extra HACK-HOMEDIR arg to `abbreviate-file-name'. (ffap-file-at-point): Suppress errors from `ffap-alist'. - (ffap-url-at-point): Modified regexp to accept + (ffap-url-at-point): Modify regexp to accept mail hostnames ending with a digit. Fixes bug report of SJE. (ffap-url-at-point): Use higher level function (w3-view-this-url t) suggested by wmperry, instead of w3-zone-at/w3-zone-data or widget-at/widget-get. - (ffap-url-at-point): Modified to work with + (ffap-url-at-point): Modify to work with w3-version "WWW 2.3.64 1996/06/02 06:20:23" alpha, which uses the 'widget package rather than the old w3-zone-at. Bug was reported by JENS. Adapted comments and doc strings to Emacs coding conventions. Reorganized. Retired v18 support. (ffap-bindings): Offers a default installation. - (ffap-string-at-point): Modified arguments. - (ffap-gnus-hook): Updated for Gnus 5. + (ffap-string-at-point): Modify arguments. + (ffap-gnus-hook): Update for Gnus 5. (ffap-tex-init): Delayed initialization of `ffap-tex-path'. (ffap-dired): New entry in `ffap-alist'. (ffap-menu-rescan): May fontify the choices in buffer. @@ -15309,7 +15309,7 @@ * cus-edit.el (widget-glyph-insert-glyph): Make the invisible extent open ended. - * cus-edit.el (custom-format-handler): Added :echo-help to + * cus-edit.el (custom-format-handler): Add :echo-help to visibility widget. (custom-variable-value-create): Ditto, also for tag. * wid-edit.el (widget-documentation-string-value-create): Ditto. @@ -15325,7 +15325,7 @@ * wid-edit.el (widget-tabable-at): New function. (widget-move): Use it. - * wid-edit.el (widget-after-change): Reimplemented :secret. + * wid-edit.el (widget-after-change): Reimplement :secret. * wid-edit.el (widget-field-add-space): New option. (widget-specify-field): Use it. @@ -15378,7 +15378,7 @@ view-mode-enter or view-mode-exit. (view-buffer, view-buffer-other-window): New argument exit-action. (view-file, view-file-other-window, view-buffer-other-window) - (view-buffer, view-mode-enter): Changed method used to restore + (view-buffer, view-mode-enter): Change method used to restore windows when leaving view mode. (view-mode-exit): New function. (view-return-to-alist): New variable. @@ -15468,7 +15468,7 @@ (widget-documentation-string-value-create): Also use documentation properties on single line documentation strings. - * wid-browse.el (widget-minor-mode): Fixed mistake in + * wid-browse.el (widget-minor-mode): Fix mistake in widget-minor-mode - it had semantics of non-interactive calling reversed. @@ -15482,7 +15482,7 @@ * add-log.el (add-log-time-format): New variable. (add-log-iso8601-time-string): New function. (add-change-log-entry): Use add-log-time-format. - (add-log-iso8601-time-zone): Renamed from iso8601-time-zone. + (add-log-iso8601-time-zone): Rename from iso8601-time-zone. 1997-06-13 Dan Nicolaescu @@ -15490,7 +15490,7 @@ (isearch-close-unecessary-overlays): New function. (isearch-range-invisible): Use them. - * isearch.el (search-invisible): Changed the semantics, + * isearch.el (search-invisible): Change the semantics, the default value and updated the doc string. (isearch-opened-overlays): New variable. (isearch-mode): Initialize it. @@ -15504,7 +15504,7 @@ opened, open them, add them to isearch-opened-overlays and say that the range is visible. - * hideshow.el (hideshow): Added a :prefix. + * hideshow.el (hideshow): Add a :prefix. (hs-isearch-open): New variable. (hs-flag-region): Use that variable. Changed the semantics of the FLAG parameter and updated the docs. @@ -15551,7 +15551,7 @@ Fix error messages. * text-mode.el (paragraph-indent-text-mode): - Renamed from spaced-text-mode. + Rename from spaced-text-mode. (text-mode-map): Bind TAB to indent-relative. (indented-text-mode-map): Variable deleted. (indented-text-mode): Now an alias for text-mode. @@ -15569,7 +15569,7 @@ * bibtex.el (bibtex-delete-whitespace, bibtex-current-line) (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry) (bibtex-map-entries): - Renamed from delete-whitespace, current-line, assoc-of-regexp, + Rename from delete-whitespace, current-line, assoc-of-regexp, skip-to-valid-bibtex-entry, and map-bibtex-entries, respectively. 1997-06-11 Richard Stallman @@ -15585,14 +15585,14 @@ (reftex-label-alist-builtin): New default environment subfigure. (reftex-find-duplicate-labels): Temporary buffer is now "*Duplicate Labels*" instead of "*Help*". - (reftex-bibtex-selection-callback): Renamed variable found-list. - (reftex-found-list): Added defvar for this variable. - (TeX-master): Added defvar for this variable. + (reftex-bibtex-selection-callback): Rename variable found-list. + (reftex-found-list): Add defvar for this variable. + (TeX-master): Add defvar for this variable. (reftex-reset-mode): Kill temporary buffers associated with RefTeX. 1997-06-10 Ken'ichi Handa - * mule-cmds.el (view-hello-file): Adjusted for the changes of + * mule-cmds.el (view-hello-file): Adjust for the changes of coding system names. 1997-06-10 Terrence Brannon @@ -15637,14 +15637,14 @@ 1997-06-10 Stefan Schoef - * bibtex.el (bibtex-mode-map): Changed the binding of the C-TAB + * bibtex.el (bibtex-mode-map): Change the binding of the C-TAB key, such that XEmacs will understand it, too. * bibtex.el (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. - * bibtex.el (bibtex-field-string-quoted): Small bug fix. Allow - backslash followed by newline. + * bibtex.el (bibtex-field-string-quoted): Small bug fix. + Allow backslash followed by newline. * bibtex.el (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. @@ -15662,7 +15662,7 @@ of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. - (bibtex-entry): Fixed parameter list. This function is not + (bibtex-entry): Fix parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. @@ -15679,7 +15679,7 @@ * bibtex.el (bibtex-submit-bug-report): Report all variables. * bibtex.el (bibtex-contline-indentation): New user option. - (bibtex-entry-offset): Renamed from bibtex-entry-indentation. + (bibtex-entry-offset): Rename from bibtex-entry-indentation. * bibtex.el (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the @@ -15694,7 +15694,7 @@ * bibtex.el (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. - * bibtex.el (bibtex-autokey-transcriptions): Fixed bug (two + * bibtex.el (bibtex-autokey-transcriptions): Fix bug (two entries for `\o' while `\oe' entry was missing). * bibtex.el (bibtex-entry-indentation): New variable to determine @@ -15702,7 +15702,7 @@ (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): - Renamed from beginning-of-first-bibtex-entry and + Rename from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. @@ -15714,8 +15714,8 @@ (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. - * bibtex.el (bibtex-beginning-of-entry, bibtex-end-of-entry): Now - return point if called from a program. + * bibtex.el (bibtex-beginning-of-entry, bibtex-end-of-entry): + Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry) (bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode) (bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer) @@ -15740,12 +15740,12 @@ * bibtex.el (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. - (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New - helper functions. - (bibtex-entry, bibtex-String, bibtex-Preamble): Respect - `bibtex-entry-delimiters'. + (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): + New helper functions. + (bibtex-entry, bibtex-String, bibtex-Preamble): + Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. - (bibtex-reference-key, bibtex-field-const): Removed parentheses + (bibtex-reference-key, bibtex-field-const): Remove parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. @@ -15763,7 +15763,7 @@ (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. - (bibtex-validate): Changed to show all errors in buffer in a + (bibtex-validate): Change to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp @@ -15774,7 +15774,7 @@ (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. - * bibtex.el (bibtex-buffer-last-parsed-tick): Renamed from + * bibtex.el (bibtex-buffer-last-parsed-tick): Rename from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. @@ -15786,7 +15786,7 @@ if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. - * bibtex.el (bibtex-generate-autokey): Changed the name part + * bibtex.el (bibtex-generate-autokey): Change the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly @@ -15794,15 +15794,15 @@ the first is used. Name fields spread over more than one line are no problem anymore. - * bibtex.el (bibtex-entry-format): Changed default value to + * bibtex.el (bibtex-entry-format): Change default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. - (bibtex-generate-autokey): Changed documentation. Small - modification in calculating title field. + (bibtex-generate-autokey): Change documentation. + Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry @@ -15818,7 +15818,7 @@ * bibtex.el (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. - (bibtex-complete): Fixed bug (used string entries defined in + (bibtex-complete): Fix bug (used string entries defined in buffer as object to completion). * bibtex.el (Menu): Use easymenu. More menu items for @@ -15839,16 +15839,16 @@ (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. - * bibtex.el (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New - internal variables like kill-ring and kill-ring-yank-pointer, but + * bibtex.el (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): + New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. - (bibtex-kill-field): Renamed from bibtex-delete-field again. It - now supports the new variable bibtex-kill-ring. + (bibtex-kill-field): Rename from bibtex-delete-field again. + It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) - (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New - interactive functions, which work on the bibtex-kill-ring + (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): + New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. @@ -15871,9 +15871,9 @@ generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. - * bibtex.el (bibtex-include-OPTannote): Deleted (is set in + * bibtex.el (bibtex-include-OPTannote): Delete (is set in bibtex-user-optional-fields). - (bibtex-entry, bibtex-print-help-message): Removed support for + (bibtex-entry, bibtex-print-help-message): Remove support for bibtex-include-OPTannote. * bibtex.el (bibtex-entry-format): New constant @@ -15882,25 +15882,25 @@ * bibtex.el (bibtex-mode): Set value for font-lock-mark-block-function. - * bibtex.el (bibtex-font-lock-keywords): Changed to distinguish + * bibtex.el (bibtex-font-lock-keywords): Change to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. - * bibtex.el (bibtex-delete-field): Changed from + * bibtex.el (bibtex-delete-field): Change from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. - (bibtex-mode): Changed documentation. + (bibtex-mode): Change documentation. - * bibtex.el (bibtex-entry-type-history, bibtex-key-history): New - variables to use own histories in BibTeX buffers. + * bibtex.el (bibtex-entry-type-history, bibtex-key-history): + New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. * bibtex.el (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) - (bibtex-entry-field-alist): Changed documentation accordingly. + (bibtex-entry-field-alist): Change documentation accordingly. * bibtex.el (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. @@ -15913,7 +15913,7 @@ * bibtex.el (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. - * bibtex.el (bibtex-user-optional-fields): Renamed from + * bibtex.el (bibtex-user-optional-fields): Rename from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. @@ -15922,9 +15922,9 @@ delimiting braces and not those inside fields. * bibtex.el (skip-to-valid-bibtex-entry, bibtex-parse-keys) - (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate - complex regexps outside of loops. - (bibtex-mode): Changed documentation on how to convert third party + (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): + Calculate complex regexps outside of loops. + (bibtex-mode): Change documentation on how to convert third party buffers. * bibtex.el (bibtex-convert-alien): New function to convert a @@ -15938,7 +15938,7 @@ call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. - * bibtex.el (bibtex-String, bibtex-Preamble): Renamed from + * bibtex.el (bibtex-String, bibtex-Preamble): Rename from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string @@ -15946,9 +15946,9 @@ location (as for normal entries). * bibtex.el (bibtex-autokey-titleword-first-ignore) - (bibtex-autokey-titleword-abbrevs): Changed documentation: case of + (bibtex-autokey-titleword-abbrevs): Change documentation: case of regexps doesn't matter anymore. - (bibtex-field-const, bibtex-reference-key): Simplified to not + (bibtex-field-const, bibtex-reference-key): Simplify to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct @@ -15969,24 +15969,24 @@ (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. - * bibtex.el (bibtex-sort-ignore-string-entries): Renamed back from + * bibtex.el (bibtex-sort-ignore-string-entries): Rename back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known - BibTeX entry, if not already there. Respects - bibtex-sort-ignore-string-entries. + BibTeX entry, if not already there. + Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. - (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified + (bibtex-sort-buffer): Rename from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. - (bibtex-find-entry-location): Simplified by using new functions + (bibtex-find-entry-location): Simplify by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. @@ -15994,8 +15994,8 @@ bibtex-end-of-entry. * bibtex.el (bibtex-end-of-entry): Don't use forward-sexp anymore, - since this fails on entries with non-escaped double-quotes. Use - search-bibtex-reference instead (though it is slower, it is more + since this fails on entries with non-escaped double-quotes. + Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. @@ -16007,7 +16007,7 @@ work, since due to a bug all entries were simply skipped. * bibtex.el (bibtex-mode): Doc fix. - (bibtex-delete-optional-or-alternative-field): Renamed from + (bibtex-delete-optional-or-alternative-field): Rename from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. @@ -16020,7 +16020,7 @@ buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): - Changed to allow BibTeX entries to start in a column different + Change to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. @@ -16044,21 +16044,21 @@ (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). - * bibtex.el (bibtex-field-delimiters): Renamed from + * bibtex.el (bibtex-field-delimiters): Rename from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. - (bibtex-remove-delimiters): Renamed from + (bibtex-remove-delimiters): Rename from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. * bibtex.el (bibtex-fill-entry): New function to refill entry. - (bibtex-mode-map): Defined key for bibtex-fill-entry. + (bibtex-mode-map): Define key for bibtex-fill-entry. * bibtex.el (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. - (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New - helper functions. + (bibtex-field-left-delimiter, bibtex-field-right-delimiter): + New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions @@ -16084,23 +16084,23 @@ (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. - * bibtex.el (bibtex-find-entry-location): Fixed bug (when + * bibtex.el (bibtex-find-entry-location): Fix bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). * bibtex.el (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. - * bibtex.el (bibtex-find-entry-location): Fixed bug (on duplicate + * bibtex.el (bibtex-find-entry-location): Fix bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). - * bibtex.el (bibtex-complete): Fixed bug (parameter string-list + * bibtex.el (bibtex-complete): Fix bug (parameter string-list was mistakenly altered by the function itself). * bibtex.el (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. - * bibtex.el (bibtex-validate): Renamed from bibtex-validate-buffer + * bibtex.el (bibtex-validate): Rename from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or @@ -16113,22 +16113,22 @@ bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. - (bibtex-reference): Deleted. - (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. + (bibtex-reference): Delete. + (bibtex-type-in-reference, skip-whitespace-and-comments): Delete. * bibtex.el (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. - * bibtex.el (bibtex-field-string): Simplified. + * bibtex.el (bibtex-field-string): Simplify. - * bibtex.el (bibtex-mode-syntax-table): Changed syntax of + * bibtex.el (bibtex-mode-syntax-table): Change syntax of double-quote back to quote syntax. * bibtex.el (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. - * bibtex.el (bibtex-sort-ignore-string-and-preamble): Renamed from + * bibtex.el (bibtex-sort-ignore-string-and-preamble): Rename from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. @@ -16152,10 +16152,10 @@ mark is active. With optional argument checks if required fields are missing, too. - * bibtex.el (bibtex-mode): Added support for imenu. + * bibtex.el (bibtex-mode): Add support for imenu. * bibtex.el (bibtex-entry-field-alist) - (bibtex-mode-user-optional-fields): Modified syntax to allow + (bibtex-mode-user-optional-fields): Modify syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. @@ -16166,21 +16166,21 @@ (bibtex-generate-autokey): Use new variables. * bibtex.el (bibtex-field-const, bibtex-reference-type) - (bibtex-reference-key): Changed to match the (according to Oren + (bibtex-reference-key): Change to match the (according to Oren Patashnik) allowed characters. - * bibtex.el (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed - from bibtex-clean-entry-zap-empty-opts. + * bibtex.el (bibtex-clean-entry-zap-empty-opts-or-alts): + Rename from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. - (bibtex-mode): Documented new ALT prefixed fields. - (bibtex-make-optional-field): Modified to give only field name as + (bibtex-mode): Document new ALT prefixed fields. + (bibtex-make-optional-field): Modify to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): - Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, + Rename from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. * bibtex.el (bibtex-enclosing-field, bibtex-print-help-message): @@ -16220,29 +16220,29 @@ 1997-06-09 Kenichi Handa - * mule.el: Delete declaration for buffer-file-coding-system. It - is done in buffer.c now. In the comment, change coding-system to + * mule.el: Delete declaration for buffer-file-coding-system. + It is done in buffer.c now. In the comment, change coding-system to coding system. The name coding-vector is changed to coding-spec. (coding-vector-type, coding-vector-mnemonic) - (coding-vector-docstring, coding-vector-flags): Deleted. + (coding-vector-docstring, coding-vector-flags): Delete. (coding-system-spec-ref): New function. (coding-system-type, coding-system-mnemonic, coding-system-flags): Use coding-system-spec-ref. - (coding-system-doc-string): Renamed from coding-system-docstring. - (coding-system-eol-type): Renamed from coding-system-eoltype. - (coding-system-eol-type-mnemonic): Moved to mule-util.el. + (coding-system-doc-string): Rename from coding-system-docstring. + (coding-system-eol-type): Rename from coding-system-eoltype. + (coding-system-eol-type-mnemonic): Move to mule-util.el. (coding-system-post-read-conversion): Likewise. (coding-system-pre-write-conversion): Likewise. - (default-process-coding-system): Deleted. Now declared in + (default-process-coding-system): Delete. Now declared in buffer.c. (make-subsidiary-coding-system): New function. (make-coding-system): Check arguments more strictly. Do not make -unix, -dos, -mac variants for TYPE 4. (define-coding-system-alias): Call make-subsidiary-coding-system. - (set-buffer-file-coding-system): Adjusted for the function name + (set-buffer-file-coding-system): Adjust for the function name changes. (find-new-buffer-file-coding-system): Likewise. - (default-process-coding-system): Deleted. Now defined in coding.c. + (default-process-coding-system): Delete. Now defined in coding.c. * mule-conf.el: Coding system names changed. @@ -16274,7 +16274,7 @@ (print-coding-system): Likewise. (list-coding-systems): Likewise. Make it interactive. - * mule-util.el (set-coding-system-alist): Deleted. + * mule-util.el (set-coding-system-alist): Delete. (string-to-sequence): Doc string modified. (coding-system-list): Add optional arg BASE-ONLY. (coding-system-base): New function. @@ -16367,14 +16367,14 @@ 1997-06-07 Richard Stallman - * files.el (file-name-non-special): Handle - file-name-completion and file-name-all-completions. + * files.el (file-name-non-special): + Handle file-name-completion and file-name-all-completions. * mailalias.el: Customize. Doc fixes. Mark some risky local variables. * dired.el (dired-unmark-all-marks): - Renamed from dired-unmark-all-files-no-query. + Rename from dired-unmark-all-files-no-query. * language/european.el (setup-8-bit-environment): Load the file with load, not require, so that we reload it if nec. @@ -16382,28 +16382,28 @@ * language/english.el ("English"): Improve doc string. * language/indian.el (describe-indian-environment-map): - Renamed from describe-indian-support-map. + Rename from describe-indian-support-map. * language/devanagari.el: Corresponding changes. * language/european.el (describe-european-environment-map): - Renamed from describe-european-support-map. + Rename from describe-european-support-map. * language/cyrillic.el (describe-cyrillic-environment-map): - Renamed from describe-cyrillic-support-map. + Rename from describe-cyrillic-support-map. * language/chinese.el (describe-chinese-environment-map): - Renamed from describe-chinese-support-map. + Rename from describe-chinese-support-map. * mule-cmds.el (describe-language-environment): - Renamed from describe-language-support. + Rename from describe-language-support. Do the real work here; don't call describe-specified-language-support. Print the mnemonics when mentioning coding systems. Improve style of output. (describe-specified-language-environment): - Renamed from describe-specified-language-support. + Rename from describe-specified-language-support. Don't do the work here; call describe-language-environment. (describe-language-environment-map): - Renamed from describe-language-support-map. + Rename from describe-language-support-map. * language/european.el (setup-8-bit-environment): Do not set set-case-syntax-offset. @@ -16451,7 +16451,7 @@ 1997-06-04 Per Abrahamsen - * wid-edit.el (widget-kill-line): Fixed for overlays. + * wid-edit.el (widget-kill-line): Fix for overlays. * cus-edit.el (custom-buffer-create-internal): Show full documentation string in buffers with only a single item. @@ -16467,9 +16467,9 @@ (widget-field-end): Workaround for local-map at end of overlay. (widget-specify-field): Ditto. - (widget-move): Fixed but with single button buffers. + (widget-move): Fix but with single button buffers. - * cus-edit.el (custom-buffer-create-internal): Improved help + * cus-edit.el (custom-buffer-create-internal): Improve help strings for reset buttons. * wid-edit.el (widget-move): Restored support for @@ -16477,7 +16477,7 @@ (widget-documentation-string-value-create): Restore support for `widget-documentation--face'. - * cus-edit.el (customize-variable-other-window): Added defalias. + * cus-edit.el (customize-variable-other-window): Add defalias. * widget.el (:complete): New keyword. (:complete-function): New keyword. @@ -16524,7 +16524,7 @@ 1997-06-02 Richard Stallman - * text-mode.el (spaced-text-mode): Renamed from text-mode. + * text-mode.el (spaced-text-mode): Rename from text-mode. But change the mode name and hooks. (text-mode): Put the guts of indented-text-mode here. But don't define text-mode-abbrev-table, just use it. @@ -16544,14 +16544,14 @@ 1997-06-02 Michael Kifer - * ediff-util.el (ediff-toggle-multiframe): Improved. - (ediff-setup, ediff-inferior-compare-regions): Modified. + * ediff-util.el (ediff-toggle-multiframe): Improve. + (ediff-setup, ediff-inferior-compare-regions): Modify. (ediff-setup): Bug fixed. * ediff-init.el (ediff-file-attributes): Use ediff-file-remote-p. * ediff-wind.el (ediff-setup-windows-multiframe-merge) - (ediff-setup-windows-multiframe-compare): Improved window placement. + (ediff-setup-windows-multiframe-compare): Improve window placement. * ediff-diff.el (ediff-make-fine-diffs): - Fixed messages about whitespace regions. + Fix messages about whitespace regions. * ediff-wind.el, ediff-ptch.el, ediff-mult.el, ediff-merg.el: custom.el'ed. @@ -16560,11 +16560,11 @@ * viper-init.el (vip-parse-sexp-ignore-comments): New variable. * viper-cmd.el (vip-paren-match): Parsing comments is now controlled with vip-parse-sexp-ignore-comments. - * viper-cmd.el (vip-goto-col): Fixed. + * viper-cmd.el (vip-goto-col): Fix. * viper-cmd.el (vip-autoindent): Now expands abbrevs. (vip-adjust-keys-for): Unbinds vip-autoindent, if vip-auto-indent is nil. - * viper-cmd.el (vip-prefix-arg-value): Fixed computation of integer + * viper-cmd.el (vip-prefix-arg-value): Fix computation of integer prefix args. * viper-cmd.el, viper-init.el: New files. @@ -16617,14 +16617,14 @@ 1997-06-01 Dan Nicolaescu - * hideshow.el (hs-show-hidden-short-form): Updated doc string. + * hideshow.el (hs-show-hidden-short-form): Update doc string. (hs-adjust-block-beginning): Likewise. (hs-special-modes-alist): C and C++ should also use hs-c-like-adjust-block-beginning. (hs-find-block-beginning): If hs-adjust-block-beginning is t and we apply hs-adjust-block-beginning and we reach the point means that we found the block beginning. - (hs-c-like-adjust-block-beginning): Renamed from + (hs-c-like-adjust-block-beginning): Rename from java-hs-adjust-block-beginning. 1997-06-01 Simon Leinen @@ -16666,7 +16666,7 @@ getting read-only bob and eob in XEmacs. * wid-browse.el (widget-browse-at): Use `get-char-property' instead of `get-text-property'. - * widget.el (:value-from :value-to): Deleted. + * widget.el (:value-from :value-to): Delete. * widget.el (:button-overlay, :field-overlay): New keywords. * wid-edit.el (widget-default-delete): Delete overlays. (widget-field-value-delete): Delete overlay. @@ -16700,7 +16700,7 @@ 1997-06-01 Per Abrahamsen - * cus-edit.el (custom-format-handler): Changed look of group + * cus-edit.el (custom-format-handler): Change look of group indicators. * wid-edit.el (widget-kill-line): Use forward-line instead of @@ -16716,10 +16716,10 @@ * cus-edit.el (custom-variable-prompt): Handle variable-at-point returning 0. - (customize-option): Renamed from custom-variable. + (customize-option): Rename from custom-variable. (customize-variable): Add it as an alias. (customize-option-other-window): - Renamed from customize-variable-other-window. + Rename from customize-variable-other-window. (custom-load-symbol): Search for both short and absolute names of the library, when avoiding duplicate loading. @@ -16761,9 +16761,9 @@ * cus-edit.el (custom-format-handler): New %e and %- escapes. (custom-group): Use them. - * widget.el (:widget-doc): Removed keyword. - * wid-edit.el (widget-help): Removed widget. - (widget-help-action): Removed function. + * widget.el (:widget-doc): Remove keyword. + * wid-edit.el (widget-help): Remove widget. + (widget-help-action): Remove function. * widget.el (:documentation-shown): New keyword. * wid-edit.el (documentation-string): New widget. @@ -16807,7 +16807,7 @@ * mule-cmds.el (set-language-environment): Add autoload cookie. Renamed from setup-language-environment. - * startup.el (iso-8859-n-locale-regexp): Renamed from + * startup.el (iso-8859-n-locale-regexp): Rename from iso-8859-1-locale-regexp. * loadup.el: Always load faces.el. @@ -16856,8 +16856,8 @@ * icomplete.el: Integrated Emacs 19.34 and XEmacs 19.15 corrections (typos, style, command revisions, etc). - * icomplete.el: Integrated immediate keybindings display. See - `icomplete-show-key-bindings', `icomplete-get-keys', and + * icomplete.el: Integrated immediate keybindings display. + See `icomplete-show-key-bindings', `icomplete-get-keys', and `icomplete-completions'. * icomplete.el (icomplete-get-keys): Return keys bound in prior @@ -16903,7 +16903,7 @@ * cus-edit.el (custom-magic-alist): Shortened message. - * cus-edit.el (custom-help-menu): Updated names. + * cus-edit.el (custom-help-menu): Update names. * cus-edit.el: Say `invoke' instead of `activate'. * wid-edit.el: Ditto. @@ -16930,13 +16930,13 @@ (widget-glyph-insert-glyph): No tag here. (widget-push-button-value-create): But here. - * wid-edit.el (widget-field-face): Changed to dim gray. + * wid-edit.el (widget-field-face): Change to dim gray. * wid-edit.el (widget-push-button-prefix): New option. (widget-push-button-suffix): New option. (widget-button): New group. - * widget.el (:text-format): Removed. + * widget.el (:text-format): Remove. (:button-suffix): New keyword. (:button-prefix): New keyword. @@ -16957,7 +16957,7 @@ * cus-edit.el (custom-magic-alist): Use `invoke' instead of `push'. - * cus-edit.el (custom-magic-alist): Changed rogue state message. + * cus-edit.el (custom-magic-alist): Change rogue state message. * custom.el (defface): Doc fix. @@ -16967,13 +16967,13 @@ * cus-edit.el, custom.el: Renamed `factory' to `standard' everywhere. - * cus-edit.el (custom-magic-show-button): Changed default to + * cus-edit.el (custom-magic-show-button): Change default to `nil'. - (custom): Removed `:format'. - (custom-variable): Removed level button. + (custom): Remove `:format'. + (custom-variable): Remove level button. (custom-face): Ditto. - (custom-level): Deleted. - (custom-level-action): Deleted. + (custom-level): Delete. + (custom-level-action): Delete. (custom-format-handler): Update caller. (custom-group-magic-alist): Merged into `custom-magic-alist'. (custom-magic-value-create): Use merged `custom-magic-alist'. @@ -16996,8 +16996,8 @@ * icomplete.el: Integrated Emacs 19.34 and XEmacs 19.15 corrections (typos, style, command revisions, etc). - Integrated hacked up XEmacs immediate keybindings display. See - `icomplete-show-key-bindings', `icomplete-get-keys', and + Integrated hacked up XEmacs immediate keybindings display. + See `icomplete-show-key-bindings', `icomplete-get-keys', and `icomplete-completions'. Doesn't work with mainline GNU Emacs 19.34 (because the cmdloop doesn't set owindow, and the current-local-map doesn't take optional buffer arg), so feature @@ -17046,7 +17046,7 @@ SYNTACTIC-PROPERTIES. Eval font-lock-syntactic-keywords with font-lock-eval-keywords. Compile and compare all keywords. (fast-lock-get-syntactic-properties): New function. - (fast-lock-add-properties): Renamed from fast-lock-set-face-properties. + (fast-lock-add-properties): Rename from fast-lock-set-face-properties. Take new arg SYNTACTIC-PROPERTIES and add syntax-table text properties. Now fast-lock.el saves a buffer's value of font-lock-syntactic-keywords and syntax-table text properties as added by font-lock.el. @@ -17133,7 +17133,7 @@ set-current-process-coding-system. * encoded-kb.el (encoded-kbd-mode): Fix typo in doc-string. - (encoded-kbd-set-coding-system): Deleted. + (encoded-kbd-set-coding-system): Delete. * case-table.el (describe-buffer-case-table): Use aref instead of set-char-table-range. @@ -17151,10 +17151,10 @@ (describe-specified-language-support): New function. (describe-language-support): Call the above function. (universal-coding-system-argument): New function. - (read-language-and-input-method-name): Doc-string fixed. If - default-input-method is nil, use previous-input-method as the + (read-language-and-input-method-name): Doc-string fixed. + If default-input-method is nil, use previous-input-method as the default value. - (set-default-input-method): Deleted. + (set-default-input-method): Delete. * language/*.el: Most of setup-LANGUAGE-environment functions are moved form LANGUAGE.el to LANG-util.el. These functions now at @@ -17270,7 +17270,7 @@ also accept a subdir with a file called `index'. * texinfmt.el (texinfo-extra-inter-column-width): - Renamed from extra-inter-column-width. Doc fix. + Rename from extra-inter-column-width. Doc fix. (texinfo-multitable-buffer-name): Variable renamed from multitable-temp-buffer-name. (texinfo-multitable-rectangle-name): @@ -17391,8 +17391,8 @@ read-only data someday. (eldoc-docstring-message): If truncating symbol name, show ending of name rather than beginning. The former is generally more unique. - (eldoc-function-argstring-from-docstring-method-table): Handle - pathological `save-restriction' case. + (eldoc-function-argstring-from-docstring-method-table): + Handle pathological `save-restriction' case. [top level]: Add `indent-for-tab-command' to eldoc-message-commands. 1997-05-21 Richard Stallman @@ -17438,18 +17438,18 @@ (ada-font-lock-keywords-1): Move "task" before "task (body|type)" to correct highlighting (regexp depends on order). - * ada-mode.el (ada-in-char-const-p): Renamed from `ada-after-char-p'. + * ada-mode.el (ada-in-char-const-p): Rename from `ada-after-char-p'. Also test following character. (ada-adjust-case): Use better function `ada-in-char-const-p'. (ada-in-string-or-comment-p): Test for being in a char constant. - (ada-clean-buffer-before-saving): Changed default to t. + (ada-clean-buffer-before-saving): Change default to t. (ada-mode): Set `font-lock-defaults' for Emacs only, use properties for XEmacs. - * ada-mode.el (ada-indent-newline-indent): Simplified by just calling + * ada-mode.el (ada-indent-newline-indent): Simplify by just calling `ada-indent-current'. - * ada-mode.el (ada-end-stmt-re): Added word delimiters in regexp. + * ada-mode.el (ada-end-stmt-re): Add word delimiters in regexp. Removed `interactive' statements which were needed only for debugging. * ada-mode.el: @@ -17477,7 +17477,7 @@ (ada-goto-next-word): Generalized old `ada-goto-previous-word' for both directions. - * ada-mode.el (ada-indent-function): Removed unnecessary `package' case. + * ada-mode.el (ada-indent-function): Remove unnecessary `package' case. (ada-get-indent-case): Before testing for `=>', be sure there is an `is'. (ada-search-prev-end-stmt): Test for `separate' keyword on the @@ -17490,8 +17490,8 @@ * ada-mode.el: Doc fixes. (ada-mode): Support new font-lock-mode. - (ada-format-paramlist): Changed all `accept' to `access'. - (ada-insert-paramlist): Changed all `accept' to `access'. + (ada-format-paramlist): Change all `accept' to `access'. + (ada-insert-paramlist): Change all `accept' to `access'. (ada-in-comment-p): Use standard Emacs way `parse-partial-sexp'. (ada-font-lock-keywords-1): Regexps in not byte-compiled code behave different than byte-compiled regexps. @@ -17518,7 +17518,7 @@ 1997-05-20 Richard Stallman - * word-help.el (set-word-help-file): Renamed from set-help-file. + * word-help.el (set-word-help-file): Rename from set-help-file. * crisp.el (crisp-mode): Add autoload cookie. @@ -17528,7 +17528,7 @@ * dos-w32.el (add-untranslated-filesystem) (remove-untranslated-filesystem): Add interactive spec. - * crisp.el (crisp-last-last-command): Renamed from last-last-command + * crisp.el (crisp-last-last-command): Rename from last-last-command and defvar added. * levents.el (event-closest-point): Fix paren error. @@ -17606,12 +17606,12 @@ (compilation-revert-buffer): New function. (compilation-mode): Set revert-buffer-function. - * files.el (revert-without-query): Renamed from + * files.el (revert-without-query): Rename from find-file-revert-without-query. (find-file-noselect): Use new option. (revert-buffer): Check the option here too. - * cus-face.el (custom-facep): Defined (once again). + * cus-face.el (custom-facep): Define (once again). * simple.el (do-auto-fill): Check enable-kinsoku and enable-multibyte-characters. @@ -17628,7 +17628,7 @@ 1997-05-16 Richard Stallman - * autoload.el (update-autoloads-from-directories): Renamed from + * autoload.el (update-autoloads-from-directories): Rename from update-autoloads-from-directory. Take multiple directories as args. Use locate-library to find loaddefs.el and the top level Lisp dir. (batch-update-autoloads): Call update-autoloads-from-directories. @@ -17670,11 +17670,11 @@ * mule-cmds.el (set-language-info): Change the special treatment of key 'describe-function to 'documentation. - (describe-specified-language-support): Renamed from + (describe-specified-language-support): Rename from describe-language-support-internal. Get language name from last-command-event. - (describe-language-support): Call - describe-specified-language-support. + (describe-language-support): + Call describe-specified-language-support. * language/chinese.el: Delete functions describe-LANGUAGE-support. Delete 'describe-function entries and change 'documentation @@ -17791,13 +17791,13 @@ (default): Use `:mouse-down-action'. (menu-choice): Ditto. (widget-choice-mouse-down-action): New function. - (widget-info-link-action): Removed kludge to steal up event. + (widget-info-link-action): Remove kludge to steal up event. * cus-edit.el (widget-magic-mouse-down-action): New function. (custom-magic-value-create): Use it. - (custom-buffer-create-internal): Removed kludge to steal up event. + (custom-buffer-create-internal): Remove kludge to steal up event. - * widget.el (:glyph-up, :glyph-down, :glyph-inactive): New - keywords. + * widget.el (:glyph-up, :glyph-down, :glyph-inactive): + New keywords. * wid-edit.el (widget-glyph-insert-glyph): Support optional `down' and `inactive' glyphs. (widget-push-button-value-create): Ditto. @@ -17811,8 +17811,8 @@ (customize-variable-other-window, customize-face) (customize-face-other-window, customize-customized) (customize-saved, customize-apropos, custom-face-menu-create) - (custom-variable-menu-create, boolean, custom-menu-create): Updated - caller. + (custom-variable-menu-create, boolean, custom-menu-create): + Update caller. * cus-edit.el (custom-variable-action): Reset magic state. (custom-variable-menu): Allow `Reset to Current' on `changed' @@ -17853,24 +17853,24 @@ (choice, radio): Use it. (widget-prompt-value): Prepend widget type to prompt. - * wid-edit.el (widget-parent-action): Renamed from + * wid-edit.el (widget-parent-action): Rename from `widget-choice-item-action'. - (choice-item): Updated widget. + (choice-item): Update widget. * cus-edit.el (custom-magic): Ditto. - * wid-edit.el (widget-children-validate): Renamed from + * wid-edit.el (widget-children-validate): Rename from `widget-editable-list-validate'. - (editable-list, group): Updated widgets. + (editable-list, group): Update widgets. * cus-edit.el (custom, face): Ditto. - * wid-edit.el (widget-value-value-get): Renamed from + * wid-edit.el (widget-value-value-get): Rename from `widget-item-value-get'. - (item): Updated widget. + (item): Update widget. * cus-edit.el (face, custom): Ditto. - * wid-edit.el (widget-value-convert-widget): Renamed from + * wid-edit.el (widget-value-convert-widget): Rename from `widget-item-convert-widget'. - (item, editable-field): Updated widgets. + (item, editable-field): Update widgets. * cus-edit.el (face): Ditto. 1997-05-14 Simon Marshall @@ -17986,13 +17986,13 @@ * gnus-mule.el: Moved to `gnus' subdirectory. - * gnus/gnus-mule.el (gnus-mule-message-send-news-function): New - function to encode text before sending by news. + * gnus/gnus-mule.el (gnus-mule-message-send-news-function): + New function to encode text before sending by news. (gnus-mule-message-send-mail-function): New function to encode text before sending by mail. (gnus-mule-initialize): Add gnus-mule-message-send-news-function - to the hook message-send-news-hook. Add - gnus-mule-message-send-mail-function to the hook + to the hook message-send-news-hook. + Add gnus-mule-message-send-mail-function to the hook message-send-mail-hook. * help.el (help-with-tutorial): Fix a bug of handling non-English @@ -18036,16 +18036,16 @@ Setting of syntax and category for Devanagari characters are moved to characters.el. - * language/english.el (setup-english-environment): Set - sendmail-coding-system and rmail-file-coding-system to nil. + * language/english.el (setup-english-environment): + Set sendmail-coding-system and rmail-file-coding-system to nil. * language/ethio-util.el (fidel-to-tex-map): Name changed to ethio-fidel-to-tex-map. * language/european.el: Typo in comment fixed. - * language/japanese.el (setup-japanese-environment): Set - sendmail-coding-system and rmail-file-coding-system to + * language/japanese.el (setup-japanese-environment): + Set sendmail-coding-system and rmail-file-coding-system to 'iso-2022-jp. * language/korean.el: Bug fixed in making coding system @@ -18095,8 +18095,8 @@ (rmail-convert-file): Comment fixed. (rmail-revert): Don't decode RMAIL file again because the backup file is saved in Emacs' internal format. - (rmail-convert-to-babyl-format): Check - rmail-enable-decoding-message. + (rmail-convert-to-babyl-format): + Check rmail-enable-decoding-message. * term/x-win.el: Create bold, italic, and bold-italic variants of default fontset. Name a fontset created from user-specified ASCII @@ -18138,7 +18138,7 @@ * simple.el (assoc-ignore-case): Downcase KEY as well as element cars. * bibtex.el (assoc-ignore-case): Function deleted. - (bibtex-member-of-regexp): Renamed from member-of-regexp. + (bibtex-member-of-regexp): Rename from member-of-regexp. Call changed. * timer.el (timer-event-handler): Take timer as arg directly. @@ -18340,7 +18340,7 @@ (compilation-shell-minor-mode-map, compilation-shell-minor-mode): New variables. (compile-auto-highlight): Doc fix. - (compilation-error-regexp-alist): Removed unnecessary line break + (compilation-error-regexp-alist): Remove unnecessary line break in first regexp. Replaced \\(\\|.* on \\) by \\(.* on \\)? in regexp for Absoft FORTRAN 77 Compiler 3.1.3. Added regexp for SPARCcompiler Pascal. Divided long line in regexp for Cray C @@ -18354,7 +18354,7 @@ (compilation-leave-directory-regexp-alist): New variables. (compilation-file-regexp-alist) (compilation-nomessage-regexp-alist): New variables. - (grep-regexp-alist): Removed unnecessary ^ at beginning of regexp. + (grep-regexp-alist): Remove unnecessary ^ at beginning of regexp. (compilation-enter-directory-regexp) (compilation-leave-directory-regexp): Variables deleted. Replaced by compilation-enter-directory-regexp-alist and @@ -18394,7 +18394,7 @@ * cus-edit.el (custom-group-magic-alist): New variable. (custom-group-state-update): Use custom-group-magic-alist. - (customize-group): Renamed from `customize', + (customize-group): Rename from `customize', and rename argument to GROUP. (customize): New function. @@ -18418,7 +18418,7 @@ * time-stamp.el (time-stamp-old-format-warn): Fix a tag string. (time-stamp-format): Use %Y not %y in default value. - * crisp.el (crisp-load-scroll-all): Renamed from ...-lock. + * crisp.el (crisp-load-scroll-all): Rename from ...-lock. (crisp-mode): Use scroll-all... not scroll-lock... * scroll-all.el: Renamed from scroll-lock.el. @@ -18476,7 +18476,7 @@ * ange-ftp.el (ange-ftp-file-entry-p): If ange-ftp-get-files returns nil, don't try ange-ftp-hash-entry-exists-p, just give up. - * comint.el (comint-input-face): Deleted. + * comint.el (comint-input-face): Delete. * compile.el (compilation-error-regexp-alist): Add regexp for Perl -w. @@ -18515,34 +18515,34 @@ "In" or "Out" command tells you if you are already on or off the bus. * dunnet.el (dun-sauna-heat): - Changed "begin to sweat" to "are perspiring" + Change "begin to sweat" to "are perspiring" so that it makes sense whether you are heating up or cooling down. * dunnet.el (dun-help): - Changed author e-mail address, added web page. + Change author e-mail address, added web page. Added hint for batch mode. * dunnet.el (*global*): - Fixed spelling of Presely in global object list. + Fix spelling of Presely in global object list. * dunnet.el (*global*): - Added coconuts, tank, and lake as objects that are recognized. + Add coconuts, tank, and lake as objects that are recognized. * dunnet.el (*global*): - Added `slip' as another way of describing the paper, + Add `slip' as another way of describing the paper, and `chip' as another way of describing the CPU. * dunnet.el (*global*): Upcase abbreviations of directions in room descriptions. * dunnet.el (dun-login): - Fixed erroneous login message to better-describe ftp limitations. + Fix erroneous login message to better-describe ftp limitations. * dunnet.el (dun-rlogin): - Added error message if user tries to rlogin back to pokey. + Add error message if user tries to rlogin back to pokey. * dunnet.el (dun-load-d): - Fixed so that if restore file isn't found which in non-batch mode, + Fix so that if restore file isn't found which in non-batch mode, window will switch back to game. 1997-04-27 Richard Stallman @@ -18568,11 +18568,11 @@ 1997-04-26 Edward M Reingold - * cal-french.el (calendar-print-french-date): Label - French date in echo area. + * cal-french.el (calendar-print-french-date): + Label French date in echo area. - * cal-coptic.el (calendar-print-coptic-date): Label - Coptic/Ethiopic date in echo area. + * cal-coptic.el (calendar-print-coptic-date): + Label Coptic/Ethiopic date in echo area. 1997-04-25 Richard Stallman @@ -18614,7 +18614,7 @@ * cus-edit.el (custom-set-value): New command. (custom-set-variable): New command. - (customize-saved): Renamed from `customize-customized'. + (customize-saved): Rename from `customize-customized'. (customize-customized): New command. (custom-save-customized): New command. @@ -18677,7 +18677,7 @@ * cus-edit.el (custom-display-unselected-match): Matched too many displays. - * wid-edit.el (widget-field-face): Changed default background + * wid-edit.el (widget-field-face): Change default background color. * custom.el (custom-declare-variable): Set `custom-get' the right @@ -18801,7 +18801,7 @@ * sh-script.el (sh-case): Make this a simple define-skeleton as it was originally. Don't add a menu-enable property. - (sh-assignment-regexp): Renamed from sh-assignment-prefix + (sh-assignment-regexp): Rename from sh-assignment-prefix undoing a renaming made by mistake. * sgml-mode.el (sgml-transformation): Fix previous change. @@ -18946,7 +18946,7 @@ * cus-start.el: Add support for face documentation. - * cus-dep.el (custom-make-dependencies): Fixed generation of + * cus-dep.el (custom-make-dependencies): Fix generation of parens. Fixed message. @@ -18975,8 +18975,8 @@ 1997-04-14 Steven L Baur - * edebug.el (edebug-read-and-maybe-wrap-form): Protect - against pathological recursive calls. + * edebug.el (edebug-read-and-maybe-wrap-form): + Protect against pathological recursive calls. 1997-04-14 Karl Heuer @@ -19079,8 +19079,8 @@ variable instead. buffer-substring with 3 arguments is non-portable. * elp.el (elp-instrument-function, elp-instrument-list): - Handle function symbols that have already been instrumented. Do - not instrument them twice. + Handle function symbols that have already been instrumented. + Do not instrument them twice. * elp.el (elp-recycle-buffers-p): New variable. @@ -19128,18 +19128,18 @@ * cus-edit.el (customize-menu-create): New function. (custom-mode-customize-menu): Use it. - * cus-edit.el (custom-make-dependencies): Deleted function. + * cus-edit.el (custom-make-dependencies): Delete function. * cus-edit.el (customize-face): Sort faces. * cus-edit.el (custom-faces): New group. - (custom-magic-alist): Added. - (custom-variable-sample-face): Added. - (custom-variable-button-face): Added. - (custom-face-tag-face): Added. - (custom-group-tag-faces): Added. - (custom-group-tag-face): Added. - (customize): Removed from faces group. + (custom-magic-alist): Add. + (custom-variable-sample-face): Add. + (custom-variable-button-face): Add. + (custom-face-tag-face): Add. + (custom-group-tag-faces): Add. + (custom-group-tag-face): Add. + (customize): Remove from faces group. * cus-edit.el (custom-load-recursion): New variable. (custom-load-symbol): Use it. @@ -19151,14 +19151,14 @@ `custom-buffer-create'. (custom-buffer-create-other-window): New function. - * cus-edit.el (custom-guess-name-alist): Renamed from + * cus-edit.el (custom-guess-name-alist): Rename from `custom-guess-type-alist'. (custom-guess-doc-alist): New option. (custom-guess-type): Use them. - * cus-face.el (set-face-stipple): Removed Kyle Jones code. + * cus-face.el (set-face-stipple): Remove Kyle Jones code. - * cus-face.el (face-doc-string): Changed property name to + * cus-face.el (face-doc-string): Change property name to `face-documentation'. (set-face-doc-string): Ditto. @@ -19182,17 +19182,17 @@ unbound. (custom-menu-nesting): Don't define for XEmacs. - * cus-face.el (after-make-frame-hook): Removed - `custom-initialize-frame', as this is now in `frame.el'. + * cus-face.el (after-make-frame-hook): + Remove `custom-initialize-frame', as this is now in `frame.el'. * cus-edit.el (custom-guess-type-alist): New option. (custom-guess-type): New function. (custom-variable-type): New function. (custom-variable-value-create): Use it. - * cus-face.el (custom-face-attributes): Moved :family to the + * cus-face.el (custom-face-attributes): Move :family to the beginning of the list. - (custom-face-attributes): Added :strikethru attribute. + (custom-face-attributes): Add :strikethru attribute. * custom.el (custom-set-variables): If variable is already set, overwrite it here. @@ -19309,7 +19309,7 @@ (scheme-comment-indent, scheme-indent-offset) (scheme-indent-function, scheme-indent-line) (calculate-scheme-indent, scheme-indent-specform) - (scheme-indent-defform, scheme-indent-sexp): Removed; use lisp-mode + (scheme-indent-defform, scheme-indent-sexp): Remove; use lisp-mode equivalents. (scheme-imenu-generic-expression): New variable. (dsssl-imenu-generic-expression): New variable. @@ -19471,9 +19471,9 @@ 1997-03-30 Dan Nicolaescu - * icon.el (icon-mode-map): Added menus. + * icon.el (icon-mode-map): Add menus. (icon-imenu-generic-expression): New variable to be used for imenu. - (icon-mode): Added font-lock, imenu and hideshow support. + (icon-mode): Add font-lock, imenu and hideshow support. (icon-font-lock-keywords-1, icon-font-lock-keywords-2): New constants for different level of font-lock fontification. (icon-font-lock-keywords): New variable. Default expression to be @@ -19502,7 +19502,7 @@ * sh-script.el (sh-mode): If file has no #! line, set the syntax table based on the default shell. -1997-03-29 Barry A. Warsaw +1997-03-29 Barry A. Warsaw * Public Release 4.389. @@ -19555,23 +19555,23 @@ * term.el: Added a lot of new faces, they all start with term- and follow a simple lexicographical convention. Note that each change is commented: just search for -mm in the source. - (term-char-mode): Added all the "gray-keys" to term-raw-map. + (term-char-mode): Add all the "gray-keys" to term-raw-map. (term-send-up): Similar, decided to go for the more xterm-like \eOA bindings in place of the previous \e[A. (term-buffer-maximum-size): New variable. - (term-mode): Added some make-local: now term-buffer-maximum-size, + (term-mode): Add some make-local: now term-buffer-maximum-size, ange-ftp-default-user/password/an-pwd. (term-emulate-terminal): Quite some modifications to allow multiple outstanding ANSI style commands: notably all the -previous-parameter stuff. Call term-handle-ansi-terminal-messages. - (term-emulate-terminal): Added simple trimming function: at the + (term-emulate-terminal): Add simple trimming function: at the end we simply check if the buffer is > term-buffer-maximum-size and cut it accordingly. (term-handle-colors-array): New function. (term-handle-ansi-terminal-messages): New function. - (term-handle-ansi-escape): Modified to allow ANSI coloring. - (ansi-term): New function that creates multiple terminals. Put - in the standard C-x map too: I'm quite used to C-x C-f and C-c C-f + (term-handle-ansi-escape): Modify to allow ANSI coloring. + (ansi-term): New function that creates multiple terminals. + Put in the standard C-x map too: I'm quite used to C-x C-f and C-c C-f was too awkward. 1997-03-29 Richard Stallman @@ -19583,7 +19583,7 @@ * hideshow.el: Use overlays for hiding instead of selective display. Commented out the support for XEmacs because it doesn't support overlays. - (hs-special-modes-alist): Added support for java-mode. + (hs-special-modes-alist): Add support for java-mode. (hs-minor-mode-hook): New variable. (hs-c-start-regexp, hs-c-end-regexp, hs-forward-sexp-func) (hs-block-start-regexp, hs-block-end-regexp) @@ -19596,8 +19596,8 @@ (hs-hide-block-at-point, hs-hide-initial-comment-block) (java-hs-forward-sexp, hs-mouse-toggle-hiding): New functions. (hs-inside-comment-p, hs-hide-block) - (hs-show-block): Added support for single line comments. - (hs-hide-all): Added support for hiding comments. + (hs-show-block): Add support for single line comments. + (hs-hide-all): Add support for hiding comments. 1997-03-28 Richard Stallman @@ -19711,7 +19711,7 @@ 1997-03-20 Dan Nicolaescu * imenu.el (imenu-scanning-message): Support for bigger numbers. - (imenu--generic-function): Fixed probably a typo: named appeared + (imenu--generic-function): Fix probably a typo: named appeared twice in an item. Put function after name and beg in a special item because a normal item has name and beg (for orthogonality). (imenu-add-to-menubar): First test to see if the mode supports @@ -19742,8 +19742,8 @@ 1997-03-18 Kenichi Handa - * fontset.el (x-complement-fontset-spec): Setup - alternative-fontname-alist while complementing fontnames. + * fontset.el (x-complement-fontset-spec): + Setup alternative-fontname-alist while complementing fontnames. 1997-03-18 Naoto TAKAHASHI @@ -19758,11 +19758,11 @@ (quail-keyboard-layout): Docstring changed to reflect the above change. (quail-keyboard-layout-len): Increased for the above change. - (quail-keyboard-layout-alist): Modified for the above change. + (quail-keyboard-layout-alist): Modify for the above change. 1997-03-18 Kenichi Handa - * mule.el (make-char): Documented. + * mule.el (make-char): Document. (charset-plist): Return quoted list even if CHARSET is supplied by symbol. @@ -19780,8 +19780,8 @@ * language/viet-util.el (viet-decode-viqr-region): Supply correct argumnents to rassoc. - (viqr-post-read-conversion, viqr-pre-write-conversion): New - functions. + (viqr-post-read-conversion, viqr-pre-write-conversion): + New functions. * language/vietnamese.el: Set the above functions to the coding system viqr. @@ -19856,7 +19856,7 @@ * mailalias.el (mail-passwd-files): New variable. (mail-get-names): Use mail-passwd-files instead of always /etc/passwd. -1997-03-12 Barry A. Warsaw +1997-03-12 Barry A. Warsaw * cc-mode.el (c-lineup-C-comments): Handle more cases, especially when comment lines aren't prefixed with stars. @@ -19883,7 +19883,7 @@ map them into inher-intro, inher-cont, and func-decl-cont syntactic symbols. Do the indentation as of Java inheritance lines better. - (c-offsets-alist): Changed the syntactic symbol ansi-funcdecl-cont + (c-offsets-alist): Change the syntactic symbol ansi-funcdecl-cont to func-decl-cont. This symbol is useful in Java throws declarations. (c-lineup-java-inher): New function for lining up "implements" @@ -19957,8 +19957,8 @@ * make-mode.el (makefile-dependency-regex): Disallow "=" in name, so that "flags=-o:1" is treated as an assignment, not a dependency. - (makefile-dependency-regex, makefile-macroassign-regex): Disallow - spaces in symbol name. + (makefile-dependency-regex, makefile-macroassign-regex): + Disallow spaces in symbol name. 1997-03-11 Dan Nicolaescu @@ -19967,8 +19967,8 @@ 1997-03-12 Richard Stallman - * dired-aux.el (dired-fun-in-all-buffers): New arg FILE. Don't - operate on buffers whose wildcard pattern does not accept FILE. + * dired-aux.el (dired-fun-in-all-buffers): New arg FILE. + Don't operate on buffers whose wildcard pattern does not accept FILE. All callers changed. * dired.el (dired-glob-regexp): New function. @@ -20058,14 +20058,14 @@ (rmail-show-mime-function, rmail-mime-feature): New variables to control MIME feature. (rmail-file-coding-system): Default value is nil. - (rmail, rmail-convert-file, rmail-insert-inbox-text): Check - rmail-enable-mime. Read a file without any code conversion. + (rmail, rmail-convert-file, rmail-insert-inbox-text): + Check rmail-enable-mime. Read a file without any code conversion. (rmail-variables): Setup local variables rmail-buffer and rmail-view-buffer. - (rmail-decode-babyl-format, rmail-convert-babyl-format): Perform - code conversion of RMAIL file if rmail-enable-mime is nil. - (rmail-show-message): Make sure to be in rmail-buffer. If - rmail-enable-mime is t, call appropriate function to decode MIME + (rmail-decode-babyl-format, rmail-convert-babyl-format): + Perform code conversion of RMAIL file if rmail-enable-mime is nil. + (rmail-show-message): Make sure to be in rmail-buffer. + If rmail-enable-mime is t, call appropriate function to decode MIME format. (rmail-mail, rmail-reply): Call rmail-start-mail with argument rmail-view-buffer. @@ -20076,8 +20076,8 @@ rmail-summary-line-decoder. (rmail-summary-next-msg): Display rmail-view-buffer. (rmail-summary-mode): Make rmail-view-buffer buffer local. - (rmail-summary-rmail-update, rmail-summary-scroll-msg-up): Use - rmail-view-buffer instead of rmail-buffer. + (rmail-summary-rmail-update, rmail-summary-scroll-msg-up): + Use rmail-view-buffer instead of rmail-buffer. * mule-cmds.el (mule-keymap): Re-arranged. (set-language-info): Typo fixed in docstring. @@ -20188,8 +20188,8 @@ (turn-on-font-lock): Test font-lock-mode. Added commented out menu code. - * compile.el (compilation-mode-font-lock-keywords): Variable - definition deleted. New function. + * compile.el (compilation-mode-font-lock-keywords): + Variable definition deleted. New function. (compilation-mode-map): Add `...' to Compile menu entry. 1997-02-20 Yutaka NIIBE @@ -20239,8 +20239,8 @@ * help.el (help-with-tutorial): Prefix argument to specify a language interactively. - * isearch.el (isearch-mode-map): Define - isearch-toggle-input-method and + * isearch.el (isearch-mode-map): + Define isearch-toggle-input-method and isearch-toggle-specified-input-method in the map. (isearch-multibyte-characters-flag): New variable. (isearch-mode): Initialize it to nil. @@ -20272,8 +20272,8 @@ (sendmail-send-it): Perform code conversion on sending mail according to sendmail-coding-system. - * simple.el (kill-forward-chars, kill-backward-chars): Pay - attention to multibyte characters. + * simple.el (kill-forward-chars, kill-backward-chars): + Pay attention to multibyte characters. (what-cursor-position): With a prefix argument, print detailed info of a character on cursor position. (transpose-subr-1): Pay attention to multibyte characters. @@ -20369,8 +20369,8 @@ * diff.el (diff-process-setup): New function, sets up the compilation-exit-message-function so that it works with both asynchronous and synchronous sub-processes. - (diff): Bind compilation-exit-message-function. Run - compilation-finish-function when compile-internal returns if async + (diff): Bind compilation-exit-message-function. + Run compilation-finish-function when compile-internal returns if async processes aren't supported. 1997-02-08 Richard Stallman @@ -20432,7 +20432,7 @@ * iso-acc.el (iso-accents-compose): Handle case where unread-command-events is already nonempty. - * frame.el (set-frame-font): Renamed from set-default-font. + * frame.el (set-frame-font): Rename from set-default-font. 1997-02-01 Tom Tromey @@ -20484,7 +20484,7 @@ * compile.el (compilation-enter-directory-regexp) (compilation-leave-directory-regexp): Add .* at beginning. -1997-01-30 Barry A. Warsaw +1997-01-30 Barry A. Warsaw * cc-mode.el: Public Release 4.353. @@ -20504,7 +20504,7 @@ * cc-mode.el (c-Java-access-key): Set to nil since Java doesn't have C++-like access labels. - * cc-mode.el (c-style-alist): Added "python" style. + * cc-mode.el (c-style-alist): Add "python" style. * cc-mode.el (c-mode-menu): New function. (c-popup-menu, c-common-init): Use c-mode-menu. @@ -20525,9 +20525,9 @@ * cc-mode.el (c-emacs-features): Detect Infodock. (c-common-init, c-mode-map): Don't install menus for Infodock. - * cc-mode.el (c-indent-exp): Fixed infinite loop when multi-line C + * cc-mode.el (c-indent-exp): Fix infinite loop when multi-line C comment is last thing in buffer. - (c-guess-basic-offset): Fixed error when K&R C-like macro is first + (c-guess-basic-offset): Fix error when K&R C-like macro is first non-syntactic whitespace in file. * cc-mode.el (c-C++-comment-start-regexp): @@ -20705,7 +20705,7 @@ 1997-01-09 Simon Marshall - * font-lock.el (font-lock-unique): Deleted. + * font-lock.el (font-lock-unique): Delete. (font-lock-prepend-text-property, font-lock-append-text-property): Don't call it; behave as to-be-written builtins. Declare as defuns. (font-lock-fillin-text-property): Declare as a defun. @@ -20731,7 +20731,7 @@ (expand-mode-hook, expand-mode-name): Variables deleted. (expand-load-hook): Variable renamed from expand-mode-load-hook. (expand-map): Variable deleted. - (expand-jump-to-next-slot): Renamed from expand-jump-to-next-mark. + (expand-jump-to-next-slot): Rename from expand-jump-to-next-mark. Add autoload. (expand-jump-to-previous-slot): Add autoload. Renamed from expand-jump-to-previous-mark. @@ -20803,11 +20803,11 @@ 1997-01-02 Jens Toivo Berger Thielemann * word-help.el (word-help-mode-alist, reset-word-help) - (word-help-switch-help-file): Added support for completion. + (word-help-switch-help-file): Add support for completion. (word-help-complete, word-help-complete-list) (word-help-complete-index, word-help-extract-matches) (word-help-make-complete): New functions/variables for completion. - (word-help-mode-alist): Enhanced search regexps. + (word-help-mode-alist): Enhance search regexps. (word-help-index-mapper): Defaults now to extracting the first word. (word-help-mode-alist, word-help-index-mapper) (word-help-main-index, word-help-main-obarray) @@ -20850,8 +20850,8 @@ 1996-12-31 Richard Stallman - * simple.el (repeat-complex-command): Bind - minibuffer-history-position and minibuffer-history-sexp-flag + * simple.el (repeat-complex-command): + Bind minibuffer-history-position and minibuffer-history-sexp-flag only for the read-from-minibuffer call. 1996-12-30 Richard Stallman @@ -20929,7 +20929,7 @@ * expand.el: New file. - * skeleton.el (skeleton-positions): Renamed from skeleton-marks. + * skeleton.el (skeleton-positions): Rename from skeleton-marks. * skeleton.el (skeleton-marks): New variable. (skeleton-insert, skeleton-internal-1): Set skeleton-marks. @@ -20956,7 +20956,7 @@ (vip-convert-standard-file-name): New function. * ediff-util.el (ediff-file-under-version-control): New function. - (ediff-inferior-compare-regions): Improved interface. + (ediff-inferior-compare-regions): Improve interface. (ediff-maybe-checkout): New function. (ediff-maybe-save-and-delete-merge): New function. (ediff-setup): Now uses convert-standard-filename. @@ -20970,8 +20970,8 @@ subordinate Ediff sessions. * ediff-ptch.el (ediff-patch-file-internal): Now calls ediff-maybe-checkout. - (ediff-context-diff-label-regexp): Fixed regexp. - (ediff-map-patch-buffer): Fixed beg/end patch boundaries. + (ediff-context-diff-label-regexp): Fix regexp. + (ediff-map-patch-buffer): Fix beg/end patch boundaries. * ediff.el: Now supports autostore for merge jobs. 1996-12-27 Richard Stallman @@ -21018,15 +21018,15 @@ * vc-hooks.el (vc-user-login-name): New function. (vc-fetch-master-properties, vc-lock-from-permissions, vc-file-owner) - (vc-fetch-properties, vc-after-save, vc-mode-line, vc-status): Use - `vc-user-login-name' instead of `user-login-name'. + (vc-fetch-properties, vc-after-save, vc-mode-line, vc-status): + Use `vc-user-login-name' instead of `user-login-name'. * vc.el (vc-next-action-on-file, vc-update-change-log) (vc-backend-checkout, vc-backend-steal): Use `vc-user-login-name' instead of `user-login-name'. (vc-update-change-log): If `user-full-name' is nil, try `user-login-name'. Failing that, use uid as a string. - (vc-make-buffer-writable-hook): Removed (was unused). + (vc-make-buffer-writable-hook): Remove (was unused). 1996-12-20 Richard Stallman @@ -21294,7 +21294,7 @@ * thingatpt.el: Downcase arguments as Lisp symbols. Fix many doc strings. - (thing-at-point-file-name-chars): Renamed from file-name-chars. + (thing-at-point-file-name-chars): Rename from file-name-chars. Allow a colon. (thing-at-point-url-chars): New variable. (url): Define new kind of "thing". @@ -21309,7 +21309,7 @@ Two new arguments. (rmail-forward): Always call rmail-start-mail, never `mail'. - * sendmail.el (mail-reply-action): Renamed from mail-reply-buffer. + * sendmail.el (mail-reply-action): Rename from mail-reply-buffer. (mail-yank-original): Handle either an action or a buffer in mail-reply-action. (mail): Doc fix. @@ -21413,8 +21413,8 @@ (font-lock-face-attributes): Doc fix. (font-lock-match-c-style-declaration-item-and-skip-to-next): New function. Match just identifiers. Use it for C, Objective-C and Java. - (font-lock-match-c++-style-declaration-item-and-skip-to-next): Match - templates too. + (font-lock-match-c++-style-declaration-item-and-skip-to-next): + Match templates too. (c-font-lock-extra-types, c++-font-lock-extra-types) (objc-font-lock-extra-types, java-font-lock-extra-types): Use these variables in EVAL forms, i.e., do not eval when font-lock.el is loaded. @@ -21432,7 +21432,7 @@ (fast-lock-get-face-properties): Rewrite for face lists. Use it. * lazy-lock.el (lazy-lock-submit-bug-report): Function deleted. - (lazy-lock-defer-on-scrolling): Renamed from lazy-lock-defer-driven. + (lazy-lock-defer-on-scrolling): Rename from lazy-lock-defer-driven. (lazy-lock-defer-on-the-fly): New variable from lazy-lock-defer-time. (lazy-lock-install): Use it. (lazy-lock-defer-time): Doc fix. Add top-level code to detect use of @@ -21441,15 +21441,15 @@ (lazy-lock-stealth-load): New variable. (lazy-lock-fontify-after-idle): Use it. (lazy-lock-mode): Doc fix. - (lazy-lock-defer-line-after-change): Renamed from + (lazy-lock-defer-line-after-change): Rename from lazy-lock-defer-after-change. (lazy-lock-defer-rest-after-change) (lazy-lock-fontify-line-after-change) (lazy-lock-fontify-rest-after-change): New functions. (lazy-lock-install-hooks): Add one depending on deferral variables. (lazy-lock-unstall): Remove them. Fontify if Font Lock mode still on. - (lazy-lock-fontify-window, lazy-lock-fontify-conservatively): Use - with-current-buffer rather than save-excursion. + (lazy-lock-fontify-window, lazy-lock-fontify-conservatively): + Use with-current-buffer rather than save-excursion. (lazy-lock-percent-fontified): Cast size to float before multiplying. 1996-11-14 Karl Heuer @@ -21553,7 +21553,7 @@ * comint.el (comint-output-filter): Run comint-output-filter-functions directly, not via comint-output-filter. - * compile.el (compile-auto-highlight): Renamed from + * compile.el (compile-auto-highlight): Rename from compile-highlight-display-limit. * time-stamp.el (time-stamp-dd/mm/yyyy): New function. @@ -21589,7 +21589,7 @@ 1996-11-02 Henry Guillaume * find-file.el (general): Enabled commentary for Finder. - (ff-search-directories): Changed /usr/include/* to /usr/include. + (ff-search-directories): Change /usr/include/* to /usr/include. (ff-get-file-name): Improve behavior when file is found in a buffer. 1996-11-02 Richard Stallman @@ -21679,7 +21679,7 @@ 1996-10-24 Dave Gillespie - * cl-macs.el (lexical-let): Fixed a bug involving nested + * cl-macs.el (lexical-let): Fix a bug involving nested lexical contexts and macros. 1996-10-23 Simon Marshall @@ -21740,7 +21740,7 @@ 1996-10-20 Kevin Rodgers - * compile.el (compilation-skip-to-next-location): Defined. + * compile.el (compilation-skip-to-next-location): Define. (compilation-next-error-locus, compilation-parse-errors): Respect it. 1996-10-17 Andre Spiegel @@ -21767,19 +21767,19 @@ 1996-10-14 Torbjorn Einarsson - * f90.el (f90-no-block-limit): Fixed bug for indentation of + * f90.el (f90-no-block-limit): Fix bug for indentation of elsewhere and elseif. (f90-looking-at-where-or-forall): Now allows for labeled forall and where statements. (f90-font-lock-keywords-2): New highlighting for labeled where and forall. Fixed small bug with else highlighting. - (f90-fill-region): Moved indentation to f90-break-line. + (f90-fill-region): Move indentation to f90-break-line. (f90-break-line): Will now always indent the second line. (f90-indent-line): Simpler test for auto-fill. - (f90-auto-fill-mode): Removed. - (f90-electric-insert): Added for possibility of auto-filling of + (f90-auto-fill-mode): Remove. + (f90-electric-insert): Add for possibility of auto-filling of lines without spaces, as well as early updating of line. - (f90-mode-map): Added bindings of operators to f90-electric-insert. + (f90-mode-map): Add bindings of operators to f90-electric-insert. (f90-do-auto-fill): Now also updates line (changes case). 1996-10-12 Richard Stallman @@ -21865,21 +21865,21 @@ * browse-url.el (browse-url): New function. (browse-url-CCI-host): New variable. - (browse-url-at-mouse): Added event-buffer and event-point + (browse-url-at-mouse): Add event-buffer and event-point functions for XEmacs compatibility. (browse-url-file-url): Check for EFS after alist, URL-encode special chars. (browse-url-grail): New function. (browse-url-interactive-arg): Add new-window logic. - (browse-url-looking-at): Fixed. + (browse-url-looking-at): Fix. (browse-url-lynx-xterm): New function. (browse-url-lynx-emacs): Use term.el instead of terminal.el. (browse-url-netscape): Contact/start Netscape in the - background. Multi-display support. Renamed - browse-url-netscape-send. URL-encode comma. + background. Multi-display support. + Renamed browse-url-netscape-send. URL-encode comma. (browse-url-netscape-command): New variable. (browse-url-netscape-startup-arguments): New variable. - (browse-url-url-at-point): Improved matching to supply missing + (browse-url-url-at-point): Improve matching to supply missing "http://". Other fixes for byte-compilation. @@ -21903,7 +21903,7 @@ * rmail.el (rmail-mode-2): Don't run rmail-mode-hook here. (rmail-mode, rmail): Run it here. -1996-10-08 Barry A. Warsaw +1996-10-08 Barry A. Warsaw * cc-mode.el (c-mode-map): Install FSF mode menu into menubar using the name @@ -21912,7 +21912,7 @@ additional FSF menu. * cc-mode.el: - Removed the following variables from the built-in "cc-mode" style: + Remove the following variables from the built-in "cc-mode" style: c-echo-syntactic-information-p c-string-syntax-p c-tab-always-indent @@ -21921,7 +21921,7 @@ * cc-mode.el (c-indent-command): Doc fix. - * cc-mode.el (c-style-alist): Added "linux" style. + * cc-mode.el (c-style-alist): Add "linux" style. * cc-mode.el (c-lineup-comment): Preserve comment-column. @@ -21975,10 +21975,10 @@ functions inside a nested class since they will twice add the indentation of the inner class to the running total. - The solution is to not give one of the two symbols a relpos. The - decision was made to omit the relpos of the 'inline-open symbol. + The solution is to not give one of the two symbols a relpos. + The decision was made to omit the relpos of the 'inline-open symbol. - (c-mode-help-address): Added cc-mode-help@python.org. + (c-mode-help-address): Add cc-mode-help@python.org. (c-recognize-knr-p): No longer a user variable. (c++-mode, java-mode): Set c-recognize-knr-p to nil. @@ -22058,7 +22058,7 @@ (sgml-font-lock-keywords): Add an element for comments. * rmailsum.el (rmail-summary-line-count-flag): - Renamed from rmail-summary-line-count-p. + Rename from rmail-summary-line-count-p. * rmailsum.el (rmail-summary-line-count-p): New variable. (rmail-make-basic-summary-line): Optionally exclude the line count. @@ -22128,8 +22128,8 @@ (ps-print-prologue-1, ps-print-prologue-2): New variables. Major rewrite of the PostScript code to handle landscape mode, multiple columns and new font management. - (ps-landscape-mode, ps-number-of-columns, ps-inter-column): New - variables. + (ps-landscape-mode, ps-number-of-columns, ps-inter-column): + New variables. Add landscape mode and multiple columns with interspacing. (ps-font-info-database, ps-font-family, ps-font-size) (ps-header-font-family, ps-header-font-size, ps-header-title-font) @@ -22142,10 +22142,10 @@ (/ReportAllFontInfo): New PostScript function to get all the font families of the printer. (ps-setup): New function. - (ps-line-lengths, ps-nb-pages-buffer, ps-nb-pages-region): New - utility functions. - (ps-page-dimensions-get-width, ps-page-dimensions-get-height): New - macros. + (ps-line-lengths, ps-nb-pages-buffer, ps-nb-pages-region): + New utility functions. + (ps-page-dimensions-get-width, ps-page-dimensions-get-height): + New macros. (/HeaderOffset): Fix bug with /PrintStartY. (/SetHeaderLines): Fix bug. @@ -22236,7 +22236,7 @@ * tex-mode.el (tex-main-file): Add missing initial value. (tex-file): Set tex-print-file to source-file always. - (tex-last-file-texed): Renamed from tex-last-buffer-texed + (tex-last-file-texed): Rename from tex-last-buffer-texed and now holds a file name. (tex-region): Test and set tex-last-file-texed. @@ -22286,15 +22286,15 @@ * ffap.el (path-separator): Duplicate definition deleted. (ffap-what-domain): Don't define mail-extr-all-top-level-domains here. - * refbib.el (r2b-capitalize-title-stop-words): Renamed from capit... - (r2b-capitalize-title-stop-regexp): Renamed from capit... - (r2b-capitalize-title-region): Renamed from capitalize... - (r2b-capitalize-title): Renamed from capitalize... + * refbib.el (r2b-capitalize-title-stop-words): Rename from capit... + (r2b-capitalize-title-stop-regexp): Rename from capit... + (r2b-capitalize-title-region): Rename from capitalize... + (r2b-capitalize-title): Rename from capitalize... - * bib-mode.el (bib-capitalize-title-stop-words): Renamed from capit... - (bib-capitalize-title-stop-regexp): Renamed from capit... - (bib-capitalize-title-region): Renamed from capitalize... - (bib-capitalize-title): Renamed from capitalize... + * bib-mode.el (bib-capitalize-title-stop-words): Rename from capit... + (bib-capitalize-title-stop-regexp): Rename from capit... + (bib-capitalize-title-region): Rename from capitalize... + (bib-capitalize-title): Rename from capitalize... * edmacro.el (insert-kbd-macro): Duplicate definition deleted. @@ -22353,18 +22353,18 @@ New variables. (ediff-convert-standard-file-name): New function. Added on-line help, moved some functions to and from ediff-util.el. - (ediff-file-remote-p): Modified. + (ediff-file-remote-p): Modify. (ediff-set-face-pixmap): New function. (ediff-odd-diff-pixmap, ediff-even-diff-pixmap, ediff-fine-diff-pixmap): New variables. - * ediff-ptch.el (ediff-context-diff-label-regexp): Fixed regexp. - (ediff-map-patch-buffer): Fixed beg/end patch boundaries. + * ediff-ptch.el (ediff-context-diff-label-regexp): Fix regexp. + (ediff-map-patch-buffer): Fix beg/end patch boundaries. Now checks for the return code from the patch program. Fixed ediff-patch-options, ediff-backup-extension, ediff-backup-specs. * ediff-merg.el, ediff-diff.el, ediff-init.el: * ediff-hook.el: Changed ediff-meta to ediff-mult. * ediff-ptch.el (ediff-backup-specs): New variable. - * ediff.el (ediff-documentation): Modified. + * ediff.el (ediff-documentation): Modify. * ediff-help.el: New file. * ediff-mult.el (ediff-intersect-directories) (ediff-meta-insert-file-info): Functions modified. @@ -22411,7 +22411,7 @@ * vc.el (vc-print-log): Set the display window so that it shows the current log entry completely. - * vc-hooks.el (vc-find-cvs-master): Fixed handling of "locally + * vc-hooks.el (vc-find-cvs-master): Fix handling of "locally added" files. 1996-09-16 Erik Naggum @@ -22488,15 +22488,15 @@ * bindings.el: New file, split out from loaddefs.el. * loadup.el: Load bindings.el. - * gud.el (gud-find-c-expr): Renamed from find-c-expr. + * gud.el (gud-find-c-expr): Rename from find-c-expr. Don't get fooled by if and while statements. - (gud-expr-compound): Renamed from expr-compound. - (gud-expr-compound-sep): Renamed from expr-compound-sep. - (gud-next-expr): Renamed from expr-next. - (gud-prev-expr): Renamed from expr-prev. - (gud-forward-sexp): Renamed from expr-forward-sexp. - (gud-backward-sexp): Renamed from expr-backward-sexp. - (gud-innermost-expr): Renamed from expr-cur. + (gud-expr-compound): Rename from expr-compound. + (gud-expr-compound-sep): Rename from expr-compound-sep. + (gud-next-expr): Rename from expr-next. + (gud-prev-expr): Rename from expr-prev. + (gud-forward-sexp): Rename from expr-forward-sexp. + (gud-backward-sexp): Rename from expr-backward-sexp. + (gud-innermost-expr): Rename from expr-cur. 1996-09-10 Per Abrahamsen @@ -22546,8 +22546,8 @@ 1996-09-05 Michael Kifer * viper-keym.el, viper.el (vip-scroll): - Changed to vip-scroll-screen, other modifications. - (vip-alternate-ESC): Changed to vip-alternate-Meta-key. + Change to vip-scroll-screen, other modifications. + (vip-alternate-ESC): Change to vip-alternate-Meta-key. * viper.el (vip-escape-to-vi, vip-prefix-arg-value) (vip-prefix-arg-value): Now work with prefix arguments and also will work with 2dw and d2d style commands. @@ -22556,7 +22556,7 @@ (vip-paren-match): Go to closing paren first. (vip-find-char-forward, vip-find-char-backward, vip-goto-char-forward) (vip-goto-char-backward): Functions modified. - (vip-set-hooks): Added viper to fortran-mode. + (vip-set-hooks): Add viper to fortran-mode. (viper-mode): Don't delete the startup message. * viper-keym.el: C-\ is now the meta key. C-z in insert mode now escapes to Vi. @@ -22565,9 +22565,9 @@ * viper-util.el, viper.el: Added pixmaps to replace-region and search faces. (vip-get-filenames-from-buffer): The argument is now optional. - (vip-ex-nontrivial-find-file-unix): Added the -d option to ls command. + (vip-ex-nontrivial-find-file-unix): Add the -d option to ls command. (vip-read-key): Inhibit quit added. - (vip-get-cursor-color): Fixed to work with XEmacs. + (vip-get-cursor-color): Fix to work with XEmacs. * viper-ex.el (ex-edit): Don't change to vi in dired mode. 1996-09-04 Richard Stallman @@ -22706,7 +22706,7 @@ (grep-regexp-alist, file-name-buffer-file-type-alist) (find-buffer-file-type, find-file-not-found-set-buffer-file-type) (find-file-binary, find-file-text, mode-line-format): - Moved to dos-nt.el. + Move to dos-nt.el. * winnt.el (save-to-unix-hook, revert-from-unix-hook) (using-unix-filesystems): Functions removed. @@ -23110,8 +23110,7 @@ See ChangeLog.6 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 1997-1998, 2001-2014 Free Software Foundation, - Inc. + Copyright (C) 1997-1998, 2001-2014 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.8 b/lisp/ChangeLog.8 index 8a6431f2bac..f10939e946f 100644 --- a/lisp/ChangeLog.8 +++ b/lisp/ChangeLog.8 @@ -3,13 +3,13 @@ * echistory.el (electric-command-history): Call Command-history-setup and command-history-mode using their new conventions. - * chistory.el (Command-history-setup): Don't switch buffers. Take - no args, and do not set major-mode, mode-name or the local map. + * chistory.el (Command-history-setup): Don't switch buffers. + Take no args, and do not set major-mode, mode-name or the local map. (command-history-mode): New function, does some of those things Command-history-setup used to do. (list-command-history): Call command-history-mode, not Command-history-setup. - (command-history): Renamed from command-history-mode. + (command-history): Rename from command-history-mode. 1999-12-31 Richard M. Stallman @@ -91,9 +91,9 @@ 1999-12-27 Jari Aalto - * add-log.el (change-log-version-number-regexp-list): Added tag + * add-log.el (change-log-version-number-regexp-list): Add tag :version 20.6. - (change-log-version-info-enabled): Added tag :version 20.6. + (change-log-version-info-enabled): Add tag :version 20.6. 1999-12-27 Jari Aalto @@ -103,13 +103,13 @@ (change-log-find-version): Rewritten. Use user-configurable version numbering regexp list change-log-version-number-regexp-list. - (change-log-find-version): Renamed to + (change-log-find-version): Rename to change-log-version-number-search. (add-log-file-name-function): New. - (change-log-search-vc-number): Added END parameter. Added doc + (change-log-search-vc-number): Add END parameter. Added doc string to function. - (change-log-version-rcs): Renamed. Was - change-log-search-vc-number. + (change-log-version-rcs): Rename. + Was change-log-search-vc-number. 1999-12-26 Thien-Thi Nguyen @@ -144,7 +144,7 @@ (hs-hide-block, hs-show-block, hs-show-region, hs-hide-level) (hs-mouse-toggle-hiding, hs-minor-mode): Rewrite. - (hs-isearch-show): Renamed from `hs-isearch-open-invisible'. + (hs-isearch-show): Rename from `hs-isearch-open-invisible'. (hs-isearch-show-temporary): New funcs. (hs-show-block-at-point, java-hs-forward-sexp): Delete funcs. @@ -214,9 +214,9 @@ * progmodes/antlr-mode.el: Minor syntax highlighting changes. (antlr-font-lock-default-face): Deletia. - (antlr-font-lock-tokendef-face): Changed color. - (antlr-font-lock-tokenref-face): Changed color. - (antlr-font-lock-literal-face): Changed color. + (antlr-font-lock-tokendef-face): Change color. + (antlr-font-lock-tokenref-face): Change color. + (antlr-font-lock-literal-face): Change color. (antlr-font-lock-additional-keywords): Minor changes. 1999-12-20 Carsten Dominik @@ -351,7 +351,7 @@ (reftex-index-phrases-sort-prefers-entry) (reftex-index-phrases-sort-in-blocks): New options. (reftex-index-macros): Option structure changed. - (reftex-index-macros-builtin): Added `repeat' item to each entry. + (reftex-index-macros-builtin): Add `repeat' item to each entry. (reftex-label-alist): Additional item in each entry to specify if the environment should be listed in the TOC. (eval-when-compile (require 'cl)) added. @@ -415,8 +415,8 @@ Additional argument FORMAT-KEY to preselect a citation format; (eval-when-compile (require 'cl)) added. - * textmodes/reftex-parse.el (reftex-context-substring): Optional - parameter to-end. + * textmodes/reftex-parse.el (reftex-context-substring): + Optional parameter to-end. (reftex-section-info): Deal with environment matches; (eval-when-compile (require 'cl)) added. @@ -440,12 +440,12 @@ (ps-mule-plot-composition): New function. (ps-mule-prepare-font-for-components): New function. (ps-mule-plot-components): New function. - (ps-mule-composition-prologue-generated): Renamed from + (ps-mule-composition-prologue-generated): Rename from ps-mule-cmpchar-prologue-generated. (ps-mule-composition-prologue): New named from ps-mule-cmpchar-prologue. Modified for new composition. (ps-mule-plot-rule-cmpchar, ps-mule-plot-cmpchar) - (ps-mule-prepare-cmpchar-font): Deleted. + (ps-mule-prepare-cmpchar-font): Delete. (ps-mule-string-encoding): New arg NO-SETFONT. (ps-mule-bitmap-prologue): In PostScript code of BuildGlyphCommon, check Composing, not Cmpchar. @@ -463,8 +463,8 @@ * international/fontset.el (vertical-centering-font-regexp): New variable. - * international/mule.el (mule-version): Updated to 5.0 (AOI). - (mule-version-date): Updated to 1999.12.7. + * international/mule.el (mule-version): Update to 5.0 (AOI). + (mule-version-date): Update to 1999.12.7. (with-category-table): New macro. * international/mule-cmds.el (encode-coding-char): Don't check @@ -477,9 +477,9 @@ * international/mule-util.el (set-nested-alist): Set BRANCHES (if non-nil) at the tail of ALIST. (compose-region, decompose-region, decompose-string) - (reference-point-alist, compose-chars): Moved to composite.el. + (reference-point-alist, compose-chars): Move to composite.el. (compose-chars-component, compose-chars-rule, decompose-composite-char): - Deleted. + Delete. * international/quail.el (quail-install-map): New optional arg NAME. (quail-get-translation): If DEF is a symbol but not a function, @@ -513,16 +513,16 @@ * language/thai-util.el (thai-category-table): Make it by make-category-table. (thai-composition-pattern): New variable. - (thai-compose-region, thai-compose-string): Use - with-category-table. + (thai-compose-region, thai-compose-string): + Use with-category-table. (thai-post-read-conversion): Just call thai-compose-region. - (thai-pre-write-conversion): Deleted. + (thai-pre-write-conversion): Delete. (thai-composition-function): New function. * language/tibet-util.el: Most functions rewritten. - (tibetan-char-p): Renamed from tibetan-char-examin. + (tibetan-char-p): Rename from tibetan-char-examin. (tibetan-composable-examin, tibetan-complete-char-examin) - (tibetan-vertical-stacking, tibetan-composition): Deleted. + (tibetan-vertical-stacking, tibetan-composition): Delete. (tibetan-add-components): New function. (tibetan-composition-function): New function. @@ -543,8 +543,8 @@ 1999-12-14 Gerd Moellmann - * international/mule-cmds.el (default-input-method): Specify - that it should be set after current-language-environment. + * international/mule-cmds.el (default-input-method): + Specify that it should be set after current-language-environment. * custom.el (custom-handle-keyword): Add :set-after. (custom-add-dependencies): New function. @@ -556,11 +556,11 @@ * progmodes/cc-make.el: Removed. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * Release of cc-mode 5.26 -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-cmds.el (c-forward-conditional): Handle an arbitrary target depth. Optionally count #else lines as clause limits, @@ -571,35 +571,35 @@ (c-down-conditional-with-else): New commands that uses the added functionality in `c-forward-conditional'. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-align.el (c-lineup-comment): Preserve the alignment with a comment on the previous line instead of preserving the comment-column. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm Fixes to IDL mode after input from Eric Eide : - * cc-engine.el (c-beginning-of-statement-1): Allow - `c-conditional-key' to be nil, for the benefit of IDL mode. + * cc-engine.el (c-beginning-of-statement-1): + Allow `c-conditional-key' to be nil, for the benefit of IDL mode. * cc-engine.el (c-guess-basic-syntax): Ditto. - cc-langs.el (C-IDL-class-key): Fixed. Don't match `class' + cc-langs.el (C-IDL-class-key): Fix. Don't match `class' but do match CORBA 2.3 `valuetype'. * cc-langs.el (c-IDL-access-key): New defconst. Should be nil for IDL. - * cc-langs.el (c-IDL-conditional-key): New defconst. Should - be nil for IDL. + * cc-langs.el (c-IDL-conditional-key): New defconst. + Should be nil for IDL. * cc-langs.el (c-IDL-comment-start-regexp): New defconst. Like C++. * cc-mode.el (idl-mode): Use new `c-IDL-*' defconsts. Also, set `c-method-key' and `c-baseclass-key' to nil. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-menus.el (cc-imenu-c++-generic-expression): Match classes with nonhanging open braces. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-align.el: Added docstrings to all lineup functions. @@ -610,12 +610,12 @@ comments. Use c-comment-prefix-regexp and comment-start-skip instead of hardcoded regexps. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm - * cc-cmds.el (c-beginning-of-defun, c-end-of-defun): Fixed eob + * cc-cmds.el (c-beginning-of-defun, c-end-of-defun): Fix eob behavior and return value as documented. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm Changes for new style variable init system: * cc-langs.el (c-common-init): Dito. @@ -639,12 +639,12 @@ the throws clause that might follow the function prototype in C++. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm - * cc-defs.el (c-beginning-of-macro): Fixed bug where point + * cc-defs.el (c-beginning-of-macro): Fix bug where point could move forward for macros that doesn't start in column 0. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-align.el (c-indent-multi-line-block) (c-lineup-whitesmith-in-block): Two new lineup functions for @@ -654,7 +654,7 @@ style. It should now handle all different braces uniformly in both hanging and non-hanging cases. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-cmds.el (c-indent-exp): Use a marker to save point to make it stay in the same position relative to the surrounding @@ -676,7 +676,7 @@ . Also extended the bsd and whitesmith styles with consistent brace placement for all constructs. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-cmds.el (c-context-line-break): Continue C++ comments too when point is in the middle of them. @@ -702,8 +702,8 @@ `normal-auto-fill-function' to implement the `c-ignore-auto-fill' variable. - * cc-cmds.el (c-beginning-of-statement): Use - `c-comment-prefix-regexp' to avoid ending up inside the + * cc-cmds.el (c-beginning-of-statement): + Use `c-comment-prefix-regexp' to avoid ending up inside the comment prefix. Better handling of comment starters and enders. Catch comments better when traversing code. Stop at preprocessor directives. @@ -711,7 +711,7 @@ * cc-defs.el (c-forward-comment): New subst to hide platform dependent quirks in `forward-comment'. - * cc-engine.el (c-literal-limits): Added NOT-IN-DELIMITER + * cc-engine.el (c-literal-limits): Add NOT-IN-DELIMITER argument. (c-literal-limits-fast): Implemented NEAR and NOT-IN-DELIMITER arguments. Activate this function by default when @@ -722,16 +722,16 @@ arguments. * cc-align.el (c-lineup-C-comments): Fixes to handle the - changed anchor position in the `c' syntactic symbol. Handle - more than stars in the comment prefix; use the new variable + changed anchor position in the `c' syntactic symbol. + Handle more than stars in the comment prefix; use the new variable `c-comment-prefix-regexp'. Don't indent text not preceded by a comment prefix to the right of the comment opener if it's long. * cc-langs.el: Fixes to mode initialization for new line breaking and paragraph filling method. Adaptive fill mode is - now activated at startup instead of deactivated. The - variables used for adaptive filling and paragraph movement are + now activated at startup instead of deactivated. + The variables used for adaptive filling and paragraph movement are also changed to incorporate the value of `c-comment-prefix-regexp'. `substitute-key-definition' is used to override some functions in the global map instead of @@ -741,31 +741,31 @@ javadoc markup at mode init. * cc-mode.el (c-setup-filladapt): A new convenience function - to configure Kyle E. Jones' Filladapt mode for CC Mode. This - function is intended to be used explicitly by the end user + to configure Kyle E. Jones' Filladapt mode for CC Mode. + This function is intended to be used explicitly by the end user only. * cc-vars.el (c-comment-prefix-regexp): New variable used to recognize the comment fill prefix inside comments. (c-block-comment-prefix): New name for - `c-comment-continuation-stars', which is now obsolete. It's - generalized to handle any character sequence. + `c-comment-continuation-stars', which is now obsolete. + It's generalized to handle any character sequence. (c-ignore-auto-fill): New variable used to selectively disable Auto Fill mode in specific contexts. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-cmds.el (c-comment-indent): Leave at least one space between the comment and the last nonblank character in the case where we look at the indentation of the comment on the previous line (case 4). - * cc-engine.el (c-beginning-of-statement-1): Added ``' to the + * cc-engine.el (c-beginning-of-statement-1): Add ``' to the list of characters that may start a statement (it's a sort of prefix operator in Pike, and isn't used at all in any of the other languages). -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-engine.el (c-guess-basic-syntax): Report brace list opens inside continued statements as statement-cont instead of @@ -775,12 +775,12 @@ context. Case 10B.2 changed. Also changed (the somewhat esoteric) case 9A to cope with this. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm - * cc-cmds.el (c-electric-brace): Added electric handling of + * cc-cmds.el (c-electric-brace): Add electric handling of the open brace for brace-elseif-brace. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-defs.el (c-with-syntax-table): New macro to easily switch syntax tables temporarily. @@ -789,26 +789,26 @@ member init argument lists split over several lines. Case 5D changed. - * cc-langs.el (c-Java-javadoc-paragraph-start): Added new tag + * cc-langs.el (c-Java-javadoc-paragraph-start): Add new tag @throws introduced in Javadoc 1.2. - * cc-menus.el (cc-imenu-java-generic-expression): Applied - patch from RMS to avoid infinite backtracking. + * cc-menus.el (cc-imenu-java-generic-expression): + Applied patch from RMS to avoid infinite backtracking. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-align.el (c-lineup-arglist): Handle "arglists" surrounded by [ ]. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-align.el (c-lineup-dont-change): Compensate properly for the column in langelem. - * cc-engine.el (c-syntactic-information-on-region): New - function to help debugging the syntactic analysis. + * cc-engine.el (c-syntactic-information-on-region): + New function to help debugging the syntactic analysis. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-align.el (c-lineup-template-args): Handle nested template arglists. @@ -824,18 +824,18 @@ * cc-styles.el (c-offsets-alist): Use `c-lineup-template-args' by default. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-engine.el (c-guess-basic-syntax): Pike allows a comma immediately before the closing paren in an arglist, so don't check that in Pike mode. Case 7A changed. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm - * cc-cmds.el (c-indent-region): Fixed bug where comment-only + * cc-cmds.el (c-indent-region): Fix bug where comment-only lines were ignored under certain conditions. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-align.el (c-lineup-template-args): New function for aligning continued template argument lists. @@ -844,68 +844,68 @@ lists containing function arglists split over several lines. Case 5D.1 changed. - * cc-engine.el (c-guess-basic-syntax): Fixed bug where + * cc-engine.el (c-guess-basic-syntax): Fix bug where template-args-cont didn't get recognized when the first - arglist opener line doesn't contain a template argument. New - case 5K. + arglist opener line doesn't contain a template argument. + New case 5K. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm - * cc-defs.el (c-point): Changed from subst to macro for + * cc-defs.el (c-point): Change from subst to macro for efficiency. - (c-beginning-of-defun-1, c-end-of-defun-1): New - beginning-of-defun/end-of-defun wrappers separated from + (c-beginning-of-defun-1, c-end-of-defun-1): + New beginning-of-defun/end-of-defun wrappers separated from c-point. * cc-menus.el (imenu-generic-expression) - (imenu-case-fold-search, imenu-progress-message): Dummy - definitions to avoid compiler warnings if imenu can't be + (imenu-case-fold-search, imenu-progress-message): + Dummy definitions to avoid compiler warnings if imenu can't be loaded. * cc-menus.el (cc-imenu-init): New function called at mode init. - * cc-mode.el (c-mode, c++-mode, objc-mode, java-mode): Moved - imenu initializations to cc-imenu-init. + * cc-mode.el (c-mode, c++-mode, objc-mode, java-mode): + Move imenu initializations to cc-imenu-init. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-engine.el (c-guess-basic-syntax): Slightly better check for lambda-intro-cont in Pike mode. Case 6 changed. - * cc-engine.el (c-looking-at-inexpr-block): Fixed bug where + * cc-engine.el (c-looking-at-inexpr-block): Fix bug where anything following "new Foo()" was considered an anonymous class body in Java mode. -1999-12-12 Barry A. Warsaw +1999-12-12 Barry A. Warsaw * cc-cmds.el (c-comment-line-break-function): When breaking in a string, don't insert a new line. -1999-12-12 Barry A. Warsaw +1999-12-12 Barry A. Warsaw * cc-engine.el (c-at-toplevel-p): New interface function which returns information useful to add-on authors. It tells you whether you're at a toplevel statement or not. -1999-12-12 Barry A. Warsaw +1999-12-12 Barry A. Warsaw * cc-cmds.el (c-comment-line-break-function): It is possible that forward-line does not land us at the bol, say if we're on the last line in a file. In that case, do a back-to-indentation instead of a forward-comment -1. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-engine.el (c-beginning-of-statement-1): Don't catch "default:" as normal label in case 4. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-engine.el (c-guess-basic-syntax): Use c-bitfield-key to recognize continued bitfield declarations. Case 5D.1 changed. * cc-langs.el: New variable c-bitfield-key. * cc-mode.el: New variable c-bitfield-key. -1999-12-12 Martin Stjernholm +1999-12-12 Martin Stjernholm * cc-engine.el (c-inside-bracelist-p): Tighter test for Java anonymous array expressions (i.e. "new Foo[] {.. bracelist @@ -917,8 +917,8 @@ keymap and minor-mode-alist stuff. Don't set zmacs-region-stays. (footnote-insert-text-marker, Footnote-insert-pointer-marker): Avoid `acons'. - (footnote-mode-line-string, Footnote-add-footnote): Remove - autoload cookie. + (footnote-mode-line-string, Footnote-add-footnote): + Remove autoload cookie. 1999-12-12 Richard Sharman @@ -967,8 +967,8 @@ * files.el (after-find-file): Use auto-save-visited-file-name if set. - * mail/feedmail.el (feedmail-find-eoh): Take - feedmail-queue-alternative-mail-header-separator into account. + * mail/feedmail.el (feedmail-find-eoh): + Take feedmail-queue-alternative-mail-header-separator into account. 1999-12-09 Stefan Monnier @@ -976,7 +976,7 @@ * font-lock.el (font-lock-multiline): New variable. (font-lock-add-keywords): Rename `major-mode' into `mode'. - (font-lock-remove-keywords): Added a dummy `mode' argument for + (font-lock-remove-keywords): Add a dummy `mode' argument for potential future support. (font-lock-fontify-anchored-keywords) (font-lock-fontify-keywords-region): Only handle multiline strings @@ -1059,8 +1059,8 @@ (x-defined-colors, face-color-supported-p, face-color-gray-p): Remove. - * facemenu.el (facemenu-read-color, list-colors-display): Use - defined-colors for all frame types. + * facemenu.el (facemenu-read-color, list-colors-display): + Use defined-colors for all frame types. (facemenu-color-equal): Use color-values for all frame types. * faces.el (read-face-attribute): For :foreground and :background @@ -1078,7 +1078,7 @@ types other than x and w32, but only if the terminal supports colors. Call tty-color-define instead of face-register-tty-color. - * term/x-win.el (xw-defined-colors): Renamed from + * term/x-win.el (xw-defined-colors): Rename from x-defined-colors. * term/w32-win.el (xw-defined-colors): Likewise. @@ -1091,7 +1091,7 @@ 1999-12-06 Inge Frick - * dired-aux.el (dired-do-shell-command): Changed documentation. + * dired-aux.el (dired-do-shell-command): Change documentation. (dired-shell-stuff-it): A `?' in COMMAND has now the same meaning as `*'. @@ -1103,11 +1103,11 @@ 1999-12-06 Sam Steingold - * progmodes/etags.el (etags-tags-completion-table): Modified the + * progmodes/etags.el (etags-tags-completion-table): Modify the regexp to allow for the CL symbols starting with `+*'. (tags-completion-table): Doc fix (it's an obarray, not an alist). - (tags-completion-table, tags-recognize-empty-tags-table): Remove - `function' quoting lambda. + (tags-completion-table, tags-recognize-empty-tags-table): + Remove `function' quoting lambda. (tags-with-face): New macro. (list-tags, tags-apropos): Use it. (tags-apropos-additional-actions): New user option. @@ -1116,31 +1116,31 @@ (tags-apropos-verbose): New user option. (etags-tags-apropos): Use it. (visit-tags-table-buffer, next-file): Use `unless'. - (recognize-empty-tags-table): Renamed to + (recognize-empty-tags-table): Rename to tags-recognize-empty-tags-table. (complete-tag): Call tags-complete-tag bypassing try-completion. 1999-12-06 Kenichi Handa - * international/mule.el (set-buffer-file-coding-system): Docstring - modified. + * international/mule.el (set-buffer-file-coding-system): + Docstring modified. 1999-12-05 Dirk Herrmann - * textmodes/bibtex.el (bibtex-hs-forward-sexp): Added to support + * textmodes/bibtex.el (bibtex-hs-forward-sexp): Add to support using the hideshow package. - (hs-special-modes-alist): Added entry for bibtex to allow the use + (hs-special-modes-alist): Add entry for bibtex to allow the use of the hideshow package. - (bibtex-hide-entry-bodies): Deleted as hiding of entry bodies is + (bibtex-hide-entry-bodies): Delete as hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package should be used. - (bibtex-mode-map, bibtex-edit-menu, bibtex-mode): Delete - references to bibtex-hide-entry-bodies. + (bibtex-mode-map, bibtex-edit-menu, bibtex-mode): + Delete references to bibtex-hide-entry-bodies. 1999-12-05 Dirk Herrmann - * textmodes/bibtex.el: Copyright notice is up to date. Moved - maintainer information closer to the beginning of the bibtex.el + * textmodes/bibtex.el: Copyright notice is up to date. + Moved maintainer information closer to the beginning of the bibtex.el file. (bibtex-maintainer-salutation): New constant. (bibtex-version): New constant. @@ -1148,16 +1148,16 @@ bibtex-maintainer-salutation. (bibtex-entry-field-alist): Made booktitle field optional for @inproceedings entries when crossreferenced. - (bibtex-entry-field-alist): Added booktitle field to proceedings + (bibtex-entry-field-alist): Add booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. - (bibtex-string-file-path): Fixed typo. + (bibtex-string-file-path): Fix typo. 1999-12-05 Carsten Dominik * textmodes/bibtex.el (bibtex-mode-map): Reserved the key `C-c &' for reftex.el. - (bibtex-edit-menu): Added `reftex-view-crossref-from-bibtex' to menu. + (bibtex-edit-menu): Add `reftex-view-crossref-from-bibtex' to menu. 1999-12-04 Dave Love @@ -1166,14 +1166,14 @@ 1999-12-04 Michael Kifer - * viper-cmd.el (viper-change-state): Use - viper-ESC-moves-cursor-back to decide whether to move the cursor + * viper-cmd.el (viper-change-state): + Use viper-ESC-moves-cursor-back to decide whether to move the cursor back. 1999-12-03 Kenichi Handa - * international/mule-util.el (truncate-string-to-width): Docstring - fixed. + * international/mule-util.el (truncate-string-to-width): + Docstring fixed. 1999-12-02 Stefan Monnier @@ -1200,8 +1200,8 @@ * vc.el (vc-update-change-log): Look for rcs2log under exec-directory. - * emacs-lisp/lisp-mode.el (lisp-mode-variables): Change - outline-regexp, add outline-level. + * emacs-lisp/lisp-mode.el (lisp-mode-variables): + Change outline-regexp, add outline-level. (lisp-outline-level): New. * calendar/appt.el (appt-convert-time): Handle "12:MMam", @@ -1284,8 +1284,8 @@ * cus-start.el: Add use-dialog-box. * add-log.el (change-log-mode-hook): Customize. - (add-log-current-defun): Use - fortran-{beginning,end}-of-subprogram. + (add-log-current-defun): + Use fortran-{beginning,end}-of-subprogram. 1999-11-26 Richard M. Stallman @@ -1330,10 +1330,10 @@ * ediff-merge.el (ediff-looks-like-combined-merge) (ediff-get-combined-region): - Changed to support the new format for ediff-combination-pattern. + Change to support the new format for ediff-combination-pattern. * ediff-diff.el (ediff-set-fine-overlays-in-one-buffer): - Changed to support the new format for ediff-combination-pattern. + Change to support the new format for ediff-combination-pattern. 1999-11-24 Dave Love @@ -1368,8 +1368,8 @@ imenu-generic-expression. * sql.el (sql-mode): Use ?_ and ?. instead of 95 and 46 when - setting font-lock-defaults' SYNTAX-ALIST. Set - imenu-generic-expression, imenu-case-fold-search, and + setting font-lock-defaults' SYNTAX-ALIST. + Set imenu-generic-expression, imenu-case-fold-search, and imenu-syntax-alist. * sql.el (sql-interactive-mode): Use ?_ and ?. instead of 95 @@ -1389,30 +1389,30 @@ 1999-11-23 Dave Love - * progmodes/fortran.el (fortran-comment-line-start): Renamed from + * progmodes/fortran.el (fortran-comment-line-start): Rename from comment-line-start. - (fortran-comment-line-start-skip): Renamed from + (fortran-comment-line-start-skip): Rename from comment-line-start-skip. (fortran-mode-map): Use renamed functions. Add manual and custom entries to menu. (fortran-mode-hook): Customize. - (fortran-comment-indent-function): Renamed from + (fortran-comment-indent-function): Rename from fortran-comment-hook. (delete-horizontal-regexp): Function deleted. - (fortran-electric-line-number): Simplified. - (fortran-beginning-of-subprogram): Renamed from + (fortran-electric-line-number): Simplify. + (fortran-beginning-of-subprogram): Rename from beginning-of-fortran-subprogram. - (fortran-end-of-subprogram): Renamed from + (fortran-end-of-subprogram): Rename from end-of-fortran-subprogram. - (fortran-mark-subprogram): Renamed from mark-fortran-subprogram. - (fortran-previous-statement, fortran-next-statement): Simplified. + (fortran-mark-subprogram): Rename from mark-fortran-subprogram. + (fortran-previous-statement, fortran-next-statement): Simplify. (fortran-blink-match): New function. (fortran-blink-matching-if, fortran-blink-matching-do): Use it. (fortran-indent-to-column): Don't use delete-horizontal-regexp. - (fortran-find-comment-start-skip, fortran-is-in-string-p): Use - line-end-position. + (fortran-find-comment-start-skip, fortran-is-in-string-p): + Use line-end-position. (fortran-fill): No longer interactive. Simplified. - (fortran-break-line): Simplified. + (fortran-break-line): Simplify. (fortran-analyze-file-format): Use char-after, not looking-at. * emacs-lisp/find-func.el (find-function-regexp): @@ -1432,7 +1432,7 @@ * emacs-lisp/easy-mmode.el: Changed maintainer. (easy-mmode-define-toggle): New BODY arg; Never append `-mode'; Use defcustom for the hooks; Improve the auto-generated docstrings. - (easy-mmode-define-minor-mode): Renamed `define-minor-mode'. + (easy-mmode-define-minor-mode): Rename `define-minor-mode'. (define-minor-mode): Add BODY arg; Only declare the keymap if provided; Improve the auto-generated docstrings. @@ -1498,8 +1498,8 @@ * speedbar.el: Clean up comment at the start of the file. Remove RCS id. - * progmodes/compile.el (compilation-parse-errors): Use - compilation-buffer-p instead of testing major-mode. + * progmodes/compile.el (compilation-parse-errors): + Use compilation-buffer-p instead of testing major-mode. 1999-11-18 Dave Pearson @@ -1546,9 +1546,9 @@ * goto-addr.el (goto-address-at-mouse) (goto-address-find-address-at-point): Use compose-mail. - (goto-address-mail-method): Removed variable. + (goto-address-mail-method): Remove variable. (goto-address-send-using-mh-e, goto-address-send-using-mhe) - (goto-address-send-using-mail): Removed functions. + (goto-address-send-using-mail): Remove functions. 1998-11-15 Sam Steingold @@ -1583,7 +1583,7 @@ 1999-11-14 Alex Schroeder - * ansi-color.el (ansi-color-apply): Updated regexps to include + * ansi-color.el (ansi-color-apply): Update regexps to include highlighted face. 1999-01-14 Johan Vromans @@ -1599,11 +1599,11 @@ 1999-11-13 Peter Breton - * net-utils.el (run-network-program, net-utils-run-program): Use - the new backquote syntax. + * net-utils.el (run-network-program, net-utils-run-program): + Use the new backquote syntax. (smbclient-program, smbclient-program-options) - (smbclient-prompt-regexp, smbclient-font-lock-keywords): New - variables. + (smbclient-prompt-regexp, smbclient-font-lock-keywords): + New variables. (smbclient, smbclient-list-shares): New functions 1999-11-12 Sam Steingold @@ -1638,7 +1638,7 @@ 1999-11-12 Peter Kleiweg - * progmodes/ps-mode.el (ps-mode-submit-bug-report): Added list + * progmodes/ps-mode.el (ps-mode-submit-bug-report): Add list of customizable variables to bug report message. Added system-type to package name in bug report. @@ -1655,8 +1655,8 @@ 1999-11-10 Peter Kleiweg - * progmodes/ps-mode.el (ps-mode-maintainer-address): New - constant. + * progmodes/ps-mode.el (ps-mode-maintainer-address): + New constant. (ps-mode-submit-bug-report): New function. Entry added to menu. 1999-11-10 William M. Perry @@ -1685,7 +1685,7 @@ 1999-11-08 Peter Kleiweg - * progmodes/ps-mode.el (ps-mode-print-function): Changed default + * progmodes/ps-mode.el (ps-mode-print-function): Change default lpr-command to "lp" for some system-types. (copied from lpr.el Emacs version 20.2.1). @@ -1727,8 +1727,8 @@ * isearch.el (isearch-complete-edit, isearch-ring-advance-edit): Use erase-field instead of erase-buffer. - * frame.el (blink-cursor-mode, blink-cursor-end): Use - internal-show-cursor with new interface. + * frame.el (blink-cursor-mode, blink-cursor-end): + Use internal-show-cursor with new interface. (blink-cursor-timer-function): New. (blink-cursor-start): Use blink-cursor-timer-function. @@ -1760,8 +1760,8 @@ 1999-11-01 Markus Rost - * dired-x.el (dired-smart-shell-command): Use - shell-command-history as in shell-command. + * dired-x.el (dired-smart-shell-command): + Use shell-command-history as in shell-command. 1999-11-01 Richard M. Stallman @@ -1775,7 +1775,7 @@ of show-cursor. (blink-cursor-start, blink-cursor-end): Ditto. - * textmodes/tex-mode.el (tex-default-mode): Changed to latex-mode. + * textmodes/tex-mode.el (tex-default-mode): Change to latex-mode. 1999-11-01 Richard M. Stallman @@ -1792,7 +1792,7 @@ * ediff.el: Version change. - * ediff-util.el (ediff-cleanup-mess): Fixed the case of dead windows. + * ediff-util.el (ediff-cleanup-mess): Fix the case of dead windows. make sure you are in a good frame before deleting other windows. (ediff-file-checked-in-p): Don't consider CVS @@ -1816,10 +1816,10 @@ * viper-keym.el: Fixed calls to viper-ex, change key C-c g to C-c C-g. - * viper-util.el (viper-nontrivial-find-file-function): Deleted. + * viper-util.el (viper-nontrivial-find-file-function): Delete. (viper-glob-unix-files, viper-glob-mswindows-files): New functions. (viper-save-cursor-color, viper-restore-cursor-color): - Improved cursor color handling. + Improve cursor color handling. (viper-get-saved-cursor-color-in-replace-mode) (viper-get-saved-cursor-color-in-insert-mode): New functions for better cursor color handling. @@ -1874,7 +1874,7 @@ `whitespace-check-' to nil. (whitespace-unchecked-whitespaces): New function to return the list of whitespaces for whom checks have been suppressed. - (whitespace-display-unchecked-whitespaces): Renamed to + (whitespace-display-unchecked-whitespaces): Rename to `whitespace-update-modeline' to reflect its functionality. 1999-10-30 Gerd Moellmann @@ -1895,8 +1895,8 @@ * progmodes/ada-stmt.el, progmodes/ada-xref.el: Doc-string and comment fixes. - * progmodes/compile.el (compilation-error-regexp-alist): Recognize - MIPS Pro 7.3 compiler error message syntax. + * progmodes/compile.el (compilation-error-regexp-alist): + Recognize MIPS Pro 7.3 compiler error message syntax. 1999-10-27 Dave Love @@ -1909,7 +1909,7 @@ 1999-10-27 Dave Love * emacs-lisp/advice.el: Doc fixes. - (ad-lemacs-p): Removed. + (ad-lemacs-p): Remove. (advice): Add :link to defgroup. 1999-10-27 Kenichi Handa @@ -1924,11 +1924,11 @@ 1999-10-27 Richard M. Stallman - * emacs-lisp/advice.el (ad-activate-internal): Renamed from + * emacs-lisp/advice.el (ad-activate-internal): Rename from ad-activate. All callers changed, including those in data.c. - (ad-activate-internal-off): Renamed from ad-activate-off. + (ad-activate-internal-off): Rename from ad-activate-off. All uses changed. - (ad-activate): Renamed from ad-activate-on. All uses changed. + (ad-activate): Rename from ad-activate-on. All uses changed. (ad-start-advice, ad-stop-advice, ad-recover-normality): Alter the definition of ad-activate-internal, not ad-activate. @@ -1951,7 +1951,7 @@ 1999-10-25 Sam Steingold - * Makefile (compile-files): Fixed the "tr" strings. + * Makefile (compile-files): Fix the "tr" strings. (EMACS): Set to ../src/emacs. 1999-10-25 Gerd Moellmann @@ -2037,10 +2037,10 @@ * ps-print-def.el: New file: common definitions for all parts of ps-print. - (ps-multibyte-buffer): Moved from ps-mule. + (ps-multibyte-buffer): Move from ps-mule. * ps-mule.el: File dependence fix. - (ps-multibyte-buffer): Moved to ps-print-def. + (ps-multibyte-buffer): Move to ps-print-def. * ps-print.el: Doc fix, better customization. (ps-print-region-function, ps-number-of-columns, ps-spool-tumble) @@ -2070,7 +2070,7 @@ * ps-print.el: Doc fix, n-up printing. (ps-print-version): New version number (5.0). - (ps-page-dimensions-database): Added document media. + (ps-page-dimensions-database): Add document media. (ps-n-up-printing, ps-n-up-margin, ps-n-up-border-p, ps-n-up-filling) (ps-page-order, ps-printing-region-p): New vars. (ps-n-up-printing, ps-n-up-filling, ps-header-sheet, ps-end-job): @@ -2085,8 +2085,8 @@ (ps-setup, ps-begin-file, ps-get-buffer-name, ps-begin-job) (ps-end-file, ps-dummy-page, ps-generate): Fix funs. (ps-print-prologue-1): Adjust PostScript programming for n-up printing. - (ps-count-lines): Changed to defun. - (ps-header-page): Changed to defsubst, fix fun. + (ps-count-lines): Change to defun. + (ps-header-page): Change to defsubst, fix fun. (ps-printing-region): Doc fix, adjust programming code. (ps-output-boolean, ps-background-pages, ps-background-text) (ps-background-image, ps-background, ps-get-boundingbox): @@ -2097,9 +2097,9 @@ * ps-print.el: Doc fix, duplex and setpagedevice configuration. (ps-print-version): New version number (4.2). (ps-spool-config, ps-spool-tumble): New vars. - (ps-print-prologue-1): Changed to defconst, adjust PostScript + (ps-print-prologue-1): Change to defconst, adjust PostScript programming, new PostScript procedure to handle errors. - (ps-print-prologue-2): Changed to defconst. + (ps-print-prologue-2): Change to defconst. (ps-print-duplex-feature): New const: duplex and tumble setting. (ps-setup, ps-begin-file): Fix funs. (ps-boolean-capitalized): New fun. @@ -2107,9 +2107,9 @@ 1999-10-19 Stefan Monnier * Makefile (dontcompilefiles): Obsoleted. - (DONTCOMPILE): Added emacs-lisp/cl-specs.el. + (DONTCOMPILE): Add emacs-lisp/cl-specs.el. (EL): Unused. - (temacs): Removed (unused). + (temacs): Remove (unused). (cus-load.el, finder-inf.el, loaddefs.el): New targets to build a dummy version of the file (necessary for the update to work properly). (autoloads): Force the use of `pwd`/loaddefs.el. @@ -2139,18 +2139,18 @@ value: \"lpr\" changed to "lpr". (ps-mode-version): New constant. (ps-mode-show-version): New function, added key in ps-mode-map. - (ps-run-messages): Removed. + (ps-run-messages): Remove. (ps-run-font-lock-keywords-2): New defcustom variable replacing ps-run-messages. These keywords now include the value of ps-run-prompt, making its fontification customizable. - (ps-run-init): Removed \\n from docstring, it is now added when + (ps-run-init): Remove \\n from docstring, it is now added when the value is used. - (ps-run-font-lock-keywords-1): Added checking for initial ^ in + (ps-run-font-lock-keywords-1): Add checking for initial ^ in ps-run-prompt. - (ps-mode): Added ps-run-font-lock-keywords-2 to list of + (ps-mode): Add ps-run-font-lock-keywords-2 to list of customizable variables in doc-string (its equivalent ps-run-messages was missing in previous version of the doc-string). - (ps-run-mode): Simplified assignment to font-lock-defaults, using + (ps-run-mode): Simplify assignment to font-lock-defaults, using symbols only. 1999-10-19 Alex Schroeder @@ -2177,7 +2177,7 @@ (set-display-table-and-terminal-coding-system): New function, containing code migrated out of set-language-environment. (set-language-environment, set-locale-environment): Use it. - (locale-translation-file-name): Moved here from startup.el. + (locale-translation-file-name): Move here from startup.el. (locale-language-names, locale-preferred-coding-systems): New vars. (locale-name-match, set-locale-environment): New functions. @@ -2253,7 +2253,7 @@ 1999-10-17 Sam Steingold - * bindings.el (completion-ignored-extensions): Added ".sparcf" + * bindings.el (completion-ignored-extensions): Add ".sparcf" for CMUCL on sparc and ".ufsl" for LispWorks. (bound-and-true-p): Bugfix: free variable `v'. @@ -2342,8 +2342,8 @@ 1999-10-12 Stefan Monnier - * simple.el (shell-command, shell-command-on-region): Use - make-temp-file. + * simple.el (shell-command, shell-command-on-region): + Use make-temp-file. (clone-buffer, clone-process, clone-buffer-hook): New functions. * subr.el (with-current-buffer): Don't use backquotes to avoid @@ -2369,16 +2369,16 @@ 1999-10-12 Richard Sharman * sh-script.el: Added support for indenting existing scripts. - (sh-mode-map): Added new bindings. - (sh-mode): Updated mode doc-string for new commands, added + (sh-mode-map): Add new bindings. + (sh-mode): Update mode doc-string for new commands, added make-local-variable calls, initialize mode-specific variables. - (sh-indent-line): Renamed to sh-basic-indent-line; sh-indent-line + (sh-indent-line): Rename to sh-basic-indent-line; sh-indent-line is now a different function. - (sh-header-marker): Changed docstring. + (sh-header-marker): Change docstring. (sh-set-shell): Initialize mode-specific variables. (sh-case, sh-for, sh-if, sh-indexed-loop, sh-repeat, sh-select) (sh-tmp-file, sh-until, sh-until, sh-while, sh-while-getopts): - Changed these define-skeleton calls to work with user-specified + Change these define-skeleton calls to work with user-specified indentation settings. (sh-basic-indent-line, sh-blink, sh-calculate-indent) (sh-check-paren-in-case, sh-check-rule, sh-do-nothing) @@ -2602,9 +2602,9 @@ (isearch-yank-x-selection, isearch-ring-advance-edit): Doc fix. (isearch-ring-retreat-edit): Doc fix. (isearch-mouse-yank): New command. - (isearch-last-command-char): Removed. Callers changed to use + (isearch-last-command-char): Remove. Callers changed to use last-command-char. - (isearch-char-to-string): Removed. Callers changed to use + (isearch-char-to-string): Remove. Callers changed to use char-to-string. 1999-09-26 Oleg S. Tihonov @@ -2652,7 +2652,7 @@ * textmodes/reftex-parse.el (reftex-parse-from-file): Scan for multiple thebibliography environments. - * textmodes/reftex-cite.el (reftex-pop-to-bibtex-entry): Fixed bug + * textmodes/reftex-cite.el (reftex-pop-to-bibtex-entry): Fix bug with recentering window. (reftex-extract-bib-entries-from-thebibliography) (reftex-offer-bib-menu, reftex-bibtex-selection-callback): @@ -2749,7 +2749,7 @@ `copy-file'. (dired-copy-file-recursive): New function. Copy directories recursively. - (dired-do-create-files): Added support for generalized directory + (dired-do-create-files): Add support for generalized directory target. How-to function may now return a function. New fluid variable `dired-one-file'. (dired-copy-how-to-fn): New variable. @@ -2770,8 +2770,8 @@ * whitespace.el (whitespace-modes): Add `change-log-mode' to the list of modes to be checked for bogus whitespaces. - * whitespace.el (whitespace-rescan-timer-time): Update - documentation. + * whitespace.el (whitespace-rescan-timer-time): + Update documentation. * whitespace.el (whitespace-display-unchecked-whitespaces): New function to update modeline with untested whitespaces. @@ -2816,8 +2816,8 @@ (widget-button-pressed-face): New variable. (widget-button-click): Use it. (widget-documentation-link-add): Specify mouse and button faces. - (widget-echo-help-mouse, widget-stop-mouse-tracking): Functions - removed now the functionality is built in. + (widget-echo-help-mouse, widget-stop-mouse-tracking): + Functions removed now the functionality is built in. * cus-edit.el: Don't define-widget-keywords. (multimedia): New group. @@ -2842,8 +2842,8 @@ (custom-variable-set, custom-variable-save, custom-face-state-set) (custom-variable-reset-saved, custom-variable-reset-standard) (custom-face-set, custom-face-save, custom-face-reset-saved) - (custom-face-reset-standard, customize-save-customized): Handle - custom comments. + (custom-face-reset-standard, customize-save-customized): + Handle custom comments. (custom-comment-face, custom-comment-tag-face): New face. (custom-comment): New widget. (custom-comment-create, custom-comment-delete) @@ -2936,8 +2936,8 @@ * emacs-lisp/byte-opt.el (byte-optimize-backward-char): (byte-optimize-backward-word): New optimizations. - (side-effect-free-fns, side-effect-and-error-free-fns): Add - entries. + (side-effect-free-fns, side-effect-and-error-free-fns): + Add entries. 1999-09-09 Gerd Moellmann @@ -2973,7 +2973,7 @@ 1999-09-08 Peter Breton - * generic-x.el (generic-define-unix-modes): Added new modes: + * generic-x.el (generic-define-unix-modes): Add new modes: inetd-conf-generic-mode, etc-services-generic-mode, etc-passwd-generic-mode. These are all defined for Unix by default. (apache-generic-mode): Use an imenu-generic-expression to list @@ -2985,11 +2985,11 @@ font-lock-defaults setting. (java-properties-generic-mode): Supports both ! and # as comment characters. - (java-properties-generic-mode): Added an imenu-generic-expression. - (java-properties-generic-mode): Reworked to support the various + (java-properties-generic-mode): Add an imenu-generic-expression. + (java-properties-generic-mode): Rework to support the various different ways to separate name and value (viz, '=', ':' and whitespace). - (show-tabs-generic-mode): Added this new generic-mode. + (show-tabs-generic-mode): Add this new generic-mode. 1999-09-08 Richard Stallman @@ -3059,7 +3059,7 @@ 1999-09-07 Dave Pearson - * quickurl.el (quickurl-list-focused-line): Removed. + * quickurl.el (quickurl-list-focused-line): Remove. (quickurl-list-insert): Now works out the focused line using `count-lines' instead of using `quickurl-list-focused-line'. @@ -3072,7 +3072,7 @@ * isearch.el (isearch-mode-map): Add mouse-2. - * mail/rmail.el (rmail-read-password): Deleted. + * mail/rmail.el (rmail-read-password): Delete. (rmail-get-pop-password): Use read-password. * quickurl.el: Don't conditionally define caddr. @@ -3085,8 +3085,8 @@ 1999-09-06 Stephen Eglen - * progmodes/octave-inf.el (inferior-octave-startup-args): Add - --no-line-editing so that TABs in source files are not interpreted + * progmodes/octave-inf.el (inferior-octave-startup-args): + Add --no-line-editing so that TABs in source files are not interpreted as completion requests. 1999-09-06 Gerd Moellmann @@ -3112,7 +3112,7 @@ 1999-09-06 Dave Love - * emacs-lisp/byte-opt.el (byte-boolean-vars): Removed. (Now primitive.) + * emacs-lisp/byte-opt.el (byte-boolean-vars): Remove. (Now primitive.) 1999-09-05 Richard Stallman @@ -3128,7 +3128,7 @@ 1999-09-05 Gerd Moellmann - * faces.el (header-line): Renamed from `top-line'. + * faces.el (header-line): Rename from `top-line'. 1999-09-05 Gerd Moellmann @@ -3183,20 +3183,20 @@ * startup.el (command-line): Compute the value of small-temporary-file-directory. - * ediff-init.el (ediff-temp-file-prefix): Use - small-temporary-file-directory if non-nil. + * ediff-init.el (ediff-temp-file-prefix): + Use small-temporary-file-directory if non-nil. * vc.el (vc-update-change-log): Likewise. * progmodes/cmacexp.el (c-macro-expansion): Likewise. - * simple.el (shell-command, shell-command-on-region): Use - make-temp-name properly. Use small-temporary-file-directory if + * simple.el (shell-command, shell-command-on-region): + Use make-temp-name properly. Use small-temporary-file-directory if non-nil, otherwise temporary-file-directory, to generate temporary files. - * dos-w32.el (direct-print-region-helper): Use - temporary-file-directory. (From Stefan Monnier.) + * dos-w32.el (direct-print-region-helper): + Use temporary-file-directory. (From Stefan Monnier.) 1999-09-02 Richard Stallman @@ -3237,8 +3237,8 @@ * progmodes/compile.el (compilation-error-regexp-alist): New item for SGI IRIX MipsPro compilers. - * speedbar.el (speedbar-directory-buttons): Recognize - device names when checking for file names. + * speedbar.el (speedbar-directory-buttons): + Recognize device names when checking for file names. * array.el (array-reconfigure-rows): Use generate-new-buffer. @@ -3271,8 +3271,8 @@ * comint.el (comint-input-ring-separator): New variable. (comint-read-input-ring): Doc change; use comint-input-ring-separator when reading file. - (comint-write-input-ring): Use - comint-input-ring-separator when writing file. + (comint-write-input-ring): + Use comint-input-ring-separator when writing file. 1999-08-29 Marc Girod @@ -3306,8 +3306,8 @@ * calendar/cal-move.el: Call the new hook in every movement function. - * calendar/calendar.el (calendar-goto-astro-day-number): Autoload - the right function name. + * calendar/calendar.el (calendar-goto-astro-day-number): + Autoload the right function name. 1999-08-26 Stephen Gildea @@ -3316,7 +3316,7 @@ (time-stamp): Support multi-line patterns. (time-stamp-inserts-lines): New variable. (time-stamp-count): New variable. - (time-stamp-string-preprocess): Fixed bug where "%%a" becomes + (time-stamp-string-preprocess): Fix bug where "%%a" becomes "Thu" instead of "%a". 1999-08-25 Gerd Moellmann @@ -3338,7 +3338,7 @@ 1999-08-24 Gerd Moellmann - * faces.el (margin): Renamed from bitmap-area. + * faces.el (margin): Rename from bitmap-area. 1999-08-24 Alex Schroeder @@ -3423,8 +3423,8 @@ 1999-08-16 Karl Heuer - * subr.el (assoc-ignore-case, assoc-ignore-representation): Moved - here from simple.el. + * subr.el (assoc-ignore-case, assoc-ignore-representation): + Move here from simple.el. 1999-08-16 Dave Love @@ -3461,17 +3461,17 @@ 1999-08-16 Carsten Dominik - * textmodes/reftex.el (reftex-pop-to-bibtex-entry): Fixed - conflict with pop-up-frames. + * textmodes/reftex.el (reftex-pop-to-bibtex-entry): + Fix conflict with pop-up-frames. (reftex-special-environment-parsers): New constant. (reftex-label-alist): car of an entry can also be a function. (reftex-what-special-env): Cew function. (reftex-label-location): Call `reftex-what-special-env'. (reftex-compile-variables): Check for symbol in `reftex-label-alist'. - (reftex-what-environment): Fixed bug with stacked environments of + (reftex-what-environment): Fix bug with stacked environments of same kind (e.g. enumerate). (reftex-process-string): Preserve default directory. - (reftex-label-alist-builtin): Changed prefixes of endnote and footnote. + (reftex-label-alist-builtin): Change prefixes of endnote and footnote. Also the magic words. (reftex-reference): Interpret new option `reftex-fref-is-default'. (reftex-replace-prefix-escapes): Interpret new `%S' format. @@ -3486,7 +3486,7 @@ boundaries has been moved to `F'. (reftex-select-label-map): Toggling display of file boundaries is now on the `F' key, for consistency with `reftex-toc-map'. - (reftex-erase-all-selection-and-index-buffers): Renamed from + (reftex-erase-all-selection-and-index-buffers): Rename from `reftex-erase-all-selection-buffer'. Now also kills the index buffers. (reftex-viewing-cross-references): Customization group renamed @@ -3604,7 +3604,7 @@ be the same size when necessary to fit all the rings in the window; and poles can be oriented horizontally. Face support is thrown in gratuitously. - (hanoi): Changed default number of rings back to 3. + (hanoi): Change default number of rings back to 3. (hanoi-unix, hanoi-unix-64): New commands. (hanoi-horizontal-flag, hanoi-move-period, hanoi-use-faces) (hanoi-pole-face, hanoi-base-face, hanoi-even-ring-face) @@ -3612,15 +3612,15 @@ (hanoi-internal, hanoi-current-time-float, hanoi-put-face) (hanoi-n, hanoi-insert-ring, hanoi-goto-char, hanoi-sit-for) (hanoi-ring-to-pos, hanoi-pos-on-tower-p): New functions. - (hanoi-0): Renamed from hanoi0, for symmetry with hanoi-n. - (hanoi-topos, hanoi-draw-ring): Removed. + (hanoi-0): Rename from hanoi0, for symmetry with hanoi-n. + (hanoi-topos, hanoi-draw-ring): Remove. 1999-08-12 Gerd Moellmann * faces.el (face-valid-attribute-values): Return an alist for families on ttys. - (face-read-integer): Handle unspecified face attributes. Add - completion for `unspecified'. + (face-read-integer): Handle unspecified face attributes. + Add completion for `unspecified'. (read-face-attribute): Handle unspecified font attributes. (face-valid-attribute-values): Add `unspecified' to lists so that it can be chosen via completion. @@ -3658,7 +3658,7 @@ (easy-menu-change): Doc fix. * info-look.el (info-lookup-guess-c-symbol): Use skip-syntax-backward. - (info-lookup-guess-default): Simplified and cleaned up. + (info-lookup-guess-default): Simplify and cleaned up. (info-lookup-guess-default*): Preserve point. * view.el (view-mode-disable): If buffer-read-only is nil, @@ -3678,13 +3678,13 @@ 1999-08-10 Alex Schroeder - * ansi-color.el (ansi-color-to-text-properties): Added New state 5 + * ansi-color.el (ansi-color-to-text-properties): Add New state 5 to prevent m-eating-bug. 1999-08-10 Eli Zaretskii - * term/pc-win.el (msdos-bg-mode): Remove. Call - frame-set-background-mode instead. All callers changed. + * term/pc-win.el (msdos-bg-mode): Remove. + Call frame-set-background-mode instead. All callers changed. (msdos-face-setup): Don't force color display parameter, it is set by frame-set-background-mode. (make-msdos-frame): Call x-handle-reverse-video and @@ -3695,8 +3695,8 @@ 1999-08-10 Dave Love - * emacs-lisp/advice.el (ad-make-single-advice-docstring): Treat - case with no docstring specially. + * emacs-lisp/advice.el (ad-make-single-advice-docstring): + Treat case with no docstring specially. 1999-08-09 Eli Zaretskii @@ -3705,8 +3705,8 @@ 1999-08-07 Dave Love - * man.el (Man-softhyphen-to-minus): Revert previous change. Avoid - unibyte to multibyte conversion of search-forward (from Handa), + * man.el (Man-softhyphen-to-minus): Revert previous change. + Avoid unibyte to multibyte conversion of search-forward (from Handa), but avoid the replacement if the language is Latin-N. 1999-08-06 Richard Stallman @@ -3811,14 +3811,14 @@ (apply-on-rectangle): New function, mostly replaces `operate-on-rectangle'. All callers changed. (move-to-column-force): Pass new second argument to `move-to-column'. - (kill-rectangle): Added optional prefix arg to fill lines. + (kill-rectangle): Add optional prefix arg to fill lines. (delete-rectangle): Ditto. (delete-whitespace-rectangle): Ditto. (delete-extract-rectangle): Ditto. (open-rectangle): Ditto. (clear-rectangle): Ditto. (delete-whitespace-rectangle-line): New function. - (delete-rectangle-line): Added third arg FILL. + (delete-rectangle-line): Add third arg FILL. (delete-extract-rectangle-line): Ditto. (open-rectangle-line): Ditto. (clear-rectangle-line): Ditto. @@ -3876,7 +3876,7 @@ frame-delete-all. * frame.el: Change comments to doc strings and other doc fixes. - (frame-delete-all): Moved to subr.el as `assoc-delete-all'. + (frame-delete-all): Move to subr.el as `assoc-delete-all'. Callers changed. (set-background-color, set-foreground-color, set-cursor-color) (set-mouse-color, set-border-color): Offer completion of colors. @@ -3948,7 +3948,7 @@ * mouse.el (x-fixed-font-alist): Add lucidasanstypewriter. * msb.el: Require cl only when compiling. - (msb--home-dir): Deleted. + (msb--home-dir): Delete. (msb--format-title): Use abbreviate-file-name. (msb--choose-file-menu): Simplify string comparison. @@ -3980,7 +3980,7 @@ 1999-07-26 Kenichi Handa * international/ccl.el (ccl-embed-symbol): New function. - (ccl-program-p): Deleted. Now it's implemented in C code. + (ccl-program-p): Delete. Now it's implemented in C code. (ccl-compile-call): Use ccl-embed-symbol to embed a symbol. (ccl-compile-translate-character): Likewise. (ccl-compile-map-single): Likewise. @@ -4021,19 +4021,19 @@ * fortran.el (fortran-mode-syntax-table): Change `\' to `\' syntax. - (fortran-fontify-string, fortran-match-!-comment): Deleted. + (fortran-fontify-string, fortran-match-!-comment): Delete. (fortran-font-lock-syntactic-keywords): New variable. (fortran-mode): Use it. (fortran-font-lock-keywords-1): Don't do comments. - (beginning-of-fortran-subprogram, end-of-fortran-subprogram): Save - match data. + (beginning-of-fortran-subprogram, end-of-fortran-subprogram): + Save match data. * textmodes/sgml-mode.el (sgml-validate-command): Use nsgmls. - * msb.el (msb-menu-bar-update-buffers): Renamed from + * msb.el (msb-menu-bar-update-buffers): Rename from menu-bar-update-buffers. - (msb-custom-set, msb--toggle-menu-type): Call - msb-menu-bar-update-buffers. + (msb-custom-set, msb--toggle-menu-type): + Call msb-menu-bar-update-buffers. (msb-mode): Revise the hook setting. * font-lock.el (turn-on-font-lock): Use tty-display-color-p. @@ -4079,9 +4079,9 @@ 1999-07-21 Gerd Moellmann - * cl-extra.el (cl-make-hash-table): Renamed from make-hash-table. - (cl-hash-table-p): Renamed from hash-table-p. - (cl-hash-table-count): Renamed from hash-table-count. + * cl-extra.el (cl-make-hash-table): Rename from make-hash-table. + (cl-hash-table-p): Rename from hash-table-p. + (cl-hash-table-count): Rename from hash-table-count. (maphash): Alias to cl-maphash removed. (gethash): Likewise. (puthash): Likewise. @@ -4148,7 +4148,7 @@ 1999-07-21 Gerd Moellmann - * faces.el (face-underline): Removed. + * faces.el (face-underline): Remove. (face-underline-color): Ditto. 1999-07-21 Gerd Moellmann @@ -4319,10 +4319,10 @@ * bindings.el (make-mode-line-mouse-sensitive): Use down-mouse-3 instead of mouse-3 to pop up menus. - (mode-line-kill-buffer): Removed. + (mode-line-kill-buffer): Remove. (make-mode-line-mouse-sensitive): Pop mouse buffer menu over buffer name. - (mode-line-buffer-menu-1): Removed. + (mode-line-buffer-menu-1): Remove. * startup.el (command-line-1): Call make-mode-line-mouse-sensitive. @@ -4405,7 +4405,7 @@ 1999-07-21 Gerd Moellmann - * faces.el (frame-update-faces): Copied from 20.2. + * faces.el (frame-update-faces): Copy from 20.2. (frame-update-face-colors): Ditto. Code removed that isn't applicable in the new face implementation. @@ -4424,12 +4424,12 @@ 1999-07-21 Gerd Moellmann - * faces.el (face-charset-registries): Removed since fontset.el + * faces.el (face-charset-registries): Remove since fontset.el is no always loaded. 1999-07-21 Gerd Moellmann - * faces.el (internal-get-face): Added as obsolete function for + * faces.el (internal-get-face): Add as obsolete function for compatibility. 1999-07-21 Gerd Moellmann @@ -4458,7 +4458,7 @@ * faces.el (face-id): Return the ID of a realized face for ASCII. - * fontset.el (x-charset-registries): Removed. Now in faces.el. + * fontset.el (x-charset-registries): Remove. Now in faces.el. (x-complement-fontset-spec): Use face-charset-registries. * faces.el (face-font-selection-order): Set font selection order @@ -4486,14 +4486,14 @@ * cus-face.el (custom-face-attributes): Add :bold and :italic for compatibility with old code. - * faces.el (set-face-attributes-from-resources): Additional - frame parameter. + * faces.el (set-face-attributes-from-resources): + Additional frame parameter. (make-face-x-resource-internal): Set attributes from resources for a given frame or all frames. 1999-07-21 Gerd Moellmann - * faces.el (all-faces): Removed. + * faces.el (all-faces): Remove. * custom.el (defface): Add new face attributes to function comment. @@ -4512,8 +4512,8 @@ * cus-face.el (custom-face-attributes): Use new face attributes. - * faces.el (set-face-attribute-from-resource): Initialize - from resources only for X and W32. + * faces.el (set-face-attribute-from-resource): + Initialize from resources only for X and W32. * cus-face.el (custom-declare-face): Don't make frame-local faces. @@ -4599,8 +4599,8 @@ * faces.el (eval-when-compile): Add set-face-shadow-thickness. (internal-facep): Increase vector size. (make-face): Ditto. - (face-shadow-thickness): Added. - (set-face-shadow-thickness): Added. + (face-shadow-thickness): Add. + (set-face-shadow-thickness): Add. (modify-face): Add optional shadow-thickness parameter. (make-face-x-resource-internal): Add shadows. (copy-face): Ditto. @@ -4646,8 +4646,8 @@ * fill.el (canonically-space-region, justify-current-line): Add * to interactive spec. (fill-region-as-paragraph, fill-paragraph, fill-region) - (fill-nonuniform-paragraphs, fill-individual-paragraphs): Check - readonly buffer in interactive spec. + (fill-nonuniform-paragraphs, fill-individual-paragraphs): + Check readonly buffer in interactive spec. * paragraphs.el (kill-paragraph, backward-kill-paragraph) (backward-kill-sentence, kill-sentence): Add * to interactive spec. @@ -4662,7 +4662,7 @@ 1999-07-19 John Wiegley - * term.el (ansi-term-fg-faces-vector): Added support for ANSI + * term.el (ansi-term-fg-faces-vector): Add support for ANSI color codes 39 and 49, which by the way lynx uses them seem to mean "foreground reset" and "background reset". @@ -4727,7 +4727,7 @@ 1999-07-08 Espen Skoglund - * pascal.el (pascal-calculate-indent): Fixed a bug occurring when + * pascal.el (pascal-calculate-indent): Fix a bug occurring when the `end' keyword was in the very beginning of the buffer. 1999-07-08 Richard Stallman @@ -4759,8 +4759,8 @@ * isearch.el (isearch-process-search-char): Write octal 200 correctly. - * startup.el (normal-top-level-add-subdirs-to-load-path): Avoid - doing a `stat' when it isn't necessary because that can cause + * startup.el (normal-top-level-add-subdirs-to-load-path): + Avoid doing a `stat' when it isn't necessary because that can cause trouble when an NFS server is down. 1999-07-04 Richard Stallman @@ -4869,8 +4869,8 @@ 1999-06-18 Andrew Innes - * mail/smtpmail.el (smtpmail-send-it): Use - convert-standard-filename to make file names for queued mail safe + * mail/smtpmail.el (smtpmail-send-it): + Use convert-standard-filename to make file names for queued mail safe on Windows (`:' is invalid in file names on Windows). 1999-06-17 Kenichi Handa @@ -4911,8 +4911,8 @@ 1999-06-15 Markus Rost - * mail/rmailsum.el (rmail-summary-output-to-rmail-file): Avoid - multiple output of the last message. + * mail/rmailsum.el (rmail-summary-output-to-rmail-file): + Avoid multiple output of the last message. 1999-06-14 Eli Zaretskii @@ -4977,8 +4977,8 @@ 1999-06-09 Dave Love - * progmodes/compile.el (compilation-error-regexp-alist): Allow - digits in program name in first pattern. + * progmodes/compile.el (compilation-error-regexp-alist): + Allow digits in program name in first pattern. 1999-06-09 Andre Spiegel @@ -4992,8 +4992,8 @@ 1999-06-05 Stephen Eglen - * iswitchb.el (iswitchb-default-keybindings): Add - iswitchb-minibuffer-setup to minibuffer-setup-hook here rather + * iswitchb.el (iswitchb-default-keybindings): + Add iswitchb-minibuffer-setup to minibuffer-setup-hook here rather than when package is loaded. 1999-06-04 Richard M. Stallman @@ -5033,7 +5033,7 @@ 1999-06-04 Eric M. Ludlam - * speedbar.el (speedbar-hack-buffer-menu): Fixed so if the user + * speedbar.el (speedbar-hack-buffer-menu): Fix so if the user does not select a buffer from the buffers menu, then the attached frame is not switched to anything. @@ -5128,8 +5128,8 @@ 1999-05-25 Ken'ichi Handa - * mail/smtpmail.el (smtpmail-send-it): Bind - smtpmail-code-conv-from properly. + * mail/smtpmail.el (smtpmail-send-it): + Bind smtpmail-code-conv-from properly. (smtpmail-send-data-1): If DATA is a multibyte string, encode it by smtpmail-code-conv-from. @@ -5238,13 +5238,13 @@ 1995-05-11 Joel N. Weber II - * comint.el (comint-password-prompt-regexp): Modified to match the + * comint.el (comint-password-prompt-regexp): Modify to match the output of ksu and ssh-add. 1999-05-11 Kenichi HANDA * language/korea-util.el (isearch-toggle-korean-input-method): - Adjusted for the change of input method handling in isearch.el. + Adjust for the change of input method handling in isearch.el. (isearch-hangul-switch-symbol-ksc): Likewise. (isearch-hangul-switch-hanja): Likewise. @@ -5266,8 +5266,8 @@ 1999-05-09 Ken'ichi Handa - * ps-print.el (ps-control-character): Call - ps-mule-prepare-ascii-font to setup ASCII fonts. + * ps-print.el (ps-control-character): + Call ps-mule-prepare-ascii-font to setup ASCII fonts. * ps-mule.el (ps-mule-begin-job): Redo this change "if ps-multibyte-buffer is nil, use @@ -5278,16 +5278,16 @@ * ispell.el (ispell-local-dictionary-alist): New variable for customizing local dictionaries not accessible by everyone. (ispell-dictionary-alist): Loads `ispell-local-dictionary-alist'. - (ispell-required-version): Changed format `(major minor + (ispell-required-version): Change format `(major minor revision)' to support general pattern matching. (ispell-tex-skip-alists): AMS Tex block comment and `\author' skip region commented out due to incorrect skip potential in std latex. - (ispell-word): Removed `when' macro. Fixed bug of not restoring + (ispell-word): Remove `when' macro. Fixed bug of not restoring cursor point on small words for calls from `ispell-minor-mode'. (check-ispell-version): Tests and accepts versions major.minor and above, with adjustments for interactions in 3.1.0-3.1.11. (ispell-get-line): No longer skips ispell process special characters. - (ispell-comments-and-strings): Removed `when' macro call. + (ispell-comments-and-strings): Remove `when' macro call. (ispell-minor-check): Requires ispell-word to restore cursor point. (ispell-buffer-local-parsing): Supports checking comments only. @@ -5308,7 +5308,7 @@ 1999-05-07 Joel N. Weber II - * comint.el (comint-password-prompt-regexp): Modified so that it + * comint.el (comint-password-prompt-regexp): Modify so that it matches the output of kinit. 1999-05-06 Greg Stark @@ -5450,8 +5450,8 @@ 1999-04-26 John Wiegley - * progmodes/compile.el (compilation-error-regexp-alist): Recognize - C++Builder 4.0 error message syntax. + * progmodes/compile.el (compilation-error-regexp-alist): + Recognize C++Builder 4.0 error message syntax. 1999-04-26 Mark Diekhans @@ -5460,8 +5460,8 @@ 1999-04-26 Yoshiki Hayashi - * textmodes/texinfmt.el (texinfo-format-buffer): Bind - coding-system-for-write, to avoid hanging when non-interactive. + * textmodes/texinfmt.el (texinfo-format-buffer): + Bind coding-system-for-write, to avoid hanging when non-interactive. 1999-04-26 Dirk Herrmann @@ -5666,12 +5666,12 @@ 1999-03-25 Andrew Innes - * w32-fns.el (set-default-process-coding-system): Copied from + * w32-fns.el (set-default-process-coding-system): Copy from dos-w32.el, but modified to use Unix line endings for process input, and to add a suitable entry to process-coding-system-alist for DOS shells. - * dos-fns.el (set-default-process-coding-system): Copied from + * dos-fns.el (set-default-process-coding-system): Copy from dos-w32.el. * dos-w32.el (set-default-process-coding-system): Move function to @@ -5712,8 +5712,8 @@ 1999-03-18 Simon Marshall - * font-lock.el (c-font-lock-keywords-2): Added "complex" type. - (java-font-lock-keywords-2): Added "strictfp" keyword. + * font-lock.el (c-font-lock-keywords-2): Add "complex" type. + (java-font-lock-keywords-2): Add "strictfp" keyword. 1999-03-17 Jason Rumney @@ -5722,8 +5722,8 @@ 1999-03-17 Eli Zaretskii - * international/mule-cmds.el (set-language-environment): Fix - previous change: don't use dos-codepage when unbound. + * international/mule-cmds.el (set-language-environment): + Fix previous change: don't use dos-codepage when unbound. 1999-03-17 Karl Heuer @@ -5747,7 +5747,7 @@ 1999-03-15 Simon Marshall - * font-lock.el (c-font-lock-keywords-2): Added "restrict" keyword. + * font-lock.el (c-font-lock-keywords-2): Add "restrict" keyword. 1999-03-14 Milan Zamazal @@ -5777,7 +5777,7 @@ * speedbar.el: Added commentary about stealthy functions. (speedbar-message): New function. (speedbar-y-or-n-p): New function. - (speedbar-with-attached-buffer): Moved macro before reference. + (speedbar-with-attached-buffer): Move macro before reference. Now uses `save-selected-window'. (speedbar-mouse-hscroll, speedbar-track-mouse, speedbar-refresh) (speedbar-generic-item-info, speedbar-item-info-file-helper) @@ -5820,8 +5820,8 @@ 1999-03-09 Dave Love - * textmodes/sgml-mode.el (html-mode): Use - sentence-end-double-space when setting sentence-end. + * textmodes/sgml-mode.el (html-mode): + Use sentence-end-double-space when setting sentence-end. 1999-03-09 Ken'ichi Handa @@ -5864,8 +5864,8 @@ 1999-03-06 Dave Love - * progmodes/cc-cmds.el (c-outline-level): Bind - buffer-invisibility-spec. + * progmodes/cc-cmds.el (c-outline-level): + Bind buffer-invisibility-spec. * progmodes/c-mode.el (c-outline-level): Likewise. @@ -5905,8 +5905,8 @@ 1999-03-03 Dave Love * options.el (edit-options): Doc fix. - (list-options): Don't lose with unbound symbols. Maintain - Edit-options-mode. + (list-options): Don't lose with unbound symbols. + Maintain Edit-options-mode. 1999-03-01 Dave Love @@ -5918,7 +5918,7 @@ (ispell-dictionary-alist): Don't setq it, if ispell-dictionary-alist-override is set. - * simple.el (shell-command-default-error-buffer): Renamed from + * simple.el (shell-command-default-error-buffer): Rename from shell-command-on-region-default-error-buffer. (shell-command-on-region): Mention in echo area when there is some error output. Mention success or failure, too. @@ -5964,8 +5964,8 @@ (ps-font-size, ps-header-font-size, ps-header-title-font-size): Specifies landscape and portrait sizes. (ps-setup, ps-print-quote, ps-line-lengths-internal, ps-nb-pages) - (ps-get-page-dimensions, ps-begin-file, ps-begin-job, ps-generate): Fun - fix. + (ps-get-page-dimensions, ps-begin-file, ps-begin-job, ps-generate): + Fun fix. (ps-get-font-size): New fun. (ps-font-size-internal, ps-header-font-size-internal) (ps-header-title-font-size-internal): New vars. @@ -6009,8 +6009,8 @@ 1999-02-23 Ken'ichi Handa - * international/encoded-kb.el (encoded-kbd-handle-8bit): Allow - inputting ?\240. + * international/encoded-kb.el (encoded-kbd-handle-8bit): + Allow inputting ?\240. 1999-02-23 Karl Heuer @@ -6027,8 +6027,8 @@ 1999-02-22 Eli Zaretskii - * arc-mode.el (archive-set-buffer-as-visiting-file): Save - excursion while calling set-auto-coding-function. + * arc-mode.el (archive-set-buffer-as-visiting-file): + Save excursion while calling set-auto-coding-function. * play/handwrite.el (handwrite): Require ps-print, and use ps-printer-name and ps-lpr-command. Call ps-print-region-function @@ -6036,8 +6036,8 @@ 1999-02-22 Kenichi Handa - * international/codepage.el (cp-coding-system-for-codepage-1): Put - charset-origin-alist property to a coding system for the codepage. + * international/codepage.el (cp-coding-system-for-codepage-1): + Put charset-origin-alist property to a coding system for the codepage. * international/mule.el: Modify comment for charset-origin-alist property of a coding system. @@ -6053,7 +6053,7 @@ 1999-02-21 Peter Breton - * dirtrack.el (dirtrack): Added docstring. Now returns input. + * dirtrack.el (dirtrack): Add docstring. Now returns input. 1999-02-18 Peter Breton @@ -6090,7 +6090,7 @@ (sql-stop): Use sql-input-ring-separator and sql-input-ring-file-name. (sql-input-ring-file-name): New variable with customization. (sql-input-ring-separator): New variable with customization. - (sql-set-sqli-buffer): Renamed from sql-change-sqli-buffer. + (sql-set-sqli-buffer): Rename from sql-change-sqli-buffer. Callers changed. (sql-show-sqli-buffer): The message for "sql-buffer is not set" now includes the name of the current buffer. @@ -6106,7 +6106,7 @@ 1999-02-18 Ken'ichi Handa - * international/mule.el (coding-system-list): Moved here from + * international/mule.el (coding-system-list): Move here from mule-util.el to avoid autoloading mule-util by the call of select-safe-coding-system. @@ -6122,12 +6122,12 @@ 1999-02-17 Peter Breton - * filecache.el (file-cache-filter-regexps): Added .class. + * filecache.el (file-cache-filter-regexps): Add .class. 1999-02-17 Ken'ichi Handa - * international/mule-util.el (decompose-region): Use - insert-buffer-substring instead of insert-buffer to avoid putting + * international/mule-util.el (decompose-region): + Use insert-buffer-substring instead of insert-buffer to avoid putting mark. 1999-02-17 Andreas Schwab @@ -6179,8 +6179,8 @@ 1999-02-16 Ken'ichi Handa - * language/japanese.el (japanese-shift-jis): Add - charset-origin-alist property. + * language/japanese.el (japanese-shift-jis): + Add charset-origin-alist property. 1999-02-15 Richard Stallman @@ -6209,10 +6209,10 @@ 1999-02-14 Richard Stallman * international/iso-transl.el: - (iso-transl-ae): Renamed from iso-transl-e-slash. - (iso-transl-a-ring): Renamed from iso-transl-a-slash. - (iso-transl-AE): Renamed from iso-transl-E-slash. - (iso-transl-A-ring): Renamed from iso-transl-A-slash. + (iso-transl-ae): Rename from iso-transl-e-slash. + (iso-transl-a-ring): Rename from iso-transl-a-slash. + (iso-transl-AE): Rename from iso-transl-E-slash. + (iso-transl-A-ring): Rename from iso-transl-A-slash. (iso-transl-char-map): Related changes. * format.el (format-replace-strings): Fix value of TO in REVERSE case. @@ -6229,7 +6229,7 @@ 1999-02-12 Alex Schroeder * sql.el: Set version to 1.3.2. - (sql-solid-program): Added support for solid. + (sql-solid-program): Add support for solid. (sql-help): Doc mentions sql-solid. (sql-solid): Entry function for Solid. (sql-buffer): Doc explains the use of the variable and how to @@ -6243,16 +6243,16 @@ (sql-change-sqli-buffer): New function to change sql-buffer. (sql-mode): Doc explains how to change sql-buffer. (sql-send-paragraph): New function to send a paragraph. - (sql-mode-map): Added keybinding for sql-send-paragraph. + (sql-mode-map): Add keybinding for sql-send-paragraph. (sql-mysql): Doc corrected. (sql-ms): Doc corrected. * sql.el (sql-server): Doc fix. - (sql-mysql): Added the use of sql-server to specify the host, + (sql-mysql): Add the use of sql-server to specify the host, sql-database now specifies database instead of host. (sql-mode-menu): Send... menu items are only active if sql-buffer is non-nil. - (sql-help): Changed tag of entry functions a bit. + (sql-help): Change tag of entry functions a bit. * sql.el: Added keywords from `finder-by-keyword'. (sql-mode): Made sql-buffer a local variable, changed the @@ -6267,10 +6267,10 @@ sql-user and sql-password used during login. (sql-sybase): Quoted *SQL* in doc string, added comma. (sql-oracle): Likewise. - (sql-interactive-mode): Added extensive documentation for having + (sql-interactive-mode): Add extensive documentation for having multiple SQL buffers sending their stuff to different SQLi buffers, each running a different process. - (sql-buffer): Changed doc from *SQL* to SQLi. + (sql-buffer): Change doc from *SQL* to SQLi. (sql-get-login): Doc fix. 1999-02-12 Ken'ichi Handa @@ -6301,8 +6301,8 @@ 1999-02-12 Ken'ichi Handa - * international/quail.el (quail-show-kbd-layout): Bind - blink-matching-paren to nil. + * international/quail.el (quail-show-kbd-layout): + Bind blink-matching-paren to nil. * ps-mule.el (ps-mule-font-info-database-bdf): Fix ENCODING field for ASCII and Latin-1. @@ -6313,8 +6313,8 @@ 1999-02-12 Kenichi Handa - * international/mule-cmds.el (language-info-alist): Remove - description about charset-origin-alist. + * international/mule-cmds.el (language-info-alist): + Remove description about charset-origin-alist. * international/mule.el: Comment added for a new coding system property `charset-origin-alist'. @@ -6330,8 +6330,8 @@ ("Cyrillic-KOI8"): Remove charset-origin-alist property. ("Cyrillic-ALT"): Likewise. - * language/vietnamese.el (vietnamese-viqr): Add - charset-origin-alist property. + * language/vietnamese.el (vietnamese-viqr): + Add charset-origin-alist property. ("Vietnamese"): Remove charset-origin-alist property. * simple.el (what-cursor-position): Don't use the variable @@ -6371,8 +6371,8 @@ 1999-02-08 Eli Zaretskii - * international/codepage.el (cp-coding-system-for-codepage-1): On - MS-DOS, use dos-unsupported-char-glyph for characters not + * international/codepage.el (cp-coding-system-for-codepage-1): + On MS-DOS, use dos-unsupported-char-glyph for characters not supported by the codepage. (cp-make-coding-systems-for-codepage): Likewise. @@ -6381,7 +6381,7 @@ * international/mule-util.el (coding-system-list): Don't sort coding-system-list here. - * international/mule.el (coding-system-lessp): Moved here from + * international/mule.el (coding-system-lessp): Move here from mule-util.el. (add-to-coding-system-list): New function. (make-subsidiary-coding-system, make-coding-system) @@ -6427,18 +6427,18 @@ 1999-02-05 Alex Schroeder * progmodes/sql.el: Changed version to 1.2.1. - (sql-pop-to-buffer-after-send-region): Improved documentation. - (sql-mysql-program): Added MySQL support. + (sql-pop-to-buffer-after-send-region): Improve documentation. + (sql-mysql-program): Add MySQL support. (sql-prompt-length): Made prompt-length configurable. (sql-mode-syntax-table): Made apostrophe (') be a string delimiter. - (sql-help): Added MySQL support, changed documentation. + (sql-help): Add MySQL support, changed documentation. (sql-send-region): A message is displayed if something is sent. - (sql-mode): Added buffer-local comment-start. + (sql-mode): Add buffer-local comment-start. (sql-interactive-mode): Use sql-prompt-length to set left-margin. - (sql-interactive-mode): Added buffer-local comment-start. + (sql-interactive-mode): Add buffer-local comment-start. (sql-oracle): Set sql-prompt-length. (sql-sybase): Set sql-prompt-length. - (sql-mysql): Added MySQL support. + (sql-mysql): Add MySQL support. (sql-ingres): Set sql-prompt-length. (sql-ms): Set sql-prompt-length. (sql-postgres): Set sql-prompt-length. @@ -6495,8 +6495,8 @@ 1999-02-01 Ken'ichi Handa - * international/mule-util.el (compose-chars-component): Add - autoload cookie. + * international/mule-util.el (compose-chars-component): + Add autoload cookie. 1999-01-31 Ken'ichi Handa @@ -6506,8 +6506,8 @@ 1999-01-31 Markus Rost - * progmodes/compile.el (compilation-next-error-locus): Don't - decrease argument FIND-AT-LEAST of compilation-next-error-locus. + * progmodes/compile.el (compilation-next-error-locus): + Don't decrease argument FIND-AT-LEAST of compilation-next-error-locus. 1999-01-31 Eli Zaretskii @@ -6538,8 +6538,8 @@ * tex-mode.el (tex-mode-map): Replace validate-tex-buffer by tex-validate-buffer. (plain-tex-mode, latex-mode, slitex-mode): Likewise. - (tex-validate-buffer): Renamed from validate-tex-buffer. Works - now with recent occur-mode. + (tex-validate-buffer): Rename from validate-tex-buffer. + Works now with recent occur-mode. (tex-validate-region): Really walk through all Sexps. (tex-region): Bind shell-dirtrack-verbose. (tex-file, tex-bibtex-file): Likewise. @@ -6639,8 +6639,8 @@ 1999-01-25 Edward M. Reingold - * calendar/diary-lib.el (mark-diary-entries): Use - assoc-ignore-case and do not capitalize when matching month and + * calendar/diary-lib.el (mark-diary-entries): + Use assoc-ignore-case and do not capitalize when matching month and day names. * calendar/calendar.el (calendar-read-date): Ditto. @@ -6734,8 +6734,8 @@ 1999-01-23 Ken'ichi Handa - * international/fontset.el (create-fontset-from-x-resource): Make - style variants. + * international/fontset.el (create-fontset-from-x-resource): + Make style variants. 1999-01-22 Dave Love @@ -6748,7 +6748,7 @@ 1999-01-22 Jason Rumney - * term/w32-win.el (w32-standard-fontset-spec): Simplified. + * term/w32-win.el (w32-standard-fontset-spec): Simplify. 1999-01-22 Felix Lee @@ -6782,8 +6782,8 @@ 1999-01-19 Jason Rumney - * term/w32-win.el (w32-standard-fontspec-spec): Change - iso8859-5 to koi8-r. Add iso8859-9. + * term/w32-win.el (w32-standard-fontspec-spec): + Change iso8859-5 to koi8-r. Add iso8859-9. 1999-01-19 Dave Love @@ -6807,8 +6807,8 @@ * textmodes/tex-mode.el (tex-define-common-keys): Remove key binding of tex-feed-input. (tex-mode-map): Bind tex-feed-input here. - (tex-start-shell): Use compilation-shell-minor-mode. Set - comint-input-filter-functions before running tex-shell-hook. + (tex-start-shell): Use compilation-shell-minor-mode. + Set comint-input-filter-functions before running tex-shell-hook. (tex-start-tex): Forget compilation errors. (tex-compilation-parse-errors): Rewritten to work also with compile-mouse-goto-error and compile-goto-error. Adjusted to @@ -6827,8 +6827,8 @@ 1999-01-18 Ken'ichi Handa - * international/ccl.el (ccl-compile-translate-character): Handle - the case that a translation table is CCL register correctly. + * international/ccl.el (ccl-compile-translate-character): + Handle the case that a translation table is CCL register correctly. * international/mule-cmds.el (select-safe-coding-system): Highlight at most 256 characters. @@ -6893,8 +6893,8 @@ 1999-01-17 Andrew Innes - * dos-w32.el (find-buffer-file-type-coding-system): Use - default-buffer-file-coding-system when file doesn't exist (and + * dos-w32.el (find-buffer-file-type-coding-system): + Use default-buffer-file-coding-system when file doesn't exist (and isn't covered by a special case) instead of forcing undecided-dos against the user's wishes. @@ -6916,8 +6916,8 @@ * lpr.el (printer-name): Update docstring about usage on MS-DOS and MS-Windows. (lpr-command) [ms-dos, windows-nt]: Initialize to empty string on - DOS and Windows platforms, to indicate direct printing. Update - the docstring accordingly. + DOS and Windows platforms, to indicate direct printing. + Update the docstring accordingly. * ps-print.el (ps-printer-name): Update docstring about usage on MS-DOS and MS-Windows. @@ -6952,8 +6952,8 @@ 1999-01-16 Dave Love - * help.el (temp-buffer-setup-hook, temp-buffer-show-hook): Revert - last change. + * help.el (temp-buffer-setup-hook, temp-buffer-show-hook): + Revert last change. 1999-01-15 Dave Love @@ -7002,8 +7002,8 @@ 1999-01-13 Eli Zaretskii * international/codepage.el (cp850-decode-table): Replace nil - entries with codes of similary looking glyphs. (Suggested by - Jason Rumney .) + entries with codes of similary looking glyphs. ( + Suggested by Jason Rumney .) 1999-01-13 Dave Love @@ -7026,12 +7026,12 @@ * cus-start.el: Add inhibit-eol-conversion. - * help.el (temp-buffer-setup-hook, temp-buffer-show-hook): Swap - the values round. + * help.el (temp-buffer-setup-hook, temp-buffer-show-hook): + Swap the values round. 1999-01-11 Richard Stallman - * help.el (help-mode-finish): Renamed from help-mode-maybe. + * help.el (help-mode-finish): Rename from help-mode-maybe. Don't switch to Help mode here. (temp-buffer-setup-hook): Use help-mode-finish. (help-mode-setup): New function. @@ -7145,11 +7145,11 @@ 1999-01-06 Eli Zaretskii - * international/codepage.el (cp-coding-system-for-codepage-1): Add - the valid-codes property. + * international/codepage.el (cp-coding-system-for-codepage-1): + Add the valid-codes property. - * international/mule-cmds.el (prefer-coding-system): Call - set-coding-priority, so that the internal array of priorities is + * international/mule-cmds.el (prefer-coding-system): + Call set-coding-priority, so that the internal array of priorities is also updated. * international/mule-util.el @@ -7164,8 +7164,8 @@ * emacs-lisp/debug.el (debug): Leave recursive minibuffer enabled if it was enabled before. - * view.el (View-revert-buffer-scroll-page-forward): Bind - view-scroll-auto-exit instead of obsolete view-mode-auto-exit. + * view.el (View-revert-buffer-scroll-page-forward): + Bind view-scroll-auto-exit instead of obsolete view-mode-auto-exit. * files.el (recover-session): Preserve point when inserting explanation. @@ -7438,9 +7438,9 @@ (cperl-syntaxify-by-font-lock): Set to t, should be safe now. Better default, customizes to `message' too, off in text-mode. - (cperl-array-face): Renamed from `font-lock-emphasized-face', + (cperl-array-face): Rename from `font-lock-emphasized-face', `defface'd. - (cperl-hash-face): Renamed from `font-lock-other-emphasized-face'. + (cperl-hash-face): Rename from `font-lock-other-emphasized-face'. `defface'd. (cperl-emacs-can-parse): New state variable. (cperl-indent-line): Corrected to use global state. @@ -7488,7 +7488,7 @@ inside of POD too. (cperl-backward-to-noncomment): Better treatment of PODs and HEREs. (cperl-clobber-mode-lists): New configuration variable. - (cperl-not-bad-style-regexp): Updated. + (cperl-not-bad-style-regexp): Update. Init: `cperl-is-face' was busted. (cperl-make-face): New macros. (cperl-force-face): New macros. @@ -7503,7 +7503,7 @@ (cperl-tags-hier-init): Gross hack to pretend we work (are we?). Another try to work around XEmacs problems. Better progress messages. (toplevel): Require custom unprotected => failure on 19.28. - (cperl-xemacs-p): Defined when compile too. + (cperl-xemacs-p): Define when compile too. (cperl-find-tags): Was writing line/pos in a wrong order, pos off by 1 and not at beg-of-line. (cperl-etags-snarf-tag): New macro. @@ -7599,8 +7599,8 @@ (speedbar-this-file-in-vc) Fix SCCS to use s. not p. files. (speedbar-tag-group-name-minimum-length): New variable. (speedbar-frame-parameter): New compatibility function. - (speedbar-frame-mode): Updated to use speedbar-frame-parameter. - (speedbar-apply-one-tag-hierarchy-method): Fixed up taging sub + (speedbar-frame-mode): Update to use speedbar-frame-parameter. + (speedbar-apply-one-tag-hierarchy-method): Fix up taging sub groups to keep things in the right order, and to help with some naming conventions. (speedbar-create-tag-hierarchy): Enable buffer local version of @@ -7726,8 +7726,8 @@ (ps-mule-plot-string): Set ps-mule-current-charset. (ps-mule-initialize): Add autoload cookie. Don't set ps-mule-font-info-database here. - (ps-mule-begin-job): Renamed from ps-mule-begin. Update - ps-mule-font-info-database and ps-control-or-escape-regexp. + (ps-mule-begin-job): Rename from ps-mule-begin. + Update ps-mule-font-info-database and ps-control-or-escape-regexp. (ps-mule-begin-page): New fun. * ps-print.el: Mule related code moved to ps-mule.el. @@ -7749,7 +7749,7 @@ * ps-print.el (ps-mule-font-info-database): Doc-string modified. (ps-mule-external-libraries): New element FEATURE. - (ps-mule-init-external-library): Adjusted for the above change. + (ps-mule-init-external-library): Adjust for the above change. (ps-mule-generate-font): Likewise. (ps-mule-generate-glyphs): Likewise. (ps-mule-prepare-font): Likewise. @@ -7766,7 +7766,7 @@ Handle the case of unknown charset. (find-multibyte-characters): If invalid multibyte characters are found, return the corresponding strings instead of character codes. - (find-multibyte-characters): Adjusted for the above change. + (find-multibyte-characters): Adjust for the above change. (select-safe-coding-system): For a unibyte buffer, always returns DEFAULT-CODING-SYSTEM. (get-charset-property): Fix previous change. Make it a function. @@ -7786,8 +7786,8 @@ 1998-12-14 Andreas Schwab - * textmodes/texinfo.el (texinfo-tex-buffer): Bind - tex-start-options-string to empty string. + * textmodes/texinfo.el (texinfo-tex-buffer): + Bind tex-start-options-string to empty string. (texinfo-tex-region): Use texinfo-tex-trailer as documented. 1998-12-14 Andrew Innes @@ -7839,7 +7839,7 @@ * help.el (symbol-file-load-history-loaded): Variable renamed, and defvar moved from loadhist.el. - (symbol-file): Renamed from describe-function-find-file. + (symbol-file): Rename from describe-function-find-file. Load fns-VERSION.el here. (describe-variable, describe-function-1): Use symbol-file. @@ -7968,7 +7968,7 @@ * vc.el (vc-dired-window-configuration, vc-ediff-windows) (vc-ediff-result, vc-dired-switches, vc-dired-terse-mode): - Added defvars to suppress compilation warnings. + Add defvars to suppress compilation warnings. 1998-11-30 Ken Stevens @@ -7984,13 +7984,13 @@ ispell-message-text-end, ispell-add-per-file-word-list. (ispell-dictionary-alist-1, ispell-dictionary-alist2): A coding system is now required for all languages. Casechars improved for - castellano, castellano8, and norsk dictionaries. Dictionary - norsk7-tex added. Dictionary polish added. + castellano, castellano8, and norsk dictionaries. + Dictionary norsk7-tex added. Dictionary polish added. (ispell-dictionary-alist): Redefined at load-time to support dictionary changes. (ispell-menu-map): Redefined at load-time to support menu changes. (ispell-check-version): New alias for `check-ispell-version'. - (ispell-parse-output): Fixed matching for ispell error messages. + (ispell-parse-output): Fix matching for ispell error messages. Correctly returns spelling suggestions in order generated by ispell process. (check-ispell-version): Ensure `case-fold-search' doesn't get @@ -8002,12 +8002,12 @@ (ispell-kill-ispell): Ensures ispell process has terminated before starting new process. This can otherwise confuse process filters and hang the ispell process. - (ispell-begin-skip-region-regexp, ispell-skip-region): Improved - skipping support for sgml. + (ispell-begin-skip-region-regexp, ispell-skip-region): + Improve skipping support for sgml. (ispell-minor-check): Support sgml labels. Fix mapping ^M to \r which could cause `ispell-complete-word' to hang. - (ispell-message): Improved message reference matching. Ensure - `case-fold-search' doesn't get redefined. + (ispell-message): Improve message reference matching. + Ensure `case-fold-search' doesn't get redefined. (ispell-buffer-local-parsing): Ensure `case-fold-search' doesn't get redefined. Fixed bug in returning to nroff mode from tex mode. (ispell-add-per-file-word-list): Ensure `case-fold-search' doesn't @@ -8108,8 +8108,8 @@ 1998-11-22 Andrew Innes - * mail/rmail.el (rmail-set-message-counters-counter): Detect - messages that have been added with DOS line endings and convert + * mail/rmail.el (rmail-set-message-counters-counter): + Detect messages that have been added with DOS line endings and convert the line endings for such messages. 1998-11-22 Emilio Lopes @@ -8131,8 +8131,8 @@ 1998-11-21 Lars Magne Ingebrigtsen - * message.el (message-ignored-supersedes-headers): Remove - NNTP-Posting-Date. + * message.el (message-ignored-supersedes-headers): + Remove NNTP-Posting-Date. 1998-11-21 Richard Stallman @@ -8243,8 +8243,8 @@ (tar-extract): Avoid multibyte<->unibyte conversion in insert-buffer-substring by setting both buffers unibyte temporarily. - (tar-copy): Set the buffer unibyte while doing a work. Write - without code conversion. + (tar-copy): Set the buffer unibyte while doing a work. + Write without code conversion. (tar-expunge): Set the buffer unibyte while doing a work. (tar-alter-one-field): Likewise. (tar-clear-modification-flags): Compare byte position with @@ -8262,7 +8262,7 @@ 1998-11-15 Dave Love * progmodes/fortran.el: Fix previous change: - (fortran-end-prog-re1): Changed. + (fortran-end-prog-re1): Change. (fortran-check-end-prog-re): New function. (beginning-of-fortran-subprogram, end-of-fortran-subprogram): Use it. @@ -8281,15 +8281,15 @@ New options. (reftex-use-text-after-label-as-context): Option removed. (reftex-extract-bib-entries): Protect use in non-latex buffers. - (reftex-toc-visit-location): Renamed from `reftex-toc-visit-line'. + (reftex-toc-visit-location): Rename from `reftex-toc-visit-line'. (reftex-latin1-to-ascii): Works now with and without Mule. - (reftex-truncate): Removed special stuff for Emacs 20.2. + (reftex-truncate): Remove special stuff for Emacs 20.2. (reftex-get-offset): Made more general. - (reftex-show-label-location): Renamed from + (reftex-show-label-location): Rename from `reftex-select-label-callback'. (reftex-pop-to-label): Function removed (using `reftex-show-label-location' instead. - (reftex-insert-docstruct): Renamed from + (reftex-insert-docstruct): Rename from `reftex-make-and-insert-label-list'. Function args changed. (reftex-toc): Now uses `reftex-insert-docstruct' and `reftex-find-start-point'. @@ -8327,7 +8327,7 @@ 1998-11-11 Per Starbäck - * ispell.el (ispell-dictionary-alist-2): Removed svenska, renamed + * ispell.el (ispell-dictionary-alist-2): Remove svenska, renamed svenska8 to svenska, and fixed and extended CASECHARS for it. 1998-11-11 Andrew Innes @@ -8338,8 +8338,8 @@ 1998-11-11 Kenichi Handa - * international/mule-util.el (compose-chars-component): Signal - error if CH is a rule-based composition character. + * international/mule-util.el (compose-chars-component): + Signal error if CH is a rule-based composition character. (compose-chars): Signal error if an already composed character is going to be composed by rule-base. @@ -8465,8 +8465,8 @@ 1998-11-04 Kenichi Handa - * international/quail.el (quail-show-guidance-buf): Call - set-minibuffer-window to set minibuffer window of the current + * international/quail.el (quail-show-guidance-buf): + Call set-minibuffer-window to set minibuffer window of the current frame correctly. 1998-11-03 Theodore Jump @@ -8527,13 +8527,13 @@ 1998-10-30 Kenichi Handa - * international/quail.el (quail-start-translation): Handle - switching of the frame in read-key-sequence. + * international/quail.el (quail-start-translation): + Handle switching of the frame in read-key-sequence. (quail-start-conversion): Likewise. (quail-show-guidance-buf): Detach quail-guidance-buf from any windows before setting an appropriate window for it. - (quail-hide-guidance-buf): Use window-minibuffer-p. Set - quail-guidance-win to nil. + (quail-hide-guidance-buf): Use window-minibuffer-p. + Set quail-guidance-win to nil. (quail-update-guidance): If quail-guidance-buf is not in the selected frame, call quail-show-guidance-buf again. @@ -8565,14 +8565,14 @@ * emacs-lisp/eldoc.el (eldoc-argument-case): Fix customize type. - * emacs-lisp/lisp-mnt.el (lm-report-bug): Use - report-emacs-bug-address instead of undefined bug-gnu-emacs. + * emacs-lisp/lisp-mnt.el (lm-report-bug): + Use report-emacs-bug-address instead of undefined bug-gnu-emacs. - * international/mule-cmds.el (select-message-coding-system): Doc - fix. + * international/mule-cmds.el (select-message-coding-system): + Doc fix. - * international/mule-diag.el (describe-coding-system): Describe - all flags. + * international/mule-diag.el (describe-coding-system): + Describe all flags. * mail/sendmail.el (sendmail-coding-system) (default-sendmail-coding-system): Doc fix. @@ -8580,8 +8580,8 @@ * simple.el (shell-command-on-region): Doc fix. * loadup.el: Write fns-*.el in current directory instead of - data-directory since no installation directory exists yet. Mark - buffer unmodified afterwards. + data-directory since no installation directory exists yet. + Mark buffer unmodified afterwards. * loadhist.el (symbol-file): Load fns-*.el from exec-directory instead of data-directory since it is architecture dependent. @@ -8597,11 +8597,11 @@ 1998-10-27 Richard Stallman - * progmodes/tcl-mode.el (tcl-font-lock-keywords): Added itcl and + * progmodes/tcl-mode.el (tcl-font-lock-keywords): Add itcl and namespace related keywords such as `class', `body', `private', `variable', `namespace eval', etc. (tcl-imenu-generic-expression): Handle itcl body and class definitions. - (tcl-mode): Added ":" as a word constituent to the syntax-alist of + (tcl-mode): Add ":" as a word constituent to the syntax-alist of imenu and font-lock so that searches for \sw would find words containing colons. @@ -8730,9 +8730,9 @@ (profile-functions): Simplify. (profile-print): Use float. Make output include space separators. (profile-add-time): New helper function. - (profile-function-prolog): Renamed from profile-start-function. + (profile-function-prolog): Rename from profile-start-function. Handle profile-distinct. - (profile-function-epilog): Renamed from profile-update-function. + (profile-function-epilog): Rename from profile-update-function. Handle profile-distinct. (profile-a-function): If the function to be profiled is an autoload form, load it. If it's lazy-loaded, fetch it. @@ -8882,8 +8882,8 @@ 1998-10-14 Emilio Lopes - * progmodes/fortran.el (fortran-join-line): Use - `delete-indentation' instead of issuing an error message if not on + * progmodes/fortran.el (fortran-join-line): + Use `delete-indentation' instead of issuing an error message if not on a continuation line. Provide for joining several lines using prefix arg. @@ -8916,7 +8916,7 @@ 1998-10-13 Geoff Voelker * ls-lisp.el (ls-lisp-use-insert-directory-program): New variable. - (ls-lisp-insert-directory): Renamed from insert-directory. + (ls-lisp-insert-directory): Rename from insert-directory. (insert-directory): New function. 1998-10-13 Richard Stallman @@ -9049,7 +9049,7 @@ 1998-10-06 Peter Breton - * generic.el (generic-mode-with-type): Added hooks for generic-modes. + * generic.el (generic-mode-with-type): Add hooks for generic-modes. * net-utils.el (ftp, nslookup): Require comint. (network-service-connection): Likewise. @@ -9059,7 +9059,7 @@ (whois-get-tld): New function. * dirtrack.el: Mentioned dirtrack-debug-toggle in the docs. - (dirtrack-debug-toggle): Added this function. + (dirtrack-debug-toggle): Add this function. 1998-10-06 Lars Magne Ingebrigtsen @@ -9074,9 +9074,9 @@ * arc-mode.el (archive-mode-revert): Arg no-auto-save renamed from no-autosave. * tar-mode.el (tar-mode-revert): Likewise. - * ediff-util.el (ediff-arrange-auto-save-in-merge-jobs): Renamed - from ediff-arrange-autosave-in-merge-jobs. Callers changed. - * gnus/message.el (message-auto-save-directory): Renamed from + * ediff-util.el (ediff-arrange-auto-save-in-merge-jobs): + Rename from ediff-arrange-autosave-in-merge-jobs. Callers changed. + * gnus/message.el (message-auto-save-directory): Rename from message-autosave-directory. All references changed. 1998-10-06 Jonathan I. Kamens @@ -9091,15 +9091,15 @@ * replace.el (perform-replace): Position point properly before and after the recursive edit of C-r. - * progmodes/etags.el (tags-reset-tags-tables): Properly - find the markers in the old rings that are being discarded. + * progmodes/etags.el (tags-reset-tags-tables): + Properly find the markers in the old rings that are being discarded. 1998-10-06 Markus Rost * apropos.el (apropos-print): Control invalid characters. * play/landmark.el (lm-font-lock-face-O, lm-font-lock-face-X): - Renamed from lm-font-lock-O-face, lm-font-lock-X-face to avoid + Rename from lm-font-lock-O-face, lm-font-lock-X-face to avoid confusing customize. 1998-10-06 Eli Zaretskii @@ -9109,12 +9109,12 @@ 1998-10-05 Simon Marshall - * menu-bar.el (menu-bar-tools-menu): Added entry for Speedbar. + * menu-bar.el (menu-bar-tools-menu): Add entry for Speedbar. 1998-10-04 Eric Ludlam - * speedbar.el (speedbar-initial-expansion-list-name): Remove - customization since it is not useful in this case. + * speedbar.el (speedbar-initial-expansion-list-name): + Remove customization since it is not useful in this case. (speedbar-frame-mode): Check if cfx or cfy is a list, and make sure it gets evalled to a number. Also verify that set-frame-name fn exists before calling it. @@ -9133,8 +9133,8 @@ 1998-10-02 Dave Love - * outline.el (hide-region-body): Bind - outline-view-change-hook to nil while making repeated calls to + * outline.el (hide-region-body): + Bind outline-view-change-hook to nil while making repeated calls to outline-flag-region. Run it once at the end. (hide-other, hide-sublevels, show-children): Likewise. @@ -9240,8 +9240,8 @@ * textmodes/texinfo.el (texinfo-show-structure): Bind inhibit-read-only. - * isearch.el (isearch-search-and-update): Properly - handle upper case letters in the reverse-search special case. + * isearch.el (isearch-search-and-update): + Properly handle upper case letters in the reverse-search special case. 1998-09-25 Markus Rost @@ -9329,14 +9329,14 @@ whenever appt-mode-string has changed. (appt-add, appt-delete): Add autoload cookies. (appt-check): Catch errors from calling `diary'. - (appt-max-time): Renamed from max-time. + (appt-max-time): Rename from max-time. (appt-now-displayed, appt-display-count): New variables. (appt-timer): Don't create one if we already have one. * textmodes/tex-mode.el (tex-compilation-parse-errors): More general code to use the source buffer instead of the zap file. - * hilit-chg.el (highlight-compare-with-file): Renamed from + * hilit-chg.el (highlight-compare-with-file): Rename from compare-with-file. * loadhist.el (load-history-loaded): New variable. @@ -9368,9 +9368,9 @@ * emacs-lisp/eldoc.el (eldoc-message): Check for 1-arg case, and store string in eldoc-last-message without consing a new string. Rearrange logic from nested if's into cond's. - (eldoc-print-fnsym-args): Renamed to eldoc-get-fnsym-args-string. + (eldoc-print-fnsym-args): Rename to eldoc-get-fnsym-args-string. Do not print message; just return string. - (eldoc-get-var-docstring): Renamed from eldoc-print-var-docstring. + (eldoc-get-var-docstring): Rename from eldoc-print-var-docstring. Do not print message; just return string. Cache that string in eldoc-last-data. (eldoc-last-data): Make into a vector. @@ -9395,14 +9395,14 @@ * progmodes/vhdl-mode.el (vhdl-header-file): Fix customize type. - * progmodes/cpp.el (cpp-face-light-list, cpp-face-dark-list): Fix - customize type. + * progmodes/cpp.el (cpp-face-light-list, cpp-face-dark-list): + Fix customize type. * progmodes/cperl-mode.el (cperl-lazy-help-time): Fix customize type. - * progmodes/compile.el (compilation-error-screen-columns): New - variable. + * progmodes/compile.el (compilation-error-screen-columns): + New variable. (compilation-next-error-locus): Use it to decide whether to use forward-char or move-to-column. @@ -9419,8 +9419,8 @@ * startup.el (site-run-file): Fix customize type. - * speedbar.el (speedbar-initial-expansion-list-name): Fix - customize type. + * speedbar.el (speedbar-initial-expansion-list-name): + Fix customize type. * shell.el (shell-input-autoexpand): Fix customize type. @@ -9445,24 +9445,24 @@ 1998-09-16 Kenichi Handa - * international/mule-cmds.el (reset-language-environment): Call - update-coding-systems-internal. + * international/mule-cmds.el (reset-language-environment): + Call update-coding-systems-internal. * international/mule-conf.el: Call update-coding-systems-internal at the tail. 1998-09-14 Dave Love - * vc-hooks.el (vc-menu-map): Change the vc-directory label. Don't - use the menu-enable properties, pending doing it correctly and + * vc-hooks.el (vc-menu-map): Change the vc-directory label. + Don't use the menu-enable properties, pending doing it correctly and acceptably fast. * map-ynp.el (map-y-or-n-p): Mention RET, `q' in the help text. 1998-09-13 Dave Love - * progmodes/hideshow.el (hs-grok-mode-type): Check - comment-{start,end} non-nil as well as bound. Report an error if + * progmodes/hideshow.el (hs-grok-mode-type): + Check comment-{start,end} non-nil as well as bound. Report an error if we can't grok the mode. 1998-09-13 Richard Stallman @@ -9603,9 +9603,9 @@ (reftex-label-illegal-re): Default changed, removed Latin1. (reftex-latin1-to-ascii): New function. (reftex-what-environment): Check for section regexp before use. - (reftex-find-tex-file, reftex-find-bib-file): Fixed bug with + (reftex-find-tex-file, reftex-find-bib-file): Fix bug with absolute path names. - (reftex-TeX-master-file): Changed sequence of file checks. + (reftex-TeX-master-file): Change sequence of file checks. (reftex-do-citation): Bibview cache only with RefTeX mode on. 1998-09-06 Richard Stallman @@ -9679,7 +9679,7 @@ 1998-09-04 Peter Breton - * net-utils.el (netstat-program-options): Changed from nil to "-a" + * net-utils.el (netstat-program-options): Change from nil to "-a" so that by default netstat shows all network connections. 1998-09-04 Bob Weiner @@ -9699,8 +9699,8 @@ 1998-09-03 Bill Richter - * international/quail.el (quail-choose-completion-string): Store - completion `choice' in `quail-current-str'; don't insert it. + * international/quail.el (quail-choose-completion-string): + Store completion `choice' in `quail-current-str'; don't insert it. 1998-09-02 Kenichi Handa @@ -9727,8 +9727,8 @@ 1998-09-01 Dave Love - * international/mule-cmds.el (current-language-environment): Fix - setter function. + * international/mule-cmds.el (current-language-environment): + Fix setter function. 1998-09-01 Simon Marshall @@ -9808,8 +9808,8 @@ * ange-ftp.el (ange-ftp-allow-child-lookup): Reinstate checking dired-local-variables-file for dired-x. - * emacs-lisp/find-func.el (find-function-search-for-symbol): Look - for compressed library files too. + * emacs-lisp/find-func.el (find-function-search-for-symbol): + Look for compressed library files too. 1998-08-26 Kenichi Handa @@ -9842,8 +9842,8 @@ 1998-08-26 Lars Magne Ingebrigtsen - * gnus/gnus-start.el (gnus-save-newsrc-file): Bind - coding-system-for-write before saving. + * gnus/gnus-start.el (gnus-save-newsrc-file): + Bind coding-system-for-write before saving. 1998-08-26 Kevin Rodgers (tiny change) @@ -9861,15 +9861,15 @@ * repeat.el (repeat): Doc fix. [From rms:] (repeat-previous-repeated-command): New variable. - (repeat): Check for real-last-command being null or repeat. Set - repeat-previous-repeated-command. + (repeat): Check for real-last-command being null or repeat. + Set repeat-previous-repeated-command. * browse-url.el (browse-url-netscape): Fix format for hex escapes. 1998-08-25 Kenichi Handa - * gnus/message.el (message-send-mail-with-sendmail): Bind - coding-system-for-write by the return value of + * gnus/message.el (message-send-mail-with-sendmail): + Bind coding-system-for-write by the return value of select-message-coding-system. (message-send-mail-with-qmail): Likewise. @@ -9904,7 +9904,7 @@ * ps-print.el: Add codes to make ps-print.el work also on Emacs 20.2 and the earlier version. - (ps-mule-encode-7bit, ps-mule-encode-8bit): Modified for 20.2. + (ps-mule-encode-7bit, ps-mule-encode-8bit): Modify for 20.2. (ccl-encode-ethio-unicode, ps-mule-encode-ethiopic): Likewise. (ps-mule-find-wrappoint): Likewise. (ps-mule-generate-font): Change `X' to `x' in format control-string. @@ -9940,8 +9940,8 @@ New vars. (ps-mule-plot-rule-cmpchar, ps-mule-plot-cmpchar) (ps-mule-prepare-cmpchar-font): New funs. - (ps-mule-bitmap-prologue-generated, ps-mule-bitmap-prologue): New - vars. + (ps-mule-bitmap-prologue-generated, ps-mule-bitmap-prologue): + New vars. (ps-mule-generate-bitmap-prologue, ps-mule-generate-bitmap-font) (ps-mule-generate-bitmap-glyph): New funs. (ps-mule-initialize, ps-mule-begin): New funs. @@ -9963,10 +9963,10 @@ 1998-08-23 Kenichi HANDA - * international/mule-cmds.el (select-message-coding-system): New - function. - (set-language-environment-coding-systems): Set - default-sendmail-coding-system. + * international/mule-cmds.el (select-message-coding-system): + New function. + (set-language-environment-coding-systems): + Set default-sendmail-coding-system. * mail/sendmail.el (sendmail-coding-system): Doc-string modified. (default-sendmail-coding-system): New variable. diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9 index 1d4fa7f4013..5832e6e7c83 100644 --- a/lisp/ChangeLog.9 +++ b/lisp/ChangeLog.9 @@ -49,7 +49,7 @@ This avoids a call to eshell-file-attributes, which can be expensive in some situations. - * eshell/em-ls.el (eshell-ls-dired-initial-args): Added an extra + * eshell/em-ls.el (eshell-ls-dired-initial-args): Add an extra customization variable, to differentiate ls-in-dired from regular uses of ls. @@ -404,7 +404,7 @@ tcl-end-of-defun, tcl-submit-bug-report. (tcl-xemacs-menu): Fix up and pass it directly to easymenu. (tcl-add-emacs-menu): Remove. - (tcl-fill-mode-map, tcl-fill-inferior-map): Moved into the defvar. + (tcl-fill-mode-map, tcl-fill-inferior-map): Move into the defvar. (tcl-keyword-list): Add `chain'. (tcl-font-lock-syntactic-keywords): New variable. (tcl-pps-has-arg-6): Remove. @@ -414,14 +414,14 @@ (tcl-mode): Use define-derived-mode. Simplify. Set comment-indent-function. (tcl-indent-command): Use line-beginning-position and comment-indent. - (tcl-calculate-indent): Renamed from calculate-tcl-indent. + (tcl-calculate-indent): Rename from calculate-tcl-indent. (tcl-indent-line): Use tcl-calculate-indent. - (tcl-indent-exp): Renamed from indent-tcl-exp. Use new names. - (tcl-add-log-defun): Renamed from add-log-tcl-defun. Use match-string. + (tcl-indent-exp): Rename from indent-tcl-exp. Use new names. + (tcl-add-log-defun): Rename from add-log-tcl-defun. Use match-string. (tcl-filter): Use with-current-buffer, simplify. (inferior-tcl-mode): Use define-derived-mode. - (tcl-hairy-in-comment): Renamed tcl-in-comment. - (tcl-simple-in-comment, tcl-in-comment): Removed. + (tcl-hairy-in-comment): Rename tcl-in-comment. + (tcl-simple-in-comment, tcl-in-comment): Remove. (tcl-files-alist): New function. (tcl-help-snarf-commands): Use it and return the result directly rather than through a global variable. @@ -493,7 +493,7 @@ (view-lossage): Call `help-setup-xref' instead of doing it manually. * subr.el (symbol-file-load-history-loaded) - (load-symbol-file-load-history, symbol-file): Moved from `help.el'. + (load-symbol-file-load-history, symbol-file): Move from `help.el'. * loadup.el ("button"): Load removed. @@ -556,7 +556,7 @@ * woman.el (woman-mode-map): Copy button-buffer-map instead of making a new keymap. Don't bind mouse-2. Bind M-mouse-2 to `woman-follow-word' instead of `woman-mouse-2'. - (woman-follow-word): Renamed from `woman-mouse-2'. + (woman-follow-word): Rename from `woman-mouse-2'. Follow current unconditionally, since this function is now only bound to M-mouse-2. Use accessor functions. (WoMan-highlight-references): Use `make-text-button'. @@ -912,7 +912,7 @@ * calculator.el (calculator-copy-displayer): New user-option. (calculator-displayer-prev, calculator-displayer-next): - Renamed from calculator-displayed-{left,right}. + Rename from calculator-displayed-{left,right}. (calculator, calculator-standard-displayer) (calculator-num-to-string, calculator-update-display) (calculator-copy, calculator-put-value): Bug and display fixes. @@ -974,8 +974,8 @@ Use make-keymap instead of copy-keymap, since copying the global keymap messes up the menu bar. - * info.el (Info-goto-node, Info-menu): Doc fix. Suggested by - Roland Winkler . + * info.el (Info-goto-node, Info-menu): Doc fix. + Suggested by Roland Winkler . 2001-09-21 Eli Zaretskii @@ -1074,8 +1074,8 @@ * mail/rmail.el (top-level): Require mule-utils when compiling. (rmail-decode-babyl-format): Use detect-coding-with-priority instead of detect-coding-region, to favor detection of emacs-mule - encoded Babyl files written by rmailout.el etc. Suggested by - Kenichi Handa . + encoded Babyl files written by rmailout.el etc. + Suggested by Kenichi Handa . 2001-09-14 Eli Zaretskii @@ -1183,7 +1183,7 @@ 2001-09-07 Gerd Moellmann * isearch.el (isearch-intersects-p): New function. - (isearch-close-unnecessary-overlays): Renamed from *unecessary*, + (isearch-close-unnecessary-overlays): Rename from *unecessary*, use isearch-intersects-p, and clean up. 2001-09-07 Eli Zaretskii @@ -1215,7 +1215,7 @@ * emacs-lisp/edebug.el (edebug-window-live-p): Use get-window-with-predicate. - * window.el (get-window-with-predicate): Renamed from some-window. + * window.el (get-window-with-predicate): Rename from some-window. (some-window): Make it an alias. 2001-09-06 Gerd Moellmann @@ -1326,7 +1326,7 @@ 2001-08-31 Gerd Moellmann - * isearch.el (isearch-mouse-2): Renamed from isearch-mouse-yank. + * isearch.el (isearch-mouse-2): Rename from isearch-mouse-yank. Instead of running mouse-yank-at-click, see what the event is bound to outside Isearch and run that. @@ -1584,8 +1584,8 @@ 2001-08-20 Gerd Moellmann - * textmodes/texnfo-upd.el (texinfo-every-node-update): Remove - some spaces from a message. From Pavel Janík . + * textmodes/texnfo-upd.el (texinfo-every-node-update): + Remove some spaces from a message. From Pavel Janík . * whitespace.el (whitespace-global-mode): Add autoload cookie. @@ -1665,7 +1665,7 @@ * Makefile.in (DONTCOMPILE): Remove sc.el. - * Makefile.in (finder_setwins): Renamed from nonobsolete_setwins. + * Makefile.in (finder_setwins): Rename from nonobsolete_setwins. Don't include term/. * mail/sc.el: Moved to obsolete/. @@ -1745,7 +1745,7 @@ * calendar/calendar.el (calendar-mode-line-format): Use make-mode-line-mouse-map instead of make-mode-line-mouse2-map. - * bindings.el (make-mode-line-mouse-map): Renamed from + * bindings.el (make-mode-line-mouse-map): Rename from make-mode-line-mouse2-map. Take additional arg MOUSE. (mode-line-modified): Use mouse-3 instead of mouse-2. (mode-line-buffer-identification-keymap): Bind keys differently. @@ -1842,9 +1842,9 @@ * uniquify.el (uniquify-ref-base, uniquify-ref-filename) (uniquify-ref-buffer, uniquify-ref-proposed): New functions. (uniquify-fix-item-base, uniquify-fix-item-filename) - (uniquify-fix-item-buffer, uniquify-fix-item-proposed): Deleted. + (uniquify-fix-item-buffer, uniquify-fix-item-proposed): Delete. Callers changed. - (uniquify-set-proposed): Changed to work with a vector item. + (uniquify-set-proposed): Change to work with a vector item. (uniquify-rationalize-file-buffer-names): Use a list of arrays for the fix list, and a list of strings for the non-file buffer names. Both changes reduce consing. @@ -1880,7 +1880,7 @@ * uniquify.el: These changes correct a corner case that the old code managed correctly. - (uniquify-fix-item-proposed): Renamed from + (uniquify-fix-item-proposed): Rename from uniquify-fix-item-min-proposed. (uniquify-set-proposed): New function. (uniquify-rationalize-file-buffer-names): Code reshuffled for @@ -1946,7 +1946,7 @@ 2001-07-27 Gerd Moellmann * emacs-lisp/lisp-mode.el (last-sexp-setup-props): New function. - (last-sexp-toggle-display): Renamed from last-sexp-print. + (last-sexp-toggle-display): Rename from last-sexp-print. (last-sexp-toggle-display, eval-last-sexp-1): Use last-sexp-setup-props. @@ -1978,8 +1978,8 @@ * emacs-lisp/lisp-mode.el (eval-print-last-sexp, eval-defun): Mention the effect of eval-expression-print-length and - eval-expression-print-level in the doc strings. Suggested by - Kevin Gallagher . + eval-expression-print-level in the doc strings. + Suggested by Kevin Gallagher . 2001-07-25 Gerd Moellmann @@ -2013,7 +2013,7 @@ * uniquify.el: Overall speedup changes when using many buffers. (uniquify-fix-item-base, uniquify-fix-item-filename) - (uniquify-fix-item-buffer): Changed defmacro to defalias (cosmetic). + (uniquify-fix-item-buffer): Change defmacro to defalias (cosmetic). (uniquify-fix-item-unrationalized-buffer): Deleted: was the fourth place in the item, but was never used. (uniquify-fix-item-min-proposed): New defalias: the fourth place @@ -2026,7 +2026,7 @@ of buffer whose name was changed, but that return value was never used. (uniquify-item-lessp): Replaces uniquify-filename-lessp, works on the cached proposed name, does much less consing and is quicker. - (uniquify-filename-lessp): Deleted. + (uniquify-filename-lessp): Delete. (uniquify-rationalize-a-list): Use dolist (cosmetic change). Do not bind locally the uniquify-possibly-resolvable flag. Use the cached proposed name is possible. @@ -2075,7 +2075,7 @@ with-syntax-table. (ediff-coding-system-for-read): From ediff-diff.el. (ediff-coding-system-for-write): New variable. - (ediff-highest-priority): Fixed the bug having to do with disappearing + (ediff-highest-priority): Fix the bug having to do with disappearing overlays. (ediff-file-remote-p): Use file-remote-p, if available. (ediff-listable-file): New function. @@ -2088,8 +2088,8 @@ Use ediff-coding-system-for-read. (ediff-patch-file-internal): Use ediff-coding-system-for-write. - * ediff-diff.el (ediff-coding-system-for-read): Moved to ediff-init.el. - (ediff-match-diff3-line, ediff-get-diff3-group): Improved pattern. + * ediff-diff.el (ediff-coding-system-for-read): Move to ediff-init.el. + (ediff-match-diff3-line, ediff-get-diff3-group): Improve pattern. * ediff.el: Date of last update, copyright years. @@ -2099,8 +2099,8 @@ of Scott Bronson. (ex-cmd-assoc, ex-compile, ex-cmd-one-letr): New functions. (viper-check-sub, viper-get-ex-command, viper-execute-ex-command): - Deleted functions. - (viper-get-ex-com-subr, viper-ex, ex-mark): Changed to use the new + Delete functions. + (viper-get-ex-com-subr, viper-ex, ex-mark): Change to use the new ex-token-list. (viper-get-ex-address-subr): Convert registers to char data type. @@ -2111,7 +2111,7 @@ (viper-read-key): Use viper-read-key-sequence. * viper.el (viper-major-mode-modifier-list): - Added inferior-emacs-lisp-mode. + Add inferior-emacs-lisp-mode. (this-major-mode-requires-vi-state): New function that uses simple heuristics to decide if vi state is appropriate. (set-viper-state-in-major-mode): Use this-major-mode-requires-vi-state. @@ -2212,9 +2212,9 @@ * progmodes/tcl.el (tcl-fill-mode-map): Use tcl-indent-exp. (tcl-mode): Use tcl-add-log-defun. (tcl-indent-line): Use tcl-calculate-indent. - (tcl-calculate-indent): Renamed from calculate-tcl-indent. - (tcl-indent-exp): Renamed from indent-tcl-exp. - (tcl-add-log-defun): Renamed from add-log-tcl-defun. + (tcl-calculate-indent): Rename from calculate-tcl-indent. + (tcl-indent-exp): Rename from indent-tcl-exp. + (tcl-add-log-defun): Rename from add-log-tcl-defun. (tcl-indent-for-comment): Call comment-indent-function properly and handle the case where it returns nil. @@ -2251,7 +2251,7 @@ * mouse-sel.el (mouse-sel-bindings): Instead of unbinding mouse-1 etc., bind them to `ignore'. - * eshell/esh-mode.el (eshell-send-invisible): Renamed from + * eshell/esh-mode.el (eshell-send-invisible): Rename from send-invisible, which is already defined in Comint. (eshell-watch-for-password-prompt): Use it. @@ -2518,11 +2518,11 @@ 2001-07-11 Stefan Monnier - * vc.el (vc-prefix-map): Moved back to vc-hooks.el. + * vc.el (vc-prefix-map): Move back to vc-hooks.el. (vc-dired-mode-map): Fix the madness. * vc-hooks.el (vc-mode): Dummy function for doc purposes. - (vc-prefix-map): Moved back from vc.el. + (vc-prefix-map): Move back from vc.el. 2001-07-11 Gerd Moellmann @@ -2554,7 +2554,7 @@ * startup.el (normal-top-level): Don't operate on the initial frame if we failed to create one. -2001-07-10 Martin Stjernholm +2001-07-10 Martin Stjernholm * progmodes/cc-cmds.el (c-indent-exp): Keep the indentation of the block itself, i.e. only indent the contents in it. @@ -2586,7 +2586,7 @@ * toolbar/*.pbm: Cleaned up. From Luis Fernandes . -2001-07-09 Martin Stjernholm +2001-07-09 Martin Stjernholm * progmodes/cc-cmds.el: Extended the kludge to interoperate with the delsel and pending-del packages wrt to the new function @@ -3115,7 +3115,7 @@ 2001-05-28 Miles Bader - * comint.el (comint-carriage-motion): Renamed from + * comint.el (comint-carriage-motion): Rename from `comint-cr-magic'. Operate on the buffer instead of the string (for use as a comint post-output filter, instead of as a pre-output filter). Handle backspaces too. Add to the @@ -3226,7 +3226,7 @@ 2001-05-21 Stefan Monnier * diff-mode.el (diff-jump-to-old-file, diff-update-on-the-fly): - Renamed by removing the silly `-flag' suffix. + Rename by removing the silly `-flag' suffix. (diff-mode, diff-minor-mode, diff-find-source-location): Update. 2001-05-20 Stefan Monnier @@ -3313,7 +3313,7 @@ 2001-05-18 Simon Josefsson - * mail/smtpmail.el (maybe-append-domain): Renamed to + * mail/smtpmail.el (maybe-append-domain): Rename to `smtpmail-maybe-append-domain'. (smtpmail-via-smtp): Use the new name. @@ -3501,13 +3501,13 @@ 2001-05-08 John Wiegley * calendar/timeclock.el (timeclock-workday-remaining): - Changed logic for determining how much time is remaining. + Change logic for determining how much time is remaining. (timeclock-workday-elapsed): Don't accept a "relative" argument for the current day's elapsed time. What could that have meant? (timeclock-workday-elapsed-string): No "relative" argument anymore. - (timeclock-when-to-leave): Changed logic, similarly to what was + (timeclock-when-to-leave): Change logic, similarly to what was done for `timeclock-workday-remaining'. - (timeclock-find-discrep): Removed "today-only" argument, which had + (timeclock-find-discrep): Remove "today-only" argument, which had no meaning. Fixed some more math problems. The function now returns a three member list: (TOTAL-TIME-DISCREPANCY TODAYS-TIME-DISCREPANCY TODAYS-ELAPSED-TIME). @@ -3601,10 +3601,10 @@ * mail/rmail.el (rmail-mode-map): Use rmail-sort-by-labels instead of rmail-sort-by-keywords. - * mail/rmailsort.el (rmail-sort-by-labels): Renamed from + * mail/rmailsort.el (rmail-sort-by-labels): Rename from rmail-sort-by-keywords. - * mail/rmailsum.el (rmail-summary-sort-by-labels): Renamed from + * mail/rmailsum.el (rmail-summary-sort-by-labels): Rename from rmail-summary-sort-by-keywords. Doc fix. (rmail-summary-mode): Doc fix. @@ -3626,15 +3626,15 @@ * progmodes/cperl-mode.el (cperl-font-lock-keywords) (cperl-font-lock-keywords-1, cperl-font-lock-keywords-2): - Renamed from perl-font-lock-keywords to avoid clashes. + Rename from perl-font-lock-keywords to avoid clashes. (cperl-mode, cperl-load-font-lock-keywords, cperl-init-faces) (cperl-load-font-lock-keywords-1, cperl-load-font-lock-keywords-2): - Updated correspondingly. + Update correspondingly. * diff-mode.el (diff-nonexistent-face, diff-font-lock-keywords): Typo `nonexistant' -> `nonexistent'. -2001-05-04 Martin Stjernholm +2001-05-04 Martin Stjernholm * progmodes/cc-cmds.el (c-electric-delete, c-electric-delete-forward): Split `c-electric-delete' into two functions where @@ -3644,7 +3644,7 @@ * progmodes/cc-mode.el: `c-electric-delete-forward' is now bound to C-d to get the electric behavior on that key too. - (c-fill-paragraph): Fixed bogus direct use of + (c-fill-paragraph): Fix bogus direct use of c-comment-prefix-regexp, which caused an error when it's a list. 2001-05-03 Eli Zaretskii @@ -3785,7 +3785,7 @@ 2001-04-23 John Wiegley - * eshell/em-unix.el (eshell/diff): Fixed problems that were + * eshell/em-unix.el (eshell/diff): Fix problems that were occurring with Emacs 21's diff.el/compile.el interaction layer. 2001-04-23 Colin Walters @@ -3796,28 +3796,28 @@ 2001-04-23 John Wiegley - * eshell/em-smart.el (eshell-smart-redisplay): Added some safety + * eshell/em-smart.el (eshell-smart-redisplay): Add some safety code to work around a redisplay problem I've been having. 2001-04-23 John Wiegley * calendar/timeclock.el (timeclock-day-required): If the time required for a particular day is not set, use `timeclock-workday'. - (timeclock-find-discrep): Added some sample code in a comment. + (timeclock-find-discrep): Add some sample code in a comment. * eshell/eshell.el (eshell-command): Made a few changes so that `eshell-command' could be called programmatically. - * eshell/esh-mode.el (eshell-non-interactive-p): Moved to eshell.el. + * eshell/esh-mode.el (eshell-non-interactive-p): Move to eshell.el. - * eshell/eshell.el (eshell-non-interactive-p): Moved from esh-mode.el. + * eshell/eshell.el (eshell-non-interactive-p): Move from esh-mode.el. 2001-04-23 John Wiegley * calendar/timeclock.el: Updated copyright. (timeclock-generate-report): Don't report the daily or two-week total, if no time has been worked in that period. - (timeclock-find-discrep): Moved call to `file-readable-p'; removed + (timeclock-find-discrep): Move call to `file-readable-p'; removed final computational form, which was unnecessary; corrected a parsing problem when timeclock-relative was nil. @@ -3876,7 +3876,7 @@ 2001-04-20 Alex Schroeder - * sql.el (sql-mode-menu): Added highlighting entries. + * sql.el (sql-mode-menu): Add highlighting entries. (sql-highlight-oracle-keywords): New function. (sql-highlight-postgres-keywords): New function. (sql-highlight-ansi-keywords): New function. @@ -3887,7 +3887,7 @@ 2001-04-19 Karl Fogel - * saveplace.el (save-place-alist-to-file): Removed no-effect code + * saveplace.el (save-place-alist-to-file): Remove no-effect code that inserted file content only to delete it immediately. Probably a cut-and-paste bug. Thanks to Juanma Barranquero for the patch. @@ -3914,7 +3914,7 @@ * language/slovak.el ("Slovak"): Add tutorial entry. - * net/browse-url.el (browse-url-new-window-flag): Renamed from + * net/browse-url.el (browse-url-new-window-flag): Rename from browse-url-new-window-p. 2001-04-17 Eli Zaretskii @@ -3933,13 +3933,13 @@ 2001-04-17 Eli Zaretskii * vc-cvs.el (vc-cvs-print-log, vc-cvs-diff): Don't invoke CVS as - an async subprocess if start-process is unavailable. Suggested by - Tim Van Holder . + an async subprocess if start-process is unavailable. + Suggested by Tim Van Holder . 2001-04-15 Eli Zaretskii - * info.el (Info-additional-directory-list): Doc fix. Suggested by - Kai Großjohann . + * info.el (Info-additional-directory-list): Doc fix. + Suggested by Kai Großjohann . 2001-04-14 Eli Zaretskii @@ -4053,7 +4053,7 @@ 2001-04-10 John Wiegley - * calendar/timeclock.el (timeclock-generate-report): Added a + * calendar/timeclock.el (timeclock-generate-report): Add a missing insert of the project name. 2001-04-09 Gerd Moellmann @@ -4445,37 +4445,37 @@ * mail/sendmail.el (sendmail-send-it): Don't parse Resent-* headers. Always invoke sendmail with option -t. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * Release of cc-mode 5.28. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-mode.el, progmodes/cc-vars.el (c-common-init) (c-default-style): - Removed the hardcoded switch to "java" style in Java mode. + Remove the hardcoded switch to "java" style in Java mode. It's instead taken care of by the default value for c-default-style. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-align.el (c-lineup-math): Fix bug where lineup was triggered by equal signs in string literals. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-cmds.el (c-fill-paragraph): Fixed bug in the paragraph + * progmodes/cc-cmds.el (c-fill-paragraph): Fix bug in the paragraph limit detection when at the ends of the buffer. - * progmodes/cc-engine.el (c-guess-basic-syntax): Removed bogus check for + * progmodes/cc-engine.el (c-guess-basic-syntax): Remove bogus check for "for" statement clause in case 7F; a better one is done earlier in case 7D anyway. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-cmds.el (c-guess-fill-prefix): Improved the heuristics + * progmodes/cc-cmds.el (c-guess-fill-prefix): Improve the heuristics somewhat more and did a small optimization. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el (c-beginning-of-statement, c-end-of-statement): Use the limit argument only to limit the syntactic context @@ -4486,7 +4486,7 @@ fixes to the paragraph and comment prefix recognition, block comment ender handling etc. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el (c-fill-paragraph): Take more care to preserve the relative position of the point. @@ -4505,12 +4505,12 @@ this doesn't apply to idl-mode, since IDL afaik doesn't have statements at all.) -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-engine.el (c-inside-bracelist-p): Fix for handling bracelists where the declaration contains template arguments. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el (c-comment-indent): Use `c-get-syntactic-indentation' to correctly calculate the @@ -4521,10 +4521,10 @@ indentation sum calculation from `c-indent-line' to a separate function. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el (c-beginning-of-statement, c-comment-indent): - Fixed places where it was assumed that preprocessor directives + Fix places where it was assumed that preprocessor directives have to start in column zero. * progmodes/cc-engine.el (c-beginning-of-member-init-list): Handle C++ @@ -4536,7 +4536,7 @@ they'll get indented consistently with the same type of expression in a normal block. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el (c-fill-paragraph): The kludge that checks whether the adaptive filling package fails to keep the comment @@ -4548,18 +4548,18 @@ * progmodes/cc-cmds.el (c-fill-paragraph): Made the way the paragraph around point is recognized more robust. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-engine.el: * progmodes/cc-lobotomy.el (c-state-cache) (c-in-literal-cache, c-auto-fill-prefix, c-lit-limits) - (c-lit-type): Fixed all internal variables used dynamically so + (c-lit-type): Fix all internal variables used dynamically so that they are always bound. * progmodes/cc-cmds.el, progmodes/cc-engine.el: Improve recovery of syntactic errors: - (c-indent-region): Fixed reporting of syntactic errors so that + (c-indent-region): Fix reporting of syntactic errors so that the region is fully reindented even when an error occurs. The last syntactic error is printed afterwards. Also cleanup up a whole lot of code that tried to optimize indentation of whole @@ -4567,7 +4567,7 @@ (c-indent-sexp): Use c-indent-region. - (c-parsing-error): Changed this variable to hold the message + (c-parsing-error): Change this variable to hold the message for any syntactic error that is discovered. (c-parse-state): Search backward from point instead of the bod @@ -4578,16 +4578,16 @@ dangling "else" clauses instead of throwing an error, and fall back to a reasonable position. - (c-indent-line): Added argument to avoid reporting syntactic errors. + (c-indent-line): Add argument to avoid reporting syntactic errors. (c-show-syntactic-information): Don't report any syntactic errors. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-cmds.el (c-beginning-of-statement): Fixed bugs with + * progmodes/cc-cmds.el (c-beginning-of-statement): Fix bugs with paragraph recognition when moving by sentence in literals. - * progmodes/cc-langs.el (c-Java-javadoc-paragraph-start): Modified + * progmodes/cc-langs.el (c-Java-javadoc-paragraph-start): Modify paragraph start regexp for javadoc to recognize javadoc markup in general instead of a specific set of keywords, to be more future-safe. @@ -4610,24 +4610,24 @@ (c-current-comment-prefix): New variable containing the actual regexp from c-comment-prefix-regexp for the current buffer. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-cmds.el (c-electric-brace): Fixed check for special brace + * progmodes/cc-cmds.el (c-electric-brace): Fix check for special brace lists: We can't look at the syntax, since a brace list can get recognized as a plain statement-cont. - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug where a + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix bug where a special brace list opener broken over two lines got recognized as a statement on the second line. Case 9A changed. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-cmds.el (c-electric-brace): Fixed bug in c-state-cache + * progmodes/cc-cmds.el (c-electric-brace): Fix bug in c-state-cache adjustment after line is reindented. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-defs.el (c-point): Added optional argument for position + * progmodes/cc-defs.el (c-point): Add optional argument for position to use instead of the current point. * progmodes/cc-defs.el, progmodes/cc-engine.el (c-add-class-syntax): @@ -4635,7 +4635,7 @@ starts at boi, to avoid the extra level of indentation in that case. Cases 4, 16A and 17E affected. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el: Use `indent-according-to-mode' instead of direct calls to `c-indent-line', to adhere better to Emacs conventions. @@ -4643,17 +4643,17 @@ * progmodes/cc-engine.el (c-indent-line): Use the syntax already bound to `c-syntactic-context', if there is any. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-engine.el (c-get-offset): Fixed bug where the indentation + * progmodes/cc-engine.el (c-get-offset): Fix bug where the indentation wasn't added up correctly when a lineup function returned nil. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-engine.el (c-collect-line-comments): Fixed bug where + * progmodes/cc-engine.el (c-collect-line-comments): Fix bug where empty lines were ignored when collecting line comments backwards. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-align.el (c-lineup-dont-change): Return an absolute indentation column to work correctly in the case when several @@ -4662,17 +4662,17 @@ * progmodes/cc-engine.el, progmodes/cc-styles.el: * progmodes/cc-vars.el (c-evaluate-offset) (c-get-offset, c-indent-line, c-valid-offset, c-read-offset) - (c-set-offset): Added absolute indentation column settings by + (c-set-offset): Add absolute indentation column settings by using the vector type. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-vars.el (c-electric-paren, c-cleanup-list): Implemented two new cleanups `space-before-funcall' and `compact-empty-funcall'. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-defs.el (c-paren-re, c-identifier-re): Two new macros for helping building regexps. @@ -4684,32 +4684,32 @@ complete keyword lists. `c-keywords' is set to a regexp matching all keywords in the current language. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-engine.el (c-beginning-of-statement-1): Added '#' to the + * progmodes/cc-engine.el (c-beginning-of-statement-1): Add '#' to the list of characters to skip backwards over at the beginning of a statement, since it can precede string literals in Pike. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-cmds.el (c-guess-fill-prefix): Fixed bug with prefix + * progmodes/cc-cmds.el (c-guess-fill-prefix): Fix bug with prefix recognition when standing on the last line in a C++ comment with nothing but whitespace after the prefix. - * progmodes/cc-engine.el (c-backward-to-start-of-if): Fixed bug when + * progmodes/cc-engine.el (c-backward-to-start-of-if): Fix bug when given no limit argument. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-engine.el (c-inside-bracelist-p): Fixed brace list + * progmodes/cc-engine.el (c-inside-bracelist-p): Fix brace list recognition for the `[]= operator symbol in Pike. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-bytecomp.el (cc-eval-when-compile): New macro that works around a bug in `eval-when-compile' in the byte compiler. - * progmodes/cc-engine.el (c-forward-token-1): Fixed bug with return + * progmodes/cc-engine.el (c-forward-token-1): Fix bug with return value when count is zero and there's no token start within the limit. (c-guess-basic-syntax): Don't add 'comment-intro to lines with @@ -4719,12 +4719,12 @@ * progmodes/cc-mode-19.el: Fixes so that checks that must be done at compile time also are done then. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-defs.el: Make sure cc-mode-19 is loaded both at compile time and at runtime, and only when it's needed. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm Major cleanup for less error prone and more warning free compilation, including some fixes for bugs due to different @@ -4757,7 +4757,7 @@ README: Updated installation instructions. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-langs.el, progmodes/cc-mode.el: Moved around things to improve the modularity: @@ -4766,11 +4766,11 @@ the various variables for configuring the language syntax. * progmodes/cc-engine.el, progmodes/cc-styles.el (c-evaluate-offset) - (c-get-offset): Moved from cc-styles to cc-engine since file + (c-get-offset): Move from cc-styles to cc-engine since file dependency analysis suggests they belong there (which also makes more sense). Thanks to Martin Buchholz for doing the analysis. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el (c-fn-region-is-active-p): New function that wraps the corresponding macro, for use in places that aren't @@ -4781,19 +4781,19 @@ * progmodes/cc-mode.el (c-prepare-bug-report-hooks): Hook variable to add things to the bug report. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm - * progmodes/cc-cmds.el (c-guess-fill-prefix): Fixed bug where the + * progmodes/cc-cmds.el (c-guess-fill-prefix): Fix bug where the returned prefix could contain a newline when the search for a good prefix line failed. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-cmds.el (c-toggle-auto-state, c-toggle-hungry-state) (c-toggle-auto-hungry-state): Made the argument optional, as the documentation says it is. -2000-03-21 Martin Stjernholm +2000-03-21 Martin Stjernholm * progmodes/cc-engine.el (c-guess-basic-syntax): Don't treat the Pike multiline string syntax, #"...", as a cpp macro. @@ -4871,8 +4871,8 @@ of Scott Bronson. (ex-cmd-assoc, ex-cmd-one-letr): New functions. (viper-check-sub, viper-get-ex-command, viper-execute-ex-command): - Deleted functions. - (viper-get-ex-com-subr, viper-ex, ex-mark): Changed to use the new + Delete functions. + (viper-get-ex-com-subr, viper-ex, ex-mark): Change to use the new ex-token-list. * viper-util.el: Spaces, indentation. @@ -4886,9 +4886,9 @@ 2001-03-16 John Wiegley - * calendar/timeclock.el (timeclock-reread-log): Fixed problem with + * calendar/timeclock.el (timeclock-reread-log): Fix problem with first-time checkins. - (timeclock-log-data): Fixed problem with reading timelog log file. + (timeclock-log-data): Fix problem with reading timelog log file. Resulting data in the "day list" was incorrect. (timeclock-find-discrep): Check if `timeclock-file' is readable before opening it. @@ -5023,7 +5023,7 @@ 2001-03-09 Gerd Moellmann - * help.el (string-key-binding): Renamed from + * help.el (string-key-binding): Rename from mode-line-key-binding. Handle any event on a string. Check for `keymap' properties as well as `local-map' properties. @@ -5074,7 +5074,7 @@ 2001-03-07 Stefan Monnier * log-edit.el (log-edit-common-indent): New var. - (log-edit-set-common-indentation): Renamed from + (log-edit-set-common-indentation): Rename from log-edit-delete-common-indentation. Use the new var. (log-edit-insert-changelog, log-edit-done-hook): Use the new name. @@ -5405,8 +5405,8 @@ * startup.el (fancy-splash-screens): Use display-hourglass instead of display-busy-cursor. - * frame.el (display-hourglass): Renamed from busy-cursor. - (hourglass-delay): Renamed from busy-cursor-delay-seconds. + * frame.el (display-hourglass): Rename from busy-cursor. + (hourglass-delay): Rename from busy-cursor-delay-seconds. (show-cursor-in-non-selected-windows): Doc fix. 2001-02-20 Dave Love @@ -5557,9 +5557,9 @@ 2001-02-12 Michael Kifer - * ediff-diff.el (ediff-make-diff2-buffer): Removed bogus checks + * ediff-diff.el (ediff-make-diff2-buffer): Remove bogus checks for remote files. - (ediff-coding-system-for-read): Replaced the no-conversion default + (ediff-coding-system-for-read): Replace the no-conversion default with raw-text. * ediff-init.el: Removed :version from defcustom vars. @@ -5720,7 +5720,7 @@ 2001-02-06 Gerd Moellmann - * dabbrev.el (dabbrev-ignored-buffer-regexps): Renamed from + * dabbrev.el (dabbrev-ignored-buffer-regexps): Rename from dabbrev-ignored-regexps. 2001-02-06 Eli Zaretskii @@ -6061,14 +6061,14 @@ 2001-01-25 John Wiegley - * eshell/esh-util.el (eshell-ange-ls-uids): Changed use of `alist' + * eshell/esh-util.el (eshell-ange-ls-uids): Change use of `alist' to `repeat' in the :type field. - * pcomplete.el (pcomplete-file-ignore): Changed a :type field to + * pcomplete.el (pcomplete-file-ignore): Change a :type field to allow a choice of regexp or nil. (pcomplete-dir-ignore): Same. - * eshell/em-unix.el (eshell/occur): Fixed bug causing `occur' (as + * eshell/em-unix.el (eshell/occur): Fix bug causing `occur' (as a command) to always fail. 2001-01-25 Gerd Moellmann @@ -6117,14 +6117,14 @@ 2001-01-24 Sam Steingold - * dired.el (dired-replace-in-string): Removed. + * dired.el (dired-replace-in-string): Remove. (dired-sort-toggle): Use `replace-regexps-in-string' instead of `dired-replace-in-string'. * dired-aux.el (dired-shell-stuff-it, dired-rename-subdir) (dired-rename-subdir-2, dired-insert-subdir-doinsert): Ditto. - * gs.el (gs-replace-in-string): Removed. + * gs.el (gs-replace-in-string): Remove. (gs-options): Use `replace-regexps-in-string' instead of `gs-replace-in-string'. @@ -6248,7 +6248,7 @@ 2001-01-19 Michael Kifer - * ediff-hook.el (ediff-xemacs-init-menus): Fixed add-menu-button. + * ediff-hook.el (ediff-xemacs-init-menus): Fix add-menu-button. * ediff-init.el (subst-char-in-string): Define and use it, unless it's already defined. @@ -6309,7 +6309,7 @@ overlay priorities should make it unnecessary, right? (isearch-highlight): Face suppressing behavior removed. (isearch-dehighlight): Face suppressing behavior removed. - (isearch-set-lazy-highlight-faces-at): Removed. + (isearch-set-lazy-highlight-faces-at): Remove. 2001-01-17 Kenichi Handa @@ -6546,19 +6546,19 @@ 2000-01-09 Alex Schroeder - * ansi-color.el (ansi-color-process): Removed, Emacs and XEmacs + * ansi-color.el (ansi-color-process): Remove, Emacs and XEmacs both use ansi-color-process-output, now. (ansi-color-process-output): Doesn't return string anymore. It is installed in comint-output-filter-functions for both Emacs and XEmacs, now. - (ansi-color-unfontify-region): Simplified code removing variables + (ansi-color-unfontify-region): Simplify code removing variables pos and start-ansi. (ansi-color-apply): Put text-property ansi-color before putting text-property face because ansi-color-unfontify-region is called immediately after the call to put-text-property. (ansi-color-context-region): Doc change. - (ansi-color-filter-region): Simplified code. - (ansi-color-apply-on-region): Changed start to start-marker, using + (ansi-color-filter-region): Simplify code. + (ansi-color-apply-on-region): Change start to start-marker, using a marker explicitly. Put text-property ansi-color before putting text-property face because ansi-color-unfontify-region is called immediately after the call to put-text-property. @@ -6566,15 +6566,15 @@ 2000-01-09 Alex Schroeder * ansi-color.el (ansi-color-faces-vector): Doc change. - (ansi-color-for-comint-mode): Changed :type property to choice. - (ansi-color-last-context): Removed. + (ansi-color-for-comint-mode): Change :type property to choice. + (ansi-color-last-context): Remove. (ansi-color-process-output): Don't use ansi-color-last-context, as the main functions will store their context now. (ansi-color-context): Doc change. (ansi-color-filter-apply): Rewrote it based on ansi-color-apply. Uses ansi-color-context such that repeated calls will strip partial escape sequences, too. - (ansi-color-apply): Simplified code. Colorize end of string if + (ansi-color-apply): Simplify code. Colorize end of string if face is not null. Store context in new (FACE STRING) format, such that repeated calls will strip partial escape sequences, too. Append faces to face property using ansi-color-apply-sequence such @@ -6583,7 +6583,7 @@ (ansi-color-filter-region): Rewrote it based on ansi-color-apply-on-region. Uses ansi-color-context-region such that repeated calls will strip partial escape sequences, too. - (ansi-color-apply-on-region): Simplified code. Colorize end of + (ansi-color-apply-on-region): Simplify code. Colorize end of region if face is not null. Store context in new (FACE POS) format, such that repeated calls will strip partial escape sequences, too. Append faces to face property using @@ -6644,8 +6644,8 @@ decide what to do. This function is added to comint-preoutput-filter-functions when the package is loaded. - (ansi-color-for-shell-mode-set): Removed. - (ansi-color-for-shell-mode): Removed. + (ansi-color-for-shell-mode-set): Remove. + (ansi-color-for-shell-mode): Remove. 2000-01-09 Alex Schroeder @@ -6696,14 +6696,14 @@ * vc.el (vc-default-latest-on-branch-p): New function, replaces constant implementations in backends. - * vc-cvs.el (vc-cvs-latest-on-branch-p): Removed. - (vc-cvs-checkout): Renamed arg WRITABLE to EDITABLE. + * vc-cvs.el (vc-cvs-latest-on-branch-p): Remove. + (vc-cvs-checkout): Rename arg WRITABLE to EDITABLE. - * vc-rcs.el (vc-rcs-checkout, vc-rcs-cancel-version): Renamed arg + * vc-rcs.el (vc-rcs-checkout, vc-rcs-cancel-version): Rename arg WRITABLE to EDITABLE. - * vc-sccs.el (vc-sccs-latest-on-branch-p): Removed. - (vc-sccs-checkout, vc-sccs-cancel-version): Renamed arg WRITABLE + * vc-sccs.el (vc-sccs-latest-on-branch-p): Remove. + (vc-sccs-checkout, vc-sccs-cancel-version): Rename arg WRITABLE to EDITABLE. 2001-01-08 Eli Zaretskii @@ -6713,7 +6713,7 @@ 2001-01-08 Gerd Moellmann - * isearch.el (isearch-old-signal-hook): Removed. + * isearch.el (isearch-old-signal-hook): Remove. (isearch-mode): Add isearch-done to kbd-macro-termination-hook instead of setting signal-hook-function. (isearch-done): Remove isearch-done from kbd-macro-termination-hook. @@ -6791,7 +6791,7 @@ 2001-01-04 Gerd Moellmann * tooltip.el (tooltip-cancel-delayed-tip) - (tooltip-start-delayed-tip): Renamed from tooltip-disable-timeout + (tooltip-start-delayed-tip): Rename from tooltip-disable-timeout and tooltip-add-timeout. (tooltip-show): Set border color from faces's foreground. (tooltip-show-help-function): If called with the same help string @@ -6825,8 +6825,8 @@ (dired-guess-shell-alist-default): Don't use xloadimage for PNG. (dired-guess-shell-alist-user): Customize. (dired-x-help-address): Set to bug-gnu-emacs. - (dired-x-maintainer, dired-x-file, dired-x-version): Deleted. - (dired-default-directory): Renamed from default-directory. + (dired-x-maintainer, dired-x-file, dired-x-version): Delete. + (dired-default-directory): Rename from default-directory. * hl-line.el (hl-line): Doc fix. @@ -6917,7 +6917,7 @@ * international/fontset.el (x-complement-fontset-spec): Resolve ASCII font name so that the same family name is used for fonts registered in x-font-name-charset-alist. - (create-fontset-from-fontset-spec): Adjusted for the above change. + (create-fontset-from-fontset-spec): Adjust for the above change. The name of fontset alias should be a unresolved ASCII font name. 2000-12-28 Gerd Moellmann @@ -6932,13 +6932,13 @@ 2000-12-28 Kenichi Handa - * textmodes/artist.el (artist-butlast): Deleted. + * textmodes/artist.el (artist-butlast): Delete. (artist-ellipse-mirror-quadrant): Use butlast instead of artist-butlast. - * subr.el (butlast, nbutlast): Moved from cl.el to here. + * subr.el (butlast, nbutlast): Move from cl.el to here. - * emacs-lisp/cl.el (butlast, nbutlast): Moved to subr.el. + * emacs-lisp/cl.el (butlast, nbutlast): Move to subr.el. 2000-12-27 Eli Zaretskii @@ -6987,13 +6987,13 @@ 2000-12-25 Michael Kifer - * viper-init.el (viper-restore-cursor-type): Added condition-case guard. + * viper-init.el (viper-restore-cursor-type): Add condition-case guard. * ediff-init.el (ediff-quit-hook, ediff-suspend-hook): - Changed initialization; use add-hook. + Change initialization; use add-hook. (ediff-file-remote-p): Use file-local-copy. - * ediff-ptch.el (ediff-prompt-for-patch-buffer): Improved defaults. + * ediff-ptch.el (ediff-prompt-for-patch-buffer): Improve defaults. * ediff.el (ediff-patch-buffer): Bug fix. (ediff-revision): Allow selection of the file at the prompt. @@ -7037,7 +7037,7 @@ 2000-08-22 Emmanuel Briot - * xml.el (top level comment): Updated to reflect the fact that + * xml.el (top level comment): Update to reflect the fact that white spaces are relevant in the XML file. (xml-parse-file): Do not kill an existing Emacs buffer if the file to parse was already edited. This allows for on-the-fly analysis @@ -7158,7 +7158,7 @@ * progmodes/idlwave.el: Fixed copyright notice. - * textmodes/reftex-dcr.el (reftex-view-crossref): Added SPACE and + * textmodes/reftex-dcr.el (reftex-view-crossref): Add SPACE and TAB as key separators. 2000-12-19 Alex Schroeder @@ -7166,7 +7166,7 @@ * sql.el (sql-sybase-options): New option. (sql-sybase): Use it. Add sql-database to the list of parameters provided for login. The options -w 2048 -n are not used any more. - (sql-postgres-options): Changed default from "--pset" to "-P". + (sql-postgres-options): Change default from "--pset" to "-P". (sql-mysql-options): Doc change. (sql-stop): Doc change. @@ -7190,7 +7190,7 @@ 2000-12-18 Dave Love * simple.el (mail-user-agent): Doc fix. - (input-mode-8-bit): Removed. + (input-mode-8-bit): Remove. * international/mule.el (set-keyboard-coding-system): Doc fix. (keyboard-coding-system): New option. @@ -7373,12 +7373,12 @@ * international/characters.el: Fix cases and syntaxes for mule-unicode-0100-24ff. - * dired.el (dired-move-to-filename-regexp): Fixed for the case + * dired.el (dired-move-to-filename-regexp): Fix for the case that a Japanese character is not appended after day and year. * info.el (Info-suffix-list): Change format for a command that requires arguments. - (info-insert-file-contents): Adjusted for the above change. + (info-insert-file-contents): Adjust for the above change. 2000-12-12 Andreas Schwab @@ -7482,7 +7482,7 @@ * textmodes/reftex.el (reftex-scanning-info-available-p): New function. (reftex-TeX-master-file): Check for `tex-main-file' early enough. - * textmodes/reftex-global.el (reftex-create-tags-file): Fixed bug + * textmodes/reftex-global.el (reftex-create-tags-file): Fix bug when master file is not open. 2000-12-09 Stefan Monnier @@ -7670,12 +7670,12 @@ 2000-12-05 Rob Riepel - * emulation/tpu-edt.el (tpu-help): Fixed previous screen logic. - (tpu-search-highlight): Fixed comparison of overlay end positions. + * emulation/tpu-edt.el (tpu-help): Fix previous screen logic. + (tpu-search-highlight): Fix comparison of overlay end positions. (tpu-trim-line-ends): Implemented trimming logic locally. * emulation/tpu-extras.el (tpu-write-file-hook) - (tpu-set-cursor-bound): Replaced picture-clean with tpu-trim-line-ends. + (tpu-set-cursor-bound): Replace picture-clean with tpu-trim-line-ends. 2000-12-05 Kenichi Handa @@ -7956,8 +7956,8 @@ for the menu and would make command `imenu' awkward to use. (antlr-skip-file-prelude): With ANTLR-2.7+, you can specify named header actions and more than one. - (antlr-font-lock-tokendef-face): Changed color. - (antlr-font-lock-tokenref-face): Changed color. + (antlr-font-lock-tokendef-face): Change color. + (antlr-font-lock-tokenref-face): Change color. (antlr-font-lock-additional-keywords): Also highlight lowercase. (antlr-mode-syntax-table): New variable. (antlr-mode): Populate and use it instead `java-mode-syntax-table'. @@ -8198,7 +8198,7 @@ * ediff-init.el (ediff-abbrev-jobname): Use capitalize. - * ediff-wind.el (ediff-skip-unsuitable-frames): Deleted the + * ediff-wind.el (ediff-skip-unsuitable-frames): Delete the redundant skip-small-frames test. * viper-cmd.el (viper-change-state-to-vi): Disable overwrite mode. @@ -8297,11 +8297,11 @@ * progmodes/ada-mode.el (ada-mode): Use it instead of `ada-remove-trailing-spaces'. - (ada-remove-trailing-spaces): Removed. + (ada-remove-trailing-spaces): Remove. * textmodes/two-column.el (2C-merge): Recommend it in the doc. - * textmodes/picture.el (picture-clean): Removed. + * textmodes/picture.el (picture-clean): Remove. (picture-mode-exit): Call it instead of `picture-clean'. 2000-11-22 Gerd Moellmann @@ -8333,7 +8333,7 @@ (string-rectangle): Check delete-selection-mode. * emacs-lisp/edebug.el (edebug-version) - (edebug-maintainer-address): Deleted. + (edebug-maintainer-address): Delete. (edebug-submit-bug-report): Just alias to report-emacs-bug. (edebug-read-function): Account for other `'#' read forms. (edebug-mode-menus): Make some items toggles. @@ -8344,11 +8344,11 @@ * recentf.el (recentf-menu-items-for-commands) (recentf-make-menu-items, recentf-make-menu-item) - (recentf-filter-changer): Added :help and :active menu-item properties. + (recentf-filter-changer): Add :help and :active menu-item properties. (recentf-build-dir-rules, recentf-dump-variable) (recentf-edit-list, recentf-open-files-item) - (recentf-open-files): Replaced unnecessary `mapcar' with new + (recentf-open-files): Replace unnecessary `mapcar' with new built-in `mapc'. 2000-11-23 Miles Bader @@ -8521,7 +8521,7 @@ since this function is only concerned with master state. * vc-hooks.el (vc-workfile-unchanged-p) - (vc-default-workfile-unchanged-p): Moved here from vc.el. + (vc-default-workfile-unchanged-p): Move here from vc.el. * vc.el (vc-workfile-unchanged-p) (vc-default-workfile-unchanged-p): See above. @@ -8581,7 +8581,7 @@ (vc-cvs-print-log, vc-cvs-diff): Use asynchronous mode only for remote repositories. - * vc.el (vc-annotate): Changed handling of prefix arg; now asks + * vc.el (vc-annotate): Change handling of prefix arg; now asks for both version and ratio in the minibuffer. * vc-cvs.el (vc-cvs-annotate-command): New optional arg VERSION. @@ -8638,7 +8638,7 @@ 2000-11-15 Eli Zaretskii - * textmodes/texinfo.el (texinfo-insert-@uref): Renamed from + * textmodes/texinfo.el (texinfo-insert-@uref): Rename from texinfo-insert-@url. (texinfo-insert-@url): A defalias for texinfo-insert-@uref. (texinfo-mode-map): Bind "C-c C-c u" to texinfo-insert-@uref. @@ -9030,9 +9030,9 @@ 2000-11-06 Miles Bader - * mwheel.el (mouse-wheel-scroll-amount): Renamed from + * mwheel.el (mouse-wheel-scroll-amount): Rename from `mwheel-scroll-amount'. - (mouse-wheel-follow-mouse): Renamed from `mwheel-follow-mouse'. + (mouse-wheel-follow-mouse): Rename from `mwheel-follow-mouse'. (mouse-wheel-mode): Use (featurep 'xemacs) instead of string-matching against the version string. @@ -9050,7 +9050,7 @@ * international/mule-conf.el (compound-text): Define this coding system here. Make x-ctext and ctext aliases of it. - * language/european.el (compound-text, ctext): Moved to + * language/european.el (compound-text, ctext): Move to international/mule-conf.el. 2000-11-05 Andrew Innes @@ -9263,13 +9263,13 @@ (ps-color-device): Use `color-values' to determine if device supports color. (ps-color-values): Try to use `x-color-values' when using XEmacs. - (ps-print-page-p): Changed from defsubst to defun. - (ps-page-number): Changed from defmacro to defun. + (ps-print-page-p): Change from defsubst to defun. + (ps-page-number): Change from defmacro to defun. (ps-header-sheet, ps-header-page): Fix bug on selected pages for printing. (ps-print-ensure-fontified): Ensure fontification when jit-lock is on. (ps-end-file, ps-dummy-page): Funs eliminated. - (ps-print-color-scale): Changed default value. + (ps-print-color-scale): Change default value. (ps-page-n-up, ps-print-page-p): New internal vars. (ps-print-preprint, ps-output, ps-begin-file, ps-begin-page) (ps-plot-region, ps-generate, ps-end-job): Code fix. @@ -9281,8 +9281,8 @@ 2000-10-31 Kenichi Handa * term/mac-win.el (decode-mac-roman, encode-mac-roman, mac-roman): - Moved to european.el. - (ccl-encode-mac-roman-font, fontset-mac): Modified for + Move to european.el. + (ccl-encode-mac-roman-font, fontset-mac): Modify for mule-unicode-2500-33ff and mule-unicode-e000-ffff. (mac-roman-kbd-insert, mac-roman-kbd-mode): These functions deleted. (mac-roman-kbd-mode, mac-roman-kbd-mode-map): These variables deleted. @@ -9327,7 +9327,7 @@ * international/mule-cmds.el (encode-coding-char): Check property safe-chars instead of safe-charsets. - * international/fontset.el (fontset-default): Modified for + * international/fontset.el (fontset-default): Modify for mule-unicode-2500-33ff and mule-unicode-e000-ffff. (x-font-name-charset-alist): Likewise. (ccl-encode-unicode-font): New CCL program. Record it in @@ -9367,7 +9367,7 @@ * eshell/esh-mode.el (window-height test): Make certain that `eshell-stringify-t' is non-nil. - (eshell-password-prompt-regexp): Changed to a much simpler + (eshell-password-prompt-regexp): Change to a much simpler password regexp. (eshell-send-input): If `eshell-invoke-directly' returns t, directly invoke the parsed command using `eval'. This improves @@ -9391,7 +9391,7 @@ (eshell-rewrite-if-command): Use `eshell-protect' to wrap the call bodies. (eshell-separate-commands): Whitespace fix. - (eshell-complex-commands): Added a new list of names, for + (eshell-complex-commands): Add a new list of names, for determining whether a given command is as simple as it looks. (eshell-invoke-directly): New function. Returns t if a command should be invoked directly (using `eval'), rather than indirectly @@ -9401,10 +9401,10 @@ * eshell/em-unix.el (eshell-default-target-is-dot): New variable, which provides an emulation of the DOS shell behavior of assuming that cp/mv/ln should copy/move/link to the current directory. - (eshell-remove-entries): Added a doc string. - (eshell-shuffle-files): Removed the check for `target' being null. - (eshell-mvcp-template, eshell-mvcpln-template): Renamed - `eshell-mvcp-template' to `eshell-mvcpln-template', and extended + (eshell-remove-entries): Add a doc string. + (eshell-shuffle-files): Remove the check for `target' being null. + (eshell-mvcp-template, eshell-mvcpln-template): + Rename `eshell-mvcp-template' to `eshell-mvcpln-template', and extended it to do a smarter check of whether a destination was provided. (eshell/mv, eshell/cp): Enable `:preserve-args'. (eshell/ln): Enable `:preserve-args', and use @@ -9413,7 +9413,7 @@ (eshell/du, eshell/diff, eshell/locate): Stringify the argument list after flattening it. This makes it possible to cat files with numerical names. - (eshell-unix-initialize): Added several names to + (eshell-unix-initialize): Add several names to `eshell-complex-commands. (eshell-unix-command-complex-p): Return t if a given command name may result in external processes being invoked. @@ -9428,12 +9428,12 @@ (eshell-refresh-windows): Use `if' instead of `when'. (eshell-smart-scroll-window): Calling `save-current-buffer' was not necessary. - (eshell-currently-handling-window): Added a missing global variable. + (eshell-currently-handling-window): Add a missing global variable. * eshell/em-ls.el (eshell-do-ls): Code simplification. (eshell-ls-sort-entries, eshell-ls-entries, eshell-ls-dir): Whitespace fix. - (eshell-ls-exclude-hidden): Added this variable in addition to + (eshell-ls-exclude-hidden): Add this variable in addition to `eshell-ls-exclude-regexp'. This one prevents files beginning with . from even being read, which can improve memory consumption quite a bit. @@ -9441,7 +9441,7 @@ read file entries beginning with a dot. In home directories with lots of hidden files, fully two-thirds of the time spent in ls is used to read directory entries that are immediately thrown away. - (eshell-ls-initial-args): Added back this configuration variable, + (eshell-ls-initial-args): Add back this configuration variable, for specifying default initial arguments to every call to ls. Much faster than using an alias to do the same thing. (eshell-do-ls): Use `eshell-ls-initial-args', if set. @@ -9450,7 +9450,7 @@ * eshell/em-dirs.el (eshell/pwd): Small code simplification. * eshell/esh-util.el: Don't require `ange-ftp' if it's not available. - (eshell-stringify-t): Added a customization variable, to indicate + (eshell-stringify-t): Add a customization variable, to indicate whether `t' should be rendered as a string at all. If not, one can still determine if the result of an expression is true using "file-exists-p FILE && echo true". @@ -9460,7 +9460,7 @@ * eshell/esh-module.el: Whitespace fix. * eshell/em-alias.el (eshell-alias-initialize): - Added `eshell-command-aliased-p' to `eshell-complex-commands'. + Add `eshell-command-aliased-p' to `eshell-complex-commands'. (eshell-command-aliased-p): New function that returns t if a command name names an aliased. @@ -9476,10 +9476,10 @@ characters. * viper-util.el (viper-memq-char, viper=): New functions for working with characters. - (viper-change-cursor-color): Fixed buglet. + (viper-change-cursor-color): Fix buglet. Many functions changed to use viper= instead of = when comparing characters. - * viper.el (viper-insert-state-mode-list): Added eshell. + * viper.el (viper-insert-state-mode-list): Add eshell. * ediff-init.el (ediff-before-setup-hook): New hook. Several typos fixed in various docstrings. @@ -9712,7 +9712,7 @@ (delimit-columns-end): New vars. (delimit-columns-customize, delimit-columns-format): New funs. (delimit-columns-region, delimit-columns-rectangle) - (delimit-columns-rectangle-line): Modified to support column + (delimit-columns-rectangle-line): Modify to support column formatting. 2000-10-24 Dave Love @@ -9820,9 +9820,9 @@ * woman.el (woman-italic-face, woman-bold-face) (woman-unknown-face): Add dark-background variants. - (woman-default-faces): Renamed from `woman-colour-faces'. + (woman-default-faces): Rename from `woman-colour-faces'. Set using the stored defaults, rather than using hard-wired colors. - (woman-monochrome-faces): Renamed from `woman-black-faces'. + (woman-monochrome-faces): Rename from `woman-black-faces'. Just make the foreground `unspecified' rather than "black". (woman-menu): Rename menu entries accordingly. @@ -9865,13 +9865,13 @@ (vc-delete-automatic-version-backups, vc-make-version-backup): New functions. (vc-before-save): Use the latter. - (vc-default-make-version-backups-p): Added `-p' suffix to avoid + (vc-default-make-version-backups-p): Add `-p' suffix to avoid confusion. - * vc-cvs.el (vc-cvs-make-version-backups-p): Added `-p' suffix as + * vc-cvs.el (vc-cvs-make-version-backups-p): Add `-p' suffix as expected by vc[-hooks].el. - * vc.el (vc-checkout): Added `-p' suffix in call to + * vc.el (vc-checkout): Add `-p' suffix in call to vc-make-version-backups-p; use vc-make-version-backup to actually make the backup. (vc-version-other-window, vc-version-backup-file): Handle both @@ -9882,7 +9882,7 @@ 2000-10-22 Miles Bader * comint.el (comint-highlight-input, comint-highlight-prompt): - Renamed, `-face' at end removed. + Rename, `-face' at end removed. (comint-send-input, comint-output-filter): Use renamed faces. * window.el (fit-window-to-buffer): Change defaulting of @@ -9989,7 +9989,7 @@ * dirtrack.el (dirtrack): Fix call to run-hooks. - * cmuscheme.el (cmuscheme-program-name): Renamed from + * cmuscheme.el (cmuscheme-program-name): Rename from scheme-program-name because xscheme.el contains a defcustom with the same name. As a consequence, customizing group `cmuscheme' loaded `xscheme' which redefined run-scheme. @@ -10090,8 +10090,8 @@ 2000-10-18 Miles Bader - * comint.el (comint-delete-output): Renamed from `comint-kill-output'. - (comint-kill-output): Changed into an alias for `comint-delete-output', + * comint.el (comint-delete-output): Rename from `comint-kill-output'. + (comint-kill-output): Change into an alias for `comint-delete-output', and made obsolete. (comint-mode-map): Rename references to comint-kill-output. @@ -10113,7 +10113,7 @@ * diff-mode.el (diff-header-face, diff-file-header-face): Add specific setting for dark background. - (diff-context-face): Renamed from diff-comment-face. + (diff-context-face): Rename from diff-comment-face. Set explicitly rather than inheriting from font-lock-comment-face. 2000-10-17 Eli Zaretskii @@ -10208,7 +10208,7 @@ * whitespace.el: Doc fixes. (top-level): Don't add hooks here. - (whitespace-running-emacs): Deleted. + (whitespace-running-emacs): Delete. (timer): Don't require. (whitespace): Add back :version conditional on xemacs test. (whitespace-spacetab-regexp, whitespace-indent-regexp) @@ -10302,7 +10302,7 @@ 2000-10-13 John Wiegley - * eshell/esh-util.el (require): Added a missing `require' form, + * eshell/esh-util.el (require): Add a missing `require' form, needed when compiling (for an ange-ftp macro definition). 2000-10-13 Dave Love @@ -10318,10 +10318,10 @@ 2000-10-13 Stephen Gildea - * time-stamp.el (time-stamp): Fixed bug in new multi-line code + * time-stamp.el (time-stamp): Fix bug in new multi-line code that breaks with old list format timestamps. (time-stamp-warn-inactive, time-stamp-old-format-warn) - (time-stamp-count, time-stamp-conversion-warn): Improved doc strings. + (time-stamp-count, time-stamp-conversion-warn): Improve doc strings. 2000-10-13 John Wiegley @@ -10333,7 +10333,7 @@ 2000-10-13 John Wiegley - * desktop.el (desktop-buffer-modes-to-save): Added a global for + * desktop.el (desktop-buffer-modes-to-save): Add a global for specifying what "other" kinds of buffers should be saved. This used to be hard-coded. (desktop-buffer-misc-functions): A global for specifying how @@ -10345,7 +10345,7 @@ (desktop-buffer-info-misc-data): Aux function for determining Info buffer auxiliary info. (desktop-buffer-dired-misc-data): Likewise, but for dired buffers. - (desktop-buffer-info): Changed this function to use the info + (desktop-buffer-info): Change this function to use the info gathered above. (desktop-create-buffer): Be a little more careful about what `minor-mode' means before calling it. This is important for some @@ -10363,7 +10363,7 @@ (eshell-ls-annotate): Use `eshell-file-attributes'. (eshell-ls-file): Made the user-id printing code a bit smarter. - * eshell/esh-util.el (eshell-ange-ls-uids): Added variable, to + * eshell/esh-util.el (eshell-ange-ls-uids): Add variable, to allow identification of alias user ids in remote directories. It's manual, but there's no other way to know when the current user on the local machine, is also the owning user on the remote machine. @@ -10386,7 +10386,7 @@ full-fledged FTP client, with much more manipulation ability than most other clients. - * eshell/em-unix.el (eshell-du-prefer-over-ange): Added a new + * eshell/em-unix.el (eshell-du-prefer-over-ange): Add a new variable, which means that Eshell's du should always be preferred in remote directories. (eshell-shuffle-files): Use `eshell-file-attributes', rather than @@ -10395,7 +10395,7 @@ when reading remote directories. This is an Eshell-specific variable (not part of ange-ftp). (eshell/ln): Bind `ange-cache'. - (eshell/du): Added some extra logic for determining when to use + (eshell/du): Add some extra logic for determining when to use Eshell's du (which is slow), and when to use the external version (which may or may not exist). @@ -10404,7 +10404,7 @@ `get-buffer-process', since backgrounded processes don't count in the context of this function's logic. - * eshell/esh-arg.el (eshell-parse-double-quote): Moved a call to + * eshell/esh-arg.el (eshell-parse-double-quote): Move a call to `forward-char', so that null strings are parsed correctly. 2000-09-13 John Wiegley @@ -10471,7 +10471,7 @@ 2000-10-12 Gerd Moellmann * startup.el (fancy-splash-screens): Don't add a pre-command hook. - (fancy-splash-pre-command, fancy-splash-pending-command): Removed. + (fancy-splash-pre-command, fancy-splash-pending-command): Remove. (command-line-1): Don't use fancy-splash-pending-command. (fancy-splash-screens-1): Goto point-min after inserting text. @@ -10633,7 +10633,7 @@ * progmodes/etags.el: Docstring fixes. Maintainer line updated. (initialize-new-tags-table): Use run-hook-with-args-until-success. (find-tag): Use pop-to-buffer if switch-to-buffer failed. - (tags-table-format-functions): Renamed from tags-table-format-hooks. + (tags-table-format-functions): Rename from tags-table-format-hooks. * vc.el (vc-version-diff): diff-switches can be a list. Use relative filenames for prettier output. @@ -10658,8 +10658,8 @@ (jit-lock-unregister): Don't bother handling complex hooks any more. (jit-lock-refontify): New function. (jit-lock-fontify-buffer): Use it. - (jit-lock-function-1): Replaced by jit-lock-fontify-now. - (jit-lock-fontify-now): Renamed from jit-lock-function-1. + (jit-lock-function-1): Replace by jit-lock-fontify-now. + (jit-lock-fontify-now): Rename from jit-lock-function-1. Add optional args START and END. Never call font-lock-fontify-region directly. (jit-lock-function, jit-lock-stealth-fontify): Use it. @@ -10681,9 +10681,9 @@ * play/spook.el (spook-phrases-file): Use expand-file-name, not concat. - * emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Don't - insist on symbols starting with word syntax. - (lisp-mode-shared-map): Renamed from shared-lisp-mode-map. + * emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): + Don't insist on symbols starting with word syntax. + (lisp-mode-shared-map): Rename from shared-lisp-mode-map. (eval-defun-1): Doc fix. (indent-sexp): Use nconc to build up indent-stack. @@ -10732,8 +10732,8 @@ 2000-10-08 Eli Zaretskii - * international/titdic-cnv.el (quail-cxterm-package-ext-info): Fix - typos in doc strings. + * international/titdic-cnv.el (quail-cxterm-package-ext-info): + Fix typos in doc strings. * font-lock.el (font-lock-mode, global-font-lock-mode): Mention in the doc strings how to customize Font Lock faces. @@ -10846,7 +10846,7 @@ * net/net-utils.el (nslookup-prompt-regexp, ftp-prompt-regexp) (smbclient-prompt-regexp): Add usage note to doc string. - (ftp-font-lock-keywords, smbclient-font-lock-keywords): Removed. + (ftp-font-lock-keywords, smbclient-font-lock-keywords): Remove. (ftp-mode, smbclient-mode): Don't set `font-lock-defaults'. Use add-hook for adding the comint filter function, and only do so if it's not already in the global hook list. @@ -11002,7 +11002,7 @@ (ftp-font-lock-keywords, smbclient-font-lock-keywords): Only set if window-system is non-nil. (net-utils-run-program): Returns buffer. - (network-connection-reconnect): Added this function. + (network-connection-reconnect): Add this function. * generic.el: Incorporates extensive cleanup and docfixes by @@ -11011,16 +11011,16 @@ (generic-mode-name, generic-comment-list) (generic-keywords-list, generic-font-lock-expressions) (generic-mode-function-list, generic-mode-syntax-table): - Removed variables. - (generic-mode-alist): Renamed to generic-mode-list. + Remove variables. + (generic-mode-alist): Rename to generic-mode-list. (generic-find-file-regexp): Default changed to "^#". (generic-read-type): Uses completing read on generic-mode-list. - (generic-mode-sanity-check): Removed this function. - (generic-add-to-auto-mode): Removed this function. + (generic-mode-sanity-check): Remove this function. + (generic-add-to-auto-mode): Remove this function. (generic-mode-internal): Bind mode-specific definitions into function instead of putting them in alist. - (generic-mode-set-comments): Reworked extensively. - (generic-mode-find-file-hook): Simplified regexp searching. + (generic-mode-set-comments): Rework extensively. + (generic-mode-find-file-hook): Simplify regexp searching. (generic-make-keywords-list): Omit extra pair of parens. * find-lisp.el (find-lisp-find-files-internal): @@ -11028,13 +11028,13 @@ * generic-x.el (apache-conf-generic-mode): Regexp now allows leading whitespace. - (rc-generic-mode): Added eval-when-compile + (rc-generic-mode): Add eval-when-compile around generic-make-keywords-list. Deleted duplicate regexp. - (rul-generic-mode): Added eval-when-compile + (rul-generic-mode): Add eval-when-compile around generic-make-keywords-list. (etc-fstab-generic-mode): New generic mode. - (rul-generic-mode): Removed one eval-when-compile + (rul-generic-mode): Remove one eval-when-compile which caused a max-specpdl-size exceeded error. 2000-10-04 Miles Bader @@ -11084,7 +11084,7 @@ * isearch.el (isearch-faces): New custom group. (isearch): New defface; was already tested for in the code. - (isearch-lazy-highlight-face): Changed to defface from defcustom. + (isearch-lazy-highlight-face): Change to defface from defcustom. (isearch-highlight): Always use face `isearch'. 2000-10-02 Dave Love @@ -11155,14 +11155,14 @@ is visited. (vc-start-entry): New argument initial-contents. Don't visit the file if it isn't already visited. Brought documentation up-to-date. - (vc-next-action, vc-register): Updated calls to vc-start-entry. + (vc-next-action, vc-register): Update calls to vc-start-entry. (vc-checkin): New optional arg initial-contents, which is passed to vc-start-entry. (vc-finish-logentry): Make sure to bury log buffer only if there really is one. Call `vc-resynch-buffer' on log-file, not buffer-file-name. (vc-default-comment-history, vc-default-wash-log): New functions. - (vc-index-of): Removed. + (vc-index-of): Remove. (vc-transfer-file): Make do without the above. (vc-default-receive-file): Call comment-history unconditionally. Pass the resulting string to vc-checkin, instead of inserting it into the @@ -11175,8 +11175,8 @@ 2000-10-01 Miles Bader - * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): Call - `recenter' with an arg to prevent redrawing the display. + * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): + Call `recenter' with an arg to prevent redrawing the display. 2000-09-30 Stefan Monnier @@ -11191,7 +11191,7 @@ (latex-imenu-create-index): Use it. Move the regexp construction outside loops (and use push). (tex-font-lock-keywords-1, tex-font-lock-keywords-2) - (tex-font-lock-keywords): Moved from font-lock.el. + (tex-font-lock-keywords): Move from font-lock.el. (tex-comment-indent): Remove. (tex-common-initialization): Don't set comment-indent-function. (latex-block-default): New var. @@ -11267,7 +11267,7 @@ 2000-09-29 Miles Bader * image-file.el (image-file-name-extensions): New variable. - (image-file-name-regexps): Renamed from `image-file-regexps'. + (image-file-name-regexps): Rename from `image-file-regexps'. New default value is nil. Call `auto-image-file-mode'. (image-file-name-regexp): New function. (auto-image-file-mode): New minor mode. @@ -11547,9 +11547,9 @@ type. (cperl-mode): Set normal-auto-fill-function and don't zap auto-fill-function. - (cperl-imenu--function-name-regexp-perl): Renamed from + (cperl-imenu--function-name-regexp-perl): Rename from imenu-example--function-name-regexp-perl. - (cperl-imenu--create-perl-index): Renamed from + (cperl-imenu--create-perl-index): Rename from imenu-example--create-perl-index. (cperl-xsub-scan): Don't require cl. @@ -11618,8 +11618,8 @@ 2000-09-20 Dave Love * iswitchb.el: Some doc fixes. - (iswitchb-mode-map): Define completely initially. Inherit - minibuffer-local-map. + (iswitchb-mode-map): Define completely initially. + Inherit minibuffer-local-map. (iswitchb-completion-help) : Use fundamental-mode. (iswitchb-global-map): New variable. @@ -11704,7 +11704,7 @@ * toolbar/tool-bar.el: Renamed from toolbar.el. Change `toolbar' to `tool-bar' generally in symbols. Make some items invisible in `special' major modes. - (tool-bar-add-item-from-menu): Renamed from toolbar-like-menu-item. + (tool-bar-add-item-from-menu): Rename from toolbar-like-menu-item. Add arg PROPS. * startup.el (fancy-splash-screen) : Fix syntax. @@ -11862,8 +11862,8 @@ * strokes.el: Sync with maintainer's current version with changes for Emacs, but avoid runtime cl and levents. (toplevel): Change autoloads and compilation requires. - (strokes-version, strokes-bug-address, strokes-lift): Values - changed. + (strokes-version, strokes-bug-address, strokes-lift): + Values changed. (strokes-xpm-header, strokes-insinuated): New variable. (strokes): Add :link. (strokes-mode): Customized. @@ -11890,8 +11890,8 @@ (strokes-xpm-encode-length-as-string, strokes-xpm-decode-char) (strokes-xpm-to-compressed-string, strokes-decode-buffer) (strokes-encode-buffer, strokes-xpm-for-compressed-string) - (strokes-compose-complex-stroke, strokes-alphabetic-lessp): New - functions. + (strokes-compose-complex-stroke, strokes-alphabetic-lessp): + New functions. 2000-09-15 Gerd Moellmann @@ -11944,10 +11944,10 @@ 2000-09-14 Alex Schroeder * ansi-color.el (ansi-colors): Doc change. - (ansi-color-get-face): Simplified regexp. - (ansi-color-faces-vector): Added more faces, doc change. + (ansi-color-get-face): Simplify regexp. + (ansi-color-faces-vector): Add more faces, doc change. (ansi-color-names-vector): Doc change. - (ansi-color-regexp): Simplified regexp. + (ansi-color-regexp): Simplify regexp. (ansi-color-parameter-regexp): New regexp. (ansi-color-filter-apply): Doc change. (ansi-color-filter-region): Doc change. @@ -11955,11 +11955,11 @@ deal with zero length parameters. (ansi-color-apply-on-region): Doc change. (ansi-color-map): Doc change. - (ansi-color-map-update): Removed debugging message. - (ansi-color-get-face-1): Added condition-case to trap + (ansi-color-map-update): Remove debugging message. + (ansi-color-get-face-1): Add condition-case to trap args-out-of-range errors. (ansi-color-get-face): Doc change. - (ansi-color-make-face): Removed. + (ansi-color-make-face): Remove. (ansi-color-for-shell-mode): New option. 2000-09-13 Kenichi Handa @@ -12022,25 +12022,25 @@ 2000-09-12 Kenichi Handa - * international/quail.el (quail-define-package): Docstring - modified. + * international/quail.el (quail-define-package): + Docstring modified. 2000-09-12 Kenichi Handa - * international/titdic-cnv.el (quail-cxterm-package-ext-info): Add - extra docstrings for "chinese-ccdospy", "chinese-ecdict", + * international/titdic-cnv.el (quail-cxterm-package-ext-info): + Add extra docstrings for "chinese-ccdospy", "chinese-ecdict", "chinese-etzy", "chinese-sw", and "chinese-ziranma". Modify the docstring of "chinese-py". - * international/quail.el (quail-translation-docstring): New - variable. + * international/quail.el (quail-translation-docstring): + New variable. (quail-show-keyboard-layout): Docstring modified. (quail-select-current): Likewise. (quail-build-decode-map): Change arg MAP to MAP-LIST to avoid infinite recursive call. (quail-help): Check quail-translation-docstring. Format of the output changed. - (quail-help-insert-keymap-description): Adjusted for the above + (quail-help-insert-keymap-description): Adjust for the above change. 2000-09-11 Gerd Moellmann @@ -12151,7 +12151,7 @@ 2000-09-07 Kenichi Handa - * help.el (help-make-xrefs): Adjusted for the change of + * help.el (help-make-xrefs): Adjust for the change of help-xref-mule-regexp. (help-insert-xref-button): New function. @@ -12205,10 +12205,10 @@ (vc-merge): Use RET for first version to trigger merge-news, not prefix arg. (vc-annotate): Handle backends that do not support annotation. - (vc-default-merge-news): Removed. The existence of a merge-news + (vc-default-merge-news): Remove. The existence of a merge-news implementation is now checked on caller sites. - * vc-hooks.el (vc-default-mode-line-string): Removed CVS special + * vc-hooks.el (vc-default-mode-line-string): Remove CVS special case. * vc-cvs.el (vc-cvs-mode-line-string): New function, handles the @@ -12227,11 +12227,11 @@ (vc-after-save): Call `vc-dired-resynch-file' only if vc is loaded. * vc.el: Require dired-aux during compilation. - (vc-name-assoc-file): Moved to vc-sccs.el. + (vc-name-assoc-file): Move to vc-sccs.el. (with-vc-properties): New macro. (vc-checkin, vc-checkout, vc-revert, vc-cancel-version) (vc-finish-steal): Use it. - (vc-cancel-version): Moved RCS-specific code to vc-rcs.el. The call + (vc-cancel-version): Move RCS-specific code to vc-rcs.el. The call to the backend-specific function is now supposed to do the checkout, too. (vc-log-edit): Handle FILE being nil and added a FIXME for log-edit. @@ -12239,15 +12239,15 @@ * vc-cvs.el (vc-cvs-checkin, vc-cvs-checkout): Don't bother to set file properties; that gets done in the generic code now. - * vc-rcs.el (vc-rcs-uncheck): Renamed to `vc-rcs-cancel-version'. + * vc-rcs.el (vc-rcs-uncheck): Rename to `vc-rcs-cancel-version'. Changed parameter list, added code from vc.el that does the checkout, possibly with a double-take. - * vc-sccs.el (vc-sccs-name-assoc-file): Moved here from vc.el. - (vc-sccs-add-triple, vc-sccs-rename-file, vc-sccs-lookup-triple): Use - the above under the new name. - (vc-sccs-uncheck): Renamed to `vc-sccs-cancel-version'. Changed - parameter list, added checkout command. + * vc-sccs.el (vc-sccs-name-assoc-file): Move here from vc.el. + (vc-sccs-add-triple, vc-sccs-rename-file, vc-sccs-lookup-triple): + Use the above under the new name. + (vc-sccs-uncheck): Rename to `vc-sccs-cancel-version'. + Changed parameter list, added checkout command. (vc-sccs-checkin, vc-sccs-checkout): Don't bother to set file properties; that gets done in the generic code now. @@ -12288,8 +12288,8 @@ * sql.el (sql-mode-menu): Work around missing variable mark-active in XEmacs. - (sql-mode): Added call to easy-menu-add for XEmacs compatibility. - (sql-interactive-mode): Added call to easy-menu-add for XEmacs + (sql-mode): Add call to easy-menu-add for XEmacs compatibility. + (sql-interactive-mode): Add call to easy-menu-add for XEmacs compatibility. 2000-09-04 Gerd Moellmann @@ -12339,8 +12339,8 @@ (vc-default-could-register): New function. (vc-dired-buffers-for-dir, vc-dired-resynch-file): New functions. (vc-resynch-buffer): Call vc-dired-resynch-file. - (vc-start-entry, vc-finish-logentry, vc-revert-buffer): Use - vc-resynch-buffer instead of vc-resynch-window. + (vc-start-entry, vc-finish-logentry, vc-revert-buffer): + Use vc-resynch-buffer instead of vc-resynch-window. (vc-next-action-dired): Don't redisplay here, that gets done as a result of the individual file operations. (vc-retrieve-snapshot): Corrected prompt order. @@ -12349,8 +12349,8 @@ * vc-cvs.el (vc-cvs-stay-local): Allow it to be a hostname regexp as well. - (vc-cvs-remote-p): Renamed to vc-cvs-stay-local-p. Handle - hostname regexps. Updated all callers. + (vc-cvs-remote-p): Rename to vc-cvs-stay-local-p. + Handle hostname regexps. Updated all callers. (vc-cvs-responsible-p): Handle directories as well. (vc-cvs-could-register): New function. (vc-cvs-retrieve-snapshot): Parse "cvs update" output, keep file @@ -12387,7 +12387,7 @@ (vc-dired-mode-map): Inherit from dired-mode-map. (vc-dired-mode): Local value of dired-move-to-filename-regexp simplified. - (vc-dired-state-info): Removed, updated caller. + (vc-dired-state-info): Remove, updated caller. (vc-default-dired-state-info): Use parentheses instead of hyphens. (vc-dired-hook): Use vc-BACKEND-dir-state, if available. (vc-dired-listing-switches): New variable. @@ -12428,7 +12428,7 @@ * vc.el (vc-next-action-on-file): Corrected several messages. (vc-merge): Add prefix arg `merge-news'; handle it. - * vc-cvs.el (vc-cvs-workfile-version): Removed comment that this + * vc-cvs.el (vc-cvs-workfile-version): Remove comment that this is not reached. It is. (vc-cvs-merge): Set state to 'edited after merge. (vc-cvs-merge-news): Set workfile version to nil if not known. @@ -12456,9 +12456,9 @@ (vc-new-comment-index): New function. (vc-previous-comment): Use it. Make the minibuffer message slightly less terse. - (vc-comment-search-reverse): Make it work forward as well. Don't - set vc-comment-ring-index if no match is found. Use - vc-new-comment-index. + (vc-comment-search-reverse): Make it work forward as well. + Don't set vc-comment-ring-index if no match is found. + Use vc-new-comment-index. (vc-comment-search-forward): Use vc-comment-search-reverse. (vc-dired-mode-map): Don't inherit from dired-mode-map since define-derived-mode will do it for us. Bind `v' to a keymap that @@ -12482,7 +12482,7 @@ (vc-cvs-stay-local): Default to t. (vc-cvs-remote-p): New function and property. (vc-cvs-state): Stay local only if the above is t. - (vc-handle-cvs): Removed. + (vc-handle-cvs): Remove. (vc-cvs-registered): Don't check vc-handle-cvs -- it should all be done via vc-handled-backends now. (vc-cvs-header): Escape Id. @@ -12499,10 +12499,10 @@ * vc.el (vc-exec-after): Fix disassembly of previous sentinel. (vc-print-log): Search current revision from beginning of buffer. (vc-revert-buffer): Clear echo area after the diff is finished. - (vc-prefix-map): Removed definition of "t" for terse display in vc + (vc-prefix-map): Remove definition of "t" for terse display in vc dired. - (vc-dired-mode-map): Inherit from dired-mode-map. Added - definition of "vt" for terse display. + (vc-dired-mode-map): Inherit from dired-mode-map. + Added definition of "vt" for terse display. (vc-dired-mode): Fix dired-move-to-filename-regexp. 2000-09-04 Stefan Monnier @@ -12520,11 +12520,11 @@ (vc-print-log): Use vc-exec-after and use log-view-goto-rev if present. - * vc-sccs.el (vc-sccs-state-heuristic): Use - file-ownership-preserved-p. + * vc-sccs.el (vc-sccs-state-heuristic): + Use file-ownership-preserved-p. - * vc-rcs.el (vc-rcs-state-heuristic): Use - file-ownership-preserved-p. + * vc-rcs.el (vc-rcs-state-heuristic): + Use file-ownership-preserved-p. (vc-rcs-checkout): Remove the error-handling for missing-rcs. 2000-09-04 Andre Spiegel @@ -12553,11 +12553,11 @@ current buffer without any fuss'. (vc-version-diff): Change the `diff' backend operation to just put the diff in the current buffer without erasing it. Always use - *vc-diff* even for directory-diffs. Use vc-setup-buffer. Protect - shrink-window-if-larger-than-buffer. + *vc-diff* even for directory-diffs. Use vc-setup-buffer. + Protect shrink-window-if-larger-than-buffer. (vc-print-log): Change the `print-log' backend operation to just - put the log in the current buffer without erasing it. Protect - shrink-window-if-larger-than-buffer. + put the log in the current buffer without erasing it. + Protect shrink-window-if-larger-than-buffer. (vc-update-change-log): Fix setd typo. * vc-sccs.el (vc-sccs-workfile-unchanged-p): Fix parenthesis. @@ -12567,8 +12567,8 @@ (vc-rcs-diff): Insert in the current buffer and remove unused arg CMP. - * vc-cvs.el (vc-cvs-state, vc-cvs-fetch-status): Use - with-temp-file. Use the new BUFFER=t argument to vc-do-command. + * vc-cvs.el (vc-cvs-state, vc-cvs-fetch-status): + Use with-temp-file. Use the new BUFFER=t argument to vc-do-command. (vc-cvs-print-log, vc-cvs-diff): Insert in the current buffer. 2000-09-04 Andre Spiegel @@ -12578,13 +12578,13 @@ (vc-default-workfile-unchanged-p): New function. Delegates to a full vc-BACKEND-diff. - * vc-hooks.el (vc-simple-command): Removed. + * vc-hooks.el (vc-simple-command): Remove. * vc-rcs.el (vc-rcs-workfile-unchanged-p): Use vc-do-command instead of vc-simple-command. - (vc-rcs-fetch-master-state): Removed check for unlocked-changes to + (vc-rcs-fetch-master-state): Remove check for unlocked-changes to avoid doing a diff when opening a file. - (vc-rcs-state): Added check for unlocked-changes. + (vc-rcs-state): Add check for unlocked-changes. (vc-rcs-header): Escape Id. (vc-rcs-workfile-unchanged-p): Remove optional arg VERSION. (vc-rcs-state): Call vc-workfile-unchanged-p, not the RCS-specific @@ -12600,7 +12600,7 @@ 2000-09-04 Stefan Monnier - * vc.el (vc-editable-p): Renamed from vc-writable-p. + * vc.el (vc-editable-p): Rename from vc-writable-p. (with-vc-file, vc-merge): Use vc-editable-p. (vc-do-command): Remove unused var vc-file and fix the doubly-defined `status' var. Add a user message when starting an @@ -12674,8 +12674,8 @@ way the function itself works. (vc-file-owner): Remove. - * vc-cvs.el (vc-cvs-registered): Use with-temp-buffer. Reorder - extraction of fields and call to file-attributes because of a + * vc-cvs.el (vc-cvs-registered): Use with-temp-buffer. + Reorder extraction of fields and call to file-attributes because of a temporary bug in rcp.el. (vc-cvs-fetch-status): Use with-current-buffer. @@ -12726,8 +12726,8 @@ * vc-rcs.el (vc-rcs-exists): Remove. (vc-rcs-header): New var. - * vc-sccs.el (vc-sccs-responsible-p, vc-sccs-register): Use - `vc-sccs-search-project-dir' instead of `vc-sccs-project-dir'. + * vc-sccs.el (vc-sccs-responsible-p, vc-sccs-register): + Use `vc-sccs-search-project-dir' instead of `vc-sccs-project-dir'. (vc-sccs-header): New var. * vc.el (vc-do-command): Get rid of the `last' argument. @@ -12761,8 +12761,8 @@ (vc-cancel-version): prettify error message with \\[...]. (vc-rename-master): New function. (vc-rename-file): Use vc-BACKEND-rename-file (which might in turn - use vc-rename-master) instead of vc-BACKEND-record-rename. Make - the CVS special case generic. + use vc-rename-master) instead of vc-BACKEND-record-rename. + Make the CVS special case generic. (vc-default-record-rename): Remove. (vc-file-tree-walk-internal): Only call FUNC for files that are under control of some VC backend and replace `concat' with @@ -12771,7 +12771,7 @@ (vc-version-diff, vc-snapshot-precondition, vc-create-snapshot) (vc-retrieve-snapshot): Update call to vc-file-tree-walk. - * vc-sccs.el (vc-sccs-rename-file): Renamed from + * vc-sccs.el (vc-sccs-rename-file): Rename from vc-sccs-record-rename. Use `find-file-noselect' rather than `find-file' and call `vc-rename-master' to do the actual move. (vc-sccs-diff): Remove unused `backend' variable. @@ -12833,7 +12833,7 @@ 2000-09-04 Stefan Monnier - * vc.el (vc-locking-user): Moved from vc-hooks.el. + * vc.el (vc-locking-user): Move from vc-hooks.el. 2000-09-04 Stefan Monnier @@ -12859,9 +12859,9 @@ using the default function. (vc-call-backend): If calling the default function, pass it the backend as first argument. Update the docstring accordingly. - (vc-default-state-heuristic, vc-default-mode-line-string): Update - for the new backend argument. - (vc-make-backend-sym): Renamed from vc-make-backend-function. + (vc-default-state-heuristic, vc-default-mode-line-string): + Update for the new backend argument. + (vc-make-backend-sym): Rename from vc-make-backend-function. (vc-find-backend-function): Use the new name. (vc-default-registered): New function. @@ -12927,8 +12927,8 @@ 2000-09-04 Andre Spiegel - * vc.el (vc-file-clear-masterprops): Removed. - (vc-checkin, vc-revert-buffer): Removed calls to the above. + * vc.el (vc-file-clear-masterprops): Remove. + (vc-checkin, vc-revert-buffer): Remove calls to the above. (vc-version-diff): Use buffer-size without argument. (vc-register): Heed vc-initial-comment. @@ -12937,12 +12937,12 @@ * vc-rcs.el (vc-rcs-register): Parse command output to find master file name and workfile version. - (vc-rcs-checkout): Removed call to vc-file-clear-masterprops. + (vc-rcs-checkout): Remove call to vc-file-clear-masterprops. - * vc-cvs.el (vc-cvs-merge-news, vc-cvs-checkout): Removed call to + * vc-cvs.el (vc-cvs-merge-news, vc-cvs-checkout): Remove call to vc-file-clear-masterprops. - * vc-sccs.el (vc-sccs-checkout): Removed call to + * vc-sccs.el (vc-sccs-checkout): Remove call to vc-file-clear-masterprops. If writable, set vc-state to 'edited rather than user login name. @@ -12969,7 +12969,7 @@ 2000-09-04 Andre Spiegel * vc.el (with-vc-file, vc-next-action, vc-version-diff) - (vc-dired-mark-locked): Replaced usage of vc-locking-user with + (vc-dired-mark-locked): Replace usage of vc-locking-user with vc-state or vc-up-to-date-p. (vc-merge): Use vc-backend-defines to check whether merging is possible. Set state to 'edited after successful merge. @@ -13015,25 +13015,25 @@ * vc-cvs.el (vc-cvs-print-log, vc-cvs-diff): Run cvs asynchronously. * vc.el (vc-do-command): kill-all-local-variables, to reset any - major-mode in which the buffer might have been put earlier. Use - `remove' and `when'. Allow `okstatus' to be `async' and use + major-mode in which the buffer might have been put earlier. + Use `remove' and `when'. Allow `okstatus' to be `async' and use `start-process' in this case. (vc-version-diff): Handle the case where the diff looks empty because of the use of an async process. 2000-09-04 Andre Spiegel - * vc.el (vc-next-action-on-file): Removed optional parameter + * vc.el (vc-next-action-on-file): Remove optional parameter `simple'. Recompute state unconditionally. - (vc-default-toggle-read-only): Removed. + (vc-default-toggle-read-only): Remove. - * vc-hooks.el (vc-backend-functions): Removed vc-toggle-read-only. + * vc-hooks.el (vc-backend-functions): Remove vc-toggle-read-only. (vc-toggle-read-only): Undid prev change. - * vc-cvs.el (vc-cvs-stay-local): Renamed from + * vc-cvs.el (vc-cvs-stay-local): Rename from vc-cvs-simple-toggle. Redocumented. (vc-cvs-state): If locality is wanted, use vc-cvs-state-heuristic. - (vc-cvs-toggle-read-only): Removed. + (vc-cvs-toggle-read-only): Remove. 2000-09-04 Stefan Monnier @@ -13051,7 +13051,7 @@ (vc-dired-mode-map): Properly defvar it. (vc-print-log): Call log-view-mode if available. (small-temporary-file-directory): defvar instead of use boundp. - (vc-merge-news): Moved to vc-cvs.el. + (vc-merge-news): Move to vc-cvs.el. (vc-default-merge-news): New function. * vc-sccs.el: Require 'vc and 'vc-sccs-hooks. @@ -13075,7 +13075,7 @@ call to vc-rcs-latest-on-branch-p. Hopefully that was the right one. * vc-rcs-hooks.el: Provide 'vc-rcs-hooks. - (vc-rcs-trunk-p, vc-rcs-branch-part): Moved from vc-rcs.el. + (vc-rcs-trunk-p, vc-rcs-branch-part): Move from vc-rcs.el. (vc-rcs-latest-on-branch-p): Use the `version' argument rather than the apparently unbound `workfile-version'. @@ -13116,8 +13116,8 @@ * vc-cvs.el (vc-cvs-checkout): Docstring fix. Added a `(if workfile' that got lost when the code was extracted from vc.el. And merged the tail with the rest of the code (not possible in the - old vc.el where the tail was shared among all backends). And - explicitly set the state to 'edited if `writable' is set. + old vc.el where the tail was shared among all backends). + And explicitly set the state to 'edited if `writable' is set. * vc-cvs-hooks.el (vc-cvs-registered): Use expand-file-name. (vc-cvs-state): Be careful to return the value from @@ -13128,16 +13128,16 @@ workfile was nil). * vc.el: Removed those pesky unnecessary `(function' quotes. - (vc-annotate-mode-map, vc-annotate-mode-syntax-table): Initialize - directly in the defvar. + (vc-annotate-mode-map, vc-annotate-mode-syntax-table): + Initialize directly in the defvar. (vc-do-command): Bind inhibit-read-only so as to properly handle the case where the destination buffer has been made read-only. (vc-diff): Delegate to vc-version-diff in all cases. (vc-version-diff): Setup the *vc-diff* buffer as was done in vc-diff. - (vc-annotate-mode-variables): Removed (code moved partly to + (vc-annotate-mode-variables): Remove (code moved partly to defvars and partly to vc-annotate-add-menu). (vc-annotate-mode): Turned into a derived-mode. - (vc-annotate-add-menu): Moved in code in + (vc-annotate-add-menu): Move in code in vc-annotate-mode-variables. (vc-update-change-log): Use make-temp-file if available. @@ -13148,51 +13148,51 @@ 2000-09-04 Andre Spiegel - * vc.el (vc-next-action-on-file): Added handling of state + * vc.el (vc-next-action-on-file): Add handling of state `unlocked-changes'. (vc-checkout-carefully): Is now practically obsolete, unless the above is too slow to be enabled unconditionally. - (vc-update-change-log): Fixed typo. + (vc-update-change-log): Fix typo. - * vc-sccs.el (vc-sccs-steal-lock): Renamed from `vc-sccs-steal'. + * vc-sccs.el (vc-sccs-steal-lock): Rename from `vc-sccs-steal'. * vc-sccs-hooks.el (vc-sccs-state): Somewhat rewritten. Now handles state `unlocked-changes'. (vc-sccs-workfile-unchanged-p): New function, to support the above. - * vc-rcs.el (vc-rcs-steal-lock): Renamed from `vc-rcs-steal'. + * vc-rcs.el (vc-rcs-steal-lock): Rename from `vc-rcs-steal'. - * vc-rcs-hooks.el (vc-rcs-state): Fixed typo. + * vc-rcs-hooks.el (vc-rcs-state): Fix typo. (vc-rcs-fetch-master-state): Bug fixes. Recognize state `unlocked-changes'. - (vc-rcs-workfile-unchanged-p): Renamed from + (vc-rcs-workfile-unchanged-p): Rename from `vc-rcs-workfile-unchanged'. This is not a real backend-specific function yet, but supposed to become one soon. - * vc-hooks.el (vc-backend-functions): Renamed `vc-steal' to + * vc-hooks.el (vc-backend-functions): Rename `vc-steal' to `vc-steal-lock'. - (vc-call-backend): Changed error message. - (vc-state): Added description of state `unlocked-changes'. + (vc-call-backend): Change error message. + (vc-state): Add description of state `unlocked-changes'. 2000-09-04 Andre Spiegel - * vc-cvs-hooks.el (vc-cvs-registered): Fixed bug that caused it to + * vc-cvs-hooks.el (vc-cvs-registered): Fix bug that caused it to always return t in CVS-controlled directories. * vc.el (vc-responsible-backend): New function. (vc-register): Largely rewritten. - (vc-admin): Removed (implementation moved into vc-register). + (vc-admin): Remove (implementation moved into vc-register). (vc-checkin): Redocumented. (vc-finish-logentry): If no backend defined yet (because we are in the process of registering), use the responsible backend. * vc-hooks.el (vc-backend-hook-functions, vc-backend-functions): - Updated function lists. - (vc-call-backend): Fixed typo. + Update function lists. + (vc-call-backend): Fix typo. * vc-sccs.el, vc-rcs.el, vc-cvs.el (vc-BACKEND-responsible-p): New functions. - (vc-BACKEND-register): Renamed from `vc-BACKEND-admin'. + (vc-BACKEND-register): Rename from `vc-BACKEND-admin'. Removed query option. Redocumented. 2000-09-04 Andre Spiegel @@ -13204,18 +13204,18 @@ 2000-09-04 Martin Lorentzson - * vc-rcs.el (vc-rcs-backend-release-p): function added. other - stuff updated to reference this function instead of the old + * vc-rcs.el (vc-rcs-backend-release-p): function added. + other stuff updated to reference this function instead of the old `vc-backend-release-p'. 2000-09-04 Andre Spiegel - * vc-sccs-hooks.el (vc-uses-locking): Renamed to + * vc-sccs-hooks.el (vc-uses-locking): Rename to vc-checkout-model. Return appropriate values. Updated callers. 2000-09-04 Martin Lorentzson - * vc.el (vc-backend-release, vc-backend-release-p): Moved to vc-rcs.el. + * vc.el (vc-backend-release, vc-backend-release-p): Move to vc-rcs.el. (vc-backend-revert): Function moved into `vc-revert'; `vc-next-action' must be updated to accommodate this change. (vc-backend-steal): Function moved into `vc-finish-steal'. @@ -13295,31 +13295,31 @@ 2000-09-04 Andre Spiegel * vc.el (vc-next-action-on-file): Rewritten for the new state model. - (vc-backend-merge-news): Renamed to `vc-merge-news'. (Specific parts + (vc-backend-merge-news): Rename to `vc-merge-news'. (Specific parts still need to be split, and implemented for RCS). 2000-09-04 Martin Lorentzson * vc-sccs-hooks.el (vc-sccs-state-heuristic): Bug found and fixed. - * vc-sccs.el (vc-sccs-admin): Added the query-only option as + * vc-sccs.el (vc-sccs-admin): Add the query-only option as required by the vc.el file. - * vc-rcs.el (vc-rcs-admin): Added the query-only option as + * vc-rcs.el (vc-rcs-admin): Add the query-only option as required by the vc.el file. (vc-rcs-exists): Function added. - * vc-cvs.el (vc-cvs-admin): Added the query-only option as + * vc-cvs.el (vc-cvs-admin): Add the query-only option as required by the vc.el file. - * vc.el (vc-admin): Updated to handle selection of appropriate + * vc.el (vc-admin): Update to handle selection of appropriate backend. Current implementation is crufty and need re-thinking. * vc-hooks.el (vc-parse-buffer): Bug found and fixed. 2000-09-04 Martin Lorentzson - * vc-cvs.el (vc-cvs-annotate-difference): Updated to handle + * vc-cvs.el (vc-cvs-annotate-difference): Update to handle beginning of annotate buffers correctly. * vc.el (vc-annotate-get-backend, vc-annotate-display-default) @@ -13338,11 +13338,11 @@ 2000-09-04 Martin Lorentzson - * vc-sccs-hooks.el (vc-sccs-registered): Updated. + * vc-sccs-hooks.el (vc-sccs-registered): Update. - * vc-rcs-hooks.el (vc-rcs-registered): Updated. + * vc-rcs-hooks.el (vc-rcs-registered): Update. - * vc-cvs-hooks.el (vc-cvs-registered): Updated. + * vc-cvs-hooks.el (vc-cvs-registered): Update. 2000-09-04 Martin Lorentzson @@ -13434,8 +13434,8 @@ * vc-hooks.el (vc-master-templates): Is really obsolete. Comment out the definition for now. What is the right procedure to get rid of it? - (vc-registered, vc-backend, vc-buffer-backend, vc-name): Largely - rewritten. + (vc-registered, vc-backend, vc-buffer-backend, vc-name): + Largely rewritten. (vc-default-registered): Remove. (vc-check-master-templates): New function; does mostly what the above did before. @@ -13482,12 +13482,12 @@ * vc.el (vc-backend-checkout): Function removed and replaced in the vc-backend.el files. - * vc-sccs.el (vc-sccs-checkout): Added function `vc-sccs-checkout'. + * vc-sccs.el (vc-sccs-checkout): Add function `vc-sccs-checkout'. - * vc.el (vc-backend-admin): Removed and replaced in the + * vc.el (vc-backend-admin): Remove and replaced in the vc-backend.el files. - * vc.el (Martin): Removed all the annotate functionality since it + * vc.el (Martin): Remove all the annotate functionality since it is CVS backend specific. 2000-09-04 Andre Spiegel @@ -13513,7 +13513,7 @@ (vc-logentry-check-hook): New option. (vc-steal-lock): Use compose-mail. (vc-dired-mode-map): Defvar when compiling. - (vc-add-triple, vc-record-rename, vc-lookup-triple): Moved to + (vc-add-triple, vc-record-rename, vc-lookup-triple): Move to vc-sccs.el and renamed. Callers changed. (vc-backend-checkout, vc-backend-logentry-check) (vc-backend-merge-news): Doc fix. @@ -13538,7 +13538,7 @@ (vc-rcs-checkin): New functions (code from vc.el). (vc-rcs-previous-version, vc-rcs-system-release, vc-rcs-checkout): Doc fix. - (vc-rcs-release): Deleted. (Duplicated vc-rcs-system-release). + (vc-rcs-release): Delete. (Duplicated vc-rcs-system-release). * vc-sccs.el: Require vc when compiling. (vc-sccs-print-log, vc-sccs-assign-name, vc-sccs-merge) @@ -13547,7 +13547,7 @@ (vc-sccs-checkin, vc-sccs-logentry-check): New functions (code from vc.el). (vc-sccs-add-triple, vc-sccs-record-rename) - (vc-sccs-lookup-triple): Moved from vc.el and renamed. + (vc-sccs-lookup-triple): Move from vc.el and renamed. (vc-sccs-admin): Doc fix. 2000-09-04 Martin Lorentzson @@ -13557,64 +13557,64 @@ (vc-rcs-release-p, vc-rcs-admin, vc-rcs-checkout): New functions from vc.el. - * vc-sccs.el (vc-admin-sccs): Added from vc.el + * vc-sccs.el (vc-admin-sccs): Add from vc.el * vc-cvs.el: Moved the annotate functionality from vc.el. - (vc-cvs-admin, vc-cvs-fetch-status): Added from vc.el. + (vc-cvs-admin, vc-cvs-fetch-status): Add from vc.el. 2000-09-04 Dave Love * vc.el (vc-backend-release): Call vc-system-release. * vc-sccs.el (vc-sccs-system-release): - Renamed from vc-sccs-backend-release. + Rename from vc-sccs-backend-release. * vc-rcs.el (vc-rcs-system-release): - Renamed from vc-rcs-backend-release. + Rename from vc-rcs-backend-release. * vc-cvs.el (vc-cvs-system-release): - Renamed from vc-cvs-backend-release. + Rename from vc-cvs-backend-release. 2000-09-04 Dave Love - * vc.el (vc-rcs-release, vc-cvs-release, vc-sccs-release): Moved to + * vc.el (vc-rcs-release, vc-cvs-release, vc-sccs-release): Move to backend files. (vc-backend-release): Dispatch to backend functions. (vc-backend-release-p): Don't mention CVS, RCS. [The SCCS case probably needs attention.] - * vc-sccs.el, vc-rcs.el (vc-sccs-release): Moved from vc.el. + * vc-sccs.el, vc-rcs.el (vc-sccs-release): Move from vc.el. (vc-sccs-backend-release): New function. - * vc-cvs.el (vc-cvs-release): Moved from vc.el. + * vc-cvs.el (vc-cvs-release): Move from vc.el. (vc-cvs-backend-release): New function. * vc.el (vc-dired-mode, vc-dired-reformat-line, vc-dired-purge): Doc fix. - (vc-fetch-cvs-status): Moved to vc-cvs.el and renamed. + (vc-fetch-cvs-status): Move to vc-cvs.el and renamed. (vc-default-dired-state-info): New function. (vc-dired-state-info): Dispatch to backends. (vc-dired-hook): Doc fix. Simplify, pending removal of CVS specifics. - * vc-cvs.el (vc-cvs-dired-state-info, vc-cvs-fetch-status): Moved - from vc.el and renamed. + * vc-cvs.el (vc-cvs-dired-state-info, vc-cvs-fetch-status): + Move from vc.el and renamed. 2000-09-04 Andre Spiegel * vc.el (vc-file-clear-masterprops, vc-latest-on-branch-p) - (vc-version-other-window, vc-backend-assign-name): Removed - references to vc-latest-version; sometimes changed into + (vc-version-other-window, vc-backend-assign-name): + Remove references to vc-latest-version; sometimes changed into vc-workfile-version. - * vc-rcs-hooks.el (vc-master-workfile-version): Renamed to + * vc-rcs-hooks.el (vc-master-workfile-version): Rename to vc-rcs-master-workfile-version. (vc-rcs-workfile-version): Use the above. Don't call vc-latest-version (that was unreachable code, anyway). (vc-rcs-fetch-master-properties): Doc fix. - * vc-hooks.el (vc-latest-version, vc-your-latest-version): Removed. - (vc-backend-hook-functions): Removed them from this list, too. - (vc-fetch-properties): Removed. + * vc-hooks.el (vc-latest-version, vc-your-latest-version): Remove. + (vc-backend-hook-functions): Remove them from this list, too. + (vc-fetch-properties): Remove. (vc-workfile-version): Doc fix. * vc-rcs-hooks.el (vc-rcs-consult-headers): New function. @@ -13622,7 +13622,7 @@ (vc-rcs-uses-locking): Use it. * vc-hooks.el (vc-consult-rcs-headers): - Moved into vc-rcs-hooks.el, under the name + Move into vc-rcs-hooks.el, under the name vc-rcs-consult-headers. * vc-cvs-hooks.el (vc-cvs-workfile-version): Don't consult RCS @@ -13638,7 +13638,7 @@ New functions. * vc-hooks.el (vc-master-locks, vc-master-locking-user): - Moved into both + Move into both vc-rcs-hooks.el and vc-sccs-hooks.el. These properties and access functions are implementation details of those two backends. @@ -13654,31 +13654,31 @@ * vc-cvs-hooks.el (vc-cvs-fetch-master-properties): CVS-specific code moved here from vc-hooks. - * vc-hooks.el (vc-parse-locks, vc-fetch-master-properties): Split - into back-end specific parts and removed. Callers not updated + * vc-hooks.el (vc-parse-locks, vc-fetch-master-properties): + Split into back-end specific parts and removed. Callers not updated yet; because I guess these callers will disappear into back-end specific files anyway. 2000-09-04 Andre Spiegel * vc.el (with-vc-file, vc-next-action-on-file, vc-merge) - (vc-backend-checkout): Changed calls to `vc-checkout-model' to + (vc-backend-checkout): Change calls to `vc-checkout-model' to `vc-uses-locking'. - * vc-hooks.el (vc-checkout-model): Renamed to vc-uses-locking. + * vc-hooks.el (vc-checkout-model): Rename to vc-uses-locking. Store yes/no in the property, and return t/nil. Updated all callers. - * vc-sccs-hooks.el (vc-sccs-checkout-model): Renamed to + * vc-sccs-hooks.el (vc-sccs-checkout-model): Rename to vc-sccs-uses-locking. Don't set property. (vc-sccs-locking-user): Don't set property. - * vc-cvs-hooks.el (vc-cvs-checkout-model): Renamed to + * vc-cvs-hooks.el (vc-cvs-checkout-model): Rename to vc-cvs-uses-locking. Don't set property here; leave that to vc-hooks. (vc-cvs-locking-user): Reflect above change. Streamlined. - * vc-rcs-hooks.el (vc-rcs-checkout-model): Renamed to + * vc-rcs-hooks.el (vc-rcs-checkout-model): Rename to vc-rcs-uses-locking. (vc-rcs-locking-user): Reflect above change. @@ -13709,36 +13709,36 @@ 2000-09-04 Dave Love * vc-hooks.el (vc-rcsdiff-knows-brief, vc-rcs-lock-from-diff) - (vc-master-workfile-version): Moved from vc-hooks. + (vc-master-workfile-version): Move from vc-hooks. * vc-rcs-hooks.el: Fix duplicate code in last change. * vc-rcs-hooks.el: Require vc-hooks when compiling. (vc-rcs-master-templates): Improve :type. (vc-rcsdiff-knows-brief, vc-rcs-lock-from-diff) - (vc-master-workfile-version): Moved from vc-hooks. + (vc-master-workfile-version): Move from vc-hooks. * vc-sccs-hooks.el: Require vc-hooks when compiling. (vc-sccs-master-templates): Improve :type. (vc-sccs-lock-file): Moved/renamed from vc-hooks.el vc-lock-file. - * vc-hooks.el (vc-lock-file): Moved to vc-sccs-hooks and renamed. + * vc-hooks.el (vc-lock-file): Move to vc-sccs-hooks and renamed. * vc-cvs-hooks.el: Require vc-hooks when compiling. - (vc-cvs-master-templates): Improve :type. Use - vc-cvs-find-cvs-master. - (vc-handle-cvs, vc-cvs-parse-status, vc-cvs-status): Moved here + (vc-cvs-master-templates): Improve :type. + Use vc-cvs-find-cvs-master. + (vc-handle-cvs, vc-cvs-parse-status, vc-cvs-status): Move here from vc-hooks. - (vc-vc-find-cvs-master): Renamed to vc-cvs-find-cvs-master. + (vc-vc-find-cvs-master): Rename to vc-cvs-find-cvs-master. * vc-hooks.el (vc-handle-cvs, vc-cvs-parse-status, vc-cvs-status): - Moved to vc-cvs-hooks. + Move to vc-cvs-hooks. * vc-hooks.el: Add doc strings in various places. Simplify the minor mode setup. (vc-handled-backends): New user variable. - (vc-parse-buffer, vc-insert-file, vc-default-registered): Minor - simplification. + (vc-parse-buffer, vc-insert-file, vc-default-registered): + Minor simplification. 2000-09-04 Dave Love @@ -13796,11 +13796,11 @@ 2000-09-04 Dave Love - * mouse.el (mouse-major-mode-menu, mouse-popup-menubar): Run - menu-bar-update-hook. + * mouse.el (mouse-major-mode-menu, mouse-popup-menubar): + Run menu-bar-update-hook. - * help.el (help-manyarg-func-alist): Add - find-operation-coding-system. + * help.el (help-manyarg-func-alist): + Add find-operation-coding-system. * wid-edit.el (widget-sexp-validate): Fix garbled code. @@ -13823,7 +13823,7 @@ 2000-09-01 John Wiegley - * pcomplete.el (pcomplete-dirs-or-entries): Added a missing + * pcomplete.el (pcomplete-dirs-or-entries): Add a missing predicate, which caused entries in the completion list to be doubled. @@ -13843,8 +13843,8 @@ 2000-08-28 John Wiegley - * eshell/esh-var.el (pcomplete/eshell-mode/unset): Added - completion function for Eshell's implementation of `unset'. + * eshell/esh-var.el (pcomplete/eshell-mode/unset): + Add completion function for Eshell's implementation of `unset'. 2000-09-02 Eli Zaretskii @@ -13863,8 +13863,8 @@ 2000-08-30 Andrew Innes * timer.el (run-with-idle-timer): Undo last change, so that timer - is not activated immediately if Emacs is already idle. Some - existing code relies on this behavior. + is not activated immediately if Emacs is already idle. + Some existing code relies on this behavior. 2000-08-30 Miles Bader @@ -13924,22 +13924,22 @@ * help.el (help-xref-mule-regexp): New variable. (help-make-xrefs): Handle help-xref-mule-regexp. - * international/mule-cmds.el (help-xref-mule-regexp-template): New - variable. + * international/mule-cmds.el (help-xref-mule-regexp-template): + New variable. (describe-input-method): Temporarily activate the specified input method to display the information. (describe-language-environment): Hyperlinks to mule related items. - * international/mule-diag.el (charset-multibyte-form-string): New - function. + * international/mule-diag.el (charset-multibyte-form-string): + New function. (list-character-sets-1): Use charset-multibyte-form-string. (describe-character-set): New function. (describe-coding-system): Hyperlinks to safe character sets. * international/quail.el (quail-help): New arg PACKAGE. Hyperlinks to mule related items. - (quail-help-insert-keymap-description): Use - substitute-command-keys instead of describe-bindings. + (quail-help-insert-keymap-description): + Use substitute-command-keys instead of describe-bindings. (quail-translation-help): Hyperlinks to mule related items. 2000-08-28 John Wiegley @@ -13948,7 +13948,7 @@ have a defsubst call itself. Made `eshell-flatten-list' back into a function again. - * eshell/em-smart.el (eshell-smart-redisplay): Added a safety + * eshell/em-smart.el (eshell-smart-redisplay): Add a safety catch, in case re-centering point at bottom messes up the display. This happens frequently in Emacs 21, due I believe to variable line heights. @@ -13978,11 +13978,11 @@ (eshell-copy-handles): Created a new macro for duplicating the current set of open handles. This is needed by the looping functions. - (eshell-do-eval): Fixed while and if, so that the eshell-test-body + (eshell-do-eval): Fix while and if, so that the eshell-test-body is not incorrectly stomped on. - * eshell/em-cmpl.el (eshell-cmpl-use-paring): Mirror - declaration for pcomplete-use-paring. + * eshell/em-cmpl.el (eshell-cmpl-use-paring): + Mirror declaration for pcomplete-use-paring. (eshell-cmpl-initialize): Set pcomplete-use-paring based on the value of eshell-cmpl-use-paring. * pcomplete.el (pcomplete-use-paring): New config variable, to @@ -13990,7 +13990,7 @@ (pcomplete-do-complete): If pcomplete-use-paring is t, pare out completion alternatives that have already been used. - * eshell/esh-mode.el (eshell-repeat-argument): Added function, + * eshell/esh-mode.el (eshell-repeat-argument): Add function, bound to C-c C-y, which will repeat the previous N arguments (based on prefix argument). (eshell-mode): Bind C-c C-y to eshell-repeat-argument. @@ -14001,8 +14001,8 @@ name to delete is. * eshell/esh-util.el (eshell-read-passwd-file): Only keep the - first entry that correlates to a passwd/group number. Later - entries (used for group/user name aliasing to multiple IDs) are + first entry that correlates to a passwd/group number. + Later entries (used for group/user name aliasing to multiple IDs) are ignored. * eshell/em-xtra.el (eshell/expr): @@ -14011,7 +14011,7 @@ * eshell/em-dirs.el (eshell-dirs-substitute-cd): Flatten the argument list, before passing it to the system command. - * eshell/esh-mode.el (eshell-find-tag): Added a special version of + * eshell/esh-mode.el (eshell-find-tag): Add a special version of `find-tag' for use at final position in Eshell buffers (which otherwise triggers an error on Emacs 21). (eshell-mode): Bind M-. to `eshell-find-tag' with the Eshell @@ -14030,10 +14030,10 @@ types RET after an open delimiter (like "), display a message indicating that Eshell is waiting for the closing delimiter. - * eshell/esh-var.el (eshell/unset): Added a command for unsetting + * eshell/esh-var.el (eshell/unset): Add a command for unsetting environment variables. - * eshell/em-unix.el (eshell/diff): Added logic to fail more + * eshell/em-unix.el (eshell/diff): Add logic to fail more gracefully if the user enters incorrect arguments. * eshell/esh-mode.el (eshell-mode): Disable auto-fill-function in @@ -14046,7 +14046,7 @@ * eshell/em-ls.el (eshell-ls-decorated-name): Use /= instead of (not (= ...)). - * eshell/em-unix.el (eshell-shuffle-files): Added use of `apply', + * eshell/em-unix.el (eshell-shuffle-files): Add use of `apply', to ensure the `preserve' flag gets propagated when doing recursive directory copies. @@ -14059,15 +14059,15 @@ 2000-08-28 Eli Zaretskii - * eshell/esh-util.el (eshell-processp): Added to relieve constant + * eshell/esh-util.el (eshell-processp): Add to relieve constant testing of `fboundp' on `processp'. * eshell/esh-proc.el (eshell/kill): Use eshell-processp. (eshell/jobs): Don't call process-list if it is not bound. (eshell-gather-process-output): Support systems where async subprocesses aren't supported. - (eshell-scratch-buffer, eshell-last-sync-output-start): New - variables. + (eshell-scratch-buffer, eshell-last-sync-output-start): + New variables. * eshell/esh-cmd.el (eshell-resume-eval): Handle the case when eshell-do-eval returns t. @@ -14082,8 +14082,8 @@ * eshell/esh-io.el (eshell-virtual-targets): Doc fix. (eshell-close-target, eshell-get-target): Use eshell-processp. - (eshell-print, eshell-error, eshell-errorn, eshell-printn): Doc - fix. + (eshell-print, eshell-error, eshell-errorn, eshell-printn): + Doc fix. (eshell-get-target, eshell-create-handles): Doc fix. 2000-08-28 Miles Bader @@ -14173,15 +14173,15 @@ 2000-08-25 Kenichi Handa - * terminal.el (terminal-emulator): Fix args to `concat'. Now - concat doesn't accept integer. + * terminal.el (terminal-emulator): Fix args to `concat'. + Now concat doesn't accept integer. - * international/kkc.el: Remove SKK from Keywords. Require - ja-dic-utl instead of skkdic-utl. + * international/kkc.el: Remove SKK from Keywords. + Require ja-dic-utl instead of skkdic-utl. * international/ja-dic-cnv.el: Renamed from skkdic-cnv.el. Provide ja-dic-cnv instead of skkdic-cnv. - (ja-dic-filename): Renamed from skkdic-filename. Referrers changed. + (ja-dic-filename): Rename from skkdic-filename. Referrers changed. (iso-2022-7bit-short): Add safe-charsets property. (skkdic-convert-postfix): Search Japanese chou-on character in addition to Hiragana character. @@ -14208,8 +14208,8 @@ 2000-08-24 Kenichi Handa - * international/mule-cmds.el (reset-language-environment): Set - default-process-coding-system to '(undecided . iso-latin-1), which + * international/mule-cmds.el (reset-language-environment): + Set default-process-coding-system to '(undecided . iso-latin-1), which makes process I/O almost consistent with file I/O. Call this function when mule-cmds.el[c] is loaded. @@ -14318,8 +14318,8 @@ * comint.el (comint-output-filter): Save the point with a marker, not just a buffer position. - * international/mule.el (set-buffer-process-coding-system): Make - interactive prompt less confusing. + * international/mule.el (set-buffer-process-coding-system): + Make interactive prompt less confusing. 2000-08-19 Gerd Moellmann @@ -14358,8 +14358,8 @@ 2000-08-18 Gerd Moellmann - * textmodes/ispell.el (ispell-dictionary-alist-6): Add - `portugues'. + * textmodes/ispell.el (ispell-dictionary-alist-6): + Add `portugues'. * bindings.el (esc-map): Bind `C-delete' and `C-backspace' to backward-kill-sexp, analogous to kill-sexp. @@ -14372,18 +14372,18 @@ * ispell.el: Set to standard author/maintainer/keyword fields. Fine tuning to menu map appearance and operation, and added help. Remove `start' and `end' error messages when compiling. - (ispell-choices-win-default-height): Fixed comment string. - (ispell-dictionary-alist-1): Fixed regexp in castellano and + (ispell-choices-win-default-height): Fix comment string. + (ispell-dictionary-alist-1): Fix regexp in castellano and castellano8 dictionaries. - (ispell-dictionary-alist-3): Fixed regexp in francais dictionary. - (ispell-dictionary-alist-4): Fixed regexp in francais-tex + (ispell-dictionary-alist-3): Fix regexp in francais dictionary. + (ispell-dictionary-alist-4): Fix regexp in francais-tex dictionary, added italiano dictionary. - (ispell-skip-region-alist): Removed regexp thrashing when `-' is a + (ispell-skip-region-alist): Remove regexp thrashing when `-' is a word character. - (ispell-tex-skip-alists): Added psfig support. - (ispell-skip-html): Renamed from ispell-skip-sgml. + (ispell-tex-skip-alists): Add psfig support. + (ispell-skip-html): Rename from ispell-skip-sgml. (ispell-begin-skip-region-regexp, ispell-skip-region) - (ispell-minor-check): Improved html skipping support to skip across + (ispell-minor-check): Improve html skipping support to skip across code, and recognize `&' commands without proper `;' syntax. (ispell-process-line): Fix alignment error when manually correcting spelling. @@ -14397,8 +14397,8 @@ shell-command-on-region as in format-decode-run-method because shell-command-on-region can display a buffer with error output. (format-decode): Don't record undo information for the decoding. - (format-annotate-function): Add parameter FORMAT-COUNT. Make - that number part of the temporary buffer name so that more than + (format-annotate-function): Add parameter FORMAT-COUNT. + Make that number part of the temporary buffer name so that more than one decoding using a temporary buffer can happen safely. * enriched.el (enriched-annotation-regexp): Use `A-Z' instead @@ -14571,16 +14571,16 @@ 2000-08-15 Miles Bader * textmodes/ispell.el (ispell-graphic-p): New constant. - (ispell-choices-win-default-height, ispell-help): Use - `ispell-graphic-p' instead of `xemacsp'. + (ispell-choices-win-default-height, ispell-help): + Use `ispell-graphic-p' instead of `xemacsp'. 2000-08-15 Dave Love * simple.el: Autoload widget-convert when compiling. (mail-user-agent): Doc fix. - * help.el (function-called-at-point, variable-at-point): Use - with-syntax-table. + * help.el (function-called-at-point, variable-at-point): + Use with-syntax-table. (help-manyarg-func-alist): Add insert-and-inherit. * thingatpt.el (thing-at-point-url-regexp): Prepend `\<'. @@ -14589,7 +14589,7 @@ * find-file.el: Doc fixes. Move provide to end. (ff) : Add :link. - (ff-goto-click): Deleted. + (ff-goto-click): Delete. (ff-mouse-find-other-file, ff-mouse-find-other-file-other-window): Use mouse-set-point. @@ -14615,8 +14615,8 @@ Doze and Dog. (browse-url): Use dolist, not mapcar. (browse-url-at-point): Check for null url. - (browse-url-event-buffer, browse-url-event-point): Functions - deleted. + (browse-url-event-buffer, browse-url-event-point): + Functions deleted. (browse-url-at-mouse, browse-url-netscape): Simplify. * msb.el (msb--few-menus, msb--very-many-menus): Use current Gnus @@ -14724,7 +14724,7 @@ (comint-snapshot-last-prompt): New function. (comint-send-input): Snapshot the last prompt. Use comint-highlight-input-face. - (comint-highlight-input-face): Renamed from `comint-highlight-face'. + (comint-highlight-input-face): Rename from `comint-highlight-face'. Use defface instead of defcustom. (send-invisible, comint-send-eof): Snapshot the last prompt. (comint-delchar-or-maybe-eof): Use comint-send-eof. @@ -14785,8 +14785,8 @@ * emacs-lisp/lisp-mode.el (eval-last-sexp-1): Handle `#N=' labels. - * help.el (print-help-return-message): When - display-buffer-reuse-frames is set, let the help window been quit, + * help.el (print-help-return-message): + When display-buffer-reuse-frames is set, let the help window been quit, instead of deleting it, which might delete a reused frame. 2000-08-08 Eli Zaretskii @@ -14807,7 +14807,7 @@ * emacs-lisp/cl-indent.el (toplevel): Indent `defclass', `defconst', `define-condition', `with-slots'. - * font-lock.el (lisp-font-lock-keywords-2): Added `with-' and `do-'. + * font-lock.el (lisp-font-lock-keywords-2): Add `with-' and `do-'. 2000-08-03 Miles Bader @@ -14826,16 +14826,16 @@ properties if comint-use-prompt-regexp-instead-of-fields is nil. (comint-line-beginning-position): New function. (comint-bol): Use comint-line-beginning-position. Make ARG optional. - (comint-replace-by-expanded-history-before-point): Use - comint-line-beginning-position and line-end-position. + (comint-replace-by-expanded-history-before-point): + Use comint-line-beginning-position and line-end-position. (comint-last-output-overlay): New variable. (comint-mode): Make `comint-last-output-overlay' buffer-local. * shell.el (shell-prompt-pattern): Doc change. (shell-backward-command): Use line-beginning-position. - * gud.el (gud-gdb-complete-command): Use - comint-line-beginning-position. + * gud.el (gud-gdb-complete-command): + Use comint-line-beginning-position. * ielm.el (ielm-indent-line): Detect a "prompt" line by seeing if comint-bol doesn't actually go to the beginning of the line. @@ -14849,13 +14849,13 @@ (sql-copy-column): Use comint-line-beginning-position instead of explicitly matching comint-prompt-regexp. - * progmodes/octave-inf.el (inferior-octave-complete): Use - comint-line-beginning-position. + * progmodes/octave-inf.el (inferior-octave-complete): + Use comint-line-beginning-position. * progmodes/inf-lisp.el (inferior-lisp-prompt): Doc change. - * progmodes/idlw-shell.el (idlwave-shell-send-command): When - looking for a prompt, use `forward-line 0' instead of + * progmodes/idlw-shell.el (idlwave-shell-send-command): + When looking for a prompt, use `forward-line 0' instead of `beginning-of-line', to avoid getting caught by an input field. 2000-08-07 Gerd Moellmann @@ -14926,8 +14926,8 @@ 2000-08-03 Eli Zaretskii - * international/mule-cmds.el (select-safe-coding-system): Make - the message text about selecting a safe coding system more clear. + * international/mule-cmds.el (select-safe-coding-system): + Make the message text about selecting a safe coding system more clear. 2000-08-02 Gerd Moellmann @@ -14951,8 +14951,8 @@ 2000-08-02 Eli Zaretskii - * progmodes/ebrowse.el (ebrowse-tree-mode-map): Use - display-mouse-p instead of window-system. + * progmodes/ebrowse.el (ebrowse-tree-mode-map): + Use display-mouse-p instead of window-system. (ebrowse-member-mode-map): Ditto. 2000-08-01 Vinicius Jose Latorre @@ -14968,8 +14968,8 @@ font lock support on window-system. (ftp-font-lock-keywords, smbclient-font-lock-keywords): Likewise. - * textmodes/ispell.el (ispell-highlight-spelling-error): Use - display-color-p, if fboundp, instead of window-system. + * textmodes/ispell.el (ispell-highlight-spelling-error): + Use display-color-p, if fboundp, instead of window-system. 2000-07-31 Eli Zaretskii @@ -15060,8 +15060,8 @@ * subr.el (remove, remq): New functions. - * midnight.el (clean-buffer-list-kill-never-regexps): Correctly - escape `*' in regexps. + * midnight.el (clean-buffer-list-kill-never-regexps): + Correctly escape `*' in regexps. (midnight-find): Reverse order of arguments in the funcall of TEST. @@ -15072,12 +15072,12 @@ 2000-07-27 Alex Schroeder - * sql.el (sql-ms): Added autoload cookie. + * sql.el (sql-ms): Add autoload cookie. (sql-ingres, sql-solid, sql-mysql, sql-informix, sql-sybase) (sql-oracle): Ditto. (sql-help): Doc change. - (sql-mode-oracle-font-lock-keywords): Added PL/SQL keywords, data + (sql-mode-oracle-font-lock-keywords): Add PL/SQL keywords, data types and exceptions. 2000-07-27 Alex Schroeder @@ -15112,11 +15112,11 @@ (find-coding-systems-region-subset-p): This function deleted. (sort-coding-systems-predicate): New variable. (sort-coding-systems): New function. - (find-coding-systems-region): Use - find-coding-systems-region-internal. + (find-coding-systems-region): + Use find-coding-systems-region-internal. (find-coding-systems-string): Use find-coding-systems-region. - (find-coding-systems-for-charsets): Check - char-coding-system-table. + (find-coding-systems-for-charsets): + Check char-coding-system-table. (select-safe-coding-system-accept-default-p): New variable. (select-safe-coding-system): Mostly rewritten. New argument ACCEPT-DEFAULT-P. @@ -15148,29 +15148,29 @@ * net/ange-ftp.el (ange-ftp-file-newer-than-file-p): New function. (ange-ftp-real-file-newer-than-file-p): New function. (ange-ftp-verify-visited-file-modtime): Use `float-time'. - (ange-ftp-dot-to-slash): Removed (use `subst-char-in-string'). + (ange-ftp-dot-to-slash): Remove (use `subst-char-in-string'). - * tooltip.el (tooltip-float-time): Removed (use `float-time'). + * tooltip.el (tooltip-float-time): Remove (use `float-time'). * midnight.el (midnight-float-time): Ditto. 2000-07-26 Andreas Schwab - * files.el (normal-backup-enable-predicate): Correct - interpretation of the return value of compare-strings. + * files.el (normal-backup-enable-predicate): + Correct interpretation of the return value of compare-strings. 2000-07-26 Gerd Moellmann * isearch.el (isearch-resume): New function. (isearch-done): Add something to command-history to resume the search. - (isearch-yank-line, isearch-yank-word): Use - buffer-substring-no-properties instead of buffer-substring. + (isearch-yank-line, isearch-yank-word): + Use buffer-substring-no-properties instead of buffer-substring. * textmodes/flyspell.el (flyspell-mouse-map): Use `map' instead of flyspell-mouse-map. - * progmodes/make-mode.el (makefile-mode-abbrev-table): Remove - duplicate definition. + * progmodes/make-mode.el (makefile-mode-abbrev-table): + Remove duplicate definition. (makefile-mode): Remove duplicate setting of local-abbrev-table. * progmodes/m4-mode.el (m4-mode-abbrev-table): New variable. @@ -15186,8 +15186,8 @@ (ange-ftp-dot-to-slash): New function. (ange-ftp-fix-name-for-vms): Use it. - * midnight.el (midnight-buffer-display-time): Use - `with-current-buffer'. + * midnight.el (midnight-buffer-display-time): + Use `with-current-buffer'. 2000-07-25 Gerd Moellmann @@ -15251,17 +15251,17 @@ 2000-07-24 Francis Wright - * dired.el (dired-sort-R-check): Added to allow recursive listing + * dired.el (dired-sort-R-check): Add to allow recursive listing to be undone. (dired-sort-other): Use it. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * Release of cc-mode 5.27 -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-engine.el (c-looking-at-inexpr-block): Replaced a call to + * progmodes/cc-engine.el (c-looking-at-inexpr-block): Replace a call to c-beginning-of-statement-1 that caused a bad case of recursion which could consume a lot of CPU in large classes in languages that have in-expression classes (i.e. Java and Pike). @@ -15271,7 +15271,7 @@ before case 5 and is now case 4) to catch in-expression classes in top level expressions correctly. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-engine.el (c-guess-basic-syntax): Less naive handling of objc-method-intro. Case 4 removed and case 5I added. @@ -15285,40 +15285,40 @@ * progmodes/cc-mode.el (java-mode): Use c-append-paragraph-start to initialize paragraph-start for javadoc markup. - * progmodes/cc-vars.el (c-style-variables-are-local-p): Incompatible - change by defaulting this to t. It's motivated by the + * progmodes/cc-vars.el (c-style-variables-are-local-p): + Incompatible change by defaulting this to t. It's motivated by the confusing behavior that otherwise arise from the style system when editing both java and non-java files at the same time (see the comments about style setting in c-common-init). -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-cmds.el (c-indent-new-comment-line): Added a kludge + * progmodes/cc-cmds.el (c-indent-new-comment-line): Add a kludge similar to the one in c-fill-paragraph to check the fill prefix from the adaptive fill function for sanity. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-defs.el (c-end-of-defun-1): Fixed forward scanning into + * progmodes/cc-defs.el (c-end-of-defun-1): Fix forward scanning into defun block. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-align.el (c-lineup-multi-inher): Handle lines with leading comma nicely. Extended to handle member initializers too. * progmodes/cc-engine.el (c-beginning-of-inheritance-list) - (c-guess-basic-syntax): Fixed recognition of inheritance lists + (c-guess-basic-syntax): Fix recognition of inheritance lists when the lines begins with a comma. - * progmodes/cc-vars.el (c-offsets-alist): Changed default for + * progmodes/cc-vars.el (c-offsets-alist): Change default for member-init-cont to c-lineup-multi-inher since it now handles member initializers and indents better for leading commas. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-cmds.el (c-electric-brace): Fixed some bugs in the state + * progmodes/cc-cmds.el (c-electric-brace): Fix some bugs in the state handling that caused class open lines to be recognized as statement-conts in some cases. @@ -15326,10 +15326,10 @@ guessed by the adaptive fill function unless point is on the first line of a block comment. - * progmodes/cc-engine.el (c-forward-syntactic-ws): Fixed an infloop bug + * progmodes/cc-engine.el (c-forward-syntactic-ws): Fix an infloop bug when the buffer ends with a macro continuation char. - * progmodes/cc-engine.el (c-guess-basic-syntax): Added support for + * progmodes/cc-engine.el (c-guess-basic-syntax): Add support for function definitions as statements in Pike. The first statement in a lambda block is now labeled defun-block-intro instead of statement-block-intro. @@ -15338,61 +15338,61 @@ so that the class surrounding point is selected, not the one innermost in the state. - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug in + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix bug in recognition of switch labels having hanging multiline statements. * progmodes/cc-engine.el (c-beginning-of-member-init-list): Broke out some code in c-guess-basic-syntax to a separate function. - * progmodes/cc-engine.el (c-just-after-func-arglist-p): Fixed - recognition of member inits with multiple line arglists. + * progmodes/cc-engine.el (c-just-after-func-arglist-p): + Fix recognition of member inits with multiple line arglists. * progmodes/cc-engine.el (c-guess-basic-syntax): New case 5B.3 to detect member-init-cont when the commas are in funny places. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-defs.el (c-auto-newline): Removed this macro since it's + * progmodes/cc-defs.el (c-auto-newline): Remove this macro since it's not used anymore. * progmodes/cc-engine.el (c-looking-at-bos): New helper function. * progmodes/cc-engine.el (c-looking-at-inexpr-block): More tests to tell inexpr and toplevel classes apart in Pike. - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bogus recognition + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix bogus recognition of case 9A. * progmodes/cc-langs.el, progmodes/cc-mode.el (c-Pike-inexpr-class-key): New constant, since "class" can introduce an in-expression class in Pike nowadays. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-align.el (c-gnu-impose-minimum): Don't impose minimum indentation on cpp-macro lines. * progmodes/cc-engine.el (c-guess-basic-syntax): Made the cpp-macro a syntax modifier like comment-intro, to make it possible to - get syntactic indentation for preprocessor directives. It's - incompatible wrt to lineup functions on cpp-macro, but it has + get syntactic indentation for preprocessor directives. + It's incompatible wrt to lineup functions on cpp-macro, but it has no observable effect in the 99.9% common case where cpp-macro is set to -1000. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug with missed + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix bug with missed member-init-cont when the preceding arglist is several lines. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-styles.el (c-style-alist): The basic offset for the BSD style corrected to 8. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-styles.el (c-style-alist): Adjusted the indentation of + * progmodes/cc-styles.el (c-style-alist): Adjust the indentation of brace list openers in the gnu style. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-cmds.el (c-indent-command): Obey c-syntactic-indentation. @@ -15401,53 +15401,53 @@ (c-electric-lt-gt, c-electric-paren): Don't reindent old lines when c-syntactic-indentation is nil. - * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed bug where + * progmodes/cc-engine.el (c-beginning-of-statement-1): Fix bug where we were left at comments preceding the first statement when reaching the beginning of the buffer. * progmodes/cc-vars.el (c-syntactic-indentation): New variable to turn off all syntactic indentation. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-cmds.el (c-fill-paragraph): Keep one or two spaces between the text and the block comment ender when it hangs, depending on how many there are before the fill. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-closest-statement): New helper function to go back to the closest preceding statement start, which could be inside a conditional statement. - * progmodes/cc-engine.el (c-guess-basic-syntax): Use - c-beginning-of-closest-statement in cases 10B.2, 17B and 17C. + * progmodes/cc-engine.el (c-guess-basic-syntax): + Use c-beginning-of-closest-statement in cases 10B.2, 17B and 17C. * progmodes/cc-engine.el (c-guess-basic-syntax): Better handling of arglist-intro, arglist-cont-nonempty and arglist-close when the arglist is nested inside parens. Cases 7A, 7C and 7F changed. - * progmodes/cc-langs.el (c-Java-javadoc-paragraph-start): Brought - up-to-date with javadoc 1.2. + * progmodes/cc-langs.el (c-Java-javadoc-paragraph-start): + Brought up-to-date with javadoc 1.2. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed handling of + * progmodes/cc-engine.el (c-beginning-of-statement-1): Fix handling of multiline Pike type decls. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-cmds.el (c-indent-new-comment-line): Always break multiline comments in multiline mode, regardless of comment-multi-line. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug with + * progmodes/cc-engine.el (c-guess-basic-syntax): Fix bug with fully::qualified::names in C++ member init lists. Preamble in case 5D changed. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm * progmodes/cc-langs.el (c-common-init): Handling of obsolete variables moved to c-initialize-cc-mode. More compatible style override @@ -15471,16 +15471,16 @@ that duplicate entries in styles have the same effect regardless of DONT-OVERRIDE. - * progmodes/cc-styles.el (c-set-style-2): Fixed bug where the + * progmodes/cc-styles.el (c-set-style-2): Fix bug where the initialization of inheriting styles failed when the dont-override flag is set. * progmodes/cc-vars.el (c-special-indent-hook): Don't use set-from-style on this. -2000-07-24 Martin Stjernholm +2000-07-24 Martin Stjernholm - * progmodes/cc-defs.el (c-forward-comment): Removed the workaround + * progmodes/cc-defs.el (c-forward-comment): Remove the workaround introduced in 5.38 since it had worse side-effects. If a line contains the string "//\"", it regarded the // as a comment start since the \ temporarily doesn't have escape syntax. @@ -15520,9 +15520,9 @@ paragraphs on the first or last line of a file. (ada-format-paramlist): Fix handling of default parameter values. (ada-get-body-name): New function. - (ada-get-current-indent): Optimized by searching directly for an - existing generic part or a statement outside of it. Handle - ada-indent-align-comments when indenting comments Replaced some + (ada-get-current-indent): Optimize by searching directly for an + existing generic part or a statement outside of it. + Handle ada-indent-align-comments when indenting comments Replaced some regexps by testing directly the next character. This results in a huge speedup on some files. New indentation scheme for renames statements. Stop looking for the 'while' or 'for' associated with @@ -15582,7 +15582,7 @@ (ada-add-ada-menu): Remove the map and name parameters. Add the Ada Reference Manual to the menu. (ada-check-current): Rewritten as a call to ada-compile-current. - (ada-compile): Removed. + (ada-compile): Remove. (ada-compile-application, ada-compile-current, ada-check-current): Set the compilation-search-path so that compile.el automatically finds the sources in src_dir. Automatic scrolling of the @@ -15596,7 +15596,7 @@ (ada-find-file-in-dir): New function. (ada-find-references): Set the environment variables for gnatfind. (ada-find-src-file-in-dir): New function. - (ada-first-non-nil): Removed. + (ada-first-non-nil): Remove. (ada-gdb-application): Add support for jdb, the java debugger. (ada-get-ada-file-name): Load the original-file first if not done yet. @@ -15614,20 +15614,20 @@ compilation-search-path,... Add the standard runtime library to the search path for find-file. (ada-prj-default-debugger): Was missing an opening '{'. - (ada-prj-default-bind-opt, ada-prj-default-link-opt): New - variables. + (ada-prj-default-bind-opt, ada-prj-default-link-opt): + New variables. (ada-prj-default-gnatmake-opt): New variable. (ada-prj-find-prj-file): Handles non-file buffers For non-Ada buffers, the project file is the default one Save the windows configuration before displaying the menu. - (ada-prj-src-dir, ada-prj-obj-dir, ada-prj-comp-opt,...): Removed. + (ada-prj-src-dir, ada-prj-obj-dir, ada-prj-comp-opt,...): Remove. (ada-read-identifier): Fix xrefs on operators (for "mod", "and", ...) regexp-quote identifiers names to support operators +, -,... in regexps. (ada-remote): New function. (ada-run-application): Erase the output buffer before starting the - run Support remote execution of the application. Use - call-process, or the arguments are incorrectly parsed. + run Support remote execution of the application. + Use call-process, or the arguments are incorrectly parsed. (ada-set-default-project-file): Reread the content of the active project file, not the one from the current buffer When a project file is set as the default project, all directories are @@ -15807,7 +15807,7 @@ * net/goto-addr.el: Change maintainer to FSF. - * info.el (Info-title-face-alist): Removed. + * info.el (Info-title-face-alist): Remove. 2000-07-18 David Ponce @@ -15876,13 +15876,13 @@ * align.el (align-newline-and-indent): Adding new function, for auto-aligning blocks of code on RET. - (align-region): Fixed badly formatted minibuffer message. + (align-region): Fix badly formatted minibuffer message. 2000-07-17 Kenichi Handa * international/kkc.el (kkc-show-conversion-list-count): Customize it. - (kkc-region): Update kkc-next-count and kkc-prev-count here. Show - the conversion list at first if appropriate. + (kkc-region): Update kkc-next-count and kkc-prev-count here. + Show the conversion list at first if appropriate. (kkc-next): Don't update kkc-next-count here. (kkc-prev): Don't update kkc-prev-count here. (kkc-show-conversion-list-update): Fix setting up of conversion @@ -15897,8 +15897,8 @@ * cus-edit.el (custom-buffer-create-internal): Use a help-echo function to be more specific. - * wid-edit.el (widget-specify-field, widget-specify-button): Allow - non-string help-echo. + * wid-edit.el (widget-specify-field, widget-specify-button): + Allow non-string help-echo. (widget-types-convert-widget): Defsubst it. (widget-echo-help): Try to cope with a help-echo function of two possible sorts. @@ -15973,7 +15973,7 @@ Use fortran-comment-indent, not fortran-comment-indent-function. (fortran-comment-region, fortran-electric-line-number): Simplify. (fortran-auto-fill): New function. - (fortran-do-auto-fill): Deleted. + (fortran-do-auto-fill): Delete. (fortran-find-comment-start-skip): Check for non-null comment-start-skip. (fortran-auto-fill-mode, fortran-fill-statement): @@ -15985,8 +15985,8 @@ 2000-07-11 Eli Zaretskii - * eshell/esh-module.el (toplevel): Reference - byte-compile-current-file only if it is bound. + * eshell/esh-module.el (toplevel): + Reference byte-compile-current-file only if it is bound. 2000-07-10 Gerd Moellmann @@ -16000,7 +16000,7 @@ 2000-07-10 Kenichi Handa - * international/mule-diag.el (describe-font): Adjusted for the + * international/mule-diag.el (describe-font): Adjust for the change of fontset-info. (print-fontset): Likewise. @@ -16039,7 +16039,7 @@ 2000-07-01 Francesco Potortì - * rmail.el (mail-unsent-separator): Changed "the" to "\\w+", as + * rmail.el (mail-unsent-separator): Change "the" to "\\w+", as exim can use "your message" instead of "the message". 2000-07-06 Stefan Monnier @@ -16054,8 +16054,8 @@ 2000-07-05 Michael Kifer * ediff-diff.el (ediff-wordify): Use syntax table. - * ediff-init.el (ediff-has-face-support-p): Use - ediff-color-display-p. + * ediff-init.el (ediff-has-face-support-p): + Use ediff-color-display-p. (ediff-color-display-p): Use display-color-p, changed to defun from defsubst. Got rid of special cases for NeXT and OS/2. @@ -16076,7 +16076,7 @@ * Makefile.in (DONTCOMPILE): Add comment that the name may not be changed without changing the make-dist script. - * emacs-lisp/cl-extra.el (cl-old-mapc): Removed; don't defalias mapc. + * emacs-lisp/cl-extra.el (cl-old-mapc): Remove; don't defalias mapc. (cl-mapc): Use mapc instead of cl-old-mapc. 2000-07-05 Andrew Innes @@ -16191,8 +16191,8 @@ * mouse.el (mouse-show-mark, mouse-save-then-kill): Don't use window-system. - * man.el (Man-notify-when-ready): Don't use window-system. If - Man-notify-method is newframe, and the display is not + * man.el (Man-notify-when-ready): Don't use window-system. + If Man-notify-method is newframe, and the display is not multi-frame, select the frame created for the man page. (Man-init-defvars): Doc fix. @@ -16268,7 +16268,7 @@ (sql-find-sqli-buffer): Make sure the default-value of sql-buffer is used. - (sql-informix): Added command line parameter "-" to force + (sql-informix): Add command line parameter "-" to force sql-informix-program to use stdout. 2000-06-25 Eli Zaretskii @@ -16282,8 +16282,8 @@ 2000-06-23 Dave Love * font-lock.el (font-lock-support-mode) : Add :version. - (font-lock-fontify-anchored-keywords): Use - line-beginning-position. + (font-lock-fontify-anchored-keywords): + Use line-beginning-position. (global-font-lock-mode): Use mapc. 2000-06-23 Stefan Monnier @@ -16341,14 +16341,14 @@ 2000-06-22 Vinicius Jose Latorre * ps-print.el: Fix bug: if ^L is the very first buffer character, - ps-print crashes. New feature: page selection for printing. Create - raw-text-unix coding system for XEmacs. Doc fix. + ps-print crashes. New feature: page selection for printing. + Create raw-text-unix coding system for XEmacs. Doc fix. (ps-print-version): New version number (5.2.3). (ps-plot-region): Bug fix. (ps-setup, ps-init-output-queue, ps-output, ps-begin-job, ps-end-file) (ps-header-sheet, ps-generate, ps-end-job): Code fix. - (ps-restore-selected-pages, ps-selected-pages, ps-print-page-p): New - funs. + (ps-restore-selected-pages, ps-selected-pages, ps-print-page-p): + New funs. (ps-selected-pages, ps-last-selected-pages, ps-first-page) (ps-last-page): New vars. @@ -16363,8 +16363,8 @@ 2000-06-21 Kenichi Handa - * international/mule-cmds.el (set-language-info-alist): Docstring - fixed. + * international/mule-cmds.el (set-language-info-alist): + Docstring fixed. 2000-06-20 Gerd Moellmann @@ -16378,7 +16378,7 @@ 2000-06-20 Stefan Monnier * jit-lock.el (with-buffer-prepared-for-jit-lock): - Renamed from with-buffer-prepared-for-font-lock and use + Rename from with-buffer-prepared-for-font-lock and use inhibit-modification-hooks rather than setting *-change-functions. Update all functions to use the new name. (jit-lock-first-unfontify-pos): New semantics (and doc). @@ -16395,20 +16395,20 @@ 2000-06-20 Sam Steingold - * emacs-lisp/cl-indent.el (toplevel): Indent - `print-unreadable-object' properly. Untabify. + * emacs-lisp/cl-indent.el (toplevel): + Indent `print-unreadable-object' properly. Untabify. 2000-06-14 Carsten Dominik * textmodes/reftex.el (reftex-find-citation-regexp-format): Support for bibentry. - (reftex-compile-variables): Fixed problem with end of section-re. + (reftex-compile-variables): Fix problem with end of section-re. * textmodes/reftex-dcr.el (reftex-view-crossref) (reftex-view-crossref-from-bibtex): Deal with changed `reftex-find-citation-regexp-format'. (reftex-view-regexp-match, reftex-view-crossref-from-bibtex): - Replaced `remprop' with `put'. + Replace `remprop' with `put'. (reftex-view-crossref, reftex-view-crossref-when-idle): Support for bibentry. @@ -16490,8 +16490,8 @@ (isearch-minibuffer-input-method-function): These variables deleted. (isearch-with-input-method): Don't use the above variables. - (isearch-process-search-multibyte-characters): Likewise. Call - read-string with the arg INHERIT-INPUT-METHOD t. + (isearch-process-search-multibyte-characters): Likewise. + Call read-string with the arg INHERIT-INPUT-METHOD t. 2000-06-17 Stefan Monnier @@ -16546,8 +16546,8 @@ 2000-06-15 Gerd Moellmann * info.el (Info-find-in-tag-table-1, Info-find-in-tag-table) - (Info-find-node-in-buffer-1, Info-find-node-in-buffer): New - functions. + (Info-find-node-in-buffer-1, Info-find-node-in-buffer): + New functions. (Info-find-node-2): Try a case-sensitive search first, then do a case-insensitive search. @@ -16575,8 +16575,8 @@ 2000-06-15 Kenichi Handa - * international/mule.el (set-buffer-file-coding-system): Almost - rewritten to handle `undecided' as no-op. + * international/mule.el (set-buffer-file-coding-system): + Almost rewritten to handle `undecided' as no-op. 2000-06-14 Gerd Moellmann @@ -16599,8 +16599,8 @@ (tar-subfile-save-buffer): Likewise. * international/mule.el - (after-insert-file-set-buffer-file-coding-system): Call - set-buffer-file-coding-system with the arg FORCE t. + (after-insert-file-set-buffer-file-coding-system): + Call set-buffer-file-coding-system with the arg FORCE t. 2000-06-13 Gerd Moellmann @@ -16620,15 +16620,15 @@ 2000-06-13 Eli Zaretskii - * frame.el (display-multi-frame-p, display-multi-font-p): New - defaliases for display-graphic-p. + * frame.el (display-multi-frame-p, display-multi-font-p): + New defaliases for display-graphic-p. * hl-line.el: Fixed a typo in commentary. 2000-06-13 Kenichi Handa - * language/tibet-util.el (tibetan-tibetan-to-transcription): Typo - fixed. + * language/tibet-util.el (tibetan-tibetan-to-transcription): + Typo fixed. 2000-06-12 Dave Love @@ -16709,8 +16709,8 @@ 2000-06-12 Kenichi Handa - * international/mule.el (set-buffer-file-coding-system): If - CODING-SYSTEM is nil, set buffer-file-coding-system to nil + * international/mule.el (set-buffer-file-coding-system): + If CODING-SYSTEM is nil, set buffer-file-coding-system to nil unconditionally. 2000-06-12 Dave Love @@ -16769,8 +16769,8 @@ * progmodes/executable.el: Byte compile dynamic. (executable-insert): Change custom type. (executable-find): Add autoload cookie. - (executable-make-buffer-file-executable-if-script-p): New - function. After Noah Friedman. + (executable-make-buffer-file-executable-if-script-p): + New function. After Noah Friedman. * files.el (after-save-hook): Customize, with executable-make-buffer-file-executable-if-script-p as an option. @@ -16792,8 +16792,8 @@ 2000-06-08 Dave Love - * international/mule-cmds.el (select-safe-coding-system): If - DEFAULT-CODING-SYSTEM is not specified, also check the most + * international/mule-cmds.el (select-safe-coding-system): + If DEFAULT-CODING-SYSTEM is not specified, also check the most preferred coding-system if buffer-file-coding-system is `undecided'. From Handa. @@ -16917,8 +16917,8 @@ (ccl-encode-alternativnyj, ccl-encode-alternativnyj-font): Likewise. - * international/mule-diag.el (non-iso-charset-alist): Specify - translation table symbol instead of translation table itself. + * international/mule-diag.el (non-iso-charset-alist): + Specify translation table symbol instead of translation table itself. (list-block-of-chars): CHARSET may be a translation table symbol. * international/mule.el (make-coding-system): If CODING-SYSTEM @@ -16927,9 +16927,9 @@ * international/fontset.el: Use family `proportional' for Tibetan fonts. - * international/ccl.el (ccl-compile-translate-character): Don't - check if Rrr has property translation-table. - (ccl-compile-map-multiple): Modified to avoid compiler warning. + * international/ccl.el (ccl-compile-translate-character): + Don't check if Rrr has property translation-table. + (ccl-compile-map-multiple): Modify to avoid compiler warning. 2000-06-05 Gerd Moellmann @@ -16958,7 +16958,7 @@ (sh-help-string-for-variable, sh-guess-basic-offset): Don't quote lambdas. (sh-electric-rparen, sh-electric-hash, sh-search-word): Docstring typo. - (sh-regexp-for-done, sh-kw-alist, sh-kw): Moved to before their use. + (sh-regexp-for-done, sh-kw-alist, sh-kw): Move to before their use. * mail/mh-comp.el (mh-send-sub): Check mh-etc is bound before using it. (mh-letter-mode): Derive from text-mode. @@ -17017,18 +17017,18 @@ 2000-06-02 Dave Love * wid-edit.el: byte-compile-dynamic since we typically don't use - all the widgets. Don't require cl or widget. Remove - eval-and-compile. Don't autoload finder-commentary. Doc fixes. - (widget-read-event): Removed. Callers changed to use read-event. - (widget-button-release-event-p): Renamed from + all the widgets. Don't require cl or widget. + Remove eval-and-compile. Don't autoload finder-commentary. Doc fixes. + (widget-read-event): Remove. Callers changed to use read-event. + (widget-button-release-event-p): Rename from button-release-event-p. (widget-field-add-space, widget-field-use-before-change): Uncustomize. (widget-specify-field): Use keymap property, not local-map. (widget-specify-button): Obey :suppress-face. (widget-specify-insert): Use modern backquote syntax. - (widget-image-directory): Renamed from widget-glyph-directory. - (widget-image-enable): Renamed from widget-glyph-enable. + (widget-image-directory): Rename from widget-glyph-directory. + (widget-image-enable): Rename from widget-glyph-enable. (widget-image-find): Replaces widget-glyph-find. (widget-button-pressed-face): Move defvar. (widget-image-insert): Replaces widget-glyph-insert. @@ -17044,8 +17044,8 @@ (widget-sexp-prompt-value, widget-echo-help): Simplify. (widget-default-create): Use widget-image-insert; some rewriting. (widget-visibility-value-create) - (widget-push-button-value-create, widget-toggle-value-create): Use - widget-image-insert. + (widget-push-button-value-create, widget-toggle-value-create): + Use widget-image-insert. (checkbox): Create on and off images dynamically. (documentation-link): Change :help-echo. (widget-documentation-link-echo-help): Remove. @@ -17114,8 +17114,8 @@ (tibetan-composition-function): Fix args to tibetan-compose-string. - * language/tibetan.el (tibetan-composable-pattern): More - characters included. + * language/tibetan.el (tibetan-composable-pattern): + More characters included. (tibetan-consonant-transcription-alist): Rule for "R" added. (tibetan-subjoined-transcription-alist): Rules for "+W", "+Y", and "+R" added. @@ -17154,8 +17154,8 @@ 2000-05-31 Dave Love - * loadhist.el (loadhist-hook-functions): Remove - before-change-function, after-change-function. + * loadhist.el (loadhist-hook-functions): + Remove before-change-function, after-change-function. (unload-feature): Deal with symbols which are both bound and fbound. @@ -17228,8 +17228,8 @@ * progmodes/antlr-mode.el: New commands: hide/unhide actions, upcase/downcase literals. (antlr-tiny-action-length): New user option. - (antlr-hide-actions): New command. Suggested by - Bjoern Mielenhausen . + (antlr-hide-actions): New command. + Suggested by Bjoern Mielenhausen . (antlr-mode-map): New binding [C-c C-v]. (antlr-mode-menu): New entries. (antlr-downcase-literals): New command. @@ -17242,8 +17242,8 @@ * progmodes/antlr-mode.el: XEmacs bug workaround, XEmacs hint. (antlr-font-lock-additional-keywords): Workaround for intentional bug in XEmacs version of font-lock. - (antlr-mode): Set symbol property `mode-name' to "Antlr". Could - be used by a smarter version of `buffers-menu-grouping-function'. + (antlr-mode): Set symbol property `mode-name' to "Antlr". + Could be used by a smarter version of `buffers-menu-grouping-function'. 2000-05-29 Gerd Moellmann @@ -17265,8 +17265,8 @@ 2000-05-28 Eli Zaretskii - * international/codepage.el (cp-coding-system-for-codepage-1): Add - eight-bit-graphic and eight-bit-control to safe charsets for cpNNN + * international/codepage.el (cp-coding-system-for-codepage-1): + Add eight-bit-graphic and eight-bit-control to safe charsets for cpNNN coding systems. 2000-05-26 Dave Love @@ -17275,10 +17275,10 @@ internal-find-face. * mail/reporter.el: Maintainer change. Doc fixes. - (reporter-version): Deleted. + (reporter-version): Delete. * emacs-lisp/elp.el: Maintainer change. - (elp-help-address, elp-submit-bug-report, elp-version): Deleted. + (elp-help-address, elp-submit-bug-report, elp-version): Delete. 2000-05-26 Stefan Monnier @@ -17290,8 +17290,8 @@ * loadhist.el (unload-feature): Fix interactive spec [from lijnzaad@ebi.ac.uk]. - * emacs-lisp/bytecomp.el (byte-compile-callargs-warn): Use - subr-arity to check primitives. + * emacs-lisp/bytecomp.el (byte-compile-callargs-warn): + Use subr-arity to check primitives. (byte-compile-flush-pending, byte-compile-file-form-progn) (byte-compile-normal-call, byte-compile-list, byte-compile-concat) (byte-compile-insert, byte-compile-funcall): Use mapc instead of @@ -17354,8 +17354,8 @@ window-system. (ffap-highlight): Always default to t. - * emacs-lisp/edebug.el (edebug-emacs-19-specific): Call - display-popup-menus-p instead of looking at window-system. + * emacs-lisp/edebug.el (edebug-emacs-19-specific): + Call display-popup-menus-p instead of looking at window-system. * disp-table.el (standard-display-g1, standard-display-graphic): Only refuse to use string glyphs on X and MS-Windows. @@ -17374,8 +17374,8 @@ 2000-05-25 Eli Zaretskii - * international/mule-diag.el (describe-char-after): Use - display-graphic-p instead of window-system, so that this function + * international/mule-diag.el (describe-char-after): + Use display-graphic-p instead of window-system, so that this function works on MS-DOS. 2000-05-25 Eli Zaretskii @@ -17402,7 +17402,7 @@ 2000-05-24 Eric M. Ludlam - * rmailout.el (rmail-output-to-rmail-file): Added optional param + * rmailout.el (rmail-output-to-rmail-file): Add optional param STAY. * rmail.el (rmail-automatic-folder-directives): New user variable. @@ -17421,8 +17421,8 @@ * ediff-init.el (ediff-merge-filename-prefix): New customizable variable. - * ediff-mult.el (ediff-filegroup-action): Use - ediff-merge-filename-prefix. + * ediff-mult.el (ediff-filegroup-action): + Use ediff-merge-filename-prefix. 2000-05-24 Michael Kifer @@ -17460,14 +17460,14 @@ * speedbar.el (speedbar-easymenu-definition-base): Image toggle fix. (speedbar-insert-button): Invisible text property fix. - (speedbar-directory-plus): Renamed from speedbar-directory-+. - (speedbar-directory-minus): Renamed from speedbar-directory--. - (speedbar-page-plus): Renamed from speedbar-file-+. - (speedbar-page-minus): Renamed from speedbar-file--. - (speedbar-page): Renamed from speedbar-file-. - (speedbar-tag): Renamed from speedbar-tag-. - (speedbar-tag-plus): Renamed from speedbar-tag-+. - (speedbar-tag-minus): Renamed from speedbar-tag--. + (speedbar-directory-plus): Rename from speedbar-directory-+. + (speedbar-directory-minus): Rename from speedbar-directory--. + (speedbar-page-plus): Rename from speedbar-file-+. + (speedbar-page-minus): Rename from speedbar-file--. + (speedbar-page): Rename from speedbar-file-. + (speedbar-tag): Rename from speedbar-tag-. + (speedbar-tag-plus): Rename from speedbar-tag-+. + (speedbar-tag-minus): Rename from speedbar-tag--. (speedbar-expand-image-button-alist): Use above renames. * sb-dir-plus.xpm: Renamed from sb-dir+.xpm @@ -17480,8 +17480,8 @@ 2000-05-24 Kenichi Handa - * international/quail.el (quail-show-guidance-buf): Set - current-input-method of the guidance buffer to the name of the + * international/quail.el (quail-show-guidance-buf): + Set current-input-method of the guidance buffer to the name of the current input method. 2000-05-23 Stefan Monnier @@ -17520,8 +17520,8 @@ 2000-05-22 Dave Love - * loadhist.el (feature-symbols, file-provides, file-requires): Use - mapc. + * loadhist.el (feature-symbols, file-provides, file-requires): + Use mapc. (feature-file): Avoid calling symbol-name. Doc fix. (file-set-intersect, file-dependents): Use dolist, not mapcar. (loadhist-hook-functions): Add mouse-position-function. @@ -17537,7 +17537,7 @@ 2000-05-22 Sam Steingold - * info.el (Info-fontify-node): Fixed the call to + * info.el (Info-fontify-node): Fix the call to `add-text-properties' (bug introduced on 2000-05-18). 2000-05-22 Dave Love @@ -17547,11 +17547,11 @@ * progmodes/etags.el: Add to debug-ignored-errors. (visit-tags-table-buffer): Clear out buffers holding old tables when making a new list. - (etags-recognize-tags-table, tags-recognize-empty-tags-table): Use - mapc. + (etags-recognize-tags-table, tags-recognize-empty-tags-table): + Use mapc. - * completion.el: Doc fixes. Add to debug-ignored-errors. Don't - quote keywords. + * completion.el: Doc fixes. Add to debug-ignored-errors. + Don't quote keywords. (cmpl-string-case-type): Use character classes. * comint.el: @@ -17582,8 +17582,8 @@ 2000-05-22 Kenichi Handa - * international/quail.el (quail-simple-translation-keymap): Map - 128..255 to quail-self-insert-command. + * international/quail.el (quail-simple-translation-keymap): + Map 128..255 to quail-self-insert-command. (quail-keyboard-layout-alist): Add definition for "pc102-de". 2000-05-22 Stefan Monnier @@ -17603,8 +17603,8 @@ * edmacro.el (edmacro-parse-keys): Return vector if any elements are invalid characters. - * international/mule-util.el (detect-coding-with-priority): Use - mapc. Remove redundant lambda. + * international/mule-util.el (detect-coding-with-priority): + Use mapc. Remove redundant lambda. * international/mule-diag.el (list-non-iso-charset-chars) (describe-fontset): Remove redundant lambda. @@ -17665,14 +17665,14 @@ * mail/rmail.el (rmail-decode-quoted-printable): Use delete-region and insert, not subst-char-in-region. - * international/mule-diag.el (list-character-sets-1): Handle - charsets eight-bit-control and eight-bit-graphic. + * international/mule-diag.el (list-character-sets-1): + Handle charsets eight-bit-control and eight-bit-graphic. (list-iso-charset-chars): Likewise. (list-block-of-chars): If CHARSET is not char-table, insert 8-bit characters as is. Use indent-to to align characters. - * international/mule-cmds.el (find-multibyte-characters): Never - exclude charsets eight-bit-control and eight-bit-graphic. + * international/mule-cmds.el (find-multibyte-characters): + Never exclude charsets eight-bit-control and eight-bit-graphic. 2000-05-19 Stefan Monnier @@ -17707,18 +17707,18 @@ * ps-print.el: Compatibility, customization and doc fix. (ps-printer-name-option): Replace defconst by defvar. (ps-postscript-code-directory): XEmacs compatibility. - (ps-header-sheet, ps-setup, ps-begin-file, ps-begin-job): Code - fix. + (ps-header-sheet, ps-setup, ps-begin-file, ps-begin-job): + Code fix. (ps-user-defined-prologue, ps-print-prologue-header) - (ps-xemacs-face-kind-p, ps-face-bold-p, ps-face-italic-p): XEmacs - compatibility and code fix. + (ps-xemacs-face-kind-p, ps-face-bold-p, ps-face-italic-p): + XEmacs compatibility and code fix. (ps-print-background-image, ps-print-background-text): Customization fix. (ps-line-number-start, ps-n-up-on): New vars. 2000-05-18 Espen Skoglund - * pascal.el (pascal-indent-alist, pascal-indent-comment): Changed + * pascal.el (pascal-indent-alist, pascal-indent-comment): Change the indent-comment function to just return the appropriate indent. 2000-05-18 Eric M. Ludlam @@ -17737,8 +17737,8 @@ 2000-05-18 Kenichi Handa - * international/mule-diag.el (describe-char-after): Call - internal-char-font, not char-font. If internal-char-font returns + * international/mule-diag.el (describe-char-after): + Call internal-char-font, not char-font. If internal-char-font returns nil, display "-- none --". 2000-05-17 Eli Zaretskii @@ -17784,8 +17784,8 @@ * help.el (view-emacs-FAQ): Change `emacs-faq' to `efaq'. - * progmodes/compile.el (compilation-parse-errors): Collect - `nomessage' regexps last. + * progmodes/compile.el (compilation-parse-errors): + Collect `nomessage' regexps last. * dired.el (dired-mode-map): Use dired-do-query-replace-regexp. @@ -17829,8 +17829,8 @@ (help-xref-following): New variable. (help-make-xrefs): Use it. (help-xref-go-back): Use position information from stack element. - (help-follow): Make position in stack element a pair. Use - help-xref-following. + (help-follow): Make position in stack element a pair. + Use help-xref-following. * autoarg.el: New file. @@ -17853,16 +17853,16 @@ (speedbar-easymenu-definition-special): Add flush cache & expand. (speedbar-visiting-tag-hook): Set new defaults. Added options. (speedbar-reconfigure-keymaps-hook): New variable. - (speedbar-frame-parameters): Updated documentation. - (speedbar-use-imenu-flag): Updated custom tag. + (speedbar-frame-parameters): Update documentation. + (speedbar-use-imenu-flag): Update custom tag. (speedbar-dynamic-tags-function-list): New variable. - (speedbar-tag-hierarchy-method): Updated doc & custom. + (speedbar-tag-hierarchy-method): Update doc & custom. (speedbar-indentation-width, speedbar-indentation-width) New variables. (speedbar-hide-button-brackets-flag): Customizable. (speedbar-vc-indicator): Doc update. - (speedbar-ignored-path-expressions): Updated default value. - (speedbar-supported-extension-expressions): Updated default value. + (speedbar-ignored-path-expressions): Update default value. + (speedbar-supported-extension-expressions): Update default value. (speedbar-syntax-table): Remove {} paren status. (speedbar-file-key-map, speedbar-buffers-key-map): Add "=" to act as "+". Added overlay aliases. @@ -17874,24 +17874,24 @@ (speedbar-reconfigure-keymaps): Run configure keymap hooks. (speedbar-item-info-tag-helper): Revamped to handle a wider range of arbitrary text, and new helper functions. - (speedbar-item-copy, speedbar-item-rename): Fixed trailing \ in + (speedbar-item-copy, speedbar-item-rename): Fix trailing \ in filename finder. (speedbar-make-button): Call `speedbar-insert-image-button-maybe'. (speedbar-directory-buttons): Update path search/expansion. (speedbar-make-tag-line): Pay attention to `speedbar-indentation-width'. Use more care w/ invisible properties. - (speedbar-change-expand-button-char): Call - `speedbar-insert-image-button-maybe'. - (speedbar-apply-one-tag-hierarchy-method): Deleted (and replaced). + (speedbar-change-expand-button-char): + Call `speedbar-insert-image-button-maybe'. + (speedbar-apply-one-tag-hierarchy-method): Delete (and replaced). (speedbar-sort-tag-hierarchy, speedbar-prefix-group-tag-hierarchy) (speedbar-trim-words-tag-hierarchy) (speedbar-simple-group-tag-hierarchy): New functions. (speedbar-create-tag-hierarchy): Update doc, use new tag hooks. - (speedbar-insert-imenu-list, speedbar-insert-etags-list): New - functions. + (speedbar-insert-imenu-list, speedbar-insert-etags-list): + New functions. (speedbar-mouse-set-point): New function. - (speedbar-power-click): Updated documentation. + (speedbar-power-click): Update documentation. (speedbar-line-token, speedbar-goto-this-file): Handle more types of tag prefix text. (speedbar-expand-line, speedbar-contract-line): Make more robust @@ -17902,10 +17902,10 @@ (speedbar-tag-file): Use new `speedbar-fetch-dynamic-tags' fn. Use new generator insertion method. (speedbar-fetch-dynamic-tags): New function. - (speedbar-fetch-dynamic-imenu): Removed code now handled in + (speedbar-fetch-dynamic-imenu): Remove code now handled in `speedbar-fetch-dynamic-imenu'. (speedbar-fetch-dynamic-etags): Fix current buffer problem. - (speedbar-buffer-easymenu-definition): Added "Kill Buffer", and + (speedbar-buffer-easymenu-definition): Add "Kill Buffer", and "Revert Buffer" menu items. (speedbar-buffer-buttons-engine): Be smarter when creating a filename tag (for expansion purposes.). @@ -17930,17 +17930,17 @@ of character sets. * international/mule-diag.el (describe-char-after): New function. - (describe-font-internal): Adjusted for the change of font-info. + (describe-font-internal): Adjust for the change of font-info. (describe-font): Likewise. (print-fontset): Rewritten for the new fontset implementation. (describe-fontset): Include fontset alias names in completion. - (list-fontsets): Adjusted for the change of print-fontset. + (list-fontsets): Adjust for the change of print-fontset. * simple.el (what-cursor-position): If DETAIL is non-nil, call describe-char-after instead of displaying the detail in the echo area. (syntax-code-table): Format changed. - (string-to-syntax): Adjusted for the above change. + (string-to-syntax): Adjust for the above change. 2000-05-12 Stefan Monnier @@ -18030,8 +18030,8 @@ (help-xref-symbol-regexp): Add `face'. (help-make-xrefs): Check for quoted face names and adapt regexp submatch numbers to cope. - (help-xref-interned): Maybe insert face doc too. Separate - sections with a line of hyphens. + (help-xref-interned): Maybe insert face doc too. + Separate sections with a line of hyphens. * faces.el: Some doc fixes. Declare some functions obsolete. (describe-face): Add customize button. Return the help @@ -18052,8 +18052,8 @@ simulations for greek-iso8859-7, add latin-iso8859-14 and latin-iso8859-15. - * international/mule-cmds.el (set-language-info-alist): Call - define-prefix-command with 3 arguments, to make the map suitable + * international/mule-cmds.el (set-language-info-alist): + Call define-prefix-command with 3 arguments, to make the map suitable for a menu. 2000-05-07 Dave Love @@ -18081,8 +18081,8 @@ 2000-05-04 Milan Zamazal - * progmodes/glasses.el (glasses-convert-to-unreadable): Use - `glasses-separator' instead of the hard-wired "_". + * progmodes/glasses.el (glasses-convert-to-unreadable): + Use `glasses-separator' instead of the hard-wired "_". (glasses-mode): Call `glasses-make-unreadable' only in a single place. @@ -18112,7 +18112,7 @@ * subr.el (add-minor-mode): Handle AFTER for keymaps. Don't set TOGGLE's value. - * mailabbrev.el (mail-abbrev-insert-alias): Renamed from + * mailabbrev.el (mail-abbrev-insert-alias): Rename from mail-interactive-insert-alias. (mail-abbrev-complete-alias): New command. (mail-mode-map): Bind it to `M-TAB'. @@ -18146,8 +18146,8 @@ 2000-05-02 Eli Zaretskii - * international/mule-cmds.el (set-language-environment): Don't - concat an integer (dos-codepage), use format instead. + * international/mule-cmds.el (set-language-environment): + Don't concat an integer (dos-codepage), use format instead. 2000-05-02 Dave Love @@ -18188,8 +18188,8 @@ 2000-04-28 Kenichi Handa - * mail/sendmail.el (sendmail-send-it): Set - buffer-file-coding-system to the selected coding system for MIME + * mail/sendmail.el (sendmail-send-it): + Set buffer-file-coding-system to the selected coding system for MIME header. 2000-04-27 Gerd Moellmann @@ -18235,8 +18235,8 @@ * image.el (find-image): New function. (defimage): Rewritten to find image at load time. - * startup.el (normal-top-level-add-to-load-path): Handle - case that the default directory is not in load-path. + * startup.el (normal-top-level-add-to-load-path): + Handle case that the default directory is not in load-path. * help.el: Old patch from Stefan Monnier. (help-xref-on-pp): New function. @@ -18259,13 +18259,13 @@ 2000-04-25 Gerd Moellmann - * replace.el (perform-replace): Add parameters START and END. Use - them instead of the check for a region in Transient Mark mode. + * replace.el (perform-replace): Add parameters START and END. + Use them instead of the check for a region in Transient Mark mode. (query-replace-read-args): Return two more list elements for the start and end of the region in Transient Mark mode. (query-replace, query-replace-regexp, query-replace-regexp-eval) - (map-query-replace-regexp, replace-string, replace-regexp): Add - optional last arguments START and END and pass them to + (map-query-replace-regexp, replace-string, replace-regexp): + Add optional last arguments START and END and pass them to perform-replace. * progmodes/ebrowse.el (ebrowse-tags-query-replace): Construct a @@ -18330,7 +18330,7 @@ * progmodes/inf-lisp.el (inferior-lisp-mode): Don't set non-existing variable comint-input-sentinel. - (inferior-lisp-args-to-list): Removed. + (inferior-lisp-args-to-list): Remove. (inferior-lisp): Use split-string instead of inferior-lisp-args-to-list. @@ -18482,8 +18482,8 @@ accept-process-output with ispell-accept-output. (ispell-init-process): Call ispell-process-status instead of process-status with. - (ispell-init-process): Call ispell-start-process. Call - ispell-accept-output and ispell-send-string. Don't call + (ispell-init-process): Call ispell-start-process. + Call ispell-accept-output and ispell-send-string. Don't call process-kill-without-query and kill-process if they are unbound. (ispell-async-processp): New function. @@ -18495,22 +18495,22 @@ * menu-bar.el (menu-bar-options-menu): Make `mule' always visible. Modify `truncate-lines'. Make `describe-language-environment' - always visible and add help. Modify `describe-key' help. Invoke - Info-directory from `info'. New entry `emacs-manual'. + always visible and add help. Modify `describe-key' help. + Invoke Info-directory from `info'. New entry `emacs-manual'. 2000-04-10 Gerd Moellmann * progmodes/ebrowse.el (ebrowse-tree-mode): Use propertized-buffer-identification. (ebrowse-update-member-buffer-mode-line): Likewise. - (ebrowse--mode-strings): Removed. - (ebrowse--mode-line-props): Removed. + (ebrowse--mode-strings): Remove. + (ebrowse--mode-line-props): Remove. * files.el (auto-mode-alist): Add `EBROWSE'. * progmodes/ebrowse.el (ebrowse-read): Skip forward over white space before testing for end of buffer. - (ebrowse-load): Removed. + (ebrowse-load): Remove. (ebrowse-revert-tree-buffer-from-file): Rewritten. (ebrowse-create-tree-buffer): Rewritten. (ebrowse-tree-mode): Read tree from buffer. @@ -18541,7 +18541,7 @@ * progmodes/ebrowse-ffh.el: New file. * progmodes/ebrowse.el (ebrowse-find-file-hook-fn): - Moved to ebrowse-ffh.el. + Move to ebrowse-ffh.el. (ebrowse-load): Add autoload. * finder.el (finder-commentary): Add autoload cookie. @@ -18746,7 +18746,7 @@ (network-connection-mode-setup): New function, saves host and service information in local variables. - * locate.el (locate-word-at-point): Added this function. + * locate.el (locate-word-at-point): Add this function. (locate): Default to using locate-word-at-point as input Run dired-mode-hook @@ -18884,9 +18884,9 @@ text of the URL was passed. Now the whole URL structure is passed and the function is responsible for extracting the parts it requires. Changed the default of `quickurl-format-function' accordingly. - (quickurl-insert): Changed the `funcall' of + (quickurl-insert): Change the `funcall' of `quickurl-format-function' to match the above change. - (quickurl-list-insert): Changed the `url' case so that it makes + (quickurl-list-insert): Change the `url' case so that it makes use of `quickurl-format-function', previous to this the format was hard wired. @@ -19016,7 +19016,7 @@ * international/mule-diag.el (describe-font): Don't refer to global-fontset-alist, instead call font-list. (describe-fontset, list-fontsets, mule-diag): Likewise. - (print-fontset): Adjusted for the change of fontset implementation. + (print-fontset): Adjust for the change of fontset implementation. * international/fontset.el (x-charset-registries): Variable removed, instead the corresponding data is stored in the default fontset. @@ -19134,7 +19134,7 @@ 2000-03-14 Dave Love - * subr.el (replace-regexp-in-string): Renamed from + * subr.el (replace-regexp-in-string): Rename from replace-regexps-in-string. Doc fix. 2000-03-12 Dave Love @@ -19248,8 +19248,8 @@ builtin operators, use `font-lock-builtin-face' for Emacs and `font-lock-preprocessor-face' otherwise. - * font-lock.el (lisp-font-lock-keywords-1): Highlight - `(defun (setf foo)' differently. + * font-lock.el (lisp-font-lock-keywords-1): + Highlight `(defun (setf foo)' differently. 2000-03-08 Stefan Monnier @@ -19265,7 +19265,7 @@ both cases close together. Also apply a more generic algorithm for suffixes (the mirror image of the algorithm used for prefixes). Use shy-groups. Use nreverse rather than reverse. - (regexp-opt-try-suffix): Removed. + (regexp-opt-try-suffix): Remove. * cmuscheme.el (inferior-scheme-mode-map): Define it independently from comint-mode-map, so we can just inherit from it. Also, move @@ -19397,20 +19397,20 @@ 2000-03-01 David Ponce - * recentf.el (recentf): Added version tag to the defgroup of recentf. + * recentf.el (recentf): Add version tag to the defgroup of recentf. 2000-03-01 David Ponce - * recentf.el (recentf-cleanup): Changed to remove excluded file too. + * recentf.el (recentf-cleanup): Change to remove excluded file too. (recentf-edit-list-action): `recentf-edit-list' checkbox widget action to select/unselect a file. (recentf-edit-list): Code cleanup and improvement. (recentf-open-more-files-action): `recentf-open-more-files' button widget action to open a file. (recentf-open-more-files): No more use standard completion but widgets. - (recentf-more-collection): Deleted. - (recentf-more-history): Deleted. - (recentf-setup-more-completion): Deleted. + (recentf-more-collection): Delete. + (recentf-more-history): Delete. + (recentf-setup-more-completion): Delete. 2000-03-01 David Ponce @@ -19424,7 +19424,7 @@ (recentf-edit-selected-items): New global variable, used by `recentf-edit-list' to hold the list of files to be removed from the recent list. - (recentf-make-menu-items): Updated to display a "Edit list..." + (recentf-make-menu-items): Update to display a "Edit list..." menu item. Minor code cleanup. 2000-03-01 David Ponce @@ -19437,7 +19437,7 @@ used by `recentf-open-more-files' completion. (recentf-setup-more-completion): New function to setup completion for `recentf-open-more-files'. - (recentf-make-menu-items): Updated to display a "More..." menu item. + (recentf-make-menu-items): Update to display a "More..." menu item. 2000-03-01 David Ponce @@ -19450,8 +19450,8 @@ (recentf-make-menu-items): New menu filter handling. (recentf-make-menu-item): New helper function. (recentf-menu-elements): New menu handling function. - (recentf-sort-ascending): Updated to new menu filter handling. - (recentf-sort-descending): Updated to new menu filter handling. + (recentf-sort-ascending): Update to new menu filter handling. + (recentf-sort-descending): Update to new menu filter handling. (recentf-sort-basenames-ascending): New menu filter function. (recentf-sort-basenames-descending): New menu filter function. (recentf-show-basenames): New menu filter function. @@ -19490,20 +19490,20 @@ instead of assoc-delete-all. (frame-notice-user-settings): Ditto. - * subr.el (assq-delete-all): Renamed from assoc-delete-all. + * subr.el (assq-delete-all): Rename from assoc-delete-all. Don't copy alist. 2000-02-28 Eli Barzilay * calculator.el (calculator-use-menu): New option. - (calculator-initial-bindings): Changed some bindings to work as macros. - (calculator-forced-input): Removed. + (calculator-initial-bindings): Change some bindings to work as macros. + (calculator-forced-input): Remove. (calculator-restart-other-mode): New variable. (calculator-mode-map): Set up menu. 2000-02-28 Jari Aalto - * font-lock.el (java-keywords): Added missing java 1.2.2 Javadoc tags. + * font-lock.el (java-keywords): Add missing java 1.2.2 Javadoc tags. 2000-02-28 Michael Kifer @@ -19582,7 +19582,7 @@ (footnote-latin-regexp): New variable. (Footnote-latin): New function. (footnote-style-alist): Add element for latin style. - (footnote-style): Moved. + (footnote-style): Move. (Footnote-goto-footnote): Use eq to test arg. * mouse.el (mouse-drag-mode-line-1): Remove `growth =' message. @@ -19752,7 +19752,7 @@ 2000-02-15 Dirk Herrmann - * textmodes/bibtex.el (bibtex-mode): Replaced manual splitting of path + * textmodes/bibtex.el (bibtex-mode): Replace manual splitting of path at ':' characters by call to split-string. 2000-02-15 Dirk Herrmann @@ -19764,21 +19764,21 @@ * textmodes/bibtex.el: Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. - (bibtex-start-of-string): Deleted because unused. + (bibtex-start-of-string): Delete because unused. * textmodes/bibtex.el: Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. - (bibtex-keys): Renamed to bibtex-reference-keys. - (bibtex-reformat-previous-labels): Renamed to + (bibtex-keys): Rename to bibtex-reference-keys. + (bibtex-reformat-previous-labels): Rename to bibtex-reformat-previous-reference-keys. - (bibtex-reference-type): Renamed to bibtex-entry-type. - (bibtex-reference-head): Renamed to bibtex-entry-head. - (bibtex-reference-maybe-empty-head): Renamed to + (bibtex-reference-type): Rename to bibtex-entry-type. + (bibtex-reference-head): Rename to bibtex-entry-head. + (bibtex-reference-maybe-empty-head): Rename to bibtex-entry-maybe-empty-head. - (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. - (bibtex-search-reference): Renamed to bibtex-search-entry. - (bibtex-enclosing-reference-maybe-empty-head): Renamed to + (bibtex-key-in-reference): Rename to bibtex-key-in-entry. + (bibtex-search-reference): Rename to bibtex-search-entry. + (bibtex-enclosing-reference-maybe-empty-head): Rename to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head) (bibtex-font-lock-keywords, bibtex-skip-to-valid-entry) @@ -19793,7 +19793,7 @@ 2000-02-15 Dirk Herrmann - * textmodes/bibtex.el (bibtex-strings, bibtex-keys): Removed redundant + * textmodes/bibtex.el (bibtex-strings, bibtex-keys): Remove redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. @@ -19813,7 +19813,7 @@ (bibtex-field-string-or-const, bibtex-field-text, bibtex-field) (bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix) (bibtex-string, bibtex-key-in-string, bibtex-text-in-string): - Deleted as parsing is now performed by the following functions. + Delete as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced) (bibtex-parse-quoted-string, bibtex-parse-field-string-quoted) (bibtex-parse-field-string, bibtex-search-forward-field-string) @@ -19832,7 +19832,7 @@ entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. - (bibtex-enclosing-field): Changed to also report field boundaries by + (bibtex-enclosing-field): Change to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. @@ -19878,11 +19878,11 @@ * bibtex.el: Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. - (bibtex-hs-forward-sexp): Added for hideshow.el. + (bibtex-hs-forward-sexp): Add for hideshow.el. 2000-02-15 Dirk Herrmann - * bibtex.el (bibtex-entry-field-alist): Added booktitle field to + * bibtex.el (bibtex-entry-field-alist): Add booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. @@ -19895,11 +19895,11 @@ 2000-02-12 Gerd Moellmann * uniquify.el (toplevel): Require CL at compile time. - (uniquify-push): Removed. + (uniquify-push): Remove. - * shadowfile.el (shadow-when): Removed. + * shadowfile.el (shadow-when): Remove. - * tempo.el (tempo-dolist, tempo-mapc): Removed. + * tempo.el (tempo-dolist, tempo-mapc): Remove. (tempo-process-and-insert-string): Use dolist instead of tempo-dolist. * textmodes/sgml-mode.el (sgml-mode-common): Remove `$' from @@ -19912,7 +19912,7 @@ * wid-edit.el (widgets) [defgroup]: Remove url link. (widget-color-choice-list, widget-color-history, widget-mouse-help): - Deleted. + Delete. (widget-specify-field, widget-specify-button): Don't use widget-mouse-help as help-echo property. (default): Use #'ignore for :validate and :mouse-down-action. @@ -19922,8 +19922,8 @@ (widget-color-complete): Use facemenu-color-alist. (widget-color-action): Use facemenu-read-color. - * emacs-lisp/cl-macs.el: Don't bother testing for defalias. Don't - set up `caar' &c that we now have. + * emacs-lisp/cl-macs.el: Don't bother testing for defalias. + Don't set up `caar' &c that we now have. 2000-02-09 Ray Blaak @@ -19935,9 +19935,9 @@ * bindings.el (mode-line-input-method-map): New variable. (mode-line-mule-info): Use it; fix last change. (mode-line-mode-menu): Move definition. - (mode-line-mouse-sensitive-p): Deleted. + (mode-line-mouse-sensitive-p): Delete. (mode-line-mode-name): Don't use mode-line-mouse-sensitive-p. - (make-mode-line-mouse-sensitive): Deleted. Body moved to top level. + (make-mode-line-mouse-sensitive): Delete. Body moved to top level. * startup.el (command-line-1): Don't call make-mode-line-mouse-sensitive. @@ -19960,7 +19960,7 @@ (font-lock-add-keywords): Make it work even if font-lock-mode is nil, so that it can be used more easily in -mode-hook. Also make sure to avoid duplicate entries. - (font-lock-update-removed-keyword-alist): Renamed `major-mode'->`mode'. + (font-lock-update-removed-keyword-alist): Rename `major-mode'->`mode'. (font-lock-remove-keywords): Just as was done for `add', allow it to work even if font-lock-mode is nil. Also make sure we don't modify any pre-existing list by forcing a copy-sequence. Finally rename @@ -20005,12 +20005,12 @@ (idlwave-if, idlwave-procedure, idlwave-function, idlwave-repeat) (idlwave-while): Respect `idlwave-reserved-word-upcase'. (idlwave-rw-case): New function. - (idlwave-statement-match): Fixed problem with assignment regexp. - (idlwave-font-lock-keywords): Improved regexp for keyword parameters. + (idlwave-statement-match): Fix problem with assignment regexp. + (idlwave-font-lock-keywords): Improve regexp for keyword parameters. (idlwave-surround): New argument LENGTH to support padding of operators longer than 1 char. - * progmodes/idlw-shell.el (idlwave-shell-print): Fixed bug with + * progmodes/idlw-shell.el (idlwave-shell-print): Fix bug with idlwave-shell-expression-overlay. Implemented printing of expressions on higher levels of the calling stack. (idlwave-shell-display-level-in-calling-stack): Restore stack level. @@ -20023,7 +20023,7 @@ negative level numbers. (idlwave-shell-mode): Set `modeline-format'. (idlwave-shell-display-line): Set `idlwave-shell-mode-line-info'. - (idlwave-shell-make-new-bp-overlay): Fixed glyph display for Emacs 21. + (idlwave-shell-make-new-bp-overlay): Fix glyph display for Emacs 21. (idlwave-shell-print-expression-function): New option. * progmodes/idlw-toolbar.el (idlwave-toolbar-add-everywhere) @@ -20104,7 +20104,7 @@ end position. (jit-lock-stealth-chunk-start): Rewritten. - * info.el (Info-title-face-alist): Removed. + * info.el (Info-title-face-alist): Remove. (Info-title-1-face, Info-title-2-face, Info-title-3-face): New faces. (Info-fontify-node): Use these faces. @@ -20175,8 +20175,8 @@ 2000-01-28 Gerd Moellmann - * emacs-lisp/cl-macs.el (cl-parse-loop-clause): Recognize - `collecting' as synonym for `collect'. + * emacs-lisp/cl-macs.el (cl-parse-loop-clause): + Recognize `collecting' as synonym for `collect'. * ange-ftp.el (ange-ftp-copy-file-internal): Quote new name for the case it contains spaces. @@ -20252,7 +20252,7 @@ Do not call make-variable-buffer-local. (end-of-defun): Use new variable name; doc fix. - * subr.el (dolist, dotimes): Copied from cl-macs.el + * subr.el (dolist, dotimes): Copy from cl-macs.el and made to work. * mail/undigest.el (rmail-digest-end-regexps): @@ -20281,7 +20281,7 @@ 2000-01-14 Gerd Moellmann - * emacs-lisp/copyright.el (copyright-update): Removed the + * emacs-lisp/copyright.el (copyright-update): Remove the requirement for a trailing space from `copyright-regexp', to support copyrights with owner specified on a separate line.. @@ -20330,7 +20330,7 @@ * net: New directory. - * emacs-lisp/lisp-mode.el (eval-last-sexp-1): Renamed from + * emacs-lisp/lisp-mode.el (eval-last-sexp-1): Rename from eval-last-sexp. Don't bind debug-on-error here. (eval-last-sexp): New function. Bind debug-on-error if eval-expression-debug-on-error is non-nil. @@ -20349,9 +20349,9 @@ * emacs-lisp/lisp-mode.el (with-syntax-table): Set up lisp-indent-function property. - * subr.el (with-syntax-table): Moved from simple.el. + * subr.el (with-syntax-table): Move from simple.el. - * simple.el (with-syntax-table): Moved to subr.el. + * simple.el (with-syntax-table): Move to subr.el. 2000-01-11 Gerd Moellmann @@ -20381,7 +20381,7 @@ 2000-01-10 John Wiegley - * allout.el (isearch-done/outline-provisions): Added `edit' + * allout.el (isearch-done/outline-provisions): Add `edit' argument to correspond with the current definition of `isearch-done'. 2000-01-10 Dave Love @@ -20403,17 +20403,17 @@ (version20p): New variable. (xemacsp): New variable. (ispell-choices-win-default-height): Fix for XEmacs visibility. - (ispell-dictionary-alist1): Added Brasileiro dictionary. + (ispell-dictionary-alist1): Add Brasileiro dictionary. (ispell-dictionary-alist6): Russian command lines no longer accept run-together words. (ispell-local-dictionary-alist): Add koi8-r to customize definition. (ispell-dictionary-alist): Add koi8-r to customize definition. - (check-ispell-version): Added documentation string. Return library + (check-ispell-version): Add documentation string. Return library path when called non-interactively. (ispell-menu-map-needed): Uses new variables. (ispell-library-path): New variable. (ispell-decode-string): XEmacs fix for bogus variable bindings. - (ispell-word): Improved documentation string. Test for valid + (ispell-word): Improve documentation string. Test for valid character mappings. Correctly check typed in word changes that can result in single words split into multiple words. Return replacement word. @@ -20477,7 +20477,7 @@ 2000-01-07 Dave Love - * add-log.el (add-log-debugging): Deleted. + * add-log.el (add-log-debugging): Delete. (add-change-log-entry): Treat a backup FILE-NAME as its parent file. Remove debugging code. (change-log-get-method-definition, change-log-name): Add doc. @@ -20518,7 +20518,7 @@ M-C-e, M-C-h, C-j, C-xnd, TAB. (fortran-mode): Set beginning-of-defun, end-of-defun. (fortran-column-ruler): Simplify. - (fortran-mark-subprogram, fortran-narrow-to-subprogram): Deleted. + (fortran-mark-subprogram, fortran-narrow-to-subprogram): Delete. (fortran-with-subprogram-narrowing): Likewise. (fortran-indent-subprogram): Call mark-defun. (fortran-check-for-matching-do): Change narrowing. @@ -20631,7 +20631,7 @@ * faces.el (face-read-integer, read-face-attribute) (color-defined-p, color-values): Unspecified-{f,b}g are now strings. -2000-01-03 Martin Stjernholm +2000-01-03 Martin Stjernholm * progmodes/cc-cmds.el (c-fill-paragraph): Count number of spaces at comment end, and re-insert them after filling. @@ -20661,7 +20661,7 @@ (display-color-p, frame-set-background-mode): Pass the frame to tty-display-color-p. - * term/tty-colors.el (tty-defined-color-alist): Renamed from + * term/tty-colors.el (tty-defined-color-alist): Rename from tty-color-alist. (tty-color-alist, tty-modify-color-alist): New functions. (tty-color-define, tty-color-clear, tty-color-approximate) diff --git a/lisp/Makefile.in b/lisp/Makefile.in index eba63666ddb..f22ca69996b 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -185,17 +185,6 @@ autoloads: $(LOADDEFS) --eval '(setq autoload-builtin-package-versions t)' \ --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$(srcdir)/loaddefs.el")))' \ -f batch-update-autoloads $$wins - $(MAKE) obsolete-autoloads - -# The obsolete/ subdirectory is normally not scanned for autoloads. -# Sometimes we still want to autoload something from that directory, -# eg iswitchb. -.PHONY: obsolete-autoloads -obsolete-autoloads: ${lisp}/obsolete/*.el - $(emacs) -l autoload \ - --eval '(setq generate-autoload-cookie ";;;###obsolete-autoload")' \ - --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$(srcdir)/loaddefs.el")))' \ - -f batch-update-autoloads ${lisp}/obsolete # This is required by the bootstrap-emacs target in ../src/Makefile, so # we know that if we have an emacs executable, we also have a subdirs.el. @@ -207,18 +196,18 @@ update-subdirs: $(srcdir)/../build-aux/update-subdirs $$file; \ done; -.PHONY: updates bzr-update update-authors +.PHONY: updates repo-update update-authors # Some modes of make-dist use this. updates: update-subdirs autoloads finder-data custom-deps -# This is useful after "bzr up"; but it doesn't do anything that a -# plain "make" at top-level doesn't. -# The only difference between this and this directory's "all" rule -# is that this runs "autoloads" as well (because it uses "compile" -# rather than "compile-main"). In a bootstrap, $(lisp) in src/Makefile -# triggers this directory's autoloads rule. -bzr-update: compile finder-data custom-deps +# This is useful after updating from the repository; but it doesn't do +# anything that a plain "make" at top-level doesn't. The only +# difference between this and this directory's "all" rule is that this +# runs "autoloads" as well (because it uses "compile" rather than +# "compile-main"). In a bootstrap, $(lisp) in src/Makefile triggers +# this directory's autoloads rule. +repo-update: compile finder-data custom-deps # Update the AUTHORS file. @@ -387,7 +376,7 @@ compile-after-backup: backup-compiled-files compile-always # There is no reason to use this rule unless you only have a single # core and CPU time is an issue. .PHONY: compile-one-process -compile-one-process: $(LOADDEFS) compile-first $(lisp)/progmodes/cc-mode.elc +compile-one-process: $(LOADDEFS) compile-first $(emacs) $(BYTE_COMPILE_FLAGS) \ --eval "(batch-byte-recompile-directory 0)" $(lisp) @@ -455,13 +444,13 @@ $(CAL_DIR)/cal-loaddefs.el: $(CAL_SRC) --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ -f batch-update-autoloads $(CAL_DIR) -$(CAL_DIR)/diary-loaddefs.el: $(CAL_SRC) +$(CAL_DIR)/diary-loaddefs.el: $(CAL_SRC) $(CAL_DIR)/cal-loaddefs.el $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###diary-autoload\")" \ --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ -f batch-update-autoloads $(CAL_DIR) -$(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC) +$(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC) $(CAL_DIR)/diary-loaddefs.el $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###holiday-autoload\")" \ --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ @@ -483,6 +472,11 @@ maintainer-clean: distclean bootstrap-clean check-declare: $(emacs) -l check-declare --eval '(check-declare-directory "$(lisp)")' +check-defun-dups: + sed -n -e '/^(defun /s/\(.\)(.*/\1/p' \ + $$(find . -name '*.el' -print | grep -v 'loaddefs\.el') \ + | sort | uniq -d + # Dependencies ## None of the following matters for bootstrap, which is the only way @@ -495,7 +489,7 @@ check-declare: # CC Mode uses a compile time macro system which causes a compile time # dependency in cc-*.elc files on the macros in other cc-*.el and the # version string in cc-defs.el. -$(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-awk.elc\ +$(lisp)/progmodes/cc-align.elc\ $(lisp)/progmodes/cc-cmds.elc $(lisp)/progmodes/cc-compat.elc\ $(lisp)/progmodes/cc-engine.elc $(lisp)/progmodes/cc-fonts.elc\ $(lisp)/progmodes/cc-langs.elc $(lisp)/progmodes/cc-menus.elc\ diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el index 66ec0c333a7..25abf3f9252 100644 --- a/lisp/allout-widgets.el +++ b/lisp/allout-widgets.el @@ -902,7 +902,7 @@ encompassing condition-case." (header (format "allout-widgets-last-hook-error stored, %s/%s %s %s" this mode args - (format-time-string "%e-%b-%Y %r" (current-time))))) + (format-time-string "%e-%b-%Y %r")))) ;; post to *Messages* then immediately replace with more compact notice: (message "%s" (setq allout-widgets-last-hook-error (format "%s:\n%s" header bt))) @@ -2342,9 +2342,9 @@ We use a caching strategy, so the caller doesn't need to do so." got))) ;;;_ : Miscellaneous -;;;_ > allout-elapsed-time-seconds (triple) +;;;_ > allout-elapsed-time-seconds (time-value time-value) (defun allout-elapsed-time-seconds (end start) - "Return seconds between `current-time' style time START/END triples." + "Return seconds between START/END time values." (let ((elapsed (time-subtract end start))) (float-time elapsed))) ;;;_ > allout-frame-property (frame property) diff --git a/lisp/apropos.el b/lisp/apropos.el index 2cba65e9559..ac76ce26b41 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -718,7 +718,7 @@ the output includes key-bindings of commands." (setq doc (list (car properties))) (while (setq properties (cdr (cdr properties))) (setq doc (cons (car properties) doc))) - (mapconcat #'symbol-name (nreverse doc) " ")) + (mapconcat (lambda (p) (format "%s" p)) (nreverse doc) " ")) (when (get symbol 'widget-type) (apropos-documentation-property symbol 'widget-documentation t)) diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 37ddf87cfbf..2b254cb1add 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -1,10 +1,9 @@ ;;; arc-mode.el --- simple editing of archives -;; Copyright (C) 1995, 1997-1998, 2001-2014 Free Software Foundation, -;; Inc. +;; Copyright (C) 1995, 1997-1998, 2001-2014 Free Software Foundation, Inc. ;; Author: Morten Welinder -;; Keywords: files archives msdog editing major-mode +;; Keywords: files archives ms-dos editing major-mode ;; Favorite-brand-of-beer: None, I hate beer. ;; This file is part of GNU Emacs. @@ -31,7 +30,7 @@ ;; understand the directory level of the archives. For this reason, ;; you should expect this code to need more fiddling than tar-mode.el ;; (although it at present has fewer bugs :-) In particular, I have -;; not tested this under Ms-Dog myself. +;; not tested this under MS-DOS myself. ;; ------------------------------------- ;; INTERACTION: arc-mode.el should play together with ;; @@ -147,6 +146,14 @@ A local copy of the archive will be used when updating." "Hook run when an archive member has been extracted." :type 'hook :group 'archive) + +(defcustom archive-visit-single-files nil + "If non-nil, opening an archive with a single file visits that file. +If nil, visiting such an archive displays the archive summary." + :version "25.1" + :type '(choice (const :tag "Visit the single file" t) + (const :tag "Show the archive summary" nil)) + :group 'archive) ;; ------------------------------ ;; Arc archive configuration @@ -742,7 +749,12 @@ archive. (if (default-value 'enable-multibyte-characters) (set-buffer-multibyte 'to)) (archive-summarize nil) - (setq buffer-read-only t)))) + (setq buffer-read-only t) + (when (and archive-visit-single-files + auto-compression-mode + (= (length archive-files) 1)) + (rename-buffer (concat " " (buffer-name))) + (archive-extract))))) ;; Archive mode is suitable only for specially formatted data. (put 'archive-mode 'mode-class 'special) @@ -2181,11 +2193,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (size (string-to-number (match-string 6)))) ;; Move to the beginning of the data. (goto-char (match-end 0)) - (setq time - (format-time-string - "%Y-%m-%d %H:%M" - (let ((high (truncate (/ time 65536)))) - (list high (truncate (- time (* 65536.0 high))))))) + (setq time (format-time-string "%Y-%m-%d %H:%M" time)) (setq extname (cond ((equal name "// ") (propertize ".." 'face 'italic)) diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index 5eb51707883..a6104cc597a 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el @@ -91,23 +91,24 @@ If this contains a %s, that will be replaced by the matching rule." (defcustom auto-insert-alist - '((("\\.\\([Hh]\\|hh\\|hpp\\)\\'" . "C / C++ header") - (upcase (concat (file-name-nondirectory - (file-name-sans-extension buffer-file-name)) - "_" - (file-name-extension buffer-file-name))) + '((("\\.\\([Hh]\\|hh\\|hpp\\|hxx\\|h\\+\\+\\)\\'" . "C / C++ header") + (replace-regexp-in-string + "[^A-Z0-9]" "_" + (replace-regexp-in-string + "\\+" "P" + (upcase (file-name-nondirectory buffer-file-name)))) "#ifndef " str \n "#define " str "\n\n" _ "\n\n#endif") - (("\\.\\([Cc]\\|cc\\|cpp\\)\\'" . "C / C++ program") + (("\\.\\([Cc]\\|cc\\|cpp\\|cxx\\|c\\+\\+\\)\\'" . "C / C++ program") nil "#include \"" - (let ((stem (file-name-sans-extension buffer-file-name))) - (cond ((file-exists-p (concat stem ".h")) - (file-name-nondirectory (concat stem ".h"))) - ((file-exists-p (concat stem ".hh")) - (file-name-nondirectory (concat stem ".hh"))))) + (let ((stem (file-name-sans-extension buffer-file-name)) + ret) + (dolist (ext '("H" "h" "hh" "hpp" "hxx" "h++") ret) + (when (file-exists-p (concat stem "." ext)) + (setq ret (file-name-nondirectory (concat stem "." ext)))))) & ?\" | -10) (("[Mm]akefile\\'" . "Makefile") . "makefile.inc") @@ -305,6 +306,7 @@ file-name or one relative to `auto-insert-directory' or a function to call. ACTION may also be a vector containing several successive single actions as described above, e.g. [\"header.insert\" date-and-author-update]." :type 'sexp + :version "25.1" :group 'auto-insert) diff --git a/lisp/bindings.el b/lisp/bindings.el index ac31723e02d..789fdf00616 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -839,11 +839,11 @@ if `inhibit-field-text-motion' is non-nil." (let ((map minibuffer-local-map)) (define-key map "\en" 'next-history-element) (define-key map [next] 'next-history-element) - (define-key map [down] 'next-history-element) + (define-key map [down] 'next-line-or-history-element) (define-key map [XF86Forward] 'next-history-element) (define-key map "\ep" 'previous-history-element) (define-key map [prior] 'previous-history-element) - (define-key map [up] 'previous-history-element) + (define-key map [up] 'previous-line-or-history-element) (define-key map [XF86Back] 'previous-history-element) (define-key map "\es" 'next-matching-history-element) (define-key map "\er" 'previous-matching-history-element) @@ -925,14 +925,15 @@ if `inhibit-field-text-motion' is non-nil." "Keymap for search related commands.") (define-key esc-map "s" search-map) -(define-key search-map "o" 'occur) -(define-key search-map "hr" 'highlight-regexp) -(define-key search-map "hp" 'highlight-phrase) -(define-key search-map "hl" 'highlight-lines-matching-regexp) -(define-key search-map "h." 'highlight-symbol-at-point) -(define-key search-map "hu" 'unhighlight-regexp) -(define-key search-map "hf" 'hi-lock-find-patterns) -(define-key search-map "hw" 'hi-lock-write-interactive-patterns) +(define-key search-map "o" 'occur) +(define-key search-map "\M-w" 'eww-search-words) +(define-key search-map "hr" 'highlight-regexp) +(define-key search-map "hp" 'highlight-phrase) +(define-key search-map "hl" 'highlight-lines-matching-regexp) +(define-key search-map "h." 'highlight-symbol-at-point) +(define-key search-map "hu" 'unhighlight-regexp) +(define-key search-map "hf" 'hi-lock-find-patterns) +(define-key search-map "hw" 'hi-lock-write-interactive-patterns) ;;(defun function-key-error () ;; (interactive) diff --git a/lisp/calc/.gitignore b/lisp/calc/.gitignore deleted file mode 100644 index a46b68dccbd..00000000000 --- a/lisp/calc/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.elc -calc-loaddefs.el diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el index 107c0ae4ce4..968d30ee60a 100644 --- a/lisp/calc/calc-aent.el +++ b/lisp/calc/calc-aent.el @@ -52,7 +52,7 @@ "The history list for quick-calc.") ;;;###autoload -(defun calc-do-quick-calc () +(defun calc-do-quick-calc (&optional insert) (require 'calc-ext) (calc-check-defines) (if (eq major-mode 'calc-mode) @@ -108,7 +108,8 @@ (setq buf long)))) (calc-handle-whys) (message "Result: %s" buf))) - (if (eq last-command-event 10) + (if (or insert + (eq last-command-event 10)) (insert shortbuf) (kill-new shortbuf))))) diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el index 43b42038aa6..3a2d1598491 100644 --- a/lisp/calc/calc-arith.el +++ b/lisp/calc/calc-arith.el @@ -2249,7 +2249,7 @@ (defun math-min-list (a b) (if b - (if (or (Math-anglep (car b)) (eq (car b) 'date) + (if (or (Math-anglep (car b)) (eq (caar b) 'date) (and (eq (car (car b)) 'intv) (math-intv-constp (car b))) (math-infinitep (car b))) (math-min-list (math-min a (car b)) (cdr b)) @@ -2279,7 +2279,7 @@ (defun math-max-list (a b) (if b - (if (or (Math-anglep (car b)) (eq (car b) 'date) + (if (or (Math-anglep (car b)) (eq (caar b) 'date) (and (eq (car (car b)) 'intv) (math-intv-constp (car b))) (math-infinitep (car b))) (math-max-list (math-max a (car b)) (cdr b)) diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el index dbde4cd0c41..a48075cce91 100644 --- a/lisp/calc/calc-forms.el +++ b/lisp/calc/calc-forms.el @@ -273,7 +273,10 @@ (m (math-normalize (nth 2 a))) (s (let ((calc-internal-prec (max (- calc-internal-prec 4) 3))) (math-normalize (nth 3 a))))) - (if (math-negp h) + (if (or + (math-negp h) + (and (= h 0) (math-negp m)) + (and (= h 0) (= m 0) (math-negp s))) (progn (if (math-posp s) (setq s (math-add s -60) diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el index be04e5a12c0..dfd29230fe5 100644 --- a/lisp/calc/calc-help.el +++ b/lisp/calc/calc-help.el @@ -366,9 +366,9 @@ C-w Describe how there is no warranty for Calc." (Info-goto-node (buffer-substring (match-beginning 1) (match-end 1)))) (or (let ((case-fold-search nil)) (or (re-search-forward (format "\\[`%s'\\]\\|(`%s')\\|\\ diff 0) (= dm cm) (= dd cd) + (and (> diff 0) + ;; The Chinese month can differ by 0.5 in a leap month. + (or (= dm cm) (= (+ 0.5 dm) cm)) + (= dd cd) (cons mark (format entry diff (diary-ordinal-suffix diff)))))) ;;;###cal-autoload diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el index 2472d295123..54a1fe9bff5 100644 --- a/lisp/calendar/cal-coptic.el +++ b/lisp/calendar/cal-coptic.el @@ -75,9 +75,6 @@ Gregorian date Sunday, December 31, 1 BC." (* 30 (1- month)) ; days in prior months this year day))) ; days so far this month -(define-obsolete-function-alias 'calendar-absolute-from-coptic - 'calendar-coptic-to-absolute "23.1") - (defun calendar-coptic-from-absolute (date) "Compute the Coptic equivalent for absolute date DATE. The result is a list of the form (MONTH DAY YEAR). @@ -135,9 +132,6 @@ Defaults to today's date if DATE is not given." (message "Date is pre-%s calendar" calendar-coptic-name) (message "%s date: %s" calendar-coptic-name f)))) -(define-obsolete-function-alias 'calendar-print-coptic-date - 'calendar-coptic-print-date "23.1") - (defun calendar-coptic-read-date () "Interactively read the arguments for a Coptic date command. Reads a year, month, and day." @@ -164,9 +158,6 @@ Reads a year, month, and day." (lambda (x) (and (< 0 x) (<= x last)))))) (list (list month day year)))) -(define-obsolete-function-alias 'coptic-prompt-for-date - 'calendar-coptic-read-date "23.1") - ;;;###cal-autoload (defun calendar-coptic-goto-date (date &optional noecho) "Move cursor to Coptic date DATE. @@ -176,8 +167,6 @@ Echo Coptic date unless NOECHO is t." (calendar-coptic-to-absolute date))) (or noecho (calendar-coptic-print-date))) -(define-obsolete-function-alias 'calendar-goto-coptic-date - 'calendar-coptic-goto-date "23.1") (defvar date) @@ -208,9 +197,6 @@ Gregorian date Sunday, December 31, 1 BC." (let ((calendar-coptic-epoch calendar-ethiopic-epoch)) (calendar-coptic-to-absolute date))) -(define-obsolete-function-alias 'calendar-absolute-from-ethiopic - 'calendar-ethiopic-to-absolute "23.1") - (defun calendar-ethiopic-from-absolute (date) "Compute the Ethiopic equivalent for absolute date DATE. The result is a list of the form (MONTH DAY YEAR). @@ -238,9 +224,6 @@ Defaults to today's date if DATE is not given." (calendar-coptic-month-name-array calendar-ethiopic-month-name-array)) (call-interactively 'calendar-coptic-print-date))) -(define-obsolete-function-alias 'calendar-print-ethiopic-date - 'calendar-ethiopic-print-date "23.1") - ;;;###cal-autoload (defun calendar-ethiopic-goto-date (date &optional noecho) "Move cursor to Ethiopic date DATE. @@ -254,9 +237,6 @@ Echo Ethiopic date unless NOECHO is t." (calendar-ethiopic-to-absolute date))) (or noecho (calendar-ethiopic-print-date))) -(define-obsolete-function-alias 'calendar-goto-ethiopic-date - 'calendar-ethiopic-goto-date "23.1") - ;; To be called from diary-list-sexp-entries, where DATE is bound. ;;;###diary-autoload (defun diary-ethiopic-date () diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el index e3cb690306e..2a9cdee301d 100644 --- a/lisp/calendar/cal-dst.el +++ b/lisp/calendar/cal-dst.el @@ -179,6 +179,7 @@ Return nil if no such transition can be found." (if (eq (car (current-time-zone probe)) hi-utc-diff) (setq hi probe) (setq lo probe))) + (setcdr hi (list (cdr hi))) hi)))) (autoload 'calendar-persian-to-absolute "cal-persia") diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el index cbcd231cca3..36318702d06 100644 --- a/lisp/calendar/cal-french.el +++ b/lisp/calendar/cal-french.el @@ -1,7 +1,7 @@ ;;; cal-french.el --- calendar functions for the French Revolutionary calendar -;; Copyright (C) 1988-1989, 1992, 1994-1995, 1997, 2001-2014 Free -;; Software Foundation, Inc. +;; Copyright (C) 1988-1989, 1992, 1994-1995, 1997, 2001-2014 +;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Maintainer: Glenn Morris @@ -129,9 +129,6 @@ Gregorian date Sunday, December 31, 1 BC." day ; days so far this month (1- calendar-french-epoch)))) ; days before start of calendar -(define-obsolete-function-alias 'calendar-absolute-from-french - 'calendar-french-to-absolute "23.1") - (defun calendar-french-from-absolute (date) "Compute the French Revolutionary equivalent for absolute date DATE. The result is a list of the form (MONTH DAY YEAR). @@ -196,9 +193,6 @@ Defaults to today's date if DATE is not given." (message "Date is pre-French Revolution") (message "French Revolutionary date: %s" f)))) -(define-obsolete-function-alias 'calendar-print-french-date - 'calendar-french-print-date "23.1") - ;;;###cal-autoload (defun calendar-french-goto-date (date &optional noecho) "Move cursor to French Revolutionary date DATE. @@ -249,9 +243,6 @@ Echo French Revolutionary date unless NOECHO is non-nil." (calendar-french-to-absolute date))) (or noecho (calendar-french-print-date))) -(define-obsolete-function-alias 'calendar-goto-french-date - 'calendar-french-goto-date "23.1") - (defvar date) ;; To be called from diary-list-sexp-entries, where DATE is bound. diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el index 4d20b1fa230..93ac3b722b5 100644 --- a/lisp/calendar/cal-hebrew.el +++ b/lisp/calendar/cal-hebrew.el @@ -32,9 +32,6 @@ (require 'calendar) -(define-obsolete-variable-alias 'diary-sabbath-candles-minutes - 'diary-hebrew-sabbath-candles-minutes "23.1") - (defcustom diary-hebrew-sabbath-candles-minutes 18 "Number of minutes before sunset for sabbath candle lighting. Used by `diary-hebrew-sabbath-candles'." @@ -136,9 +133,6 @@ Gregorian date Sunday, December 31, 1 BC." (calendar-hebrew-elapsed-days year) ; days in prior years -1373429))) ; days elapsed before absolute date 1 -(define-obsolete-function-alias 'calendar-absolute-from-hebrew - 'calendar-hebrew-to-absolute "23.1") - (defun calendar-hebrew-from-absolute (date) "Compute the Hebrew date (month day year) corresponding to absolute DATE. The absolute date is the number of days elapsed since the (imaginary) @@ -194,9 +188,6 @@ Driven by the variable `calendar-date-display-form'." (message "Hebrew date (until sunset): %s" (calendar-hebrew-date-string (calendar-cursor-to-date t)))) -(define-obsolete-function-alias 'calendar-print-hebrew-date - 'calendar-hebrew-print-date "23.1") - (defun calendar-hebrew-yahrzeit (death-date year) "Absolute date of the anniversary of Hebrew DEATH-DATE in Hebrew YEAR." (let ((death-day (calendar-extract-day death-date)) @@ -230,9 +221,6 @@ Driven by the variable `calendar-date-display-form'." (t (calendar-hebrew-to-absolute (list death-month death-day year)))))) -(define-obsolete-function-alias 'hebrew-calendar-yahrzeit - 'calendar-hebrew-yahrzeit "23.1") - (defun calendar-hebrew-read-date () "Interactively read the arguments for a Hebrew date command. Reads a year, month, and day." @@ -284,9 +272,6 @@ Reads a year, month, and day." (calendar-hebrew-to-absolute date))) (or noecho (calendar-hebrew-print-date))) -(define-obsolete-function-alias 'calendar-goto-hebrew-date - 'calendar-hebrew-goto-date "23.1") - (defvar displayed-month) ; from calendar-generate (defun calendar-hebrew-date-is-visible-p (month day) @@ -397,10 +382,6 @@ or ALL is non-nil." (list (calendar-gregorian-from-absolute (+ abs-r-h 20)) "Hoshanah Rabbah")))))))) -;;;###holiday-autoload -(define-obsolete-function-alias 'holiday-rosh-hashanah-etc - 'holiday-hebrew-rosh-hashanah "23.1") - ;;;###holiday-autoload (defun holiday-hebrew-hanukkah (&optional all) "List of dates related to Hanukkah, as visible in calendar window. @@ -433,10 +414,6 @@ is non-nil." han))) (list (list (calendar-gregorian-from-absolute abs-h) "Hanukkah"))))))) -;;;###holiday-autoload -(define-obsolete-function-alias 'holiday-hanukkah - 'holiday-hebrew-hanukkah "23.1") - ;;;###holiday-autoload (defun holiday-hebrew-passover (&optional all) "List of dates related to Passover, as visible in calendar window. @@ -519,10 +496,6 @@ or ALL is non-nil." (list (calendar-gregorian-from-absolute (+ abs-p 51)) "Shavuot (second day)"))))))))) -;;;###holiday-autoload -(define-obsolete-function-alias 'holiday-passover-etc - 'holiday-hebrew-passover "23.1") - ;;;###holiday-autoload (defun holiday-hebrew-tisha-b-av () "List of dates around Tisha B'Av, as visible in calendar window." @@ -545,10 +518,6 @@ or ALL is non-nil." (calendar-dayname-on-or-before 6 (+ abs-t-a 7))) "Shabbat Nahamu")))))) -;;;###holiday-autoload -(define-obsolete-function-alias 'holiday-tisha-b-av-etc - 'holiday-hebrew-tisha-b-av "23.1") - (autoload 'holiday-julian "cal-julian") ;;;###holiday-autoload @@ -634,9 +603,6 @@ is provided for use with `diary-nongregorian-listing-hook'." (diary-list-entries-1 calendar-hebrew-month-name-array-leap-year diary-hebrew-entry-symbol 'calendar-hebrew-from-absolute)) -;;;###diary-autoload -(define-obsolete-function-alias 'list-hebrew-diary-entries - 'diary-hebrew-list-entries "23.1") (autoload 'calendar-mark-complex "diary-lib") @@ -662,10 +628,6 @@ passed to `calendar-mark-visible-date' as MARK." (calendar-mark-complex month day year 'calendar-hebrew-from-absolute color)))) -;;;###diary-autoload -(define-obsolete-function-alias 'mark-hebrew-calendar-date-pattern - 'calendar-hebrew-mark-date-pattern "23.1") - (autoload 'diary-mark-entries-1 "diary-lib") ;;;###diary-autoload @@ -678,10 +640,6 @@ window. See `list-hebrew-diary-entries' for more information." diary-hebrew-entry-symbol 'calendar-hebrew-from-absolute)) -;;;###diary-autoload -(define-obsolete-function-alias 'mark-hebrew-diary-entries - 'diary-hebrew-mark-entries "23.1") - (autoload 'diary-insert-entry-1 "diary-lib") ;;;###cal-autoload @@ -693,10 +651,6 @@ Prefix argument ARG makes the entry nonmarking." diary-hebrew-entry-symbol 'calendar-hebrew-from-absolute)) -;;;###diary-autoload -(define-obsolete-function-alias 'insert-hebrew-diary-entry - 'diary-hebrew-insert-entry "23.1") - ;;;###cal-autoload (defun diary-hebrew-insert-monthly-entry (arg) "Insert a monthly diary entry. @@ -706,9 +660,6 @@ Prefix argument ARG makes the entry nonmarking." (diary-insert-entry-1 'monthly arg calendar-hebrew-month-name-array-leap-year diary-hebrew-entry-symbol 'calendar-hebrew-from-absolute)) -;;;###diary-autoload -(define-obsolete-function-alias 'insert-monthly-hebrew-diary-entry - 'diary-hebrew-insert-monthly-entry "23.1") ;;;###cal-autoload (defun diary-hebrew-insert-yearly-entry (arg) @@ -719,9 +670,6 @@ Prefix argument ARG makes the entry nonmarking." (diary-insert-entry-1 'yearly arg calendar-hebrew-month-name-array-leap-year diary-hebrew-entry-symbol 'calendar-hebrew-from-absolute)) -;;;###diary-autoload -(define-obsolete-function-alias 'insert-yearly-hebrew-diary-entry - 'diary-hebrew-insert-yearly-entry "23.1") ;;;###autoload (defun calendar-hebrew-list-yahrzeits (death-date start-year end-year) @@ -786,10 +734,6 @@ from the cursor position." (calendar-absolute-from-gregorian (list 1 1 i))))))) "\n")))) (message "Computing Yahrzeits...done")) -;;;###autoload -(define-obsolete-function-alias 'list-yahrzeit-dates - 'calendar-hebrew-list-yahrzeits "23.1") - (defun calendar-hebrew-birthday (date year) "Absolute date of the anniversary of Hebrew birth DATE, in Hebrew YEAR." (let ((b-day (calendar-extract-day date)) @@ -869,8 +813,6 @@ use when highlighting the day in the calendar." "" (format " and %d day%s" day (if (= day 1) "" "s")))))))))) -;;;###diary-autoload -(define-obsolete-function-alias 'diary-omer 'diary-hebrew-omer "23.1") (autoload 'diary-make-date "diary-lib") @@ -911,9 +853,6 @@ use when highlighting the day in the calendar." diff (diary-ordinal-suffix diff)))))) -;;;###diary-autoload -(define-obsolete-function-alias 'diary-yahrzeit 'diary-hebrew-yahrzeit "23.1") - ;;;###diary-autoload (defun diary-hebrew-rosh-hodesh (&optional mark) "Rosh Hodesh diary entry. @@ -976,9 +915,6 @@ use when highlighting the day in the calendar." (calendar-hebrew-last-month-of-year h-year)) 0 h-month))))))))) -;;;###diary-autoload -(define-obsolete-function-alias 'diary-rosh-hodesh - 'diary-hebrew-rosh-hodesh "23.1") (defconst calendar-hebrew-parashiot-names ["Bereshith" "Noah" "Lech L'cha" "Vayera" "Hayei Sarah" "Toledoth" @@ -1166,8 +1102,6 @@ use when highlighting the day in the calendar." (cdr parasha)))) (calendar-hebrew-parasha-name parasha))))))))) -(define-obsolete-function-alias 'diary-parasha 'diary-hebrew-parasha "23.1") - (declare-function solar-setup "solar" ()) (declare-function solar-sunrise-sunset "solar" (date)) @@ -1199,10 +1133,6 @@ use when highlighting the day in the calendar." 60.0)) (cdr sunset))))))))) -;;;###diary-autoload -(define-obsolete-function-alias 'diary-sabbath-candles - 'diary-hebrew-sabbath-candles "23.1") - (provide 'cal-hebrew) diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el index 50034755d6f..00e54658fb2 100644 --- a/lisp/calendar/cal-islam.el +++ b/lisp/calendar/cal-islam.el @@ -87,9 +87,6 @@ Gregorian date Sunday, December 31, 1 BC." leap-years-in-cycle ; leap days this cycle (1- calendar-islamic-epoch)))) ; days before start of calendar -(define-obsolete-function-alias 'calendar-absolute-from-islamic - 'calendar-islamic-to-absolute "23.1") - (defun calendar-islamic-from-absolute (date) "Compute the Islamic date (month day year) corresponding to absolute DATE. The absolute date is the number of days elapsed since the (imaginary) @@ -141,9 +138,6 @@ Driven by the variable `calendar-date-display-form'." (message "Date is pre-Islamic") (message "Islamic date (until sunset): %s" i)))) -(define-obsolete-function-alias 'calendar-print-islamic-date - 'calendar-islamic-print-date "23.1") - (defun calendar-islamic-read-date () "Interactively read the arguments for an Islamic date command. Reads a year, month, and day." @@ -177,9 +171,6 @@ Reads a year, month, and day." (calendar-islamic-to-absolute date))) (or noecho (calendar-islamic-print-date))) -(define-obsolete-function-alias 'calendar-goto-islamic-date - 'calendar-islamic-goto-date "23.1") - (defvar displayed-month) ; from calendar-generate (defvar displayed-year) @@ -260,9 +251,6 @@ marked in the calendar. This function is provided for use with diary-islamic-entry-symbol 'calendar-islamic-from-absolute)) -(define-obsolete-function-alias 'list-islamic-diary-entries - 'diary-islamic-list-entries "23.1") - (autoload 'calendar-mark-1 "diary-lib") ;;;###diary-autoload @@ -273,9 +261,6 @@ passed to `calendar-mark-visible-date' as MARK." (calendar-mark-1 month day year 'calendar-islamic-from-absolute 'calendar-islamic-to-absolute color)) -(define-obsolete-function-alias 'mark-islamic-calendar-date-pattern - 'calendar-islamic-mark-date-pattern "23.1") - (autoload 'diary-mark-entries-1 "diary-lib") ;;;###diary-autoload @@ -288,9 +273,6 @@ window. See `diary-islamic-list-entries' for more information." diary-islamic-entry-symbol 'calendar-islamic-from-absolute)) -(define-obsolete-function-alias - 'mark-islamic-diary-entries 'diary-islamic-mark-entries "23.1") - (autoload 'diary-insert-entry-1 "diary-lib") ;;;###cal-autoload @@ -303,9 +285,6 @@ Prefix argument ARG makes the entry nonmarking." diary-islamic-entry-symbol 'calendar-islamic-from-absolute)) -(define-obsolete-function-alias 'insert-islamic-diary-entry - 'diary-islamic-insert-entry "23.1") - ;;;###cal-autoload (defun diary-islamic-insert-monthly-entry (arg) "Insert a monthly diary entry. @@ -316,9 +295,6 @@ Prefix argument ARG makes the entry nonmarking." diary-islamic-entry-symbol 'calendar-islamic-from-absolute)) -(define-obsolete-function-alias 'insert-monthly-islamic-diary-entry - 'diary-islamic-insert-monthly-entry "23.1") - ;;;###cal-autoload (defun diary-islamic-insert-yearly-entry (arg) "Insert an annual diary entry. @@ -328,8 +304,6 @@ Prefix argument ARG makes the entry nonmarking." (diary-insert-entry-1 'yearly arg calendar-islamic-month-name-array diary-islamic-entry-symbol 'calendar-islamic-from-absolute)) -(define-obsolete-function-alias - 'insert-yearly-islamic-diary-entry 'diary-islamic-insert-yearly-entry "23.1") (defvar date) diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el index 31626e4c02c..88527cf68cc 100644 --- a/lisp/calendar/cal-iso.el +++ b/lisp/calendar/cal-iso.el @@ -47,9 +47,6 @@ Sunday). The Gregorian date Sunday, December 31, 1 BC is imaginary." (* 7 (1- (calendar-extract-month date))) (if (zerop day) 6 (1- day))))) -(define-obsolete-function-alias 'calendar-absolute-from-iso - 'calendar-iso-to-absolute "23.1") - ;;;###cal-autoload (defun calendar-iso-from-absolute (date) "Compute the `ISO commercial date' corresponding to the absolute DATE. @@ -91,9 +88,6 @@ date Sunday, December 31, 1 BC." (message "ISO date: %s" (calendar-iso-date-string (calendar-cursor-to-date t)))) -(define-obsolete-function-alias 'calendar-print-iso-date - 'calendar-iso-print-date "23.1") - (defun calendar-iso-read-date (&optional dayflag) "Interactively read the arguments for an ISO date command. Reads a year and week, and if DAYFLAG is non-nil a day (otherwise @@ -118,9 +112,6 @@ taken to be 1)." 1))) (list (list week day year)))) -(define-obsolete-function-alias 'calendar-iso-read-args - 'calendar-iso-read-date "23.1") - ;;;###cal-autoload (defun calendar-iso-goto-date (date &optional noecho) "Move cursor to ISO DATE; echo ISO date unless NOECHO is non-nil." @@ -129,9 +120,6 @@ taken to be 1)." (calendar-iso-to-absolute date))) (or noecho (calendar-iso-print-date))) -(define-obsolete-function-alias 'calendar-goto-iso-date - 'calendar-iso-goto-date "23.1") - ;;;###cal-autoload (defun calendar-iso-goto-week (date &optional noecho) "Move cursor to ISO DATE; echo ISO date unless NOECHO is non-nil. @@ -141,9 +129,6 @@ Interactively, goes to the first day of the specified week." (calendar-iso-to-absolute date))) (or noecho (calendar-iso-print-date))) -(define-obsolete-function-alias 'calendar-goto-iso-week - 'calendar-iso-goto-week "23.1") - (defvar date) ;; To be called from diary-list-sexp-entries, where DATE is bound. diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el index 2953b1b7a84..481f987b29b 100644 --- a/lisp/calendar/cal-julian.el +++ b/lisp/calendar/cal-julian.el @@ -45,9 +45,6 @@ The Gregorian date Sunday, December 31, 1 BC is imaginary." (/ (1- year) 4) -2))) -(define-obsolete-function-alias 'calendar-absolute-from-julian - 'calendar-julian-to-absolute "23.1") - ;;;###cal-autoload (defun calendar-julian-from-absolute (date) "Compute the Julian (month day year) corresponding to the absolute DATE. @@ -93,9 +90,6 @@ Driven by the variable `calendar-date-display-form'." (message "Julian date: %s" (calendar-julian-date-string (calendar-cursor-to-date t)))) -(define-obsolete-function-alias 'calendar-print-julian-date - 'calendar-julian-print-date "23.1") - ;;;###cal-autoload (defun calendar-julian-goto-date (date &optional noecho) "Move cursor to Julian DATE; echo Julian date unless NOECHO is non-nil." @@ -132,9 +126,6 @@ Driven by the variable `calendar-date-display-form'." (calendar-julian-to-absolute date))) (or noecho (calendar-julian-print-date))) -(define-obsolete-function-alias 'calendar-goto-julian-date - 'calendar-julian-goto-date "23.1") - ;;;###holiday-autoload (defun holiday-julian (month day string) "Holiday on MONTH, DAY (Julian) called STRING. @@ -156,9 +147,6 @@ nil if it is not visible in the current calendar window." "Absolute date of astronomical (Julian) day number D." (- d 1721424.5)) -(define-obsolete-function-alias 'calendar-absolute-from-astro - 'calendar-astro-to-absolute "23.1") - ;;;###cal-autoload (defun calendar-astro-from-absolute (d) "Astronomical (Julian) day number of absolute date D." @@ -181,9 +169,6 @@ Defaults to today's date if DATE is not given." "Astronomical (Julian) day number (at noon UTC): %s.0" (calendar-astro-date-string (calendar-cursor-to-date t)))) -(define-obsolete-function-alias 'calendar-print-astro-day-number - 'calendar-astro-print-day-number "23.1") - ;;;###cal-autoload (defun calendar-astro-goto-day-number (daynumber &optional noecho) "Move cursor to astronomical (Julian) DAYNUMBER. @@ -197,8 +182,6 @@ Echo astronomical (Julian) day number unless NOECHO is non-nil." (calendar-astro-to-absolute daynumber)))) (or noecho (calendar-astro-print-day-number))) -(define-obsolete-function-alias 'calendar-goto-astro-day-number - 'calendar-astro-goto-day-number "23.1") (defvar date) diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el index 81b71d5b3ad..17a01656220 100644 --- a/lisp/calendar/cal-mayan.el +++ b/lisp/calendar/cal-mayan.el @@ -132,9 +132,6 @@ but some use 1137140. Using 1232041 gives you Spinden's correlation; using (message "Mayan date: %s" (calendar-mayan-date-string (calendar-cursor-to-date t)))) -(define-obsolete-function-alias 'calendar-print-mayan-date - 'calendar-mayan-print-date "23.1") - (defun calendar-mayan-read-haab-date () "Prompt for a Mayan haab date." (let* ((completion-ignore-case t) @@ -179,9 +176,6 @@ Echo Mayan date unless NOECHO is non-nil." (calendar-absolute-from-gregorian (calendar-cursor-to-date)))))) (or noecho (calendar-mayan-print-date))) -(define-obsolete-function-alias 'calendar-next-haab-date - 'calendar-mayan-next-haab-date "23.1") - ;;;###cal-autoload (defun calendar-mayan-previous-haab-date (haab-date &optional noecho) "Move cursor to previous instance of Mayan HAAB-DATE. @@ -194,9 +188,6 @@ Echo Mayan date unless NOECHO is non-nil." (1- (calendar-absolute-from-gregorian (calendar-cursor-to-date)))))) (or noecho (calendar-mayan-print-date))) -(define-obsolete-function-alias 'calendar-previous-haab-date - 'calendar-mayan-previous-haab-date "23.1") - (defun calendar-mayan-haab-to-string (haab) "Convert Mayan HAAB date (a pair) into its traditional written form." (let ((month (cdr haab))) @@ -247,9 +238,6 @@ Echo Mayan date unless NOECHO is non-nil." (calendar-absolute-from-gregorian (calendar-cursor-to-date)))))) (or noecho (calendar-mayan-print-date))) -(define-obsolete-function-alias 'calendar-next-tzolkin-date - 'calendar-mayan-next-tzolkin-date "23.1") - ;;;###cal-autoload (defun calendar-mayan-previous-tzolkin-date (tzolkin-date &optional noecho) "Move cursor to previous instance of Mayan TZOLKIN-DATE. @@ -262,9 +250,6 @@ Echo Mayan date unless NOECHO is non-nil." (1- (calendar-absolute-from-gregorian (calendar-cursor-to-date)))))) (or noecho (calendar-mayan-print-date))) -(define-obsolete-function-alias 'calendar-previous-tzolkin-date - 'calendar-mayan-previous-tzolkin-date "23.1") - (defun calendar-mayan-tzolkin-to-string (tzolkin) "Convert Mayan TZOLKIN date (a pair) into its traditional written form." (format "%d %s" @@ -309,9 +294,6 @@ Echo Mayan date unless NOECHO is non-nil." (calendar-goto-date (calendar-gregorian-from-absolute date)) (or noecho (calendar-mayan-print-date))))) -(define-obsolete-function-alias 'calendar-next-calendar-round-date - 'calendar-mayan-next-round-date "23.1") - ;;;###cal-autoload (defun calendar-mayan-previous-round-date (tzolkin-date haab-date &optional noecho) @@ -330,9 +312,6 @@ Echo Mayan date unless NOECHO is non-nil." (calendar-goto-date (calendar-gregorian-from-absolute date)) (or noecho (calendar-mayan-print-date))))) -(define-obsolete-function-alias 'calendar-previous-calendar-round-date - 'calendar-mayan-previous-round-date "23.1") - (defun calendar-mayan-long-count-to-absolute (c) "Compute the absolute date corresponding to the Mayan Long Count C. Long count is a list (baktun katun tun uinal kin)" @@ -344,9 +323,6 @@ Long count is a list (baktun katun tun uinal kin)" ;; Days before absolute date 0. (- calendar-mayan-days-before-absolute-zero))) -(define-obsolete-function-alias 'calendar-absolute-from-mayan-long-count - 'calendar-mayan-long-count-to-absolute "23.1") - (defun calendar-mayan-long-count-common-era (lc) "Return non-nil if long count LC represents a date in the Common Era." (let ((base (calendar-mayan-long-count-from-absolute 1))) @@ -377,9 +353,6 @@ Echo Mayan date unless NOECHO is non-nil." (calendar-mayan-long-count-to-absolute date))) (or noecho (calendar-mayan-print-date))) -(define-obsolete-function-alias 'calendar-goto-mayan-long-count-date - 'calendar-mayan-goto-long-count-date "23.1") - (defvar date) ;; To be called from diary-list-sexp-entries, where DATE is bound. diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el index 23e1b5e0e97..df16646cc26 100644 --- a/lisp/calendar/cal-menu.el +++ b/lisp/calendar/cal-menu.el @@ -278,14 +278,6 @@ is non-nil." ["Show diary" diary-show-all-entries] ["Exit calendar" calendar-exit])) -;; Undocumented and probably useless. -(defvar cal-menu-load-hook nil - "Hook run on loading of the `cal-menu' package.") -(make-obsolete-variable 'cal-menu-load-hook - "it will be removed in future." "23.1") - -(run-hooks 'cal-menu-load-hook) - (provide 'cal-menu) ;; Local Variables: diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el index 5410ff79ff4..a72f188f37e 100644 --- a/lisp/calendar/cal-move.el +++ b/lisp/calendar/cal-move.el @@ -175,9 +175,6 @@ EVENT is an event like `last-nonmenu-event'." (t (list month 1 year)))))) (run-hooks 'calendar-move-hook))) -(define-obsolete-function-alias - 'scroll-calendar-left 'calendar-scroll-left "23.1") - ;;;###cal-autoload (defun calendar-scroll-right (&optional arg event) "Scroll the displayed calendar window right by ARG months. @@ -188,9 +185,6 @@ EVENT is an event like `last-nonmenu-event'." last-nonmenu-event)) (calendar-scroll-left (- (or arg 1)) event)) -(define-obsolete-function-alias - 'scroll-calendar-right 'calendar-scroll-right "23.1") - ;;;###cal-autoload (defun calendar-scroll-left-three-months (arg &optional event) "Scroll the displayed calendar window left by 3*ARG months. @@ -201,9 +195,6 @@ EVENT is an event like `last-nonmenu-event'." last-nonmenu-event)) (calendar-scroll-left (* 3 arg) event)) -(define-obsolete-function-alias 'scroll-calendar-left-three-months - 'calendar-scroll-left-three-months "23.1") - ;; cf scroll-bar-toolkit-scroll ;;;###cal-autoload (defun calendar-scroll-toolkit-scroll (event) @@ -226,9 +217,6 @@ EVENT is an event like `last-nonmenu-event'." last-nonmenu-event)) (calendar-scroll-left (* -3 arg) event)) -(define-obsolete-function-alias 'scroll-calendar-right-three-months - 'calendar-scroll-right-three-months "23.1") - ;;;###cal-autoload (defun calendar-forward-day (arg) "Move the cursor forward ARG days. diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el index c79c3f94420..1a69ade82da 100644 --- a/lisp/calendar/cal-persia.el +++ b/lisp/calendar/cal-persia.el @@ -87,9 +87,6 @@ Gregorian date Sunday, December 31, 1 BC." (calendar-persian-last-day-of-month m year)) day)))) ; days so far this month -(define-obsolete-function-alias 'calendar-absolute-from-persian - 'calendar-persian-to-absolute "23.1") - (defun calendar-persian-year-from-absolute (date) "Persian year corresponding to the absolute DATE." (let* ((d0 ; prior days since start of 2820 cycles @@ -163,9 +160,6 @@ Gregorian date Sunday, December 31, 1 BC." (message "Persian date: %s" (calendar-persian-date-string (calendar-cursor-to-date t)))) -(define-obsolete-function-alias 'calendar-print-persian-date - 'calendar-persian-print-date "23.1") - (defun calendar-persian-read-date () "Interactively read the arguments for a Persian date command. Reads a year, month, and day." @@ -192,9 +186,6 @@ Reads a year, month, and day." (lambda (x) (and (< 0 x) (<= x last)))))) (list (list month day year)))) -(define-obsolete-function-alias 'persian-prompt-for-date - 'calendar-persian-read-date "23.1") - ;;;###cal-autoload (defun calendar-persian-goto-date (date &optional noecho) "Move cursor to Persian date DATE. @@ -204,8 +195,6 @@ Echo Persian date unless NOECHO is non-nil." (calendar-persian-to-absolute date))) (or noecho (calendar-persian-print-date))) -(define-obsolete-function-alias 'calendar-goto-persian-date - 'calendar-persian-goto-date "23.1") (defvar date) diff --git a/lisp/calendar/cal-x.el b/lisp/calendar/cal-x.el index 6c03a774d0a..1ed2fa4bbb0 100644 --- a/lisp/calendar/cal-x.el +++ b/lisp/calendar/cal-x.el @@ -65,9 +65,6 @@ Relevant if `calendar-setup' has the value `one-frame'." (vertical-scroll-bars boolean)) :group 'calendar) -(define-obsolete-variable-alias 'calendar-after-frame-setup-hooks - 'calendar-after-frame-setup-hook "23.1") - (defcustom calendar-after-frame-setup-hook nil "List of functions to be run after creating a calendar and/or diary frame." :type 'hook @@ -96,13 +93,9 @@ Runs `calendar-after-frame-setup-hook', selects frame, iconifies if needed." "Display and dedicate the window associated with the diary buffer." (set-window-dedicated-p (display-buffer - (if (if (listp diary-display-function) - (or (memq 'diary-fancy-display diary-display-function) - (memq 'fancy-diary-display diary-display-function)) - (memq diary-display-function '(diary-fancy-display - fancy-diary-display))) + (if (eq diary-display-function 'diary-fancy-display) (progn - ;; If there are no diary entries, there won't be a fancy-diary + ;; If there are no diary entries, there won't be a buffer ;; to dedicate, so make a basic one. (or (get-buffer diary-fancy-buffer) (calendar-in-read-only-buffer diary-fancy-buffer @@ -150,36 +143,6 @@ If PROMPT is non-nil, prompt for the month and year to use." (if (eq config 'one-frame) (calendar-dedicate-diary)))))) - -;;;###cal-autoload -(defun calendar-one-frame-setup (&optional prompt) - "Display calendar and diary in a single dedicated frame. -See `calendar-frame-setup' for more information." - (declare (obsolete calendar-frame-setup "23.1")) - (calendar-frame-setup 'one-frame prompt)) - -;;;###cal-autoload -(defun calendar-only-one-frame-setup (&optional prompt) - "Display calendar in a dedicated frame. -See `calendar-frame-setup' for more information." - (declare (obsolete calendar-frame-setup "23.1")) - (calendar-frame-setup 'calendar-only prompt)) - -;;;###cal-autoload -(defun calendar-two-frame-setup (&optional prompt) - "Display calendar and diary in separate, dedicated frames. -See `calendar-frame-setup' for more information." - (declare (obsolete calendar-frame-setup "23.1")) - (calendar-frame-setup 'two-frames prompt)) - -;; Undocumented and probably useless. -(defvar cal-x-load-hook nil - "Hook run on loading of the `cal-x' package.") -(make-obsolete-variable 'cal-x-load-hook "it will be removed in future." "23.1") - -(run-hooks 'cal-x-load-hook) - - (provide 'cal-x) ;;; cal-x.el ends here diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 581dd3437d9..b4df4b31176 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -189,9 +189,6 @@ movement commands will not work correctly." (calendar-redraw)) :group 'calendar) -(define-obsolete-variable-alias 'view-diary-entries-initially - 'calendar-view-diary-initially-flag "23.1") - (defcustom calendar-view-diary-initially-flag nil "Non-nil means display current date's diary entries on entry to calendar. The diary is displayed in another window when the calendar is first displayed, @@ -201,9 +198,6 @@ be overridden by the value of `calendar-setup'." :type 'boolean :group 'diary) -(define-obsolete-variable-alias 'mark-diary-entries-in-calendar - 'calendar-mark-diary-entries-flag "23.1") - ;; FIXME :set (defcustom calendar-mark-diary-entries-flag nil "Non-nil means mark dates with diary entries, in the calendar window. @@ -225,8 +219,6 @@ If nil, make an icon of the frame. If non-nil, delete the frame." See the variable `calendar-today-marker'." :group 'calendar-faces) -(define-obsolete-face-alias 'calendar-today-face 'calendar-today "22.1") - (defface diary '((((min-colors 88) (class color) (background light)) :foreground "red1") @@ -243,8 +235,6 @@ Used to mark diary entries in the calendar (see `diary-entry-marker'), and to highlight the date header in the fancy diary." :group 'calendar-faces) -(define-obsolete-face-alias 'diary-face 'diary "22.1") - (defface holiday '((((class color) (background light)) :background "pink") @@ -256,8 +246,6 @@ and to highlight the date header in the fancy diary." See `calendar-holiday-marker'." :group 'calendar-faces) -(define-obsolete-face-alias 'holiday-face 'holiday "22.1") - (defface calendar-weekday-header '((t :inherit font-lock-constant-face)) "Face used for weekday column headers in the calendar. See also the face `calendar-weekend-header'." @@ -307,9 +295,6 @@ The value can be either a single-character string (e.g. \"*\") or a face." :group 'holidays :version "23.1") -(define-obsolete-variable-alias 'view-calendar-holidays-initially - 'calendar-view-holidays-initially-flag "23.1") - (defcustom calendar-view-holidays-initially-flag nil "Non-nil means display holidays for current three month period on entry. The holidays are displayed in another window when the calendar is first @@ -317,9 +302,6 @@ displayed." :type 'boolean :group 'holidays) -(define-obsolete-variable-alias 'mark-holidays-in-calendar - 'calendar-mark-holidays-flag "23.1") - ;; FIXME :set (defcustom calendar-mark-holidays-flag nil "Non-nil means mark dates of holidays in the calendar window. @@ -338,9 +320,6 @@ This is the place to add key bindings to `calendar-mode-map'." :type 'hook :group 'calendar-hooks) -(define-obsolete-variable-alias 'initial-calendar-window-hook - 'calendar-initial-window-hook "23.1") - (defcustom calendar-initial-window-hook nil "List of functions to be called when the calendar window is created. Quitting the calendar and re-entering it will cause these functions @@ -348,9 +327,6 @@ to be called again." :type 'hook :group 'calendar-hooks) -(define-obsolete-variable-alias 'today-visible-calendar-hook - 'calendar-today-visible-hook "23.1") - (defcustom calendar-today-visible-hook nil "List of functions called whenever the current date is visible. To mark today's date, add the function `calendar-mark-today'. @@ -363,9 +339,6 @@ since it may cause the movement commands to fail." :options '(calendar-mark-today calendar-star-date) :group 'calendar-hooks) -(define-obsolete-variable-alias 'today-invisible-calendar-hook - 'calendar-today-invisible-hook "23.1") - (defcustom calendar-today-invisible-hook nil "List of functions called whenever the current date is not visible. See also `calendar-today-visible-hook'." @@ -692,56 +665,24 @@ details, see the documentation for the variable `diary-list-entries-hook'." "Symbol indicating a diary entry according to the Chinese calendar." :type 'string :group 'diary - :version "24.5") - -(define-obsolete-variable-alias 'hebrew-diary-entry-symbol - 'diary-hebrew-entry-symbol "23.1") + :version "25.1") (defcustom diary-hebrew-entry-symbol "H" "Symbol indicating a diary entry according to the Hebrew calendar." :type 'string :group 'diary) -(define-obsolete-variable-alias 'islamic-diary-entry-symbol - 'diary-islamic-entry-symbol "23.1") - (defcustom diary-islamic-entry-symbol "I" "Symbol indicating a diary entry according to the Islamic calendar." :type 'string :group 'diary) -(define-obsolete-variable-alias 'bahai-diary-entry-symbol - 'diary-bahai-entry-symbol "23.1") - (defcustom diary-bahai-entry-symbol "B" "Symbol indicating a diary entry according to the Bahá'í calendar." :type 'string :group 'diary) -(defcustom european-calendar-style nil - "Non-nil means use the European style of dates in the diary and display. -In this case, a date like 1/2/1990 would be interpreted as -February 1, 1990. See `diary-european-date-forms' for the -default European diary date styles. - -Setting this variable directly does not take effect (if the -calendar package is already loaded). Rather, use either -\\[customize] or the function `calendar-set-date-style'." - :type 'boolean - ;; Without :initialize (require 'calendar) throws an error because - ;; calendar-set-date-style is undefined at this point. - :initialize 'custom-initialize-default - :set (lambda (symbol value) - (if value - (calendar-set-date-style 'european) - (calendar-set-date-style 'american))) - :group 'calendar) - -(make-obsolete-variable 'european-calendar-style 'calendar-date-style "23.1") - -;; If this is autoloaded, c-d-s gets set before any customization of e-c-s. -(defcustom calendar-date-style (if european-calendar-style 'european - 'american) +(defcustom calendar-date-style 'american "Your preferred style for writing dates. The options are: `american' - month/day/year @@ -790,9 +731,6 @@ but `diary-date-forms' (which see)." (choice symbol regexp))))) :group 'diary) -(define-obsolete-variable-alias 'american-date-diary-pattern - 'diary-american-date-forms "23.1") - (defcustom diary-american-date-forms '((month "/" day "[^/0-9]") (month "/" day "/" year "[^0-9]") @@ -814,9 +752,6 @@ but `diary-date-forms' (which see)." (choice symbol regexp))))) :group 'diary) -(define-obsolete-variable-alias 'european-date-diary-pattern - 'diary-european-date-forms "23.1") - (defcustom diary-european-date-forms '((day "/" month "[^/0-9]") (day "/" month "/" year "[^0-9]") @@ -906,9 +841,6 @@ Normally you should not customize this, but `calendar-date-display-form' :version "23.1" :group 'calendar) -(define-obsolete-variable-alias 'european-calendar-display-form - 'calendar-european-date-display-form "23.1") - (defcustom calendar-european-date-display-form '((if dayname (concat dayname ", ")) day " " monthname " " year) "Pseudo-pattern governing the way a date appears in the European style. @@ -917,9 +849,6 @@ Normally you should not customize this, but `calendar-date-display-form' :type 'sexp :group 'calendar) -(define-obsolete-variable-alias 'american-calendar-display-form - 'calendar-american-date-display-form "23.1") - (defcustom calendar-american-date-display-form '((if dayname (concat dayname ", ")) monthname " " day ", " year) "Pseudo-pattern governing the way a date appears in the American style. @@ -1034,21 +963,6 @@ The valid styles are described in the documentation of `calendar-date-style'." (calendar-redraw) (calendar-update-mode-line)) -(defun european-calendar () - "Set the interpretation and display of dates to the European style." - (declare (obsolete calendar-set-date-style "23.1")) - (interactive) - (calendar-set-date-style 'european)) - -(defun american-calendar () - "Set the interpretation and display of dates to the American style." - (declare (obsolete calendar-set-date-style "23.1")) - (interactive) - (calendar-set-date-style 'american)) - -(define-obsolete-variable-alias 'holidays-in-diary-buffer - 'diary-show-holidays-flag "23.1") - (defcustom diary-show-holidays-flag t "Non-nil means include holidays in the diary display. The holidays appear in the mode line of the diary buffer, or in the @@ -1062,9 +976,6 @@ somewhat; setting it to nil makes the diary display faster." :type 'boolean :group 'calendar) -(define-obsolete-variable-alias 'all-hebrew-calendar-holidays - 'calendar-hebrew-all-holidays-flag "23.1") - (defcustom calendar-hebrew-all-holidays-flag nil "If nil, show only major holidays from the Hebrew calendar. This means only those Jewish holidays that appear on secular calendars. @@ -1073,9 +984,6 @@ calendar." :type 'boolean :group 'holidays) -(define-obsolete-variable-alias 'all-christian-calendar-holidays - 'calendar-christian-all-holidays-flag "23.1") - (defcustom calendar-christian-all-holidays-flag nil "If nil, show only major holidays from the Christian calendar. This means only those Christian holidays that appear on secular calendars. @@ -1084,9 +992,6 @@ calendar." :type 'boolean :group 'holidays) -(define-obsolete-variable-alias 'all-islamic-calendar-holidays - 'calendar-islamic-all-holidays-flag "23.1") - (defcustom calendar-islamic-all-holidays-flag nil "If nil, show only major holidays from the Islamic calendar. This means only those Islamic holidays that appear on secular calendars. @@ -1095,9 +1000,6 @@ calendar." :type 'boolean :group 'holidays) -(define-obsolete-variable-alias 'all-bahai-calendar-holidays - 'calendar-bahai-all-holidays-flag "23.1") - (defcustom calendar-bahai-all-holidays-flag nil "If nil, show only major holidays from the Bahá'í calendar. These are the days on which work and school must be suspended. @@ -1128,8 +1030,6 @@ calendar." (defconst diary-fancy-buffer "*Fancy Diary Entries*" "Name of the buffer used for the optional fancy display of the diary.") -(define-obsolete-variable-alias 'fancy-diary-buffer 'diary-fancy-buffer "23.1") - (defconst calendar-other-calendars-buffer "*Other Calendars*" "Name of the buffer used for the display of date on other calendars.") @@ -1162,9 +1062,6 @@ Optional NMONTHS is the number of months per year (default 12)." (and (< macro-y 0) (> ,mon 1) (setq ,yr (1- ,yr))) (if (< ,yr 1) (setq ,yr (1- ,yr))))) ; 0 AD -> -1 BC, etc -(define-obsolete-function-alias 'increment-calendar-month - 'calendar-increment-month "23.1") - (defvar displayed-month) (defvar displayed-year) @@ -1177,17 +1074,6 @@ MON defaults to `displayed-month'. YR defaults to `displayed-year'." (calendar-increment-month mon yr n) (cons mon yr)) -(defmacro calendar-for-loop (var from init to final do &rest body) - "Execute a for loop. -Evaluate BODY with VAR bound to successive integers from INIT to FINAL, -inclusive. The standard macro `dotimes' is preferable in most cases." - (declare (obsolete "use `dotimes' or `while' instead." "23.1") - (debug (symbolp "from" form "to" form "do" body)) - (indent defun)) - `(let ((,var (1- ,init))) - (while (>= ,final (setq ,var (1+ ,var))) - ,@body))) - (defmacro calendar-sum (index initial condition expression) "For INDEX = INITIAL, +1, ... (as long as CONDITION holds), sum EXPRESSION." (declare (debug (symbolp form form form))) @@ -1247,25 +1133,16 @@ with disabled undo. Leaves point at point-min, displays BUFFER." "Extract the month part of DATE which has the form (month day year)." (car date)) -(define-obsolete-function-alias 'extract-calendar-month - 'calendar-extract-month "23.1") - ;; Note gives wrong answer for result of (calendar-read-date 'noday), ;; but that is only used by `calendar-other-month'. (defsubst calendar-extract-day (date) "Extract the day part of DATE which has the form (month day year)." (cadr date)) -(define-obsolete-function-alias 'extract-calendar-day - 'calendar-extract-day "23.1") - (defsubst calendar-extract-year (date) "Extract the year part of DATE which has the form (month day year)." (nth 2 date)) -(define-obsolete-function-alias 'extract-calendar-year - 'calendar-extract-year "23.1") - (defsubst calendar-leap-year-p (year) "Return t if YEAR is a Gregorian leap year. A negative year is interpreted as BC; -1 being 1 BC, and so on." @@ -1423,10 +1300,16 @@ display the generated calendar." ;; the right thing in that case. ;; ;; Is this a wide frame? If so, split it horizontally. - (if (window-splittable-p t) (split-window-right)) + + ;; The following doesn't sound useful: If we split horizontally + ;; here, the subsequent `pop-to-buffer' will likely split again + ;; horizontally and we end up with three side-by-side windows. + (when (window-splittable-p (selected-window) t) + (split-window-right)) (pop-to-buffer calendar-buffer) ;; Has the window already been split vertically? (when (and (not (window-dedicated-p)) + (window-splittable-p (selected-window)) (window-full-height-p)) (let ((win (split-window-below))) ;; In the upper window, show whatever was visible before. @@ -1437,9 +1320,14 @@ display the generated calendar." (calendar-generate-window month year) (if (and calendar-view-diary-initially-flag (calendar-date-is-visible-p date)) - (diary-view-entries)))) + ;; Do not clobber the calendar with the diary, if the diary + ;; has previously been shown in the window that now shows the + ;; calendar (bug#18381). + (let ((display-buffer-overriding-action + '(nil . ((inhibit-same-window . t))))) + (diary-view-entries))))) (if calendar-view-holidays-initially-flag - (let* ((diary-buffer (get-file-buffer diary-file)) + (let* ((diary-buffer (diary-live-p)) (diary-window (if diary-buffer (get-buffer-window diary-buffer))) (split-height-threshold (if diary-window 2 1000))) ;; FIXME display buffer? @@ -1793,14 +1681,18 @@ is COMMAND's keybinding, STRING describes the binding." nil "today")) '(calendar-date-string (calendar-current-date) t) (calendar-mode-line-entry 'calendar-scroll-left "next month" ">")) - "The mode line of the calendar buffer. + "If non-nil, the mode line of the calendar buffer. This is a list of items that evaluate to strings. The elements are evaluated and concatenated, evenly separated by blanks. During evaluation, the variable `date' is available as the date nearest the cursor (or today's date if that fails). To update -the mode-line as the cursor moves, add `calendar-update-mode-line' -to `calendar-move-hook'. Here is an example that has the Hebrew date, -the day number/days remaining in the year, and the ISO week/year numbers: +the mode-line as the cursor moves, add +`calendar-update-mode-line' to `calendar-move-hook'. + +If nil, do not modify the mode line at all. + +Here is an example that has the Hebrew date, the day number/days +remaining in the year, and the ISO week/year numbers: (list \"\" @@ -1878,7 +1770,8 @@ the STRINGS are just concatenated and the result truncated." (defun calendar-update-mode-line () "Update the calendar mode line with the current date and date style." - (if (bufferp (get-buffer calendar-buffer)) + (if (and calendar-mode-line-format + (bufferp (get-buffer calendar-buffer))) (with-current-buffer calendar-buffer (let ((start (- calendar-left-margin 2)) (date (condition-case nil @@ -1926,8 +1819,6 @@ the STRINGS are just concatenated and the result truncated." (dolist (b calendar-buffers) (quit-windows-on b kill)))))) -(define-obsolete-function-alias 'exit-calendar 'calendar-exit "23.1") - (defun calendar-current-date (&optional offset) "Return the current date in a list (month day year). Optional integer OFFSET is a number of days from the current date." @@ -2480,9 +2371,6 @@ Returns the corresponding Gregorian date." ;; Note there are side effects on calendar navigation. (<= 1 year)))) -(define-obsolete-function-alias 'calendar-date-is-legal-p - 'calendar-date-is-valid-p "23.1") - (defun calendar-date-equal (date1 date2) "Return t if the DATE1 and DATE2 are the same." (and @@ -2555,9 +2443,6 @@ MARK defaults to `diary-entry-marker'." (make-overlay (1- (point)) (1+ (point))) 'face (calendar-make-temp-face mark)))))))) -(define-obsolete-function-alias 'mark-visible-calendar-date - 'calendar-mark-visible-date "23.1") - (defun calendar-star-date () "Replace the date under the cursor in the calendar window with asterisks. You might want to add this function to `calendar-today-visible-hook'." @@ -2732,8 +2617,6 @@ If called by a mouse-event, pops up a menu with the result." "---") (calendar-string-spread (list str) ?- width))))) -(define-obsolete-function-alias 'calendar-version 'emacs-version "23.1") - (run-hooks 'calendar-load-hook) (provide 'calendar) diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index a4e36d9abe8..43f2ea48932 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -1,7 +1,6 @@ ;;; diary-lib.el --- diary functions -;; Copyright (C) 1989-1990, 1992-1995, 2001-2014 Free Software -;; Foundation, Inc. +;; Copyright (C) 1989-1990, 1992-1995, 2001-2014 Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Maintainer: Glenn Morris @@ -49,13 +48,6 @@ are holidays." :type 'boolean :group 'diary) -(defcustom diary-face 'diary - "Face name to use for diary entries." - :type 'face - :group 'calendar-faces) -(make-obsolete-variable 'diary-face "customize the face `diary' instead." - "23.1") - (defface diary-anniversary '((t :inherit font-lock-keyword-face)) "Face used for anniversaries in the fancy diary display." :version "22.1" @@ -72,8 +64,6 @@ are holidays." :version "22.1" :group 'calendar-faces) -(define-obsolete-face-alias 'diary-button-face 'diary-button "22.1") - ;; Face markup of calendar and diary displays: Any entry line that ;; ends with [foo:value] where foo is a face attribute (except :box ;; :stipple) or with [face:blah] tags, will have these values applied @@ -133,9 +123,6 @@ are: `string', `symbol', `int', `tnil', `stringtnil.'" :type 'function :group 'diary) -(define-obsolete-variable-alias 'sexp-diary-entry-symbol - 'diary-sexp-entry-symbol "23.1") - (defcustom diary-sexp-entry-symbol "%%" "The string used to indicate a sexp diary entry in `diary-file'. See the documentation for the function `diary-list-sexp-entries'." @@ -168,18 +155,10 @@ Used for example by the appointment package - see `appt-activate'." :type 'hook :group 'diary) -(define-obsolete-variable-alias 'diary-display-hook 'diary-display-function - "23.1") - (defcustom diary-display-function 'diary-fancy-display "Function used to display the diary. The two standard options are `diary-fancy-display' and `diary-simple-display'. -For historical reasons, `nil' is the same as `diary-simple-display' -\(so you must use `ignore' for no display). Also for historical -reasons, this variable can be a list of functions to run. These -uses are not recommended and may be removed at some point. - When this function is called, the variable `diary-entries-list' is a list, in order by date, of all relevant diary entries in the form of ((MONTH DAY YEAR) STRING), where string is the diary @@ -188,17 +167,13 @@ produce a different buffer for display (perhaps combined with holidays), or hard copy output." :type '(choice (const diary-fancy-display :tag "Fancy display") (const diary-simple-display :tag "Basic display") - (const ignore :tag "No display") - (const nil :tag "Obsolete way to choose basic display") - (hook :tag "Obsolete form with list of display functions")) + (const :tag "No display" ignore) + (function :tag "User-specified function")) :initialize 'custom-initialize-default :set 'diary-set-maybe-redraw :version "23.2" ; simple->fancy :group 'diary) -(define-obsolete-variable-alias 'list-diary-entries-hook - 'diary-list-entries-hook "23.1") - (defcustom diary-list-entries-hook nil "Hook run after diary file is culled for relevant entries. @@ -227,9 +202,6 @@ the main file and all included files, you would use the nongregorian hook." :options '(diary-include-other-diary-files diary-sort-entries) :group 'diary) -(define-obsolete-variable-alias 'mark-diary-entries-hook - 'diary-mark-entries-hook "23.1") - (defcustom diary-mark-entries-hook nil "List of functions called after marking diary entries in the calendar. You might wish to add `diary-mark-included-diary-files', in which case @@ -244,9 +216,6 @@ differ only if you are using included diary files. In that case, :options '(diary-mark-included-diary-files) :group 'diary) -(define-obsolete-variable-alias 'nongregorian-diary-listing-hook - 'diary-nongregorian-listing-hook "23.1") - (defcustom diary-nongregorian-listing-hook nil "List of functions called for listing diary file and included files. As the files are processed for diary entries, these functions are used @@ -264,9 +233,6 @@ use `diary-list-entries-hook', which runs only for the main diary file." diary-islamic-list-entries) :group 'diary) -(define-obsolete-variable-alias 'nongregorian-diary-marking-hook - 'diary-nongregorian-marking-hook "23.1") - (defcustom diary-nongregorian-marking-hook nil "List of functions called for marking diary file and included files. As the files are processed for diary entries, these functions are used @@ -284,9 +250,6 @@ use `diary-mark-entries-hook', which runs only for the main diary file." diary-islamic-mark-entries) :group 'diary) -(define-obsolete-variable-alias 'print-diary-entries-hook - 'diary-print-entries-hook "23.1") - (defcustom diary-print-entries-hook 'lpr-buffer "Run by `diary-print-entries' after preparing a temporary diary buffer. The buffer shows only the diary entries currently visible in the @@ -334,9 +297,6 @@ expressions that can involve the keywords `days' (a number), `date' :type 'sexp :group 'diary) -(define-obsolete-variable-alias 'abbreviated-calendar-year - 'diary-abbreviated-year-flag "23.1") - (defcustom diary-abbreviated-year-flag t "Interpret a two-digit year DD in a diary entry as either 19DD or 20DD. This applies to the Gregorian, Hebrew, Islamic, and Bahá'í calendars. @@ -468,7 +428,8 @@ Only used if `diary-header-line-flag' is non-nil." ;; just visiting the diary-file. This is i) unlikely, and ii) no great loss. ;;;###cal-autoload (defun diary-live-p () - "Return non-nil if the diary is being displayed." + "Return non-nil if the diary is being displayed. +The actual return value is a diary buffer." (or (get-buffer diary-fancy-buffer) (and diary-file (find-buffer-visiting diary-file)))) @@ -484,9 +445,6 @@ just visiting the `diary-file'), and SYMBOL's value is to be changed." ;; Note this assumes diary was called without prefix arg. (diary)))) -(define-obsolete-variable-alias 'number-of-diary-entries - 'diary-number-of-entries "23.1") - (defcustom diary-number-of-entries 1 "Specifies how many days of diary entries are to be displayed initially. This variable affects the diary display when the command \\[diary] is @@ -562,10 +520,6 @@ DFILE specifies the file to use as the diary file." (let ((diary-file dfile)) (diary-view-entries arg))) -;;;###cal-autoload -(define-obsolete-function-alias 'view-other-diary-entries - 'diary-view-other-diary-entries "23.1") - (defvar diary-syntax-table (let ((st (copy-syntax-table (standard-syntax-table)))) (modify-syntax-entry ?* "w" st) @@ -684,8 +638,6 @@ Also removes the region between `diary-comment-start' and (list marker dfile literal) globcolor))))))) -(define-obsolete-function-alias 'add-to-diary-list 'diary-add-to-list "23.1") - (defun diary-list-entries-2 (date mark globattr list-only &optional months symbol gdate) "Internal subroutine of `diary-list-entries'. @@ -901,12 +853,15 @@ LIST-ONLY is non-nil, in which case it just returns the list." ;;; (diary-include-other-diary-files) ; recurse ;;; (run-hooks 'diary-list-entries-hook)) (unless list-only - (if (and diary-display-function - (listp diary-display-function)) - ;; Backwards compatibility. - (run-hooks 'diary-display-function) - (funcall (or diary-display-function - 'diary-simple-display)))) + ;; Avoid M-x diary; M-x calendar; M-x diary + ;; clobbering the calendar window. + ;; FIXME this is not the right solution. + (let ((display-buffer-fallback-action + (list (delq + 'display-buffer-in-previous-window + (copy-sequence + (car display-buffer-fallback-action)))))) + (funcall diary-display-function))) (run-hooks 'diary-hook))))) (and temp-buff (buffer-name temp-buff) (kill-buffer temp-buff))) (or d-incp (message "Preparing diary...done")) @@ -967,9 +922,6 @@ For details, see `diary-include-files'. See also `diary-mark-included-diary-files'." (diary-include-files)) -(define-obsolete-function-alias 'include-other-diary-files - 'diary-include-other-diary-files "23.1") - (defvar date-string) ; bound in diary-list-entries (defun diary-display-no-entries () @@ -1028,9 +980,6 @@ in the mode line. This is an option for `diary-display-function'." (set-window-point window diary-saved-point) (set-window-start window (point-min))))))) -(define-obsolete-function-alias 'simple-diary-display - 'diary-simple-display "23.1") - (defvar diary-goto-entry-function 'diary-goto-entry "Function called to jump to a diary entry. Modes that require special handling of the included file @@ -1157,9 +1106,6 @@ This is an option for `diary-display-function'." (diary-fancy-display-mode)) (calendar-set-mode-line date-string)))) -(define-obsolete-function-alias 'fancy-diary-display - 'diary-fancy-display "23.1") - ;; FIXME modernize? (defun diary-print-entries () "Print a hard copy of the diary display. @@ -1204,9 +1150,6 @@ the actual printing." (run-hooks 'diary-print-entries-hook) (kill-buffer temp-buffer)))) -(define-obsolete-function-alias 'print-diary-entries - 'diary-print-entries "23.1") - ;;;###cal-autoload (defun diary-show-all-entries () "Show all of the diary entries in the diary file. @@ -1454,9 +1397,6 @@ marks. This is intended to deal with deleted diary entries." (and temp-buff (buffer-name temp-buff) (kill-buffer temp-buff))) (or d-incp (message "Marking diary entries...done")))) -;;;###cal-autoload -(define-obsolete-function-alias 'mark-diary-entries 'diary-mark-entries "23.1") - (defun diary-sexp-entry (sexp entry date) "Process a SEXP diary ENTRY for DATE." (let ((result (if calendar-debug-sexp @@ -1534,9 +1474,6 @@ is marked. See the documentation for the function `diary-list-sexp-entries'." (or (cadr (diary-pull-attrs entry file-glob-attrs)) (if (consp mark) (car mark))))))))) -(define-obsolete-function-alias 'mark-sexp-diary-entries - 'diary-mark-sexp-entries "23.1") - (defun diary-mark-included-diary-files () "Mark diary entries from included diary files. To use, add this function to `diary-mark-entries-hook'. @@ -1544,9 +1481,6 @@ For details, see `diary-include-files'. See also `diary-include-other-diary-files'." (diary-include-files t)) -(define-obsolete-function-alias 'mark-included-diary-files - 'diary-mark-included-diary-files "23.1") - (defun calendar-mark-days-named (dayname &optional color) "Mark all dates in the calendar window that are day DAYNAME of the week. 0 means all Sundays, 1 means all Mondays, and so on. @@ -1569,9 +1503,6 @@ Optional argument COLOR is passed to `calendar-mark-visible-date' as MARK." color) (setq day (+ day 7)))))) -(define-obsolete-function-alias 'mark-calendar-days-named - 'calendar-mark-days-named "23.1") - (defun calendar-mark-month (month year p-month p-day p-year &optional color) "Mark dates in the MONTH/YEAR that conform to pattern P-MONTH/P-DAY/P-YEAR. A value of 0 in any position of the pattern is a wildcard. @@ -1585,9 +1516,6 @@ Optional argument COLOR is passed to `calendar-mark-visible-date' as MARK." (calendar-mark-visible-date (list month (1+ i) year) color)) (calendar-mark-visible-date (list month p-day year) color)))) -(define-obsolete-function-alias 'mark-calendar-month - 'calendar-mark-month "23.1") - (defun calendar-mark-date-pattern (month day year &optional color) "Mark all dates in the calendar window that conform to MONTH/DAY/YEAR. A value of 0 in any position is a wildcard. Optional argument COLOR is @@ -1600,9 +1528,6 @@ passed to `calendar-mark-visible-date' as MARK." (calendar-mark-month m y month day year color) (calendar-increment-month m y 1))))) -(define-obsolete-function-alias 'mark-calendar-date-pattern - 'calendar-mark-date-pattern "23.1") - ;; Bahai, Hebrew, Islamic. (defun calendar-mark-complex (month day year fromabs &optional color) "Mark dates in the calendar conforming to MONTH DAY YEAR of some system. @@ -1661,8 +1586,7 @@ COLOR is passed to `calendar-mark-visible-date' as MARK." (setq date (calendar-gregorian-from-absolute (funcall toabs (list month day y))))) (calendar-mark-visible-date date color))))) - (calendar-mark-complex month day year - 'calendar-bahai-from-absolute color)))) + (calendar-mark-complex month day year fromabs color)))) (defun diary-entry-time (s) @@ -1709,8 +1633,6 @@ be the last item in the hook, in case earlier items add diary entries, or change the order." (setq diary-entries-list (sort diary-entries-list 'diary-entry-compare))) -(define-obsolete-function-alias 'sort-diary-entries 'diary-sort-entries "23.1") - (defun diary-list-sexp-entries (date) "Add sexp entries for DATE from the diary file to `diary-entries-list'. @@ -1869,9 +1791,6 @@ best if they are non-marking." (setq entry-found (or entry-found diary-entry))) entry-found)) -(define-obsolete-function-alias 'list-sexp-diary-entries - 'diary-list-sexp-entries "23.1") - (defun diary-make-date (a b c) "Convert A B C into the internal calendar date form. The expected order of the inputs depends on `calendar-date-style', @@ -2132,9 +2051,6 @@ If omitted, NONMARKING defaults to nil and FILE defaults to (if nonmarking diary-nonmarking-symbol "") string " ")) -;;;###cal-autoload -(define-obsolete-function-alias 'make-diary-entry 'diary-make-entry "23.1") - ;;;###cal-autoload (defun diary-insert-entry (arg &optional event) "Insert a diary entry for the date indicated by point. @@ -2144,9 +2060,6 @@ Prefix argument ARG makes the entry nonmarking." (diary-make-entry (calendar-date-string (calendar-cursor-to-date t event) t t) arg)) -;;;###cal-autoload -(define-obsolete-function-alias 'insert-diary-entry 'diary-insert-entry "23.1") - ;;;###cal-autoload (defun diary-insert-weekly-entry (arg) "Insert a weekly diary entry for the day of the week indicated by point. @@ -2155,10 +2068,6 @@ Prefix argument ARG makes the entry nonmarking." (diary-make-entry (calendar-day-name (calendar-cursor-to-date t)) arg)) -;;;###cal-autoload -(define-obsolete-function-alias 'insert-weekly-diary-entry - 'diary-insert-weekly-entry "23.1") - (defun diary-date-display-form (&optional type) "Return value for `calendar-date-display-form' using `calendar-date-style'. Optional symbol TYPE is either `monthly' or `yearly'." @@ -2213,10 +2122,6 @@ Prefix argument ARG makes the entry nonmarking." (interactive "P") (diary-insert-entry-1 'monthly arg)) -;;;###cal-autoload -(define-obsolete-function-alias 'insert-monthly-diary-entry - 'diary-insert-monthly-entry "23.1") - ;;;###cal-autoload (defun diary-insert-yearly-entry (arg) "Insert an annual diary entry for the day of the year indicated by point. @@ -2224,10 +2129,6 @@ Prefix argument ARG makes the entry nonmarking." (interactive "P") (diary-insert-entry-1 'yearly arg)) -;;;###cal-autoload -(define-obsolete-function-alias 'insert-yearly-diary-entry - 'diary-insert-yearly-entry "23.1") - ;;;###cal-autoload (defun diary-insert-anniversary-entry (arg) "Insert an anniversary diary entry for the date given by point. @@ -2240,10 +2141,6 @@ Prefix argument ARG makes the entry nonmarking." (calendar-date-string (calendar-cursor-to-date t) nil t)) arg))) -;;;###cal-autoload -(define-obsolete-function-alias 'insert-anniversary-diary-entry - 'diary-insert-anniversary-entry "23.1") - ;;;###cal-autoload (defun diary-insert-block-entry (arg) "Insert a block diary entry for the days between the point and marked date. @@ -2267,10 +2164,6 @@ Prefix argument ARG makes the entry nonmarking." (calendar-date-string end nil t)) arg))) -;;;###cal-autoload -(define-obsolete-function-alias 'insert-block-diary-entry - 'diary-insert-block-entry "23.1") - ;;;###cal-autoload (defun diary-insert-cyclic-entry (arg) "Insert a cyclic diary entry starting at the date given by point. @@ -2285,10 +2178,6 @@ Prefix argument ARG makes the entry nonmarking." (calendar-date-string (calendar-cursor-to-date t) nil t)) arg))) -;;;###cal-autoload -(define-obsolete-function-alias 'insert-cyclic-diary-entry - 'diary-insert-cyclic-entry "23.1") - ;;; Diary mode. (defun diary-redraw-calendar () @@ -2349,7 +2238,7 @@ full month names." (if (equal (car x) 'backup) (concat "\\)" (eval (car (reverse x)))) "\\)")) - '(1 diary-face))) + '(1 'diary))) diary-date-forms))) (defmacro diary-font-lock-keywords-1 (markfunc listfunc feature months symbol) @@ -2486,11 +2375,8 @@ This depends on the calendar date style." (put-text-property (match-beginning 0) (match-end 0) 'font-lock-multiline t) t)) -(define-obsolete-variable-alias 'fancy-diary-font-lock-keywords - 'diary-fancy-font-lock-keywords "23.1") - (defvar diary-fancy-font-lock-keywords - `((diary-fancy-date-matcher . diary-face) + `((diary-fancy-date-matcher . 'diary) ("^.*\\([aA]nniversary\\|[bB]irthday\\).*$" . 'diary-anniversary) ("^.*Yahrzeit.*$" . font-lock-constant-face) ("^\\(Erev \\)?Rosh Hodesh.*" . font-lock-function-name-face) @@ -2537,9 +2423,6 @@ Fontify the region between BEG and END, quietly unless VERBOSE is non-nil." (list (cons t diary-fancy-overriding-map))) (view-mode 1)) -(define-obsolete-function-alias 'fancy-diary-display-mode - 'diary-fancy-display-mode "23.1") - ;; Following code from Dave Love . ;; Import Outlook-format appointments from mail messages in Gnus or ;; Rmail using command `diary-from-outlook'. This, or the specialized diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el index 488f8cda8f6..d36764a74ce 100644 --- a/lisp/calendar/holidays.el +++ b/lisp/calendar/holidays.el @@ -1,7 +1,7 @@ ;;; holidays.el --- holiday functions for the calendar package -;; Copyright (C) 1989-1990, 1992-1994, 1997, 2001-2014 Free Software -;; Foundation, Inc. +;; Copyright (C) 1989-1990, 1992-1994, 1997, 2001-2014 +;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Maintainer: Glenn Morris @@ -42,9 +42,6 @@ ;; are used to using them to set calendar-holidays without having to ;; explicitly load this file. -;;;###autoload -(define-obsolete-variable-alias 'general-holidays - 'holiday-general-holidays "23.1") ;;;###autoload (defcustom holiday-general-holidays (mapcar 'purecopy @@ -72,9 +69,6 @@ See the documentation for `calendar-holidays' for details." ;;;###autoload (put 'holiday-general-holidays 'risky-local-variable t) -;;;###autoload -(define-obsolete-variable-alias 'oriental-holidays - 'holiday-oriental-holidays "23.1") ;;;###autoload (defcustom holiday-oriental-holidays (mapcar 'purecopy @@ -97,8 +91,6 @@ See the documentation for `calendar-holidays' for details." ;;;###autoload (put 'holiday-oriental-holidays 'risky-local-variable t) -;;;###autoload -(define-obsolete-variable-alias 'local-holidays 'holiday-local-holidays "23.1") ;;;###autoload (defcustom holiday-local-holidays nil "Local holidays. @@ -108,8 +100,6 @@ See the documentation for `calendar-holidays' for details." ;;;###autoload (put 'holiday-local-holidays 'risky-local-variable t) -;;;###autoload -(define-obsolete-variable-alias 'other-holidays 'holiday-other-holidays "23.1") ;;;###autoload (defcustom holiday-other-holidays nil "User defined holidays. @@ -119,108 +109,6 @@ See the documentation for `calendar-holidays' for details." ;;;###autoload (put 'holiday-other-holidays 'risky-local-variable t) -;;;###autoload -(defvar hebrew-holidays-1 - (mapcar 'purecopy - '((holiday-hebrew-rosh-hashanah) - (if calendar-hebrew-all-holidays-flag - (holiday-julian - 11 - (let ((m displayed-month) - (y displayed-year) - year) - (calendar-increment-month m y -1) - (setq year (calendar-extract-year - (calendar-julian-from-absolute - (calendar-absolute-from-gregorian (list m 1 y))))) - (if (zerop (% (1+ year) 4)) - 22 - 21)) "\"Tal Umatar\" (evening)")))) - "Component of the old default value of `holiday-hebrew-holidays'.") -;;;###autoload -(put 'hebrew-holidays-1 'risky-local-variable t) -(make-obsolete-variable 'hebrew-holidays-1 'hebrew-holidays "23.1") - -;;;###autoload -(defvar hebrew-holidays-2 - (mapcar 'purecopy - '((holiday-hebrew-hanukkah) ; respects calendar-hebrew-all-holidays-flag - (if calendar-hebrew-all-holidays-flag - (holiday-hebrew - 10 - (let ((h-year (calendar-extract-year - (calendar-hebrew-from-absolute - (calendar-absolute-from-gregorian - (list displayed-month 28 displayed-year)))))) - (if (= 6 (% (calendar-hebrew-to-absolute (list 10 10 h-year)) - 7)) - 11 10)) - "Tzom Teveth")) - (if calendar-hebrew-all-holidays-flag - (holiday-hebrew 11 15 "Tu B'Shevat")))) - "Component of the old default value of `holiday-hebrew-holidays'.") -;;;###autoload -(put 'hebrew-holidays-2 'risky-local-variable t) -(make-obsolete-variable 'hebrew-holidays-2 'hebrew-holidays "23.1") - -;;;###autoload -(defvar hebrew-holidays-3 - (mapcar 'purecopy - '((if calendar-hebrew-all-holidays-flag - (holiday-hebrew - 11 - (let* ((m displayed-month) - (y displayed-year) - (h-year (progn - (calendar-increment-month m y 1) - (calendar-extract-year - (calendar-hebrew-from-absolute - (calendar-absolute-from-gregorian - (list m (calendar-last-day-of-month m y) y)))))) - (s-s - (calendar-hebrew-from-absolute - (if (= 6 - (% (calendar-hebrew-to-absolute - (list 7 1 h-year)) - 7)) - (calendar-dayname-on-or-before - 6 (calendar-hebrew-to-absolute - (list 11 17 h-year))) - (calendar-dayname-on-or-before - 6 (calendar-hebrew-to-absolute - (list 11 16 h-year)))))) - (day (calendar-extract-day s-s))) - day) - "Shabbat Shirah")))) - "Component of the old default value of `holiday-hebrew-holidays'.") -;;;###autoload -(put 'hebrew-holidays-3 'risky-local-variable t) -(make-obsolete-variable 'hebrew-holidays-3 'hebrew-holidays "23.1") - -;;;###autoload -(defvar hebrew-holidays-4 - (mapcar 'purecopy - '((holiday-hebrew-passover) - (and calendar-hebrew-all-holidays-flag - (let* ((m displayed-month) - (y displayed-year) - (year (progn - (calendar-increment-month m y -1) - (calendar-extract-year - (calendar-julian-from-absolute - (calendar-absolute-from-gregorian (list m 1 y))))))) - (= 21 (% year 28))) - (holiday-julian 3 26 "Kiddush HaHamah")) - (if calendar-hebrew-all-holidays-flag - (holiday-hebrew-tisha-b-av)))) - "Component of the old default value of `holiday-hebrew-holidays'.") -;;;###autoload -(put 'hebrew-holidays-4 'risky-local-variable t) -(make-obsolete-variable 'hebrew-holidays-4 'hebrew-holidays "23.1") - -;;;###autoload -(define-obsolete-variable-alias 'hebrew-holidays - 'holiday-hebrew-holidays "23.1") ;;;###autoload (defcustom holiday-hebrew-holidays (mapcar 'purecopy @@ -239,9 +127,6 @@ See the documentation for `calendar-holidays' for details." ;;;###autoload (put 'holiday-hebrew-holidays 'risky-local-variable t) -;;;###autoload -(define-obsolete-variable-alias 'christian-holidays - 'holiday-christian-holidays "23.1") ;;;###autoload (defcustom holiday-christian-holidays (mapcar 'purecopy @@ -261,9 +146,6 @@ See the documentation for `calendar-holidays' for details." ;;;###autoload (put 'holiday-christian-holidays 'risky-local-variable t) -;;;###autoload -(define-obsolete-variable-alias 'islamic-holidays - 'holiday-islamic-holidays "23.1") ;;;###autoload (defcustom holiday-islamic-holidays (mapcar 'purecopy @@ -285,8 +167,6 @@ See the documentation for `calendar-holidays' for details." ;;;###autoload (put 'holiday-islamic-holidays 'risky-local-variable t) -;;;###autoload -(define-obsolete-variable-alias 'bahai-holidays 'holiday-bahai-holidays "23.1") ;;;###autoload (defcustom holiday-bahai-holidays (mapcar 'purecopy @@ -308,8 +188,6 @@ See the documentation for `calendar-holidays' for details." ;;;###autoload (put 'holiday-bahai-holidays 'risky-local-variable t) -;;;###autoload -(define-obsolete-variable-alias 'solar-holidays 'holiday-solar-holidays "23.1") ;;;###autoload (defcustom holiday-solar-holidays (mapcar 'purecopy @@ -516,9 +394,6 @@ use instead of point." (message "Looking up holidays...done")) holiday-list))) -(define-obsolete-function-alias - 'list-calendar-holidays 'calendar-list-holidays "23.1") - ;;;###autoload (defun holidays (&optional arg) "Display the holidays for last month, this month, and next month. @@ -645,9 +520,6 @@ strings describing those holidays that apply on DATE, or nil if none do." (if (calendar-date-equal date (car h)) (setq holiday-list (append holiday-list (cdr h))))))) -(define-obsolete-function-alias - 'check-calendar-holidays 'calendar-check-holidays "23.1") - ;; Formerly cal-tex-list-holidays. (defun holiday-in-range (d1 d2) @@ -724,9 +596,6 @@ use instead of point." (calendar-mark-visible-date (car holiday) calendar-holiday-marker)) (message "Marking holidays...done"))) -(define-obsolete-function-alias - 'mark-calendar-holidays 'calendar-mark-holidays "23.1") - ;; Below are the functions that calculate the dates of holidays; these ;; are eval'ed in the function calendar-holiday-list. If you ;; write other such functions, be sure to imitate the style used below. @@ -813,9 +682,6 @@ HLIST is a list of elements of the form (DATE) TEXT." (and (car p) (calendar-date-is-visible-p (car p)) p)) hlist))) -(define-obsolete-function-alias - 'filter-visible-calendar-holidays 'holiday-filter-visible-calendar "23.1") - (defun holiday-sexp (sexp string) "Sexp holiday for dates in the calendar window. SEXP is an expression in variable `year' that is evaluated to diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 9aefcac2314..0bd126d9520 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -240,6 +240,55 @@ code for the event, and your personal domain name." :type 'string :group 'icalendar) +(defcustom icalendar-export-sexp-enumeration-days + 14 + "Number of days over which a sexp diary entry is enumerated. +In general sexp entries cannot be translated to icalendar format. +They are therefore enumerated, i.e. explicitly evaluated for a +certain number of days, and then exported. The enumeration starts +on the current day and continues for the number of days given here. + +See `icalendar-export-sexp-enumerate-all' for a list of sexp +entries which by default are NOT enumerated." + :version "25.1" + :type 'integer + :group 'icalendar) + +(defcustom icalendar-export-sexp-enumerate-all + nil + "Determines whether ALL sexp diary entries are enumerated. +If non-nil all sexp diary entries are enumerated for +`icalendar-export-sexp-enumeration-days' days instead of +translating into an icalendar equivalent. This affects the +following sexp diary entries: `diary-anniversary', +`diary-cyclic', `diary-date', `diary-float',`diary-block'. All +other sexp entries are enumerated in any case." + :version "25.1" + :type 'boolean + :group 'icalendar) + + +(defcustom icalendar-export-alarms + nil + "Determine if and how alarms are included in exported diary events." + :version "25.1" + :type '(choice (const :tag "Do not include alarms in export" + nil) + (list :tag "Create alarms in exported diary entries" + (integer :tag "Advance time (minutes)" + :value 10) + (set :tag "Alarm type" + (list :tag "Audio" + (const audio :tag "Audio")) + (list :tag "Display" + (const display :tag "Display")) + (list :tag "Email" + (const email) + (repeat :tag "Attendees" + (string :tag "Email")))))) + :group 'icalendar) + + (defvar icalendar-debug nil "Enable icalendar debug messages.") @@ -458,45 +507,52 @@ children." ALIST is an alist entry from a VTIMEZONE, like STANDARD. DST-P is non-nil if this is for daylight savings time. The strings are suitable for assembling into a TZ variable." - (let ((offset (car (cddr (assq 'TZOFFSETTO alist)))) - (rrule-value (car (cddr (assq 'RRULE alist)))) - (dtstart (car (cddr (assq 'DTSTART alist))))) + (let* ((offsetto (car (cddr (assq 'TZOFFSETTO alist)))) + (offsetfrom (car (cddr (assq 'TZOFFSETFROM alist)))) + (rrule-value (car (cddr (assq 'RRULE alist)))) + (dtstart (car (cddr (assq 'DTSTART alist)))) + (no-dst (equal offsetto offsetfrom))) ;; FIXME: for now we only handle RRULE and not RDATE here. - (when (and offset rrule-value dtstart) + (when (and offsetto dtstart (or rrule-value no-dst)) (let* ((rrule (icalendar--split-value rrule-value)) (freq (cadr (assq 'FREQ rrule))) (bymonth (cadr (assq 'BYMONTH rrule))) (byday (cadr (assq 'BYDAY rrule)))) ;; FIXME: we don't correctly handle WKST here. - (if (and (string= freq "YEARLY") bymonth) + (if (or no-dst (and (string= freq "YEARLY") bymonth)) (cons (concat ;; Fake a name. (if dst-p "DST" "STD") ;; For TZ, OFFSET is added to the local time. So, ;; invert the values. - (if (eq (aref offset 0) ?-) "+" "-") - (substring offset 1 3) + (if (eq (aref offsetto 0) ?-) "+" "-") + (substring offsetto 1 3) ":" - (substring offset 3 5)) + (substring offsetto 3 5)) ;; The start time. - (let* ((day (icalendar--get-weekday-number (substring byday -2))) - (week (if (eq day -1) - byday - (substring byday 0 -2)))) - ;; "Translate" the iCalendar way to specify the last - ;; (sun|mon|...)day in month to the tzset way. - (if (string= week "-1") ; last day as iCalendar calls it - (setq week "5")) ; last day as tzset calls it - (concat "M" bymonth "." week "." (if (eq day -1) "0" - (int-to-string day)) - ;; Start time. - "/" - (substring dtstart -6 -4) - ":" - (substring dtstart -4 -2) - ":" - (substring dtstart -2))))))))) + (let* ((day (if no-dst + 1 + (icalendar--get-weekday-number (substring byday -2)))) + (week (if no-dst + "1" + (if (eq day -1) + byday + (substring byday 0 -2))))) + ;; "Translate" the iCalendar way to specify the last + ;; (sun|mon|...)day in month to the tzset way. + (if (string= week "-1") ; last day as iCalendar calls it + (setq week "5")) ; last day as tzset calls it + (when no-dst (setq bymonth "1")) + (concat "M" bymonth "." week "." (if (eq day -1) "0" + (int-to-string day)) + ;; Start time. + "/" + (substring dtstart -6 -4) + ":" + (substring dtstart -4 -2) + ":" + (substring dtstart -2))))))))) (defun icalendar--parse-vtimezone (alist) "Turn a VTIMEZONE ALIST into a cons (ID . TZ-STRING). @@ -713,16 +769,6 @@ ISO format: (year month day)." ;; datetime == nil nil)) -(defun icalendar--date-style () - "Return current calendar date style. -Convenience function to handle transition from old -`european-calendar-style' to new `calendar-date-style'." - (if (boundp 'calendar-date-style) - calendar-date-style - (if (with-no-warnings european-calendar-style) - 'european - 'american))) - (defun icalendar--datetime-to-diary-date (datetime &optional separator) "Convert the decoded DATETIME to diary format. Optional argument SEPARATOR gives the separator between month, @@ -730,7 +776,7 @@ day, and year. If nil a blank character is used as separator. Call icalendar--datetime-to-*-date according to the current calendar date style." (funcall (intern-soft (format "icalendar--datetime-to-%s-date" - (icalendar--date-style))) + calendar-date-style)) datetime separator)) (defun icalendar--datetime-to-colontime (datetime) @@ -840,7 +886,7 @@ is not possible it uses the current calendar date style." (match-end 2)))) (setq year (read (substring datestring (match-beginning 3) (match-end 3)))) - (if (eq (icalendar--date-style) 'american) + (if (eq calendar-date-style 'american) (let ((x month)) (setq month day) (setq day x)))) @@ -896,10 +942,16 @@ is not possible it uses the current calendar date style." (defun icalendar--diarytime-to-isotime (timestring ampmstring) "Convert a time like 9:30pm to an iso-conform string like T213000. -In this example the TIMESTRING would be \"9:30\" and the AMPMSTRING -would be \"pm\"." +In this example the TIMESTRING would be \"9:30\" and the +AMPMSTRING would be \"pm\". The minutes may be missing as long +as the colon is missing as well, i.e. \"9\" is allowed as +TIMESTRING and has the same result as \"9:00\"." (if timestring - (let ((starttimenum (read (icalendar--rris ":" "" timestring)))) + (let* ((parts (save-match-data (split-string timestring ":"))) + (h (car parts)) + (m (if (cdr parts) (cadr parts) + (if (> (length h) 2) "" "00"))) + (starttimenum (read (concat h m)))) ;; take care of am/pm style ;; Be sure *not* to convert 12:00pm - 12:59pm to 2400-2459 (if (and ampmstring (string= "pm" ampmstring) (< starttimenum 1200)) @@ -996,10 +1048,12 @@ FExport diary data into iCalendar file: ") (header "") (contents-n-summary) (contents) + (alarm) (found-error nil) (nonmarker (concat "^" (regexp-quote diary-nonmarking-symbol) "?")) - (other-elements nil)) + (other-elements nil) + (cns-cons-or-list nil)) ;; prepare buffer with error messages (save-current-buffer (set-buffer (get-buffer-create "*icalendar-errors*")) @@ -1021,40 +1075,50 @@ FExport diary data into iCalendar file: ") (condition-case error-val (progn - (setq contents-n-summary + (setq cns-cons-or-list (icalendar--convert-to-ical nonmarker entry-main)) (setq other-elements (icalendar--parse-summary-and-rest entry-full)) - (setq contents (concat (car contents-n-summary) - "\nSUMMARY:" (cadr contents-n-summary))) - (let ((cla (cdr (assoc 'cla other-elements))) - (des (cdr (assoc 'des other-elements))) - (loc (cdr (assoc 'loc other-elements))) - (org (cdr (assoc 'org other-elements))) - (sta (cdr (assoc 'sta other-elements))) - (sum (cdr (assoc 'sum other-elements))) - (url (cdr (assoc 'url other-elements))) - (uid (cdr (assoc 'uid other-elements)))) - (if cla - (setq contents (concat contents "\nCLASS:" cla))) - (if des - (setq contents (concat contents "\nDESCRIPTION:" des))) - (if loc - (setq contents (concat contents "\nLOCATION:" loc))) - (if org - (setq contents (concat contents "\nORGANIZER:" org))) - (if sta - (setq contents (concat contents "\nSTATUS:" sta))) - ;;(if sum - ;; (setq contents (concat contents "\nSUMMARY:" sum))) - (if url - (setq contents (concat contents "\nURL:" url))) + (mapc (lambda (contents-n-summary) + (setq contents (concat (car contents-n-summary) + "\nSUMMARY:" + (cdr contents-n-summary))) + (let ((cla (cdr (assoc 'cla other-elements))) + (des (cdr (assoc 'des other-elements))) + (loc (cdr (assoc 'loc other-elements))) + (org (cdr (assoc 'org other-elements))) + (sta (cdr (assoc 'sta other-elements))) + (sum (cdr (assoc 'sum other-elements))) + (url (cdr (assoc 'url other-elements))) + (uid (cdr (assoc 'uid other-elements)))) + (if cla + (setq contents (concat contents "\nCLASS:" cla))) + (if des + (setq contents (concat contents "\nDESCRIPTION:" + des))) + (if loc + (setq contents (concat contents "\nLOCATION:" loc))) + (if org + (setq contents (concat contents "\nORGANIZER:" + org))) + (if sta + (setq contents (concat contents "\nSTATUS:" sta))) + ;;(if sum + ;; (setq contents (concat contents "\nSUMMARY:" sum))) + (if url + (setq contents (concat contents "\nURL:" url))) - (setq header (concat "\nBEGIN:VEVENT\nUID:" - (or uid - (icalendar--create-uid entry-full - contents))))) - (setq result (concat result header contents "\nEND:VEVENT"))) + (setq header (concat "\nBEGIN:VEVENT\nUID:" + (or uid + (icalendar--create-uid + entry-full contents)))) + (setq alarm (icalendar--create-ical-alarm + (cdr contents-n-summary)))) + (setq result (concat result header contents alarm + "\nEND:VEVENT"))) + (if (consp cns-cons-or-list) + (list cns-cons-or-list) + cns-cons-or-list))) ;; handle errors (error (setq found-error t) @@ -1086,16 +1150,18 @@ FExport diary data into iCalendar file: ") NONMARKER is a regular expression matching the start of non-marking entries. ENTRY-MAIN is the first line of the diary entry." (or - ;; anniversaries -- %%(diary-anniversary ...) - (icalendar--convert-anniversary-to-ical nonmarker entry-main) - ;; cyclic events -- %%(diary-cyclic ...) - (icalendar--convert-cyclic-to-ical nonmarker entry-main) - ;; diary-date -- %%(diary-date ...) - (icalendar--convert-date-to-ical nonmarker entry-main) - ;; float events -- %%(diary-float ...) - (icalendar--convert-float-to-ical nonmarker entry-main) - ;; block events -- %%(diary-block ...) - (icalendar--convert-block-to-ical nonmarker entry-main) + (unless icalendar-export-sexp-enumerate-all + (or + ;; anniversaries -- %%(diary-anniversary ...) + (icalendar--convert-anniversary-to-ical nonmarker entry-main) + ;; cyclic events -- %%(diary-cyclic ...) + (icalendar--convert-cyclic-to-ical nonmarker entry-main) + ;; diary-date -- %%(diary-date ...) + (icalendar--convert-date-to-ical nonmarker entry-main) + ;; float events -- %%(diary-float ...) + (icalendar--convert-float-to-ical nonmarker entry-main) + ;; block events -- %%(diary-block ...) + (icalendar--convert-block-to-ical nonmarker entry-main))) ;; other sexp diary entries (icalendar--convert-sexp-to-ical nonmarker entry-main) ;; weekly by day -- Monday 8:30 Team meeting @@ -1223,6 +1289,43 @@ Returns an alist." (if url (cons 'url url) nil) (if uid (cons 'uid uid) nil)))))))) +(defun icalendar--create-ical-alarm (summary) + "Return VALARM blocks for the given SUMMARY." + (when icalendar-export-alarms + (let* ((advance-time (car icalendar-export-alarms)) + (alarm-specs (cadr icalendar-export-alarms)) + (fun (lambda (spec) + (icalendar--do-create-ical-alarm advance-time spec summary)))) + (mapconcat fun alarm-specs "")))) + +(defun icalendar--do-create-ical-alarm (advance-time alarm-spec summary) + "Return a VALARM block. +Argument ADVANCE-TIME is a number giving the time when the alarm +fires (minutes before the respective event). Argument ALARM-SPEC +is a list which must be one of '(audio), '(display) or +'(email (ADDRESS1 ...)), see `icalendar-export-alarms'. Argument +SUMMARY is a string which contains a short description for the +alarm." + (let* ((action (car alarm-spec)) + (act (format "\nACTION:%s" + (cdr (assoc action '((audio . "AUDIO") + (display . "DISPLAY") + (email . "EMAIL")))))) + (tri (format "\nTRIGGER:-PT%dM" advance-time)) + (des (if (memq action '(display email)) + (format "\nDESCRIPTION:%s" summary) + "")) + (sum (if (eq action 'email) + (format "\nSUMMARY:%s" summary) + "")) + (att (if (eq action 'email) + (mapconcat (lambda (i) + (format "\nATTENDEE:MAILTO:%s" i)) + (cadr alarm-spec) "") + ""))) + + (concat "\nBEGIN:VALARM" act tri des sum att "\nEND:VALARM"))) + ;; subroutines for icalendar-export-region (defun icalendar--convert-ordinary-to-ical (nonmarker entry-main) "Convert \"ordinary\" diary entry to iCalendar format. @@ -1231,9 +1334,9 @@ entries. ENTRY-MAIN is the first line of the diary entry." (if (string-match (concat nonmarker "\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\)\\s-*" ; date - "\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?" ; start time + "\\(\\([0-9][0-9]?\\(:[0-9][0-9]\\)?\\)\\([ap]m\\)?" ; start time "\\(" - "-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?" ; end time + "-\\([0-9][0-9]?\\(:[0-9][0-9]\\)?\\)\\([ap]m\\)?\\)?" ; end time "\\)?" "\\s-*\\(.*?\\) ?$") entry-main) @@ -1250,25 +1353,25 @@ entries. ENTRY-MAIN is the first line of the diary entry." (match-beginning 3) (match-end 3)) nil) - (if (match-beginning 4) + (if (match-beginning 5) (substring entry-main - (match-beginning 4) - (match-end 4)) + (match-beginning 5) + (match-end 5)) nil))) (endtimestring (icalendar--diarytime-to-isotime - (if (match-beginning 6) - (substring entry-main - (match-beginning 6) - (match-end 6)) - nil) (if (match-beginning 7) (substring entry-main (match-beginning 7) (match-end 7)) + nil) + (if (match-beginning 9) + (substring entry-main + (match-beginning 9) + (match-end 9)) nil))) (summary (icalendar--convert-string-for-export - (substring entry-main (match-beginning 8) - (match-end 8))))) + (substring entry-main (match-beginning 10) + (match-end 10))))) (icalendar--dmsg "ordinary %s" entry-main) (unless startisostring @@ -1294,7 +1397,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." (- time 230000))) (setq endisostring1 endisostring)) ))) - (list (concat "\nDTSTART;" + (cons (concat "\nDTSTART;" (if starttimestring "VALUE=DATE-TIME:" "VALUE=DATE:") startisostring @@ -1375,7 +1478,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." starttimestring)))) (setq endtimestring (format "T%06d" (+ 10000 time)))))) - (list (concat "\nDTSTART;" + (cons (concat "\nDTSTART;" (if starttimestring "VALUE=DATE-TIME:" "VALUE=DATE:") @@ -1408,7 +1511,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." NONMARKER is a regular expression matching the start of non-marking entries. ENTRY-MAIN is the first line of the diary entry." (if (string-match (concat nonmarker - (if (eq (icalendar--date-style) 'european) + (if (eq calendar-date-style 'european) "\\([0-9]+[0-9]?\\)\\s-+\\([a-z]+\\)\\s-+" "\\([a-z]+\\)\\s-+\\([0-9]+[0-9]?\\)\\s-+") "\\*?\\s-*" @@ -1419,8 +1522,8 @@ entries. ENTRY-MAIN is the first line of the diary entry." "\\s-*\\([^0-9]+.*?\\) ?$" ; must not match years ) entry-main) - (let* ((daypos (if (eq (icalendar--date-style) 'european) 1 2)) - (monpos (if (eq (icalendar--date-style) 'european) 2 1)) + (let* ((daypos (if (eq calendar-date-style 'european) 1 2)) + (monpos (if (eq calendar-date-style 'european) 2 1)) (day (read (substring entry-main (match-beginning daypos) (match-end daypos)))) @@ -1462,7 +1565,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." starttimestring)))) (setq endtimestring (format "T%06d" (+ 10000 time)))))) - (list (concat "\nDTSTART;" + (cons (concat "\nDTSTART;" (if starttimestring "VALUE=DATE-TIME:" "VALUE=DATE:") (format "1900%02d%02d" month day) @@ -1483,13 +1586,16 @@ entries. ENTRY-MAIN is the first line of the diary entry." ;; no match nil)) -(defun icalendar--convert-sexp-to-ical (nonmarker entry-main) - "Convert complex sexp diary entry to iCalendar format -- unsupported! +(defun icalendar--convert-sexp-to-ical (nonmarker entry-main &optional start) + "Convert sexp diary entry to iCalendar format. +Enumerate the evaluated sexp entry for the next +`icalendar-export-sexp-enumeration-days' days. NONMARKER is a +regular expression matching the start of non-marking entries. +ENTRY-MAIN is the first line of the diary entry. -FIXME! - -NONMARKER is a regular expression matching the start of non-marking -entries. ENTRY-MAIN is the first line of the diary entry." +Optional argument START determines the first day of the +enumeration, given as a time value, in same format as returned by +`current-time' -- used for test purposes." (cond ((string-match (concat nonmarker "%%(and \\(([^)]+)\\))\\(\\s-*.*?\\) ?$") entry-main) @@ -1502,10 +1608,37 @@ entries. ENTRY-MAIN is the first line of the diary entry." (substring entry-main (match-beginning 1) (match-end 1)) (substring entry-main (match-beginning 2) (match-end 2))))) ((string-match (concat nonmarker - "%%([^)]+)\\s-*.*") + "%%\\(([^)]+)\\)\\s-*\\(.*\\)") entry-main) + ;; regular sexp entry (icalendar--dmsg "diary-sexp %s" entry-main) - (error "Sexp-entries are not supported yet")) + (let ((p1 (substring entry-main (match-beginning 1) (match-end 1))) + (p2 (substring entry-main (match-beginning 2) (match-end 2))) + (now (or start (current-time)))) + (delete nil + (mapcar + (lambda (offset) + (let* ((day (decode-time (time-add now + (seconds-to-time + (* offset 60 60 24))))) + (d (nth 3 day)) + (m (nth 4 day)) + (y (nth 5 day)) + (se (diary-sexp-entry p1 p2 (list m d y))) + (see (cond ((stringp se) se) + ((consp se) (cdr se)) + (t nil)))) + (cond ((null see) + nil) + ((stringp see) + (let ((calendar-date-style 'iso)) + (icalendar--convert-ordinary-to-ical + nonmarker (format "%4d/%02d/%02d %s" y m d see)))) + (;TODO: + (error (format "Unsupported Sexp-entry: %s" + entry-main)))))) + (number-sequence + 0 (- icalendar-export-sexp-enumeration-days 1)))))) (t ;; no match nil))) @@ -1570,7 +1703,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." (+ 10000 time)))))) (if starttimestring ;; with time -> write rrule - (list (concat "\nDTSTART;VALUE=DATE-TIME:" + (cons (concat "\nDTSTART;VALUE=DATE-TIME:" startisostring starttimestring "\nDTEND;VALUE=DATE-TIME:" @@ -1580,7 +1713,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." endisostring) summary) ;; no time -> write long event - (list (concat "\nDTSTART;VALUE=DATE:" startisostring + (cons (concat "\nDTSTART;VALUE=DATE:" startisostring "\nDTEND;VALUE=DATE:" endisostring+1) summary))) ;; no match @@ -1616,10 +1749,10 @@ entries. ENTRY-MAIN is the first line of the diary entry." (icalendar--dmsg "diary-float %s" entry-main) (error "Don't know if or how to implement day in `diary-float'"))) - (list (concat + (cons (concat ;;Start today (yes this is an arbitrary choice): "\nDTSTART;VALUE=DATE:" - (format-time-string "%Y%m%d" (current-time)) + (format-time-string "%Y%m%d") ;;BUT remove today if `diary-float' ;;expression does not hold true for today: (when @@ -1628,7 +1761,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." (diary-float month dayname n))) (concat "\nEXDATE;VALUE=DATE:" - (format-time-string "%Y%m%d" (current-time)))) + (format-time-string "%Y%m%d"))) "\nRRULE:" (if (or (numberp month) (listp month)) "FREQ=YEARLY;BYMONTH=" @@ -1721,7 +1854,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." starttimestring)))) (setq endtimestring (format "T%06d" (+ 10000 time)))))) - (list (concat "\nDTSTART;" + (cons (concat "\nDTSTART;" (if starttimestring "VALUE=DATE-TIME:" "VALUE=DATE:") startisostring @@ -1790,7 +1923,7 @@ entries. ENTRY-MAIN is the first line of the diary entry." starttimestring)))) (setq endtimestring (format "T%06d" (+ 10000 time)))))) - (list (concat "\nDTSTART;" + (cons (concat "\nDTSTART;" (if starttimestring "VALUE=DATE-TIME:" "VALUE=DATE:") startisostring @@ -2227,11 +2360,11 @@ END-T is the event's end time in diary format." (let ((day (nth 3 dtstart-dec)) (month (nth 4 dtstart-dec))) (setq result (concat "%%(and (diary-date " - (cond ((eq (icalendar--date-style) 'iso) + (cond ((eq calendar-date-style 'iso) (format "t %d %d" month day)) - ((eq (icalendar--date-style) 'european) + ((eq calendar-date-style 'european) (format "%d %d t" day month)) - ((eq (icalendar--date-style) 'american) + ((eq calendar-date-style 'american) (format "%d %d t" month day))) ") (diary-block " dtstart-conv @@ -2253,16 +2386,16 @@ END-T is the event's end time in diary format." (format "%%%%(and (diary-date %s) (diary-block %s %s)) %s%s%s" (let ((day (nth 3 dtstart-dec))) - (cond ((eq (icalendar--date-style) 'iso) + (cond ((eq calendar-date-style 'iso) (format "t t %d" day)) - ((eq (icalendar--date-style) 'european) + ((eq calendar-date-style 'european) (format "%d t t" day)) - ((eq (icalendar--date-style) 'american) + ((eq calendar-date-style 'american) (format "t %d t" day)))) dtstart-conv (if until until-conv - (if (eq (icalendar--date-style) 'iso) "9999 1 1" "1 1 9999")) ;; FIXME: should be unlimited + (if (eq calendar-date-style 'iso) "9999 1 1" "1 1 9999")) ;; FIXME: should be unlimited (or start-t "") (if end-t "-" "") (or end-t "")))) ;; daily diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el index e429bb03d15..0b20006f953 100644 --- a/lisp/calendar/lunar.el +++ b/lisp/calendar/lunar.el @@ -1,7 +1,6 @@ ;;; lunar.el --- calendar functions for phases of the moon -;; Copyright (C) 1992-1993, 1995, 1997, 2001-2014 Free Software -;; Foundation, Inc. +;; Copyright (C) 1992-1993, 1995, 1997, 2001-2014 Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Maintainer: Glenn Morris @@ -228,10 +227,6 @@ use instead of point." (lunar-phase-list m1 y1) "\n"))) (message "Computing phases of the moon...done")))) -;;;###cal-autoload -(define-obsolete-function-alias 'calendar-phases-of-moon - 'calendar-lunar-phases "23.1") - ;;;###autoload (defun lunar-phases (&optional arg) "Display the quarters of the moon for last month, this month, and next month. @@ -245,9 +240,6 @@ This function is suitable for execution in an init file." (displayed-year (calendar-extract-year date))) (calendar-lunar-phases)))) -;;;###autoload -(define-obsolete-function-alias 'phases-of-moon 'lunar-phases "23.1") - (defvar date) ;; To be called from diary-list-sexp-entries, where DATE is bound. @@ -266,10 +258,6 @@ use when highlighting the day in the calendar." (cons mark (concat (lunar-phase-name (nth 2 phase)) " " (cadr phase)))))) -;;;###diary-autoload -(define-obsolete-function-alias 'diary-phases-of-moon - 'diary-lunar-phases "23.1") - ;; For the Chinese calendar the calculations for the new moon need to be more ;; accurate than those above, so we use more terms in the approximation. (defun lunar-new-moon-time (k) diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el index 6bfccec94c6..142e69ecfe6 100644 --- a/lisp/calendar/parse-time.el +++ b/lisp/calendar/parse-time.el @@ -34,21 +34,12 @@ ;;; Code: -(eval-when-compile (require 'cl-lib)) - -(defvar parse-time-digits (make-vector 256 nil)) +(require 'cl-lib) ;; Byte-compiler warnings (defvar parse-time-elt) (defvar parse-time-val) -(unless (aref parse-time-digits ?0) - (cl-loop for i from ?0 to ?9 - do (aset parse-time-digits i (- i ?0)))) - -(defsubst digit-char-p (char) - (aref parse-time-digits char)) - (defsubst parse-time-string-chars (char) (save-match-data (let (case-fold-search str) @@ -59,30 +50,6 @@ ((string-match "[[:lower:]]" str) ?a) ((string-match "[[:digit:]]" str) ?0))))) -(put 'parse-error 'error-conditions '(parse-error error)) -(put 'parse-error 'error-message "Parsing error") - -(defsubst parse-integer (string &optional start end) - "[CL] Parse and return the integer in STRING, or nil if none." - (let ((integer 0) - (digit 0) - (index (or start 0)) - (end (or end (length string)))) - (when (< index end) - (let ((sign (aref string index))) - (if (or (eq sign ?+) (eq sign ?-)) - (setq sign (parse-time-string-chars sign) - index (1+ index)) - (setq sign 1)) - (while (and (< index end) - (setq digit (digit-char-p (aref string index)))) - (setq integer (+ (* integer 10) digit) - index (1+ index))) - (if (/= index end) - (signal 'parse-error `("not an integer" - ,(substring string (or start 0) end))) - (* sign integer)))))) - (defun parse-time-tokenize (string) "Tokenize STRING into substrings." (let ((start nil) @@ -100,7 +67,7 @@ (setq c (parse-time-string-chars (aref string index)))) (setq all-digits (and all-digits (eq c ?0)))) (if (<= index end) - (push (if all-digits (parse-integer string start index) + (push (if all-digits (cl-parse-integer string :start start :end index) (substring string start index)) list))) (nreverse list))) @@ -131,7 +98,7 @@ `(((6) parse-time-weekdays) ((3) (1 31)) ((4) parse-time-months) - ((5) (100 4038)) + ((5) (100 ,most-positive-fixnum)) ((2 1 0) ,#'(lambda () (and (stringp parse-time-elt) (= (length parse-time-elt) 8) @@ -147,8 +114,8 @@ (= 5 (length parse-time-elt)) (or (= (aref parse-time-elt 0) ?+) (= (aref parse-time-elt 0) ?-)))) - ,#'(lambda () (* 60 (+ (parse-integer parse-time-elt 3 5) - (* 60 (parse-integer parse-time-elt 1 3))) + ,#'(lambda () (* 60 (+ (cl-parse-integer parse-time-elt :start 3 :end 5) + (* 60 (cl-parse-integer parse-time-elt :start 1 :end 3))) (if (= (aref parse-time-elt 0) ?-) -1 1)))) ((5 4 3) ,#'(lambda () (and (stringp parse-time-elt) @@ -210,9 +177,10 @@ unknown are returned as nil." (let ((new-val (if rule (let ((this (pop rule))) (if (vectorp this) - (parse-integer + (cl-parse-integer parse-time-elt - (aref this 0) (aref this 1)) + :start (aref this 0) + :end (aref this 1)) (funcall this))) parse-time-val))) (rplaca (nthcdr (pop slots) time) new-val)))))))) diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el index b04cfcd9fe4..e7a8cc7eb25 100644 --- a/lisp/calendar/time-date.el +++ b/lisp/calendar/time-date.el @@ -30,10 +30,9 @@ ;; value equal to HIGH * 2^16 + LOW + USEC * 10^-6 + PSEC * 10^-12 ;; seconds, where missing components are treated as zero. HIGH can be ;; negative, either because the value is a time difference, or because -;; the machine supports negative time stamps that fall before the epoch. -;; The macro `with-decoded-time-value' and the function -;; `encode-time-value' make it easier to deal with these formats. -;; See `time-subtract' for an example of how to use them. +;; it represents a time stamp before the epoch. Typically, there are +;; more time values than the underlying system time type supports, +;; but the reverse can also be true. ;;; Code: @@ -44,7 +43,7 @@ The value of the last form in BODY is returned. Each element of the list VARLIST is a list of the form \(HIGH-SYMBOL LOW-SYMBOL MICRO-SYMBOL [PICO-SYMBOL [TYPE-SYMBOL]] TIME-VALUE). -The time value TIME-VALUE is decoded and the result it bound to +The time value TIME-VALUE is decoded and the result is bound to the symbols HIGH-SYMBOL, LOW-SYMBOL and MICRO-SYMBOL. The optional PICO-SYMBOL is bound to the picoseconds part. @@ -66,7 +65,32 @@ list (HIGH LOW MICRO PICO)." (pop elt))) (time-value (car elt)) (gensym (make-symbol "time"))) - `(let* ,(append `((,gensym ,time-value) + `(let* ,(append `((,gensym (or ,time-value (current-time))) + (,gensym + (cond + ((integerp ,gensym) + (list (ash ,gensym -16) + (logand ,gensym 65535))) + ((floatp ,gensym) + (let* ((usec (* 1000000 (mod ,gensym 1))) + (ps (round (* 1000000 (mod usec 1)))) + (us (floor usec)) + (lo (floor (mod ,gensym 65536))) + (hi (floor ,gensym 65536))) + (if (eq ps 1000000) + (progn + (setq ps 0) + (setq us (1+ us)) + (if (eq us 1000000) + (progn + (setq us 0) + (setq lo (1+ lo)) + (if (eq lo 65536) + (progn + (setq lo 0) + (setq hi (1+ hi)))))))) + (list hi lo us ps))) + (t ,gensym))) (,high (pop ,gensym)) ,low ,micro) (when pico `(,pico)) @@ -108,6 +132,10 @@ it is assumed that PICO was omitted and should be treated as zero." ((eq type 3) (list high low micro pico)) ((null type) (encode-time-value high low micro 0 pico)))) +(when (and (fboundp 'time-add) (subrp (symbol-function 'time-add))) + (make-obsolete 'encode-time-value nil "25.1") + (make-obsolete 'with-decoded-time-value nil "25.1")) + (autoload 'parse-time-string "parse-time") (autoload 'timezone-make-date-arpa-standard "timezone") @@ -119,13 +147,20 @@ it is assumed that PICO was omitted and should be treated as zero." (defun date-to-time (date) "Parse a string DATE that represents a date-time and return a time value. If DATE lacks timezone information, GMT is assumed." - (condition-case () + (condition-case err (apply 'encode-time (parse-time-string date)) - (error (condition-case () - (apply 'encode-time - (parse-time-string - (timezone-make-date-arpa-standard date))) - (error (error "Invalid date: %s" date)))))) + (error + (let ((overflow-error '(error "Specified time is not representable"))) + (if (equal err overflow-error) + (apply 'signal err) + (condition-case err + (apply 'encode-time + (parse-time-string + (timezone-make-date-arpa-standard date))) + (error + (if (equal err overflow-error) + (apply 'signal err) + (error "Invalid date: %s" date))))))))) ;; Bit of a mess. Emacs has float-time since at least 21.1. ;; This file is synced to Gnus, and XEmacs packages may have been written @@ -140,56 +175,28 @@ If DATE lacks timezone information, GMT is assumed." (or (featurep 'emacs) (and (fboundp 'float-time) (subrp (symbol-function 'float-time))) - (defun time-to-seconds (time) - "Convert time value TIME to a floating point number." - (with-decoded-time-value ((high low micro pico type time)) - (+ (* 1.0 high 65536) + (defun time-to-seconds (&optional time) + "Convert optional value TIME to a floating point number. +TIME defaults to the current time." + (with-decoded-time-value ((high low micro pico type + (or time (current-time)))) + (+ (* high 65536.0) low (/ (+ (* micro 1e6) pico) 1e12)))))) ;;;###autoload (defun seconds-to-time (seconds) - "Convert SECONDS (a floating point number) to a time value." - (let* ((usec (* 1000000 (mod seconds 1))) - (ps (round (* 1000000 (mod usec 1)))) - (us (floor usec)) - (lo (floor (mod seconds 65536))) - (hi (floor seconds 65536))) - (if (eq ps 1000000) - (progn - (setq ps 0) - (setq us (1+ us)) - (if (eq us 1000000) - (progn - (setq us 0) - (setq lo (1+ lo)) - (if (eq lo 65536) - (progn - (setq lo 0) - (setq hi (1+ hi)))))))) - (list hi lo us ps))) - -;;;###autoload -(defun time-less-p (t1 t2) - "Return non-nil if time value T1 is earlier than time value T2." - (with-decoded-time-value ((high1 low1 micro1 pico1 type1 t1) - (high2 low2 micro2 pico2 type2 t2)) - (or (< high1 high2) - (and (= high1 high2) - (or (< low1 low2) - (and (= low1 low2) - (or (< micro1 micro2) - (and (= micro1 micro2) - (< pico1 pico2))))))))) + "Convert SECONDS to a time value." + (time-add 0 seconds)) ;;;###autoload (defun days-to-time (days) "Convert DAYS into a time value." - (let* ((seconds (* 1.0 days 60 60 24)) - (high (condition-case nil (floor (/ seconds 65536)) - (range-error most-positive-fixnum)))) - (list high (condition-case nil (floor (- seconds (* 1.0 high 65536))) - (range-error 65535))))) + (let ((time (condition-case nil (seconds-to-time (* 86400.0 days)) + (range-error (list most-positive-fixnum 65535))))) + (if (integerp days) + (setcdr (cdr time) nil)) + time)) ;;;###autoload (defun time-since (time) @@ -198,53 +205,71 @@ TIME should be either a time value or a date-time string." (when (stringp time) ;; Convert date strings to internal time. (setq time (date-to-time time))) - (time-subtract (current-time) time)) + (time-subtract nil time)) ;;;###autoload (defalias 'subtract-time 'time-subtract) -;;;###autoload -(defun time-subtract (t1 t2) - "Subtract two time values, T1 minus T2. -Return the difference in the format of a time value." - (with-decoded-time-value ((high low micro pico type t1) - (high2 low2 micro2 pico2 type2 t2)) - (setq high (- high high2) - low (- low low2) - micro (- micro micro2) - pico (- pico pico2) - type (max type type2)) - (when (< pico 0) - (setq micro (1- micro) - pico (+ pico 1000000))) - (when (< micro 0) - (setq low (1- low) - micro (+ micro 1000000))) - (when (< low 0) - (setq high (1- high) - low (+ low 65536))) - (encode-time-value high low micro pico type))) +;; These autoloads do nothing in Emacs 25, where the functions are builtin. +;;;###autoload(autoload 'time-add "time-date") +;;;###autoload(autoload 'time-subtract "time-date") +;;;###autoload(autoload 'time-less-p "time-date") -;;;###autoload -(defun time-add (t1 t2) - "Add two time values T1 and T2. One should represent a time difference." - (with-decoded-time-value ((high low micro pico type t1) - (high2 low2 micro2 pico2 type2 t2)) - (setq high (+ high high2) - low (+ low low2) - micro (+ micro micro2) - pico (+ pico pico2) - type (max type type2)) - (when (>= pico 1000000) - (setq micro (1+ micro) - pico (- pico 1000000))) - (when (>= micro 1000000) - (setq low (1+ low) - micro (- micro 1000000))) - (when (>= low 65536) - (setq high (1+ high) - low (- low 65536))) - (encode-time-value high low micro pico type))) +(eval-and-compile + (when (not (and (fboundp 'time-add) (subrp (symbol-function 'time-add)))) + + (defun time-add (t1 t2) + "Add two time values T1 and T2. One should represent a time difference." + (with-decoded-time-value ((high low micro pico type t1) + (high2 low2 micro2 pico2 type2 t2)) + (setq high (+ high high2) + low (+ low low2) + micro (+ micro micro2) + pico (+ pico pico2) + type (max type type2)) + (when (>= pico 1000000) + (setq micro (1+ micro) + pico (- pico 1000000))) + (when (>= micro 1000000) + (setq low (1+ low) + micro (- micro 1000000))) + (when (>= low 65536) + (setq high (1+ high) + low (- low 65536))) + (encode-time-value high low micro pico type))) + + (defun time-subtract (t1 t2) + "Subtract two time values, T1 minus T2. +Return the difference in the format of a time value." + (with-decoded-time-value ((high low micro pico type t1) + (high2 low2 micro2 pico2 type2 t2)) + (setq high (- high high2) + low (- low low2) + micro (- micro micro2) + pico (- pico pico2) + type (max type type2)) + (when (< pico 0) + (setq micro (1- micro) + pico (+ pico 1000000))) + (when (< micro 0) + (setq low (1- low) + micro (+ micro 1000000))) + (when (< low 0) + (setq high (1- high) + low (+ low 65536))) + (encode-time-value high low micro pico type))) + + (defun time-less-p (t1 t2) + "Return non-nil if time value T1 is earlier than time value T2." + (with-decoded-time-value ((high1 low1 micro1 pico1 type1 t1) + (high2 low2 micro2 pico2 type2 t2)) + (or (< high1 high2) + (and (= high1 high2) + (or (< low1 low2) + (and (= low1 low2) + (or (< micro1 micro2) + (and (= micro1 micro2) + (< pico1 pico2))))))))))) ;;;###autoload (defun date-to-day (date) @@ -265,11 +290,9 @@ DATE1 and DATE2 should be date-time strings." (not (zerop (% year 100)))) (zerop (% year 400)))) -;;;###autoload -(defun time-to-day-in-year (time) - "Return the day number within the year corresponding to TIME." - (let* ((tim (decode-time time)) - (month (nth 4 tim)) +(defun time-date--day-in-year (tim) + "Return the day number within the year corresponding to the decoded time TIM." + (let* ((month (nth 4 tim)) (day (nth 3 tim)) (year (nth 5 tim)) (day-of-year (+ day (* 31 (1- month))))) @@ -279,6 +302,11 @@ DATE1 and DATE2 should be date-time strings." (setq day-of-year (1+ day-of-year)))) day-of-year)) +;;;###autoload +(defun time-to-day-in-year (time) + "Return the day number within the year corresponding to TIME." + (time-date--day-in-year (decode-time time))) + ;;;###autoload (defun time-to-days (time) "The number of days between the Gregorian date 0001-12-31bce and TIME. @@ -286,7 +314,7 @@ TIME should be a time value. The Gregorian date Sunday, December 31, 1bce is imaginary." (let* ((tim (decode-time time)) (year (nth 5 tim))) - (+ (time-to-day-in-year time) ; Days this year + (+ (time-date--day-in-year tim) ; Days this year (* 365 (1- year)) ; + Days in prior years (/ (1- year) 4) ; + Julian leap years (- (/ (1- year) 100)) ; - century years diff --git a/lisp/calendar/timeclock.el b/lisp/calendar/timeclock.el index 2b4db9a7820..fb69357b1b4 100644 --- a/lisp/calendar/timeclock.el +++ b/lisp/calendar/timeclock.el @@ -320,7 +320,7 @@ display (non-nil means on)." (cancel-timer timeclock-update-timer) (setq timeclock-update-timer nil)))) -(defsubst timeclock-time-to-date (time) +(defsubst timeclock-time-to-date (&optional time) "Convert the TIME value to a textual date string." (format-time-string "%Y/%m/%d" time)) @@ -351,7 +351,7 @@ discover the name of the project." (unless (and timeclock-last-event (equal (timeclock-time-to-date (cadr timeclock-last-event)) - (timeclock-time-to-date (current-time)))) + (timeclock-time-to-date))) (let ((workday (or (and (numberp arg) arg) (and arg 0) (and timeclock-get-workday-function @@ -543,7 +543,7 @@ non-nil, the amount returned will be relative to past time worked." If TODAY-ONLY is non-nil, the value returned will be relative only to the time worked today, and not to past time." (timeclock-seconds-to-time - (- (timeclock-time-to-seconds (current-time)) + (- (timeclock-time-to-seconds) (let ((discrep (timeclock-find-discrep))) (if discrep (if today-only @@ -647,14 +647,12 @@ that variable's documentation." (if timeclock-use-elapsed (timeclock-workday-elapsed) (timeclock-workday-remaining (not timeclock-relative)))) - (last-in (equal (car timeclock-last-event) "i"))) + (last-in (equal (car timeclock-last-event) "i")) + (todays-date (timeclock-time-to-date))) (when (and (< remainder 0) (not (and timeclock-day-over - (equal timeclock-day-over - (timeclock-time-to-date - (current-time)))))) - (setq timeclock-day-over - (timeclock-time-to-date (current-time))) + (equal timeclock-day-over todays-date)))) + (setq timeclock-day-over todays-date) (run-hooks 'timeclock-day-over-hook)) (setq timeclock-mode-string (propertize @@ -725,9 +723,8 @@ recorded to disk. If MOMENT is non-nil, use that as the current time. This is only provided for coherency when used by `timeclock-discrepancy'." (if (equal (car timeclock-last-event) "i") - (- (timeclock-time-to-seconds (or moment (current-time))) - (timeclock-time-to-seconds - (cadr timeclock-last-event))) + (- (timeclock-time-to-seconds moment) + (timeclock-time-to-seconds (cadr timeclock-last-event))) timeclock-last-period)) (defsubst timeclock-entry-length (entry) @@ -1156,7 +1153,7 @@ discrepancy, today's discrepancy, and the time worked today." (+ timeclock-last-period timeclock-elapsed))))) (setq timeclock-last-event event timeclock-last-event-workday - (if (equal (timeclock-time-to-date now) last-date-limited) + (if (equal todays-date last-date-limited) last-date-seconds timeclock-workday)) (forward-line)) @@ -1182,7 +1179,7 @@ discrepancy, today's discrepancy, and the time worked today." (defun timeclock-day-base (&optional time) "Given a time within a day, return 0:0:0 within that day. If optional argument TIME is non-nil, use that instead of the current time." - (let ((decoded (decode-time (or time (current-time))))) + (let ((decoded (decode-time time))) (setcar (nthcdr 0 decoded) 0) (setcar (nthcdr 1 decoded) 0) (setcar (nthcdr 2 decoded) 0) diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index 6a857a10fda..3ba263f00e3 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el @@ -5194,6 +5194,15 @@ Overrides `diary-goto-entry'." (add-function :override diary-goto-entry-function #'todo-diary-goto-entry) +(defun todo-revert-buffer (&optional ignore-auto noconfirm) + "Call `revert-buffer', preserving buffer's current modes. +Also preserve category display, if applicable." + (interactive (list (not current-prefix-arg))) + (let ((revert-buffer-function nil)) + (revert-buffer ignore-auto noconfirm 'preserve-modes) + (when (memq major-mode '(todo-mode todo-archive-mode)) + (todo-category-select)))) + (defun todo-desktop-save-buffer (_dir) `((catnum . ,(todo-category-number (todo-current-category))))) @@ -5226,7 +5235,7 @@ Overrides `diary-goto-entry'." (defun todo--user-error-if-marked-done-item () "Signal user error on marked done items. -Helper funtion for editing commands that only apply to (possibly +Helper function for editing commands that apply only to (possibly marked) not done todo items." (save-excursion (save-restriction @@ -6540,6 +6549,7 @@ Added to `window-configuration-change-hook' in Todo mode." (defun todo-modes-set-1 () "Make some settings that apply to multiple Todo modes." (setq-local font-lock-defaults '(todo-font-lock-keywords t)) + (setq-local revert-buffer-function 'todo-revert-buffer) (setq-local tab-width todo-indent-to-here) (setq-local indent-line-function 'todo-indent) (when todo-wrap-lines @@ -6573,23 +6583,24 @@ Added to `window-configuration-change-hook' in Todo mode." "Major mode for displaying, navigating and editing todo lists. \\{todo-mode-map}" - ;; (easy-menu-add todo-menu) - (todo-modes-set-1) - (todo-modes-set-2) - (todo-modes-set-3) - ;; Initialize todo-current-todo-file. - (when (member (file-truename (buffer-file-name)) - (funcall todo-files-function)) - (setq-local todo-current-todo-file (file-truename (buffer-file-name)))) - (setq-local todo-show-done-only nil) - (setq-local todo-categories-with-marks nil) - ;; (add-hook 'find-file-hook 'todo-add-to-buffer-list nil t) - (add-hook 'post-command-hook 'todo-update-buffer-list nil t) - (when todo-show-current-file - (add-hook 'pre-command-hook 'todo-show-current-file nil t)) - (add-hook 'window-configuration-change-hook - 'todo-reset-and-enable-done-separator nil t) - (add-hook 'kill-buffer-hook 'todo-reset-global-current-todo-file nil t)) + (if (called-interactively-p 'any) + (message "Type `M-x todo-show' to enter Todo mode") + (todo-modes-set-1) + (todo-modes-set-2) + (todo-modes-set-3) + ;; Initialize todo-current-todo-file. + (when (member (file-truename (buffer-file-name)) + (funcall todo-files-function)) + (setq-local todo-current-todo-file (file-truename (buffer-file-name)))) + (setq-local todo-show-done-only nil) + (setq-local todo-categories-with-marks nil) + ;; (add-hook 'find-file-hook 'todo-add-to-buffer-list nil t) + (add-hook 'post-command-hook 'todo-update-buffer-list nil t) + (when todo-show-current-file + (add-hook 'pre-command-hook 'todo-show-current-file nil t)) + (add-hook 'window-configuration-change-hook + 'todo-reset-and-enable-done-separator nil t) + (add-hook 'kill-buffer-hook 'todo-reset-global-current-todo-file nil t))) (put 'todo-archive-mode 'mode-class 'special) diff --git a/lisp/cedet/.gitignore b/lisp/cedet/.gitignore deleted file mode 100644 index 976586eb53b..00000000000 --- a/lisp/cedet/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -## Generated grammar files. -semantic/bovine/c-by.el -semantic/bovine/make-by.el -semantic/bovine/scm-by.el -semantic/wisent/javat-wy.el -semantic/wisent/js-wy.el -semantic/wisent/python-wy.el -srecode/srt-wy.el diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 820e75260a9..a43e94c5686 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,8 +1,313 @@ +2014-12-22 Stefan Monnier + + * srecode/srt-mode.el (srecode-macro-help): Use eieio-class-children. + + * semantic/db.el (semanticdb-cache-get): Prefer eieio-object-class over + eieio--object-class. + + * semantic/db-el.el (semanticdb-elisp-sym->tag): Prefer find-class over + class-v. + + * ede/generic.el (ede-find-target): Prefer \` and \' to ^ and $. + +2014-12-14 Dmitry Gutov + + * semantic.el (semantic-analyze-completion-at-point-function) + (semantic-analyze-notc-completion-at-point-function) + (semantic-analyze-nolongprefix-completion-at-point-function): + Do nothing if the current buffer is not using Semantic (bug#19077). + +2014-12-08 Matt Curtis (tiny change) + + * pulse.el (pulse-momentary-highlight-one-line): Respect the POINT + argument (bug#17260). + +2014-11-09 Eric Ludlam + + * semantic.el (semantic-mode): Add/remove 3 + completion-at-point-functions. + (semantic-completion-at-point-function): Remove. + (semantic-analyze-completion-at-point-function) + (semantic-analyze-notc-completion-at-point-function) + (semantic-analyze-nolongprefix-completion-at-point-function): + New completion at point functions. + + * semantic/doc.el (semantic-doc-snarf-comment-for-tag): Fix case + when comment-end is empty string. + + * semantic/debug.el + (semantic-debug-parser-debugger-source): New buffer local + variable. + (semantic-debug-interface): Add 'nil' initform to overlays. + (semantic-debug-mode): Remove read-only tags from buffers on exit. + (semantic-debug): Add autoload cookie. Force the language + specific debugger to load. + + * semantic/db.el (generic::semanticdb-full-filename): New generic + method to allow this method to be used on buffer names via an + associated database. + + * semantic/symref.el + (semantic-symref-cleanup-recent-buffers-fcn): When cleaning up + buffers, don't clean up buffers that are being used (i.e., in a + window) when the hook fires. + (semantic-symref-recently-opened-buffers): New tracking variable. + (semantic-symref-cleanup-recent-buffers-fcn): New hook fcn. + (semantic-symref-result-get-tags): Move logic into + `semantic-symref-hit-to-tag-via-buffer', and cleanup buffers via + the symref cleanup function in post-command-hook. + (semantic-symref-hit-to-tag-via-buffer): Logic that used to be + from above. + (semantic-symref-hit-to-tag-via-db): New. + + * semantic/analyze.el: + (semantic-analyze-find-tag-sequence-default): If first entry in + sequence is the only one, apply tagclass filter. + (semantic-analyze-princ-sequence): Show slot even if empty. + (semantic-analyze-find-tag-sequence) + (semantic-analyze-find-tag-sequence-default): Add flags argument. + Add support for forcing the final entry of the sequence to be of + class variable. + (semantic-analyze-find-tag): Fix bug where input class filter was + ignored if there was a typecache match. + (semantic-analyze-current-context-default): For assignments, the + assignee now must be of class variable. + + * semantic/analyze/complete.el + (semantic-analyze-possible-completions-default): + Add 'no-longprefix' flag. When used, the prefix and prefixtypes are + shortened to just the last symbol. + + * semantic/bovine/c.el (semantic-c-do-lex-if): Catch errors from + 'hideif', and push to the parser warning stack. + (semantic-lex-cpp-define): When a comment is at the end of a + macro, do not subtract an extra 1 from the found position. + Fixes bug with: #define foo (a)/**/ adding an extra ')' to the stream. + + * semantic/bovine/scm.el (semantic-lex-scheme-symbol): + Allow symbols to be one char long. + + * semantic/bovine/grammar.el + (bovine-grammar-calculate-source-on-path): New. + (bovine-grammar-setupcode-builder): Use it. + + * ede.el (ede/detect): New require. + (ede-version): Bump version + (ede-initialize-state-current-buffer): Use new + `ede-detect-directory-for-project' to detect projects first + instead of depending on currente dir only. + (ede-delete-project-from-global-list): New. + (ede-flush-deleted-projects): Use above. + (ede-check-project-query-fcn): New variable + (ede-check-project-directory): Use above when querying the user. + Added to support unit testing of this security measure. + (ede-initialize-state-current-buffer): + Use `ede-directory-project-cons' instead of the -detect- fcn to take + advantage of the cache. Pass found project into + `ede-load-project-file'. + (ede-load-project-file): Add new input DETECTIN. + (ede-rescan-toplevel): Get the proj root a better way. + (ede-load-project-file): Return the loaded object. When asking + for existing project, ask for an exact match. + (ede-initialize-state-current-buffer): Simplify some conditional + logic. + (ede-load-project-file): Simplify conditional logic. + (ede-global-list-sanity-check): New Testing fcn. + (ede-parent-project): Replace old code with call to faster + `ede-find-subproject-for-directory'. + (ede-load-project-file): + Use `ede-directory-get-toplevel-open-project' instead of above + deleted. Rename "pfc" to "autoloader". + Use `ede-directory-project-cons' to detect a project. Delete no + project found case where we search up the tree. + + * ede/auto.el (ede-project-autoload): Fix doc typo. + Add `:root-only' slot. + (ede-auto-load-project): Doc update: warn to not use. + (ede-dir-to-projectfile): Delete. + (ede-project-autoload-dirmatch): Add subdir-only slot. + Make configdatastash unbound by default. + (ede-do-dirmatch): If subdir-only is true, then don't allow exact + matches. Account for configdatastash as unbound. Assume value of + nil means no tool installed. Make sure loaded path matches from + beginning. Stash the regexp, not the raw string. + (ede-project-class-files): Note that makefile and automake are not + root only. + (ede-auto-detect-in-dir): New (for use with `ede/detect.el'). + (ede-project-dirmatch-p): Delete. + (ede-project-root-directory): Remove body, return nil. + (ede-project-autoload): :proj-root-dirmatch can be null & doc fix. + (ede-auto-detect-in-dir): If there is no :proj-file, check for a + dirmatch. + + * ede/generic.el (ede/config): Replace require of ede. + (ede-generic-new-autoloader): Generic projects are now safe by + default. Note this is NOT a root only project. + (project-rescan, ede-project-root, ede-generic-target-java) + (ede-java-classpath, ede-find-subproject-for-directory): New. + (ede-enable-generic-projects): Add new autoloaders for git, bzr, + hg, sv, CVS. + (ede-generic-vc-project) + (ede-generic-vc-project::ede-generic-setup-configuration): New. + (ede-generic-config): Remove slots: c-include-path, + c-preprocessor-table, c-preprocessor-files, classpath, + build-command, debug-command, run command. Inherit from + ede-extra-config-build, ede-extra-config-program. + Make run-command :value match :custom so only strings are accepted. + Add some more :group slot specifiers. + (ede-generic-project): Add mixins `ede-project-with-config-c' and + `ede-project-with-config-java'. Inherit from + `ede-project-with-config-build', + `ede-project-with-config-program'. Subclass + `ede-project-with-config'. Remove duplication from new baseclass. + (ede-generic-target): Inherit from `ede-target-with-config-build', + `ede-target-with-config-program'. Subclass `ede-target-with-config'. + (ede-generic-target-c-cpp): Add mixin `ede-target-with-config-c'. + (ede-generic-target-java): Add mixin `ede-target-with-config-java'. + (ede-preprocessor-map, ede-system-include-path) + (edejava-classpath): Delete, moved to config.el. + (project-compile-project, project-compile-target) + (project-debug-target, project-run-target): Delete. + (ede-generic-get-configuration, ede-generic-setup-configuration) + (ede-commit-project, project-rescan) + (ede-generic-project::ede-customize) + (ede-generic-target::ede-customize) + (ede-generic-config::eieio-done-customizing) + (ede-generic-config::ede-commit): Delete. Subsumed by new + baseclass. + (ede-preprocessor-map, ede-system-include-path) + (project-debug-target, project-run-target): Call new + `ede-config-get-configuration' instead of old version. + (ede-generic-load): Do not add to global list here. + + * ede/files.el (ede-find-project-root) + (ede-files-find-existing) + (ede-directory-get-toplevel-open-project-new): Delete. + (ede-project-root-directory): Use `ede-project-root' first. + (ede-project-directory-remove-hash) + (ede--directory-project-from-hash) + (ede--directory-project-add-description-to-hash): Rename to make + internal symbols (via --). Expand input dir first. + (ede-directory-project-p): Doc fix (note obsoleted.) + (ede-toplevel-project-or-nil): Alias to `ede-toplevel-project'. + (ede-toplevel-project): Doc Fix. Delete commented out old code. + Simplify returning result from ede-detect-directory-for-project. + (ede-directory-get-open-project): Support when + inodes are disabled. If disabled to str compare on root project. + (ede-directory-get-toplevel-open-project): Enabled nested + projects. When doing directory name matching, save the 'short' + version of an answer (non-exact match) and eventually select the + shortest answer at the end. Expand the filename of tested + projects. Better support for when inodes are disabled. + Add 'exact' option so that it will return a project that is an exact + match. + (ede-find-subproject-for-directory): Small optimization to run + `file-truename' less often. + (ede-directory-project-p): Move content, then use + `ede-directory-project-cons'. + Use `ede-detect-directory-for-project', replacing old detection loop. + (ede-directory-project-cons): New, from above. + (ede-toplevel-project): Toss old scanning code. + Use `ede-detect-directory-for-project' instead. + (ede-directory-get-toplevel-open-project-new): New. + + * ede/linux.el (ede-linux-project-root): Delete. + (ede-project-autoload): Remove dirmatch entry - it is no longer + needed. + + * lisp/cedet/ede/proj.el (project-rescan): Replace direct + manipulation of `ede-projects' with equivalent and better + functions. + (ede-proj-load): Replace call to test if dir has project to + explicity ask filesystem if Project.ede is there. + + * ede/config.el: + * ede/detect.el: New files. + + * ede/project-am.el (project-run-target): Add "./" to program to + run for systems where '.' isn't in PATH. + (project-am-load): Remove old code regarding `ede-constructing'. + Just read in the makefiles. + + * ede/linux.el (ede-linux-load): Do not add to global list here. + Don't check for existing anymore. + (project-rescan): New. + (ede-linux-project-list, ede-linux-file-existing): Delete. + (ede-linux-project-root): Delete body. Need symbol for autoloads + for now. + (ede-linux-project): No longer instance tracker. + (ede-project-autoload): Don't provide :proj-root + + * ede/emacs.el (ede-emacs-load): Do not add project to global list + here. Don't look for existing first. + (ede-project-autoload): Remove dirmatch entry - it is no longer + needed. Don't provide proj-root anymore. + (ede-emacs-project-list, ede-emacs-file-existing): Delete. + (ede-emacs-project-root): Remove body (need symbol for loaddefs + still). + (ede-emacs-project): Do not instance track anymore. + + * ede/cpp-root.el (initialize-instance): Remove commented code. + Add note about why we are adding the project to the master list. + Make sure if we are replacing a prev version, remove from global + list. + (ede-cpp-root-file-existing) + (ede-cpp-root-project-file-for-dir) + (ede-cpp-root-count, ede-cpp-root-project-root, ede-cpp-root-load) + (ede-project-autoload cpp-root): Delete. + (ede-project-root-directory): Return :directory instead of + calculating from :file. + (project-rescan): New. + + * ede/base.el (ede-toplevel): Only use buffer cached value if + subproj not passed in. + + * srecode/java.el (srecode-semantic-handle-:java): Fix case when + an EDE project didn't support java paths. + +2014-11-09 David Engster + + * lisp/cedet/ede/proj-elisp.el + (ede-proj-target-elisp::ede-proj-tweak-autoconf): Kill buffer + after saving modified elisp-comp script, as to avoid "file has + changed on disk; really edit the buffer" questions when script + gets rewritten. + +2014-10-29 Paul Eggert + + Simplify use of current-time and friends. + * srecode/args.el (srecode-semantic-handle-:time): + Don't call current-time twice to get the current time stamp, + as this can lead to inconsistent results. + +2014-10-24 Stefan Monnier + + * semantic/complete.el: Require semantic/db-find. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-15 Stefan Monnier + + * semantic/wisent/comp.el (wisent-defcontext): Move declarations + outside of eval-when-compile. Use `declare'. + (wisent-with-context): Add `defvar' declarations in case this macro is + used in a file compiled with lexical-binding. + (wisent-semantic-action-expand-body): Avoid add-to-list on local var. + +2014-09-22 David Engster + + * ede/emacs.el (ede-emacs-version): Do not call 'egrep' to + determine Emacs version (it was dead code anyway). Make sure that + configure.ac or configure.in exist. (Bug#18476) + 2014-06-19 Stefan Monnier * semantic/ia.el (semantic-ia-complete-symbol-menu): Use posn-at-point instead of senator-completion-menu-point-as-event; un-comment, tho keep - the "no smart completion" fallback commented since it still doesn't work. + the "no smart completion" fallback commented since it still doesn't + work. 2014-05-01 Glenn Morris @@ -65,8 +370,8 @@ structure tags are not analyzed correctly. Also, always search the extended miniscope even when not dealing with types. - * semantic/ctxt.el (semantic-get-local-variables-default): Also - try to parse local variables for buffers which are currently + * semantic/ctxt.el (semantic-get-local-variables-default): + Also try to parse local variables for buffers which are currently marked as unparseable. Otherwise, it is often impossible to complete local variables. @@ -107,8 +412,8 @@ (semantic-cpp-lexer): Use new `semantic-lex-spp-paren-or-list'. * semantic/bovine/gcc.el (semantic-gcc-setup): Add 'features.h' to - the list of files whose preprocessor symbols are included. This - pulls in things like __USE_POSIX and similar. + the list of files whose preprocessor symbols are included. + This pulls in things like __USE_POSIX and similar. * semantic/format.el (semantic-format-tag-prototype-default): Display default values if available. @@ -117,11 +422,11 @@ (semantic-analyze-refs-proto): Add 'default-value' as ignorable in call to `semantic-tag-similar-p'. - * semantic/db-mode.el (semanticdb-semantic-init-hook-fcn): Always - set buffer for `semanticdb-current-table'. + * semantic/db-mode.el (semanticdb-semantic-init-hook-fcn): + Always set buffer for `semanticdb-current-table'. - * semantic/db.el (semanticdb-table::semanticdb-refresh-table): The - previous change turned up a bug in this method. Since the current + * semantic/db.el (semanticdb-table::semanticdb-refresh-table): + The previous change turned up a bug in this method. Since the current table now correctly has a buffer set, the first clause in the `cond' would be taken, but there was a `save-excursion' missing. @@ -145,8 +450,8 @@ impossible to find project includes. * semantic/decorate/include.el - (semantic-decoration-on-includes-highlight-default): Remove - 'unloaded' from throttle when decorating includes, otherwise all + (semantic-decoration-on-includes-highlight-default): + Remove 'unloaded' from throttle when decorating includes, otherwise all would be loaded. Rename 'table' to 'currenttable' to make things clearer. @@ -161,7 +466,7 @@ architecture). (ede-linux--get-build-directory, ede-linux--get-archs) (ede-linux--detect-architecture, ede-linux--get-architecture) - (ede-linux--include-path): Added function to detect Linux-specific + (ede-linux--include-path): Add function to detect Linux-specific information. (ede-linux-load): Set new Linux-specific information when creating a project. @@ -179,8 +484,8 @@ * ede/generic.el (project-run-target): Remove incorrect require. - * semantic/format.el (semantic-format-tag-prototype-default): Use - concat only for strings. + * semantic/format.el (semantic-format-tag-prototype-default): + Use concat only for strings. 2013-11-30 Glenn Morris diff --git a/lisp/cedet/cedet-global.el b/lisp/cedet/cedet-global.el index ee1b5ce7cc8..494c41b0efe 100644 --- a/lisp/cedet/cedet-global.el +++ b/lisp/cedet/cedet-global.el @@ -93,6 +93,13 @@ SCOPE is the scope of the search, such as 'project or 'subdirs." (apply 'call-process cedet-global-gtags-command nil b nil flags) + + ;; Check for warnings. + (with-current-buffer b + (goto-char (point-min)) + (when (re-search-forward "Error\\|Warning" nil t) + (error "Output:\n%S" (buffer-string)))) + b)) (defun cedet-gnu-global-expand-filename (filename) @@ -181,8 +188,10 @@ If a database already exists, then just update it." (let ((default-directory dir)) (cedet-gnu-global-gtags-call (when root - '("-i");; Incremental update flag. - ))))) + '("-u");; Incremental update flag. + )) + ) + )) (provide 'cedet-global) diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el index a9a53d776e2..55dff1ac441 100644 --- a/lisp/cedet/ede.el +++ b/lisp/cedet/ede.el @@ -45,6 +45,7 @@ (require 'ede/source) (require 'ede/base) (require 'ede/auto) +(require 'ede/detect) (eval-and-compile (load "ede/loaddefs" nil 'nomessage)) @@ -61,7 +62,7 @@ (declare-function ede-up-directory "ede/files") (declare-function semantic-lex-make-spp-table "semantic/lex-spp") -(defconst ede-version "1.2" +(defconst ede-version "2.0" "Current version of the Emacs EDE.") ;;; Code: @@ -500,42 +501,50 @@ Sets buffer local variables for EDE." ;; Init the buffer. (let* ((ROOT nil) (proj (ede-directory-get-open-project default-directory - 'ROOT)) - (projauto nil)) + 'ROOT))) - (when (or proj ROOT - ;; If there is no open project, look up the project - ;; autoloader to see if we should initialize. - (setq projauto (ede-directory-project-p default-directory t))) + (when (not proj) + ;; If there is no open project, look up the project + ;; autoloader to see if we should initialize. + (let ((projdetect (ede-directory-project-cons default-directory))) - (when (and (not proj) projauto) + (when projdetect + ;; No project was loaded, but we have a project description + ;; object. This means that we try to load it. + ;; + ;; Before loading, we need to check if it is a safe + ;; project to load before requesting it to be loaded. - ;; No project was loaded, but we have a project description - ;; object. This means that we can check if it is a safe - ;; project to load before requesting it to be loaded. + (when (or (oref (cdr projdetect) safe-p) + ;; The project style is not safe, so check if it is + ;; in `ede-project-directories'. + (let ((top (car projdetect))) + (ede-directory-safe-p top))) - (when (or (oref projauto safe-p) - ;; The project style is not safe, so check if it is - ;; in `ede-project-directories'. - (let ((top (ede-toplevel-project default-directory))) - (ede-directory-safe-p top))) + ;; The project is safe, so load it in. + (setq proj (ede-load-project-file default-directory projdetect 'ROOT)))))) - ;; The project is safe, so load it in. - (setq proj (ede-load-project-file default-directory 'ROOT)))) + ;; If PROJ is now loaded in, we can initialize our buffer to it. + (when proj - ;; Only initialize EDE state in this buffer if we found a project. - (when proj - - (setq ede-object (ede-buffer-object (current-buffer) + ;; ede-object represents the specific EDE related class that best + ;; represents this buffer. It could be a project (for a project file) + ;; or a target. Also save off ede-object-project, the project that + ;; the buffer belongs to for the case where ede-object is a target. + (setq ede-object (ede-buffer-object (current-buffer) 'ede-object-project)) - (setq ede-object-root-project - (or ROOT (ede-project-root ede-object-project))) + ;; Every project has a root. It might be the same as ede-object. + ;; Cache that also as the root is a very common thing to need. + (setq ede-object-root-project + (or ROOT (ede-project-root ede-object-project))) - (if (and (not ede-object) ede-object-project) - (ede-auto-add-to-target)) + ;; Check to see if we want to add this buffer to a target. + (if (and (not ede-object) ede-object-project) + (ede-auto-add-to-target)) - (ede-apply-target-options))))) + ;; Apply any options from the found target. + (ede-apply-target-options)))) (defun ede-reset-all-buffers () "Reset all the buffers due to change in EDE." @@ -679,6 +688,7 @@ Otherwise, create a new project for DIR." (if (ede-check-project-directory dir) (progn ;; Load the project in DIR, or make one. + ;; @TODO - IS THIS REAL? (ede-load-project-file dir) ;; Check if we loaded anything on the previous line. @@ -700,6 +710,10 @@ Otherwise, create a new project for DIR." (error "%s is not an allowed project directory in `ede-project-directories'" dir))) +(defvar ede-check-project-query-fcn 'y-or-n-p + "Function used to ask the user if they want to permit a project to load. +This is abstracted out so that tests can answer this question.") + (defun ede-check-project-directory (dir) "Check if DIR should be in `ede-project-directories'. If it is not, try asking the user if it should be added; if so, @@ -712,9 +726,10 @@ Return nil if DIR should not be in `ede-project-directories'." ;; If `ede-project-directories' is a list, maybe add it. (when (listp ede-project-directories) (or (member dir ede-project-directories) - (when (y-or-n-p (format "`%s' is not listed in `ede-project-directories'. + (when (funcall ede-check-project-query-fcn + (format "`%s' is not listed in `ede-project-directories'. Add it to the list of allowed project directories? " - dir)) + dir)) (push dir ede-project-directories) ;; If possible, save `ede-project-directories'. (if (or custom-file user-init-file) @@ -782,7 +797,9 @@ Optional argument NAME is the name to give this project." (error "Unknown file name specifier %S" pf))) - :targets nil))) + :targets nil) + + )) (inits (oref obj initializers))) ;; Force the name to match for new objects. (eieio-object-set-name-string nobj (oref nobj :name)) @@ -821,16 +838,17 @@ ARGS are additional arguments to pass to method SYM." (defun ede-rescan-toplevel () "Rescan all project files." (interactive) - (if (not (ede-directory-get-open-project default-directory)) - ;; This directory isn't open. Can't rescan. - (error "Attempt to rescan a project that isn't open") + (when (not (ede-toplevel)) + ;; This directory isn't open. Can't rescan. + (error "Attempt to rescan a project that isn't open")) - ;; Continue - (let ((toppath (ede-toplevel-project default-directory)) - (ede-deep-rescan t)) + ;; Continue + (let ((root (ede-toplevel)) + (ede-deep-rescan t)) - (project-rescan (ede-load-project-file toppath)) - (ede-reset-all-buffers)))) + (project-rescan root) + (ede-reset-all-buffers) + )) (defun ede-new-target (&rest args) "Create a new target specific to this type of project file. @@ -918,6 +936,8 @@ Optional argument FORCE forces the file to be removed without asking." (interactive) (ede-invoke-method 'project-edit-file-target)) +;;; Compilation / Debug / Run +;; (defun ede-compile-project () "Compile the current project." (interactive) @@ -1063,6 +1083,10 @@ On success, return the added project." (add-to-list 'ede-projects proj) proj) +(defun ede-delete-project-from-global-list (proj) + "Remove project PROJ from the master list of projects." + (setq ede-projects (remove proj ede-projects))) + (defun ede-flush-deleted-projects () "Scan the projects list for projects which no longer exist. Flush the dead projects from the project cache." @@ -1072,80 +1096,83 @@ Flush the dead projects from the project cache." (when (not (file-exists-p (oref P :file))) (add-to-list 'dead P))) (dolist (D dead) - (setq ede-projects (remove D ede-projects))) + (ede-delete-project-from-global-list D)) )) -(defun ede-load-project-file (dir &optional rootreturn) +(defun ede-global-list-sanity-check () + "Perform a sanity check to make sure there are no duplicate projects." + (interactive) + (let ((scanned nil)) + (dolist (P ede-projects) + (if (member (oref P :directory) scanned) + (error "Duplicate project (by dir) found in %s!" (oref P :directory)) + (push (oref P :directory) scanned))) + (unless ede--disable-inode + (setq scanned nil) + (dolist (P ede-projects) + (if (member (ede--project-inode P) scanned) + (error "Duplicate project (by inode) found in %s!" (ede--project-inode P)) + (push (ede--project-inode P) scanned)))) + (message "EDE by directory %sis still sane." (if ede--disable-inode "" "& inode ")))) + +(defun ede-load-project-file (dir &optional detectin rootreturn) "Project file independent way to read a project in from DIR. +Optional DETECTIN is an autoload cons from `ede-detect-directory-for-project' +which can be passed in to save time. Optional ROOTRETURN will return the root project for DIR." - ;; Only load if something new is going on. Flush the dirhash. - (ede-project-directory-remove-hash dir) - ;; Do the load - ;;(message "EDE LOAD : %S" file) - (let* ((file dir) - (path (file-name-as-directory (expand-file-name dir))) - (pfc (ede-directory-project-p path)) - (toppath nil) - (o nil)) - (cond - ((not pfc) - ;; @TODO - Do we really need to scan? Is this a waste of time? - ;; Scan upward for a the next project file style. - (let ((p path)) - (while (and p (not (ede-directory-project-p p))) - (setq p (ede-up-directory p))) - (if p (ede-load-project-file p) - nil) - ;; recomment as we go - ;;nil - )) - ;; Do nothing if we are building an EDE project already. - (ede-constructing - nil) - ;; Load in the project in question. - (t - (setq toppath (ede-toplevel-project path)) - ;; We found the top-most directory. Check to see if we already - ;; have an object defining its project. - (setq pfc (ede-directory-project-p toppath t)) + ;; Don't do anything if we are in the process of + ;; constructing an EDE object. + ;; + ;; Prevent recursion. + (unless ede-constructing - ;; See if it's been loaded before - (setq o (object-assoc (ede-dir-to-projectfile pfc toppath) 'file - ede-projects)) + ;; Only load if something new is going on. Flush the dirhash. + (ede-project-directory-remove-hash dir) - ;; If not open yet, load it. - (unless o - (let ((ede-constructing pfc)) - (setq o (ede-auto-load-project pfc toppath)))) + ;; Do the load + ;;(message "EDE LOAD : %S" file) + (let* ((file dir) + (path (file-name-as-directory (expand-file-name dir))) + (detect (or detectin (ede-directory-project-cons path))) + (autoloader nil) + (toppath nil) + (o nil)) - ;; Return the found root project. - (when rootreturn (set rootreturn o)) + (when detect + (setq toppath (car detect)) + (setq autoloader (cdr detect)) - (let (tocheck found) - ;; Now find the project file belonging to FILE! - (setq tocheck (list o)) - (setq file (ede-dir-to-projectfile pfc (expand-file-name path))) - (while (and tocheck (not found)) - (let ((newbits nil)) - (when (car tocheck) - (if (string= file (oref (car tocheck) file)) - (setq found (car tocheck))) - (setq newbits (oref (car tocheck) subproj))) - (setq tocheck - (append (cdr tocheck) newbits)))) - (if (not found) - (message "No project for %s, but passes project-p test" file) - ;; Now that the file has been reset inside the project object, do - ;; the cache maintenance. - (setq ede-project-cache-files - (delete (oref found file) ede-project-cache-files))) - found))))) + ;; See if it's been loaded before. Use exact matching since + ;; know that 'toppath' is the root of the project. + (setq o (ede-directory-get-toplevel-open-project toppath 'exact)) + + ;; If not open yet, load it. + (unless o + ;; NOTE: We set ede-constructing to the autoloader we are using. + ;; Some project types have one class, but many autoloaders + ;; and this is how we tell the instantiation which kind of + ;; project to make. + (let ((ede-constructing autoloader)) + + ;; This is the only place `ede-auto-load-project' should be called. + + (setq o (ede-auto-load-project autoloader toppath)))) + + ;; Return the found root project. + (when rootreturn (set rootreturn o)) + + ;; The project has been found (in the global list) or loaded from + ;; disk (via autoloader.) We can now search for the project asked + ;; for from DIR in the sub-list. + (ede-find-subproject-for-directory o path) + + ;; Return the project. + o)))) ;;; PROJECT ASSOCIATIONS ;; ;; Moving between relative projects. Associating between buffers and ;; projects. - (defun ede-parent-project (&optional obj) "Return the project belonging to the parent directory. Return nil if there is no previous directory. diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el index 337cd77b4e6..63e0504689f 100644 --- a/lisp/cedet/ede/auto.el +++ b/lisp/cedet/ede/auto.el @@ -47,8 +47,13 @@ :initform nil :documentation "An index into the match-data of `configregex'.") - (configdatastash :initform nil - :documentation + (subdir-only :initarg :subdir-only + :initform t + :documentation + "Non-nil means an exact match to the found directory is a non-match. +This implies projects exist only in subdirectories of the configuration path. +If `:subdir-only' is nil, then the directory from the configuration file is the project.") + (configdatastash :documentation "Save discovered match string.") ) "Support complex matches for projects that live in named directories. @@ -80,8 +85,11 @@ into memory.") ;; If the thing to match is stored in a config file. ((stringp fc) (when (file-exists-p fc) - (let ((matchstring (oref dirmatch configdatastash))) - (unless matchstring + (let ((matchstring + (if (slot-boundp dirmatch 'configdatastash) + (oref dirmatch configdatastash) + nil))) + (when (and (not matchstring) (not (slot-boundp dirmatch 'configdatastash))) (save-current-buffer (let* ((buff (get-file-buffer fc)) (readbuff @@ -94,12 +102,27 @@ into memory.") (setq matchstring (match-string (or (oref dirmatch configregexidx) 0))))) (if (not buff) (kill-buffer readbuff)))) - ;; Save what we find in our cache. - (oset dirmatch configdatastash matchstring)) + (when matchstring + ;; If this dirmatch only finds subdirs of matchstring, then + ;; force matchstring to be a directory. + (when (oref dirmatch subdir-only) + (setq matchstring (file-name-as-directory matchstring))) + ;; Convert matchstring to a regexp + (setq matchstring (concat "^" (regexp-quote matchstring))) + ;; Stash it for later. + (oset dirmatch configdatastash matchstring)) + ;; Debug + ;;(message "Stashing config data for dirmatch %S as %S" (eieio-object-name dirmatch) matchstring) + ) + ;;(message "dirmatch %s against %s" matchstring (expand-file-name file)) ;; Match against our discovered string - (and matchstring (string-match (regexp-quote matchstring) file)) + (setq file (file-name-as-directory (expand-file-name file))) + (and matchstring (string-match matchstring (expand-file-name file)) + (or (not (oref dirmatch subdir-only)) + (not (= (match-end 0) (length file)))) + ) ))) - + ;; Add new matches here ;; ((stringp somenewslot ...) ;; ) @@ -119,13 +142,21 @@ into memory.") :documentation "The lisp file belonging to this class.") (proj-file :initarg :proj-file :documentation "Name of a project file of this type.") + (root-only :initarg :root-only + :initform t ;; Default - majority case. + :documentation + "Non-nil if project detection only finds proj-file @ project root.") (proj-root-dirmatch :initarg :proj-root-dirmatch - :initform "" - :type (or string ede-project-autoload-dirmatch) + :initform nil + :type (or null string ede-project-autoload-dirmatch) :documentation "To avoid loading a project, check if the directory matches this. -For projects that use directory name matches, a function would load that project. -Specifying this matcher will allow EDE to check without loading the project.") +Specifying this matcher object will allow EDE to perform a complex +check without loading the project. + +NOTE: If you use dirmatch, you may need to set :root-only to `nil'. +While it may be a root based project, all subdirs will happen to return +true for the dirmatch, so for scanning purposes, set it to `nil'.") (proj-root :initarg :proj-root :type function :documentation "A function symbol to call for the project root. @@ -168,12 +199,14 @@ type is required and the load function used.") (ede-project-autoload "edeproject-makefile" :name "Make" :file 'ede/proj :proj-file "Project.ede" + :root-only nil :load-type 'ede-proj-load :class-sym 'ede-proj-project :safe-p nil) (ede-project-autoload "edeproject-automake" :name "Automake" :file 'ede/proj :proj-file "Project.ede" + :root-only nil :initializers '(:makefile-type Makefile.am) :load-type 'ede-proj-load :class-sym 'ede-proj-project @@ -181,6 +214,7 @@ type is required and the load function used.") (ede-project-autoload "automake" :name "automake" :file 'ede/project-am :proj-file "Makefile.am" + :root-only nil :load-type 'project-am-load :class-sym 'project-am-makefile :new-p nil @@ -233,97 +267,33 @@ added. Possible values are: ;; Splice into the list. (setcdr prev (cons projauto next)))))))) -;;; EDE project-autoload methods +;;; Project Autoload Methods ;; -(defmethod ede-project-root ((this ede-project-autoload)) - "If a project knows its root, return it here. -Allows for one-project-object-for-a-tree type systems." - nil) -(defun ede-project-dirmatch-p (file dirmatch) - "Return non-nil if FILE matches DIRMATCH. -DIRMATCH could be nil (no match), a string (regexp match), -or an `ede-project-autoload-dirmatch' object." - ;; If dirmatch is a string, then we simply match it against - ;; the file we are testing. - (if (stringp dirmatch) - (string-match dirmatch file) - ;; if dirmatch is instead a dirmatch object, we test against - ;; that object instead. - (if (ede-project-autoload-dirmatch-p dirmatch) - (ede-do-dirmatch dirmatch file) - (error "Unknown project directory match type.")) - )) - -(defmethod ede-project-root-directory ((this ede-project-autoload) - &optional file) - "If a project knows its root, return it here. -Allows for one-project-object-for-a-tree type systems. -Optional FILE is the file to test. If there is no FILE, use -the current buffer." - (when (not file) - (setq file default-directory)) - (when (slot-boundp this :proj-root) - (let ((dirmatch (oref this proj-root-dirmatch)) - (rootfcn (oref this proj-root)) - (callfcn t)) - (when rootfcn - (if ;; If the dirmatch (an object) is not installed, then we - ;; always skip doing a match. - (and (ede-project-autoload-dirmatch-p dirmatch) - (not (ede-dirmatch-installed dirmatch))) - (setq callfcn nil) - ;; Other types of dirmatch: - (when (and - ;; If the Emacs Lisp file handling this project hasn't - ;; been loaded, we will use the quick dirmatch feature. - (not (featurep (oref this file))) - ;; If the dirmatch is an empty string, then we always - ;; skip doing a match. - (not (and (stringp dirmatch) (string= dirmatch ""))) - ) - ;; If this file DOES NOT match dirmatch, we set the callfcn - ;; to nil, meaning don't load the ede support file for this - ;; type of project. If it does match, we will load the file - ;; and use a more accurate programmatic match from there. - (unless (ede-project-dirmatch-p file dirmatch) - (setq callfcn nil)))) - ;; Call into the project support file for a match. - (when callfcn - (condition-case nil - (funcall rootfcn file) - (error - (funcall rootfcn)))) - )))) - -(defmethod ede-dir-to-projectfile ((this ede-project-autoload) dir) - "Return a full file name of project THIS found in DIR. -Return nil if the project file does not exist." +;; New method using detect.el +(defmethod ede-auto-detect-in-dir ((this ede-project-autoload) dir) + "Return non-nil if THIS project autoload is found in DIR." (let* ((d (file-name-as-directory dir)) - (root (ede-project-root-directory this d)) (pf (oref this proj-file)) - (dm (oref this proj-root-dirmatch)) - (f (cond ((stringp pf) - (expand-file-name pf (or root d))) - ((and (symbolp pf) (fboundp pf)) - ;; If there is a symbol to call, lets make extra - ;; sure we really can call it without loading in - ;; other EDE projects. This happens if the file is - ;; already loaded, or if there is a dirmatch, but - ;; root is empty. - (when (and (featurep (oref this file)) - (or (not (stringp dm)) - (not (string= dm ""))) - root) - (funcall pf (or root d)))))) - ) - (when (and f (file-exists-p f)) - f))) + (f (when (stringp pf) (expand-file-name pf d)))) + (if f + (and f (file-exists-p f)) + (let ((dirmatch (oref this proj-root-dirmatch))) + (cond + ((stringp dirmatch) + nil) ; <- do something here - maybe obsolete the option? + ((ede-project-autoload-dirmatch-p dirmatch) + (if (and dirmatch (ede-dirmatch-installed dirmatch)) + (ede-do-dirmatch dirmatch dir) + ;(message "Dirmatch %S not installed." dirmatch) + ))))))) (defmethod ede-auto-load-project ((this ede-project-autoload) dir) "Load in the project associated with THIS project autoload description. THIS project description should be valid for DIR, where the project will -be loaded." +be loaded. + +NOTE: Do not call this - it should only be called from `ede-load-project-file'." ;; Last line of defense: don't load unsafe projects. (when (not (or (oref this :safe-p) (ede-directory-safe-p dir))) @@ -332,7 +302,27 @@ be loaded." (let ((o (funcall (oref this load-type) dir))) (when (not o) (error "Project type error: :load-type failed to create a project")) - (ede-add-project-to-global-list o))) + (ede-add-project-to-global-list o) + ;; @TODO - Add to hash over at `ede-inode-directory-hash'. + )) + + + + + + +;;; -------- Old Methods +;; See if we can do without them. + +;; @FIXME - delete from loaddefs to remove this. +(defmethod ede-project-root ((this ede-project-autoload)) + "If a project knows its root, return it here. +Allows for one-project-object-for-a-tree type systems." + nil) + +;; @FIXME - delete from loaddefs to remove this. +(defmethod ede-project-root-directory ((this ede-project-autoload) &optional file) + "" nil) (provide 'ede/auto) diff --git a/lisp/cedet/ede/autoconf-edit.el b/lisp/cedet/ede/autoconf-edit.el index 3ac6949fbb6..0e829def562 100644 --- a/lisp/cedet/ede/autoconf-edit.el +++ b/lisp/cedet/ede/autoconf-edit.el @@ -60,6 +60,7 @@ configure the initial configure script using `autoconf-new-automake-string'" (defvar autoconf-preferred-macro-order '("AC_INIT" + "AC_CONFIG_SRCDIR" "AM_INIT_AUTOMAKE" "AM_CONFIG_HEADER" ;; Arg parsing diff --git a/lisp/cedet/ede/base.el b/lisp/cedet/ede/base.el index 283f9dccac7..4183ff4c61a 100644 --- a/lisp/cedet/ede/base.el +++ b/lisp/cedet/ede/base.el @@ -605,7 +605,7 @@ Display the results as a debug list." "Return the ede project which is the root of the current project. Optional argument SUBPROJ indicates a subproject to start from instead of the current project." - (or ede-object-root-project + (or (when (not subproj) ede-object-root-project) (let* ((cp (or subproj (ede-current-project)))) (or (and cp (ede-project-root cp)) (progn diff --git a/lisp/cedet/ede/config.el b/lisp/cedet/ede/config.el new file mode 100644 index 00000000000..65713d9199c --- /dev/null +++ b/lisp/cedet/ede/config.el @@ -0,0 +1,416 @@ +;;; ede/config.el --- Configuration Handler baseclass + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Eric Ludlam + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: +;; +;; Some auto-detecting projects (such as the 'generic' project type) +;; can be enhanced by also saving a configuration file that is EDE +;; specific. EDE will be able to load that configuration from the save +;; file as a way of augmenting what is normally already detected. +;; +;; How To Use: +;; +;; Subclass `ede-extra-config', and add the features you want to use. +;; Several mixins are available for adding in C++ or Java support. Bring +;; in the pieces you need. +;; +;; Your project and targets should all have a common baseclass from +;; `ede-project-with-config' or `ede-target-with-config'. When +;; subclassing the project, be sure to override the class allocated +;; slots for the `config-class'. This will tie your new project to +;; the new configuration type. +;; +;; You can also override the file name used to save the configuration +;; object in. +;; +;; If you need to take special action in `project-rescan' be sure to also +;; call `call-next-method' to also get the configuration rescanned. +;; +;; Note on config file safety: +;; +;; Normally an EDE project that loads a save file should have it's +;; autoload slot :safe-p set to nil. Projects who save data via +;; config.el can mark their project as :safe-p t. The config system will +;; do the queries needed to protect the user. This allows a generic +;; project to become active in cases where no save file exists, nor is +;; needed. + +;;; Code: +(require 'ede) + +;;; CONFIG +;; +;; This is the base of a configuration class supported by the +;; `ede-project-with-config' baseclass. +;; +(defclass ede-extra-config (eieio-persistent) + ((extension :initform ".ede") + (file-header-line :initform ";; EDE Project Configuration") + (project :type ede-project-with-config-child + :documentation + "The project this config is bound to.") + (ignored-file :initform nil + :type (or null symbol) + :documentation + "Set to non-nil if this was created and an on-disk file +was ignored. Use this to warn the user that they might want to load in +an on-disk version.") + ) + "Baseclass for auxiliary configuration files for EDE. +This should be subclassed by projects that auto detect a project +and also want to save some extra level of configuration.") + +;;; PROJECT BASECLASS +;; +;; Subclass this baseclass if you want your EDE project to also +;; support saving an extra configuration file of unique data +;; needed for this project. +;; +(defclass ede-project-with-config (ede-project) + ((menu :initform nil) + (config-file-basename + :initform "Config.ede" + :allocation :class + :type string + :documentation + "The filename to use for saving the configuration. +This filename excludes the directory name and is used to +initialize the :file slot of the persistent baseclass.") + (config-class + :initform ede-extra-config + :allocation :class + :type class + :documentation + "The class of the configuration used by this project.") + (config :initform nil + :type (or null ede-extra-config-child) + :documentation + "The configuration object for this project.") + ) + "Baseclass for projects that save a configuration.") + +(defclass ede-target-with-config (ede-target) + () + "Baseclass for targets of classes that use a config object.") + +;;; Rescanning + +(defmethod project-rescan ((this ede-project-with-config)) + "Rescan this generic project from the sources." + ;; Force the config to be rescanned. + (oset this config nil) + ;; Ask if it is safe to load the config from disk. + (ede-config-get-configuration this t) + ) + +;;; Project Methods for configuration + +(defmethod ede-config-get-configuration ((proj ede-project-with-config) &optional loadask) + "Return the configuration for the project PROJ. +If optional LOADASK is non-nil, then if a project file exists, and if +the directory isn't on the `safe' list, ask to add it to the safe list." + (let ((config (oref proj config))) + + ;; If the request is coming at a time when we want to ask the user, + ;; and there already is a configuration, AND the last time we ignored + ;; the on-file version we did so automatically (without asking) then + ;; in theory there are NO mods to this config, and we should re-ask, + ;; and possibly re-load. + (when (and loadask config (eq (oref config ignored-file) 'auto)) + (setq config nil)) + + (when (not config) + (let* ((top (oref proj :directory)) + (fname (expand-file-name (oref proj config-file-basename) top)) + (class (oref proj config-class)) + (ignore-type nil)) + (if (and (file-exists-p fname) + (or (ede-directory-safe-p top) + ;; Only force the load if someone asked. + (and loadask (ede-check-project-directory top)))) + ;; Load in the configuration + (setq config (eieio-persistent-read fname class)) + ;; If someone said not to load stuff from here then + ;; pop up a warning. + (when (file-exists-p fname) + (message "Ignoring EDE config file for now and creating a new one. Use C-c . g to load it.") + ;; Set how it was ignored. + (if loadask + (setq ignore-type 'manual) + (setq ignore-type 'auto)) + ) + ;; Create a new one. + (setq config (make-instance class + "Configuration" + :file fname)) + (oset config ignored-file ignore-type) + + ;; Set initial values based on project. + (ede-config-setup-configuration proj config)) + ;; Link things together. + (oset proj config config) + (oset config project proj))) + config)) + +(defmethod ede-config-setup-configuration ((proj ede-project-with-config) config) + "Default configuration setup method." + nil) + +(defmethod ede-commit-project ((proj ede-project-with-config)) + "Commit any change to PROJ to its file." + (let ((config (ede-config-get-configuration proj))) + (ede-commit config))) + +;;; Customization +;; +(defmethod ede-customize ((proj ede-project-with-config)) + "Customize the EDE project PROJ by actually configuring the config object." + (let ((config (ede-config-get-configuration proj t))) + (eieio-customize-object config))) + +(defmethod ede-customize ((target ede-target-with-config)) + "Customize the EDE TARGET by actually configuring the config object." + ;; Nothing unique for the targets, use the project. + (ede-customize-project)) + +(defmethod eieio-done-customizing ((config ede-extra-config)) + "Called when EIEIO is done customizing the configuration object. +We need to go back through the old buffers, and update them with +the new configuration." + (ede-commit config) + ;; Loop over all the open buffers, and re-apply. + (ede-map-targets + (oref config project) + (lambda (target) + (ede-map-target-buffers + target + (lambda (b) + (with-current-buffer b + (ede-apply-target-options))))))) + +(defmethod ede-commit ((config ede-extra-config)) + "Commit all changes to the configuration to disk." + ;; So long as the user is trying to safe this config, make sure they can + ;; get at it again later. + (let ((dir (file-name-directory (oref config file)))) + (ede-check-project-directory dir)) + + (eieio-persistent-save config)) + +;;; PROJECT MIXINS +;; +;; These are project part mixins. Use multiple inheritance for each +;; piece of these configuration options you would like to have as part +;; of your project. + +;;; PROGRAM +;; If there is a program that can be run or debugged that is unknown +;; and needs to be configured. +(defclass ede-extra-config-program () + ((debug-command :initarg :debug-command + :initform "gdb " + :type string + :group commands + :custom string + :group (default build) + :documentation + "Command used for debugging this project.") + (run-command :initarg :run-command + :initform "" + :type string + :group commands + :custom string + :group (default build) + :documentation + "Command used to run something related to this project.")) + "Class to mix into a configuration for debug/run of programs.") + +(defclass ede-project-with-config-program () + () + "Class to mix into a project with configuration for programs.") + +(defclass ede-target-with-config-program () + () + "Class to mix into a project with configuration for programs. +This class brings in method overloads for running and debugging +programs from a project.") + +(defmethod project-debug-target ((target ede-target-with-config-program)) + "Run the current project derived from TARGET in a debugger." + (let* ((proj (ede-target-parent target)) + (config (ede-config-get-configuration proj t)) + (debug (oref config :debug-command)) + (cmd (read-from-minibuffer + "Debug Command: " + debug)) + (cmdsplit (split-string cmd " " t)) + ;; @TODO - this depends on the user always typing in something good + ;; like "gdb" or "dbx" which also exists as a useful Emacs command. + ;; Is there a better way? + (cmdsym (intern-soft (car cmdsplit)))) + (call-interactively cmdsym t))) + +(defmethod project-run-target ((target ede-target-with-config-program)) + "Run the current project derived from TARGET." + (let* ((proj (ede-target-parent target)) + (config (ede-config-get-configuration proj t)) + (run (concat "./" (oref config :run-command))) + (cmd (read-from-minibuffer "Run (like this): " run))) + (ede-shell-run-something target cmd))) + +;;; BUILD +;; If the build style is unknown and needs to be configured. +(defclass ede-extra-config-build () + ((build-command :initarg :build-command + :initform "make -k" + :type string + :group commands + :custom string + :group (default build) + :documentation + "Command used for building this project.")) + "Class to mix into a configuration for compilation.") + +(defclass ede-project-with-config-build () + () + "Class to mix into a project with configuration for builds. +This class brings in method overloads for building.") + +(defclass ede-target-with-config-build () + () + "Class to mix into a project with configuration for builds. +This class brings in method overloads for for building.") + +(defmethod project-compile-project ((proj ede-project-with-config-build) &optional command) + "Compile the entire current project PROJ. +Argument COMMAND is the command to use when compiling." + (let* ((config (ede-config-get-configuration proj t)) + (comp (oref config :build-command))) + (compile comp))) + +(defmethod project-compile-target ((obj ede-target-with-config-build) &optional command) + "Compile the current target OBJ. +Argument COMMAND is the command to use for compiling the target." + (project-compile-project (ede-current-project) command)) + +;;; C / C++ +;; Configure includes and preprocessor symbols for C/C++ needed by +;; Semantic. +(defclass ede-extra-config-c () + ((c-include-path :initarg :c-include-path + :initform nil + :type list + :custom (repeat (string :tag "Path")) + :group c + :documentation + "The include path used by C/C++ projects. +The include path is used when searching for symbols.") + (c-preprocessor-table :initarg :c-preprocessor-table + :initform nil + :type list + :custom (repeat (cons (string :tag "Macro") + (string :tag "Value"))) + :group c + :documentation + "Preprocessor Symbols for this project. +When files within this project are parsed by CEDET, these symbols will be +used to resolve macro occurrences in source files. +If you modify this slot, you will need to force your source files to be +parsed again.") + (c-preprocessor-files :initarg :c-preprocessor-files + :initform nil + :type list + :group c + :custom (repeat (string :tag "Include File")) + :documentation + "Files parsed and used to populate preprocessor tables. +When files within this project are parsed by CEDET, these symbols will be used to +resolve macro occurrences in source files. +If you modify this slot, you will need to force your source files to be +parsed again.")) + "Class to mix into a configuration for compilation.") + +(defclass ede-project-with-config-c () + () + "Class to mix into a project for C/C++ support.") + +(defclass ede-target-with-config-c () + () + "Class to mix into a project for C/C++ support. +This target brings in methods used by Semantic to query +the preprocessor map, and include paths.") + +(defmethod ede-preprocessor-map ((this ede-target-with-config-c)) + "Get the pre-processor map for some generic C code." + (let* ((proj (ede-target-parent this)) + (root (ede-project-root proj)) + (config (ede-config-get-configuration proj)) + filemap + ) + ;; Preprocessor files + (dolist (G (oref config :c-preprocessor-files)) + (let ((table (semanticdb-file-table-object + (ede-expand-filename root G)))) + (when table + (when (semanticdb-needs-refresh-p table) + (semanticdb-refresh-table table)) + (setq filemap (append filemap (oref table lexical-table))) + ))) + ;; The core table + (setq filemap (append filemap (oref config :c-preprocessor-table))) + + filemap + )) + +(defmethod ede-system-include-path ((this ede-target-with-config-c)) + "Get the system include path used by project THIS." + (let* ((proj (ede-target-parent this)) + (config (ede-config-get-configuration proj))) + (oref config c-include-path))) + +;;; Java +;; Configuration needed for programming with Java. +(defclass ede-extra-config-java () + () + "Class to mix into a configuration for compilation.") + +(defclass ede-project-with-config-java () + () + "Class to mix into a project to support java. +This brings in methods to support Semantic querying the +java class path.") + +(defclass ede-target-with-config-java () + () + "Class to mix into a project to support java.") + +(defmethod ede-java-classpath ((proj ede-project-with-config-java)) + "Return the classpath for this project." + (oref (ede-config-get-configuration proj) :classpath)) + +;; Local variables: +;; generated-autoload-file: "loaddefs.el" +;; generated-autoload-load-name: "ede/config" +;; End: + +(provide 'ede/config) + +;;; ede/config.el ends here diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el index bf5c8257c90..0ccdc06f284 100644 --- a/lisp/cedet/ede/cpp-root.el +++ b/lisp/cedet/ede/cpp-root.el @@ -116,11 +116,6 @@ ;; ;; ) ;; -;; (defun MY-ROOT-FCN () -;; "Return the root directory for `default-directory'" -;; ;; You might be able to use `ede-cpp-root-project-root'. -;; ) -;; ;; (defun MY-LOAD (dir) ;; "Load a project of type `cpp-root' for the directory DIR. ;; Return nil if there isn't one." @@ -128,16 +123,14 @@ ;; :locate-fcn 'MYFCN) ;; ) ;; -;; (add-to-list 'ede-project-class-files -;; (ede-project-autoload "cpp-root" +;; (ede-add-project-autoload +;; (ede-project-autoload "cpp-root" ;; :name "CPP ROOT" ;; :file 'ede/cpp-root ;; :proj-file 'MY-FILE-FOR-DIR -;; :proj-root 'MY-ROOT-FCN ;; :load-type 'MY-LOAD ;; :class-sym 'ede-cpp-root-project -;; :safe-p t) -;; t) +;; :safe-p t)) ;; ;;; TODO ;; @@ -168,91 +161,13 @@ ;;; PROJECT CACHE: ;; -;; cpp-root projects are created in a .emacs or other config file, but -;; there still needs to be a way for a particular file to be -;; identified against it. The cache is where we look to map a file -;; against a project. -;; -;; Setting up a simple in-memory cache of active projects allows the -;; user to re-load their configuration file several times without -;; messing up the active project set. +;; cpp-root projects are created in a .emacs or other config file. We +;; need to cache them so if the user re-loads a lisp file with the +;; config in it, we can flush out the old one and replace it. ;; (defvar ede-cpp-root-project-list nil "List of projects created by option `ede-cpp-root-project'.") -(defun ede-cpp-root-file-existing (dir) - "Find a cpp-root project in the list of cpp-root projects. -DIR is the directory to search from." - (let ((projs ede-cpp-root-project-list) - (ans nil)) - (while (and projs (not ans)) - (let ((root (ede-project-root-directory (car projs)))) - (when (string-match (concat "^" (regexp-quote root)) dir) - (setq ans (car projs)))) - (setq projs (cdr projs))) - ans)) - -;;; PROJECT AUTOLOAD CONFIG -;; -;; Each project type registers itself into the project-class list. -;; This way, each time a file is loaded, EDE can map that file to a -;; project. This project type checks files against the internal cache -;; of projects created by the user. -;; -;; EDE asks two kinds of questions. One is, does this DIR belong to a -;; project. If it does, it then asks, what is the ROOT directory to -;; the project in DIR. This is easy for cpp-root projects, but more -;; complex for multiply nested projects. -;; -;; If EDE finds out that a project exists for DIR, it then loads that -;; project. The LOAD routine can either create a new project object -;; (if it needs to load it off disk) or more likely can return an -;; existing object for the discovered directory. cpp-root always uses -;; the second case. - -(defun ede-cpp-root-project-file-for-dir (&optional dir) - "Return a full file name to the project file stored in DIR." - (let ((proj (ede-cpp-root-file-existing dir))) - (when proj (oref proj :file)))) - -(defvar ede-cpp-root-count 0 - "Count number of hits to the cpp root thing. -This is a debugging variable to test various optimizations in file -lookup in the main EDE logic.") - -;;;###autoload -(defun ede-cpp-root-project-root (&optional dir) - "Get the root directory for DIR." - (let ((projfile (ede-cpp-root-project-file-for-dir - (or dir default-directory)))) - (setq ede-cpp-root-count (1+ ede-cpp-root-count)) - ;(debug) - (when projfile - (file-name-directory projfile)))) - -(defun ede-cpp-root-load (dir &optional rootproj) - "Return a CPP root object if you created one. -Return nil if there isn't one. -Argument DIR is the directory it is created for. -ROOTPROJ is nil, since there is only one project." - ;; Snoop through our master list. - (ede-cpp-root-file-existing dir)) - -;;;###autoload -(ede-add-project-autoload - (ede-project-autoload "cpp-root" - :name "CPP ROOT" - :file 'ede/cpp-root - :proj-file 'ede-cpp-root-project-file-for-dir - :proj-root 'ede-cpp-root-project-root - :load-type 'ede-cpp-root-load - :class-sym 'ede-cpp-root-project - :new-p nil - :safe-p t) - ;; When a user creates one of these, it should override any other project - ;; type that might happen to be in this directory, so force this to the - ;; very front. - 'unique) ;;; CLASSES ;; @@ -372,6 +287,7 @@ Each directory needs a project file to control it.") :directory 'ede-cpp-root-project-list))) ;; This is safe, because :directory isn't filled in till later. (when (and old (not (eq old this))) + (ede-delete-project-from-global-list old) (delete-instance old))) ;; Basic initialization. (when (or (not (file-exists-p f)) @@ -381,11 +297,13 @@ Each directory needs a project file to control it.") (oset this :file f) (oset this :directory (file-name-directory f)) (ede-project-directory-remove-hash (file-name-directory f)) + ;; NOTE: We must add to global list here because these classes are not + ;; created via the typical loader, but instead via calls from a .emacs + ;; file. (ede-add-project-to-global-list this) + (unless (slot-boundp this 'targets) (oset this :targets nil)) - ;; We need to add ourselves to the master list. - ;;(setq ede-projects (cons this ede-projects)) )) ;;; SUBPROJ Management. @@ -465,7 +383,7 @@ This knows details about or source tree." (defmethod ede-project-root-directory ((this ede-cpp-root-project)) "Return my root." - (file-name-directory (oref this file))) + (oref this directory)) ;;; C/CPP SPECIFIC CODE ;; @@ -558,6 +476,10 @@ Argument COMMAND is the command to use for compiling the target." (project-compile-project (oref obj :project) command))) +(defmethod project-rescan ((this ede-cpp-root-project)) + "Don't rescan this project from the sources." + (message "cpp-root has nothing to rescan.")) + ;;; Quick Hack (defun ede-create-lots-of-projects-under-dir (dir projfile &rest attributes) "Create a bunch of projects under directory DIR. diff --git a/lisp/cedet/ede/detect.el b/lisp/cedet/ede/detect.el new file mode 100644 index 00000000000..cc731041814 --- /dev/null +++ b/lisp/cedet/ede/detect.el @@ -0,0 +1,210 @@ +;;; ede/detect.el --- EDE project detection and file associations + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Eric M. Ludlam + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: +;; +;; Project detection for EDE; +;; +;; Detection comes in multiple forms: +;; +;; `ede-detect-scan-directory-for-project' - +;; Scan for a project via the file system. +;; `ede-detect-directory-for-project' - +;; Check our file cache for a project. If that fails, use +;; the scan fcn above. + +;;; Code: + +(require 'ede/auto) ;; Autoload settings. + +(when (or (<= emacs-major-version 23) + ;; predicate as name added in Emacs 24.2 + (and (= emacs-major-version 24) + (< emacs-minor-version 2))) + (message "Loading CEDET fallback autoload library.") + (require 'cedet/dominate + (expand-file-name "../../../etc/fallback-libraries/dominate.el" + (file-name-directory load-file-name)))) + + +;;; BASIC PROJECT SCAN +;; +(defun ede--detect-stop-scan-p (dir) + "Return non-nil if we need to stop scanning upward in DIR." + ;;(let ((stop + (file-exists-p (expand-file-name ".ede_stop_scan" dir))) +;;) +;;(when stop +;;(message "Stop Scan at %s" dir)) +;;stop)) + +(defvar ede--detect-found-project nil + "When searching for a project, temporarily save that file.") + +(defun ede--detect-ldf-predicate (dir) + "Non-nil if DIR contain any known EDE project types." + (if (ede--detect-stop-scan-p dir) + (throw 'stopscan nil) + (let ((types ede-project-class-files)) + ;; Loop over all types, loading in the first type that we find. + (while (and types (not ede--detect-found-project)) + (if (ede-auto-detect-in-dir (car types) dir) + (progn + ;; We found one! + (setq ede--detect-found-project (car types))) + (setq types (cdr types))) + ) + ede--detect-found-project))) + +(defun ede--detect-scan-directory-for-project (directory) + "Detect an EDE project for the current DIRECTORY by scanning. +This function ALWAYS scans files and directories and DOES NOT +use any file caches. +Return a cons cell: + ( ROOTDIR . PROJECT-AUTOLOAD)" + (let* ((ede--detect-found-project nil) + (root + (catch 'stopscan + (locate-dominating-file directory + 'ede--detect-ldf-predicate)))) + (when root + (cons root ede--detect-found-project)))) + +;;; Root Only project detect +;; +;; For projects that only have a detectable ROOT file, but may in fact +;; contain a generic file such as a Makefile, we need to do a second scan +;; to make sure we don't miss-match. +(defun ede--detect-ldf-rootonly-predicate (dir) + "Non-nil if DIR contain any known EDE project types." + (if (ede--detect-stop-scan-p dir) + (throw 'stopscan nil) + (let ((types ede-project-class-files)) + ;; Loop over all types, loading in the first type that we find. + (while (and types (not ede--detect-found-project)) + (if (and + (oref (car types) root-only) + (ede-auto-detect-in-dir (car types) dir)) + (progn + ;; We found one! + (setq ede--detect-found-project (car types))) + (setq types (cdr types))) + ) + ede--detect-found-project))) + +(defun ede--detect-scan-directory-for-rootonly-project (directory) + "Detect an EDE project for the current DIRECTORY by scanning. +This function ALWAYS scans files and directories and DOES NOT +use any file caches. +Return a cons cell: + ( ROOTDIR . PROJECT-AUTOLOAD)" + (let* ((ede--detect-found-project nil) + (root + (catch 'stopscan + (locate-dominating-file directory + 'ede--detect-ldf-rootonly-predicate)))) + (when root + (cons root ede--detect-found-project)))) + + +;;; NESTED PROJECT SCAN +;; +;; For projects that can have their dominating file exist in all their +;; sub-directories as well. + +(defvar ede--detect-nomatch-auto nil + "An ede autoload that needs to be un-matched.") + +(defun ede--detect-ldf-root-predicate (dir) + "Non-nil if DIR no longer match `ede--detect-nomatch-auto'." + (or (ede--detect-stop-scan-p dir) + ;; To know if DIR is at the top, we need to look just above + ;; to see if there is a match. + (let ((updir (file-name-directory (directory-file-name dir)))) + (if (equal updir dir) + ;; If it didn't change, then obviously this must be the top. + t + ;; If it is different, check updir for the file. + (not (ede-auto-detect-in-dir ede--detect-nomatch-auto updir)))))) + +(defun ede--detect-scan-directory-for-project-root (directory auto) + "If DIRECTORY has already been detected with AUTO, find the root. +Some projects have their dominating file in all their directories, such +as Project.ede. In that case we will detect quickly, but then need +to scan upward to find the topmost occurrence of that file." + (let* ((ede--detect-nomatch-auto auto) + (root (locate-dominating-file directory + 'ede--detect-ldf-root-predicate))) + root)) + +;;; TOP LEVEL SCAN +;; +;; This function for combining the above scans. +(defun ede-detect-directory-for-project (directory) + "Detect an EDE project for the current DIRECTORY. +Scan the filesystem for a project. +Return a cons cell: + ( ROOTDIR . PROJECT-AUTOLOAD)" + (let* ((scan (ede--detect-scan-directory-for-project directory)) + (root (car scan)) + (auto (cdr scan))) + (when scan + ;; If what we found is already a root-only project, return it. + (if (oref auto root-only) + scan + + ;; If what we found is a generic project, check to make sure we aren't + ;; in some other kind of root project. + (if (oref auto generic-p) + (let ((moreroot (ede--detect-scan-directory-for-rootonly-project root))) + ;; If we found a rootier project, return that. + (if moreroot + moreroot + + ;; If we didn't find a root from the generic project, then + ;; we need to rescan upward. + (cons (ede--detect-scan-directory-for-project-root root auto) auto))) + + ;; Non-generic non-root projects also need to rescan upward. + (cons (ede--detect-scan-directory-for-project-root root auto) auto))) + + ))) + +;;; TEST +;; +;; A quick interactive testing fcn. +(defun ede-detect-qtest () + "Run a quick test for autodetecting on BUFFER." + (interactive) + (let ((start (current-time)) + (ans (ede-detect-directory-for-project default-directory)) + (end (current-time))) + (if ans + (message "Project found in %d sec @ %s of type %s" + (float-time (time-subtract end start)) + (car ans) + (eieio-object-name-string (cdr ans))) + (message "No Project found.") ))) + + +(provide 'ede/detect) + +;;; ede/detect.el ends here diff --git a/lisp/cedet/ede/emacs.el b/lisp/cedet/ede/emacs.el index 43f16da8a77..88df1d2963f 100644 --- a/lisp/cedet/ede/emacs.el +++ b/lisp/cedet/ede/emacs.el @@ -38,37 +38,12 @@ (declare-function semanticdb-refresh-table "semantic/db") ;;; Code: -(defvar ede-emacs-project-list nil - "List of projects created by option `ede-emacs-project'.") -(defun ede-emacs-file-existing (dir) - "Find a Emacs project in the list of Emacs projects. -DIR is the directory to search from." - (let ((projs ede-emacs-project-list) - (ans nil)) - (while (and projs (not ans)) - (let ((root (ede-project-root-directory (car projs)))) - (when (string-match (concat "^" (regexp-quote root)) - (file-name-as-directory dir)) - (setq ans (car projs)))) - (setq projs (cdr projs))) - ans)) +;; @TODO - get rid of this. Stuck in loaddefs right now. -;;;###autoload (defun ede-emacs-project-root (&optional dir) "Get the root directory for DIR." - (when (not dir) (setq dir default-directory)) - (let ((case-fold-search t) - (proj (ede-files-find-existing dir ede-emacs-project-list))) - (if proj - (ede-up-directory (file-name-directory - (oref proj :file))) - ;; No pre-existing project. Let's take a wild-guess if we have - ;; an Emacs project here. - (when (string-match "emacs[^/]*" dir) - (let ((base (substring dir 0 (match-end 0)))) - (when (file-exists-p (expand-file-name "src/emacs.c" base)) - base)))))) + nil) (defun ede-emacs-version (dir) "Find the Emacs version for the Emacs src in DIR. @@ -80,12 +55,6 @@ Return a tuple of ( EMACSNAME . VERSION )." (with-current-buffer buff (erase-buffer) (setq default-directory (file-name-as-directory dir)) - (or (file-exists-p configure_ac) - (setq configure_ac "configure.in")) - ;(call-process "egrep" nil buff nil "-n" "-e" "^version=" "Makefile") - (call-process "egrep" nil buff nil "-n" "-e" "AC_INIT" configure_ac) - (goto-char (point-min)) - ;(re-search-forward "version=\\([0-9.]+\\)") (cond ;; Maybe XEmacs? ((file-exists-p "version.sh") @@ -113,7 +82,8 @@ m4_define(\\[SXEM4CS_BETA_VERSION\\], \\[\\([0-9]+\\)\\])") ;; Insert other Emacs here... ;; Vaguely recent version of GNU Emacs? - (t + ((or (file-exists-p configure_ac) + (file-exists-p (setq configure_ac "configure.in"))) (insert-file-contents configure_ac) (goto-char (point-min)) (re-search-forward "AC_INIT(\\(?:GNU \\)?[eE]macs,\\s-*\\([0-9.]+\\)\\s-*[,)]") @@ -123,8 +93,8 @@ m4_define(\\[SXEM4CS_BETA_VERSION\\], \\[\\([0-9]+\\)\\])") ;; Return a tuple (cons emacs ver)))) -(defclass ede-emacs-project (ede-project eieio-instance-tracker) - ((tracking-symbol :initform 'ede-emacs-project-list) +(defclass ede-emacs-project (ede-project) + ( ) "Project Type for the Emacs source code." :method-invocation-order :depth-first) @@ -134,17 +104,15 @@ m4_define(\\[SXEM4CS_BETA_VERSION\\], \\[\\([0-9]+\\)\\])") Return nil if there isn't one. Argument DIR is the directory it is created for. ROOTPROJ is nil, since there is only one project." - (or (ede-files-find-existing dir ede-emacs-project-list) - ;; Doesn't already exist, so let's make one. - (let* ((vertuple (ede-emacs-version dir)) - (proj (ede-emacs-project - (car vertuple) - :name (car vertuple) - :version (cdr vertuple) - :directory (file-name-as-directory dir) - :file (expand-file-name "src/emacs.c" - dir)))) - (ede-add-project-to-global-list proj)))) + ;; Doesn't already exist, so let's make one. + (let* ((vertuple (ede-emacs-version dir))) + (ede-emacs-project + (car vertuple) + :name (car vertuple) + :version (cdr vertuple) + :directory (file-name-as-directory dir) + :file (expand-file-name "src/emacs.c" + dir)))) ;;;###autoload (ede-add-project-autoload @@ -152,8 +120,6 @@ ROOTPROJ is nil, since there is only one project." :name "EMACS ROOT" :file 'ede/emacs :proj-file "src/emacs.c" - :proj-root-dirmatch "emacs[^/]*" - :proj-root 'ede-emacs-project-root :load-type 'ede-emacs-load :class-sym 'ede-emacs-project :new-p nil @@ -307,6 +273,15 @@ Knows about how the Emacs source tree is organized." (ede-emacs-find-in-directories name dir dirs)) )) +;;; Command Support +;; +(defmethod project-rescan ((this ede-emacs-project)) + "Rescan this Emacs project from the sources." + (let ((ver (ede-emacs-version (ede-project-root-directory this)))) + (oset this name (car ver)) + (oset this version (cdr ver)) + )) + (provide 'ede/emacs) ;; Local variables: diff --git a/lisp/cedet/ede/files.el b/lisp/cedet/ede/files.el index ac245cf61bd..f9a855854c2 100644 --- a/lisp/cedet/ede/files.el +++ b/lisp/cedet/ede/files.el @@ -80,46 +80,15 @@ Allows for one-project-object-for-a-tree type systems." Allows for one-project-object-for-a-tree type systems. Optional FILE is the file to test. It is ignored in preference of the anchor file for the project." - (file-name-directory (expand-file-name (oref this file)))) + (let ((root (or (ede-project-root this) this))) + (file-name-directory (expand-file-name (oref this file))))) -(defmethod ede--project-inode ((proj ede-project-placeholder)) - "Get the inode of the directory project PROJ is in." - (if (slot-boundp proj 'dirinode) - (oref proj dirinode) - (oset proj dirinode (ede--inode-for-dir (oref proj :directory))))) +;; Why INODEs? +;; An inode represents a unique ID that transcends symlinks, hardlinks, etc. +;; so when we cache an inode in a project, and hash directories to inodes, we +;; can avoid costly filesystem queries and regex matches. -(defmethod ede-find-subproject-for-directory ((proj ede-project-placeholder) - dir) - "Find a subproject of PROJ that corresponds to DIR." - (if ede--disable-inode - (let ((ans nil)) - ;; Try to find the right project w/out inodes. - (ede-map-subprojects - proj - (lambda (SP) - (when (not ans) - (if (string= (file-truename dir) (oref SP :directory)) - (setq ans SP) - (ede-find-subproject-for-directory SP dir))))) - ans) - ;; We can use inodes, so let's try it. - (let ((ans nil) - (inode (ede--inode-for-dir dir))) - (ede-map-subprojects - proj - (lambda (SP) - (when (not ans) - (if (equal (ede--project-inode SP) inode) - (setq ans SP) - (setq ans (ede-find-subproject-for-directory SP dir)))))) - ans))) - -;;; DIRECTORY IN OPEN PROJECT -;; -;; These routines match some directory name to one of the many pre-existing -;; open projects. This should avoid hitting the disk, or asking lots of questions -;; if used throughout the other routines. (defvar ede-inode-directory-hash (make-hash-table ;; Note on test. Can we compare inodes or something? :test 'equal) @@ -147,26 +116,11 @@ of the anchor file for the project." (ede--put-inode-dir-hash dir (nth 10 fattr)) ))))) -(defun ede-directory-get-open-project (dir &optional rootreturn) - "Return an already open project that is managing DIR. -Optional ROOTRETURN specifies a symbol to set to the root project. -If DIR is the root project, then it is the same." - (let* ((inode (ede--inode-for-dir dir)) - (ft (file-name-as-directory (expand-file-name dir))) - (proj (ede--inode-get-toplevel-open-project inode)) - (ans nil)) - ;; Try file based search. - (when (not proj) - (setq proj (ede-directory-get-toplevel-open-project ft))) - ;; Default answer is this project - (setq ans proj) - ;; Save. - (when rootreturn (set rootreturn proj)) - ;; Find subprojects. - (when (and proj (or ede--disable-inode - (not (equal inode (ede--project-inode proj))))) - (setq ans (ede-find-subproject-for-directory proj ft))) - ans)) +(defmethod ede--project-inode ((proj ede-project-placeholder)) + "Get the inode of the directory project PROJ is in." + (if (slot-boundp proj 'dirinode) + (oref proj dirinode) + (oset proj dirinode (ede--inode-for-dir (oref proj :directory))))) (defun ede--inode-get-toplevel-open-project (inode) "Return an already open toplevel project that is managing INODE. @@ -182,40 +136,120 @@ Does not check subprojects." (setq all (cdr all))) found))) -(defun ede-directory-get-toplevel-open-project (dir) - "Return an already open toplevel project that is managing DIR." +;;; DIRECTORY IN OPEN PROJECT +;; +;; These routines match some directory name to one of the many pre-existing +;; open projects. This should avoid hitting the disk, or asking lots of questions +;; if used throughout the other routines. + +(defun ede-directory-get-open-project (dir &optional rootreturn) + "Return an already open project that is managing DIR. +Optional ROOTRETURN specifies a symbol to set to the root project. +If DIR is the root project, then it is the same." + (let* ((inode (ede--inode-for-dir dir)) + (ft (file-name-as-directory (expand-file-name dir))) + (proj (ede--inode-get-toplevel-open-project inode)) + (ans nil)) + ;; Try file based search. + (when (or ede--disable-inode (not proj)) + (setq proj (ede-directory-get-toplevel-open-project ft))) + ;; Default answer is this project + (setq ans proj) + ;; Save. + (when rootreturn (set rootreturn proj)) + ;; Find subprojects. + (when (and proj (if ede--disable-inode + (not (string= ft (expand-file-name (oref proj :directory)))) + (not (equal inode (ede--project-inode proj))))) + (setq ans (ede-find-subproject-for-directory proj ft))) + ans)) + +;; Force all users to switch to `ede-directory-get-open-project' +;; for performance reasons. +(defun ede-directory-get-toplevel-open-project (dir &optional exact) + "Return an already open toplevel project that is managing DIR. +If optional EXACT is non-nil, only return exact matches for DIR." (let ((ft (file-name-as-directory (expand-file-name dir))) (all ede-projects) - (ans nil)) + (ans nil) + (shortans nil)) (while (and all (not ans)) ;; Do the check. - (let ((pd (oref (car all) :directory)) + (let ((pd (expand-file-name (oref (car all) :directory))) ) (cond ;; Exact text match. ((string= pd ft) (setq ans (car all))) ;; Some sub-directory - ((string-match (concat "^" (regexp-quote pd)) ft) - (setq ans (car all))) + ((and (not exact) (string-match (concat "^" (regexp-quote pd)) ft)) + (if (not shortans) + (setq shortans (car all)) + ;; We already have a short answer, so see if pd (the match we found) + ;; is longer. If it is longer, then it is more precise. + (when (< (length (oref shortans :directory)) + (length pd)) + (setq shortans (car all)))) + ) ;; Exact inode match. Useful with symlinks or complex automounters. - ((let ((pin (ede--project-inode (car all))) - (inode (ede--inode-for-dir dir))) - (and (not (eql pin 0)) (equal pin inode))) + ((and (not ede--disable-inode) + (let ((pin (ede--project-inode (car all))) + (inode (ede--inode-for-dir dir))) + (and (not (eql pin 0)) (equal pin inode)))) (setq ans (car all))) ;; Subdir via truename - slower by far, but faster than a traditional lookup. - ((let ((ftn (file-truename ft)) - (ptd (file-truename (oref (car all) :directory)))) - (string-match (concat "^" (regexp-quote ptd)) ftn)) - (setq ans (car all))) - )) + ;; Note that we must resort to truename in order to resolve issues such as + ;; cross-symlink projects. + ((and (not exact) + (let ((ftn (file-truename ft)) + (ptd (file-truename pd))) + (string-match (concat "^" (regexp-quote ptd)) ftn))) + (if (not shortans) + (setq shortans (car all)) + ;; We already have a short answer, so see if pd (the match we found) + ;; is longer. If it is longer, then it is more precise. + (when (< (length (expand-file-name (oref shortans :directory))) + (length pd)) + (setq shortans (car all)))) + ))) (setq all (cdr all))) - ans)) + ;; If we have an exact answer, use that, otherwise use + ;; the short answer we found -> ie - we are in a subproject. + (or ans shortans))) -;;; DIRECTORY-PROJECT-P +(defmethod ede-find-subproject-for-directory ((proj ede-project-placeholder) + dir) + "Find a subproject of PROJ that corresponds to DIR." + (if ede--disable-inode + (let ((ans nil) + (fulldir (file-truename dir))) + ;; Try to find the right project w/out inodes. + (ede-map-subprojects + proj + (lambda (SP) + (when (not ans) + (if (string= fulldir (file-truename (oref SP :directory))) + (setq ans SP) + (ede-find-subproject-for-directory SP dir))))) + ans) + ;; We can use inodes, so let's try it. + (let ((ans nil) + (inode (ede--inode-for-dir dir))) + (ede-map-subprojects + proj + (lambda (SP) + (when (not ans) + (if (equal (ede--project-inode SP) inode) + (setq ans SP) + (setq ans (ede-find-subproject-for-directory SP dir)))))) + ans))) + +;;; DIRECTORY HASH ;; -;; For a fresh buffer, or for a path w/ no open buffer, use this -;; routine to determine if there is a known project type here. +;; The directory hash matches expanded directory names to already detected +;; projects. By hashing projects to directories, we can detect projects in +;; places we have been before much more quickly. + (defvar ede-project-directory-hash (make-hash-table ;; Note on test. Can we compare inodes or something? :test 'equal) @@ -237,7 +271,7 @@ Do this only when developing new projects that are incorrectly putting "Reset the directory hash for DIR. Do this whenever a new project is created, as opposed to loaded." ;; TODO - Use maphash, and delete by regexp, not by dir searching! - + (setq dir (expand-file-name dir)) (when (fboundp 'remhash) (remhash (file-name-as-directory dir) ede-project-directory-hash) ;; Look for all subdirs of D, and remove them. @@ -248,98 +282,95 @@ Do this whenever a new project is created, as opposed to loaded." ede-project-directory-hash)) )) -(defun ede-directory-project-from-hash (dir) +(defun ede--directory-project-from-hash (dir) "If there is an already loaded project for DIR, return it from the hash." (when (fboundp 'gethash) + (setq dir (expand-file-name dir)) (gethash dir ede-project-directory-hash nil))) -(defun ede-directory-project-add-description-to-hash (dir desc) +(defun ede--directory-project-add-description-to-hash (dir desc) "Add to the EDE project hash DIR associated with DESC." (when (fboundp 'puthash) + (setq dir (expand-file-name dir)) (puthash dir desc ede-project-directory-hash) desc)) +;;; DIRECTORY-PROJECT-P, -CONS +;; +;; These routines are useful for detecting if a project exists +;; in a provided directory. +;; +;; Note that -P provides less information than -CONS, so use -CONS +;; instead so that -P can be obsoleted. (defun ede-directory-project-p (dir &optional force) - "Return a project description object if DIR has a project. + "Return a project description object if DIR is in a project. Optional argument FORCE means to ignore a hash-hit of 'nomatch. This depends on an up to date `ede-project-class-files' variable. Any directory that contains the file .ede-ignore will always -return nil." +return nil. + +Consider using `ede-directory-project-cons' instead if the next +question you want to ask is where the root of found project is." + ;; @TODO - We used to have a full impl here, but moved it all + ;; to ede-directory-project-cons, and now hash contains only + ;; the results of detection which includes the root dir. + ;; Perhaps we can eventually remove this fcn? + (let ((detect (ede-directory-project-cons dir force))) + (cdr detect))) + +(defun ede-directory-project-cons (dir &optional force) + "Return a project CONS (ROOTDIR . AUTOLOAD) for DIR. +If there is no project in DIR, return nil. +Optional FORCE means to ignore the hash of known directories." (when (not (file-exists-p (expand-file-name ".ede-ignore" dir))) (let* ((dirtest (expand-file-name dir)) - (match (ede-directory-project-from-hash dirtest))) + (match (ede--directory-project-from-hash dirtest))) (cond ((and (eq match 'nomatch) (not force)) nil) ((and match (not (eq match 'nomatch))) match) (t - (let ((types ede-project-class-files) - (ret nil)) - ;; Loop over all types, loading in the first type that we find. - (while (and types (not ret)) - (if (ede-dir-to-projectfile (car types) dirtest) - (progn - ;; We found one! Require it now since we will need it. - (require (oref (car types) file)) - (setq ret (car types)))) - (setq types (cdr types))) - (ede-directory-project-add-description-to-hash dirtest (or ret 'nomatch)) - ret)))))) + ;; First time here? Use the detection code to identify if we have + ;; a project here. + (let* ((detect (ede-detect-directory-for-project dirtest)) + (autoloader (cdr detect))) ;; autoloader + (when autoloader (require (oref autoloader file))) + (ede--directory-project-add-description-to-hash dirtest (or detect 'nomatch)) + detect) + ))))) + ;;; TOPLEVEL ;; ;; These utilities will identify the "toplevel" of a project. ;; -(defun ede-toplevel-project-or-nil (dir) - "Starting with DIR, find the toplevel project directory, or return nil. -nil is returned if the current directory is not a part of a project." - (let* ((ans (ede-directory-get-toplevel-open-project dir))) - (if ans - (oref ans :directory) - (if (ede-directory-project-p dir) - (ede-toplevel-project dir) - nil)))) +;; NOTE: These two -toplevel- functions return a directory even though +;; the function name implies a project. (defun ede-toplevel-project (dir) - "Starting with DIR, find the toplevel project directory." - (if (and (string= dir default-directory) + "Starting with DIR, find the toplevel project directory. +If DIR is not part of a project, return nil." + (let ((ans nil)) + + (cond + ;; Check if it is cached in the current buffer. + ((and (string= dir default-directory) ede-object-root-project) ;; Try the local buffer cache first. - (oref ede-object-root-project :directory) - ;; Otherwise do it the hard way. - (let* ((thisdir (ede-directory-project-p dir)) - (ans (ede-directory-get-toplevel-open-project dir))) - (if (and ans ;; We have an answer - (or (not thisdir) ;; this dir isn't setup - (and (object-of-class-p ;; Same as class for this dir? - ans (oref thisdir :class-sym))) - )) - (oref ans :directory) - (let* ((toppath (expand-file-name dir)) - (newpath toppath) - (proj (ede-directory-project-p dir)) - (ans nil)) - (if proj - ;; If we already have a project, ask it what the root is. - (setq ans (ede-project-root-directory proj))) + (oref ede-object-root-project :directory)) - ;; If PROJ didn't know, or there is no PROJ, then + ;; See if there is an existing project in DIR. + ((setq ans (ede-directory-get-toplevel-open-project dir)) + (oref ans :directory)) - ;; Loop up to the topmost project, and then load that single - ;; project, and its sub projects. When we are done, identify the - ;; sub-project object belonging to file. - (while (and (not ans) newpath proj) - (setq toppath newpath - newpath (ede-up-directory toppath)) - (when newpath - (setq proj (ede-directory-project-p newpath))) + ;; Detect using our file system detector. + ((setq ans (ede-detect-directory-for-project dir)) + (car ans)) - (when proj - ;; We can home someone in the middle knows too. - (setq ans (ede-project-root-directory proj))) - ) - (or ans toppath)))))) + (t nil)))) + +(defalias 'ede-toplevel-project-or-nil 'ede-toplevel-project) ;;; DIRECTORY CONVERSION STUFF ;; @@ -509,25 +540,6 @@ Argument DIR is the directory to trim upwards." nil fnd))) -(defun ede-find-project-root (prj-file-name &optional dir) - "Tries to find directory with given project file" - (let ((prj-dir (locate-dominating-file (or dir default-directory) - prj-file-name))) - (when prj-dir - (expand-file-name prj-dir)))) - -(defun ede-files-find-existing (dir prj-list) - "Find a project in the list of projects stored in given variable. -DIR is the directory to search from." - (let ((projs prj-list) - (ans nil)) - (while (and projs (not ans)) - (let ((root (ede-project-root-directory (car projs)))) - (when (string-match (concat "^" (regexp-quote root)) dir) - (setq ans (car projs)))) - (setq projs (cdr projs))) - ans)) - (provide 'ede/files) diff --git a/lisp/cedet/ede/generic.el b/lisp/cedet/ede/generic.el index d6f0385cf97..6d4535323d0 100644 --- a/lisp/cedet/ede/generic.el +++ b/lisp/cedet/ede/generic.el @@ -78,61 +78,18 @@ ;; the above described support features. (require 'eieio-opt) -(require 'ede) +(require 'ede/config) (require 'ede/shell) (require 'semantic/db) ;;; Code: ;; ;; Start with the configuration system -(defclass ede-generic-config (eieio-persistent) - ((extension :initform ".ede") - (file-header-line :initform ";; EDE Generic Project Configuration") - (project :initform nil - :documentation - "The project this config is bound to.") - ;; Generic customizations - (build-command :initarg :build-command - :initform "make -k" - :type string - :custom string - :group (default build) - :documentation - "Command used for building this project.") - (debug-command :initarg :debug-command - :initform "gdb " - :type string - :custom string - :group (default build) - :documentation - "Command used for debugging this project.") - (run-command :initarg :run-command - :initform nil - :type (or null string) - :custom string - :group (default build) - :documentation - "Command used to run something related to this project.") - ;; C target customizations - (c-include-path :initarg :c-include-path - :initform nil - :type list - :custom (repeat (string :tag "Path")) - :group c - :documentation - "The include path used by C/C++ projects.") - (c-preprocessor-table :initarg :c-preprocessor-table - :initform nil - :type list - :custom (repeat (cons (string :tag "Macro") - (string :tag "Value"))) - :group c - :documentation - "Preprocessor Symbols for this project.") - (c-preprocessor-files :initarg :c-preprocessor-files - :initform nil - :type list - :custom (repeat (string :tag "Include File"))) +(defclass ede-generic-config (ede-extra-config + ede-extra-config-build + ede-extra-config-program + ede-extra-config-c) + ((file-header-line :initform ";; EDE Generic Project Configuration") ) "User Configuration object for a generic project.") @@ -142,23 +99,24 @@ Return nil if there isn't one. Argument DIR is the directory it is created for. ROOTPROJ is nil, since there is only one project." ;; Doesn't already exist, so let's make one. - (let* ((alobj ede-constructing) - (this nil)) + (let* ((alobj ede-constructing)) (when (not alobj) (error "Cannot load generic project without the autoload instance")) - - (setq this - (funcall (oref alobj class-sym) - (symbol-name (oref alobj class-sym)) - :name (file-name-nondirectory - (directory-file-name dir)) - :version "1.0" - :directory (file-name-as-directory dir) - :file (expand-file-name (oref alobj :proj-file)) )) - (ede-add-project-to-global-list this) + ;;; + ;; TODO - find the root dir. + (let ((rootdir dir)) + (funcall (oref alobj class-sym) + (symbol-name (oref alobj class-sym)) + :name (file-name-nondirectory (directory-file-name dir)) + :version "1.0" + :directory (file-name-as-directory rootdir) + :file (expand-file-name (oref alobj :proj-file) + rootdir))) )) ;;; Base Classes for the system -(defclass ede-generic-target (ede-target) +(defclass ede-generic-target (ede-target-with-config + ede-target-with-config-build + ede-target-with-config-program) ((shortname :initform "" :type string :allocation :class @@ -174,16 +132,18 @@ subclasses of this base target will override the default value.") "Baseclass for all targets belonging to the generic ede system." :abstract t) -(defclass ede-generic-project (ede-project) - ((buildfile :initform "" +(defclass ede-generic-project (ede-project-with-config + ede-project-with-config-build + ede-project-with-config-program + ede-project-with-config-c + ede-project-with-config-java) + ((config-class :initform ede-generic-config) + (config-file-basename :initform "EDEConfig.el") + (buildfile :initform "" :type string :allocation :class :documentation "The file name that identifies a project of this type. The class allocated value is replace by different sub classes.") - (config :initform nil - :type (or null ede-generic-config) - :documentation - "The configuration object for this project.") ) "The baseclass for all generic EDE project types." :abstract t) @@ -196,37 +156,18 @@ The class allocated value is replace by different sub classes.") (oset this :targets nil)) ) -(defmethod ede-generic-get-configuration ((proj ede-generic-project)) - "Return the configuration for the project PROJ." - (let ((config (oref proj config))) - (when (not config) - (let ((fname (expand-file-name "EDEConfig.el" - (oref proj :directory)))) - (if (file-exists-p fname) - ;; Load in the configuration - (setq config (eieio-persistent-read fname 'ede-generic-config)) - ;; Create a new one. - (setq config (ede-generic-config - "Configuration" - :file fname)) - ;; Set initial values based on project. - (ede-generic-setup-configuration proj config)) - ;; Link things together. - (oset proj config config) - (oset config project proj))) - config)) +(defmethod ede-project-root ((this ede-generic-project)) + "Return my root." + this) -(defmethod ede-generic-setup-configuration ((proj ede-generic-project) config) - "Default configuration setup method." - nil) - -(defmethod ede-commit-project ((proj ede-generic-project)) - "Commit any change to PROJ to its file." - (let ((config (ede-generic-get-configuration proj))) - (ede-commit config))) +(defmethod ede-find-subproject-for-directory ((proj ede-generic-project) + dir) + "Return PROJ, for handling all subdirs below DIR." + proj) ;;; A list of different targets -(defclass ede-generic-target-c-cpp (ede-generic-target) +(defclass ede-generic-target-c-cpp (ede-generic-target + ede-target-with-config-c) ((shortname :initform "C/C++") (extension :initform "\\([ch]\\(pp\\|xx\\|\\+\\+\\)?\\|cc\\|hh\\|CC?\\)")) "EDE Generic Project target for C and C++ code. @@ -250,6 +191,13 @@ All directories need at least one target.") "EDE Generic Project target for texinfo code. All directories need at least one target.") +(defclass ede-generic-target-java (ede-generic-target + ede-target-with-config-java) + ((shortname :initform "Java") + (extension :initform "java")) + "EDE Generic Project target for texinfo code. +All directories need at least one target.") + ;; MISC must always be last since it will always match the file. (defclass ede-generic-target-misc (ede-generic-target) ((shortname :initform "Misc") @@ -284,7 +232,7 @@ If one doesn't exist, create a new one for this directory." (let* ((classsym (intern (car C))) (extreg (oref classsym extension))) (when (and (not (string= extreg "")) - (string-match (concat "^" extreg "$") ext)) + (string-match (concat "\\`\\(?:" extreg "\\)\\'") ext)) (setq cls classsym))))) (when (not cls) (setq cls 'ede-generic-target-misc)) ;; find a pre-existing matching target @@ -300,103 +248,6 @@ If one doesn't exist, create a new one for this directory." ) ans)) -;;; C/C++ support -(defmethod ede-preprocessor-map ((this ede-generic-target-c-cpp)) - "Get the pre-processor map for some generic C code." - (let* ((proj (ede-target-parent this)) - (root (ede-project-root proj)) - (config (ede-generic-get-configuration proj)) - filemap - ) - ;; Preprocessor files - (dolist (G (oref config :c-preprocessor-files)) - (let ((table (semanticdb-file-table-object - (ede-expand-filename root G)))) - (when table - (when (semanticdb-needs-refresh-p table) - (semanticdb-refresh-table table)) - (setq filemap (append filemap (oref table lexical-table))) - ))) - ;; The core table - (setq filemap (append filemap (oref config :c-preprocessor-table))) - - filemap - )) - -(defmethod ede-system-include-path ((this ede-generic-target-c-cpp)) - "Get the system include path used by project THIS." - (let* ((proj (ede-target-parent this)) - (config (ede-generic-get-configuration proj))) - (oref config c-include-path))) - -;;; Commands -;; -(defmethod project-compile-project ((proj ede-generic-project) &optional command) - "Compile the entire current project PROJ. -Argument COMMAND is the command to use when compiling." - (let* ((config (ede-generic-get-configuration proj)) - (comp (oref config :build-command))) - (compile comp))) - -(defmethod project-compile-target ((obj ede-generic-target) &optional command) - "Compile the current target OBJ. -Argument COMMAND is the command to use for compiling the target." - (project-compile-project (ede-current-project) command)) - -(defmethod project-debug-target ((target ede-generic-target)) - "Run the current project derived from TARGET in a debugger." - (let* ((proj (ede-target-parent target)) - (config (ede-generic-get-configuration proj)) - (debug (oref config :debug-command)) - (cmd (read-from-minibuffer - "Debug Command: " - debug)) - (cmdsplit (split-string cmd " " t)) - ;; @TODO - this depends on the user always typing in something good - ;; like "gdb" or "dbx" which also exists as a useful Emacs command. - ;; Is there a better way? - (cmdsym (intern-soft (car cmdsplit)))) - (call-interactively cmdsym t))) - -(defmethod project-run-target ((target ede-generic-target)) - "Run the current project derived from TARGET." - (let* ((proj (ede-target-parent target)) - (config (ede-generic-get-configuration proj)) - (run (concat "./" (oref config :run-command))) - (cmd (read-from-minibuffer "Run (like this): " run))) - (ede-shell-run-something target cmd))) - -;;; Customization -;; -(defmethod ede-customize ((proj ede-generic-project)) - "Customize the EDE project PROJ." - (let ((config (ede-generic-get-configuration proj))) - (eieio-customize-object config))) - -(defmethod ede-customize ((target ede-generic-target)) - "Customize the EDE TARGET." - ;; Nothing unique for the targets, use the project. - (ede-customize-project)) - -(defmethod eieio-done-customizing ((config ede-generic-config)) - "Called when EIEIO is done customizing the configuration object. -We need to go back through the old buffers, and update them with -the new configuration." - (ede-commit config) - ;; Loop over all the open buffers, and re-apply. - (ede-map-targets - (oref config project) - (lambda (target) - (ede-map-target-buffers - target - (lambda (b) - (with-current-buffer b - (ede-apply-target-options))))))) - -(defmethod ede-commit ((config ede-generic-config)) - "Commit all changes to the configuration to disk." - (eieio-persistent-save config)) - ;;; Creating Derived Projects: ;; ;; Derived projects need an autoloader so that EDE can find the @@ -415,13 +266,16 @@ the class `ede-generic-project' project." :name external-name :file 'ede/generic :proj-file projectfile + :root-only nil :load-type 'ede-generic-load :class-sym class :new-p nil - :safe-p nil) ; @todo - could be - ; safe if we do something - ; about the loading of the - ; generic config file. + ;; NOTE: This project type is SAFE because it handles + ;; the user-query before loading its config file. These + ;; project types are useful without the config file so + ;; do the safe part until the user creates a saved config + ;; file for it. + :safe-p t) ;; Generics must go at the end, since more specific types ;; can create Makefiles also. 'generic)) @@ -436,6 +290,25 @@ the class `ede-generic-project' project." "SConstruct" 'ede-generic-scons-project) (ede-generic-new-autoloader "generic-cmake" "CMake" "CMakeLists" 'ede-generic-cmake-project) + + ;; Super Generic found via revision control tags. + (ede-generic-new-autoloader "generic-git" "Git" + ".git" 'ede-generic-vc-project) + (ede-generic-new-autoloader "generic-bzr" "Bazaar" + ".bzr" 'ede-generic-vc-project) + (ede-generic-new-autoloader "generic-hg" "Mercurial" + ".hg" 'ede-generic-vc-project) + (ede-generic-new-autoloader "generic-svn" "Subversions" + ".svn" 'ede-generic-vc-project) + (ede-generic-new-autoloader "generic-cvs" "CVS" + "CVS" 'ede-generic-vc-project) + + ;; Take advantage of existing 'projectile' based projects. + ;; @TODO - if projectile supports compile commands etc, can we + ;; read that out? Howto if projectile is not part of core emacs. + (ede-generic-new-autoloader "generic-projectile" ".projectile" + ".projectile" 'ede-generic-vc-project) + ) @@ -481,6 +354,15 @@ the class `ede-generic-project' project." (oset config debug-command "gdb ") ) +;;; Generic Version Control System +(defclass ede-generic-vc-project (ede-generic-project) + () + "Generic project found via Version Control files.") + +(defmethod ede-generic-setup-configuration ((proj ede-generic-vc-project) config) + "Setup a configuration for projects identified by revision control." + ) + (provide 'ede/generic) ;; Local variables: diff --git a/lisp/cedet/ede/linux.el b/lisp/cedet/ede/linux.el index 4e8a06ef110..b28301d777f 100644 --- a/lisp/cedet/ede/linux.el +++ b/lisp/cedet/ede/linux.el @@ -73,37 +73,6 @@ :group 'project-linux :type 'string) -(defvar ede-linux-project-list nil - "List of projects created by option `ede-linux-project'.") - -(defun ede-linux-file-existing (dir) - "Find a Linux project in the list of Linux projects. -DIR is the directory to search from." - (let ((projs ede-linux-project-list) - (ans nil)) - (while (and projs (not ans)) - (let ((root (ede-project-root-directory (car projs)))) - (when (string-match (concat "^" (regexp-quote root)) dir) - (setq ans (car projs)))) - (setq projs (cdr projs))) - ans)) - -;;;###autoload -(defun ede-linux-project-root (&optional dir) - "Get the root directory for DIR." - (when (not dir) (setq dir default-directory)) - (let ((case-fold-search t) - (proj (ede-linux-file-existing dir))) - (if proj - (ede-up-directory (file-name-directory - (oref proj :file))) - ;; No pre-existing project. Let's take a wild-guess if we have - ;; an Linux project here. - (when (string-match "linux[^/]*" dir) - (let ((base (substring dir 0 (match-end 0)))) - (when (file-exists-p (expand-file-name "scripts/ver_linux" base)) - base)))))) - (defun ede-linux-version (dir) "Find the Linux version for the Linux src in DIR." (let ((buff (get-buffer-create " *linux-query*"))) @@ -124,9 +93,8 @@ DIR is the directory to search from." (kill-buffer buff) ))))) -(defclass ede-linux-project (ede-project eieio-instance-tracker) - ((tracking-symbol :initform 'ede-linux-project-list) - (build-directory :initarg :build-directory +(defclass ede-linux-project (ede-project) + ((build-directory :initarg :build-directory :type string :documentation "Build directory.") (architecture :initarg :architecture @@ -226,22 +194,20 @@ until Linux is built for the first time." Return nil if there isn't one. Argument DIR is the directory it is created for. ROOTPROJ is nil, since there is only one project." - (or (ede-linux-file-existing dir) - ;; Doesn't already exist, so let's make one. - (let* ((bdir (ede-linux--get-build-directory dir)) - (arch (ede-linux--get-architecture dir bdir)) - (include-path (ede-linux--include-path dir bdir arch)) - (proj (ede-linux-project - "Linux" - :name "Linux" - :version (ede-linux-version dir) - :directory (file-name-as-directory dir) - :file (expand-file-name "scripts/ver_linux" - dir) - :build-directory bdir - :architecture arch - :include-path include-path))) - (ede-add-project-to-global-list proj)))) + ;; Doesn't already exist, so let's make one. + (let* ((bdir (ede-linux--get-build-directory dir)) + (arch (ede-linux--get-architecture dir bdir)) + (include-path (ede-linux--include-path dir bdir arch))) + (ede-linux-project + "Linux" + :name "Linux" + :version (ede-linux-version dir) + :directory (file-name-as-directory dir) + :file (expand-file-name "scripts/ver_linux" + dir) + :build-directory bdir + :architecture arch + :include-path include-path))) ;;;###autoload (ede-add-project-autoload @@ -249,8 +215,6 @@ ROOTPROJ is nil, since there is only one project." :name "LINUX ROOT" :file 'ede/linux :proj-file "scripts/ver_linux" - :proj-root-dirmatch "linux[^/]*" - :proj-root 'ede-linux-project-root :load-type 'ede-linux-load :class-sym 'ede-linux-project :new-p nil @@ -376,6 +340,8 @@ Knows about how the Linux source tree is organized." (t nil)))) (or F (call-next-method)))) +;;; Command Support +;; (defmethod project-compile-project ((proj ede-linux-project) &optional command) "Compile the entire current project. @@ -412,6 +378,19 @@ Argument COMMAND is the command to use for compiling the target." (compile command))) +(defmethod project-rescan ((this ede-linux-project)) + "Rescan this Linux project from the sources." + (let* ((dir (ede-project-root-directory this)) + (bdir (ede-linux--get-build-directory dir)) + (arch (ede-linux--get-architecture dir bdir)) + (inc (ede-linux--include-path dir bdir arch)) + (ver (ede-linux-version dir))) + (oset this version ver) + (oset this :build-directory bdir) + (oset this :architecture arch) + (oset this :include-path inc) + )) + (provide 'ede/linux) ;; Local variables: diff --git a/lisp/cedet/ede/pconf.el b/lisp/cedet/ede/pconf.el index dca4b33131a..1fa2a1c4343 100644 --- a/lisp/cedet/ede/pconf.el +++ b/lisp/cedet/ede/pconf.el @@ -100,7 +100,7 @@ don't do it. A value of nil means to just do it.") (ede-map-targets this 'ede-proj-tweak-autoconf))) ;; Now save (save-buffer) - (setq postcmd "autoreconf -i;") + (setq postcmd "autoreconf -f -i;") ;; Verify a bunch of files that are required by automake. (ede-proj-configure-test-required-file this "AUTHORS") @@ -173,11 +173,14 @@ By flushing, remove any cruft that may be in the file. Subsequent calls to `ede-proj-tweak-autoconf' can restore items removed by flush." nil) + +;; @TODO - No-one calls this ??? (defmethod ede-proj-configure-add-missing ((this ede-proj-target)) "Query if any files needed by THIS provided by automake are missing. Results in --add-missing being passed to automake." nil) +;; @TODO - No-one implements this yet. (defmethod ede-proj-configure-create-missing ((this ede-proj-target)) "Add any missing files for THIS by creating them." nil) diff --git a/lisp/cedet/ede/proj-elisp.el b/lisp/cedet/ede/proj-elisp.el index f27ae8adf74..8d5a174b271 100644 --- a/lisp/cedet/ede/proj-elisp.el +++ b/lisp/cedet/ede/proj-elisp.el @@ -267,7 +267,8 @@ is found, such as a `-version' variable, or the standard header." (while paths (ede-proj-elisp-add-path (car paths)) (setq paths (cdr paths)))) - (save-buffer)) ))) + (save-buffer) + (kill-buffer))))) (defmethod ede-proj-flush-autoconf ((this ede-proj-target-elisp)) "Flush the configure file (current buffer) to accommodate THIS." diff --git a/lisp/cedet/ede/proj.el b/lisp/cedet/ede/proj.el index e3c2ea4b914..7f3b186f504 100644 --- a/lisp/cedet/ede/proj.el +++ b/lisp/cedet/ede/proj.el @@ -310,7 +310,7 @@ the PROJECT being read in is the root project." (let ((sd (file-name-as-directory (expand-file-name (car subdirs) project)))) (if (and (file-directory-p sd) - (ede-directory-project-p sd)) + (file-exists-p (expand-file-name "Project.ede" sd))) (oset ret subproj (cons (ede-proj-load sd (or rootproj ret)) (oref ret subproj)))) @@ -690,7 +690,10 @@ Optional argument FORCE will force items to be regenerated." "Rescan the EDE proj project THIS." (let ((root (or (ede-project-root this) this)) ) - (setq ede-projects (delq root ede-projects)) + ;; @TODO - VERIFY THE BELOW WORKS + (ede-project-directory-remove-hash + (file-name-directory (ede-project-root-directory root))) + (ede-delete-project-from-global-list root) ;; NOTE : parent function double-checks that this dir was ;; already in memory once. (ede-load-project-file (ede-project-root-directory root)) diff --git a/lisp/cedet/ede/project-am.el b/lisp/cedet/ede/project-am.el index 43482ce0582..3e7a97cc94c 100644 --- a/lisp/cedet/ede/project-am.el +++ b/lisp/cedet/ede/project-am.el @@ -409,7 +409,7 @@ Argument COMMAND is the command to use for compiling the target." (setq default-directory dd) (setq cmd (read-from-minibuffer "Run (like this): " - (concat (ede-target-name obj)))) + (concat "./" (ede-target-name obj)))) (ede-shell-run-something obj cmd)) (kill-buffer tb)))) @@ -428,12 +428,8 @@ Argument COMMAND is the command to use for compiling the target." If a given set of projects has already been loaded, then do nothing but return the project for the directory given. Optional ROOTPROJ is the root EDE project." - (let* ((ede-constructing t) - (amo (object-assoc (expand-file-name "Makefile.am" directory) - 'file ede-projects))) - (when (not amo) - (setq amo (project-am-load-makefile directory))) - amo)) + ;; Just jump into creating the project from the Makefiles. + (project-am-load-makefile directory)) (defun project-am-find-topmost-level (dir) "Find the topmost automakefile starting with DIR." diff --git a/lisp/cedet/ede/shell.el b/lisp/cedet/ede/shell.el index 3d6eb194e42..d28977bd14f 100644 --- a/lisp/cedet/ede/shell.el +++ b/lisp/cedet/ede/shell.el @@ -42,10 +42,15 @@ COMMAND is a text string representing the thing to be run." ;; Show the new buffer. (when (not (get-buffer-window buff)) (switch-to-buffer-other-window buff t)) - ;; Force a shell into the buffer. - (shell buff) - (while (eq (point-min) (point)) - (accept-process-output)) + ;; Force a shell into the buffer, but only if the buffer + ;; doesn't already have a shell in it. + ;; Newer versions of `shell' pop the window forward. + (set-buffer buff) + (when (not (eq major-mode 'shell-mode)) + (shell buff) + ;; Make sure the shell has started. + (while (eq (point-min) (point)) + (accept-process-output))) ;; Change the default directory (if (not (string= (file-name-as-directory (expand-file-name default-directory)) (file-name-as-directory (expand-file-name dd)))) diff --git a/lisp/cedet/pulse.el b/lisp/cedet/pulse.el index e2a48a428a3..10ede62e747 100644 --- a/lisp/cedet/pulse.el +++ b/lisp/cedet/pulse.el @@ -227,13 +227,15 @@ Optional argument FACE specifies the face to do the highlighting." (defun pulse-momentary-highlight-one-line (point &optional face) "Highlight the line around POINT, unhighlighting before next command. Optional argument FACE specifies the face to do the highlighting." - (let ((start (point-at-bol)) - (end (save-excursion - (end-of-line) - (when (not (eobp)) - (forward-char 1)) - (point)))) - (pulse-momentary-highlight-region start end face))) + (save-excursion + (goto-char point) + (let ((start (point-at-bol)) + (end (save-excursion + (end-of-line) + (when (not (eobp)) + (forward-char 1)) + (point)))) + (pulse-momentary-highlight-region start end face)))) (defun pulse-momentary-highlight-region (start end &optional face) "Highlight between START and END, unhighlighting before next command. diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el index 5fc51e02a02..50e2082600b 100644 --- a/lisp/cedet/semantic.el +++ b/lisp/cedet/semantic.el @@ -382,7 +382,7 @@ Arguments START and END bound the time being calculated." (defun bovinate (&optional clear) "Parse the current buffer. Show output in a temp buffer. Optional argument CLEAR will clear the cache before parsing. -If CLEAR is negative, it will do a full reparse, and also not display +If CLEAR is negative, it will do a full reparse, and also display the output buffer." (interactive "P") (if clear (semantic-clear-toplevel-cache)) @@ -392,7 +392,8 @@ the output buffer." (end (current-time))) (message "Retrieving tags took %.2f seconds." (semantic-elapsed-time start end)) - (when (or (null clear) (not (listp clear))) + (when (or (null clear) (not (listp clear)) + (and (numberp clear) (< 0 clear))) (pop-to-buffer "*Parser Output*") (require 'pp) (erase-buffer) @@ -1126,8 +1127,16 @@ Semantic mode. ;; Add semantic-ia-complete-symbol to ;; completion-at-point-functions, so that it is run from ;; M-TAB. + ;; + ;; Note: The first entry added is the last entry run, so the + ;; most specific entry should be last. (add-hook 'completion-at-point-functions - 'semantic-completion-at-point-function) + 'semantic-analyze-nolongprefix-completion-at-point-function) + (add-hook 'completion-at-point-functions + 'semantic-analyze-notc-completion-at-point-function) + (add-hook 'completion-at-point-functions + 'semantic-analyze-completion-at-point-function) + (if global-ede-mode (define-key cedet-menu-map [cedet-menu-separator] '("--"))) (dolist (b (buffer-list)) @@ -1139,7 +1148,12 @@ Semantic mode. ;; Semantic can be re-activated cleanly. (remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn) (remove-hook 'completion-at-point-functions - 'semantic-completion-at-point-function) + 'semantic-analyze-completion-at-point-function) + (remove-hook 'completion-at-point-functions + 'semantic-analyze-notc-completion-at-point-function) + (remove-hook 'completion-at-point-functions + 'semantic-analyze-nolongprefix-completion-at-point-function) + (remove-hook 'after-change-functions 'semantic-change-function) (define-key cedet-menu-map [cedet-menu-separator] nil) @@ -1155,8 +1169,56 @@ Semantic mode. ;; re-activated. (setq semantic-new-buffer-fcn-was-run nil))) -(defun semantic-completion-at-point-function () - 'semantic-ia-complete-symbol) +;;; Completion At Point functions +(defun semantic-analyze-completion-at-point-function () + "Return possible analysis completions at point. +The completions provided are via `semantic-analyze-possible-completions'. +This function can be used by `completion-at-point-functions'." + (when (semantic-active-p) + (let* ((ctxt (semantic-analyze-current-context)) + (possible (semantic-analyze-possible-completions ctxt))) + + ;; The return from this is either: + ;; nil - not applicable here. + ;; A list: (START END COLLECTION . PROPS) + (when possible + (list (car (oref ctxt bounds)) + (cdr (oref ctxt bounds)) + possible)) + ))) + +(defun semantic-analyze-notc-completion-at-point-function () + "Return possible analysis completions at point. +The completions provided are via `semantic-analyze-possible-completions', +but with the 'no-tc option passed in, which means constraints based +on what is being assigned to are ignored. +This function can be used by `completion-at-point-functions'." + (when (semantic-active-p) + (let* ((ctxt (semantic-analyze-current-context)) + (possible (semantic-analyze-possible-completions ctxt 'no-tc))) + + (when possible + (list (car (oref ctxt bounds)) + (cdr (oref ctxt bounds)) + possible)) + ))) + +(defun semantic-analyze-nolongprefix-completion-at-point-function () + "Return possible analysis completions at point. +The completions provided are via `semantic-analyze-possible-completions', +but with the 'no-tc and 'no-longprefix option passed in, which means +constraints resulting in a long multi-symbol dereference are ignored. +This function can be used by `completion-at-point-functions'." + (when (semantic-active-p) + (let* ((ctxt (semantic-analyze-current-context)) + (possible (semantic-analyze-possible-completions + ctxt 'no-tc 'no-longprefix))) + + (when possible + (list (car (oref ctxt bounds)) + (cdr (oref ctxt bounds)) + possible)) + ))) ;;; Autoload some functions that are not in semantic/loaddefs diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el index ffc2c327c5a..77e091721c8 100644 --- a/lisp/cedet/semantic/analyze.el +++ b/lisp/cedet/semantic/analyze.el @@ -226,8 +226,8 @@ Optional argument DESIRED-TYPE may be a non-type tag to analyze." ;; by an application that doesn't need to calculate the full ;; context. -(define-overloadable-function semantic-analyze-find-tag-sequence (sequence &optional - scope typereturn throwsym) +(define-overloadable-function semantic-analyze-find-tag-sequence + (sequence &optional scope typereturn throwsym &rest flags) "Attempt to find all tags in SEQUENCE. Optional argument LOCALVAR is the list of local variables to use when finding the details on the first element of SEQUENCE in case @@ -237,53 +237,67 @@ scoped. These are not local variables, but symbols available in a structure which doesn't need to be dereferenced. Optional argument TYPERETURN is a symbol in which the types of all found will be stored. If nil, that data is thrown away. -Optional argument THROWSYM specifies a symbol the throw on non-recoverable error.") +Optional argument THROWSYM specifies a symbol the throw on non-recoverable error. +Remaining arguments FLAGS are additional flags to apply when searching.") -(defun semantic-analyze-find-tag-sequence-default (sequence &optional - scope typereturn - throwsym) +(defun semantic-analyze-find-tag-sequence-default + ;; Note: overloadable fcn uses &rest, but it is a list already, so we don't need + ;; to do that in the -default. + (sequence &optional scope typereturn throwsym flags) "Attempt to find all tags in SEQUENCE. SCOPE are extra tags which are in scope. TYPERETURN is a symbol in which to place a list of tag classes that are found in SEQUENCE. -Optional argument THROWSYM specifies a symbol the throw on non-recoverable error." +Optional argument THROWSYM specifies a symbol the throw on non-recoverable error. +Remaining arguments FLAGS are additional flags to apply when searching. +This function knows of flags: + 'mustbeclassvariable" (let ((s sequence) ; copy of the sequence (tmp nil) ; tmp find variable (tag nil) ; tag return list (tagtype nil) ; tag types return list (fname nil) (miniscope (when scope (clone scope))) + (tagclass (if (memq 'mustbeclassvariable flags) + 'variable nil)) ) ;; First order check. Is this wholly contained in the typecache? (setq tmp (semanticdb-typecache-find sequence)) - - (if tmp - (progn + + (when tmp + (if (or (not tagclass) (semantic-tag-of-class-p tmp tagclass)) ;; We are effectively done... - (setq s nil) - (setq tag (list tmp))) + (setq s nil + tag (list tmp)) + ;; tagclass doesn't match, so fail this. + (setq tmp nil))) - ;; For the first entry, it better be a variable, but it might - ;; be in the local context too. - ;; NOTE: Don't forget c++ namespace foo::bar. - (setq tmp (or - ;; Is this tag within our scope. Scopes can sometimes - ;; shadow other things, so it goes first. - (and scope (semantic-scope-find (car s) nil scope)) - ;; Find the tag out there... somewhere, but not in scope - (semantic-analyze-find-tag (car s)) - )) + (unless tmp + ;; For tag class filtering, only apply the filter if the first entry + ;; is also the only entry. + (let ((lftagclass (if (= (length s) 1) tagclass))) - (if (and (listp tmp) (semantic-tag-p (car tmp))) - (setq tmp (semantic-analyze-select-best-tag tmp))) - (if (not (semantic-tag-p tmp)) - (if throwsym - (throw throwsym "Cannot find definition") - (error "Cannot find definition for \"%s\"" (car s)))) - (setq s (cdr s)) - (setq tag (cons tmp tag)) ; tag is nil here... - (setq fname (semantic-tag-file-name tmp)) - ) + ;; For the first entry, it better be a variable, but it might + ;; be in the local context too. + ;; NOTE: Don't forget c++ namespace foo::bar. + (setq tmp (or + ;; Is this tag within our scope. Scopes can sometimes + ;; shadow other things, so it goes first. + (and scope (semantic-scope-find (car s) lftagclass scope)) + ;; Find the tag out there... somewhere, but not in scope + (semantic-analyze-find-tag (car s) lftagclass) + )) + + (if (and (listp tmp) (semantic-tag-p (car tmp))) + (setq tmp (semantic-analyze-select-best-tag tmp lftagclass))) + (if (not (semantic-tag-p tmp)) + (if throwsym + (throw throwsym "Cannot find definition") + (error "Cannot find definition for \"%s\"" (car s)))) + (setq s (cdr s)) + (setq tag (cons tmp tag)) ; tag is nil here... + (setq fname (semantic-tag-file-name tmp)) + )) ;; For the middle entries (while s @@ -382,7 +396,8 @@ searches use the same arguments." ;; Search in the typecache. First entries in a sequence are ;; often there. (setq retlist (semanticdb-typecache-find name)) - (if retlist + (if (and retlist (or (not tagclass) + (semantic-tag-of-class-p retlist 'tagclass))) retlist (semantic-analyze-select-best-tag (semanticdb-strip-find-results @@ -647,7 +662,7 @@ Returns an object based on symbol `semantic-analyze-context'." ;; We have some sort of an assignment (condition-case err (setq asstag (semantic-analyze-find-tag-sequence - assign scope)) + assign scope nil nil 'mustbeclassvariable)) (error (semantic-analyze-push-error err) nil))) @@ -746,22 +761,26 @@ Some useful functions are found in `semantic-format-tag-functions'." "Send the tag SEQUENCE to standard out. Use PREFIX as a label. Use BUFF as a source of override methods." + ;; If there is no sequence, at least show the field as being empty. + (unless sequence (princ prefix) (princ "\n")) + + ;; Display the sequence column aligned. (while sequence - (princ prefix) - (cond - ((semantic-tag-p (car sequence)) - (princ (funcall semantic-analyze-summary-function - (car sequence)))) - ((stringp (car sequence)) - (princ "\"") - (princ (semantic--format-colorize-text (car sequence) 'variable)) - (princ "\"")) - (t - (princ (format "'%S" (car sequence))))) - (princ "\n") - (setq sequence (cdr sequence)) - (setq prefix (make-string (length prefix) ? )) - )) + (princ prefix) + (cond + ((semantic-tag-p (car sequence)) + (princ (funcall semantic-analyze-summary-function + (car sequence)))) + ((stringp (car sequence)) + (princ "\"") + (princ (semantic--format-colorize-text (car sequence) 'variable)) + (princ "\"")) + (t + (princ (format "'%S" (car sequence))))) + (princ "\n") + (setq sequence (cdr sequence)) + (setq prefix (make-string (length prefix) ? )) + )) (defmethod semantic-analyze-show ((context semantic-analyze-context)) "Insert CONTEXT into the current buffer in a nice way." diff --git a/lisp/cedet/semantic/analyze/complete.el b/lisp/cedet/semantic/analyze/complete.el index 0d2d5f998b5..9fa400122f7 100644 --- a/lisp/cedet/semantic/analyze/complete.el +++ b/lisp/cedet/semantic/analyze/complete.el @@ -112,8 +112,9 @@ in a buffer." Argument CONTEXT is an object specifying the locally derived context. The optional argument FLAGS changes which return options are returned. FLAGS can be any number of: - 'no-tc - do not apply data-type constraint. - 'no-unique - do not apply unique by name filtering." + 'no-tc - do not apply data-type constraint. + 'no-longprefix - ignore long multi-symbol prefixes. + 'no-unique - do not apply unique by name filtering." (let* ((a context) (desired-type (semantic-analyze-type-constraint a)) (desired-class (oref a prefixclass)) @@ -127,9 +128,16 @@ FLAGS can be any number of: (c nil) (any nil) (do-typeconstraint (not (memq 'no-tc flags))) + (do-longprefix (not (memq 'no-longprefix flags))) (do-unique (not (memq 'no-unique flags))) ) + (when (not do-longprefix) + ;; If we are not doing the long prefix, shorten all the key + ;; elements. + (setq prefix (list (car (reverse prefix))) + prefixtypes nil)) + ;; Calculate what our prefix string is so that we can ;; find all our matching text. (setq completetext (car (reverse prefix))) diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el index e9715cc1bb0..9aceca8af1b 100644 --- a/lisp/cedet/semantic/bovine/c.el +++ b/lisp/cedet/semantic/bovine/c.el @@ -270,7 +270,7 @@ Return the defined symbol as a special spp lex token." (if (looking-back "/\\*.*" beginning-of-define) (progn (goto-char (match-beginning 0)) - (1- (point))) + (point)) (point))))) ) @@ -501,7 +501,13 @@ code to parse." (hif-canonicalize) (error nil)))) - (let ((eval-form (eval parsedtokelist))) + (let ((eval-form (condition-case err + (eval parsedtokelist) + (error + (semantic-push-parser-warning + (format "Hideif forms produced an error. Assuming false.\n%S" err) + (point) (1+ (point))) + nil)))) (if (or (not eval-form) (and (numberp eval-form) (equal eval-form 0)));; ifdef line resulted in false diff --git a/lisp/cedet/semantic/bovine/grammar.el b/lisp/cedet/semantic/bovine/grammar.el index 46765789351..55df00245ff 100644 --- a/lisp/cedet/semantic/bovine/grammar.el +++ b/lisp/cedet/semantic/bovine/grammar.el @@ -395,16 +395,33 @@ manual." (insert ")\n") (buffer-string)))) +(defun bovine-grammar-calculate-source-on-path () + "Calculate the location of the source for current buffer. +The source directory is relative to some root in the load path." + (condition-case nil + (let* ((dir (nreverse (split-string (buffer-file-name) "/"))) + (newdir (car dir))) + (setq dir (cdr dir)) + ;; Keep trying the file name until it is on the path. + (while (and (not (locate-library newdir)) dir) + (setq newdir (concat (car dir) "/" newdir) + dir (cdr dir))) + (if (not dir) + (buffer-name) + newdir)) + (error (buffer-name)))) + (defun bovine-grammar-setupcode-builder () "Return the text of the setup code." (format "(setq semantic--parse-table %s\n\ semantic-debug-parser-source %S\n\ semantic-debug-parser-class 'semantic-bovine-debug-parser + semantic-debug-parser-debugger-source 'semantic/bovine/debug semantic-flex-keywords-obarray %s\n\ %s)" (semantic-grammar-parsetable) - (buffer-name) + (bovine-grammar-calculate-source-on-path) (semantic-grammar-keywordtable) (let ((mode (semantic-grammar-languagemode))) ;; Is there more than one major mode? diff --git a/lisp/cedet/semantic/bovine/scm.el b/lisp/cedet/semantic/bovine/scm.el index 4fa34dfcc36..4e01c33cf6d 100644 --- a/lisp/cedet/semantic/bovine/scm.el +++ b/lisp/cedet/semantic/bovine/scm.el @@ -69,7 +69,7 @@ Attempts a simple prototype for calling or using TAG." ;; Note: Analyzer from Henry S. Thompson (define-lex-regex-analyzer semantic-lex-scheme-symbol "Detect and create symbol and keyword tokens." - "\\(\\sw\\([:]\\|\\sw\\|\\s_\\)+\\)" + "\\(\\sw\\([:]\\|\\sw\\|\\s_\\)*\\)" ;; (message (format "symbol: %s" (match-string 0))) (semantic-lex-push-token (semantic-lex-token diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index ff9bc25b458..91f9daf7547 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el @@ -118,6 +118,7 @@ (eval-when-compile ;; For the semantic-find-tags-for-completion macro. (require 'semantic/find)) +(require 'semantic/db-find) ;For type semanticdb-find-result-with-nil. ;;; Code: diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el index 7ff1538dd2b..f37aa07ebe6 100644 --- a/lisp/cedet/semantic/db-el.el +++ b/lisp/cedet/semantic/db-el.el @@ -223,7 +223,9 @@ TOKTYPE is a hint to the type of tag desired." (symbol-name sym) "class" (semantic-elisp-desymbolify - (eieio--class-public-a (class-v semanticdb-project-database))) ;; slots + ;; FIXME: This only gives the instance slots and ignores the + ;; class-allocated slots. + (eieio--class-public-a (find-class semanticdb-project-database))) ;; slots ;FIXME: eieio-- (semantic-elisp-desymbolify (eieio-class-parents sym)) ;; parents )) ((not toktype) diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el index 76a49ddc548..0732f225779 100644 --- a/lisp/cedet/semantic/db.el +++ b/lisp/cedet/semantic/db.el @@ -124,6 +124,18 @@ for a new table not associated with a buffer." If the buffer is not in memory, load it with `find-file-noselect'." nil) +;; This generic method allows for sloppier coding. Many +;; functions treat "table" as something that could be a buffer, +;; file name, or other. This makes use of table more robust. +(defmethod semanticdb-full-filename (buffer-or-string) + "Fetch the full filename that BUFFER-OR-STRING refers to. +This uses semanticdb to get a better file name." + (cond ((bufferp buffer-or-string) + (with-current-buffer buffer-or-string + (semanticdb-full-filename semanticdb-current-table))) + ((and (stringp buffer-or-string) (file-exists-p buffer-or-string)) + (expand-file-name buffer-or-string)))) + (defmethod semanticdb-full-filename ((obj semanticdb-abstract-table)) "Fetch the full filename that OBJ refers to. Abstract tables do not have file names associated with them." @@ -469,7 +481,7 @@ other than :table." (let ((cache (oref table cache)) (obj nil)) (while (and (not obj) cache) - (if (eq (eieio--object-class (car cache)) desired-class) + (if (eq (eieio-object-class (car cache)) desired-class) (setq obj (car cache))) (setq cache (cdr cache))) (if obj @@ -520,7 +532,7 @@ other than :table." (let ((cache (oref db cache)) (obj nil)) (while (and (not obj) cache) - (if (eq (eieio--object-class (car cache)) desired-class) + (if (eq (eieio-object-class (car cache)) desired-class) (setq obj (car cache))) (setq cache (cdr cache))) (if obj diff --git a/lisp/cedet/semantic/debug.el b/lisp/cedet/semantic/debug.el index 80081efd239..91819b89bd1 100644 --- a/lisp/cedet/semantic/debug.el +++ b/lisp/cedet/semantic/debug.el @@ -57,6 +57,12 @@ to one of the parser generators.") ;;;###autoload (make-variable-buffer-local 'semantic-debug-parser-class) +;;;###autoload +(defvar semantic-debug-parser-debugger-source nil + "Location of the debug parser class.") +;;;###autoload +(make-variable-buffer-local 'semantic-debug-parser-source) + (defvar semantic-debug-enabled nil "Non-nil when debugging a parser.") @@ -104,6 +110,7 @@ These buffers are brought into view when layout occurs.") "The currently displayed frame.") (overlays :type list :initarg nil + :initform nil :documentation "Any active overlays being used to show the debug position.") ) @@ -323,15 +330,18 @@ Argument ONOFF is non-nil when we are entering debug mode. (oref semantic-debug-current-interface parser-buffer) (use-local-map (oref semantic-debug-current-interface parser-local-map)) + (setq buffer-read-only nil) ) (with-current-buffer (oref semantic-debug-current-interface source-buffer) (use-local-map (oref semantic-debug-current-interface source-local-map)) + (setq buffer-read-only nil) ) (run-hooks 'semantic-debug-exit-hook) ))) +;;;###autoload (defun semantic-debug () "Parse the current buffer and run in debug mode." (interactive) @@ -341,6 +351,9 @@ Argument ONOFF is non-nil when we are entering debug mode. (error "This major mode does not support parser debugging")) ;; Clear the cache to force a full reparse. (semantic-clear-toplevel-cache) + ;; Load in the debugger for this file. + (when semantic-debug-parser-debugger-source + (require semantic-debug-parser-debugger-source)) ;; Do the parse (let ((semantic-debug-enabled t) ;; Create an interface diff --git a/lisp/cedet/semantic/doc.el b/lisp/cedet/semantic/doc.el index 2f9a570eb31..fdaeb95d001 100644 --- a/lisp/cedet/semantic/doc.el +++ b/lisp/cedet/semantic/doc.el @@ -118,7 +118,8 @@ If NOSNARF is 'lex, then return the lex token." (setq ct (concat (substring ct 0 (match-beginning 0)) (substring ct (match-end 0))))) ;; Remove comment delimiter at the end of the string. - (when (string-match (concat (regexp-quote comment-end) "$") ct) + (when (and comment-end (not (string= comment-end "")) + (string-match (concat (regexp-quote comment-end) "$") ct)) (setq ct (substring ct 0 (match-beginning 0))))) ;; Now return the text. ct)))) diff --git a/lisp/cedet/semantic/lex-spp.el b/lisp/cedet/semantic/lex-spp.el index 67f944a09ae..164454c481c 100644 --- a/lisp/cedet/semantic/lex-spp.el +++ b/lisp/cedet/semantic/lex-spp.el @@ -823,7 +823,7 @@ ARGVALUES are values for any arg list, or nil." ;; An analyzer that will push tokens from a macro in place ;; of the macro symbol. ;; -(defun semantic-lex-spp-anlyzer-do-replace (sym val beg end) +(defun semantic-lex-spp-analyzer-do-replace (sym val beg end) "Do the lexical replacement for SYM with VAL. Argument BEG and END specify the bounds of SYM in the buffer." (if (not val) @@ -863,6 +863,9 @@ Argument BEG and END specify the bounds of SYM in the buffer." (setq semantic-lex-end-point end) ) )) +(define-obsolete-function-alias + 'semantic-lex-spp-anlyzer-do-replace + 'semantic-lex-spp-analyzer-do-replace "25.1") (defvar semantic-lex-spp-replacements-enabled t "Non-nil means do replacements when finding keywords. diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el index 994d85c7b2c..d9513981bc0 100644 --- a/lisp/cedet/semantic/symref.el +++ b/lisp/cedet/semantic/symref.el @@ -333,6 +333,25 @@ Use the `semantic-symref-hit-tags' method to get this list.") ) )) +(defvar semantic-symref-recently-opened-buffers nil + "List of buffers opened by `semantic-symref-result-get-tags'.") + +(defun semantic-symref-cleanup-recent-buffers-fcn () + "Hook function to be used in 'post-command-hook' to cleanup buffers. +Buffers collected during symref can result in some files being +opened multiple times for one operation. This will keep buffers open +until the next command is executed." + ;;(message "To Clean Up: %S" semantic-symref-recently-opened-buffers) + (mapc (lambda (buff) + ;; Don't delete any buffers which are being used + ;; upon completion of some command. + (when (not (get-buffer-window buff)) + (kill-buffer buff))) + semantic-symref-recently-opened-buffers) + (setq semantic-symref-recently-opened-buffers nil) + (remove-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn) + ) + (defmethod semantic-symref-result-get-tags ((result semantic-symref-result) &optional open-buffers) "Get the list of tags from the symref result RESULT. @@ -347,75 +366,19 @@ already." (txt (oref (oref result :created-by) :searchfor)) (searchtype (oref (oref result :created-by) :searchtype)) (ans nil) - (out nil) - (buffs-to-kill nil)) + (out nil)) (save-excursion - (setq - ans - (mapcar - (lambda (hit) - (let* ((line (car hit)) - (file (cdr hit)) - (buff (find-buffer-visiting file)) - (tag nil) - ) - (cond - ;; We have a buffer already. Check it out. - (buff - (set-buffer buff)) - - ;; We have a table, but it needs a refresh. - ;; This means we should load in that buffer. - (t - (let ((kbuff - (if open-buffers - ;; Even if we keep the buffers open, don't - ;; let EDE ask lots of questions. - (let ((ede-auto-add-method 'never)) - (find-file-noselect file t)) - ;; When not keeping the buffers open, then - ;; don't setup all the fancy froo-froo features - ;; either. - (semantic-find-file-noselect file t)))) - (set-buffer kbuff) - (setq buffs-to-kill (cons kbuff buffs-to-kill)) - (semantic-fetch-tags) - )) - ) - - ;; Too much baggage in goto-line - ;; (goto-line line) - (goto-char (point-min)) - (forward-line (1- line)) - - ;; Search forward for the matching text - (when (re-search-forward (regexp-quote txt) - (point-at-eol) - t) - (goto-char (match-beginning 0)) - ) - - (setq tag (semantic-current-tag)) - - ;; If we are searching for a tag, but bound the tag we are looking - ;; for, see if it resides in some other parent tag. - ;; - ;; If there is no parent tag, then we still need to hang the originator - ;; in our list. - (when (and (eq searchtype 'symbol) - (string= (semantic-tag-name tag) txt)) - (setq tag (or (semantic-current-tag-parent) tag))) - - ;; Copy the tag, which adds a :filename property. - (when tag - (setq tag (semantic-tag-copy tag nil t)) - ;; Ad this hit to the tag. - (semantic--tag-put-property tag :hit (list line))) - tag)) - lines))) + (setq ans (mapcar + (lambda (hit) + (semantic-symref-hit-to-tag-via-buffer + hit txt searchtype open-buffers)) + lines))) ;; Kill off dead buffers, unless we were requested to leave them open. - (when (not open-buffers) - (mapc 'kill-buffer buffs-to-kill)) + (if (not open-buffers) + (add-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn) + ;; Else, just clear the saved buffers so they aren't deleted later. + (setq semantic-symref-recently-opened-buffers nil) + ) ;; Strip out duplicates. (dolist (T ans) (if (and T (not (semantic-equivalent-tag-p (car out) T))) @@ -429,6 +392,111 @@ already." ;; Out is reversed... twice (oset result :hit-tags (nreverse out))))) +(defun semantic-symref-hit-to-tag-via-db (hit searchtxt searchtype) + "Convert the symref HIT into a TAG by looking up the tag via a database. +Return the Semantic tag associated with HIT. +SEARCHTXT is the text that is being searched for. +Used to narrow the in-buffer search. +SEARCHTYPE is the type of search (such as 'symbol or 'tagname). +If there is no database, of if the searchtype is wrong, return nil." + ;; Allowed search types for this mechanism: + ;; tagname, tagregexp, tagcompletions + (if (not (memq searchtype '(tagname tagregexp tagcompletions))) + nil + (let* ((line (car hit)) + (file (cdr hit)) + ;; FAIL here vv - don't load is not obeyed if no table found. + (db (semanticdb-file-table-object file t)) + (found nil) + (hit nil) + ) + (cond ((eq searchtype 'tagname) + (setq found (semantic-find-tags-by-name searchtxt db))) + ((eq searchtype 'tagregexp) + (setq found (semantic-find-tags-by-name-regexp searchtxt db))) + ((eq searchtype 'tagcompletions) + (setq found (semantic-find-tags-for-completion searchtxt db))) + ) + ;; Loop over FOUND to see if we can line up a match with a line number. + (when (= (length found) 1) + (setq hit (car found))) + + ;; FAIL here ^^ - symref finds line numbers, but our DB uses character locations. + ;; as such, this is a cheat and we will need to give up. + hit))) + +(defun semantic-symref-hit-to-tag-via-buffer (hit searchtxt searchtype &optional open-buffers) + "Convert the symref HIT into a TAG by looking up the tag via a buffer. +Return the Semantic tag associated with HIT. +SEARCHTXT is the text that is being searched for. +Used to narrow the in-buffer search. +SEARCHTYPE is the type of search (such as 'symbol or 'tagname). +Optional OPEN-BUFFERS, when nil will use a faster version of +`find-file' when a file needs to be opened. If non-nil, then +normal buffer initialization will be used. +This function will leave buffers loaded from a file open, but +will add buffers that must be opened to `semantic-symref-recently-opened-buffers'. +Any caller MUST deal with that variable, either clearing it, or deleting the +buffers that were opened." + (let* ((line (car hit)) + (file (cdr hit)) + (buff (find-buffer-visiting file)) + (tag nil) + ) + (cond + ;; We have a buffer already. Check it out. + (buff + (set-buffer buff)) + + ;; We have a table, but it needs a refresh. + ;; This means we should load in that buffer. + (t + (let ((kbuff + (if open-buffers + ;; Even if we keep the buffers open, don't + ;; let EDE ask lots of questions. + (let ((ede-auto-add-method 'never)) + (find-file-noselect file t)) + ;; When not keeping the buffers open, then + ;; don't setup all the fancy froo-froo features + ;; either. + (semantic-find-file-noselect file t)))) + (set-buffer kbuff) + (push kbuff semantic-symref-recently-opened-buffers) + (semantic-fetch-tags) + )) + ) + + ;; Too much baggage in goto-line + ;; (goto-line line) + (goto-char (point-min)) + (forward-line (1- line)) + + ;; Search forward for the matching text + (when (re-search-forward (regexp-quote searchtxt) + (point-at-eol) + t) + (goto-char (match-beginning 0)) + ) + + (setq tag (semantic-current-tag)) + + ;; If we are searching for a tag, but bound the tag we are looking + ;; for, see if it resides in some other parent tag. + ;; + ;; If there is no parent tag, then we still need to hang the originator + ;; in our list. + (when (and (eq searchtype 'symbol) + (string= (semantic-tag-name tag) searchtxt)) + (setq tag (or (semantic-current-tag-parent) tag))) + + ;; Copy the tag, which adds a :filename property. + (when tag + (setq tag (semantic-tag-copy tag nil t)) + ;; Ad this hit to the tag. + (semantic--tag-put-property tag :hit (list line))) + tag)) + ;;; SYMREF TOOLS ;; ;; The base symref tool provides something to hang new tools off of diff --git a/lisp/cedet/semantic/wisent/comp.el b/lisp/cedet/semantic/wisent/comp.el index 9e25b52e8ce..2e5d2a43395 100644 --- a/lisp/cedet/semantic/wisent/comp.el +++ b/lisp/cedet/semantic/wisent/comp.el @@ -41,6 +41,7 @@ ;;; Code: (require 'semantic/wisent) +(eval-when-compile (require 'cl)) ;;;; ------------------- ;;;; Misc. useful things @@ -66,18 +67,23 @@ (defmacro wisent-defcontext (name &rest vars) "Define a context NAME that will bind variables VARS." + (declare (indent 1)) (let* ((context (wisent-context-name name)) - (bindings (mapcar #'(lambda (v) (list 'defvar v)) vars))) - `(eval-when-compile - ,@bindings - (defvar ,context ',vars)))) -(put 'wisent-defcontext 'lisp-indent-function 1) + (declarations (mapcar #'(lambda (v) (list 'defvar v)) vars))) + `(progn + ,@declarations + (eval-when-compile + (defvar ,context ',vars))))) (defmacro wisent-with-context (name &rest body) "Bind variables in context NAME then eval BODY." - `(let* ,(wisent-context-bindings name) - ,@body)) -(put 'wisent-with-context 'lisp-indent-function 1) + (declare (indent 1)) + (let ((bindings (wisent-context-bindings name))) + `(progn + ,@(mapcar (lambda (binding) `(defvar ,(or (car-safe binding) binding))) + bindings) + (let* ,bindings + ,@body)))) ;; A naive implementation of data structures! But it suffice here ;-) @@ -2896,7 +2902,7 @@ references found in BODY, and XBODY is BODY expression with (progn (if (wisent-check-$N body n) ;; Accumulate $i symbol - (add-to-list 'found body)) + (pushnew body found :test #'equal)) (cons found body)) ;; BODY is a list, expand inside it (let (xbody sexpr) @@ -2916,7 +2922,7 @@ references found in BODY, and XBODY is BODY expression with ;; $i symbol ((wisent-check-$N sexpr n) ;; Accumulate $i symbol - (add-to-list 'found sexpr)) + (pushnew sexpr found :test #'equal)) ) ;; Accumulate expanded forms (setq xbody (nconc xbody (list sexpr)))) diff --git a/lisp/cedet/srecode/args.el b/lisp/cedet/srecode/args.el index b4977f0882e..8c03e17d7b3 100644 --- a/lisp/cedet/srecode/args.el +++ b/lisp/cedet/srecode/args.el @@ -101,35 +101,35 @@ do not contain any text from preceding or following text." (defun srecode-semantic-handle-:time (dict) "Add macros into the dictionary DICT based on the current :time." ;; DATE Values - (srecode-dictionary-set-value - dict "YEAR" (format-time-string "%Y" (current-time))) - (srecode-dictionary-set-value - dict "MONTHNAME" (format-time-string "%B" (current-time))) - (srecode-dictionary-set-value - dict "MONTH" (format-time-string "%m" (current-time))) - (srecode-dictionary-set-value - dict "DAY" (format-time-string "%d" (current-time))) - (srecode-dictionary-set-value - dict "WEEKDAY" (format-time-string "%a" (current-time))) - ;; Time Values - (srecode-dictionary-set-value - dict "HOUR" (format-time-string "%H" (current-time))) - (srecode-dictionary-set-value - dict "HOUR12" (format-time-string "%l" (current-time))) - (srecode-dictionary-set-value - dict "AMPM" (format-time-string "%p" (current-time))) - (srecode-dictionary-set-value - dict "MINUTE" (format-time-string "%M" (current-time))) - (srecode-dictionary-set-value - dict "SECOND" (format-time-string "%S" (current-time))) - (srecode-dictionary-set-value - dict "TIMEZONE" (format-time-string "%Z" (current-time))) - ;; Convenience pre-packed date/time - (srecode-dictionary-set-value - dict "DATE" (format-time-string "%D" (current-time))) - (srecode-dictionary-set-value - dict "TIME" (format-time-string "%X" (current-time))) - ) + (let ((now (current-time))) + (srecode-dictionary-set-value + dict "YEAR" (format-time-string "%Y" now)) + (srecode-dictionary-set-value + dict "MONTHNAME" (format-time-string "%B" now)) + (srecode-dictionary-set-value + dict "MONTH" (format-time-string "%m" now)) + (srecode-dictionary-set-value + dict "DAY" (format-time-string "%d" now)) + (srecode-dictionary-set-value + dict "WEEKDAY" (format-time-string "%a" now)) + ;; Time Values + (srecode-dictionary-set-value + dict "HOUR" (format-time-string "%H" now)) + (srecode-dictionary-set-value + dict "HOUR12" (format-time-string "%l" now)) + (srecode-dictionary-set-value + dict "AMPM" (format-time-string "%p" now)) + (srecode-dictionary-set-value + dict "MINUTE" (format-time-string "%M" now)) + (srecode-dictionary-set-value + dict "SECOND" (format-time-string "%S" now)) + (srecode-dictionary-set-value + dict "TIMEZONE" (format-time-string "%Z" now)) + ;; Convenience pre-packed date/time + (srecode-dictionary-set-value + dict "DATE" (format-time-string "%D" now)) + (srecode-dictionary-set-value + dict "TIME" (format-time-string "%X" now)))) ;;; :file ARGUMENT HANDLING ;; diff --git a/lisp/cedet/srecode/java.el b/lisp/cedet/srecode/java.el index f6cd3f893da..1b1c184fe87 100644 --- a/lisp/cedet/srecode/java.el +++ b/lisp/cedet/srecode/java.el @@ -40,16 +40,15 @@ FILENAME_AS_CLASS - file converted to a Java class name." (fnox (file-name-sans-extension fsym)) (dir (file-name-directory (buffer-file-name))) (fpak fsym) + (proj (ede-current-project)) + (pths (ede-source-paths proj 'java-mode)) ) (while (string-match "\\.\\| " fpak) (setq fpak (replace-match "_" t t fpak))) ;; We can extract package from: ;; 1) a java EDE project source paths, - (cond ((ede-current-project) - (let* ((proj (ede-current-project)) - (pths (ede-source-paths proj 'java-mode)) - (pth) - (res)) + (cond ((and proj pths) + (let* ((pth) (res)) (while (and (not res) (setq pth (expand-file-name (car pths)))) (when (string-match pth dir) diff --git a/lisp/cedet/srecode/srt-mode.el b/lisp/cedet/srecode/srt-mode.el index 48a4865e176..dfc1df805af 100644 --- a/lisp/cedet/srecode/srt-mode.el +++ b/lisp/cedet/srecode/srt-mode.el @@ -233,7 +233,7 @@ we can tell font lock about them.") "Provide help for working with macros in a template." (interactive) (let* ((root 'srecode-template-inserter) - (chl (eieio--class-children (class-v root))) + (chl (eieio-class-children root)) (ess (srecode-template-get-escape-start)) (ees (srecode-template-get-escape-end)) ) @@ -249,7 +249,7 @@ we can tell font lock about them.") (showexample t) ) (setq chl (cdr chl)) - (setq chl (append (eieio--class-children (class-v C)) chl)) + (setq chl (append (eieio-class-children C) chl)) (catch 'skip (when (eq C 'srecode-template-inserter-section-end) diff --git a/lisp/comint.el b/lisp/comint.el index da3782717c0..3085052087c 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -1475,7 +1475,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'." (or ;; 1. First try searching in the initial comint text (funcall search-fun string - (if isearch-forward bound (comint-line-beginning-position)) + (if isearch-forward bound (field-beginning)) noerror) ;; 2. If the above search fails, start putting next/prev history ;; elements in the comint successively, and search the string @@ -1491,7 +1491,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'." (when (null comint-input-ring-index) (error "End of history; no next item")) (comint-next-input 1) - (goto-char (comint-line-beginning-position))) + (goto-char (field-beginning))) (t ;; Signal an error here explicitly, because ;; `comint-previous-input' doesn't signal an error. @@ -1509,7 +1509,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'." (unless isearch-forward ;; For backward search, don't search ;; in the comint prompt - (comint-line-beginning-position)) + (field-beginning)) noerror))) ;; Return point of the new search result (point)) @@ -1557,7 +1557,7 @@ or to the last history element for a backward search." (comint-goto-input (1- (ring-length comint-input-ring))) (comint-goto-input nil)) (setq isearch-success t) - (goto-char (if isearch-forward (comint-line-beginning-position) (point-max)))) + (goto-char (if isearch-forward (field-beginning) (point-max)))) (defun comint-history-isearch-push-state () "Save a function restoring the state of input history search. @@ -1781,7 +1781,7 @@ Similarly for Soar, Scheme, etc." (widen) (let* ((pmark (process-mark proc)) (intxt (if (>= (point) (marker-position pmark)) - (progn (if comint-eol-on-send (end-of-line)) + (progn (if comint-eol-on-send (goto-char (field-end))) (buffer-substring pmark (point))) (let ((copy (funcall comint-get-old-input))) (goto-char pmark) diff --git a/lisp/completion.el b/lisp/completion.el index 7e5c2143870..c2a20056ccc 100644 --- a/lisp/completion.el +++ b/lisp/completion.el @@ -373,7 +373,7 @@ Used to decide whether to save completions.") (defvar cmpl-preceding-syntax) -(defvar completion-string) +(defvar cmpl--completion-string) ;;--------------------------------------------------------------------------- ;; Low level tools @@ -435,8 +435,7 @@ Used to decide whether to save completions.") (defun cmpl-hours-since-origin () - (let ((time (current-time))) - (floor (+ (* 65536.0 (nth 0 time)) (nth 1 time)) 3600))) + (floor (float-time) 3600)) ;;--------------------------------------------------------------------------- ;; "Symbol" parsing functions @@ -1083,7 +1082,7 @@ Must be called after `find-exact-completion'." (cmpl-db-debug-p ;; not found, error if debug mode (error "Completion entry exists but not on prefix list - %s" - completion-string)) + cmpl--completion-string)) (inside-locate-completion-entry ;; recursive error: really scrod (locate-completion-db-error)) @@ -1150,73 +1149,75 @@ COMPLETION-STRING must be longer than `completion-prefix-min-length'. Updates the saved string with the supplied string. This must be very fast. Returns the completion entry." - ;; Handle pending acceptance - (if completion-to-accept (accept-completion)) - ;; test if already in database - (if (setq cmpl-db-entry (find-exact-completion completion-string)) - ;; found - (let* ((prefix-entry (find-cmpl-prefix-entry - (substring cmpl-db-downcase-string 0 - completion-prefix-min-length))) - (splice-ptr (locate-completion-entry cmpl-db-entry prefix-entry)) - (cmpl-ptr (cdr splice-ptr))) - ;; update entry - (set-completion-string cmpl-db-entry completion-string) - ;; move to head (if necessary) - (cond (splice-ptr - ;; These should all execute atomically but it is not fatal if - ;; they don't. - ;; splice it out - (or (setcdr splice-ptr (cdr cmpl-ptr)) - ;; fix up tail if necessary - (set-cmpl-prefix-entry-tail prefix-entry splice-ptr)) - ;; splice in at head - (setcdr cmpl-ptr (cmpl-prefix-entry-head prefix-entry)) - (set-cmpl-prefix-entry-head prefix-entry cmpl-ptr))) - cmpl-db-entry) - ;; not there - (let (;; create an entry - (entry (list (make-completion completion-string))) - ;; setup the prefix - (prefix-entry (find-cmpl-prefix-entry - (substring cmpl-db-downcase-string 0 - completion-prefix-min-length)))) - (cond (prefix-entry - ;; Splice in at head - (setcdr entry (cmpl-prefix-entry-head prefix-entry)) - (set-cmpl-prefix-entry-head prefix-entry entry)) - (t - ;; Start new prefix entry - (set cmpl-db-prefix-symbol (make-cmpl-prefix-entry entry)))) - ;; Add it to the symbol - (set cmpl-db-symbol (car entry))))) + (let ((cmpl--completion-string completion-string)) + ;; Handle pending acceptance + (if completion-to-accept (accept-completion)) + ;; test if already in database + (if (setq cmpl-db-entry (find-exact-completion completion-string)) + ;; found + (let* ((prefix-entry (find-cmpl-prefix-entry + (substring cmpl-db-downcase-string 0 + completion-prefix-min-length))) + (splice-ptr (locate-completion-entry cmpl-db-entry prefix-entry)) + (cmpl-ptr (cdr splice-ptr))) + ;; update entry + (set-completion-string cmpl-db-entry completion-string) + ;; move to head (if necessary) + (cond (splice-ptr + ;; These should all execute atomically but it is not fatal if + ;; they don't. + ;; splice it out + (or (setcdr splice-ptr (cdr cmpl-ptr)) + ;; fix up tail if necessary + (set-cmpl-prefix-entry-tail prefix-entry splice-ptr)) + ;; splice in at head + (setcdr cmpl-ptr (cmpl-prefix-entry-head prefix-entry)) + (set-cmpl-prefix-entry-head prefix-entry cmpl-ptr))) + cmpl-db-entry) + ;; not there + (let ( ;; create an entry + (entry (list (make-completion completion-string))) + ;; setup the prefix + (prefix-entry (find-cmpl-prefix-entry + (substring cmpl-db-downcase-string 0 + completion-prefix-min-length)))) + (cond (prefix-entry + ;; Splice in at head + (setcdr entry (cmpl-prefix-entry-head prefix-entry)) + (set-cmpl-prefix-entry-head prefix-entry entry)) + (t + ;; Start new prefix entry + (set cmpl-db-prefix-symbol (make-cmpl-prefix-entry entry)))) + ;; Add it to the symbol + (set cmpl-db-symbol (car entry)))))) (defun delete-completion (completion-string) "Delete the completion from the database. String must be longer than `completion-prefix-min-length'." ;; Handle pending acceptance - (if completion-to-accept (accept-completion)) - (if (setq cmpl-db-entry (find-exact-completion completion-string)) - ;; found - (let* ((prefix-entry (find-cmpl-prefix-entry - (substring cmpl-db-downcase-string 0 - completion-prefix-min-length))) - (splice-ptr (locate-completion-entry cmpl-db-entry prefix-entry))) - ;; delete symbol reference - (set cmpl-db-symbol nil) - ;; remove from prefix list - (cond (splice-ptr - ;; not at head - (or (setcdr splice-ptr (cdr (cdr splice-ptr))) - ;; fix up tail if necessary - (set-cmpl-prefix-entry-tail prefix-entry splice-ptr))) - (t - ;; at head - (or (set-cmpl-prefix-entry-head + (let ((cmpl--completion-string completion-string)) + (if completion-to-accept (accept-completion)) + (if (setq cmpl-db-entry (find-exact-completion completion-string)) + ;; found + (let* ((prefix-entry (find-cmpl-prefix-entry + (substring cmpl-db-downcase-string 0 + completion-prefix-min-length))) + (splice-ptr (locate-completion-entry cmpl-db-entry prefix-entry))) + ;; delete symbol reference + (set cmpl-db-symbol nil) + ;; remove from prefix list + (cond (splice-ptr + ;; not at head + (or (setcdr splice-ptr (cdr (cdr splice-ptr))) + ;; fix up tail if necessary + (set-cmpl-prefix-entry-tail prefix-entry splice-ptr))) + (t + ;; at head + (or (set-cmpl-prefix-entry-head prefix-entry (cdr (cmpl-prefix-entry-head prefix-entry))) - ;; List is now empty - (set cmpl-db-prefix-symbol nil))))) - (error "Unknown completion `%s'" completion-string))) + ;; List is now empty + (set cmpl-db-prefix-symbol nil))))) + (error "Unknown completion `%s'" completion-string)))) ;; Tests -- ;; - Add and Find - @@ -1312,7 +1313,7 @@ are specified." (delete-completion string)) (defun accept-completion () - "Accepts the pending completion in `completion-to-accept'. + "Accept the pending completion in `completion-to-accept'. This bumps num-uses. Called by `add-completion-to-head' and `completion-search-reset'." (let ((string completion-to-accept) @@ -1950,7 +1951,7 @@ If file name is not specified, use `save-completions-file-name'." (kept-old-versions 0) (kept-new-versions completions-file-versions-kept) last-use-time - (current-time (cmpl-hours-since-origin)) + (this-use-time (cmpl-hours-since-origin)) (total-in-db 0) (total-perm 0) (total-saved 0) @@ -1982,13 +1983,13 @@ If file name is not specified, use `save-completions-file-name'." ;; or if (if (> (completion-num-uses completion) 0) ;; it's been used - (setq last-use-time current-time) + (setq last-use-time this-use-time) ;; or it was saved before and (and last-use-time ;; save-completions-retention-time is nil (or (not save-completions-retention-time) ;; or time since last use is < ...retention-time* - (< (- current-time last-use-time) + (< (- this-use-time last-use-time) save-completions-retention-time))))) ;; write to file (setq total-saved (1+ total-saved)) @@ -2157,26 +2158,27 @@ Patched to remove the most recent completion." ;; to work) ;; All common separators (eg. space "(" ")" """) characters go through a -;; function to add new words to the list of words to complete from: -;; COMPLETION-SEPARATOR-SELF-INSERT-COMMAND (arg). +;; function to add new words to the list of words to complete from. ;; If the character before this was an alpha-numeric then this adds the ;; symbol before point to the completion list (using ADD-COMPLETION). -(defun completion-separator-self-insert-command (arg) - (interactive "p") - (if (command-remapping 'self-insert-command) - (funcall (command-remapping 'self-insert-command) arg) - (use-completion-before-separator) - (self-insert-command arg))) +(defvar completion-separator-chars + (append " !%^&()=`|{}[];\\'#,?" + ;; We include period and colon even though they are symbol + ;; chars because : + ;; - in text we want to pick up the last word in a sentence. + ;; - in C pointer refs. we want to pick up the first symbol + ;; - it won't make a difference for lisp mode (package names + ;; are short) + ".:" nil)) -(defun completion-separator-self-insert-autofilling (arg) - (interactive "p") - (if (command-remapping 'self-insert-command) - (funcall (command-remapping 'self-insert-command) arg) - (use-completion-before-separator) - (self-insert-command arg) - (and auto-fill-function - (funcall auto-fill-function)))) +(defun completion--post-self-insert () + (when (memq last-command-event completion-separator-chars) + (let ((after-pos (electric--after-char-pos))) + (when after-pos + (save-excursion + (goto-char (1- after-pos)) + (use-completion-before-separator)))))) ;;----------------------------------------------- ;; Wrapping Macro @@ -2245,9 +2247,8 @@ TYPE is the type of the wrapper to be added. Can be :before or :under." (completion-def-wrapper 'electric-c-semi :separator) (defun completion-c-mode-hook () (setq completion-syntax-table completion-c-syntax-table) - (local-set-key "+" 'completion-separator-self-insert-command) - (local-set-key "*" 'completion-separator-self-insert-command) - (local-set-key "/" 'completion-separator-self-insert-command)) + (setq-local completion-separator-chars + (append "+*/" completion-separator-chars))) ;; FORTRAN mode diffs. (these are defined when fortran is called) @@ -2260,10 +2261,8 @@ TYPE is the type of the wrapper to be added. Can be :before or :under." (defun completion-setup-fortran-mode () (setq completion-syntax-table completion-fortran-syntax-table) - (local-set-key "+" 'completion-separator-self-insert-command) - (local-set-key "-" 'completion-separator-self-insert-command) - (local-set-key "*" 'completion-separator-self-insert-command) - (local-set-key "/" 'completion-separator-self-insert-command)) + (setq-local completion-separator-chars + (append "+-*/" completion-separator-chars))) ;; Enable completion mode. @@ -2282,15 +2281,16 @@ if ARG is omitted or nil." ;; This is always good, not specific to dynamic-completion-mode. (define-key function-key-map [C-return] [?\C-\r]) - (dolist (x '((find-file-hook . completion-find-file-hook) - (pre-command-hook . completion-before-command) + (dolist (x `((find-file-hook . ,#'completion-find-file-hook) + (pre-command-hook . ,#'completion-before-command) ;; Save completions when killing Emacs. - (kill-emacs-hook . kill-emacs-save-completions) + (kill-emacs-hook . ,#'kill-emacs-save-completions) + (post-self-insert-hook . ,#'completion--post-self-insert) ;; Install the appropriate mode tables. - (lisp-mode-hook . completion-lisp-mode-hook) - (c-mode-hook . completion-c-mode-hook) - (fortran-mode-hook . completion-setup-fortran-mode))) + (lisp-mode-hook . ,#'completion-lisp-mode-hook) + (c-mode-hook . ,#'completion-c-mode-hook) + (fortran-mode-hook . ,#'completion-setup-fortran-mode))) (if dynamic-completion-mode (add-hook (car x) (cdr x)) (remove-hook (car x) (cdr x)))) @@ -2316,44 +2316,7 @@ if ARG is omitted or nil." ;; cumb ;; Patches to standard keymaps insert completions - ([remap kill-region] . completion-kill-region) - - ;; Separators - ;; We've used the completion syntax table given as a guide. - ;; - ;; Global separator chars. - ;; We left out because there are too many special - ;; cases for it. Also, in normal coding it's rarely typed - ;; after a word. - (" " . completion-separator-self-insert-autofilling) - ("!" . completion-separator-self-insert-command) - ("%" . completion-separator-self-insert-command) - ("^" . completion-separator-self-insert-command) - ("&" . completion-separator-self-insert-command) - ("(" . completion-separator-self-insert-command) - (")" . completion-separator-self-insert-command) - ("=" . completion-separator-self-insert-command) - ("`" . completion-separator-self-insert-command) - ("|" . completion-separator-self-insert-command) - ("{" . completion-separator-self-insert-command) - ("}" . completion-separator-self-insert-command) - ("[" . completion-separator-self-insert-command) - ("]" . completion-separator-self-insert-command) - (";" . completion-separator-self-insert-command) - ("\"". completion-separator-self-insert-command) - ("'" . completion-separator-self-insert-command) - ("#" . completion-separator-self-insert-command) - ("," . completion-separator-self-insert-command) - ("?" . completion-separator-self-insert-command) - - ;; We include period and colon even though they are symbol - ;; chars because : - ;; - in text we want to pick up the last word in a sentence. - ;; - in C pointer refs. we want to pick up the first symbol - ;; - it won't make a difference for lisp mode (package names - ;; are short) - ("." . completion-separator-self-insert-command) - (":" . completion-separator-self-insert-command))) + ([remap kill-region] . completion-kill-region))) (push (cons (car binding) (lookup-key global-map (car binding))) completion-saved-bindings) (global-set-key (car binding) (cdr binding))) diff --git a/lisp/composite.el b/lisp/composite.el index 666d6c9dd91..ca38c39cd6f 100644 --- a/lisp/composite.el +++ b/lisp/composite.el @@ -702,7 +702,7 @@ All non-spacing characters have this function in (setq xoff (- (lglyph-rbearing fc)))) (if (< dc-width fc-width) ;; The following glyph is wider, but we don't know how to - ;; align both glyphs. So, try the easiet method; + ;; align both glyphs. So, try the easiest method; ;; i.e. align left edges of the glyphs. (setq xoff (- xoff (- dc-width) (- (lglyph-lbearing fc ))) width (- fc-width dc-width))) diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index b54898a171c..a6da50e13ae 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -779,7 +779,8 @@ when the action is chosen.") "Call function FUN on all widgets in `custom-options'. If there is more than one widget, ask user for confirmation using the query string QUERY, using `y-or-n-p' if STRONG-QUERY is nil, -and `yes-or-no-p' otherwise." +and `yes-or-no-p' otherwise. Return non-nil if the functionality +has been executed, nil otherwise." (if (or (and (= 1 (length custom-options)) (memq (widget-type (car custom-options)) '(custom-variable custom-face))) @@ -892,16 +893,16 @@ making them as if they had never been customized at all." ;; Bind these temporarily. (let ((custom-reset-standard-variables-list '(t)) (custom-reset-standard-faces-list '(t))) - (custom-command-apply - (lambda (widget) - (and (or (null (widget-get widget :custom-standard-value)) - (widget-apply widget :custom-standard-value)) - (memq (widget-get widget :custom-state) - '(modified set changed saved rogue)) - (widget-apply widget :custom-mark-to-reset-standard))) - "The settings will revert to their default values, in this + (if (custom-command-apply + (lambda (widget) + (and (or (null (widget-get widget :custom-standard-value)) + (widget-apply widget :custom-standard-value)) + (memq (widget-get widget :custom-state) + '(modified set changed saved rogue)) + (widget-apply widget :custom-mark-to-reset-standard))) + "The settings will revert to their default values, in this and future sessions. Really erase customizations? " t) - (custom-reset-standard-save-and-update))) + (custom-reset-standard-save-and-update)))) ;;; The Customize Commands @@ -1355,12 +1356,10 @@ suggest to customize that face, if it's customizable." (or (face-at-point t t) "all faces") t))) (customize-face face t)) -(defalias 'customize-customized 'customize-unsaved) - -;;;###autoload -(defun customize-unsaved () - "Customize all options and faces set in this session but not saved." - (interactive) +(defun custom-unsaved-options () + "List of options and faces set in this session but not saved. +Each entry is of the form (SYMBOL TYPE), where TYPE is one of the +symbols `custom-face' or `custom-variable'." (let ((found nil)) (mapatoms (lambda (symbol) (and (or (get symbol 'customized-face) @@ -1371,6 +1370,15 @@ suggest to customize that face, if it's customizable." (get symbol 'customized-variable-comment)) (boundp symbol) (push (list symbol 'custom-variable) found)))) + found)) + +(defalias 'customize-customized 'customize-unsaved) + +;;;###autoload +(defun customize-unsaved () + "Customize all options and faces set in this session but not saved." + (interactive) + (let ((found (custom-unsaved-options))) (if (not found) (error "No user options are set but unsaved") (custom-buffer-create (custom-sort-items found t nil) @@ -1476,6 +1484,16 @@ If TYPE is `groups', include only groups." (interactive (list (apropos-read-pattern "groups"))) (customize-apropos regexp 'groups)) +;;;###autoload +(defun custom-prompt-customize-unsaved-options () + "Prompt user to customize any unsaved customization options. +Return non-nil if user chooses to customize, for use in +`kill-emacs-query-functions'." + (not (and (custom-unsaved-options) + (yes-or-no-p "Some customized options have not been saved; Examine? ") + (customize-unsaved) + t))) + ;;; Buffer. (defcustom custom-buffer-style 'links diff --git a/lisp/cus-start.el b/lisp/cus-start.el index b446a00bb8f..4049974841e 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -274,7 +274,13 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (tool-bar-mode (frames mouse) boolean nil ; :initialize custom-initialize-default :set custom-set-minor-mode) - (frame-resize-pixelwise windows boolean "24.4") + (frame-resize-pixelwise frames boolean "24.4") + (frame-inhibit-implied-resize frames + (choice + (const :tag "Never" nil) + (const :tag "Always" t) + (repeat (symbol :tag "Parameter"))) + "25.1") ;; fringe.c (overflow-newline-into-fringe fringe boolean) ;; image.c @@ -404,7 +410,8 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (ns-antialias-text ns boolean "23.1") (ns-auto-hide-menu-bar ns boolean "24.1") (ns-use-native-fullscreen ns boolean "24.4") - (ns-use-srgb-colorspace ns boolean "24.4") + (ns-use-fullscreen-animation ns boolean "25.1") + (ns-use-srgb-colorspace ns boolean "24.4") ;; process.c (delete-exited-processes processes-basics boolean) ;; syntax.c @@ -453,6 +460,7 @@ since it could result in memory overflow and make Emacs crash." :value display-buffer) (other :tag "Always (t)" :value t)) "24.3") + (fast-but-imprecise-scrolling scrolling boolean "25.1") (window-resize-pixelwise windows boolean "24.4") ;; xdisp.c ;; The whitespace group is for whitespace.el. @@ -521,7 +529,6 @@ since it could result in memory overflow and make Emacs crash." (x-gtk-use-old-file-dialog menu boolean "22.1") (x-gtk-show-hidden-files menu boolean "22.1") (x-gtk-file-dialog-help-text menu boolean "22.1") - (x-gtk-whole-detached-tool-bar x boolean "22.1") (x-gtk-use-system-tooltips tooltip boolean "23.3") ;; xterm.c (x-use-underline-position-properties display boolean "22.1") diff --git a/lisp/delsel.el b/lisp/delsel.el index 1ada02705fe..96794fce7aa 100644 --- a/lisp/delsel.el +++ b/lisp/delsel.el @@ -54,6 +54,10 @@ ;;; Code: +(defvar delete-selection-save-to-register nil + "If non-nil, deleted region text is stored in this register. +Value must be the register (key) to use.") + ;;;###autoload (defalias 'pending-delete-mode 'delete-selection-mode) @@ -72,16 +76,78 @@ point regardless of any selection." (remove-hook 'pre-command-hook 'delete-selection-pre-hook) (add-hook 'pre-command-hook 'delete-selection-pre-hook))) +(defvar delsel--replace-text-or-position nil) + (defun delete-active-region (&optional killp) "Delete the active region. If KILLP in not-nil, the active region is killed instead of deleted." - (if killp - ;; Don't allow `kill-region' to change the value of `this-command'. - (let (this-command) - (kill-region (point) (mark) t)) - (funcall region-extract-function 'delete-only)) + (cond + (killp + ;; Don't allow `kill-region' to change the value of `this-command'. + (let (this-command) + (kill-region (point) (mark) t))) + (delete-selection-save-to-register + (set-register delete-selection-save-to-register + (funcall region-extract-function t)) + (setq delsel--replace-text-or-position + (cons (current-buffer) + (and (consp buffer-undo-list) (car buffer-undo-list))))) + (t + (funcall region-extract-function 'delete-only))) t) +(defun delete-selection-repeat-replace-region (arg) + "Repeat replacing text of highlighted region with typed text. +Search for the next stretch of text identical to the region last replaced +by typing text over it and replaces it with the same stretch of text. +With ARG, repeat that many times. `C-u' means until end of buffer." + (interactive "P") + (let ((old-text (and delete-selection-save-to-register + (get-register delete-selection-save-to-register))) + (count (if (consp arg) (point-max) + (prefix-numeric-value current-prefix-arg)))) + (if (not (and old-text + (> (length old-text) 0) + (or (stringp delsel--replace-text-or-position) + (buffer-live-p (car delsel--replace-text-or-position))))) + (message "No known previous replacement") + ;; If this is the first use after overwriting regions, + ;; find the replacement text by looking at the undo list. + (when (consp delsel--replace-text-or-position) + (let ((buffer (car delsel--replace-text-or-position)) + (elt (cdr delsel--replace-text-or-position))) + (setq delsel--replace-text-or-position nil) + (with-current-buffer buffer + (save-restriction + (widen) + ;; Find the text that replaced the region via the undo list. + (let ((ul buffer-undo-list) u s e) + (when elt + (while (consp ul) + (setq u (car ul) ul (cdr ul)) + (cond + ((eq u elt) ;; got it + (setq ul nil)) + ((and (consp u) (integerp (car u)) (integerp (cdr u))) + (if (and s (= (cdr u) s)) + (setq s (car u)) + (setq s (car u) e (cdr u))))))) + (cond ((and s e (<= s e) (= s (mark t))) + (setq delsel--replace-text-or-position + (filter-buffer-substring s e)) + (set-text-properties + 0 (length delsel--replace-text-or-position) + nil delsel--replace-text-or-position)) + ((and (null s) (eq u elt)) ;; Nothing inserted. + (setq delsel--replace-text-or-position "")) + (t + (message "Cannot locate replacement text")))))))) + (while (and (> count 0) + delsel--replace-text-or-position + (search-forward old-text nil t)) + (replace-match delsel--replace-text-or-position nil t) + (setq count (1- count)))))) + (defun delete-selection-helper (type) "Delete selection according to TYPE: `yank' diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 02ed55b5bdf..1dc43e96b79 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el @@ -434,13 +434,26 @@ relevant to POS." code (encode-char char charset))) (setq code char)) (cond - ;; Append a PDF character to directional embeddings and - ;; overrides, to prevent potential messup of the following - ;; text. - ((memq char '(?\x202a ?\x202b ?\x202d ?\x202e)) + ;; Append a PDF character to left-to-right directional + ;; embeddings and overrides, to prevent potential messup of the + ;; following text. + ((memq char '(?\x202a ?\x202d)) (setq char-description (concat char-description (propertize (string ?\x202c) 'invisible t)))) + ;; Append a PDF character followed by LRM to right-to-left + ;; directional embeddings and overrides, to prevent potential + ;; messup of the following numerical text. + ((memq char '(?\x202b ?\x202e)) + (setq char-description + (concat char-description + (propertize (string ?\x202c ?\x200e) 'invisible t)))) + ;; Append a PDI character to directional isolate initiators, to + ;; prevent potential messup of the following numerical text + ((memq char '(?\x2066 ?\x2067 ?\x2068)) + (setq char-description + (concat char-description + (propertize (string ?\x2069) 'invisible t)))) ;; Append a LRM character to any strong character to avoid ;; messing up the numerical codepoint. ((memq (get-char-code-property char 'bidi-class) '(R AL)) diff --git a/lisp/desktop.el b/lisp/desktop.el index caefba5d11c..75bced49c2f 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -1375,7 +1375,9 @@ after that many seconds of idle time." ;; Restore buffer list order with new buffer at end. Don't change ;; the order for old desktop files (old desktop module behavior). (unless (< desktop-file-version 206) - (mapc 'bury-buffer buffer-list) + (dolist (buf buffer-list) + (and (buffer-live-p buf) + (bury-buffer buf))) (when result (bury-buffer result))) (when result (unless (or desktop-first-buffer (< desktop-file-version 206)) @@ -1411,8 +1413,8 @@ after that many seconds of idle time." (if (consp desktop-buffer-mark) (progn (move-marker (mark-marker) (car desktop-buffer-mark)) - ;; FIXME: Should we call (de)activate-mark instead? - (setq mark-active (car (cdr desktop-buffer-mark)))) + (if (car (cdr desktop-buffer-mark)) + (activate-mark 'dont-touch-tmm))) (move-marker (mark-marker) desktop-buffer-mark))) ;; Never override file system if the file really is read-only marked. (when desktop-buffer-read-only (setq buffer-read-only desktop-buffer-read-only)) diff --git a/lisp/dired.el b/lisp/dired.el index 4cc252c7492..909ba22985a 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3059,7 +3059,7 @@ or \"* [3 files]\"." (when dired-shrink-to-fit ;; Try to not delete window when we want to display less than ;; `window-min-height' lines. - (fit-window-to-buffer (get-buffer-window buf) nil 1))) + (fit-window-to-buffer (get-buffer-window buf) nil 1 nil nil t))) (defcustom dired-no-confirm nil "A list of symbols for commands Dired should not confirm, or t. @@ -3106,7 +3106,8 @@ argument or confirmation)." (with-displayed-buffer-window buffer (cons 'display-buffer-below-selected - '((window-height . fit-window-to-buffer))) + '((window-height . fit-window-to-buffer) + (preserve-size . (nil . t)))) #'(lambda (window _value) (with-selected-window window (unwind-protect diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 9458cace74e..37cb2787cca 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -1392,19 +1392,28 @@ For now these keys are useful: (tooltip-show (doc-view-current-info))) (defun doc-view-open-text () - "Open a buffer with the current doc's contents as text." + "Display the current doc's contents as text." (interactive) (if doc-view--current-converter-processes (message "DocView: please wait till conversion finished.") - (let ((txt (expand-file-name "doc.txt" (doc-view--current-cache-dir))) - (bname (or buffer-file-name (buffer-name)))) + (let ((txt (expand-file-name "doc.txt" (doc-view--current-cache-dir)))) (if (file-readable-p txt) - (let ((name (concat "Text contents of " - (file-name-nondirectory bname))) - (dir (or (file-name-directory bname) default-directory))) - (with-current-buffer (find-file txt) - (rename-buffer name) - (setq default-directory dir))) + (let ((inhibit-read-only t) + (buffer-undo-list t) + (dv-bfn doc-view--buffer-file-name)) + (erase-buffer) + (set-buffer-multibyte t) + (insert-file-contents txt) + (text-mode) + (setq-local doc-view--buffer-file-name dv-bfn) + (set-buffer-modified-p nil) + (doc-view-minor-mode) + (add-hook 'write-file-functions + (lambda () + (when (eq major-mode 'text-mode) + (error "Cannot save text contents of document %s" + buffer-file-name))) + nil t)) (doc-view-doc->txt txt 'doc-view-open-text))))) ;;;;; Toggle between editing and viewing @@ -1416,20 +1425,30 @@ For now these keys are useful: (defun doc-view-toggle-display () "Toggle between editing a document as text or viewing it." (interactive) - (if (eq major-mode 'doc-view-mode) - ;; Switch to editing mode - (progn - (doc-view-kill-proc) - (setq buffer-read-only nil) - ;; Switch to the previously used major mode or fall back to - ;; normal mode. - (doc-view-fallback-mode) - (doc-view-minor-mode 1)) + (cond + ((eq major-mode 'doc-view-mode) + ;; Switch to editing mode + (doc-view-kill-proc) + (setq buffer-read-only nil) + ;; Switch to the previously used major mode or fall back to + ;; normal mode. + (doc-view-fallback-mode) + (doc-view-minor-mode 1)) + ((eq major-mode 'text-mode) + (let ((buffer-undo-list t)) + ;; We're currently viewing the document's text contents, so switch + ;; back to . + (setq buffer-read-only nil) + (insert-file-contents doc-view--buffer-file-name nil nil nil t) + (doc-view-fallback-mode) + (doc-view-minor-mode 1) + (set-buffer-modified-p nil))) + (t ;; Switch to doc-view-mode (when (and (buffer-modified-p) (y-or-n-p "The buffer has been modified. Save the changes? ")) (save-buffer)) - (doc-view-mode))) + (doc-view-mode)))) ;;;; Searching @@ -1585,11 +1604,11 @@ If BACKWARD is non-nil, jump to the previous match." (concat "No PNG support is available, or some conversion utility for " (file-name-extension doc-view--buffer-file-name) " files is missing.")) - (when (and (executable-find doc-view-pdftotext-program) - (y-or-n-p - "Unable to render file. View extracted text instead? ")) - (doc-view-open-text)) - (doc-view-toggle-display))) + (if (and (executable-find doc-view-pdftotext-program) + (y-or-n-p + "Unable to render file. View extracted text instead? ")) + (doc-view-open-text) + (doc-view-toggle-display)))) (defvar bookmark-make-record-function) @@ -1616,7 +1635,7 @@ If BACKWARD is non-nil, jump to the previous match." "Figure out the current document type (`doc-view-doc-type')." (let ((name-types (when buffer-file-name - (cdr (assoc-ignore-case + (cdr (assoc-string (file-name-extension buffer-file-name) '( ;; DVI @@ -1634,7 +1653,8 @@ If BACKWARD is non-nil, jump to the previous match." ;; Microsoft Office formats (also handled by the odf ;; conversion chain). ("doc" odf) ("docx" odf) ("xls" odf) ("xlsx" odf) - ("ppt" odf) ("pps" odf) ("pptx" odf)))))) + ("ppt" odf) ("pps" odf) ("pptx" odf)) + t)))) (content-types (save-excursion (goto-char (point-min)) diff --git a/lisp/dom.el b/lisp/dom.el new file mode 100644 index 00000000000..6b24e4ffa91 --- /dev/null +++ b/lisp/dom.el @@ -0,0 +1,222 @@ +;;; dom.el --- XML/HTML (etc.) DOM manipulation and searching functions + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Lars Magne Ingebrigtsen +;; Keywords: xml, html + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'cl-lib) + +(defsubst dom-tag (node) + "Return the NODE tag." + ;; Called on a list of nodes. Use the first. + (if (consp (car node)) + (caar node) + (car node))) + +(defsubst dom-attributes (node) + "Return the NODE attributes." + ;; Called on a list of nodes. Use the first. + (if (consp (car node)) + (cadr (car node)) + (cadr node))) + +(defsubst dom-children (node) + "Return the NODE children." + ;; Called on a list of nodes. Use the first. + (if (consp (car node)) + (cddr (car node)) + (cddr node))) + +(defun dom-non-text-children (node) + "Return all non-text-node children of NODE." + (cl-loop for child in (dom-children node) + unless (stringp child) + collect child)) + +(defun dom-set-attributes (node attributes) + "Set the attributes of NODE to ATTRIBUTES." + (setq node (dom-ensure-node node)) + (setcar (cdr node) attributes)) + +(defun dom-set-attribute (node attribute value) + "Set ATTRIBUTE in NODE to VALUE." + (setq node (dom-ensure-node node)) + (let ((old (assoc attribute (cadr node)))) + (if old + (setcdr old value) + (setcar (cdr node) (nconc (cadr node) (list (cons attribute value))))))) + +(defmacro dom-attr (node attr) + "Return the attribute ATTR from NODE. +A typical attribute is `href'." + `(cdr (assq ,attr (dom-attributes ,node)))) + +(defun dom-text (node) + "Return all the text bits in the current node concatenated." + (mapconcat 'identity (cl-remove-if-not 'stringp (dom-children node)) " ")) + +(defun dom-texts (node &optional separator) + "Return all textual data under NODE concatenated with SEPARATOR in-between." + (mapconcat + 'identity + (mapcar + (lambda (elem) + (if (stringp elem) + elem + (dom-texts elem separator))) + (dom-children node)) + (or separator " "))) + +(defun dom-child-by-tag (dom tag) + "Return the first child of DOM that is of type TAG." + (assoc tag (dom-children dom))) + +(defun dom-by-tag (dom tag) + "Return elements in DOM that is of type TAG. +A name is a symbol like `td'." + (let ((matches (cl-loop for child in (dom-children dom) + for matches = (and (not (stringp child)) + (dom-by-tag child tag)) + when matches + append matches))) + (if (equal (dom-tag dom) tag) + (cons dom matches) + matches))) + +(defun dom-by-class (dom match) + "Return elements in DOM that have a class name that matches regexp MATCH." + (dom-elements dom 'class match)) + +(defun dom-by-style (dom match) + "Return elements in DOM that have a style that matches regexp MATCH." + (dom-elements dom 'style match)) + +(defun dom-by-id (dom match) + "Return elements in DOM that have an ID that matches regexp MATCH." + (dom-elements dom 'id match)) + +(defun dom-elements (dom attribute match) + "Find elements matching MATCH (a regexp) in ATTRIBUTE. +ATTRIBUTE would typically be `class', `id' or the like." + (let ((matches (cl-loop for child in (dom-children dom) + for matches = (and (not (stringp child)) + (dom-elements child attribute + match)) + when matches + append matches)) + (attr (dom-attr dom attribute))) + (if (and attr + (string-match match attr)) + (cons dom matches) + matches))) + +(defun dom-parent (dom node) + "Return the parent of NODE in DOM." + (if (memq node (dom-children dom)) + dom + (let ((result nil)) + (dolist (elem (dom-children dom)) + (when (and (not result) + (not (stringp elem))) + (setq result (dom-parent elem node)))) + result))) + +(defun dom-node (tag &optional attributes &rest children) + "Return a DOM node with TAG and ATTRIBUTES." + (if children + `(,tag ,attributes ,@children) + (list tag attributes))) + +(defun dom-append-child (node child) + "Append CHILD to the end of NODE's children." + (setq node (dom-ensure-node node)) + (nconc node (list child))) + +(defun dom-add-child-before (node child &optional before) + "Add CHILD to NODE's children before child BEFORE. +If BEFORE is nil, make CHILD NODE's first child." + (setq node (dom-ensure-node node)) + (let ((children (dom-children node))) + (when (and before + (not (memq before children))) + (error "%s does not exist as a child" before)) + (let ((pos (if before + (cl-position before children) + 0))) + (if (zerop pos) + ;; First child. + (setcdr (cdr node) (cons child (cddr node))) + (setcdr (nthcdr (1- pos) children) + (cons child (nthcdr pos children)))))) + node) + +(defun dom-ensure-node (node) + "Ensure that NODE is a proper DOM node." + ;; Add empty attributes, if none. + (when (consp (car node)) + (setq node (car node))) + (when (= (length node) 1) + (setcdr node (list nil))) + node) + +(defun dom-pp (dom &optional remove-empty) + "Pretty-print DOM at point. +If REMOVE-EMPTY, ignore textual nodes that contain just +white-space." + (let ((column (current-column))) + (insert (format "(%S " (dom-tag dom))) + (let* ((attr (dom-attributes dom)) + (times (length attr)) + (column (1+ (current-column)))) + (if (null attr) + (insert "nil") + (insert "(") + (dolist (elem attr) + (insert (format "(%S . %S)" (car elem) (cdr elem))) + (if (zerop (cl-decf times)) + (insert ")") + (insert "\n" (make-string column ? )))))) + (let* ((children (if remove-empty + (cl-remove-if + (lambda (child) + (and (stringp child) + (string-match "\\`[\n\r\t  ]*\\'" child))) + (dom-children dom)) + (dom-children dom))) + (times (length children))) + (if (null children) + (insert ")") + (insert "\n" (make-string (1+ column) ? )) + (dolist (child children) + (if (stringp child) + (if (or (not remove-empty) + (not (string-match "\\`[\n\r\t  ]*\\'" child))) + (insert (format "%S" child))) + (dom-pp child remove-empty)) + (if (zerop (cl-decf times)) + (insert ")") + (insert "\n" (make-string (1+ column) ? )))))))) + +(provide 'dom) + +;;; dom.el ends here diff --git a/lisp/electric.el b/lisp/electric.el index 4bf5963e175..fa9666d8560 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -164,7 +164,10 @@ ;; Don't shrink the window, but expand it if necessary. (goto-char (point-min)) (unless (= (point-max) (window-end win t)) - (fit-window-to-buffer win max-height)) + ;; This call is executed even if the window existed before, was + ;; reused, ... contradicting a claim in the comment before this + ;; function. + (fit-window-to-buffer win max-height nil nil nil t)) win))) ;;; Electric keys. diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index 38956df66de..01f59704a39 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -120,7 +120,8 @@ expression, in which case we want to handle forms differently." ;; Look for an interactive spec. (interactive (pcase body ((or `((interactive . ,_) . ,_) - `(,_ (interactive . ,_) . ,_)) t)))) + `(,_ (interactive . ,_) . ,_)) + t)))) ;; Add the usage form at the end where describe-function-1 ;; can recover it. (when (listp args) (setq doc (help-add-fundoc-usage doc args))) @@ -140,11 +141,9 @@ expression, in which case we want to handle forms differently." ;; For complex cases, try again on the macro-expansion. ((and (memq car '(easy-mmode-define-global-mode define-global-minor-mode define-globalized-minor-mode defun defmacro - ;; FIXME: we'd want `defmacro*' here as well, so as - ;; to handle its `declare', but when autoload is run - ;; CL is not loaded so macroexpand doesn't know how - ;; to expand it! - easy-mmode-define-minor-mode define-minor-mode)) + easy-mmode-define-minor-mode define-minor-mode + define-inline cl-defun cl-defmacro)) + (macrop car) (setq expand (let ((load-file-name file)) (macroexpand form))) (memq (car expand) '(progn prog1 defalias))) (make-autoload expand file 'expansion)) ;Recurse on the expansion. diff --git a/lisp/emacs-lisp/avl-tree.el b/lisp/emacs-lisp/avl-tree.el index 813576efb46..43484801b5a 100644 --- a/lisp/emacs-lisp/avl-tree.el +++ b/lisp/emacs-lisp/avl-tree.el @@ -1,4 +1,4 @@ -;;; avl-tree.el --- balanced binary trees, AVL-trees +;;; avl-tree.el --- balanced binary trees, AVL-trees -*- lexical-binding:t -*- ;; Copyright (C) 1995, 2007-2014 Free Software Foundation, Inc. @@ -27,23 +27,23 @@ ;;; Commentary: -;; An AVL tree is a self-balancing binary tree. As such, inserting, +;; An AVL tree is a self-balancing binary tree. As such, inserting, ;; deleting, and retrieving data from an AVL tree containing n elements -;; is O(log n). It is somewhat more rigidly balanced than other +;; is O(log n). It is somewhat more rigidly balanced than other ;; self-balancing binary trees (such as red-black trees and AA trees), ;; making insertion slightly slower, deletion somewhat slower, and ;; retrieval somewhat faster (the asymptotic scaling is of course the -;; same for all types). Thus it may be a good choice when the tree will +;; same for all types). Thus it may be a good choice when the tree will ;; be relatively static, i.e. data will be retrieved more often than ;; they are modified. ;; ;; Internally, a tree consists of two elements, the root node and the -;; comparison function. The actual tree has a dummy node as its root +;; comparison function. The actual tree has a dummy node as its root ;; with the real root in the left pointer, which allows the root node to ;; be treated on a par with all other nodes. ;; ;; Each node of the tree consists of one data element, one left -;; sub-tree, one right sub-tree, and a balance count. The latter is the +;; sub-tree, one right sub-tree, and a balance count. The latter is the ;; difference in depth of the left and right sub-trees. ;; ;; The functions with names of the form "avl-tree--" are intended for @@ -51,7 +51,7 @@ ;;; Code: -(eval-when-compile (require 'cl)) +(eval-when-compile (require 'cl-lib)) @@ -62,7 +62,7 @@ ;; ---------------------------------------------------------------- ;; Functions and macros handling an AVL tree. -(defstruct (avl-tree- +(cl-defstruct (avl-tree- ;; A tagged list is the pre-defstruct representation. ;; (:type list) :named @@ -77,15 +77,10 @@ ;; Return the root node for an AVL tree. INTERNAL USE ONLY. `(avl-tree--node-left (avl-tree--dummyroot ,tree))) -(defsetf avl-tree--root (tree) (node) - `(setf (avl-tree--node-left (avl-tree--dummyroot ,tree)) ,node)) - - - ;; ---------------------------------------------------------------- ;; Functions and macros handling an AVL tree node. -(defstruct (avl-tree--node +(cl-defstruct (avl-tree--node ;; We force a representation without tag so it matches the ;; pre-defstruct representation. Also we use the underlying ;; representation in the implementation of @@ -97,7 +92,7 @@ left right data balance) -(defalias 'avl-tree--node-branch 'aref +(defalias 'avl-tree--node-branch #'aref ;; This implementation is efficient but breaks the defstruct ;; abstraction. An alternative could be (funcall (aref [avl-tree-left ;; avl-tree-right avl-tree-data] branch) node) @@ -109,7 +104,7 @@ NODE is the node, and BRANCH is the branch. ;; The funcall/aref trick wouldn't work for the setf method, unless we ;; tried to access the underlying setter function, but this wouldn't be ;; portable either. -(defsetf avl-tree--node-branch aset) +(gv-define-simple-setter avl-tree--node-branch aset) @@ -297,7 +292,8 @@ Return t if the height of the tree has grown." (if (< (* sgn b2) 0) sgn 0) (avl-tree--node-branch node branch) p2)) (setf (avl-tree--node-balance - (avl-tree--node-branch node branch)) 0) + (avl-tree--node-branch node branch)) + 0) nil)))) (defun avl-tree--do-enter (cmpfun root branch data &optional updatefun) @@ -346,7 +342,7 @@ inserted data." (if (null node) 0 (let ((dl (avl-tree--check-node (avl-tree--node-left node))) (dr (avl-tree--check-node (avl-tree--node-right node)))) - (assert (= (- dr dl) (avl-tree--node-balance node))) + (cl-assert (= (- dr dl) (avl-tree--node-balance node))) (1+ (max dl dr))))) ;; ---------------------------------------------------------------- @@ -391,7 +387,7 @@ itself." (avl-tree--node-data root) (avl-tree--node-balance root)))) -(defstruct (avl-tree--stack +(cl-defstruct (avl-tree--stack (:constructor nil) (:constructor avl-tree--stack-create (tree &optional reverse @@ -403,7 +399,7 @@ itself." (:copier nil)) reverse store) -(defalias 'avl-tree-stack-p 'avl-tree--stack-p +(defalias 'avl-tree-stack-p #'avl-tree--stack-p "Return t if argument is an avl-tree-stack, nil otherwise.") (defun avl-tree--stack-repopulate (stack) @@ -420,12 +416,12 @@ itself." ;;; The public functions which operate on AVL trees. ;; define public alias for constructors so that we can set docstring -(defalias 'avl-tree-create 'avl-tree--create +(defalias 'avl-tree-create #'avl-tree--create "Create an empty AVL tree. COMPARE-FUNCTION is a function which takes two arguments, A and B, and returns non-nil if A is less than B, and nil otherwise.") -(defalias 'avl-tree-compare-function 'avl-tree--cmpfun +(defalias 'avl-tree-compare-function #'avl-tree--cmpfun "Return the comparison function for the AVL tree TREE. \(fn TREE)") @@ -505,7 +501,7 @@ previously specified in `avl-tree-create' when TREE was created." (not (eq (avl-tree-member tree data flag) flag)))) -(defun avl-tree-map (__map-function__ tree &optional reverse) +(defun avl-tree-map (fun tree &optional reverse) "Modify all elements in the AVL tree TREE by applying FUNCTION. Each element is replaced by the return value of FUNCTION applied @@ -516,12 +512,12 @@ descending order if REVERSE is non-nil." (avl-tree--mapc (lambda (node) (setf (avl-tree--node-data node) - (funcall __map-function__ (avl-tree--node-data node)))) + (funcall fun (avl-tree--node-data node)))) (avl-tree--root tree) (if reverse 1 0))) -(defun avl-tree-mapc (__map-function__ tree &optional reverse) +(defun avl-tree-mapc (fun tree &optional reverse) "Apply FUNCTION to all elements in AVL tree TREE, for side-effect only. @@ -529,13 +525,13 @@ FUNCTION is applied to the elements in ascending order, or descending order if REVERSE is non-nil." (avl-tree--mapc (lambda (node) - (funcall __map-function__ (avl-tree--node-data node))) + (funcall fun (avl-tree--node-data node))) (avl-tree--root tree) (if reverse 1 0))) (defun avl-tree-mapf - (__map-function__ combinator tree &optional reverse) + (fun combinator tree &optional reverse) "Apply FUNCTION to all elements in AVL tree TREE, and combine the results using COMBINATOR. @@ -546,7 +542,7 @@ order, or descending order if REVERSE is non-nil." (lambda (node) (setq avl-tree-mapf--accumulate (funcall combinator - (funcall __map-function__ + (funcall fun (avl-tree--node-data node)) avl-tree-mapf--accumulate))) (avl-tree--root tree) @@ -554,7 +550,7 @@ order, or descending order if REVERSE is non-nil." (nreverse avl-tree-mapf--accumulate))) -(defun avl-tree-mapcar (__map-function__ tree &optional reverse) +(defun avl-tree-mapcar (fun tree &optional reverse) "Apply FUNCTION to all elements in AVL tree TREE, and make a list of the results. @@ -568,7 +564,7 @@ then (avl-tree-mapf function 'cons tree (not reverse)) is more efficient." - (nreverse (avl-tree-mapf __map-function__ 'cons tree reverse))) + (nreverse (avl-tree-mapf fun 'cons tree reverse))) (defun avl-tree-first (tree) @@ -605,7 +601,7 @@ is more efficient." "Return the number of elements in TREE." (let ((treesize 0)) (avl-tree--mapc - (lambda (data) (setq treesize (1+ treesize))) + (lambda (_) (setq treesize (1+ treesize))) (avl-tree--root tree) 0) treesize)) diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el index a497acd637e..5cecbcd4335 100644 --- a/lisp/emacs-lisp/backquote.el +++ b/lisp/emacs-lisp/backquote.el @@ -148,16 +148,19 @@ LEVEL is only used internally and indicates the nesting level: (t (list 'apply '(function vector) (cdr n)))))))) ((atom s) + ;; FIXME: Use macroexp-quote! (cons 0 (if (or (null s) (eq s t) (not (symbolp s))) s (list 'quote s)))) ((eq (car s) backquote-unquote-symbol) (if (<= level 0) - (if (> (length s) 2) - ;; We could support it with: (cons 2 `(list . ,(cdr s))) - ;; But let's not encourage such uses. - (error "Multiple args to , are not supported: %S" s) - (cons 1 (nth 1 s))) + (cond + ((> (length s) 2) + ;; We could support it with: (cons 2 `(list . ,(cdr s))) + ;; But let's not encourage such uses. + (error "Multiple args to , are not supported: %S" s)) + (t (cons (if (eq (car-safe (nth 1 s)) 'quote) 0 1) + (nth 1 s)))) (backquote-delay-process s (1- level)))) ((eq (car s) backquote-splice-symbol) (if (<= level 0) @@ -215,9 +218,7 @@ LEVEL is only used internally and indicates the nesting level: ;; Tack on any initial elements. (if firstlist (setq expression (backquote-listify firstlist (cons 1 expression)))) - (if (eq (car-safe expression) 'quote) - (cons 0 (list 'quote s)) - (cons 1 expression)))))) + (cons (if (eq (car-safe expression) 'quote) 0 1) expression))))) ;; backquote-listify takes (tag . structure) pairs from backquote-process ;; and decides between append, list, backquote-list*, and cons depending diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index 0edcf6197b4..8bf63ea572e 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el @@ -34,10 +34,11 @@ ;; We don't want people to just use `put' because we can't conveniently ;; hook into `put' to remap old properties to new ones. But for now, there's ;; no such remapping, so we just call `put'. - #'(lambda (f prop value) (put f prop value)) - "Set function F's property PROP to VALUE. + #'(lambda (function prop value) + "Set FUNCTION's property PROP to VALUE. The namespace for PROP is shared with symbols. -So far, F can only be a symbol, not a lambda expression.") +So far, FUNCTION can only be a symbol, not a lambda expression." + (put function prop value))) (function-put 'defmacro 'doc-string-elt 3) (function-put 'defmacro 'lisp-indent-function 2) @@ -112,12 +113,20 @@ This may shift errors from run-time to compile-time.") If `error-free', drop calls even if `byte-compile-delete-errors' is nil.") (list 'compiler-macro #'(lambda (f args compiler-function) - `(eval-and-compile - (function-put ',f 'compiler-macro - ,(if (eq (car-safe compiler-function) 'lambda) - `(lambda ,(append (cadr compiler-function) args) - ,@(cddr compiler-function)) - `#',compiler-function))))) + (if (not (eq (car-safe compiler-function) 'lambda)) + `(eval-and-compile + (function-put ',f 'compiler-macro #',compiler-function)) + (let ((cfname (intern (concat (symbol-name f) "--anon-cmacro")))) + `(progn + (eval-and-compile + (function-put ',f 'compiler-macro #',cfname)) + ;; Don't autoload the compiler-macro itself, since the + ;; macroexpander will find this file via `f's autoload, + ;; if needed. + :autoload-end + (eval-and-compile + (defun ,cfname (,@(cadr compiler-function) ,@args) + ,@(cddr compiler-function)))))))) (list 'doc-string #'(lambda (f _args pos) (list 'function-put (list 'quote f) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 9c52cc44eb4..13b9f937249 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -120,7 +120,11 @@ (require 'backquote) (require 'macroexp) (require 'cconv) -(eval-when-compile (require 'cl-lib)) + +;; During bootstrap, cl-loaddefs.el is not created yet, so loading cl-lib +;; doesn't setup autoloads for things like cl-every, which is why we have to +;; require cl-extra instead (bug#18804). +(require 'cl-extra) (or (fboundp 'defsubst) ;; This really ought to be loaded already! @@ -413,7 +417,7 @@ specify different fields to sort on." This list lives partly on the stack.") (defvar byte-compile-lexical-variables nil "List of variables that have been treated as lexical. -Filled in `cconv-analyse-form' but initialized and consulted here.") +Filled in `cconv-analyze-form' but initialized and consulted here.") (defvar byte-compile-const-variables nil "List of variables declared as constants during compilation of this file.") (defvar byte-compile-free-references) @@ -444,23 +448,28 @@ Return the compile-time value of FORM." ;; (apply 'byte-compiler-options-handler forms))) (declare-function . byte-compile-macroexpand-declare-function) (eval-when-compile . ,(lambda (&rest body) - (let ((result nil)) - (byte-compile-recurse-toplevel - (cons 'progn body) - (lambda (form) - (setf result - (byte-compile-eval - (byte-compile-top-level - (byte-compile-preprocess form)))))) - (list 'quote result)))) + (let ((result nil)) + (byte-compile-recurse-toplevel + (cons 'progn body) + (lambda (form) + (setf result + (byte-compile-eval + (byte-compile-top-level + (byte-compile-preprocess form)))))) + (list 'quote result)))) (eval-and-compile . ,(lambda (&rest body) - (byte-compile-recurse-toplevel - (cons 'progn body) - (lambda (form) - (let ((compiled (byte-compile-top-level - (byte-compile-preprocess form)))) - (eval compiled lexical-binding) - compiled)))))) + (byte-compile-recurse-toplevel + (cons 'progn body) + (lambda (form) + ;; Don't compile here, since we don't know + ;; whether to compile as byte-compile-form + ;; or byte-compile-file-form. + (let ((expanded + (macroexpand-all + form + macroexpand-all-environment))) + (eval expanded lexical-binding) + expanded)))))) "The default macro-environment passed to macroexpand by the compiler. Placing a macro here will cause a macro to have different semantics when expanded by the compiler as when expanded by the interpreter.") @@ -1158,10 +1167,13 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." (byte-compile-warn "%s" msg))))) (defun byte-compile-report-error (error-info) - "Report Lisp error in compilation. ERROR-INFO is the error data." + "Report Lisp error in compilation. +ERROR-INFO is the error data, in the form of either (ERROR-SYMBOL . DATA) +or STRING." (setq byte-compiler-error-flag t) (byte-compile-log-warning - (error-message-string error-info) + (if (stringp error-info) error-info + (error-message-string error-info)) nil :error)) ;;; sanity-checking arglists @@ -1357,6 +1369,33 @@ extra args." ;; Warn if the function or macro is being redefined with a different ;; number of arguments. (defun byte-compile-arglist-warn (name arglist macrop) + ;; This is the first definition. See if previous calls are compatible. + (let ((calls (assq name byte-compile-unresolved-functions)) + nums sig min max) + (when (and calls macrop) + (byte-compile-warn "macro `%s' defined too late" name)) + (setq byte-compile-unresolved-functions + (delq calls byte-compile-unresolved-functions)) + (setq calls (delq t calls)) ;Ignore higher-order uses of the function. + (when (cdr calls) + (when (and (symbolp name) + (eq (function-get name 'byte-optimizer) + 'byte-compile-inline-expand)) + (byte-compile-warn "defsubst `%s' was used before it was defined" + name)) + (setq sig (byte-compile-arglist-signature arglist) + nums (sort (copy-sequence (cdr calls)) (function <)) + min (car nums) + max (car (nreverse nums))) + (when (or (< min (car sig)) + (and (cdr sig) (> max (cdr sig)))) + (byte-compile-set-symbol-position name) + (byte-compile-warn + "%s being defined to take %s%s, but was previously called with %s" + name + (byte-compile-arglist-signature-string sig) + (if (equal sig '(1 . 1)) " arg" " args") + (byte-compile-arglist-signature-string (cons min max)))))) (let* ((old (byte-compile-fdefinition name macrop)) (initial (and macrop (cdr (assq name @@ -1365,52 +1404,26 @@ extra args." ;; to a defined function. (Bug#8646) (and initial (symbolp initial) (setq old (byte-compile-fdefinition initial nil))) - (if (and old (not (eq old t))) - (progn - (and (eq 'macro (car-safe old)) - (eq 'lambda (car-safe (cdr-safe old))) - (setq old (cdr old))) - (let ((sig1 (byte-compile-arglist-signature - (pcase old - (`(lambda ,args . ,_) args) - (`(closure ,_ ,args . ,_) args) - ((pred byte-code-function-p) (aref old 0)) - (t '(&rest def))))) - (sig2 (byte-compile-arglist-signature arglist))) - (unless (byte-compile-arglist-signatures-congruent-p sig1 sig2) - (byte-compile-set-symbol-position name) - (byte-compile-warn - "%s %s used to take %s %s, now takes %s" - (if macrop "macro" "function") - name - (byte-compile-arglist-signature-string sig1) - (if (equal sig1 '(1 . 1)) "argument" "arguments") - (byte-compile-arglist-signature-string sig2))))) - ;; This is the first definition. See if previous calls are compatible. - (let ((calls (assq name byte-compile-unresolved-functions)) - nums sig min max) - (setq byte-compile-unresolved-functions - (delq calls byte-compile-unresolved-functions)) - (setq calls (delq t calls)) ;Ignore higher-order uses of the function. - (when (cdr calls) - (when (and (symbolp name) - (eq (function-get name 'byte-optimizer) - 'byte-compile-inline-expand)) - (byte-compile-warn "defsubst `%s' was used before it was defined" - name)) - (setq sig (byte-compile-arglist-signature arglist) - nums (sort (copy-sequence (cdr calls)) (function <)) - min (car nums) - max (car (nreverse nums))) - (when (or (< min (car sig)) - (and (cdr sig) (> max (cdr sig)))) - (byte-compile-set-symbol-position name) - (byte-compile-warn - "%s being defined to take %s%s, but was previously called with %s" - name - (byte-compile-arglist-signature-string sig) - (if (equal sig '(1 . 1)) " arg" " args") - (byte-compile-arglist-signature-string (cons min max))))))))) + (when (and old (not (eq old t))) + (and (eq 'macro (car-safe old)) + (eq 'lambda (car-safe (cdr-safe old))) + (setq old (cdr old))) + (let ((sig1 (byte-compile-arglist-signature + (pcase old + (`(lambda ,args . ,_) args) + (`(closure ,_ ,args . ,_) args) + ((pred byte-code-function-p) (aref old 0)) + (t '(&rest def))))) + (sig2 (byte-compile-arglist-signature arglist))) + (unless (byte-compile-arglist-signatures-congruent-p sig1 sig2) + (byte-compile-set-symbol-position name) + (byte-compile-warn + "%s %s used to take %s %s, now takes %s" + (if macrop "macro" "function") + name + (byte-compile-arglist-signature-string sig1) + (if (equal sig1 '(1 . 1)) "argument" "arguments") + (byte-compile-arglist-signature-string sig2))))))) (defvar byte-compile-cl-functions nil "List of functions defined in CL.") @@ -2111,11 +2124,6 @@ list that represents a doc string reference. (eq (aref (nth (nth 1 info) form) 0) ?*)) (setq position (- position))))) - (if preface - (progn - (insert preface) - (prin1 name byte-compile--outbuffer))) - (insert (car info)) (let ((print-continuous-numbering t) print-number-table (index 0) @@ -2128,6 +2136,15 @@ list that represents a doc string reference. (print-gensym t) (print-circle ; Handle circular data structures. (not byte-compile-disable-print-circle))) + (if preface + (progn + ;; FIXME: We don't handle uninterned names correctly. + ;; E.g. if cl-define-compiler-macro uses uninterned name we get: + ;; (defalias '#1=#:foo--cmacro #[514 ...]) + ;; (put 'foo 'compiler-macro '#:foo--cmacro) + (insert preface) + (prin1 name byte-compile--outbuffer))) + (insert (car info)) (prin1 (car form) byte-compile--outbuffer) (while (setq form (cdr form)) (setq index (1+ index)) @@ -2521,7 +2538,8 @@ If QUOTED is non-nil, print with quoting; otherwise, print without quoting." "Return an expression which will evaluate to a function value FUN. FUN should be either a `lambda' value or a `closure' value." (pcase-let* (((or (and `(lambda ,args . ,body) (let env nil)) - `(closure ,env ,args . ,body)) fun) + `(closure ,env ,args . ,body)) + fun) (renv ())) ;; Turn the function's closed vars (if any) into local let bindings. (dolist (binding env) @@ -2723,7 +2741,9 @@ for symbols generated by the byte compiler itself." ;; byte-string, constants-vector, stack depth (cdr compiled) ;; optionally, the doc string. - (cond (lexical-binding + (cond ((and lexical-binding arglist) + ;; byte-compile-make-args-desc lost the args's names, + ;; so preserve them in the docstring. (list (help-add-fundoc-usage doc arglist))) ((or doc int) (list doc))) @@ -2960,11 +2980,9 @@ for symbols generated by the byte compiler itself." interactive-only)) (t ".")))) (if (eq (car-safe (symbol-function (car form))) 'macro) - (progn - (debug) - (byte-compile-log-warning - (format "Forgot to expand macro %s in %S" (car form) form) - nil :error))) + (byte-compile-log-warning + (format "Forgot to expand macro %s in %S" (car form) form) + nil :error)) (if (and handler ;; Make sure that function exists. (and (functionp handler) @@ -3357,8 +3375,10 @@ These implicitly `and' together a bunch of two-arg bytecodes." (cond ((< l 3) (byte-compile-form `(progn ,(nth 1 form) t))) ((= l 3) (byte-compile-two-args form)) - (t (byte-compile-form `(and (,(car form) ,(nth 1 form) ,(nth 2 form)) - (,(car form) ,@(nthcdr 2 form)))))))) + ((cl-every #'macroexp-copyable-p (nthcdr 2 form)) + (byte-compile-form `(and (,(car form) ,(nth 1 form) ,(nth 2 form)) + (,(car form) ,@(nthcdr 2 form))))) + (t (byte-compile-normal-call form))))) (defun byte-compile-three-args (form) (if (not (= (length form) 4)) @@ -3800,6 +3820,10 @@ that suppresses all warnings during execution of BODY." ;; If things not being bound at all is ok, so must them being ;; obsolete. Note that we add to the existing lists since Tramp ;; (ab)uses this feature. + ;; FIXME: If `foo' is obsoleted by `bar', the code below + ;; correctly arranges to silence the warnings after testing + ;; existence of `foo', but the warning should also be + ;; silenced after testing the existence of `bar'. (let ((byte-compile-not-obsolete-vars (append byte-compile-not-obsolete-vars bound-list)) (byte-compile-not-obsolete-funcs @@ -4069,9 +4093,8 @@ binding slots have been popped." (byte-defop-compiler-1 save-restriction) ;; (byte-defop-compiler-1 save-window-excursion) ;Obsolete: now a macro. ;; (byte-defop-compiler-1 with-output-to-temp-buffer) ;Obsolete: now a macro. -(byte-defop-compiler-1 track-mouse) -(defvar byte-compile--use-old-handlers t +(defvar byte-compile--use-old-handlers nil "If nil, use new byte codes introduced in Emacs-24.4.") (defun byte-compile-catch (form) @@ -4104,12 +4127,6 @@ binding slots have been popped." (byte-compile-form-do-effect (car (cdr form))) (byte-compile-out 'byte-unbind 1)) -(defun byte-compile-track-mouse (form) - (byte-compile-form - (pcase form - (`(,_ :fun-body ,f) `(eval (list 'track-mouse (list 'funcall ,f)))) - (_ `(eval '(track-mouse ,@(byte-compile-top-level-body (cdr form)))))))) - (defun byte-compile-condition-case (form) (if byte-compile--use-old-handlers (byte-compile-condition-case--old form) diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index 40f1531e0f7..3e17e38fe39 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el @@ -30,13 +30,13 @@ ;; All macros should be expanded beforehand. ;; ;; Here is a brief explanation how this code works. -;; Firstly, we analyze the tree by calling cconv-analyse-form. +;; Firstly, we analyze the tree by calling cconv-analyze-form. ;; This function finds all mutated variables, all functions that are suitable ;; for lambda lifting and all variables captured by closure. It passes the tree ;; once, returning a list of three lists. ;; ;; Then we calculate the intersection of the first and third lists returned by -;; cconv-analyse form to find all mutated variables that are captured by +;; cconv-analyze form to find all mutated variables that are captured by ;; closure. ;; Armed with this data, we call cconv-closure-convert-rec, that rewrites the @@ -140,7 +140,7 @@ Returns a form where all lambdas don't have any free variables." (cconv-lambda-candidates '()) (cconv-captured+mutated '())) ;; Analyze form - fill these variables with new information. - (cconv-analyse-form form '()) + (cconv-analyze-form form '()) (setq cconv-freevars-alist (nreverse cconv-freevars-alist)) (prog1 (cconv-convert form nil nil) ; Env initially empty. (cl-assert (null cconv-freevars-alist))))) @@ -152,7 +152,7 @@ Returns a form where all lambdas don't have any free variables." (cconv-lambda-candidates '()) (cconv-captured+mutated '())) ;; Analyze form - fill these variables with new information. - (cconv-analyse-form form '()) + (cconv-analyze-form form '()) ;; But don't perform the closure conversion. form)) @@ -462,10 +462,6 @@ places where they originally did not directly appear." `(,head ,(cconv-convert form env extend) :fun-body ,(cconv--convert-function () body env form))) - (`(track-mouse . ,body) - `(track-mouse - :fun-body ,(cconv--convert-function () body env form))) - (`(setq . ,forms) ; setq special form (let ((prognlist ())) (while forms @@ -529,7 +525,7 @@ places where they originally did not directly appear." (defalias 'byte-compile-not-lexical-var-p 'boundp)) (defvar byte-compile-lexical-variables) -(defun cconv--analyse-use (vardata form varkind) +(defun cconv--analyze-use (vardata form varkind) "Analyze the use of a variable. VARDATA should be (BINDER READ MUTATED CAPTURED CALLED). VARKIND is the name of the kind of variable. @@ -561,7 +557,7 @@ FORM is the parent form that binds this var." (`(,(and binder `(,_ (function (lambda . ,_)))) nil nil nil t) (push (cons binder form) cconv-lambda-candidates)))) -(defun cconv--analyse-function (args body env parentform) +(defun cconv--analyze-function (args body env parentform) (let* ((newvars nil) (freevars (list body)) ;; We analyze the body within a new environment where all uses are @@ -586,10 +582,10 @@ FORM is the parent form that binds this var." (push (cons (list arg) (cdr varstruct)) newvars) (push varstruct newenv))))) (dolist (form body) ;Analyze body forms. - (cconv-analyse-form form newenv)) + (cconv-analyze-form form newenv)) ;; Summarize resulting data about arguments. (dolist (vardata newvars) - (cconv--analyse-use vardata parentform "argument")) + (cconv--analyze-use vardata parentform "argument")) ;; Transfer uses collected in `envcopy' (via `newenv') back to `env'; ;; and compute free variables. (while env @@ -605,7 +601,7 @@ FORM is the parent form that binds this var." (setf (nth 3 (car env)) t)) (setq env (cdr env) envcopy (cdr envcopy)))))) -(defun cconv-analyse-form (form env) +(defun cconv-analyze-form (form env) "Find mutated variables and variables captured by closure. Analyze lambdas if they are suitable for lambda lifting. - FORM is a piece of Elisp code after macroexpansion. @@ -632,7 +628,7 @@ and updates the data stored in ENV." (setq var (car binder)) (setq value (cadr binder)) - (cconv-analyse-form value (if (eq letsym 'let*) env orig-env))) + (cconv-analyze-form value (if (eq letsym 'let*) env orig-env))) (unless (byte-compile-not-lexical-var-p var) (cl-pushnew var byte-compile-lexical-variables) @@ -641,13 +637,13 @@ and updates the data stored in ENV." (push varstruct env)))) (dolist (form body-forms) ; Analyze body forms. - (cconv-analyse-form form env)) + (cconv-analyze-form form env)) (dolist (vardata newvars) - (cconv--analyse-use vardata form "variable")))) + (cconv--analyze-use vardata form "variable")))) (`(function (lambda ,vrs . ,body-forms)) - (cconv--analyse-function vrs body-forms env form)) + (cconv--analyze-function vrs body-forms env form)) (`(setq . ,forms) ;; If a local variable (member of env) is modified by setq then @@ -655,7 +651,7 @@ and updates the data stored in ENV." (while forms (let ((v (assq (car forms) env))) ; v = non nil if visible (when v (setf (nth 2 v) t))) - (cconv-analyse-form (cadr forms) env) + (cconv-analyze-form (cadr forms) env) (setq forms (cddr forms)))) (`((lambda . ,_) . ,_) ; First element is lambda expression. @@ -663,11 +659,11 @@ and updates the data stored in ENV." (format "Use of deprecated ((lambda %s ...) ...) form" (nth 1 (car form))) t :warning) (dolist (exp `((function ,(car form)) . ,(cdr form))) - (cconv-analyse-form exp env))) + (cconv-analyze-form exp env))) (`(cond . ,cond-forms) ; cond special form (dolist (forms cond-forms) - (dolist (form forms) (cconv-analyse-form form env)))) + (dolist (form forms) (cconv-analyze-form form env)))) (`(quote . ,_) nil) ; quote form (`(function . ,_) nil) ; same as quote @@ -676,13 +672,13 @@ and updates the data stored in ENV." (guard byte-compile--use-old-handlers)) ;; FIXME: The bytecode for condition-case forces us to wrap the ;; form and handlers in closures. - (cconv--analyse-function () (list protected-form) env form) + (cconv--analyze-function () (list protected-form) env form) (dolist (handler handlers) - (cconv--analyse-function (if var (list var)) (cdr handler) + (cconv--analyze-function (if var (list var)) (cdr handler) env form))) (`(condition-case ,var ,protected-form . ,handlers) - (cconv-analyse-form protected-form env) + (cconv-analyze-form protected-form env) (when (and var (symbolp var) (byte-compile-not-lexical-var-p var)) (byte-compile-log-warning (format "Lexical variable shadows the dynamic variable %S" var))) @@ -690,26 +686,21 @@ and updates the data stored in ENV." (if var (push varstruct env)) (dolist (handler handlers) (dolist (form (cdr handler)) - (cconv-analyse-form form env))) - (if var (cconv--analyse-use (cons (list var) (cdr varstruct)) + (cconv-analyze-form form env))) + (if var (cconv--analyze-use (cons (list var) (cdr varstruct)) form "variable")))) ;; FIXME: The bytecode for unwind-protect forces us to wrap the unwind. (`(,(or (and `catch (guard byte-compile--use-old-handlers)) `unwind-protect) ,form . ,body) - (cconv-analyse-form form env) - (cconv--analyse-function () body env form)) - - ;; FIXME: The lack of bytecode for track-mouse forces us to wrap the body. - ;; `track-mouse' really should be made into a macro. - (`(track-mouse . ,body) - (cconv--analyse-function () body env form)) + (cconv-analyze-form form env) + (cconv--analyze-function () body env form)) (`(defvar ,var) (push var byte-compile-bound-variables)) (`(,(or `defconst `defvar) ,var ,value . ,_) (push var byte-compile-bound-variables) - (cconv-analyse-form value env)) + (cconv-analyze-form value env)) (`(,(or `funcall `apply) ,fun . ,args) ;; Here we ignore fun because funcall and apply are the only two @@ -719,8 +710,8 @@ and updates the data stored in ENV." (let ((fdata (and (symbolp fun) (assq fun env)))) (if fdata (setf (nth 4 fdata) t) - (cconv-analyse-form fun env))) - (dolist (form args) (cconv-analyse-form form env))) + (cconv-analyze-form fun env))) + (dolist (form args) (cconv-analyze-form form env))) (`(interactive . ,forms) ;; These appear within the function body but they don't have access @@ -728,19 +719,20 @@ and updates the data stored in ENV." ;; We could extend this to allow interactive specs to refer to ;; variables in the function's enclosing environment, but it doesn't ;; seem worth the trouble. - (dolist (form forms) (cconv-analyse-form form nil))) + (dolist (form forms) (cconv-analyze-form form nil))) ;; `declare' should now be macro-expanded away (and if they're not, we're ;; in trouble because they *can* contain code nowadays). ;; (`(declare . ,_) nil) ;The args don't contain code. (`(,_ . ,body-forms) ; First element is a function or whatever. - (dolist (form body-forms) (cconv-analyse-form form env))) + (dolist (form body-forms) (cconv-analyze-form form env))) ((pred symbolp) (let ((dv (assq form env))) ; dv = declared and visible (when dv (setf (nth 1 dv) t)))))) +(define-obsolete-function-alias 'cconv-analyse-form 'cconv-analyze-form "25.1") (provide 'cconv) ;;; cconv.el ends here diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index 3761d04c2c2..a94dcd335b4 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el @@ -383,6 +383,42 @@ With two arguments, return rounding and remainder of their quotient." "Return 1 if X is positive, -1 if negative, 0 if zero." (cond ((> x 0) 1) ((< x 0) -1) (t 0))) +;;;###autoload +(cl-defun cl-parse-integer (string &key start end radix junk-allowed) + "Parse integer from the substring of STRING from START to END. +STRING may be surrounded by whitespace chars (chars with syntax ` '). +Other non-digit chars are considered junk. +RADIX is an integer between 2 and 36, the default is 10. Signal +an error if the substring between START and END cannot be parsed +as an integer unless JUNK-ALLOWED is non-nil." + (cl-check-type string string) + (let* ((start (or start 0)) + (len (length string)) + (end (or end len)) + (radix (or radix 10))) + (or (<= start end len) + (error "Bad interval: [%d, %d)" start end)) + (cl-flet ((skip-whitespace () + (while (and (< start end) + (= 32 (char-syntax (aref string start)))) + (setq start (1+ start))))) + (skip-whitespace) + (let ((sign (cl-case (and (< start end) (aref string start)) + (?+ (cl-incf start) +1) + (?- (cl-incf start) -1) + (t +1))) + digit sum) + (while (and (< start end) + (setq digit (cl-digit-char-p (aref string start) radix))) + (setq sum (+ (* (or sum 0) radix) digit) + start (1+ start))) + (skip-whitespace) + (cond ((and junk-allowed (null sum)) sum) + (junk-allowed (* sign sum)) + ((or (/= start end) (null sum)) + (error "Not an integer string: `%s'" string)) + (t (* sign sum))))))) + ;; Random numbers. @@ -552,7 +588,7 @@ If START or END is negative, it counts from the end." "Return the value of SYMBOL's PROPNAME property, or DEFAULT if none. \n(fn SYMBOL PROPNAME &optional DEFAULT)" (declare (compiler-macro cl--compiler-macro-get) - (gv-setter (lambda (store) `(put ,sym ,tag ,store)))) + (gv-setter (lambda (store) (ignore def) `(put ,sym ,tag ,store)))) (or (get sym tag) (and def ;; Make sure `def' is really absent as opposed to set to nil. @@ -570,15 +606,14 @@ PROPLIST is a list of the sort returned by `symbol-plist'. (declare (gv-expander (lambda (do) (gv-letplace (getter setter) plist - (macroexp-let2 nil k tag - (macroexp-let2 nil d def - (funcall do `(cl-getf ,getter ,k ,d) - (lambda (v) - (macroexp-let2 nil val v - `(progn - ,(funcall setter - `(cl--set-getf ,getter ,k ,val)) - ,val)))))))))) + (macroexp-let2* nil ((k tag) (d def)) + (funcall do `(cl-getf ,getter ,k ,d) + (lambda (v) + (macroexp-let2 nil val v + `(progn + ,(funcall setter + `(cl--set-getf ,getter ,k ,val)) + ,val))))))))) (setplist '--cl-getf-symbol-- plist) (or (get '--cl-getf-symbol-- tag) ;; Originally we called cl-get here, @@ -611,6 +646,13 @@ PROPLIST is a list of the sort returned by `symbol-plist'. (progn (setplist sym (cdr (cdr plist))) t) (cl--do-remf plist tag)))) +;;; Streams. + +;;;###autoload +(defun cl-fresh-line (&optional stream) + "Output a newline unless already at the beginning of a line." + (terpri stream 'ensure)) + ;;; Some debugging aids. (defun cl-prettyprint (form) @@ -677,4 +719,5 @@ including `cl-block' and `cl-eval-when'." ;; generated-autoload-file: "cl-loaddefs.el" ;; End: +(provide 'cl-extra) ;;; cl-extra.el ends here diff --git a/lisp/emacs-lisp/cl-lib.el b/lisp/emacs-lisp/cl-lib.el index c4b9673aa2a..cc61597d313 100644 --- a/lisp/emacs-lisp/cl-lib.el +++ b/lisp/emacs-lisp/cl-lib.el @@ -279,6 +279,25 @@ so that they are registered at compile-time as well as run-time." "Return t if INTEGER is even." (eq (logand integer 1) 0)) +(defconst cl-digit-char-table + (let* ((digits (make-vector 256 nil)) + (populate (lambda (start end base) + (mapc (lambda (i) + (aset digits i (+ base (- i start)))) + (number-sequence start end))))) + (funcall populate ?0 ?9 0) + (funcall populate ?A ?Z 10) + (funcall populate ?a ?z 10) + digits)) + +(defun cl-digit-char-p (char &optional radix) + "Test if CHAR is a digit in the specified RADIX (default 10). +If true return the decimal value of digit CHAR in RADIX." + (or (<= 2 (or radix 10) 36) + (signal 'args-out-of-range (list 'radix radix '(2 36)))) + (let ((n (aref cl-digit-char-table char))) + (and n (< n (or radix 10)) n))) + (defvar cl--random-state (vector 'cl--random-state-tag -1 30 (cl--random-time))) @@ -682,7 +701,6 @@ If ALIST is non-nil, the new pairs are prepended to it." (gv-define-setter window-width (store) `(progn (enlarge-window (- ,store (window-width)) t) ,store)) (gv-define-simple-setter x-get-secondary-selection x-own-secondary-selection t) -(gv-define-simple-setter x-get-selection x-own-selection t) ;; More complex setf-methods. @@ -705,12 +723,11 @@ If ALIST is non-nil, the new pairs are prepended to it." (gv-define-expander substring (lambda (do place from &optional to) (gv-letplace (getter setter) place - (macroexp-let2 nil start from - (macroexp-let2 nil end to - (funcall do `(substring ,getter ,start ,end) - (lambda (v) - (funcall setter `(cl--set-substring - ,getter ,start ,end ,v))))))))) + (macroexp-let2* nil ((start from) (end to)) + (funcall do `(substring ,getter ,start ,end) + (lambda (v) + (funcall setter `(cl--set-substring + ,getter ,start ,end ,v)))))))) ;;; Miscellaneous. diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index e4a73d1a4de..0a6e1c63cf1 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -822,7 +822,8 @@ For more details, see Info node `(cl)Loop Facility'. "repeat" "while" "until" "always" "never" "thereis" "collect" "append" "nconc" "sum" "count" "maximize" "minimize" "if" "unless" - "return"] form] + "return"] + form] ;; Simple default, which covers 99% of the cases. symbolp form))) (if (not (memq t (mapcar #'symbolp @@ -1136,7 +1137,8 @@ For more details, see Info node `(cl)Loop Facility'. (if end (push (list (if down (if excl '> '>=) (if excl '< '<=)) - var (or end-var end)) cl--loop-body)) + var (or end-var end)) + cl--loop-body)) (push (list var (list (if down '- '+) var (or step-var step 1))) loop-for-steps))) @@ -1194,7 +1196,8 @@ For more details, see Info node `(cl)Loop Facility'. (push (list temp-vec (pop cl--loop-args)) loop-for-bindings) (push (list temp-idx -1) loop-for-bindings) (push `(< (setq ,temp-idx (1+ ,temp-idx)) - (length ,temp-vec)) cl--loop-body) + (length ,temp-vec)) + cl--loop-body) (if (eq word 'across-ref) (push (list var `(aref ,temp-vec ,temp-idx)) cl--loop-symbol-macs) @@ -1370,7 +1373,8 @@ For more details, see Info node `(cl)Loop Facility'. (if loop-for-sets (push `(progn ,(cl--loop-let (nreverse loop-for-sets) 'setq ands) - t) cl--loop-body)) + t) + cl--loop-body)) (if loop-for-steps (push (cons (if ands 'cl-psetq 'setq) (apply 'append (nreverse loop-for-steps))) @@ -1388,7 +1392,8 @@ For more details, see Info node `(cl)Loop Facility'. (push `(progn (push ,what ,var) t) cl--loop-body) (push `(progn (setq ,var (nconc ,var (list ,what))) - t) cl--loop-body)))) + t) + cl--loop-body)))) ((memq word '(nconc nconcing append appending)) (let ((what (pop cl--loop-args)) @@ -1403,7 +1408,9 @@ For more details, see Info node `(cl)Loop Facility'. ,var) `(,(if (memq word '(nconc nconcing)) #'nconc #'append) - ,var ,what))) t) cl--loop-body))) + ,var ,what))) + t) + cl--loop-body))) ((memq word '(concat concating)) (let ((what (pop cl--loop-args)) @@ -1434,7 +1441,8 @@ For more details, see Info node `(cl)Loop Facility'. (set `(setq ,var (if ,var (,func ,var ,temp) ,temp)))) (push `(progn ,(if (eq temp what) set `(let ((,temp ,what)) ,set)) - t) cl--loop-body))) + t) + cl--loop-body))) ((eq word 'with) (let ((bindings nil)) @@ -1505,7 +1513,8 @@ For more details, see Info node `(cl)Loop Facility'. (or cl--loop-result-var (setq cl--loop-result-var (make-symbol "--cl-var--"))) (push `(setq ,cl--loop-result-var ,(pop cl--loop-args) - ,cl--loop-finish-flag nil) cl--loop-body)) + ,cl--loop-finish-flag nil) + cl--loop-body)) (t ;; This is an advertised interface: (info "(cl)Other Clauses"). @@ -2398,7 +2407,8 @@ non-nil value, that slot cannot be set via `setf'. pred-form pred-check) (if (stringp (car descs)) (push `(put ',name 'structure-documentation - ,(pop descs)) forms)) + ,(pop descs)) + forms)) (setq descs (cons '(cl-tag-slot) (mapcar (function (lambda (x) (if (consp x) x (list x)))) descs))) @@ -2477,6 +2487,8 @@ non-nil value, that slot cannot be set via `setf'. (setq type 'vector named 'true))) (or named (setq descs (delq (assq 'cl-tag-slot descs) descs))) (push `(defvar ,tag-symbol) forms) + (when (and (null predicate) named) + (setq predicate (intern (format "cl--struct-%s-p" name)))) (setq pred-form (and named (let ((pos (- (length descs) (length (memq (assq 'cl-tag-slot descs) @@ -2492,7 +2504,8 @@ non-nil value, that slot cannot be set via `setf'. pred-check (and pred-form (> safety 0) (if (and (eq (cl-caadr pred-form) 'vectorp) (= safety 1)) - (cons 'and (cl-cdddr pred-form)) pred-form))) + (cons 'and (cl-cdddr pred-form)) + `(,predicate cl-x)))) (let ((pos 0) (descp descs)) (while descp (let* ((desc (pop descp)) @@ -2547,12 +2560,14 @@ non-nil value, that slot cannot be set via `setf'. (setq pos (1+ pos)))) (setq slots (nreverse slots) defaults (nreverse defaults)) - (and predicate pred-form - (progn (push `(cl-defsubst ,predicate (cl-x) - ,(if (eq (car pred-form) 'and) - (append pred-form '(t)) - `(and ,pred-form t))) forms) - (push (cons predicate 'error-free) side-eff))) + (when pred-form + (push `(cl-defsubst ,predicate (cl-x) + ,(if (eq (car pred-form) 'and) + (append pred-form '(t)) + `(and ,pred-form t))) + forms) + (push `(put ',name 'cl-deftype-satisfies ',predicate) forms) + (push (cons predicate 'error-free) side-eff)) (and copier (progn (push `(defun ,copier (x) (copy-sequence x)) forms) (push (cons copier t) side-eff))) @@ -2568,7 +2583,8 @@ non-nil value, that slot cannot be set via `setf'. slots defaults))) (push `(cl-defsubst ,name (&cl-defs '(nil ,@descs) ,@args) - (,type ,@make)) forms) + (,type ,@make)) + forms) (if (cl--safe-expr-p `(progn ,@(mapcar #'cl-second descs))) (push (cons name t) side-eff)))) (if print-auto (nconc print-func (list '(princ ")" cl-s) t))) @@ -2635,46 +2651,48 @@ Of course, we really can't know that for sure, so it's just a heuristic." (cdr (assq sym byte-compile-macro-environment)))))) (defun cl--make-type-test (val type) - (if (symbolp type) - (cond ((get type 'cl-deftype-handler) - (cl--make-type-test val (funcall (get type 'cl-deftype-handler)))) - ((memq type '(nil t)) type) - ((eq type 'null) `(null ,val)) - ((eq type 'atom) `(atom ,val)) - ((eq type 'float) `(floatp ,val)) - ((eq type 'real) `(numberp ,val)) - ((eq type 'fixnum) `(integerp ,val)) - ;; FIXME: Should `character' accept things like ?\C-\M-a ? --Stef - ((memq type '(character string-char)) `(characterp ,val)) - (t - (let* ((name (symbol-name type)) - (namep (intern (concat name "p")))) - (cond - ((cl--macroexp-fboundp namep) (list namep val)) - ((cl--macroexp-fboundp - (setq namep (intern (concat name "-p")))) - (list namep val)) - (t (list type val)))))) - (cond ((get (car type) 'cl-deftype-handler) - (cl--make-type-test val (apply (get (car type) 'cl-deftype-handler) - (cdr type)))) - ((memq (car type) '(integer float real number)) - (delq t `(and ,(cl--make-type-test val (car type)) - ,(if (memq (cadr type) '(* nil)) t - (if (consp (cadr type)) `(> ,val ,(cl-caadr type)) - `(>= ,val ,(cadr type)))) - ,(if (memq (cl-caddr type) '(* nil)) t - (if (consp (cl-caddr type)) - `(< ,val ,(cl-caaddr type)) - `(<= ,val ,(cl-caddr type))))))) - ((memq (car type) '(and or not)) - (cons (car type) - (mapcar (function (lambda (x) (cl--make-type-test val x))) - (cdr type)))) - ((memq (car type) '(member cl-member)) - `(and (cl-member ,val ',(cdr type)) t)) - ((eq (car type) 'satisfies) (list (cadr type) val)) - (t (error "Bad type spec: %s" type))))) + (pcase type + ((and `(,name . ,args) (guard (get name 'cl-deftype-handler))) + (cl--make-type-test val (apply (get name 'cl-deftype-handler) + args))) + (`(,(and name (or 'integer 'float 'real 'number)) + . ,(or `(,min ,max) pcase--dontcare)) + `(and ,(cl--make-type-test val name) + ,(if (memq min '(* nil)) t + (if (consp min) `(> ,val ,(car min)) + `(>= ,val ,min))) + ,(if (memq max '(* nil)) t + (if (consp max) + `(< ,val ,(car max)) + `(<= ,val ,max))))) + (`(,(and name (or 'and 'or 'not)) . ,args) + (cons name (mapcar (lambda (x) (cl--make-type-test val x)) args))) + (`(member . ,args) + `(and (cl-member ,val ',args) t)) + (`(satisfies ,pred) `(funcall #',pred ,val)) + ((and (pred symbolp) (guard (get type 'cl-deftype-handler))) + (cl--make-type-test val (funcall (get type 'cl-deftype-handler)))) + ((and (pred symbolp) (guard (get type 'cl-deftype-satisfies))) + `(funcall #',(get type 'cl-deftype-satisfies) ,val)) + ((or 'nil 't) type) + ('null `(null ,val)) + ('atom `(atom ,val)) + ('float `(floatp ,val)) + ('real `(numberp ,val)) + ('fixnum `(integerp ,val)) + ;; FIXME: Implement `base-char' and `extended-char'. + ('character `(characterp ,val)) + ((pred symbolp) + (let* ((name (symbol-name type)) + (namep (intern (concat name "p")))) + (cond + ((cl--macroexp-fboundp namep) (list namep val)) + ((cl--macroexp-fboundp + (setq namep (intern (concat name "-p")))) + (list namep val)) + ((cl--macroexp-fboundp type) (list type val)) + (t (error "Unknown type %S" type))))) + (_ (error "Bad type spec: %s" type)))) (defvar cl--object) ;;;###autoload @@ -2749,7 +2767,12 @@ and then returning foo." (let ((p args) (res nil)) (while (consp p) (push (pop p) res)) (setq args (nconc (nreverse res) (and p (list '&rest p))))) - (let ((fname (make-symbol (concat (symbol-name func) "--cmacro")))) + ;; FIXME: The code in bytecomp mishandles top-level expressions that define + ;; uninterned functions. E.g. it would generate code like: + ;; (defalias '#1=#:foo--cmacro #[514 ...]) + ;; (put 'foo 'compiler-macro '#:foo--cmacro) + ;; So we circumvent this by using an interned name. + (let ((fname (intern (concat (symbol-name func) "--cmacro")))) `(eval-and-compile ;; Name the compiler-macro function, so that `symbol-file' can find it. (cl-defun ,fname ,(if (memq '&whole args) (delq '&whole args) @@ -2883,9 +2906,8 @@ The function's arguments should be treated as immutable. ;;;###autoload (defun cl--compiler-macro-adjoin (form a list &rest keys) (if (memq :key keys) form - (macroexp-let2 macroexp-copyable-p va a - (macroexp-let2 macroexp-copyable-p vlist list - `(if (cl-member ,va ,vlist ,@keys) ,vlist (cons ,va ,vlist)))))) + (macroexp-let2* macroexp-copyable-p ((va a) (vlist list)) + `(if (cl-member ,va ,vlist ,@keys) ,vlist (cons ,va ,vlist))))) (defun cl--compiler-macro-get (_form sym prop &optional def) (if def diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index b5b6566cf66..9a17a75e48b 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -300,7 +300,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. ,(format "Hook run after entering or leaving `%s'. No problems result if this variable is not bound. `add-hook' automatically binds it. (This is true for all hook variables.)" - mode)) + modefun)) ;; Define the minor-mode keymap. ,(unless (symbolp keymap) ;nil is also a symbol. diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 785050896b8..473edb4bc61 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el @@ -3373,9 +3373,7 @@ Return the result of the last expression." (print-level (or edebug-print-level print-level)) (print-circle (or edebug-print-circle print-circle)) (print-readably nil)) ; lemacs uses this. - (condition-case nil - (edebug-prin1-to-string value) - (error "#Apparently circular structure#")))) + (edebug-prin1-to-string value))) (defun edebug-compute-previous-result (previous-value) (if edebug-unwrap-results diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el index 150724e6484..a1c2cb54a9e 100644 --- a/lisp/emacs-lisp/eieio-base.el +++ b/lisp/emacs-lisp/eieio-base.el @@ -1,4 +1,4 @@ -;;; eieio-base.el --- Base classes for EIEIO. +;;; eieio-base.el --- Base classes for EIEIO. -*- lexical-binding:t -*- ;;; Copyright (C) 2000-2002, 2004-2005, 2007-2014 Free Software ;;; Foundation, Inc. @@ -31,7 +31,7 @@ ;;; Code: (require 'eieio) -(eval-when-compile (require 'cl)) ;FIXME: Use cl-lib! +(eval-when-compile (require 'cl-lib)) ;;; eieio-instance-inheritor ;; @@ -52,7 +52,8 @@ a parent instance. When a slot in the child is referenced, and has not been set, use values from the parent." :abstract t) -(defmethod slot-unbound ((object eieio-instance-inheritor) class slot-name fn) +(defmethod slot-unbound ((object eieio-instance-inheritor) + _class slot-name _fn) "If a slot OBJECT in this CLASS is unbound, try to inherit, or throw a signal. SLOT-NAME is the offending slot. FN is the function signaling the error." (if (slot-boundp object 'parent-instance) @@ -118,7 +119,7 @@ a variable symbol used to store a list of all instances." :abstract t) (defmethod initialize-instance :AFTER ((this eieio-instance-tracker) - &rest slots) + &rest _slots) "Make sure THIS is in our master list of this class. Optional argument SLOTS are the initialization arguments." ;; Theoretically, this is never called twice for a given instance. @@ -154,7 +155,7 @@ Multiple calls to `make-instance' will return this object.")) A singleton is a class which will only ever have one instance." :abstract t) -(defmethod constructor :STATIC ((class eieio-singleton) name &rest slots) +(defmethod constructor :STATIC ((class eieio-singleton) _name &rest _slots) "Constructor for singleton CLASS. NAME and SLOTS initialize the new object. This constructor guarantees that no matter how many you request, diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el index 76655caf65a..2897ce9042a 100644 --- a/lisp/emacs-lisp/eieio-core.el +++ b/lisp/emacs-lisp/eieio-core.el @@ -1,4 +1,4 @@ -;;; eieio-core.el --- Core implementation for eieio +;;; eieio-core.el --- Core implementation for eieio -*- lexical-binding:t -*- ;; Copyright (C) 1995-1996, 1998-2014 Free Software Foundation, Inc. @@ -31,21 +31,7 @@ ;;; Code: -(eval-when-compile (require 'cl)) ;FIXME: Use cl-lib! - -;; Compatibility -(if (fboundp 'compiled-function-arglist) - - ;; XEmacs can only access a compiled functions arglist like this: - (defalias 'eieio-compiled-function-arglist 'compiled-function-arglist) - - ;; Emacs doesn't have this function, but since FUNC is a vector, we can just - ;; grab the appropriate element. - (defun eieio-compiled-function-arglist (func) - "Return the argument list for the compiled function FUNC." - (aref func 0)) - - ) +(require 'cl-lib) (put 'eieio--defalias 'byte-hunk-handler #'byte-compile-file-form-defalias) ;;(get 'defalias 'byte-hunk-handler) @@ -117,12 +103,12 @@ default setting for optimization purposes.") (defmacro eieio--with-scoped-class (class &rest forms) "Set CLASS as the currently scoped class while executing FORMS." + (declare (indent 1)) `(unwind-protect (progn (push ,class eieio--scoped-class-stack) ,@forms) (pop eieio--scoped-class-stack))) -(put 'eieio--with-scoped-class 'lisp-indent-function 1) ;;; ;; Field Accessors @@ -220,14 +206,14 @@ Stored outright without modifications or stripping."))) ;; No check: If eieio gets this far, it has probably been checked already. `(get ,class 'eieio-class-definition)) -(defmacro class-p (class) - "Return t if CLASS is a valid class vector. +(defsubst class-p (class) + "Return non-nil if CLASS is a valid class vector. CLASS is a symbol." ;; this new method is faster since it doesn't waste time checking lots of ;; things. - `(condition-case nil - (eq (aref (class-v ,class) 0) 'defclass) - (error nil))) + (condition-case nil + (eq (aref (class-v class) 0) 'defclass) + (error nil))) (defun eieio-class-name (class) "Return a Lisp like symbol name for CLASS." (eieio--check-type class-p class) @@ -251,11 +237,11 @@ CLASS is a symbol." "Return the symbol representing the constructor of CLASS." `(eieio--class-symbol (class-v ,class))) -(defmacro generic-p (method) - "Return t if symbol METHOD is a generic function. +(defsubst generic-p (method) + "Return non-nil if symbol METHOD is a generic function. Only methods have the symbol `eieio-method-obarray' as a property \(which contains a list of all bindings to that method type.)" - `(and (fboundp ,method) (get ,method 'eieio-method-obarray))) + (and (fboundp method) (get method 'eieio-method-obarray))) (defun generic-primary-only-p (method) "Return t if symbol METHOD is a generic function with only primary methods. @@ -298,19 +284,18 @@ Methods with only primary implementations are executed in an optimized way." Return nil if that option doesn't exist." `(class-option-assoc (eieio--class-options (class-v ,class)) ',option)) -(defmacro eieio-object-p (obj) +(defsubst eieio-object-p (obj) "Return non-nil if OBJ is an EIEIO object." - `(condition-case nil - (let ((tobj ,obj)) - (and (eq (aref tobj 0) 'object) - (class-p (eieio--object-class tobj)))) - (error nil))) + (condition-case nil + (and (eq (aref obj 0) 'object) + (class-p (eieio--object-class obj))) + (error nil))) (defalias 'object-p 'eieio-object-p) -(defmacro class-abstract-p (class) +(defsubst class-abstract-p (class) "Return non-nil if CLASS is abstract. Abstract classes cannot be instantiated." - `(class-option ,class :abstract)) + (class-option class :abstract)) (defmacro class-method-invocation-order (class) "Return the invocation order of CLASS. @@ -408,6 +393,12 @@ It creates an autoload function for CNAME's constructor." (when (eq (car-safe (symbol-function cname)) 'autoload) (load-library (car (cdr (symbol-function cname)))))) +(cl-deftype list-of (elem-type) + `(and list + (satisfies (lambda (list) + (cl-every (lambda (elem) (cl-typep elem ',elem-type)) + list))))) + (defun eieio-defclass (cname superclasses slots options-and-doc) ;; FIXME: Most of this should be moved to the `defclass' macro. "Define CNAME as a new subclass of SUPERCLASSES. @@ -476,7 +467,7 @@ See `defclass' for more information." (setf (eieio--class-children (class-v (car pname))) (cons cname (eieio--class-children (class-v (car pname)))))) ;; Get custom groups, and store them into our local copy. - (mapc (lambda (g) (pushnew g groups :test #'equal)) + (mapc (lambda (g) (cl-pushnew g groups :test #'equal)) (class-option (car pname) :custom-groups)) ;; save parent in child (setf (eieio--class-parent newc) (cons (car pname) (eieio--class-parent newc)))) @@ -553,8 +544,7 @@ See `defclass' for more information." ;; test, so we can let typep have the CLOS documented behavior ;; while keeping our above predicate clean. - ;; It would be cleaner to use `defsetf' here, but that requires cl - ;; at runtime. + ;; FIXME: It would be cleaner to use `cl-deftype' here. (put cname 'cl-deftype-handler (list 'lambda () `(list 'satisfies (quote ,csym))))) @@ -655,7 +645,7 @@ See `defclass' for more information." prot initarg alloc 'defaultoverride skip-nil) ;; We need to id the group, and store them in a group list attribute. - (mapc (lambda (cg) (pushnew cg groups :test 'equal)) customg) + (mapc (lambda (cg) (cl-pushnew cg groups :test 'equal)) customg) ;; Anyone can have an accessor function. This creates a function ;; of the specified name, and also performs a `defsetf' if applicable @@ -673,26 +663,12 @@ See `defclass' for more information." ;; Else - Some error? nil? nil))) - (if (fboundp 'gv-define-setter) - ;; FIXME: We should move more of eieio-defclass into the - ;; defclass macro so we don't have to use `eval' and require - ;; `gv' at run-time. - (eval `(gv-define-setter ,acces (eieio--store eieio--object) - (list 'eieio-oset eieio--object '',name - eieio--store))) - ;; Provide a setf method. It would be cleaner to use - ;; defsetf, but that would require CL at runtime. - (put acces 'setf-method - `(lambda (widget) - (let* ((--widget-sym-- (make-symbol "--widget--")) - (--store-sym-- (make-symbol "--store--"))) - (list - (list --widget-sym--) - (list widget) - (list --store-sym--) - (list 'eieio-oset --widget-sym-- '',name - --store-sym--) - (list 'getfoo --widget-sym--)))))))) + ;; FIXME: We should move more of eieio-defclass into the + ;; defclass macro so we don't have to use `eval' and require + ;; `gv' at run-time. + (eval `(gv-define-setter ,acces (eieio--store eieio--object) + (list 'eieio-oset eieio--object '',name + eieio--store))))) ;; If a writer is defined, then create a generic method of that ;; name whose purpose is to set the value of the slot. @@ -721,7 +697,7 @@ See `defclass' for more information." (setf (eieio--class-public-d newc) (nreverse (eieio--class-public-d newc))) (setf (eieio--class-public-doc newc) (nreverse (eieio--class-public-doc newc))) (setf (eieio--class-public-type newc) - (apply 'vector (nreverse (eieio--class-public-type newc)))) + (apply #'vector (nreverse (eieio--class-public-type newc)))) (setf (eieio--class-public-custom newc) (nreverse (eieio--class-public-custom newc))) (setf (eieio--class-public-custom-label newc) (nreverse (eieio--class-public-custom-label newc))) (setf (eieio--class-public-custom-group newc) (nreverse (eieio--class-public-custom-group newc))) @@ -732,11 +708,11 @@ See `defclass' for more information." ;; The storage for class-class-allocation-type needs to be turned into ;; a vector now. (setf (eieio--class-class-allocation-type newc) - (apply 'vector (eieio--class-class-allocation-type newc))) + (apply #'vector (eieio--class-class-allocation-type newc))) ;; Also, take class allocated values, and vectorize them for speed. (setf (eieio--class-class-allocation-values newc) - (apply 'vector (eieio--class-class-allocation-values newc))) + (apply #'vector (eieio--class-class-allocation-values newc))) ;; Attach slot symbols into an obarray, and store the index of ;; this slot as the variable slot in this new symbol. We need to @@ -779,7 +755,7 @@ See `defclass' for more information." (fset cname `(lambda (newname &rest slots) ,(format "Create a new object with name NAME of class type %s" cname) - (apply 'constructor ,cname newname slots))) + (apply #'constructor ,cname newname slots))) ) ;; Set up a specialized doc string. @@ -798,7 +774,7 @@ See `defclass' for more information." ;; We have a list of custom groups. Store them into the options. (let ((g (class-option-assoc options :custom-groups))) - (mapc (lambda (cg) (pushnew cg g :test 'equal)) groups) + (mapc (lambda (cg) (cl-pushnew cg g :test 'equal)) groups) (if (memq :custom-groups options) (setcar (cdr (memq :custom-groups options)) g) (setq options (cons :custom-groups (cons g options))))) @@ -1065,7 +1041,7 @@ if default value is nil." )) )) -(defun eieio-copy-parents-into-subclass (newc parents) +(defun eieio-copy-parents-into-subclass (newc _parents) "Copy into NEWC the slots of PARENTS. Follow the rules of not overwriting early parents when applying to the new child class." @@ -1178,6 +1154,8 @@ DOC-STRING is the documentation attached to METHOD." (let ((doc-string (documentation method))) (fset method (eieio-defgeneric-form-primary-only method doc-string)))) +(declare-function no-applicable-method "eieio" (object method &rest args)) + (defun eieio-defgeneric-form-primary-only-one (method doc-string class impl @@ -1212,7 +1190,7 @@ IMPL is the symbol holding the method implementation." ',class))) ;; If not the right kind of object, call no applicable - (apply 'no-applicable-method (car local-args) + (apply #'no-applicable-method (car local-args) ',method local-args) ;; It is ok, do the call. @@ -1299,53 +1277,12 @@ but remove reference to all implementations of METHOD." ;; This is a hideous hack for replacing `typep' from cl-macs, to avoid ;; requiring the CL library at run-time. It can be eliminated if/when ;; `typep' is merged into Emacs core. -(defun eieio--typep (val type) - (if (symbolp type) - (cond ((get type 'cl-deftype-handler) - (eieio--typep val (funcall (get type 'cl-deftype-handler)))) - ((eq type t) t) - ((eq type 'null) (null val)) - ((eq type 'atom) (atom val)) - ((eq type 'float) (and (numberp val) (not (integerp val)))) - ((eq type 'real) (numberp val)) - ((eq type 'fixnum) (integerp val)) - ((memq type '(character string-char)) (characterp val)) - (t - (let* ((name (symbol-name type)) - (namep (intern (concat name "p")))) - (if (fboundp namep) - (funcall `(lambda () (,namep val))) - (funcall `(lambda () - (,(intern (concat name "-p")) val))))))) - (cond ((get (car type) 'cl-deftype-handler) - (eieio--typep val (apply (get (car type) 'cl-deftype-handler) - (cdr type)))) - ((memq (car type) '(integer float real number)) - (and (eieio--typep val (car type)) - (or (memq (cadr type) '(* nil)) - (if (consp (cadr type)) - (> val (car (cadr type))) - (>= val (cadr type)))) - (or (memq (caddr type) '(* nil)) - (if (consp (car (cddr type))) - (< val (caar (cddr type))) - (<= val (car (cddr type))))))) - ((memq (car type) '(and or not)) - (eval (cons (car type) - (mapcar (lambda (x) - `(eieio--typep (quote ,val) (quote ,x))) - (cdr type))))) - ((memq (car type) '(member member*)) - (memql val (cdr type))) - ((eq (car type) 'satisfies) - (funcall `(lambda () (,(cadr type) val)))) - (t (error "Bad type spec: %s" type))))) (defun eieio-perform-slot-validation (spec value) "Return non-nil if SPEC does not match VALUE." (or (eq spec t) ; t always passes (eq value eieio-unbound) ; unbound always passes - (eieio--typep value spec))) + (cl-typep value spec))) (defun eieio-validate-slot-value (class slot-idx value slot) "Make sure that for CLASS referencing SLOT-IDX, VALUE is valid. @@ -1632,7 +1569,7 @@ If a consistent order does not exist, signal an error." ;; applicable. (eieio-c3-merge-lists (cons next reversed-partial-result) - (mapcar (lambda (l) (if (eq (first l) next) (rest l) l)) + (mapcar (lambda (l) (if (eq (cl-first l) next) (cl-rest l) l)) remaining-inputs)) ;; The graph is inconsistent, give up (signal 'inconsistent-class-hierarchy (list remaining-inputs)))))) @@ -1700,7 +1637,7 @@ The order, in which the parents are returned depends on the method invocation orders of the involved classes." (if (or (null class) (eq class 'eieio-default-superclass)) nil - (case (class-method-invocation-order class) + (cl-case (class-method-invocation-order class) (:depth-first (eieio-class-precedence-dfs class)) (:breadth-first @@ -1839,7 +1776,7 @@ This should only be called from a generic function." ;; Now loop through all occurrences forms which we must execute ;; (which are happily sorted now) and execute them all! - (let ((rval nil) (lastval nil) (rvalever nil) (found nil)) + (let ((rval nil) (lastval nil) (found nil)) (while lambdas (if (car lambdas) (eieio--with-scoped-class (cdr (car lambdas)) @@ -1856,20 +1793,16 @@ This should only be called from a generic function." ;;(setq rval (apply (car (car lambdas)) newargs)) (setq lastval (apply (car (car lambdas)) newargs)) (when has-return-val - (setq rval lastval - rvalever t)) + (setq rval lastval)) ))) (setq lambdas (cdr lambdas) keys (cdr keys))) (if (not found) (if (eieio-object-p (car args)) - (setq rval (apply 'no-applicable-method (car args) method args) - rvalever t) + (setq rval (apply #'no-applicable-method (car args) method args)) (signal 'no-method-definition (list method args)))) - ;; Right Here... it could be that lastval is returned when - ;; rvalever is nil. Is that right? rval))) (defun eieio-generic-call-primary-only (method args) @@ -1920,7 +1853,7 @@ for this common case to improve performance." ;; Now loop through all occurrences forms which we must execute ;; (which are happily sorted now) and execute them all! (eieio--with-scoped-class (cdr lambdas) - (let* ((rval nil) (lastval nil) (rvalever nil) + (let* ((rval nil) (lastval nil) (eieio-generic-call-key method-primary) ;; Use the cdr, as the first element is the fcn ;; we are calling right now. @@ -1931,8 +1864,8 @@ for this common case to improve performance." ;; No methods found for this impl... (if (eieio-object-p (car args)) - (setq rval (apply 'no-applicable-method (car args) method args) - rvalever t) + (setq rval (apply #'no-applicable-method + (car args) method args)) (signal 'no-method-definition (list method args))) @@ -1943,12 +1876,8 @@ for this common case to improve performance." lambdas) (setq lastval (apply (car lambdas) newargs)) - (setq rval lastval - rvalever t) - ) + (setq rval lastval)) - ;; Right Here... it could be that lastval is returned when - ;; rvalever is nil. Is that right? rval)))) (defun eieiomt-method-list (method key class) @@ -2054,7 +1983,7 @@ CLASS is the class this method is associated with." (when (string-match "\\.elc$" fname) (setq fname (substring fname 0 (1- (length fname))))) (setq loc (get method-name 'method-locations)) - (pushnew (list class fname) loc :test 'equal) + (cl-pushnew (list class fname) loc :test 'equal) (put method-name 'method-locations loc))) ;; Now optimize the entire obarray (if (< key method-num-lists) @@ -2084,7 +2013,8 @@ nil for superclasses. This function performs no type checking!" ;; we replace the nil from above. (let ((external-symbol (intern-soft (symbol-name s)))) (catch 'done - (dolist (ancestor (rest (eieio-class-precedence-list external-symbol))) + (dolist (ancestor + (cl-rest (eieio-class-precedence-list external-symbol))) (let ((ov (intern-soft (symbol-name ancestor) eieiomt-optimizing-obarray))) (when (fboundp ov) @@ -2140,30 +2070,12 @@ is memorized for faster future use." ;;; Here are some special types of errors ;; -(intern "no-method-definition") -(put 'no-method-definition 'error-conditions '(no-method-definition error)) -(put 'no-method-definition 'error-message "No method definition") - -(intern "no-next-method") -(put 'no-next-method 'error-conditions '(no-next-method error)) -(put 'no-next-method 'error-message "No next method") - -(intern "invalid-slot-name") -(put 'invalid-slot-name 'error-conditions '(invalid-slot-name error)) -(put 'invalid-slot-name 'error-message "Invalid slot name") - -(intern "invalid-slot-type") -(put 'invalid-slot-type 'error-conditions '(invalid-slot-type error nil)) -(put 'invalid-slot-type 'error-message "Invalid slot type") - -(intern "unbound-slot") -(put 'unbound-slot 'error-conditions '(unbound-slot error nil)) -(put 'unbound-slot 'error-message "Unbound slot") - -(intern "inconsistent-class-hierarchy") -(put 'inconsistent-class-hierarchy 'error-conditions - '(inconsistent-class-hierarchy error nil)) -(put 'inconsistent-class-hierarchy 'error-message "Inconsistent class hierarchy") +(define-error 'no-method-definition "No method definition") +(define-error 'no-next-method "No next method") +(define-error 'invalid-slot-name "Invalid slot name") +(define-error 'invalid-slot-type "Invalid slot type") +(define-error 'unbound-slot "Unbound slot") +(define-error 'inconsistent-class-hierarchy "Inconsistent class hierarchy") ;;; Obsolete backward compatibility functions. ;; Needed to run byte-code compiled with the EIEIO of Emacs-23. diff --git a/lisp/emacs-lisp/eieio-custom.el b/lisp/emacs-lisp/eieio-custom.el index cbb35fee3f6..df153eefd0e 100644 --- a/lisp/emacs-lisp/eieio-custom.el +++ b/lisp/emacs-lisp/eieio-custom.el @@ -383,7 +383,7 @@ These groups are specified with the `:group' slot flag." (make-local-variable 'eieio-co) (setq eieio-co obj) (make-local-variable 'eieio-cog) - (setq eieio-cog group))) + (setq eieio-cog g))) (defmethod eieio-custom-object-apply-reset ((obj eieio-default-superclass)) "Insert an Apply and Reset button into the object editor. diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el index ca9b91bed58..6f1d01c211f 100644 --- a/lisp/emacs-lisp/eieio-opt.el +++ b/lisp/emacs-lisp/eieio-opt.el @@ -356,7 +356,7 @@ are not abstract." (insert "' " (aref prefix i) " ") ;; argument list (let* ((func (cdr (car gm))) - (arglst (eieio-lambda-arglist func))) + (arglst (help-function-arglist func))) (prin1 arglst (current-buffer))) (insert "\n" (or (documentation (cdr (car gm))) @@ -374,13 +374,6 @@ are not abstract." (insert "\n"))) (setq i (1+ i))))))) -(defun eieio-lambda-arglist (func) - "Return the argument list of FUNC, a function body." - (if (symbolp func) (setq func (symbol-function func))) - (if (byte-code-function-p func) - (eieio-compiled-function-arglist func) - (car (cdr func)))) - (defun eieio-all-generic-functions (&optional class) "Return a list of all generic functions. Optional CLASS argument returns only those functions that contain @@ -419,15 +412,15 @@ function has no documentation, then return nil." (fboundp after))) nil (list (if (fboundp before) - (cons (eieio-lambda-arglist before) + (cons (help-function-arglist before) (documentation before)) nil) (if (fboundp primary) - (cons (eieio-lambda-arglist primary) + (cons (help-function-arglist primary) (documentation primary)) nil) (if (fboundp after) - (cons (eieio-lambda-arglist after) + (cons (help-function-arglist after) (documentation after)) nil)))))) diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index 23cf5197233..c8330d5b695 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -1,4 +1,4 @@ -;;; eieio.el --- Enhanced Implementation of Emacs Interpreted Objects +;;; eieio.el --- Enhanced Implementation of Emacs Interpreted Objects -*- lexical-binding:t -*- ;;; or maybe Eric's Implementation of Emacs Interpreted Objects ;; Copyright (C) 1995-1996, 1998-2014 Free Software Foundation, Inc. @@ -44,8 +44,6 @@ ;;; Code: -(eval-when-compile (require 'cl)) ;FIXME: Use cl-lib! - (defvar eieio-version "1.4" "Current version of EIEIO.") @@ -115,6 +113,7 @@ Options in CLOS not supported in EIEIO: Due to the way class options are set up, you can add any tags you wish, and reference them using the function `class-option'." + (declare (doc-string 4)) ;; This is eval-and-compile only to silence spurious compiler warnings ;; about functions and variables not known to be defined. ;; When eieio-defclass code is merged here and this becomes @@ -155,7 +154,7 @@ a string." ;;; CLOS methods and generics ;; -(defmacro defgeneric (method args &optional doc-string) +(defmacro defgeneric (method _args &optional doc-string) "Create a generic function METHOD. DOC-STRING is the base documentation for this class. A generic function has no body, as its purpose is to decide which method body @@ -163,6 +162,7 @@ is appropriate to use. Uses `defmethod' to create methods, and calls `defgeneric' for you. With this implementation the ARGS are currently ignored. You can use `defgeneric' to apply specialized top level documentation to a method." + (declare (doc-string 3)) `(eieio--defalias ',method (eieio--defgeneric-init-form ',method ,doc-string))) @@ -191,6 +191,7 @@ Summary: ((typearg class-name) arg2 &optional opt &rest rest) \"doc-string\" body)" + (declare (doc-string 3)) (let* ((key (if (keywordp (car args)) (pop args))) (params (car args)) (arg1 (car params)) @@ -246,6 +247,7 @@ Where each VAR is the local variable given to the associated SLOT. A slot specified without a variable name is given a variable name of the same name as the slot." (declare (indent 2)) + (require 'cl-lib) ;; Transform the spec-list into a cl-symbol-macrolet spec-list. (let ((mappings (mapcar (lambda (entry) (let ((var (if (listp entry) (car entry) entry)) @@ -523,7 +525,7 @@ Use `next-method-p' to find out if there is a next method to call." (next (car eieio-generic-call-next-method-list)) ) (if (or (not next) (not (car next))) - (apply 'no-next-method (car newargs) (cdr newargs)) + (apply #'no-next-method (car newargs) (cdr newargs)) (let* ((eieio-generic-call-next-method-list (cdr eieio-generic-call-next-method-list)) (eieio-generic-call-arglst newargs) @@ -535,27 +537,7 @@ Use `next-method-p' to find out if there is a next method to call." ;;; Here are some CLOS items that need the CL package ;; -(defsetf eieio-oref eieio-oset) - -(if (eval-when-compile (fboundp 'gv-define-expander)) - ;; Not needed for Emacs>=24.3 since gv.el's setf expands macros and - ;; follows aliases. - nil -(defsetf slot-value eieio-oset) - -;; The below setf method was written by Arnd Kohrs -(define-setf-method oref (obj slot) - (with-no-warnings - (require 'cl) - (let ((obj-temp (gensym)) - (slot-temp (gensym)) - (store-temp (gensym))) - (list (list obj-temp slot-temp) - (list obj `(quote ,slot)) - (list store-temp) - (list 'set-slot-value obj-temp slot-temp - store-temp) - (list 'slot-value obj-temp slot-temp)))))) +(gv-define-simple-setter eieio-oref eieio-oset) ;;; @@ -651,7 +633,7 @@ dynamically set from SLOTS." "Method invoked when an attempt to access a slot in OBJECT fails.") (defmethod slot-missing ((object eieio-default-superclass) slot-name - operation &optional new-value) + _operation &optional _new-value) "Method invoked when an attempt to access a slot in OBJECT fails. SLOT-NAME is the name of the failed slot, OPERATION is the type of access that was requested, and optional NEW-VALUE is the value that was desired @@ -684,7 +666,7 @@ EIEIO can only dispatch on the first argument, so the first two are swapped." "Called if there are no implementations for OBJECT in METHOD.") (defmethod no-applicable-method ((object eieio-default-superclass) - method &rest args) + method &rest _args) "Called if there are no implementations for OBJECT in METHOD. OBJECT is the object which has no method implementation. ARGS are the arguments that were passed to METHOD. @@ -734,7 +716,7 @@ first and modify the returned object.") (defgeneric destructor (this &rest params) "Destructor for cleaning up any dynamic links to our object.") -(defmethod destructor ((this eieio-default-superclass) &rest params) +(defmethod destructor ((_this eieio-default-superclass) &rest _params) "Destructor for cleaning up any dynamic links to our object. Argument THIS is the object being destroyed. PARAMS are additional ignored parameters." @@ -760,7 +742,7 @@ Implement this function and specify STRINGS in a call to `call-next-method' to provide additional summary information. When passing in extra strings from child classes, always remember to prepend a space." - (eieio-object-name this (apply 'concat strings))) + (eieio-object-name this (apply #'concat strings))) (defvar eieio-print-depth 0 "When printing, keep track of the current indentation depth.") @@ -859,7 +841,7 @@ this object." ;;; Unimplemented functions from CLOS ;; -(defun change-class (obj class) +(defun change-class (_obj _class) "Change the class of OBJ to type CLASS. This may create or delete slots, but does not affect the return value of `eq'." @@ -871,16 +853,19 @@ of `eq'." ;;; Interfacing with edebug ;; -(defun eieio-edebug-prin1-to-string (object &optional noescape) +(defun eieio-edebug-prin1-to-string (print-function object &optional noescape) "Display EIEIO OBJECT in fancy format. -Overrides the edebug default. -Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate." + +Used as advice around `edebug-prin1-to-string', held in the +variable PRINT-FUNCTION. Optional argument NOESCAPE is passed to +`prin1-to-string' when appropriate." (cond ((class-p object) (eieio-class-name object)) ((eieio-object-p object) (object-print object)) ((and (listp object) (or (class-p (car object)) (eieio-object-p (car object)))) - (concat "(" (mapconcat 'eieio-edebug-prin1-to-string object " ") ")")) - (t (prin1-to-string object noescape)))) + (concat "(" (mapconcat #'eieio-edebug-prin1-to-string object " ") + ")")) + (t (funcall print-function object noescape)))) (add-hook 'edebug-setup-hook (lambda () @@ -904,19 +889,13 @@ Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate." (def-edebug-spec class-constructor form) (def-edebug-spec generic-p form) (def-edebug-spec with-slots (list list def-body)) - ;; I suspect this isn't the best way to do this, but when - ;; cust-print was used on my system all my objects - ;; appeared as "#1 =" which was not useful. This allows - ;; edebug to print my objects in the nice way they were - ;; meant to with `object-print' and `class-name' - ;; (defalias 'edebug-prin1-to-string 'eieio-edebug-prin1-to-string) - ) - ) + (advice-add 'edebug-prin1-to-string + :around #'eieio-edebug-prin1-to-string))) ;;; Start of automatically extracted autoloads. -;;;### (autoloads nil "eieio-custom" "eieio-custom.el" "5b0e7b1beea11f9e9de6887279f75d61") +;;;### (autoloads nil "eieio-custom" "eieio-custom.el" "ab711689b2bae8a7d8c4b1e99c892306") ;;; Generated autoloads from eieio-custom.el (autoload 'customize-object "eieio-custom" "\ @@ -927,7 +906,7 @@ Optional argument GROUP is the sub-group of slots to display. ;;;*** -;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "99b94c63a73593402e3c825178a44f4f") +;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "889c0a935dddf758dbb65488470ffa06") ;;; Generated autoloads from eieio-opt.el (autoload 'eieio-browse "eieio-opt" "\ diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el index 7102b5549eb..2ee3d23714c 100644 --- a/lisp/emacs-lisp/eldoc.el +++ b/lisp/emacs-lisp/eldoc.el @@ -1,4 +1,4 @@ -;;; eldoc.el --- show function arglist or variable docstring in echo area -*- lexical-binding: t; -*- +;;; eldoc.el --- Show function arglist or variable docstring in echo area -*- lexical-binding:t; -*- ;; Copyright (C) 1996-2014 Free Software Foundation, Inc. @@ -47,8 +47,6 @@ ;;; Code: -(require 'help-fns) ;For fundoc-usage handling functions. - (defgroup eldoc nil "Show function arglist or variable docstring in echo area." :group 'lisp @@ -75,18 +73,19 @@ Changing the value requires toggling `eldoc-mode'." :type '(choice string (const :tag "None" nil)) :group 'eldoc) -(defcustom eldoc-argument-case 'upcase +(defcustom eldoc-argument-case #'identity "Case to display argument names of functions, as a symbol. This has two preferred values: `upcase' or `downcase'. Actually, any name of a function which takes a string as an argument and returns another string is acceptable. -Note that if `eldoc-documentation-function' is non-nil, this variable -has no effect, unless the function handles it explicitly." +Note that this variable has no effect, unless +`eldoc-documentation-function' handles it explicitly." :type '(radio (function-item upcase) (function-item downcase) function) :group 'eldoc) +(make-obsolete-variable 'eldoc-argument-case nil "25.1") (defcustom eldoc-echo-area-use-multiline-p 'truncate-sym-name-if-fit "Allow long ElDoc messages to resize echo area display. @@ -103,8 +102,8 @@ If value is nil, messages are always truncated to fit in a single line of display in the echo area. Function or variable symbol name may be truncated to make more of the arglist or documentation string visible. -Note that if `eldoc-documentation-function' is non-nil, this variable -has no effect, unless the function handles it explicitly." +Note that this variable has no effect, unless +`eldoc-documentation-function' handles it explicitly." :type '(radio (const :tag "Always" t) (const :tag "Never" nil) (const :tag "Yes, but truncate symbol names if it will\ @@ -114,8 +113,8 @@ has no effect, unless the function handles it explicitly." (defface eldoc-highlight-function-argument '((t (:inherit bold))) "Face used for the argument at point in a function's argument list. -Note that if `eldoc-documentation-function' is non-nil, this face -has no effect, unless the function handles it explicitly." +Note that this face has no effect unless the `eldoc-documentation-function' +handles it explicitly." :group 'eldoc) ;;; No user options below here. @@ -127,7 +126,8 @@ choose to increase the number of buckets, you must do so before loading this file since the obarray is initialized at load time. Remember to keep it a prime number to improve hash performance.") -(defconst eldoc-message-commands +(defvar eldoc-message-commands + ;; Don't define as `defconst' since it would then go to (read-only) purespace. (make-vector eldoc-message-commands-table-size 0) "Commands after which it is appropriate to print in the echo area. ElDoc does not try to print function arglists, etc., after just any command, @@ -138,12 +138,14 @@ This variable contains an obarray of symbols; do not manipulate it directly. Instead, use `eldoc-add-command' and `eldoc-remove-command'.") ;; Not a constant. -(defconst eldoc-last-data (make-vector 3 nil) +(defvar eldoc-last-data (make-vector 3 nil) + ;; Don't define as `defconst' since it would then go to (read-only) purespace. "Bookkeeping; elements are as follows: 0 - contains the last symbol read from the buffer. 1 - contains the string last displayed in the echo area for variables, or argument string for functions. - 2 - 'function if function args, 'variable if variable documentation.") + 2 - `function' if function args, `variable' if variable documentation.") +(make-obsolete-variable 'eldoc-last-data "use your own instead" "25.1") (defvar eldoc-last-message nil) @@ -183,15 +185,33 @@ it displays the argument list of the function called in the expression point is on." :group 'eldoc :lighter eldoc-minor-mode-string (setq eldoc-last-message nil) - (if eldoc-mode - (progn - (when eldoc-print-after-edit - (setq-local eldoc-message-commands (eldoc-edit-message-commands))) - (add-hook 'post-command-hook 'eldoc-schedule-timer nil t) - (add-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area nil t)) + (cond + ((memq eldoc-documentation-function '(nil ignore)) + (message "There is no ElDoc support in this buffer") + (setq eldoc-mode nil)) + (eldoc-mode + (when eldoc-print-after-edit + (setq-local eldoc-message-commands (eldoc-edit-message-commands))) + (add-hook 'post-command-hook 'eldoc-schedule-timer nil t) + (add-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area nil t)) + (t (kill-local-variable 'eldoc-message-commands) (remove-hook 'post-command-hook 'eldoc-schedule-timer t) - (remove-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area t))) + (remove-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area t)))) + +;;;###autoload +(define-minor-mode global-eldoc-mode + "Enable `eldoc-mode' in all buffers where it's applicable." + :group 'eldoc :global t + :initialize 'custom-initialize-delay + :init-value t + (setq eldoc-last-message nil) + (if global-eldoc-mode + (progn + (add-hook 'post-command-hook #'eldoc-schedule-timer) + (add-hook 'pre-command-hook #'eldoc-pre-command-refresh-echo-area)) + (remove-hook 'post-command-hook #'eldoc-schedule-timer) + (remove-hook 'pre-command-hook #'eldoc-pre-command-refresh-echo-area))) ;;;###autoload (define-obsolete-function-alias 'turn-on-eldoc-mode 'eldoc-mode "24.4") @@ -199,11 +219,16 @@ expression point is on." (defun eldoc-schedule-timer () (or (and eldoc-timer - (memq eldoc-timer timer-idle-list)) + (memq eldoc-timer timer-idle-list)) ;FIXME: Why? (setq eldoc-timer (run-with-idle-timer eldoc-idle-delay t - (lambda () (and eldoc-mode (eldoc-print-current-symbol-info)))))) + (lambda () + (when (or eldoc-mode + (and global-eldoc-mode + (not (memq eldoc-documentation-function + '(nil ignore))))) + (eldoc-print-current-symbol-info)))))) ;; If user has changed the idle delay, update the timer. (cond ((not (= eldoc-idle-delay eldoc-current-idle-delay)) @@ -298,7 +323,7 @@ Otherwise work like `message'." ;;;###autoload -(defvar eldoc-documentation-function #'eldoc-documentation-function-default +(defvar eldoc-documentation-function #'ignore "Function to call to return doc string. The function of no args should return a one-line string for displaying doc about a function etc. appropriate to the context around point. @@ -311,8 +336,7 @@ the variables `eldoc-argument-case' and `eldoc-echo-area-use-multiline-p', and the face `eldoc-highlight-function-argument', if they are to have any effect. -This variable is expected to be made buffer-local by modes (other than -Emacs Lisp mode) that support ElDoc.") +This variable is expected to be set buffer-locally by modes that support ElDoc.") (defun eldoc-print-current-symbol-info () ;; This is run from post-command-hook or some idle timer thing, @@ -325,237 +349,6 @@ Emacs Lisp mode) that support ElDoc.") nil)) (eldoc-message (funcall eldoc-documentation-function))))) -(defun eldoc-documentation-function-default () - "Default value for `eldoc-documentation-function' (which see)." - (let ((current-symbol (eldoc-current-symbol)) - (current-fnsym (eldoc-fnsym-in-current-sexp))) - (cond ((null current-fnsym) - nil) - ((eq current-symbol (car current-fnsym)) - (or (apply #'eldoc-get-fnsym-args-string current-fnsym) - (eldoc-get-var-docstring current-symbol))) - (t - (or (eldoc-get-var-docstring current-symbol) - (apply #'eldoc-get-fnsym-args-string current-fnsym)))))) - -(defun eldoc-get-fnsym-args-string (sym &optional index) - "Return a string containing the parameter list of the function SYM. -If SYM is a subr and no arglist is obtainable from the docstring -or elsewhere, return a 1-line docstring. Calls the functions -`eldoc-function-argstring-format' and -`eldoc-highlight-function-argument' to format the result. The -former calls `eldoc-argument-case'; the latter gives the -function name `font-lock-function-name-face', and optionally -highlights argument number INDEX." - (let (args doc advertised) - (cond ((not (and sym (symbolp sym) (fboundp sym)))) - ((and (eq sym (aref eldoc-last-data 0)) - (eq 'function (aref eldoc-last-data 2))) - (setq doc (aref eldoc-last-data 1))) - ((listp (setq advertised (gethash (indirect-function sym) - advertised-signature-table t))) - (setq args advertised)) - ((setq doc (help-split-fundoc (documentation sym t) sym)) - (setq args (car doc)) - ;; Remove any enclosing (), since e-function-argstring adds them. - (string-match "\\`[^ )]* ?" args) - (setq args (substring args (match-end 0))) - (if (string-match-p ")\\'" args) - (setq args (substring args 0 -1)))) - (t - (setq args (help-function-arglist sym)))) - (if args - ;; Stringify, and store before highlighting, downcasing, etc. - ;; FIXME should truncate before storing. - (eldoc-last-data-store sym (setq args (eldoc-function-argstring args)) - 'function) - (setq args doc)) ; use stored value - ;; Change case, highlight, truncate. - (if args - (eldoc-highlight-function-argument - sym (eldoc-function-argstring-format args) index)))) - -(defun eldoc-highlight-function-argument (sym args index) - "Highlight argument INDEX in ARGS list for function SYM. -In the absence of INDEX, just call `eldoc-docstring-format-sym-doc'." - (let ((start nil) - (end 0) - (argument-face 'eldoc-highlight-function-argument)) - ;; Find the current argument in the argument string. We need to - ;; handle `&rest' and informal `...' properly. - ;; - ;; FIXME: What to do with optional arguments, like in - ;; (defun NAME ARGLIST [DOCSTRING] BODY...) case? - ;; The problem is there is no robust way to determine if - ;; the current argument is indeed a docstring. - (while (and index (>= index 1)) - (if (string-match "[^ ()]+" args end) - (progn - (setq start (match-beginning 0) - end (match-end 0)) - (let ((argument (match-string 0 args))) - (cond ((string= argument "&rest") - ;; All the rest arguments are the same. - (setq index 1)) - ((string= argument "&optional")) - ((string-match-p "\\.\\.\\.$" argument) - (setq index 0)) - (t - (setq index (1- index)))))) - (setq end (length args) - start (1- end) - argument-face 'font-lock-warning-face - index 0))) - (let ((doc args)) - (when start - (setq doc (copy-sequence args)) - (add-text-properties start end (list 'face argument-face) doc)) - (setq doc (eldoc-docstring-format-sym-doc - sym doc (if (functionp sym) 'font-lock-function-name-face - 'font-lock-keyword-face))) - doc))) - -;; Return a string containing a brief (one-line) documentation string for -;; the variable. -(defun eldoc-get-var-docstring (sym) - (when sym - (cond ((and (eq sym (aref eldoc-last-data 0)) - (eq 'variable (aref eldoc-last-data 2))) - (aref eldoc-last-data 1)) - (t - (let ((doc (documentation-property sym 'variable-documentation t))) - (cond (doc - (setq doc (eldoc-docstring-format-sym-doc - sym (eldoc-docstring-first-line doc) - 'font-lock-variable-name-face)) - (eldoc-last-data-store sym doc 'variable))) - doc))))) - -(defun eldoc-last-data-store (symbol doc type) - (aset eldoc-last-data 0 symbol) - (aset eldoc-last-data 1 doc) - (aset eldoc-last-data 2 type)) - -;; Note that any leading `*' in the docstring (which indicates the variable -;; is a user option) is removed. -(defun eldoc-docstring-first-line (doc) - (and (stringp doc) - (substitute-command-keys - (save-match-data - ;; Don't use "^" in the regexp below since it may match - ;; anywhere in the doc-string. - (let ((start (if (string-match "\\`\\*" doc) (match-end 0) 0))) - (cond ((string-match "\n" doc) - (substring doc start (match-beginning 0))) - ((zerop start) doc) - (t (substring doc start)))))))) - -;; If the entire line cannot fit in the echo area, the symbol name may be -;; truncated or eliminated entirely from the output to make room for the -;; description. -(defun eldoc-docstring-format-sym-doc (sym doc face) - (save-match-data - (let* ((name (symbol-name sym)) - (ea-multi eldoc-echo-area-use-multiline-p) - ;; Subtract 1 from window width since emacs will not write - ;; any chars to the last column, or in later versions, will - ;; cause a wraparound and resize of the echo area. - (ea-width (1- (window-width (minibuffer-window)))) - (strip (- (+ (length name) (length ": ") (length doc)) ea-width))) - (cond ((or (<= strip 0) - (eq ea-multi t) - (and ea-multi (> (length doc) ea-width))) - (format "%s: %s" (propertize name 'face face) doc)) - ((> (length doc) ea-width) - (substring (format "%s" doc) 0 ea-width)) - ((>= strip (length name)) - (format "%s" doc)) - (t - ;; Show the end of the partial symbol name, rather - ;; than the beginning, since the former is more likely - ;; to be unique given package namespace conventions. - (setq name (substring name strip)) - (format "%s: %s" (propertize name 'face face) doc)))))) - - -;; Return a list of current function name and argument index. -(defun eldoc-fnsym-in-current-sexp () - (save-excursion - (let ((argument-index (1- (eldoc-beginning-of-sexp)))) - ;; If we are at the beginning of function name, this will be -1. - (when (< argument-index 0) - (setq argument-index 0)) - ;; Don't do anything if current word is inside a string. - (if (= (or (char-after (1- (point))) 0) ?\") - nil - (list (eldoc-current-symbol) argument-index))))) - -;; Move to the beginning of current sexp. Return the number of nested -;; sexp the point was over or after. -(defun eldoc-beginning-of-sexp () - (let ((parse-sexp-ignore-comments t) - (num-skipped-sexps 0)) - (condition-case _ - (progn - ;; First account for the case the point is directly over a - ;; beginning of a nested sexp. - (condition-case _ - (let ((p (point))) - (forward-sexp -1) - (forward-sexp 1) - (when (< (point) p) - (setq num-skipped-sexps 1))) - (error)) - (while - (let ((p (point))) - (forward-sexp -1) - (when (< (point) p) - (setq num-skipped-sexps (1+ num-skipped-sexps)))))) - (error)) - num-skipped-sexps)) - -;; returns nil unless current word is an interned symbol. -(defun eldoc-current-symbol () - (let ((c (char-after (point)))) - (and c - (memq (char-syntax c) '(?w ?_)) - (intern-soft (current-word))))) - -;; Do indirect function resolution if possible. -(defun eldoc-symbol-function (fsym) - (let ((defn (symbol-function fsym))) - (and (symbolp defn) - (condition-case _ - (setq defn (indirect-function fsym)) - (error (setq defn nil)))) - defn)) - -(defun eldoc-function-argstring (arglist) - "Return ARGLIST as a string enclosed by (). -ARGLIST is either a string, or a list of strings or symbols." - (cond ((stringp arglist)) - ((not (listp arglist)) - (setq arglist nil)) - ((symbolp (car arglist)) - (setq arglist - (mapconcat (lambda (s) (symbol-name s)) - arglist " "))) - ((stringp (car arglist)) - (setq arglist - (mapconcat (lambda (s) s) - arglist " ")))) - (if arglist - (format "(%s)" arglist))) - -(defun eldoc-function-argstring-format (argstring) - "Apply `eldoc-argument-case' to each word in ARGSTRING. -The words \"&rest\", \"&optional\" are returned unchanged." - (mapconcat (lambda (s) - (if (string-match-p "\\`(?&\\(?:optional\\|rest\\))?\\'" s) - s - (funcall eldoc-argument-case s))) - (split-string argstring) " ")) - ;; When point is in a sexp, the function args are not reprinted in the echo ;; area after every possible interactive command because some of them print @@ -571,7 +364,7 @@ The words \"&rest\", \"&optional\" are returned unchanged." (defun eldoc-add-command-completions (&rest names) (dolist (name names) - (apply 'eldoc-add-command (all-completions name obarray 'commandp)))) + (apply #'eldoc-add-command (all-completions name obarray 'commandp)))) (defun eldoc-remove-command (&rest cmds) (dolist (name cmds) @@ -581,7 +374,7 @@ The words \"&rest\", \"&optional\" are returned unchanged." (defun eldoc-remove-command-completions (&rest names) (dolist (name names) - (apply 'eldoc-remove-command + (apply #'eldoc-remove-command (all-completions name eldoc-message-commands)))) diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index 692b76e8a36..a0f92a5f94a 100644 --- a/lisp/emacs-lisp/gv.el +++ b/lisp/emacs-lisp/gv.el @@ -89,10 +89,10 @@ DO must return an Elisp expression." (let* ((head (car place)) (gf (function-get head 'gv-expander 'autoload))) (if gf (apply gf do (cdr place)) - (let ((me (macroexpand place ;FIXME: expand one step at a time! - ;; (append macroexpand-all-environment - ;; gv--macro-environment) - macroexpand-all-environment))) + (let ((me (macroexpand-1 place + ;; (append macroexpand-all-environment + ;; gv--macro-environment) + macroexpand-all-environment))) (if (and (eq me place) (get head 'compiler-macro)) ;; Expand compiler macros: this takes care of all the accessors ;; defined via cl-defsubst, such as cXXXr and defstruct slots. @@ -357,6 +357,34 @@ The return value is the last VAL in the list. (macroexp-let2 nil v val `(with-current-buffer ,buf (set (make-local-variable ,var) ,v)))) +(gv-define-expander alist-get + (lambda (do key alist &optional default remove) + (macroexp-let2 macroexp-copyable-p k key + (gv-letplace (getter setter) alist + (macroexp-let2 nil p `(assq ,k ,getter) + (funcall do (if (null default) `(cdr ,p) + `(if ,p (cdr ,p) ,default)) + (lambda (v) + (macroexp-let2 nil v v + (let ((set-exp + `(if ,p (setcdr ,p ,v) + ,(funcall setter + `(cons (setq ,p (cons ,k ,v)) + ,getter))))) + (cond + ((null remove) set-exp) + ((or (eql v default) + (and (eq (car-safe v) 'quote) + (eq (car-safe default) 'quote) + (eql (cadr v) (cadr default)))) + `(if ,p ,(funcall setter `(delq ,p ,getter)))) + (t + `(cond + ((not (eql ,default ,v)) ,set-exp) + (,p ,(funcall setter + `(delq ,p ,getter))))))))))))))) + + ;;; Some occasionally handy extensions. ;; While several of the "places" below are not terribly useful for direct use, @@ -479,22 +507,13 @@ REF must have been previously obtained with `gv-ref'." ;; … => (load "gv.el") => (macroexpand-all (defsubst gv-deref …)) => (macroexpand (defun …)) => (load "gv.el") (gv-define-setter gv-deref (v ref) `(funcall (cdr ,ref) ,v)) -;;; Vaguely related definitions that should be moved elsewhere. - -;; (defun alist-get (key alist) -;; "Get the value associated to KEY in ALIST." -;; (declare -;; (gv-expander -;; (lambda (do) -;; (macroexp-let2 macroexp-copyable-p k key -;; (gv-letplace (getter setter) alist -;; (macroexp-let2 nil p `(assoc ,k ,getter) -;; (funcall do `(cdr ,p) -;; (lambda (v) -;; `(if ,p (setcdr ,p ,v) -;; ,(funcall setter -;; `(cons (cons ,k ,v) ,getter))))))))))) -;; (cdr (assoc key alist))) +;; (defmacro gv-letref (vars place &rest body) +;; (declare (indent 2) (debug (sexp form &rest body))) +;; (require 'cl-lib) ;Can't require cl-lib at top-level for bootstrap reasons! +;; (gv-letplace (getter setter) place +;; `(cl-macrolet ((,(nth 0 vars) () ',getter) +;; (,(nth 1 vars) (v) (funcall ',setter v))) +;; ,@body))) (provide 'gv) ;;; gv.el ends here diff --git a/lisp/emacs-lisp/inline.el b/lisp/emacs-lisp/inline.el new file mode 100644 index 00000000000..679e875e1a0 --- /dev/null +++ b/lisp/emacs-lisp/inline.el @@ -0,0 +1,262 @@ +;;; inline.el --- Define functions by their inliner -*- lexical-binding:t; -*- + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Stefan Monnier + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; This package provides the macro `define-inline' which lets you define +;; functions by defining their (exhaustive) compiler macro. +;; +;; The idea is that instead of doing like defsubst and cl-defsubst (i.e. from +;; the function's definition, guess the best way to inline the function), +;; we go the other way around: the programmer provides the code that does the +;; inlining (as a compiler-macro) and from that we derive the definition of the +;; function itself. The idea originated in an attempt to clean up `cl-typep', +;; whose function definition amounted to (eval (cl--make-type-test EXP TYPE)). +;; +;; The simplest use is for plain and simple inlinable functions. Rather than: +;; +;; (defmacro myaccessor (obj) +;; (macroexp-let2 macroexp-copyable-p obj obj +;; `(if (foop ,obj) (aref (cdr ,obj) 3) (aref ,obj 2)))) +;; Or +;; (defsubst myaccessor (obj) +;; (if (foop obj) (aref (cdr obj) 3) (aref obj 2))) +;; Or +;; (cl-defsubst myaccessor (obj) +;; (if (foop obj) (aref (cdr obj) 3) (aref obj 2))) +;; +;; You'd do +;; +;; (define-inline myaccessor (obj) +;; (inline-letevals (obj) +;; (inline-quote (if (foop ,obj) (aref (cdr ,obj) 3) (aref ,obj 2))))) +;; +;; Other than verbosity, you get the best of all 3 above without their +;; respective downsides: +;; - defmacro: can't be passed to `mapcar' since it's not a function. +;; - defsubst: not as efficient, and doesn't work as a `gv' place. +;; - cl-defsubst: only works by accident, since it has latent bugs in its +;; handling of variables and scopes which could bite you at any time. +;; (e.g. try (cl-defsubst my-test1 (x) (let ((y 5)) (+ x y))) +;; and then M-: (macroexpand-all '(my-test1 y)) RET) +;; There is still one downside shared with the defmacro and cl-defsubst +;; approach: when the function is inlined, the scoping rules (dynamic or +;; lexical) will be inherited from the the call site. + +;; Of course, since define-inline defines a compiler macro, you can also do +;; call-site optimizations, just like you can with `defmacro', but not with +;; defsubst nor cl-defsubst. + +;;; Code: + +(require 'macroexp) + +(defmacro inline-quote (_exp) + "Similar to backquote, but quotes code and only accepts , and not ,@." + (declare (debug t)) + (error "inline-quote can only be used within define-inline")) + +(defmacro inline-const-p (_exp) + "Return non-nil if the value of EXP is already known." + (declare (debug t)) + (error "inline-const-p can only be used within define-inline")) + +(defmacro inline-const-val (_exp) + "Return the value of EXP." + (declare (debug t)) + (error "inline-const-val can only be used within define-inline")) + +(defmacro inline-error (_format &rest _args) + "Signal an error." + (declare (debug t)) + (error "inline-error can only be used within define-inline")) + +(defmacro inline--leteval (_var-exp &rest _body) + (declare (indent 1) (debug (sexp &rest body))) + (error "inline-letevals can only be used within define-inline")) +(defmacro inline--letlisteval (_list &rest _body) + (declare (indent 1) (debug (sexp &rest body))) + (error "inline-letevals can only be used within define-inline")) + +(defmacro inline-letevals (vars &rest body) + "Make sure the expressions in VARS are evaluated. +VARS should be a list of elements of the form (VAR EXP) or just VAR, in case +EXP is equal to VAR. The result is to evaluate EXP and bind the result to VAR. + +The tail of VARS can be either nil or a symbol VAR which should hold a list +of arguments,in which case each argument is evaluated and the resulting +new list is re-bound to VAR. + +After VARS is handled, BODY is evaluated in the new environment." + (declare (indent 1) (debug (sexp &rest form))) + (cond + ((consp vars) + `(inline--leteval ,(pop vars) (inline-letevals ,vars ,@body))) + (vars + `(inline--letlisteval ,vars ,@body)) + (t (macroexp-progn body)))) + +;; (defmacro inline-if (testfun testexp then else) +;; (declare (indent 2) (debug (sexp symbolp form form))) +;; (macroexp-let2 macroexp-copyable-p testsym testexp +;; `(if (inline-const-p ,testexp) +;; (if (,testfun (inline-const-val ,testexp)) ,then ,else) +;; (inline-quote (if (,testfun ,testexp) ,(list '\, then) +;; ,(list '\, else)))))) + +;;;###autoload +(defmacro define-inline (name args &rest body) + ;; FIXME: How can this work with CL arglists? + (declare (indent defun) (debug defun) (doc-string 3)) + (let ((doc (if (stringp (car-safe body)) (list (pop body)))) + (declares (if (eq (car-safe (car-safe body)) 'declare) (pop body))) + (cm-name (intern (format "%s--inliner" name))) + (bodyexp (macroexp-progn body))) + ;; If the function is autoloaded then when we load the .el file, the + ;; `compiler-macro' property is already set (from loaddefs.el) and might + ;; hence be called during the macroexpand-all calls below (if the function + ;; is recursive). + ;; So we disable any pre-loaded compiler-macro setting to avoid this. + (function-put name 'compiler-macro nil) + `(progn + (defun ,name ,args + ,@doc + (declare (compiler-macro ,cm-name) ,@(cdr declares)) + ,(macroexpand-all bodyexp + `((inline-quote . inline--dont-quote) + ;; (inline-\` . inline--dont-quote) + (inline--leteval . inline--dont-leteval) + (inline--letlisteval . inline--dont-letlisteval) + (inline-const-p . inline--alwaysconst-p) + (inline-const-val . inline--alwaysconst-val) + (inline-error . inline--error) + ,@macroexpand-all-environment))) + :autoload-end + (eval-and-compile + (defun ,cm-name ,(cons 'inline--form args) + (ignore inline--form) ;In case it's not used! + (catch 'inline--just-use + ,(macroexpand-all + bodyexp + `((inline-quote . inline--do-quote) + ;; (inline-\` . inline--do-quote) + (inline--leteval . inline--do-leteval) + (inline--letlisteval + . inline--do-letlisteval) + (inline-const-p . inline--testconst-p) + (inline-const-val . inline--getconst-val) + (inline-error . inline--warning) + ,@macroexpand-all-environment)))))))) + +(defun inline--do-quote (exp) + (pcase exp + (`(,'\, ,e) e) ;Eval `e' now *and* later. + (`'(,'\, ,e) `(list 'quote ,e)) ;Only eval `e' now, not later. + (`#'(,'\, ,e) `(list 'function ,e)) ;Only eval `e' now, not later. + ((pred consp) + (let ((args ())) + (while (and (consp exp) (not (eq '\, (car exp)))) + (push (inline--do-quote (pop exp)) args)) + (setq args (nreverse args)) + (if exp + `(backquote-list* ,@args ,(inline--do-quote exp)) + `(list ,@args)))) + (_ (macroexp-quote exp)))) + +(defun inline--dont-quote (exp) + (pcase exp + (`(,'\, ,e) e) + (`'(,'\, ,e) e) + (`#'(,'\, ,e) e) + ((pred consp) + (let ((args ())) + (while (and (consp exp) (not (eq '\, (car exp)))) + (push (inline--dont-quote (pop exp)) args)) + (setq args (nreverse args)) + (if exp + `(apply ,@args ,(inline--dont-quote exp)) + args))) + (_ exp))) + +(defun inline--do-leteval (var-exp &rest body) + `(macroexp-let2 ,(if (symbolp var-exp) #'macroexp-copyable-p #'ignore) + ,(or (car-safe var-exp) var-exp) + ,(or (car (cdr-safe var-exp)) var-exp) + ,@body)) + +(defun inline--dont-leteval (var-exp &rest body) + (if (symbolp var-exp) + (macroexp-progn body) + `(let (,var-exp) ,@body))) + +(defun inline--do-letlisteval (listvar &rest body) + ;; Here's a sample situation: + ;; (define-inline foo (arg &rest keys) + ;; (inline-letevals (arg . keys) + ;; )) + ;; I.e. in we need `keys' to contain a list of + ;; macroexp-copyable-p expressions. + (let ((bsym (make-symbol "bindings"))) + `(let* ((,bsym ()) + (,listvar (mapcar (lambda (e) + (if (macroexp-copyable-p e) e + (let ((v (make-symbol "v"))) + (push (list v e) ,bsym) + v))) + ,listvar))) + (macroexp-let* (nreverse ,bsym) + ,(macroexp-progn body))))) + +(defun inline--dont-letlisteval (_listvar &rest body) + (macroexp-progn body)) + +(defun inline--testconst-p (exp) + (macroexp-let2 macroexp-copyable-p exp exp + `(or (macroexp-const-p ,exp) + (eq (car-safe ,exp) 'function)))) + +(defun inline--alwaysconst-p (_exp) + t) + +(defun inline--getconst-val (exp) + (macroexp-let2 macroexp-copyable-p exp exp + `(cond + ((not ,(inline--testconst-p exp)) + (throw 'inline--just-use inline--form)) + ((consp ,exp) (cadr ,exp)) + (t ,exp)))) + +(defun inline--alwaysconst-val (exp) + exp) + +(defun inline--error (&rest args) + `(error ,@args)) + +(defun inline--warning (&rest _args) + `(throw 'inline--just-use + ;; FIXME: This would inf-loop by calling us right back when + ;; macroexpand-all recurses to expand inline--form. + ;; (macroexp--warn-and-return (format ,@args) + ;; inline--form) + inline--form)) + +(provide 'inline) +;;; inline.el ends here diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 31df353321a..d84113b418a 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -33,17 +33,10 @@ (defvar font-lock-keywords-case-fold-search) (defvar font-lock-string-face) -(defvar lisp-mode-abbrev-table nil) (define-abbrev-table 'lisp-mode-abbrev-table () "Abbrev table for Lisp mode.") -(defvar emacs-lisp-mode-abbrev-table nil) -(define-abbrev-table 'emacs-lisp-mode-abbrev-table () - "Abbrev table for Emacs Lisp mode. -It has `lisp-mode-abbrev-table' as its parent." - :parents (list lisp-mode-abbrev-table)) - -(defvar emacs-lisp-mode-syntax-table +(defvar lisp--mode-syntax-table (let ((table (make-syntax-table)) (i 0)) (while (< i ?0) @@ -82,13 +75,11 @@ It has `lisp-mode-abbrev-table' as its parent." (modify-syntax-entry ?\\ "\\ " table) (modify-syntax-entry ?\( "() " table) (modify-syntax-entry ?\) ")( " table) - (modify-syntax-entry ?\[ "(] " table) - (modify-syntax-entry ?\] ")[ " table) table) - "Syntax table used in `emacs-lisp-mode'.") + "Parent syntax table used in Lisp modes.") (defvar lisp-mode-syntax-table - (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table))) + (let ((table (make-syntax-table lisp--mode-syntax-table))) (modify-syntax-entry ?\[ "_ " table) (modify-syntax-entry ?\] "_ " table) (modify-syntax-entry ?# "' 14" table) @@ -102,26 +93,35 @@ It has `lisp-mode-abbrev-table' as its parent." (purecopy (concat "^\\s-*(" (eval-when-compile (regexp-opt - '("defun" "defun*" "defsubst" "defmacro" - "defadvice" "define-skeleton" + '("defun" "defmacro" + ;; Elisp. + "defun*" "defsubst" + "define-advice" "defadvice" "define-skeleton" "define-compilation-mode" "define-minor-mode" "define-global-minor-mode" "define-globalized-minor-mode" "define-derived-mode" "define-generic-mode" + "cl-defun" "cl-defsubst" "cl-defmacro" + "cl-define-compiler-macro" + ;; CL. "define-compiler-macro" "define-modify-macro" "defsetf" "define-setf-expander" "define-method-combination" - "defgeneric" "defmethod" - "cl-defun" "cl-defsubst" "cl-defmacro" - "cl-define-compiler-macro") t)) + ;; CLOS and EIEIO + "defgeneric" "defmethod") + t)) "\\s-+\\(\\(\\sw\\|\\s_\\)+\\)")) 2) (list (purecopy "Variables") (purecopy (concat "^\\s-*(" (eval-when-compile (regexp-opt - '("defconst" "defconstant" "defcustom" - "defparameter" "define-symbol-macro") t)) + '(;; Elisp + "defconst" "defcustom" + ;; CL + "defconstant" + "defparameter" "define-symbol-macro") + t)) "\\s-+\\(\\(\\sw\\|\\s_\\)+\\)")) 2) ;; For `defvar', we ignore (defvar FOO) constructs. @@ -133,10 +133,16 @@ It has `lisp-mode-abbrev-table' as its parent." (purecopy (concat "^\\s-*(" (eval-when-compile (regexp-opt - '("defgroup" "deftheme" "deftype" "defstruct" - "defclass" "define-condition" "define-widget" - "defface" "defpackage" "cl-deftype" - "cl-defstruct") t)) + '(;; Elisp + "defgroup" "deftheme" + "define-widget" "define-error" + "defface" "cl-deftype" "cl-defstruct" + ;; CL + "deftype" "defstruct" + "define-condition" "defpackage" + ;; CLOS and EIEIO + "defclass") + t)) "\\s-+'?\\(\\(\\sw\\|\\s_\\)+\\)")) 2)) @@ -189,7 +195,7 @@ It has `lisp-mode-abbrev-table' as its parent." "ignore-errors" "dotimes" "dolist" "declare")) (lisp-errs '("warn" "error" "signal")) ;; Elisp constructs. FIXME: update dynamically from obarray. - (el-fdefs '("defadvice" "defalias" + (el-fdefs '("define-advice" "defadvice" "defalias" "define-derived-mode" "define-minor-mode" "define-generic-mode" "define-global-minor-mode" "define-globalized-minor-mode" "define-skeleton" @@ -197,9 +203,9 @@ It has `lisp-mode-abbrev-table' as its parent." (el-vdefs '("defconst" "defcustom" "defvaralias" "defvar-local" "defface")) (el-tdefs '("defgroup" "deftheme")) - (el-kw '("while-no-input" "letrec" "pcase" "pcase-let" - "pcase-let*" "save-restriction" "save-excursion" - "save-selected-window" + (el-kw '("while-no-input" "letrec" "pcase" "pcase-exhaustive" + "pcase-let" "pcase-let*" "save-restriction" + "save-excursion" "save-selected-window" ;; "eval-after-load" "eval-next-after-load" "save-window-excursion" "save-current-buffer" "save-match-data" "combine-after-change-calls" @@ -227,7 +233,7 @@ It has `lisp-mode-abbrev-table' as its parent." "etypecase" "ccase" "ctypecase" "loop" "do" "do*" "the" "locally" "proclaim" "declaim" "letf" "go" ;; "lexical-let" "lexical-let*" - "symbol-macrolet" "flet" "destructuring-bind" + "symbol-macrolet" "flet" "flet*" "destructuring-bind" "labels" "macrolet" "tagbody" "multiple-value-bind" "block" "return" "return-from")) (cl-lib-errs '("assert" "check-type")) @@ -558,166 +564,6 @@ font-lock keywords will not be case sensitive." map) "Keymap for commands shared by all sorts of Lisp modes.") -(defvar emacs-lisp-mode-map - (let ((map (make-sparse-keymap "Emacs-Lisp")) - (menu-map (make-sparse-keymap "Emacs-Lisp")) - (lint-map (make-sparse-keymap)) - (prof-map (make-sparse-keymap)) - (tracing-map (make-sparse-keymap))) - (set-keymap-parent map lisp-mode-shared-map) - (define-key map "\e\t" 'completion-at-point) - (define-key map "\e\C-x" 'eval-defun) - (define-key map "\e\C-q" 'indent-pp-sexp) - (bindings--define-key map [menu-bar emacs-lisp] - (cons "Emacs-Lisp" menu-map)) - (bindings--define-key menu-map [eldoc] - '(menu-item "Auto-Display Documentation Strings" eldoc-mode - :button (:toggle . (bound-and-true-p eldoc-mode)) - :help "Display the documentation string for the item under cursor")) - (bindings--define-key menu-map [checkdoc] - '(menu-item "Check Documentation Strings" checkdoc - :help "Check documentation strings for style requirements")) - (bindings--define-key menu-map [re-builder] - '(menu-item "Construct Regexp" re-builder - :help "Construct a regexp interactively")) - (bindings--define-key menu-map [tracing] (cons "Tracing" tracing-map)) - (bindings--define-key tracing-map [tr-a] - '(menu-item "Untrace All" untrace-all - :help "Untrace all currently traced functions")) - (bindings--define-key tracing-map [tr-uf] - '(menu-item "Untrace Function..." untrace-function - :help "Untrace function, and possibly activate all remaining advice")) - (bindings--define-key tracing-map [tr-sep] menu-bar-separator) - (bindings--define-key tracing-map [tr-q] - '(menu-item "Trace Function Quietly..." trace-function-background - :help "Trace the function with trace output going quietly to a buffer")) - (bindings--define-key tracing-map [tr-f] - '(menu-item "Trace Function..." trace-function - :help "Trace the function given as an argument")) - (bindings--define-key menu-map [profiling] (cons "Profiling" prof-map)) - (bindings--define-key prof-map [prof-restall] - '(menu-item "Remove Instrumentation for All Functions" elp-restore-all - :help "Restore the original definitions of all functions being profiled")) - (bindings--define-key prof-map [prof-restfunc] - '(menu-item "Remove Instrumentation for Function..." elp-restore-function - :help "Restore an instrumented function to its original definition")) - - (bindings--define-key prof-map [sep-rem] menu-bar-separator) - (bindings--define-key prof-map [prof-resall] - '(menu-item "Reset Counters for All Functions" elp-reset-all - :help "Reset the profiling information for all functions being profiled")) - (bindings--define-key prof-map [prof-resfunc] - '(menu-item "Reset Counters for Function..." elp-reset-function - :help "Reset the profiling information for a function")) - (bindings--define-key prof-map [prof-res] - '(menu-item "Show Profiling Results" elp-results - :help "Display current profiling results")) - (bindings--define-key prof-map [prof-pack] - '(menu-item "Instrument Package..." elp-instrument-package - :help "Instrument for profiling all function that start with a prefix")) - (bindings--define-key prof-map [prof-func] - '(menu-item "Instrument Function..." elp-instrument-function - :help "Instrument a function for profiling")) - ;; Maybe this should be in a separate submenu from the ELP stuff? - (bindings--define-key prof-map [sep-natprof] menu-bar-separator) - (bindings--define-key prof-map [prof-natprof-stop] - '(menu-item "Stop Native Profiler" profiler-stop - :help "Stop recording profiling information" - :enable (and (featurep 'profiler) - (profiler-running-p)))) - (bindings--define-key prof-map [prof-natprof-report] - '(menu-item "Show Profiler Report" profiler-report - :help "Show the current profiler report" - :enable (and (featurep 'profiler) - (profiler-running-p)))) - (bindings--define-key prof-map [prof-natprof-start] - '(menu-item "Start Native Profiler..." profiler-start - :help "Start recording profiling information")) - - (bindings--define-key menu-map [lint] (cons "Linting" lint-map)) - (bindings--define-key lint-map [lint-di] - '(menu-item "Lint Directory..." elint-directory - :help "Lint a directory")) - (bindings--define-key lint-map [lint-f] - '(menu-item "Lint File..." elint-file - :help "Lint a file")) - (bindings--define-key lint-map [lint-b] - '(menu-item "Lint Buffer" elint-current-buffer - :help "Lint the current buffer")) - (bindings--define-key lint-map [lint-d] - '(menu-item "Lint Defun" elint-defun - :help "Lint the function at point")) - (bindings--define-key menu-map [edebug-defun] - '(menu-item "Instrument Function for Debugging" edebug-defun - :help "Evaluate the top level form point is in, stepping through with Edebug" - :keys "C-u C-M-x")) - (bindings--define-key menu-map [separator-byte] menu-bar-separator) - (bindings--define-key menu-map [disas] - '(menu-item "Disassemble Byte Compiled Object..." disassemble - :help "Print disassembled code for OBJECT in a buffer")) - (bindings--define-key menu-map [byte-recompile] - '(menu-item "Byte-recompile Directory..." byte-recompile-directory - :help "Recompile every `.el' file in DIRECTORY that needs recompilation")) - (bindings--define-key menu-map [emacs-byte-compile-and-load] - '(menu-item "Byte-compile and Load" emacs-lisp-byte-compile-and-load - :help "Byte-compile the current file (if it has changed), then load compiled code")) - (bindings--define-key menu-map [byte-compile] - '(menu-item "Byte-compile This File" emacs-lisp-byte-compile - :help "Byte compile the file containing the current buffer")) - (bindings--define-key menu-map [separator-eval] menu-bar-separator) - (bindings--define-key menu-map [ielm] - '(menu-item "Interactive Expression Evaluation" ielm - :help "Interactively evaluate Emacs Lisp expressions")) - (bindings--define-key menu-map [eval-buffer] - '(menu-item "Evaluate Buffer" eval-buffer - :help "Execute the current buffer as Lisp code")) - (bindings--define-key menu-map [eval-region] - '(menu-item "Evaluate Region" eval-region - :help "Execute the region as Lisp code" - :enable mark-active)) - (bindings--define-key menu-map [eval-sexp] - '(menu-item "Evaluate Last S-expression" eval-last-sexp - :help "Evaluate sexp before point; print value in echo area")) - (bindings--define-key menu-map [separator-format] menu-bar-separator) - (bindings--define-key menu-map [comment-region] - '(menu-item "Comment Out Region" comment-region - :help "Comment or uncomment each line in the region" - :enable mark-active)) - (bindings--define-key menu-map [indent-region] - '(menu-item "Indent Region" indent-region - :help "Indent each nonblank line in the region" - :enable mark-active)) - (bindings--define-key menu-map [indent-line] - '(menu-item "Indent Line" lisp-indent-line)) - map) - "Keymap for Emacs Lisp mode. -All commands in `lisp-mode-shared-map' are inherited by this map.") - -(defun emacs-lisp-byte-compile () - "Byte compile the file containing the current buffer." - (interactive) - (if buffer-file-name - (byte-compile-file buffer-file-name) - (error "The buffer must be saved in a file first"))) - -(defun emacs-lisp-byte-compile-and-load () - "Byte-compile the current file (if it has changed), then load compiled code." - (interactive) - (or buffer-file-name - (error "The buffer must be saved in a file first")) - (require 'bytecomp) - ;; Recompile if file or buffer has changed since last compilation. - (if (and (buffer-modified-p) - (y-or-n-p (format "Save buffer %s first? " (buffer-name)))) - (save-buffer)) - (byte-recompile-file buffer-file-name nil 0 t)) - -(defcustom emacs-lisp-mode-hook nil - "Hook run when entering Emacs Lisp mode." - :options '(eldoc-mode imenu-add-menubar-index checkdoc-minor-mode) - :type 'hook - :group 'lisp) - (defcustom lisp-mode-hook nil "Hook run when entering Lisp mode." :options '(imenu-add-menubar-index) @@ -733,72 +579,6 @@ All commands in `lisp-mode-shared-map' are inherited by this map.") (defconst lisp--prettify-symbols-alist '(("lambda" . ?λ))) -(define-derived-mode emacs-lisp-mode prog-mode "Emacs-Lisp" - "Major mode for editing Lisp code to run in Emacs. -Commands: -Delete converts tabs to spaces as it moves back. -Blank lines separate paragraphs. Semicolons start comments. - -\\{emacs-lisp-mode-map}" - :group 'lisp - (lisp-mode-variables nil nil 'elisp) - (setq imenu-case-fold-search nil) - (add-hook 'completion-at-point-functions - 'lisp-completion-at-point nil 'local)) - -;;; Emacs Lisp Byte-Code mode - -(eval-and-compile - (defconst emacs-list-byte-code-comment-re - (concat "\\(#\\)@\\([0-9]+\\) " - ;; Make sure it's a docstring and not a lazy-loaded byte-code. - "\\(?:[^(]\\|([^\"]\\)"))) - -(defun emacs-lisp-byte-code-comment (end &optional _point) - "Try to syntactically mark the #@NNN ....^_ docstrings in byte-code files." - (let ((ppss (syntax-ppss))) - (when (and (nth 4 ppss) - (eq (char-after (nth 8 ppss)) ?#)) - (let* ((n (save-excursion - (goto-char (nth 8 ppss)) - (when (looking-at emacs-list-byte-code-comment-re) - (string-to-number (match-string 2))))) - ;; `maxdiff' tries to make sure the loop below terminates. - (maxdiff n)) - (when n - (let* ((bchar (match-end 2)) - (b (position-bytes bchar))) - (goto-char (+ b n)) - (while (let ((diff (- (position-bytes (point)) b n))) - (unless (zerop diff) - (when (> diff maxdiff) (setq diff maxdiff)) - (forward-char (- diff)) - (setq maxdiff (if (> diff 0) diff - (max (1- maxdiff) 1))) - t)))) - (if (<= (point) end) - (put-text-property (1- (point)) (point) - 'syntax-table - (string-to-syntax "> b")) - (goto-char end))))))) - -(defun emacs-lisp-byte-code-syntax-propertize (start end) - (emacs-lisp-byte-code-comment end (point)) - (funcall - (syntax-propertize-rules - (emacs-list-byte-code-comment-re - (1 (prog1 "< b" (emacs-lisp-byte-code-comment end (point)))))) - start end)) - -(add-to-list 'auto-mode-alist '("\\.elc\\'" . emacs-lisp-byte-code-mode)) -(define-derived-mode emacs-lisp-byte-code-mode emacs-lisp-mode - "Elisp-Byte-Code" - "Major mode for *.elc files." - ;; TODO: Add way to disassemble byte-code under point. - (setq-local open-paren-in-column-0-is-defun-start nil) - (setq-local syntax-propertize-function - #'emacs-lisp-byte-code-syntax-propertize)) - ;;; Generic Lisp mode. (defvar lisp-mode-map @@ -852,415 +632,6 @@ or to switch back to an existing one." (interactive) (error "Process lisp does not exist")) -(defvar lisp-interaction-mode-map - (let ((map (make-sparse-keymap)) - (menu-map (make-sparse-keymap "Lisp-Interaction"))) - (set-keymap-parent map lisp-mode-shared-map) - (define-key map "\e\C-x" 'eval-defun) - (define-key map "\e\C-q" 'indent-pp-sexp) - (define-key map "\e\t" 'completion-at-point) - (define-key map "\n" 'eval-print-last-sexp) - (bindings--define-key map [menu-bar lisp-interaction] - (cons "Lisp-Interaction" menu-map)) - (bindings--define-key menu-map [eval-defun] - '(menu-item "Evaluate Defun" eval-defun - :help "Evaluate the top-level form containing point, or after point")) - (bindings--define-key menu-map [eval-print-last-sexp] - '(menu-item "Evaluate and Print" eval-print-last-sexp - :help "Evaluate sexp before point; print value into current buffer")) - (bindings--define-key menu-map [edebug-defun-lisp-interaction] - '(menu-item "Instrument Function for Debugging" edebug-defun - :help "Evaluate the top level form point is in, stepping through with Edebug" - :keys "C-u C-M-x")) - (bindings--define-key menu-map [indent-pp-sexp] - '(menu-item "Indent or Pretty-Print" indent-pp-sexp - :help "Indent each line of the list starting just after point, or prettyprint it")) - (bindings--define-key menu-map [complete-symbol] - '(menu-item "Complete Lisp Symbol" completion-at-point - :help "Perform completion on Lisp symbol preceding point")) - map) - "Keymap for Lisp Interaction mode. -All commands in `lisp-mode-shared-map' are inherited by this map.") - -(define-derived-mode lisp-interaction-mode emacs-lisp-mode "Lisp Interaction" - "Major mode for typing and evaluating Lisp forms. -Like Lisp mode except that \\[eval-print-last-sexp] evals the Lisp expression -before point, and prints its value into the buffer, advancing point. -Note that printing is controlled by `eval-expression-print-length' -and `eval-expression-print-level'. - -Commands: -Delete converts tabs to spaces as it moves back. -Paragraphs are separated only by blank lines. -Semicolons start comments. - -\\{lisp-interaction-mode-map}" - :abbrev-table nil) - -(defun eval-print-last-sexp (&optional eval-last-sexp-arg-internal) - "Evaluate sexp before point; print value into current buffer. - -Normally, this function truncates long output according to the value -of the variables `eval-expression-print-length' and -`eval-expression-print-level'. With a prefix argument of zero, -however, there is no such truncation. Such a prefix argument -also causes integers to be printed in several additional formats -\(octal, hexadecimal, and character). - -If `eval-expression-debug-on-error' is non-nil, which is the default, -this command arranges for all errors to enter the debugger." - (interactive "P") - (let ((standard-output (current-buffer))) - (terpri) - (eval-last-sexp (or eval-last-sexp-arg-internal t)) - (terpri))) - - -(defun last-sexp-setup-props (beg end value alt1 alt2) - "Set up text properties for the output of `eval-last-sexp-1'. -BEG and END are the start and end of the output in current-buffer. -VALUE is the Lisp value printed, ALT1 and ALT2 are strings for the -alternative printed representations that can be displayed." - (let ((map (make-sparse-keymap))) - (define-key map "\C-m" 'last-sexp-toggle-display) - (define-key map [down-mouse-2] 'mouse-set-point) - (define-key map [mouse-2] 'last-sexp-toggle-display) - (add-text-properties - beg end - `(printed-value (,value ,alt1 ,alt2) - mouse-face highlight - keymap ,map - help-echo "RET, mouse-2: toggle abbreviated display" - rear-nonsticky (mouse-face keymap help-echo - printed-value))))) - - -(defun last-sexp-toggle-display (&optional _arg) - "Toggle between abbreviated and unabbreviated printed representations." - (interactive "P") - (save-restriction - (widen) - (let ((value (get-text-property (point) 'printed-value))) - (when value - (let ((beg (or (previous-single-property-change (min (point-max) (1+ (point))) - 'printed-value) - (point))) - (end (or (next-single-char-property-change (point) 'printed-value) (point))) - (standard-output (current-buffer)) - (point (point))) - (delete-region beg end) - (insert (nth 1 value)) - (or (= beg point) - (setq point (1- (point)))) - (last-sexp-setup-props beg (point) - (nth 0 value) - (nth 2 value) - (nth 1 value)) - (goto-char (min (point-max) point))))))) - -(defun prin1-char (char) - "Return a string representing CHAR as a character rather than as an integer. -If CHAR is not a character, return nil." - (and (integerp char) - (eventp char) - (let ((c (event-basic-type char)) - (mods (event-modifiers char)) - string) - ;; Prevent ?A from turning into ?\S-a. - (if (and (memq 'shift mods) - (zerop (logand char ?\S-\^@)) - (not (let ((case-fold-search nil)) - (char-equal c (upcase c))))) - (setq c (upcase c) mods nil)) - ;; What string are we considering using? - (condition-case nil - (setq string - (concat - "?" - (mapconcat - (lambda (modif) - (cond ((eq modif 'super) "\\s-") - (t (string ?\\ (upcase (aref (symbol-name modif) 0)) ?-)))) - mods "") - (cond - ((memq c '(?\; ?\( ?\) ?\{ ?\} ?\[ ?\] ?\" ?\' ?\\)) (string ?\\ c)) - ((eq c 127) "\\C-?") - (t - (string c))))) - (error nil)) - ;; Verify the string reads a CHAR, not to some other character. - ;; If it doesn't, return nil instead. - (and string - (= (car (read-from-string string)) char) - string)))) - - -(defun preceding-sexp () - "Return sexp before the point." - (let ((opoint (point)) - ignore-quotes - expr) - (save-excursion - (with-syntax-table emacs-lisp-mode-syntax-table - ;; If this sexp appears to be enclosed in `...' - ;; then ignore the surrounding quotes. - (setq ignore-quotes - (or (eq (following-char) ?\') - (eq (preceding-char) ?\'))) - (forward-sexp -1) - ;; If we were after `?\e' (or similar case), - ;; use the whole thing, not just the `e'. - (when (eq (preceding-char) ?\\) - (forward-char -1) - (when (eq (preceding-char) ??) - (forward-char -1))) - - ;; Skip over hash table read syntax. - (and (> (point) (1+ (point-min))) - (looking-back "#s" (- (point) 2)) - (forward-char -2)) - - ;; Skip over `#N='s. - (when (eq (preceding-char) ?=) - (let (labeled-p) - (save-excursion - (skip-chars-backward "0-9#=") - (setq labeled-p (looking-at "\\(#[0-9]+=\\)+"))) - (when labeled-p - (forward-sexp -1)))) - - (save-restriction - (if (and ignore-quotes (eq (following-char) ?`)) - ;; vladimir@cs.ualberta.ca 30-Jul-1997: Skip ` in `variable' so - ;; that the value is returned, not the name. - (forward-char)) - (when (looking-at ",@?") (goto-char (match-end 0))) - (narrow-to-region (point-min) opoint) - (setq expr (read (current-buffer))) - ;; If it's an (interactive ...) form, it's more useful to show how an - ;; interactive call would use it. - ;; FIXME: Is it really the right place for this? - (when (eq (car-safe expr) 'interactive) - (setq expr - `(call-interactively - (lambda (&rest args) ,expr args)))) - expr))))) - - -(defun eval-last-sexp-1 (eval-last-sexp-arg-internal) - "Evaluate sexp before point; print value in the echo area. -With argument, print output into current buffer. -With a zero prefix arg, print output with no limit on the length -and level of lists, and include additional formats for integers -\(octal, hexadecimal, and character)." - (let ((standard-output (if eval-last-sexp-arg-internal (current-buffer) t))) - ;; Setup the lexical environment if lexical-binding is enabled. - (eval-last-sexp-print-value - (eval (eval-sexp-add-defvars (preceding-sexp)) lexical-binding) - eval-last-sexp-arg-internal))) - - -(defun eval-last-sexp-print-value (value &optional eval-last-sexp-arg-internal) - (let ((unabbreviated (let ((print-length nil) (print-level nil)) - (prin1-to-string value))) - (print-length (and (not (zerop (prefix-numeric-value - eval-last-sexp-arg-internal))) - eval-expression-print-length)) - (print-level (and (not (zerop (prefix-numeric-value - eval-last-sexp-arg-internal))) - eval-expression-print-level)) - (beg (point)) - end) - (prog1 - (prin1 value) - (let ((str (eval-expression-print-format value))) - (if str (princ str))) - (setq end (point)) - (when (and (bufferp standard-output) - (or (not (null print-length)) - (not (null print-level))) - (not (string= unabbreviated - (buffer-substring-no-properties beg end)))) - (last-sexp-setup-props beg end value - unabbreviated - (buffer-substring-no-properties beg end)) - )))) - - -(defvar eval-last-sexp-fake-value (make-symbol "t")) - -(defun eval-sexp-add-defvars (exp &optional pos) - "Prepend EXP with all the `defvar's that precede it in the buffer. -POS specifies the starting position where EXP was found and defaults to point." - (setq exp (macroexpand-all exp)) ;Eager macro-expansion. - (if (not lexical-binding) - exp - (save-excursion - (unless pos (setq pos (point))) - (let ((vars ())) - (goto-char (point-min)) - (while (re-search-forward - "(def\\(?:var\\|const\\|custom\\)[ \t\n]+\\([^; '()\n\t]+\\)" - pos t) - (let ((var (intern (match-string 1)))) - (and (not (special-variable-p var)) - (save-excursion - (zerop (car (syntax-ppss (match-beginning 0))))) - (push var vars)))) - `(progn ,@(mapcar (lambda (v) `(defvar ,v)) vars) ,exp))))) - -(defun eval-last-sexp (eval-last-sexp-arg-internal) - "Evaluate sexp before point; print value in the echo area. -Interactively, with prefix argument, print output into current buffer. - -Normally, this function truncates long output according to the value -of the variables `eval-expression-print-length' and -`eval-expression-print-level'. With a prefix argument of zero, -however, there is no such truncation. Such a prefix argument -also causes integers to be printed in several additional formats -\(octal, hexadecimal, and character). - -If `eval-expression-debug-on-error' is non-nil, which is the default, -this command arranges for all errors to enter the debugger." - (interactive "P") - (if (null eval-expression-debug-on-error) - (eval-last-sexp-1 eval-last-sexp-arg-internal) - (let ((value - (let ((debug-on-error eval-last-sexp-fake-value)) - (cons (eval-last-sexp-1 eval-last-sexp-arg-internal) - debug-on-error)))) - (unless (eq (cdr value) eval-last-sexp-fake-value) - (setq debug-on-error (cdr value))) - (car value)))) - -(defun eval-defun-1 (form) - "Treat some expressions specially. -Reset the `defvar' and `defcustom' variables to the initial value. -\(For `defcustom', use the :set function if there is one.) -Reinitialize the face according to the `defface' specification." - ;; The code in edebug-defun should be consistent with this, but not - ;; the same, since this gets a macroexpanded form. - (cond ((not (listp form)) - form) - ((and (eq (car form) 'defvar) - (cdr-safe (cdr-safe form)) - (boundp (cadr form))) - ;; Force variable to be re-set. - `(progn (defvar ,(nth 1 form) nil ,@(nthcdr 3 form)) - (setq-default ,(nth 1 form) ,(nth 2 form)))) - ;; `defcustom' is now macroexpanded to - ;; `custom-declare-variable' with a quoted value arg. - ((and (eq (car form) 'custom-declare-variable) - (default-boundp (eval (nth 1 form) lexical-binding))) - ;; Force variable to be bound, using :set function if specified. - (let ((setfunc (memq :set form))) - (when setfunc - (setq setfunc (car-safe (cdr-safe setfunc))) - (or (functionp setfunc) (setq setfunc nil))) - (funcall (or setfunc 'set-default) - (eval (nth 1 form) lexical-binding) - ;; The second arg is an expression that evaluates to - ;; an expression. The second evaluation is the one - ;; normally performed not by normal execution but by - ;; custom-initialize-set (for example), which does not - ;; use lexical-binding. - (eval (eval (nth 2 form) lexical-binding)))) - form) - ;; `defface' is macroexpanded to `custom-declare-face'. - ((eq (car form) 'custom-declare-face) - ;; Reset the face. - (let ((face-symbol (eval (nth 1 form) lexical-binding))) - (setq face-new-frame-defaults - (assq-delete-all face-symbol face-new-frame-defaults)) - (put face-symbol 'face-defface-spec nil) - (put face-symbol 'face-override-spec nil)) - form) - ((eq (car form) 'progn) - (cons 'progn (mapcar 'eval-defun-1 (cdr form)))) - (t form))) - -(defun eval-defun-2 () - "Evaluate defun that point is in or before. -The value is displayed in the echo area. -If the current defun is actually a call to `defvar', -then reset the variable using the initial value expression -even if the variable already has some other value. -\(Normally `defvar' does not change the variable's value -if it already has a value.\) - -Return the result of evaluation." - ;; FIXME: the print-length/level bindings should only be applied while - ;; printing, not while evaluating. - (let ((debug-on-error eval-expression-debug-on-error) - (print-length eval-expression-print-length) - (print-level eval-expression-print-level)) - (save-excursion - ;; Arrange for eval-region to "read" the (possibly) altered form. - ;; eval-region handles recording which file defines a function or - ;; variable. - (let ((standard-output t) - beg end form) - ;; Read the form from the buffer, and record where it ends. - (save-excursion - (end-of-defun) - (beginning-of-defun) - (setq beg (point)) - (setq form (read (current-buffer))) - (setq end (point))) - ;; Alter the form if necessary. - (let ((form (eval-sexp-add-defvars - (eval-defun-1 (macroexpand form))))) - (eval-region beg end standard-output - (lambda (_ignore) - ;; Skipping to the end of the specified region - ;; will make eval-region return. - (goto-char end) - form)))))) - (let ((str (eval-expression-print-format (car values)))) - (if str (princ str))) - ;; The result of evaluation has been put onto VALUES. So return it. - (car values)) - -(defun eval-defun (edebug-it) - "Evaluate the top-level form containing point, or after point. - -If the current defun is actually a call to `defvar' or `defcustom', -evaluating it this way resets the variable using its initial value -expression (using the defcustom's :set function if there is one), even -if the variable already has some other value. \(Normally `defvar' and -`defcustom' do not alter the value if there already is one.) In an -analogous way, evaluating a `defface' overrides any customizations of -the face, so that it becomes defined exactly as the `defface' expression -says. - -If `eval-expression-debug-on-error' is non-nil, which is the default, -this command arranges for all errors to enter the debugger. - -With a prefix argument, instrument the code for Edebug. - -If acting on a `defun' for FUNCTION, and the function was -instrumented, `Edebug: FUNCTION' is printed in the echo area. If not -instrumented, just FUNCTION is printed. - -If not acting on a `defun', the result of evaluation is displayed in -the echo area. This display is controlled by the variables -`eval-expression-print-length' and `eval-expression-print-level', -which see." - (interactive "P") - (cond (edebug-it - (require 'edebug) - (eval-defun (not edebug-all-defs))) - (t - (if (null eval-expression-debug-on-error) - (eval-defun-2) - (let ((old-value (make-symbol "t")) new-value value) - (let ((debug-on-error old-value)) - (setq value (eval-defun-2)) - (setq new-value debug-on-error)) - (unless (eq old-value new-value) - (setq debug-on-error new-value)) - value))))) - ;; May still be used by some external Lisp-mode variant. (define-obsolete-function-alias 'lisp-comment-indent 'comment-indent-default "22.1") @@ -1583,19 +954,21 @@ Lisp function does not specify a special indentation." ;; like defun if the first form is placed on the next line, otherwise ;; it is indented like any other form (i.e. forms line up under first). -(put 'autoload 'lisp-indent-function 'defun) +(put 'autoload 'lisp-indent-function 'defun) ;Elisp (put 'progn 'lisp-indent-function 0) (put 'prog1 'lisp-indent-function 1) (put 'prog2 'lisp-indent-function 2) -(put 'save-excursion 'lisp-indent-function 0) -(put 'save-restriction 'lisp-indent-function 0) -(put 'save-current-buffer 'lisp-indent-function 0) +(put 'save-excursion 'lisp-indent-function 0) ;Elisp +(put 'save-restriction 'lisp-indent-function 0) ;Elisp +(put 'save-current-buffer 'lisp-indent-function 0) ;Elisp (put 'let 'lisp-indent-function 1) (put 'let* 'lisp-indent-function 1) (put 'while 'lisp-indent-function 1) (put 'if 'lisp-indent-function 2) (put 'catch 'lisp-indent-function 1) (put 'condition-case 'lisp-indent-function 2) +(put 'handler-case 'lisp-indent-function 1) ;CL +(put 'handler-bind 'lisp-indent-function 1) ;CL (put 'unwind-protect 'lisp-indent-function 1) (put 'with-output-to-temp-buffer 'lisp-indent-function 1) diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 30fee64635c..31682d036bf 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -758,247 +758,4 @@ considered." (completion-in-region (nth 0 data) (nth 1 data) (nth 2 data) (plist-get plist :predicate)))))) -(defun lisp--local-variables-1 (vars sexp) - "Return the vars locally bound around the witness, or nil if not found." - (let (res) - (while - (unless - (setq res - (pcase sexp - (`(,(or `let `let*) ,bindings) - (let ((vars vars)) - (when (eq 'let* (car sexp)) - (dolist (binding (cdr (reverse bindings))) - (push (or (car-safe binding) binding) vars))) - (lisp--local-variables-1 - vars (car (cdr-safe (car (last bindings))))))) - (`(,(or `let `let*) ,bindings . ,body) - (let ((vars vars)) - (dolist (binding bindings) - (push (or (car-safe binding) binding) vars)) - (lisp--local-variables-1 vars (car (last body))))) - (`(lambda ,_) (setq sexp nil)) - (`(lambda ,args . ,body) - (lisp--local-variables-1 - (append args vars) (car (last body)))) - (`(condition-case ,_ ,e) (lisp--local-variables-1 vars e)) - (`(condition-case ,v ,_ . ,catches) - (lisp--local-variables-1 - (cons v vars) (cdr (car (last catches))))) - (`(,_ . ,_) - (lisp--local-variables-1 vars (car (last sexp)))) - (`lisp--witness--lisp (or vars '(nil))) - (_ nil))) - (setq sexp (ignore-errors (butlast sexp))))) - res)) - -(defun lisp--local-variables () - "Return a list of locally let-bound variables at point." - (save-excursion - (skip-syntax-backward "w_") - (let* ((ppss (syntax-ppss)) - (txt (buffer-substring-no-properties (or (car (nth 9 ppss)) (point)) - (or (nth 8 ppss) (point)))) - (closer ())) - (dolist (p (nth 9 ppss)) - (push (cdr (syntax-after p)) closer)) - (setq closer (apply #'string closer)) - (let* ((sexp (condition-case nil - (car (read-from-string - (concat txt "lisp--witness--lisp" closer))) - (end-of-file nil))) - (macroexpand-advice (lambda (expander form &rest args) - (condition-case nil - (apply expander form args) - (error form)))) - (sexp - (unwind-protect - (progn - (advice-add 'macroexpand :around macroexpand-advice) - (macroexpand-all sexp)) - (advice-remove 'macroexpand macroexpand-advice))) - (vars (lisp--local-variables-1 nil sexp))) - (delq nil - (mapcar (lambda (var) - (and (symbolp var) - (not (string-match (symbol-name var) "\\`[&_]")) - ;; Eliminate uninterned vars. - (intern-soft var) - var)) - vars)))))) - -(defvar lisp--local-variables-completion-table - ;; Use `defvar' rather than `defconst' since defconst would purecopy this - ;; value, which would doubly fail: it would fail because purecopy can't - ;; handle the recursive bytecode object, and it would fail because it would - ;; move `lastpos' and `lastvars' to pure space where they'd be immutable! - (let ((lastpos nil) (lastvars nil)) - (letrec ((hookfun (lambda () - (setq lastpos nil) - (remove-hook 'post-command-hook hookfun)))) - (completion-table-dynamic - (lambda (_string) - (save-excursion - (skip-syntax-backward "_w") - (let ((newpos (cons (point) (current-buffer)))) - (unless (equal lastpos newpos) - (add-hook 'post-command-hook hookfun) - (setq lastpos newpos) - (setq lastvars - (mapcar #'symbol-name (lisp--local-variables)))))) - lastvars))))) - -;; FIXME: Support for Company brings in features which straddle eldoc. -;; We should consolidate this, so that major modes can provide all that -;; data all at once: -;; - a function to extract "the reference at point" (may be more complex -;; than a mere string, to distinguish various namespaces). -;; - a function to jump to such a reference. -;; - a function to show the signature/interface of such a reference. -;; - a function to build a help-buffer about that reference. -;; FIXME: Those functions should also be used by the normal completion code in -;; the *Completions* buffer. - -(defun lisp--company-doc-buffer (str) - (let ((symbol (intern-soft str))) - ;; FIXME: we really don't want to "display-buffer and then undo it". - (save-window-excursion - ;; Make sure we don't display it in another frame, otherwise - ;; save-window-excursion won't be able to undo it. - (let ((display-buffer-overriding-action - '(nil . ((inhibit-switch-frame . t))))) - (ignore-errors - (cond - ((fboundp symbol) (describe-function symbol)) - ((boundp symbol) (describe-variable symbol)) - ((featurep symbol) (describe-package symbol)) - ((facep symbol) (describe-face symbol)) - (t (signal 'user-error nil))) - (help-buffer)))))) - -(defun lisp--company-doc-string (str) - (let* ((symbol (intern-soft str)) - (doc (if (fboundp symbol) - (documentation symbol t) - (documentation-property symbol 'variable-documentation t)))) - (and (stringp doc) - (string-match ".*$" doc) - (match-string 0 doc)))) - -(declare-function find-library-name "find-func" (library)) - -(defun lisp--company-location (str) - (let ((sym (intern-soft str))) - (cond - ((fboundp sym) (find-definition-noselect sym nil)) - ((boundp sym) (find-definition-noselect sym 'defvar)) - ((featurep sym) - (require 'find-func) - (cons (find-file-noselect (find-library-name - (symbol-name sym))) - 0)) - ((facep sym) (find-definition-noselect sym 'defface))))) - -(defun lisp-completion-at-point (&optional _predicate) - "Function used for `completion-at-point-functions' in `emacs-lisp-mode'." - (with-syntax-table emacs-lisp-mode-syntax-table - (let* ((pos (point)) - (beg (condition-case nil - (save-excursion - (backward-sexp 1) - (skip-syntax-forward "'") - (point)) - (scan-error pos))) - (end - (unless (or (eq beg (point-max)) - (member (char-syntax (char-after beg)) - '(?\s ?\" ?\( ?\)))) - (condition-case nil - (save-excursion - (goto-char beg) - (forward-sexp 1) - (when (>= (point) pos) - (point))) - (scan-error pos)))) - (funpos (eq (char-before beg) ?\()) ;t if in function position. - (table-etc - (if (not funpos) - ;; FIXME: We could look at the first element of the list and - ;; use it to provide a more specific completion table in some - ;; cases. E.g. filter out keywords that are not understood by - ;; the macro/function being called. - (list nil (completion-table-merge - lisp--local-variables-completion-table - (apply-partially #'completion-table-with-predicate - obarray - ;; Don't include all symbols - ;; (bug#16646). - (lambda (sym) - (or (boundp sym) - (fboundp sym) - (symbol-plist sym))) - 'strict)) - :annotation-function - (lambda (str) (if (fboundp (intern-soft str)) " ")) - :company-doc-buffer #'lisp--company-doc-buffer - :company-docsig #'lisp--company-doc-string - :company-location #'lisp--company-location) - ;; Looks like a funcall position. Let's double check. - (save-excursion - (goto-char (1- beg)) - (let ((parent - (condition-case nil - (progn (up-list -1) (forward-char 1) - (let ((c (char-after))) - (if (eq c ?\() ?\( - (if (memq (char-syntax c) '(?w ?_)) - (read (current-buffer)))))) - (error nil)))) - (pcase parent - ;; FIXME: Rather than hardcode special cases here, - ;; we should use something like a symbol-property. - (`declare - (list t (mapcar (lambda (x) (symbol-name (car x))) - (delete-dups - ;; FIXME: We should include some - ;; docstring with each entry. - (append - macro-declarations-alist - defun-declarations-alist))))) - ((and (or `condition-case `condition-case-unless-debug) - (guard (save-excursion - (ignore-errors - (forward-sexp 2) - (< (point) beg))))) - (list t obarray - :predicate (lambda (sym) (get sym 'error-conditions)))) - ((and ?\( - (guard (save-excursion - (goto-char (1- beg)) - (up-list -1) - (forward-symbol -1) - (looking-at "\\_")))) - (list t obarray - :predicate #'boundp - :company-doc-buffer #'lisp--company-doc-buffer - :company-docsig #'lisp--company-doc-string - :company-location #'lisp--company-location)) - (_ (list nil obarray - :predicate #'fboundp - :company-doc-buffer #'lisp--company-doc-buffer - :company-docsig #'lisp--company-doc-string - :company-location #'lisp--company-location - )))))))) - (when end - (let ((tail (if (null (car table-etc)) - (cdr table-etc) - (cons - (if (memq (char-syntax (or (char-after end) ?\s)) - '(?\s ?>)) - (cadr table-etc) - (apply-partially 'completion-table-with-terminator - " " (cadr table-etc))) - (cddr table-etc))))) - `(,beg ,end ,@tail)))))) - ;;; lisp.el ends here diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index 44727daf76a..b40e44ee90f 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -25,7 +25,6 @@ ;; This file contains macro-expansions functions that are not defined in ;; the Lisp core, namely `macroexpand-all', which expands all macros in ;; a form, not just a top-level one. -;; ;;; Code: @@ -98,8 +97,6 @@ each clause." (condition-case err (apply handler form (cdr form)) (error - (message "--------------------------------------------------") - (backtrace) (message "Compiler-macro error for %S: %S" (car form) err) form))) @@ -147,11 +144,35 @@ and also to avoid outputting the warning during normal execution." (instead (format "; use `%s' instead." instead)) (t "."))))) +(defun macroexpand-1 (form &optional environment) + "Perform (at most) one step of macroexpansion." + (cond + ((consp form) + (let* ((head (car form)) + (env-expander (assq head environment))) + (if env-expander + (if (cdr env-expander) + (apply (cdr env-expander) (cdr form)) + form) + (if (not (and (symbolp head) (fboundp head))) + form + (let ((def (autoload-do-load (symbol-function head) head 'macro))) + (cond + ;; Follow alias, but only for macros, otherwise we may end up + ;; skipping an important compiler-macro (e.g. cl--block-wrapper). + ((and (symbolp def) (macrop def)) (cons def (cdr form))) + ((not (consp def)) form) + (t + (if (eq 'macro (car def)) + (apply (cdr def) (cdr form)) + form)))))))) + (t form))) + (defun macroexp--expand-all (form) "Expand all macros in FORM. This is an internal version of `macroexpand-all'. Assumes the caller has bound `macroexpand-all-environment'." - (if (and (listp form) (eq (car form) 'backquote-list*)) + (if (eq (car-safe form) 'backquote-list*) ;; Special-case `backquote-list*', as it is normally a macro that ;; generates exceedingly deep expansions from relatively shallow input ;; forms. We just process it `in reverse' -- first we expand all the @@ -228,6 +249,10 @@ Assumes the caller has bound `macroexpand-all-environment'." (format "%s quoted with ' rather than with #'" (list 'lambda (nth 1 f) '...)) (macroexp--expand-all `(,fun ,arg1 ,f . ,args)))) + (`(funcall (,(or 'quote 'function) ,(and f (pred symbolp)) . ,_) . ,args) + ;; Rewrite (funcall #'foo bar) to (foo bar), in case `foo' + ;; has a compiler-macro. + (macroexp--expand-all `(,f . ,args))) (`(,func . ,_) ;; Macro expand compiler macros. This cannot be delayed to ;; byte-optimize-form because the output of the compiler-macro can @@ -241,7 +266,7 @@ Assumes the caller has bound `macroexpand-all-environment'." ;; If the handler is not loaded yet, try (auto)loading the ;; function itself, which may in turn load the handler. (unless (functionp handler) - (ignore-errors + (with-demoted-errors "macroexp--expand-all: %S" (autoload-do-load (indirect-function func) func))) (let ((newform (macroexp--compiler-macro handler form))) (if (eq form newform) @@ -319,6 +344,15 @@ be skipped; if nil, as is usual, `macroexp-const-p' is used." (macroexp-let* (list (list ,var ,expsym)) ,bodysym))))) +(defmacro macroexp-let2* (test bindings &rest body) + "Bind each binding in BINDINGS as `macroexp-let2' does." + (declare (indent 2) (debug (sexp (&rest (sexp form)) body))) + (pcase-exhaustive bindings + (`nil (macroexp-progn body)) + (`((,var ,exp) . ,tl) + `(macroexp-let2 ,test ,var ,exp + (macroexp-let2* ,test ,tl ,@body))))) + (defun macroexp--maxsize (exp size) (cond ((< size 0) size) ((symbolp exp) (1- size)) @@ -370,6 +404,18 @@ symbol itself." "Return non-nil if EXP can be copied without extra cost." (or (symbolp exp) (macroexp-const-p exp))) +(defun macroexp-quote (v) + "Return an expression E such that `(eval E)' is V. + +E is either V or (quote V) depending on whether V evaluates to +itself or not." + (if (and (not (consp v)) + (or (keywordp v) + (not (symbolp v)) + (memq v '(nil t)))) + v + (list 'quote v))) + ;;; Load-time macro-expansion. ;; Because macro-expansion used to be more lazy, eager macro-expansion diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el index bfd939d69e2..a81d3e43de3 100644 --- a/lisp/emacs-lisp/nadvice.el +++ b/lisp/emacs-lisp/nadvice.el @@ -441,6 +441,30 @@ of the piece of advice." (fset symbol (car (get symbol 'advice--saved-rewrite))))))) nil) +;;;###autoload +(defmacro define-advice (symbol args &rest body) + "Define an advice and add it to function named SYMBOL. +See `advice-add' and `add-function' for explanation on the +arguments. Note if NAME is nil the advice is anonymous; +otherwise it is named `SYMBOL@NAME'. + +\(fn SYMBOL (WHERE LAMBDA-LIST &optional NAME DEPTH) &rest BODY)" + (declare (indent 2) (doc-string 3) (debug (sexp sexp body))) + (or (listp args) (signal 'wrong-type-argument (list 'listp args))) + (or (<= 2 (length args) 4) + (signal 'wrong-number-of-arguments (list 2 4 (length args)))) + (let* ((where (nth 0 args)) + (lambda-list (nth 1 args)) + (name (nth 2 args)) + (depth (nth 3 args)) + (props (and depth `((depth . ,depth)))) + (advice (cond ((null name) `(lambda ,lambda-list ,@body)) + ((or (stringp name) (symbolp name)) + (intern (format "%s@%s" symbol name))) + (t (error "Unrecognized name spec `%S'" name))))) + `(prog1 ,@(and (symbolp advice) `((defun ,advice ,lambda-list ,@body))) + (advice-add ',symbol ,where #',advice ,@(and props `(',props)))))) + (defun advice-mapc (fun symbol) "Apply FUN to every advice function in SYMBOL. FUN is called with a two arguments: the function that was added, and the diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 4d7ed8f121c..80b7670c1f0 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -162,8 +162,10 @@ ;;; Code: (eval-when-compile (require 'cl-lib)) +(eval-when-compile (require 'epg)) ;For setf accessors. (require 'tabulated-list) +(require 'macroexp) (defgroup package nil "Manager for Emacs Lisp packages." @@ -289,7 +291,11 @@ contrast, `package-user-dir' contains packages for personal use." :group 'package :version "24.1") -(defcustom package-check-signature 'allow-unsigned +(defvar epg-gpg-program) + +(defcustom package-check-signature + (if (progn (require 'epg-config) (executable-find epg-gpg-program)) + 'allow-unsigned) "Non-nil means to check package signatures when installing. The value `allow-unsigned' means to still install a package even if it is unsigned. @@ -510,7 +516,11 @@ Return the max version (as a string) if the package is held at a lower version." force)) (t (error "Invalid element in `package-load-list'"))))) -(defun package-activate-1 (pkg-desc) +(defun package-activate-1 (pkg-desc &optional reload) + "Activate package given by PKG-DESC, even if it was already active. +If RELOAD is non-nil, also `load' any files inside the package which +correspond to previously loaded files (those returned by +`package--list-loaded-files')." (let* ((name (package-desc-name pkg-desc)) (pkg-dir (package-desc-dir pkg-desc)) (pkg-dir-dir (file-name-as-directory pkg-dir))) @@ -518,15 +528,27 @@ Return the max version (as a string) if the package is held at a lower version." (error "Internal error: unable to find directory for `%s'" (package-desc-full-name pkg-desc))) ;; Add to load path, add autoloads, and activate the package. - (let ((old-lp load-path)) - (with-demoted-errors - (load (expand-file-name (format "%s-autoloads" name) pkg-dir) nil t)) + (let* ((old-lp load-path) + (autoloads-file (expand-file-name + (format "%s-autoloads" name) pkg-dir)) + (loaded-files-list (and reload (package--list-loaded-files pkg-dir)))) + (with-demoted-errors "Error in package-activate-1: %s" + (load autoloads-file nil t)) (when (and (eq old-lp load-path) (not (or (member pkg-dir load-path) (member pkg-dir-dir load-path)))) ;; Old packages don't add themselves to the `load-path', so we have to ;; do it ourselves. - (push pkg-dir load-path))) + (push pkg-dir load-path)) + ;; Call `load' on all files in `pkg-dir' already present in + ;; `load-history'. This is done so that macros in these files are updated + ;; to their new definitions. If another package is being installed which + ;; depends on this new definition, not doing this update would cause + ;; compilation errors and break the installation. + (with-demoted-errors "Error in package-activate-1: %s" + (mapc (lambda (feature) (load feature nil t)) + ;; Skip autoloads file since we already evaluated it above. + (remove (file-truename autoloads-file) loaded-files-list)))) ;; Add info node. (when (file-exists-p (expand-file-name "dir" pkg-dir)) ;; FIXME: not the friendliest, but simple. @@ -537,6 +559,41 @@ Return the max version (as a string) if the package is held at a lower version." ;; Don't return nil. t)) +(declare-function find-library-name "find-func" (library)) +(defun package--list-loaded-files (dir) + "Recursively list all files in DIR which correspond to loaded features. +Returns the `file-name-sans-extension' of each file, relative to +DIR, sorted by most recently loaded last." + (let* ((history (delq nil + (mapcar (lambda (x) + (let ((f (car x))) + (and f (file-name-sans-extension f)))) + load-history))) + (dir (file-truename dir)) + ;; List all files that have already been loaded. + (list-of-conflicts + (delq + nil + (mapcar + (lambda (x) (let* ((file (file-relative-name x dir)) + ;; Previously loaded file, if any. + (previous + (ignore-errors + (file-name-sans-extension + (file-truename (find-library-name file))))) + (pos (when previous (member previous history)))) + ;; Return (RELATIVE-FILENAME . HISTORY-POSITION) + (when pos + (cons (file-name-sans-extension file) (length pos))))) + (directory-files-recursively dir "\\`[^\\.].*\\.el\\'"))))) + ;; Turn the list of (FILENAME . POS) back into a list of features. Files in + ;; subdirectories are returned relative to DIR (so not actually features). + (let ((default-directory (file-name-as-directory dir))) + (mapcar (lambda (x) (file-truename (car x))) + (sort list-of-conflicts + ;; Sort the files by ascending HISTORY-POSITION. + (lambda (x y) (< (cdr x) (cdr y)))))))) + (defun package-built-in-p (package &optional min-version) "Return true if PACKAGE is built-in to Emacs. Optional arg MIN-VERSION, if non-nil, should be a version list @@ -586,14 +643,14 @@ If FORCE is true, (re-)activate it if it's already activated." (fail (catch 'dep-failure ;; Activate its dependencies recursively. (dolist (req (package-desc-reqs pkg-vec)) - (unless (package-activate (car req) (cadr req)) + (unless (package-activate (car req)) (throw 'dep-failure req)))))) (if fail (warn "Unable to activate package `%s'. Required package `%s-%s' is unavailable" package (car fail) (package-version-join (cadr fail))) ;; If all goes well, activate the package itself. - (package-activate-1 pkg-vec))))))) + (package-activate-1 pkg-vec force))))))) (defun define-package (_name-string _version-string &optional _docstring _requirements @@ -689,11 +746,9 @@ untar into a directory named DIR; otherwise, signal an error." (error "Package does not untar cleanly into directory %s/" dir))))) (tar-untar-buffer)) -(defun package-generate-description-file (pkg-desc pkg-dir) +(defun package-generate-description-file (pkg-desc pkg-file) "Create the foo-pkg.el file for single-file packages." - (let* ((name (package-desc-name pkg-desc)) - (pkg-file (expand-file-name (package--description-file pkg-dir) - pkg-dir))) + (let* ((name (package-desc-name pkg-desc))) (let ((print-level nil) (print-quoted t) (print-length nil)) @@ -714,25 +769,15 @@ untar into a directory named DIR; otherwise, signal an error." (list (car elt) (package-version-join (cadr elt)))) requires)))) - (let ((alist (package-desc-extras pkg-desc)) - flat) - (while alist - (let* ((pair (pop alist)) - (key (car pair)) - (val (cdr pair))) - ;; Don't bother ‘quote’ing ‘key’; it is always a keyword. - (push key flat) - (push (if (and (not (consp val)) - (or (keywordp val) - (not (symbolp val)) - (memq val '(nil t)))) - val - `',val) - flat))) - (nreverse flat)))) + (package--alist-to-plist-args + (package-desc-extras pkg-desc)))) "\n") nil pkg-file nil 'silent)))) +(defun package--alist-to-plist-args (alist) + (mapcar 'macroexp-quote + (apply #'nconc + (mapcar (lambda (pair) (list (car pair) (cdr pair))) alist)))) (defun package-unpack (pkg-desc) "Install the contents of the current buffer as a package." (let* ((name (package-desc-name pkg-desc)) @@ -764,9 +809,10 @@ untar into a directory named DIR; otherwise, signal an error." (defun package--make-autoloads-and-stuff (pkg-desc pkg-dir) "Generate autoloads, description file, etc.. for PKG-DESC installed at PKG-DIR." (package-generate-autoloads (package-desc-name pkg-desc) pkg-dir) - (let ((desc-file (package--description-file pkg-dir))) + (let ((desc-file (expand-file-name (package--description-file pkg-dir) + pkg-dir))) (unless (file-exists-p desc-file) - (package-generate-description-file pkg-desc pkg-dir))) + (package-generate-description-file pkg-desc desc-file))) ;; FIXME: Create foo.info and dir file from foo.texi? ) @@ -811,13 +857,24 @@ buffer is killed afterwards. Return the last value in BODY." cipher-algorithm digest-algorithm compress-algorithm)) -(declare-function epg-context-set-home-directory "epg" (context directory)) (declare-function epg-verify-string "epg" (context signature &optional signed-text)) (declare-function epg-context-result-for "epg" (context name)) (declare-function epg-signature-status "epg" (signature)) (declare-function epg-signature-to-string "epg" (signature)) +(defun package--display-verify-error (context sig-file) + (unless (equal (epg-context-error-output context) "") + (with-output-to-temp-buffer "*Error*" + (with-current-buffer standard-output + (if (epg-context-result-for context 'verify) + (insert (format "Failed to verify signature %s:\n" sig-file) + (mapconcat #'epg-signature-to-string + (epg-context-result-for context 'verify) + "\n")) + (insert (format "Error while verifying signature %s:\n" sig-file))) + (insert "\nCommand output:\n" (epg-context-error-output context)))))) + (defun package--check-signature (location file) "Check signature of the current buffer. GnuPG keyring is located under \"gnupg\" in `package-user-dir'." @@ -826,8 +883,12 @@ GnuPG keyring is located under \"gnupg\" in `package-user-dir'." (sig-file (concat file ".sig")) (sig-content (package--with-work-buffer location sig-file (buffer-string)))) - (epg-context-set-home-directory context homedir) - (epg-verify-string context sig-content (buffer-string)) + (setf (epg-context-home-directory context) homedir) + (condition-case error + (epg-verify-string context sig-content (buffer-string)) + (error + (package--display-verify-error context sig-file) + (signal (car error) (cdr error)))) (let (good-signatures had-fatal-error) ;; The .sig file may contain multiple signatures. Success if one ;; of the signatures is good. @@ -841,12 +902,10 @@ GnuPG keyring is located under \"gnupg\" in `package-user-dir'." (unless (and (eq package-check-signature 'allow-unsigned) (eq (epg-signature-status sig) 'no-pubkey)) (setq had-fatal-error t)))) - (if (and (null good-signatures) had-fatal-error) - (error "Failed to verify signature %s: %S" - sig-file - (mapcar #'epg-signature-to-string - (epg-context-result-for context 'verify))) - good-signatures)))) + (when (and (null good-signatures) had-fatal-error) + (package--display-verify-error context sig-file) + (error "Failed to verify signature %s" sig-file)) + good-signatures))) (defun package-install-from-archive (pkg-desc) "Download and install a tar package." @@ -1303,8 +1362,9 @@ similar to an entry in `package-alist'. Save the cached copy to (setq file (expand-file-name file)) (let ((context (epg-make-context 'OpenPGP)) (homedir (expand-file-name "gnupg" package-user-dir))) - (make-directory homedir t) - (epg-context-set-home-directory context homedir) + (with-file-modes 448 + (make-directory homedir t)) + (setf (epg-context-home-directory context) homedir) (message "Importing %s..." (file-name-nondirectory file)) (epg-import-keys-from-file context file) (message "Importing %s...done" (file-name-nondirectory file)))) @@ -1320,12 +1380,12 @@ makes them available for download." (make-directory package-user-dir t)) (let ((default-keyring (expand-file-name "package-keyring.gpg" data-directory))) - (if (file-exists-p default-keyring) - (condition-case-unless-debug error - (progn - (epg-check-configuration (epg-configuration)) - (package-import-keyring default-keyring)) - (error (message "Cannot import default keyring: %S" (cdr error)))))) + (when (and package-check-signature (file-exists-p default-keyring)) + (condition-case-unless-debug error + (progn + (epg-check-configuration (epg-configuration)) + (package-import-keyring default-keyring)) + (error (message "Cannot import default keyring: %S" (cdr error)))))) (dolist (archive package-archives) (condition-case-unless-debug nil (package--download-one-archive archive "archive-contents") @@ -1649,7 +1709,7 @@ Letters do not insert themselves; instead, they are commands. \\{package-menu-mode-map}" (setq tabulated-list-format `[("Package" 18 package-menu--name-predicate) - ("Version" 12 nil) + ("Version" 13 nil) ("Status" 10 package-menu--status-predicate) ,@(if (cdr package-archives) '(("Archive" 10 package-menu--archive-predicate))) diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index 2cdb7b4987e..753cd3005e6 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el @@ -68,6 +68,8 @@ (defconst pcase--dontcare-upats '(t _ pcase--dontcare)) +(defvar pcase--dontwarn-upats '(pcase--dontcare)) + (def-edebug-spec pcase-UPAT (&or symbolp @@ -100,26 +102,31 @@ UPatterns can take the following forms: SYMBOL matches anything and binds it to SYMBOL. (or UPAT...) matches if any of the patterns matches. (and UPAT...) matches if all the patterns match. + 'VAL matches if the object is `equal' to VAL `QPAT matches if the QPattern QPAT matches. - (pred PRED) matches if PRED applied to the object returns non-nil. + (pred FUN) matches if FUN applied to the object returns non-nil. (guard BOOLEXP) matches if BOOLEXP evaluates to non-nil. (let UPAT EXP) matches if EXP matches UPAT. + (app FUN UPAT) matches if FUN applied to the object matches UPAT. If a SYMBOL is used twice in the same pattern (i.e. the pattern is \"non-linear\"), then the second occurrence is turned into an `eq'uality test. QPatterns can take the following forms: - (QPAT1 . QPAT2) matches if QPAT1 matches the car and QPAT2 the cdr. - ,UPAT matches if the UPattern UPAT matches. - STRING matches if the object is `equal' to STRING. - ATOM matches if the object is `eq' to ATOM. -QPatterns for vectors are not implemented yet. + (QPAT1 . QPAT2) matches if QPAT1 matches the car and QPAT2 the cdr. + [QPAT1 QPAT2..QPATn] matches a vector of length n and QPAT1..QPATn match + its 0..(n-1)th elements, respectively. + ,UPAT matches if the UPattern UPAT matches. + STRING matches if the object is `equal' to STRING. + ATOM matches if the object is `eq' to ATOM. -PRED can take the form - FUNCTION in which case it gets called with one argument. - (FUN ARG1 .. ARGN) in which case it gets called with an N+1'th argument +FUN can take the form + SYMBOL or (lambda ARGS BODY) in which case it's called with one argument. + (F ARG1 .. ARGn) in which case F gets called with an n+1'th argument which is the value being matched. -A PRED of the form FUNCTION is equivalent to one of the form (FUNCTION). -PRED patterns can refer to variables bound earlier in the pattern. +So a FUN of the form SYMBOL is equivalent to one of the form (FUN). +FUN can refer to variables bound earlier in the pattern. +FUN is assumed to be pure, i.e. it can be dropped if its result is not used, +and two identical calls can be merged into one. E.g. you can match pairs where the cdr is larger than the car with a pattern like `(,a . ,(pred (< a))) or, with more checks: `(,(and a (pred numberp)) . ,(and (pred numberp) (pred (< a))))" @@ -147,6 +154,16 @@ like `(,a . ,(pred (< a))) or, with more checks: ;; (puthash (car cases) `(,exp ,cases ,@expansion) pcase--memoize-2) expansion)))) +;;;###autoload +(defmacro pcase-exhaustive (exp &rest cases) + "The exhaustive version of `pcase' (which see)." + (declare (indent 1) (debug pcase)) + (let* ((x (make-symbol "x")) + (pcase--dontwarn-upats (cons x pcase--dontwarn-upats))) + (pcase--expand + ;; FIXME: Could we add the FILE:LINE data in the error message? + exp (append cases `((,x (error "No clause matching `%S'" ,x))))))) + (defun pcase--let* (bindings body) (cond ((null bindings) (macroexp-progn body)) @@ -265,7 +282,7 @@ of the form (UPAT EXP)." (main (pcase--u (mapcar (lambda (case) - `((match ,val . ,(car case)) + `(,(pcase--match val (pcase--macroexpand (car case))) ,(lambda (vars) (unless (memq case used-cases) ;; Keep track of the cases that are used. @@ -279,10 +296,50 @@ of the form (UPAT EXP)." vars)))) cases)))) (dolist (case cases) - (unless (or (memq case used-cases) (eq (car case) 'pcase--dontcare)) + (unless (or (memq case used-cases) + (memq (car case) pcase--dontwarn-upats)) (message "Redundant pcase pattern: %S" (car case)))) (macroexp-let* defs main)))) +(defun pcase--macroexpand (pat) + "Expands all macro-patterns in PAT." + (let ((head (car-safe pat))) + (cond + ((null head) + (if (pcase--self-quoting-p pat) `',pat pat)) + ((memq head '(pred guard quote)) pat) + ((memq head '(or and)) `(,head ,@(mapcar #'pcase--macroexpand (cdr pat)))) + ((eq head 'let) `(let ,(pcase--macroexpand (cadr pat)) ,@(cddr pat))) + ((eq head 'app) `(app ,(nth 1 pat) ,(pcase--macroexpand (nth 2 pat)))) + (t + (let* ((expander (get head 'pcase-macroexpander)) + (npat (if expander (apply expander (cdr pat))))) + (if (null npat) + (error (if expander + "Unexpandable %s pattern: %S" + "Unknown %s pattern: %S") + head pat) + (pcase--macroexpand npat))))))) + +;;;###autoload +(defmacro pcase-defmacro (name args &rest body) + "Define a pcase UPattern macro." + (declare (indent 2) (debug (def-name sexp def-body)) (doc-string 3)) + `(put ',name 'pcase-macroexpander + (lambda ,args ,@body))) + +(defun pcase--match (val upat) + "Build a MATCH structure, hoisting all `or's and `and's outside." + (cond + ;; Hoist or/and patterns into or/and matches. + ((memq (car-safe upat) '(or and)) + `(,(car upat) + ,@(mapcar (lambda (upat) + (pcase--match val upat)) + (cdr upat)))) + (t + `(match ,val . ,upat)))) + (defun pcase-codegen (code vars) ;; Don't use let*, otherwise macroexp-let* may merge it with some surrounding ;; let* which might prevent the setcar/setcdr in pcase--expand's fancy @@ -306,11 +363,6 @@ of the form (UPAT EXP)." ((eq then :pcase--dontcare) (debug) else) ;Can/should this ever happen? (t (macroexp-if test then else)))) -(defun pcase--upat (qpattern) - (cond - ((eq (car-safe qpattern) '\,) (cadr qpattern)) - (t (list '\` qpattern)))) - ;; Note about MATCH: ;; When we have patterns like `(PAT1 . PAT2), after performing the `consp' ;; check, we want to turn all the similar patterns into ones of the form @@ -383,21 +435,12 @@ MATCH is the pattern that needs to be matched, of the form: (defun pcase--split-match (sym splitter match) (cond - ((eq (car match) 'match) + ((eq (car-safe match) 'match) (if (not (eq sym (cadr match))) (cons match match) - (let ((pat (cddr match))) - (cond - ;; Hoist `or' and `and' patterns to `or' and `and' matches. - ((memq (car-safe pat) '(or and)) - (pcase--split-match sym splitter - (cons (car pat) - (mapcar (lambda (alt) - `(match ,sym . ,alt)) - (cdr pat))))) - (t (let ((res (funcall splitter (cddr match)))) - (cons (or (car res) match) (or (cdr res) match)))))))) - ((memq (car match) '(or and)) + (let ((res (funcall splitter (cddr match)))) + (cons (or (car res) match) (or (cdr res) match))))) + ((memq (car-safe match) '(or and)) (let ((then-alts '()) (else-alts '()) (neutral-elem (if (eq 'or (car match)) @@ -417,6 +460,7 @@ MATCH is the pattern that needs to be matched, of the form: ((null else-alts) neutral-elem) ((null (cdr else-alts)) (car else-alts)) (t (cons (car match) (nreverse else-alts))))))) + ((memq match '(:pcase--succeed :pcase--fail)) (cons match match)) (t (error "Uknown MATCH %s" match)))) (defun pcase--split-rest (sym splitter rest) @@ -433,27 +477,13 @@ MATCH is the pattern that needs to be matched, of the form: (push (cons (cdr split) code&vars) else-rest)))) (cons (nreverse then-rest) (nreverse else-rest)))) -(defun pcase--split-consp (syma symd pat) - (cond - ;; A QPattern for a cons, can only go the `then' side. - ((and (eq (car-safe pat) '\`) (consp (cadr pat))) - (let ((qpat (cadr pat))) - (cons `(and (match ,syma . ,(pcase--upat (car qpat))) - (match ,symd . ,(pcase--upat (cdr qpat)))) - :pcase--fail))) - ;; A QPattern but not for a cons, can only go to the `else' side. - ((eq (car-safe pat) '\`) '(:pcase--fail . nil)) - ((and (eq (car-safe pat) 'pred) - (pcase--mutually-exclusive-p #'consp (cadr pat))) - '(:pcase--fail . nil)))) - (defun pcase--split-equal (elem pat) (cond ;; The same match will give the same result. - ((and (eq (car-safe pat) '\`) (equal (cadr pat) elem)) + ((and (eq (car-safe pat) 'quote) (equal (cadr pat) elem)) '(:pcase--succeed . :pcase--fail)) ;; A different match will fail if this one succeeds. - ((and (eq (car-safe pat) '\`) + ((and (eq (car-safe pat) 'quote) ;; (or (integerp (cadr pat)) (symbolp (cadr pat)) ;; (consp (cadr pat))) ) @@ -467,6 +497,7 @@ MATCH is the pattern that needs to be matched, of the form: '(:pcase--fail . nil)))))) (defun pcase--split-member (elems pat) + ;; FIXME: The new pred-based member code doesn't do these optimizations! ;; Based on pcase--split-equal. (cond ;; The same match (or a match of membership in a superset) will @@ -474,10 +505,10 @@ MATCH is the pattern that needs to be matched, of the form: ;; (??? ;; '(:pcase--succeed . nil)) ;; A match for one of the elements may succeed or fail. - ((and (eq (car-safe pat) '\`) (member (cadr pat) elems)) + ((and (eq (car-safe pat) 'quote) (member (cadr pat) elems)) nil) ;; A different match will fail if this one succeeds. - ((and (eq (car-safe pat) '\`) + ((and (eq (car-safe pat) 'quote) ;; (or (integerp (cadr pat)) (symbolp (cadr pat)) ;; (consp (cadr pat))) ) @@ -508,7 +539,7 @@ MATCH is the pattern that needs to be matched, of the form: ((and (eq 'pred (car upat)) (let ((otherpred (cond ((eq 'pred (car-safe pat)) (cadr pat)) - ((not (eq '\` (car-safe pat))) nil) + ((not (eq 'quote (car-safe pat))) nil) ((consp (cadr pat)) #'consp) ((vectorp (cadr pat)) #'vectorp) ((byte-code-function-p (cadr pat)) @@ -516,7 +547,7 @@ MATCH is the pattern that needs to be matched, of the form: (pcase--mutually-exclusive-p (cadr upat) otherpred))) '(:pcase--fail . nil)) ((and (eq 'pred (car upat)) - (eq '\` (car-safe pat)) + (eq 'quote (car-safe pat)) (symbolp (cadr upat)) (or (symbolp (cadr pat)) (stringp (cadr pat)) (numberp (cadr pat))) (get (cadr upat) 'side-effect-free) @@ -538,10 +569,71 @@ MATCH is the pattern that needs to be matched, of the form: (defun pcase--self-quoting-p (upat) (or (keywordp upat) (numberp upat) (stringp upat))) +(defun pcase--app-subst-match (match sym fun nsym) + (cond + ((eq (car-safe match) 'match) + (if (and (eq sym (cadr match)) + (eq 'app (car-safe (cddr match))) + (equal fun (nth 1 (cddr match)))) + (pcase--match nsym (nth 2 (cddr match))) + match)) + ((memq (car-safe match) '(or and)) + `(,(car match) + ,@(mapcar (lambda (match) + (pcase--app-subst-match match sym fun nsym)) + (cdr match)))) + ((memq match '(:pcase--succeed :pcase--fail)) match) + (t (error "Uknown MATCH %s" match)))) + +(defun pcase--app-subst-rest (rest sym fun nsym) + (mapcar (lambda (branch) + `(,(pcase--app-subst-match (car branch) sym fun nsym) + ,@(cdr branch))) + rest)) + (defsubst pcase--mark-used (sym) ;; Exceptionally, `sym' may be a constant expression rather than a symbol. (if (symbolp sym) (put sym 'pcase-used t))) +(defmacro pcase--flip (fun arg1 arg2) + "Helper function, used internally to avoid (funcall (lambda ...) ...)." + (declare (debug (sexp body))) + `(,fun ,arg2 ,arg1)) + +(defun pcase--funcall (fun arg vars) + "Build a function call to FUN with arg ARG." + (if (symbolp fun) + `(,fun ,arg) + (let* (;; `vs' is an upper bound on the vars we need. + (vs (pcase--fgrep (mapcar #'car vars) fun)) + (env (mapcar (lambda (var) + (list var (cdr (assq var vars)))) + vs)) + (call (progn + (when (memq arg vs) + ;; `arg' is shadowed by `env'. + (let ((newsym (make-symbol "x"))) + (push (list newsym arg) env) + (setq arg newsym))) + (if (functionp fun) + `(funcall #',fun ,arg) + `(,@fun ,arg))))) + (if (null vs) + call + ;; Let's not replace `vars' in `fun' since it's + ;; too difficult to do it right, instead just + ;; let-bind `vars' around `fun'. + `(let* ,env ,call))))) + +(defun pcase--eval (exp vars) + "Build an expression that will evaluate EXP." + (let* ((found (assq exp vars))) + (if found (cdr found) + (let* ((vs (pcase--fgrep (mapcar #'car vars) exp)) + (env (mapcar (lambda (v) (list v (cdr (assq v vars)))) + vs))) + (if env (macroexp-let* env exp) exp))))) + ;; It's very tempting to use `pcase' below, tho obviously, it'd create ;; bootstrapping problems. (defun pcase--u1 (matches code vars rest) @@ -563,22 +655,26 @@ Otherwise, it defers to REST which is a list of branches of the form ((eq 'or (caar matches)) (let* ((alts (cdar matches)) (var (if (eq (caar alts) 'match) (cadr (car alts)))) - (simples '()) (others '())) + (simples '()) (others '()) (memq-ok t)) (when var (dolist (alt alts) (if (and (eq (car alt) 'match) (eq var (cadr alt)) (let ((upat (cddr alt))) - (and (eq (car-safe upat) '\`) - (or (integerp (cadr upat)) (symbolp (cadr upat)) - (stringp (cadr upat)))))) - (push (cddr alt) simples) + (eq (car-safe upat) 'quote))) + (let ((val (cadr (cddr alt)))) + (unless (or (integerp val) (symbolp val)) + (setq memq-ok nil)) + (push (cadr (cddr alt)) simples)) (push alt others)))) (cond ((null alts) (error "Please avoid it") (pcase--u rest)) + ;; Yes, we can use `memq' (or `member')! ((> (length simples) 1) - ;; De-hoist the `or' MATCH into an `or' pattern that will be - ;; turned into a `memq' below. - (pcase--u1 (cons `(match ,var or . ,(nreverse simples)) (cdr matches)) + (pcase--u1 (cons `(match ,var + . (pred (pcase--flip + ,(if memq-ok #'memq #'member) + ',simples))) + (cdr matches)) code vars (if (null others) rest (cons (cons @@ -612,35 +708,11 @@ Otherwise, it defers to REST which is a list of branches of the form sym (lambda (pat) (pcase--split-pred vars upat pat)) rest)) (then-rest (car splitrest)) (else-rest (cdr splitrest))) - (pcase--if (if (and (eq (car upat) 'pred) (symbolp (cadr upat))) - `(,(cadr upat) ,sym) - (let* ((exp (cadr upat)) - ;; `vs' is an upper bound on the vars we need. - (vs (pcase--fgrep (mapcar #'car vars) exp)) - (env (mapcar (lambda (var) - (list var (cdr (assq var vars)))) - vs)) - (call (if (eq 'guard (car upat)) - exp - (when (memq sym vs) - ;; `sym' is shadowed by `env'. - (let ((newsym (make-symbol "x"))) - (push (list newsym sym) env) - (setq sym newsym))) - (if (functionp exp) - `(funcall #',exp ,sym) - `(,@exp ,sym))))) - (if (null vs) - call - ;; Let's not replace `vars' in `exp' since it's - ;; too difficult to do it right, instead just - ;; let-bind `vars' around `exp'. - `(let* ,env ,call)))) + (pcase--if (if (eq (car upat) 'pred) + (pcase--funcall (cadr upat) sym vars) + (pcase--eval (cadr upat) vars)) (pcase--u1 matches code vars then-rest) (pcase--u else-rest)))) - ((pcase--self-quoting-p upat) - (pcase--mark-used sym) - (pcase--q1 sym upat matches code vars rest)) ((symbolp upat) (pcase--mark-used sym) (if (not (assq upat vars)) @@ -655,57 +727,41 @@ Otherwise, it defers to REST which is a list of branches of the form ;; (cons (cons (nth 1 upat) (nth 2 upat)) vars) rest) (macroexp-let2 macroexp-copyable-p sym - (let* ((exp (nth 2 upat)) - (found (assq exp vars))) - (if found (cdr found) - (let* ((vs (pcase--fgrep (mapcar #'car vars) exp)) - (env (mapcar (lambda (v) (list v (cdr (assq v vars)))) - vs))) - (if env (macroexp-let* env exp) exp)))) - (pcase--u1 (cons `(match ,sym . ,(nth 1 upat)) matches) + (pcase--eval (nth 2 upat) vars) + (pcase--u1 (cons (pcase--match sym (nth 1 upat)) matches) code vars rest))) - ((eq (car-safe upat) '\`) + ((eq (car-safe upat) 'app) + ;; A upat of the form (app FUN UPAT) (pcase--mark-used sym) - (pcase--q1 sym (cadr upat) matches code vars rest)) - ((eq (car-safe upat) 'or) - (let ((all (> (length (cdr upat)) 1)) - (memq-fine t)) - (when all - (dolist (alt (cdr upat)) - (unless (if (pcase--self-quoting-p alt) - (progn - (unless (or (symbolp alt) (integerp alt)) - (setq memq-fine nil)) - t) - (and (eq (car-safe alt) '\`) - (or (symbolp (cadr alt)) (integerp (cadr alt)) - (setq memq-fine nil) - (stringp (cadr alt))))) - (setq all nil)))) - (if all - ;; Use memq for (or `a `b `c `d) rather than a big tree. - (let* ((elems (mapcar (lambda (x) (if (consp x) (cadr x) x)) - (cdr upat))) - (splitrest - (pcase--split-rest - sym (lambda (pat) (pcase--split-member elems pat)) rest)) - (then-rest (car splitrest)) - (else-rest (cdr splitrest))) - (pcase--mark-used sym) - (pcase--if `(,(if memq-fine #'memq #'member) ,sym ',elems) - (pcase--u1 matches code vars then-rest) - (pcase--u else-rest))) - (pcase--u1 (cons `(match ,sym ,@(cadr upat)) matches) code vars - (append (mapcar (lambda (upat) - `((and (match ,sym . ,upat) ,@matches) - ,code ,@vars)) - (cddr upat)) - rest))))) - ((eq (car-safe upat) 'and) - (pcase--u1 (append (mapcar (lambda (upat) `(match ,sym ,@upat)) - (cdr upat)) - matches) - code vars rest)) + (let* ((fun (nth 1 upat)) + (nsym (make-symbol "x")) + (body + ;; We don't change `matches' to reuse the newly computed value, + ;; because we assume there shouldn't be such redundancy in there. + (pcase--u1 (cons (pcase--match nsym (nth 2 upat)) matches) + code vars + (pcase--app-subst-rest rest sym fun nsym)))) + (if (not (get nsym 'pcase-used)) + body + (macroexp-let* + `((,nsym ,(pcase--funcall fun sym vars))) + body)))) + ((eq (car-safe upat) 'quote) + (pcase--mark-used sym) + (let* ((val (cadr upat)) + (splitrest (pcase--split-rest + sym (lambda (pat) (pcase--split-equal val pat)) rest)) + (then-rest (car splitrest)) + (else-rest (cdr splitrest))) + (pcase--if (cond + ((null val) `(null ,sym)) + ((or (integerp val) (symbolp val)) + (if (pcase--self-quoting-p val) + `(eq ,sym ,val) + `(eq ,sym ',val))) + (t `(equal ,sym ',val))) + (pcase--u1 matches code vars then-rest) + (pcase--u else-rest)))) ((eq (car-safe upat) 'not) ;; FIXME: The implementation below is naive and results in ;; inefficient code. @@ -727,57 +783,25 @@ Otherwise, it defers to REST which is a list of branches of the form (pcase--u rest)) vars (list `((and . ,matches) ,code . ,vars)))) - (t (error "Unknown upattern `%s'" upat))))) - (t (error "Incorrect MATCH %s" (car matches))))) + (t (error "Unknown internal pattern `%S'" upat))))) + (t (error "Incorrect MATCH %S" (car matches))))) -(defun pcase--q1 (sym qpat matches code vars rest) - "Return code that runs CODE if SYM matches QPAT and if MATCHES match. -Otherwise, it defers to REST which is a list of branches of the form -\(OTHER_MATCH OTHER-CODE . OTHER-VARS)." +(pcase-defmacro \` (qpat) (cond - ((eq (car-safe qpat) '\,) (error "Can't use `,UPATTERN")) - ((floatp qpat) (error "Floating point patterns not supported")) + ((eq (car-safe qpat) '\,) (cadr qpat)) ((vectorp qpat) - ;; FIXME. - (error "Vector QPatterns not implemented yet")) + `(and (pred vectorp) + (app length ,(length qpat)) + ,@(let ((upats nil)) + (dotimes (i (length qpat)) + (push `(app (pcase--flip aref ,i) ,(list '\` (aref qpat i))) + upats)) + (nreverse upats)))) ((consp qpat) - (let* ((syma (make-symbol "xcar")) - (symd (make-symbol "xcdr")) - (splitrest (pcase--split-rest - sym - (lambda (pat) (pcase--split-consp syma symd pat)) - rest)) - (then-rest (car splitrest)) - (else-rest (cdr splitrest)) - (then-body (pcase--u1 `((match ,syma . ,(pcase--upat (car qpat))) - (match ,symd . ,(pcase--upat (cdr qpat))) - ,@matches) - code vars then-rest))) - (pcase--if - `(consp ,sym) - ;; We want to be careful to only add bindings that are used. - ;; The byte-compiler could do that for us, but it would have to pay - ;; attention to the `consp' test in order to figure out that car/cdr - ;; can't signal errors and our byte-compiler is not that clever. - ;; FIXME: Some of those let bindings occur too early (they are used in - ;; `then-body', but only within some sub-branch). - (macroexp-let* - `(,@(if (get syma 'pcase-used) `((,syma (car ,sym)))) - ,@(if (get symd 'pcase-used) `((,symd (cdr ,sym))))) - then-body) - (pcase--u else-rest)))) - ((or (integerp qpat) (symbolp qpat) (stringp qpat)) - (let* ((splitrest (pcase--split-rest - sym (lambda (pat) (pcase--split-equal qpat pat)) rest)) - (then-rest (car splitrest)) - (else-rest (cdr splitrest))) - (pcase--if (cond - ((stringp qpat) `(equal ,sym ,qpat)) - ((null qpat) `(null ,sym)) - (t `(eq ,sym ',qpat))) - (pcase--u1 matches code vars then-rest) - (pcase--u else-rest)))) - (t (error "Unknown QPattern %s" qpat)))) + `(and (pred consp) + (app car ,(list '\` (car qpat))) + (app cdr ,(list '\` (cdr qpat))))) + ((or (stringp qpat) (integerp qpat) (symbolp qpat)) `',qpat))) (provide 'pcase) diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el index dd012fab9da..c18b049020a 100644 --- a/lisp/emacs-lisp/pp.el +++ b/lisp/emacs-lisp/pp.el @@ -137,7 +137,7 @@ Also add the value to the front of the list in the variable `values'." "Macroexpand EXPRESSION and pretty-print its value." (interactive (list (read--expression "Macroexpand: "))) - (pp-display-expression (macroexpand expression) "*Pp Macroexpand Output*")) + (pp-display-expression (macroexpand-1 expression) "*Pp Macroexpand Output*")) (defun pp-last-sexp () "Read sexp before point. Ignores leading comment characters." @@ -175,7 +175,7 @@ With argument, pretty-print output into current buffer. Ignores leading comment characters." (interactive "P") (if arg - (insert (pp-to-string (macroexpand (pp-last-sexp)))) + (insert (pp-to-string (macroexpand-1 (pp-last-sexp)))) (pp-macroexpand-expression (pp-last-sexp)))) ;;; Test cases for quote diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el new file mode 100644 index 00000000000..01a3bd3fc50 --- /dev/null +++ b/lisp/emacs-lisp/seq.el @@ -0,0 +1,269 @@ +;;; seq.el --- Sequence manipulation functions -*- lexical-binding: t -*- + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Nicolas Petton +;; Keywords: sequences +;; Version: 1.0 + +;; Maintainer: emacs-devel@gnu.org + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; Sequence-manipulation functions that complement basic functions +;; provided by subr.el. +;; +;; All functions are prefixed with "seq-". +;; +;; All provided functions work on lists, strings and vectors. +;; +;; Functions taking a predicate or a function iterating over the +;; sequence as argument take the function as their first argument and +;; the sequence as their second argument. All other functions take +;; the sequence as their first argument. +;; +;; All functions are tested in test/automated/seq-tests.el + +;;; Code: + +(defmacro seq-doseq (spec &rest body) + "Loop over a sequence. +Similar to `dolist' but can be applied lists, strings and vectors. + +Evaluate BODY with VAR bound to each element of SEQ, in turn. +Then evaluate RESULT to get return value, default nil. + +\(fn (VAR SEQ [RESULT]) BODY...)" + (declare (indent 1) (debug ((symbolp form &optional form) body))) + (let ((is-list (make-symbol "is-list")) + (seq (make-symbol "seq")) + (index (make-symbol "index"))) + `(let* ((,seq ,(cadr spec)) + (,is-list (listp ,seq)) + (,index (if ,is-list ,seq 0))) + (while (if ,is-list + (consp ,index) + (< ,index (seq-length ,seq))) + (let ((,(car spec) (if ,is-list + (car ,index) + (seq-elt ,seq ,index)))) + ,@body + (setq ,index (if ,is-list + (cdr ,index) + (+ ,index 1))))) + ,@(if (cddr spec) + `((setq ,(car spec) nil) ,@(cddr spec)))))) + +(defun seq-drop (seq n) + "Return a subsequence of SEQ without its first N elements. +The result is a sequence of the same type as SEQ. + +If N is a negative integer or zero, SEQ is returned." + (if (<= n 0) + seq + (if (listp seq) + (seq--drop-list seq n) + (let ((length (seq-length seq))) + (seq-subseq seq (min n length) length))))) + +(defun seq-take (seq n) + "Return a subsequence of SEQ with its first N elements. +The result is a sequence of the same type as SEQ. + +If N is a negative integer or zero, an empty sequence is +returned." + (if (listp seq) + (seq--take-list seq n) + (seq-subseq seq 0 (min (max n 0) (seq-length seq))))) + +(defun seq-drop-while (pred seq) + "Return a sequence, from the first element for which (PRED element) is nil, of SEQ. +The result is a sequence of the same type as SEQ." + (if (listp seq) + (seq--drop-while-list pred seq) + (seq-drop seq (seq--count-successive pred seq)))) + +(defun seq-take-while (pred seq) + "Return a sequence of the successive elements for which (PRED element) is non-nil in SEQ. +The result is a sequence of the same type as SEQ." + (if (listp seq) + (seq--take-while-list pred seq) + (seq-take seq (seq--count-successive pred seq)))) + +(defun seq-filter (pred seq) + "Return a list of all the elements for which (PRED element) is non-nil in SEQ." + (let ((exclude (make-symbol "exclude"))) + (delq exclude (seq-map (lambda (elt) + (if (funcall pred elt) + elt + exclude)) + seq)))) + +(defun seq-remove (pred seq) + "Return a list of all the elements for which (PRED element) is nil in SEQ." + (seq-filter (lambda (elt) (not (funcall pred elt))) + seq)) + +(defun seq-reduce (function seq initial-value) + "Reduce the function FUNCTION across SEQ, starting with INITIAL-VALUE. + +Return the result of calling FUNCTION with INITIAL-VALUE and the +first element of SEQ, then calling FUNCTION with that result and +the second element of SEQ, then with that result and the third +element of SEQ, etc. + +If SEQ is empty, return INITIAL-VALUE and FUNCTION is not called." + (if (seq-empty-p seq) + initial-value + (let ((acc initial-value)) + (seq-doseq (elt seq) + (setq acc (funcall function acc elt))) + acc))) + +(defun seq-some-p (pred seq) + "Return any element for which (PRED element) is non-nil in SEQ, nil otherwise." + (catch 'seq--break + (seq-doseq (elt seq) + (when (funcall pred elt) + (throw 'seq--break elt))) + nil)) + +(defun seq-every-p (pred seq) + "Return non-nil if (PRED element) is non-nil for all elements of the sequence SEQ." + (catch 'seq--break + (seq-doseq (elt seq) + (or (funcall pred elt) + (throw 'seq--break nil))) + t)) + +(defun seq-count (pred seq) + "Return the number of elements for which (PRED element) returns non-nil in seq." + (let ((count 0)) + (seq-doseq (elt seq) + (when (funcall pred elt) + (setq count (+ 1 count)))) + count)) + +(defun seq-empty-p (seq) + "Return non-nil if the sequence SEQ is empty, nil otherwise." + (if (listp seq) + (null seq) + (= 0 (seq-length seq)))) + +(defun seq-sort (pred seq) + "Return a sorted sequence comparing using PRED the elements of SEQ. +The result is a sequence of the same type as SEQ." + (if (listp seq) + (sort (seq-copy seq) pred) + (let ((result (seq-sort pred (append seq nil)))) + (cond ((stringp seq) (concat result)) + ((vectorp seq) (vconcat result)) + (t (error "Unsupported sequence: %s" seq)))))) + +(defun seq-contains-p (seq elt &optional testfn) + "Return the first element in SEQ that equals to ELT. +Equality is defined by TESTFN if non-nil or by `equal' if nil." + (seq-some-p (lambda (e) + (funcall (or testfn #'equal) elt e)) + seq)) + +(defun seq-uniq (seq &optional testfn) + "Return a list of the elements of SEQ with duplicates removed. +TESTFN is used to compare elements, or `equal' if TESTFN is nil." + (let ((result '())) + (seq-doseq (elt seq) + (unless (seq-contains-p result elt testfn) + (setq result (cons elt result)))) + (nreverse result))) + +(defun seq-subseq (seq start &optional end) + "Return the subsequence of SEQ from START to END. +If END is omitted, it defaults to the length of the sequence. +If START or END is negative, it counts from the end." + (cond ((or (stringp seq) (vectorp seq)) (substring seq start end)) + ((listp seq) + (let (len) + (and end (< end 0) (setq end (+ end (setq len (seq-length seq))))) + (if (< start 0) (setq start (+ start (or len (setq len (seq-length seq)))))) + (if (> start 0) (setq seq (nthcdr start seq))) + (if end + (let ((res nil)) + (while (>= (setq end (1- end)) start) + (push (pop seq) res)) + (nreverse res)) + (seq-copy seq)))) + (t (error "Unsupported sequence: %s" seq)))) + +(defun seq-concatenate (type &rest seqs) + "Concatenate, into a sequence of type TYPE, the sequences SEQS. +TYPE must be one of following symbols: vector, string or list. + +\n(fn TYPE SEQUENCE...)" + (pcase type + (`vector (apply #'vconcat seqs)) + (`string (apply #'concat seqs)) + (`list (apply #'append (append seqs '(nil)))) + (t (error "Not a sequence type name: %s" type)))) + +(defun seq--drop-list (list n) + "Optimized version of `seq-drop' for lists." + (while (and list (> n 0)) + (setq list (cdr list) + n (1- n))) + list) + +(defun seq--take-list (list n) + "Optimized version of `seq-take' for lists." + (let ((result '())) + (while (and list (> n 0)) + (setq n (1- n)) + (push (pop list) result)) + (nreverse result))) + +(defun seq--drop-while-list (pred list) + "Optimized version of `seq-drop-while' for lists." + (while (and list (funcall pred (car list))) + (setq list (cdr list))) + list) + +(defun seq--take-while-list (pred list) + "Optimized version of `seq-take-while' for lists." + (let ((result '())) + (while (and list (funcall pred (car list))) + (push (pop list) result)) + (nreverse result))) + +(defun seq--count-successive (pred seq) + "Return the number of successive elements for which (PRED element) is non-nil in SEQ." + (let ((n 0) + (len (seq-length seq))) + (while (and (< n len) + (funcall pred (seq-elt seq n))) + (setq n (+ 1 n))) + n)) + +(defalias 'seq-copy #'copy-sequence) +(defalias 'seq-elt #'elt) +(defalias 'seq-reverse #'reverse) +(defalias 'seq-length #'length) +(defalias 'seq-do #'mapc) +(defalias 'seq-each #'seq-do) +(defalias 'seq-map #'mapcar) + +(provide 'seq) +;;; seq.el ends here diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el index 76473b39a77..759760c7d62 100644 --- a/lisp/emacs-lisp/subr-x.el +++ b/lisp/emacs-lisp/subr-x.el @@ -47,7 +47,7 @@ last. FORMS are the expressions to be threaded." (_ (car forms)))) (defmacro thread-first (&rest forms) - "Thread FORMS elements as the first argument of their succesor. + "Thread FORMS elements as the first argument of their successor. Example: (thread-first 5 @@ -64,7 +64,7 @@ threading." `(internal--thread-argument t ,@forms)) (defmacro thread-last (&rest forms) - "Thread FORMS elements as the last argument of their succesor. + "Thread FORMS elements as the last argument of their successor. Example: (thread-last 5 @@ -118,7 +118,7 @@ threading." "Process BINDINGS and if all values are non-nil eval THEN, else ELSE. Argument BINDINGS is a list of tuples whose car is a symbol to be bound and (optionally) used in THEN, and its cadr is a sexp to be -evaled to set symbol's value. In the special case you only want +evalled to set symbol's value. In the special case you only want to bind a single value, BINDINGS can just be a plain tuple." (declare (indent 2) (debug ((&rest (symbolp form)) form body))) (when (and (<= (length bindings) 2) @@ -134,7 +134,7 @@ to bind a single value, BINDINGS can just be a plain tuple." "Process BINDINGS and if all values are non-nil eval BODY. Argument BINDINGS is a list of tuples whose car is a symbol to be bound and (optionally) used in BODY, and its cadr is a sexp to be -evaled to set symbol's value. In the special case you only want +evalled to set symbol's value. In the special case you only want to bind a single value, BINDINGS can just be a plain tuple." (declare (indent 1) (debug if-let)) (list 'if-let bindings (macroexp-progn body))) @@ -159,7 +159,7 @@ to bind a single value, BINDINGS can just be a plain tuple." "Join all STRINGS using SEPARATOR." (mapconcat 'identity strings separator)) -(define-obsolete-function-alias 'string-reverse 'reverse "24.5") +(define-obsolete-function-alias 'string-reverse 'reverse "25.1") (defsubst string-trim-left (string) "Remove leading whitespace from STRING." diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el index 3ee261aa06b..1e613c7fd4e 100644 --- a/lisp/emacs-lisp/tabulated-list.el +++ b/lisp/emacs-lisp/tabulated-list.el @@ -519,7 +519,10 @@ as the ewoc pretty-printer." (setq-local buffer-read-only t) (setq-local buffer-undo-list t) (setq-local revert-buffer-function #'tabulated-list-revert) - (setq-local glyphless-char-display tabulated-list-glyphless-char-display)) + (setq-local glyphless-char-display tabulated-list-glyphless-char-display) + ;; Avoid messing up the entries' display just because the first + ;; column of the first entry happens to begin with a R2L letter. + (setq bidi-paragraph-direction 'left-to-right)) (put 'tabulated-list-mode 'mode-class 'special) diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 7fc6bf7b920..a189d242ac4 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -125,9 +125,7 @@ of SECS seconds since the epoch. SECS may be a fraction." "Advance TIME by SECS seconds and optionally USECS microseconds and PSECS picoseconds. SECS may be either an integer or a floating point number." - (let ((delta (if (floatp secs) - (seconds-to-time secs) - (list (floor secs 65536) (mod secs 65536))))) + (let ((delta secs)) (if (or usecs psecs) (setq delta (time-add delta (list 0 0 (or usecs 0) (or psecs 0))))) (time-add time delta))) @@ -307,8 +305,8 @@ This function is called, by name, directly by the C code." ;; perhaps because Emacs was suspended for a long time, ;; limit how many times things get repeated. (if (and (numberp timer-max-repeats) - (< 0 (timer-until timer (current-time)))) - (let ((repeats (/ (timer-until timer (current-time)) + (< 0 (timer-until timer nil))) + (let ((repeats (/ (timer-until timer nil) (timer--repeat-delay timer)))) (if (> repeats timer-max-repeats) (timer-inc-time timer (* (timer--repeat-delay timer) @@ -374,13 +372,13 @@ This function returns a timer object which you can use in `cancel-timer'." ;; Handle numbers as relative times in seconds. (if (numberp time) - (setq time (timer-relative-time (current-time) time))) + (setq time (timer-relative-time nil time))) ;; Handle relative times like "2 hours 35 minutes" (if (stringp time) (let ((secs (timer-duration time))) (if secs - (setq time (timer-relative-time (current-time) secs))))) + (setq time (timer-relative-time nil secs))))) ;; Handle "11:23pm" and the like. Interpret it as meaning today ;; which admittedly is rather stupid if we have passed that time @@ -486,7 +484,7 @@ The value is a list that the debugger can pass to `with-timeout-unsuspend' when it exits, to make these timers start counting again." (mapcar (lambda (timer) (cancel-timer timer) - (list timer (time-subtract (timer--time timer) (current-time)))) + (list timer (time-subtract (timer--time timer) nil))) with-timeout-timers)) (defun with-timeout-unsuspend (timer-spec-list) @@ -495,7 +493,7 @@ The argument should be a value previously returned by `with-timeout-suspend'." (dolist (elt timer-spec-list) (let ((timer (car elt)) (delay (cadr elt))) - (timer-set-time timer (time-add (current-time) delay)) + (timer-set-time timer (time-add nil delay)) (timer-activate timer)))) (defun y-or-n-p-with-timeout (prompt seconds default-value) diff --git a/lisp/emulation/.gitignore b/lisp/emulation/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/emulation/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el index ee70071b7ec..2b4d0f6ba90 100644 --- a/lisp/emulation/cua-base.el +++ b/lisp/emulation/cua-base.el @@ -277,7 +277,7 @@ enabled." (defcustom cua-remap-control-v t "If non-nil, C-v binding is used for paste (yank). -Also, M-v is mapped to `cua-repeat-replace-region'." +Also, M-v is mapped to `delete-selection-repeat-replace-region'." :type 'boolean :group 'cua) @@ -350,6 +350,8 @@ interpreted as a register number." :group 'cua) (defcustom cua-delete-copy-to-register-0 t + ;; FIXME: Obey delete-selection-save-to-register rather than hardcoding + ;; register 0. "If non-nil, save last deleted region or rectangle to register 0." :type 'boolean :group 'cua) @@ -788,26 +790,12 @@ Repeating prefix key when region is active works as a single prefix key." ;;; Region specific commands -(defvar cua--last-deleted-region-pos nil) -(defvar cua--last-deleted-region-text nil) - (defun cua-delete-region () "Delete the active region. Save a copy in register 0 if `cua-delete-copy-to-register-0' is non-nil." (interactive) - (let ((start (mark)) (end (point))) - (or (<= start end) - (setq start (prog1 end (setq end start)))) - (setq cua--last-deleted-region-text - (funcall region-extract-function t)) - (if cua-delete-copy-to-register-0 - (set-register ?0 cua--last-deleted-region-text)) - (setq cua--last-deleted-region-pos - (cons (current-buffer) - (and (consp buffer-undo-list) - (car buffer-undo-list)))) - (cua--deactivate) - (/= start end))) + (require 'delsel) + (delete-active-region)) (defun cua-copy-region (arg) "Copy the region to the kill ring. @@ -958,48 +946,8 @@ See also `exchange-point-and-mark'." (t (let (mark-active) (exchange-point-and-mark) - (if cua--rectangle - (cua--rectangle-corner 0)))))) - -;; Typed text that replaced the highlighted region. -(defvar cua--repeat-replace-text nil) - -(defun cua-repeat-replace-region (arg) - "Repeat replacing text of highlighted region with typed text. -Searches for the next stretch of text identical to the region last -replaced by typing text over it and replaces it with the same stretch -of text." - (interactive "P") - (when cua--last-deleted-region-pos - (with-current-buffer (car cua--last-deleted-region-pos) - (save-restriction - (widen) - ;; Find the text that replaced the region via the undo list. - (let ((ul buffer-undo-list) - (elt (cdr cua--last-deleted-region-pos)) - u s e) - (when elt - (while (consp ul) - (setq u (car ul) ul (cdr ul)) - (cond - ((eq u elt) ;; got it - (setq ul nil)) - ((and (consp u) (integerp (car u)) (integerp (cdr u))) - (if (and s (= (cdr u) s)) - (setq s (car u)) - (setq s (car u) e (cdr u))))))) - (cond ((and s e (<= s e) (= s (mark t))) - (setq cua--repeat-replace-text (cua--filter-buffer-noprops s e))) - ((and (null s) (eq u elt)) ;; nothing inserted - (setq cua--repeat-replace-text - "")) - (t - (message "Cannot locate replacement text")))))) - (setq cua--last-deleted-region-pos nil)) - (if (and cua--last-deleted-region-text - cua--repeat-replace-text - (search-forward cua--last-deleted-region-text nil t nil)) - (replace-match cua--repeat-replace-text arg t))) + (if cua--rectangle + (cua--rectangle-corner 0)))))) (defun cua-help-for-region (&optional help) "Show region specific help in echo area." @@ -1067,7 +1015,7 @@ With a double \\[universal-argument] prefix argument, unconditionally set mark." (or (and cua-auto-mark-last-change (cua-pop-to-last-change)) (pop-to-mark-command))) - ((and cua-toggle-set-mark mark-active) + ((and cua-toggle-set-mark (region-active-p)) (cua--deactivate) (message "Mark cleared")) (t @@ -1179,7 +1127,7 @@ If ARG is the atom `-', scroll upward by nearly full screen." (if cua--debug (cond (cua--rectangle (cua--rectangle-assert)) - (mark-active (message "Mark=%d Point=%d" (mark t) (point))))) + ((region-active-p) (message "Mark=%d Point=%d" (mark t) (point))))) (if cua-enable-cursor-indications (cua--update-indications)) @@ -1238,7 +1186,7 @@ If ARG is the atom `-', scroll upward by nearly full screen." (defun cua--select-keymaps () ;; Setup conditions for selecting the proper keymaps in cua--keymap-alist. (setq cua--ena-region-keymap - (and mark-active (not deactivate-mark))) + (and (region-active-p) (not deactivate-mark))) (setq cua--ena-prefix-override-keymap (and cua--ena-region-keymap cua-enable-cua-keys @@ -1320,7 +1268,8 @@ If ARG is the atom `-', scroll upward by nearly full screen." (define-key cua--cua-keys-keymap [(control z)] 'undo)) (when cua-remap-control-v (define-key cua--cua-keys-keymap [(control v)] 'yank) - (define-key cua--cua-keys-keymap [(meta v)] 'cua-repeat-replace-region)) + (define-key cua--cua-keys-keymap [(meta v)] + 'delete-selection-repeat-replace-region)) (define-key cua--prefix-override-keymap [(control x)] 'cua--prefix-override-handler) (define-key cua--prefix-override-keymap [(control c)] 'cua--prefix-override-handler) @@ -1359,6 +1308,7 @@ If ARG is the atom `-', scroll upward by nearly full screen." ;; delete-selection-mode (defvar cua--saved-state nil) +(defvar delete-selection-save-to-register) ;;;###autoload (define-minor-mode cua-mode @@ -1426,6 +1376,8 @@ the prefix fallback behavior." (if (and (boundp 'delete-selection-mode) delete-selection-mode) (delete-selection-mode -1))) (if cua-highlight-region-shift-only (transient-mark-mode -1)) + (if cua-delete-copy-to-register-0 + (setq delete-selection-save-to-register ?0)) (cua--deactivate)) (cua--saved-state (if (nth 0 cua--saved-state) diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el index b77b2105f64..3d6c9d62a26 100644 --- a/lisp/emulation/cua-gmrk.el +++ b/lisp/emulation/cua-gmrk.el @@ -321,7 +321,7 @@ With prefix argument, don't jump to global mark when canceling it." (defun cua-cancel-global-mark () "Cancel the global mark." (interactive) - (if mark-active + (if (region-active-p) (cua-cancel) (if (cua--global-mark-active) (cua--deactivate-global-mark t))) diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el index 31dd137a6b9..4620b0e8c0f 100644 --- a/lisp/emulation/cua-rect.el +++ b/lisp/emulation/cua-rect.el @@ -794,7 +794,7 @@ If command is repeated at same position, delete the rectangle." (make-string (- l cl0 (if (and (= le pl) (/= le lb)) 1 0)) (if cua--virtual-edges-debug ?. ?\s)) - 'face (or (get-text-property (1- s) 'face) 'default))) + 'face (or (get-text-property (max (1- s) (point-min)) 'face) 'default))) (if (/= pl le) (setq s (1- s)))) (cond diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el index 178b23e1fca..4e3b71e3104 100644 --- a/lisp/emulation/viper-util.el +++ b/lisp/emulation/viper-util.el @@ -984,7 +984,7 @@ Otherwise return the normal value." ;; macros, since it enables certain macros to be shared between X and TTY modes ;; by correctly mapping key sequences for Left/Right/... (on an ascii ;; terminal) into logical keys left, right, etc. -(defun viper-read-key () +(defun viper-read-key () ;; FIXME: Use `read-key'? (let ((overriding-local-map viper-overriding-map) (inhibit-quit t) help-char key) diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el index d1353bdc8fa..c7394e1cea5 100644 --- a/lisp/emulation/viper.el +++ b/lisp/emulation/viper.el @@ -531,6 +531,7 @@ If Viper is enabled, turn it off. Otherwise, turn it on." (if viper-mode () (setq viper-mode t) + ;; FIXME: Don't reload! (load-library "viper")) (if viper-first-time ; Important check. Prevents mix-up of startup @@ -887,6 +888,7 @@ Two differences: ;; When viper-mode is executed in such a case, it will set the major mode ;; back to fundamental-mode. (if (eq (default-value 'major-mode) 'fundamental-mode) + ;; FIXME: We should use after-change-major-mode-hook instead! (setq-default major-mode 'viper-mode)) (viper-setup-ESC-to-escape t) @@ -936,6 +938,7 @@ Two differences: (defadvice self-insert-command (around viper-self-insert-ad activate) "Ignore all self-inserting keys in the vi-state." + ;; FIXME: Use remapping? (if (and (eq viper-current-state 'vi-state) ;; Do not use called-interactively-p here. XEmacs does not have it ;; and interactive-p is just fine. diff --git a/lisp/epa-file.el b/lisp/epa-file.el index 20d34f82223..2e46cf9da24 100644 --- a/lisp/epa-file.el +++ b/lisp/epa-file.el @@ -105,9 +105,9 @@ encryption is used." (insert (if enable-multibyte-characters (string-to-multibyte string) string)) - (decode-coding-inserted-region - (point-min) (point-max) - (substring file 0 (string-match epa-file-name-regexp file)) + (decode-coding-inserted-region + (point-min) (point-max) + (substring file 0 (string-match epa-file-name-regexp file)) visit beg end replace)) (insert (epa-file--decode-coding-string string (or coding-system-for-read 'undecided))))) @@ -144,6 +144,7 @@ encryption is used." context (cons #'epa-progress-callback-function (format "Decrypting %s" file))) + (setf (epg-context-pinentry-mode context) epa-pinentry-mode) (unwind-protect (progn (if replace @@ -153,15 +154,24 @@ encryption is used." (error (if (setq entry (assoc file epa-file-passphrase-alist)) (setcdr entry nil)) - ;; Hack to prevent find-file from opening empty buffer - ;; when decryption failed (bug#6568). See the place - ;; where `find-file-not-found-functions' are called in - ;; `find-file-noselect-1'. + ;; If the decryption program can't be found, + ;; signal that as a non-file error + ;; so that find-file-noselect-1 won't handle it. + ;; Borrowed from jka-compr.el. + (if (and (eq (car error) 'file-error) + (equal (cadr error) "Searching for program")) + (error "Decryption program `%s' not found" + (nth 3 error))) (when (file-exists-p local-file) + ;; Hack to prevent find-file from opening empty buffer + ;; when decryption failed (bug#6568). See the place + ;; where `find-file-not-found-functions' are called in + ;; `find-file-noselect-1'. (setq-local epa-file-error error) (add-hook 'find-file-not-found-functions 'epa-file--find-file-not-found-function - nil t)) + nil t) + (epa-display-error context)) (signal 'file-error (cons "Opening input file" (cdr error))))) (set-buffer buf) ;In case timer/filter changed/killed it (bug#16029)! @@ -221,7 +231,8 @@ encryption is used." context (cons #'epa-progress-callback-function (format "Encrypting %s" file))) - (epg-context-set-armor context epa-armor) + (setf (epg-context-armor context) epa-armor) + (setf (epg-context-pinentry-mode context) epa-pinentry-mode) (condition-case error (setq string (epg-encrypt-string @@ -255,6 +266,7 @@ If no one is selected, symmetric encryption will be performed. " (if epa-file-encrypt-to (epg-list-keys context recipients))))) (error + (epa-display-error context) (if (setq entry (assoc file epa-file-passphrase-alist)) (setcdr entry nil)) (signal 'file-error (cons "Opening output file" (cdr error))))) diff --git a/lisp/epa.el b/lisp/epa.el index 0c833ab84d6..07a954511d1 100644 --- a/lisp/epa.el +++ b/lisp/epa.el @@ -44,6 +44,25 @@ :type 'integer :group 'epa) +(defcustom epa-pinentry-mode nil + "The pinentry mode. + +GnuPG 2.1 or later has an option to control the behavior of +Pinentry invocation. Possible modes are: `ask', `cancel', +`error', and `loopback'. See the GnuPG manual for the meanings. + +In epa commands, a particularly useful mode is `loopback', which +redirects all Pinentry queries to the caller, so Emacs can query +passphrase through the minibuffer, instead of external Pinentry +program." + :type '(choice (const nil) + (const ask) + (const cancel) + (const error) + (const loopback)) + :group 'epa + :version "25.1") + (defgroup epa-faces nil "Faces for epa-mode." :version "23.1" @@ -166,6 +185,7 @@ You should bind this variable with `let', but do not set it globally.") (defvar epa-key nil) (defvar epa-list-keys-arguments nil) (defvar epa-info-buffer nil) +(defvar epa-error-buffer nil) (defvar epa-last-coding-system-specified nil) (defvar epa-key-list-mode-map @@ -578,6 +598,34 @@ If SECRET is non-nil, list secret keys instead of public keys." (shrink-window (- (window-height) epa-info-window-height))))) (message "%s" info))) +(defun epa-display-error (context) + (unless (equal (epg-context-error-output context) "") + (let ((buffer (get-buffer-create "*Error*"))) + (save-selected-window + (unless (and epa-error-buffer (buffer-live-p epa-error-buffer)) + (setq epa-error-buffer (generate-new-buffer "*Error*"))) + (if (get-buffer-window epa-error-buffer) + (delete-window (get-buffer-window epa-error-buffer))) + (with-current-buffer buffer + (let ((inhibit-read-only t) + buffer-read-only) + (erase-buffer) + (insert (format + (pcase (epg-context-operation context) + (`decrypt "Error while decrypting with \"%s\":") + (`verify "Error while verifying with \"%s\":") + (`sign "Error while signing with \"%s\":") + (`encrypt "Error while encrypting with \"%s\":") + (`import-keys "Error while importing keys with \"%s\":") + (`export-keys "Error while exporting keys with \"%s\":") + (_ "Error while executing \"%s\":\n\n")) + epg-gpg-program) + "\n\n" + (epg-context-error-output context))) + (epa-info-mode) + (goto-char (point-min))) + (display-buffer buffer))))) + (defun epa-display-verify-result (verify-result) (declare (obsolete epa-display-info "23.1")) (epa-display-info (epg-verify-result-to-string verify-result))) @@ -593,14 +641,14 @@ If SECRET is non-nil, list secret keys instead of public keys." (eq (epg-context-operation context) 'encrypt)) (read-passwd (if (eq key-id 'PIN) - "Passphrase for PIN: " + "Passphrase for PIN: " (let ((entry (assoc key-id epg-user-id-alist))) (if entry (format "Passphrase for %s %s: " key-id (cdr entry)) (format "Passphrase for %s: " key-id))))))) (defun epa-progress-callback-function (_context what _char current total - handback) + handback) (let ((prompt (or handback (format "Processing %s: " what)))) ;; According to gnupg/doc/DETAIL: a "total" of 0 indicates that @@ -641,7 +689,11 @@ If you do not specify PLAIN-FILE, this functions prompts for the value to use." (format "Decrypting %s..." (file-name-nondirectory decrypt-file)))) (message "Decrypting %s..." (file-name-nondirectory decrypt-file)) - (epg-decrypt-file context decrypt-file plain-file) + (condition-case error + (epg-decrypt-file context decrypt-file plain-file) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Decrypting %s...wrote %s" (file-name-nondirectory decrypt-file) (file-name-nondirectory plain-file)) (if (epg-context-result-for context 'verify) @@ -662,7 +714,11 @@ If you do not specify PLAIN-FILE, this functions prompts for the value to use." (format "Verifying %s..." (file-name-nondirectory file)))) (message "Verifying %s..." (file-name-nondirectory file)) - (epg-verify-file context file plain) + (condition-case error + (epg-verify-file context file plain) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Verifying %s...done" (file-name-nondirectory file)) (if (epg-context-result-for context 'verify) (epa-display-info (epg-verify-result-to-string @@ -717,9 +773,9 @@ If no one is selected, default secret key is used. " ".p7s" ".p7m")))) (context (epg-make-context epa-protocol))) - (epg-context-set-armor context epa-armor) - (epg-context-set-textmode context epa-textmode) - (epg-context-set-signers context signers) + (setf (epg-context-armor context) epa-armor) + (setf (epg-context-textmode context) epa-textmode) + (setf (epg-context-signers context) signers) (epg-context-set-passphrase-callback context #'epa-passphrase-callback-function) (epg-context-set-progress-callback context @@ -727,8 +783,13 @@ If no one is selected, default secret key is used. " #'epa-progress-callback-function (format "Signing %s..." (file-name-nondirectory file)))) + (setf (epg-context-pinentry-mode context) epa-pinentry-mode) (message "Signing %s..." (file-name-nondirectory file)) - (epg-sign-file context file signature mode) + (condition-case error + (epg-sign-file context file signature mode) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Signing %s...wrote %s" (file-name-nondirectory file) (file-name-nondirectory signature)))) @@ -744,8 +805,8 @@ If no one is selected, symmetric encryption will be performed. "))) (if epa-armor ".asc" ".gpg") ".p7m"))) (context (epg-make-context epa-protocol))) - (epg-context-set-armor context epa-armor) - (epg-context-set-textmode context epa-textmode) + (setf (epg-context-armor context) epa-armor) + (setf (epg-context-textmode context) epa-textmode) (epg-context-set-passphrase-callback context #'epa-passphrase-callback-function) (epg-context-set-progress-callback context @@ -753,8 +814,13 @@ If no one is selected, symmetric encryption will be performed. "))) #'epa-progress-callback-function (format "Encrypting %s..." (file-name-nondirectory file)))) + (setf (epg-context-pinentry-mode context) epa-pinentry-mode) (message "Encrypting %s..." (file-name-nondirectory file)) - (epg-encrypt-file context file recipients cipher) + (condition-case error + (epg-encrypt-file context file recipients cipher) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Encrypting %s...wrote %s" (file-name-nondirectory file) (file-name-nondirectory cipher)))) @@ -791,8 +857,13 @@ For example: (cons #'epa-progress-callback-function "Decrypting...")) + (setf (epg-context-pinentry-mode context) epa-pinentry-mode) (message "Decrypting...") - (setq plain (epg-decrypt-string context (buffer-substring start end))) + (condition-case error + (setq plain (epg-decrypt-string context (buffer-substring start end))) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Decrypting...done") (setq plain (epa--decode-coding-string plain @@ -810,8 +881,8 @@ For example: (insert plain)) (with-output-to-temp-buffer "*Temp*" (set-buffer standard-output) - (insert plain) - (epa-info-mode)))) + (insert plain) + (epa-info-mode)))) (if (epg-context-result-for context 'verify) (epa-display-info (epg-verify-result-to-string (epg-context-result-for context 'verify))))))) @@ -878,17 +949,21 @@ For example: (interactive "r") (let ((context (epg-make-context epa-protocol)) plain) - (epg-context-set-progress-callback context - (cons - #'epa-progress-callback-function - "Verifying...")) + (setf (epg-context-progress-callback context) + (cons + #'epa-progress-callback-function + "Verifying...")) (message "Verifying...") - (setq plain (epg-verify-string - context - (epa--encode-coding-string - (buffer-substring start end) - (or coding-system-for-write - (get-text-property start 'epa-coding-system-used))))) + (condition-case error + (setq plain (epg-verify-string + context + (epa--encode-coding-string + (buffer-substring start end) + (or coding-system-for-write + (get-text-property start 'epa-coding-system-used))))) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Verifying...done") (setq plain (epa--decode-coding-string plain @@ -927,11 +1002,11 @@ See the reason described in the `epa-verify-region' documentation." nil t) (setq cleartext-start (match-beginning 0)) (unless (re-search-forward "^-----BEGIN PGP SIGNATURE-----$" - nil t) + nil t) (error "Invalid cleartext signed message")) (setq cleartext-end (re-search-forward - "^-----END PGP SIGNATURE-----$" - nil t)) + "^-----END PGP SIGNATURE-----$" + nil t)) (unless cleartext-end (error "No cleartext tail")) (epa-verify-region cleartext-start cleartext-end)))))) @@ -978,23 +1053,28 @@ If no one is selected, default secret key is used. " (save-excursion (let ((context (epg-make-context epa-protocol)) signature) - ;;(epg-context-set-armor context epa-armor) - (epg-context-set-armor context t) - ;;(epg-context-set-textmode context epa-textmode) - (epg-context-set-textmode context t) - (epg-context-set-signers context signers) + ;;(setf (epg-context-armor context) epa-armor) + (setf (epg-context-armor context) t) + ;;(setf (epg-context-textmode context) epa-textmode) + (setf (epg-context-textmode context) t) + (setf (epg-context-signers context) signers) (epg-context-set-passphrase-callback context #'epa-passphrase-callback-function) (epg-context-set-progress-callback context (cons #'epa-progress-callback-function "Signing...")) + (setf (epg-context-pinentry-mode context) epa-pinentry-mode) (message "Signing...") - (setq signature (epg-sign-string context - (epa--encode-coding-string - (buffer-substring start end) - epa-last-coding-system-specified) - mode)) + (condition-case error + (setq signature (epg-sign-string context + (epa--encode-coding-string + (buffer-substring start end) + epa-last-coding-system-specified) + mode)) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Signing...done") (delete-region start end) (goto-char start) @@ -1061,25 +1141,30 @@ If no one is selected, symmetric encryption will be performed. ") (save-excursion (let ((context (epg-make-context epa-protocol)) cipher) - ;;(epg-context-set-armor context epa-armor) - (epg-context-set-armor context t) - ;;(epg-context-set-textmode context epa-textmode) - (epg-context-set-textmode context t) + ;;(setf (epg-context-armor context) epa-armor) + (setf (epg-context-armor context) t) + ;;(setf (epg-context-textmode context) epa-textmode) + (setf (epg-context-textmode context) t) (if sign - (epg-context-set-signers context signers)) + (setf (epg-context-signers context) signers)) (epg-context-set-passphrase-callback context #'epa-passphrase-callback-function) (epg-context-set-progress-callback context (cons #'epa-progress-callback-function "Encrypting...")) + (setf (epg-context-pinentry-mode context) epa-pinentry-mode) (message "Encrypting...") - (setq cipher (epg-encrypt-string context - (epa--encode-coding-string - (buffer-substring start end) - epa-last-coding-system-specified) - recipients - sign)) + (condition-case error + (setq cipher (epg-encrypt-string context + (epa--encode-coding-string + (buffer-substring start end) + epa-last-coding-system-specified) + recipients + sign)) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Encrypting...done") (delete-region start end) (goto-char start) @@ -1105,7 +1190,11 @@ If no one is selected, symmetric encryption will be performed. ") (eq (nth 1 epa-list-keys-arguments) t)))) (let ((context (epg-make-context epa-protocol))) (message "Deleting...") - (epg-delete-keys context keys allow-secret) + (condition-case error + (epg-delete-keys context keys allow-secret) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Deleting...done") (apply #'epa--list-keys epa-list-keys-arguments))) @@ -1121,6 +1210,7 @@ If no one is selected, symmetric encryption will be performed. ") (epg-import-keys-from-file context file) (message "Importing %s...done" (file-name-nondirectory file))) (error + (epa-display-error context) (message "Importing %s...failed" (file-name-nondirectory file)))) (if (epg-context-result-for context 'import) (epa-display-info (epg-import-result-to-string @@ -1140,6 +1230,7 @@ If no one is selected, symmetric encryption will be performed. ") (epg-import-keys-from-string context (buffer-substring start end)) (message "Importing...done")) (error + (epa-display-error context) (message "Importing...failed"))) (if (epg-context-result-for context 'import) (epa-display-info (epg-import-result-to-string @@ -1188,9 +1279,13 @@ between START and END." (file-name-directory default-name) default-name))))) (let ((context (epg-make-context epa-protocol))) - (epg-context-set-armor context epa-armor) + (setf (epg-context-armor context) epa-armor) (message "Exporting to %s..." (file-name-nondirectory file)) - (epg-export-keys-to-file context keys file) + (condition-case error + (epg-export-keys-to-file context keys file) + (error + (epa-display-error context) + (signal (car error) (cdr error)))) (message "Exporting to %s...done" (file-name-nondirectory file)))) ;;;###autoload @@ -1198,12 +1293,16 @@ between START and END." "Insert selected KEYS after the point." (interactive (list (epa-select-keys (epg-make-context epa-protocol) - "Select keys to export. + "Select keys to export. If no one is selected, default public key is exported. "))) (let ((context (epg-make-context epa-protocol))) - ;;(epg-context-set-armor context epa-armor) - (epg-context-set-armor context t) - (insert (epg-export-keys-to-string context keys)))) + ;;(setf (epg-context-armor context) epa-armor) + (setf (epg-context-armor context) t) + (condition-case error + (insert (epg-export-keys-to-string context keys)) + (error + (epa-display-error context) + (signal (car error) (cdr error)))))) ;; (defun epa-sign-keys (keys &optional local) ;; "Sign selected KEYS. @@ -1218,11 +1317,12 @@ If no one is selected, default public key is exported. "))) ;; (list keys current-prefix-arg))) ;; (let ((context (epg-make-context epa-protocol))) ;; (epg-context-set-passphrase-callback context -;; #'epa-passphrase-callback-function) +;; #'epa-passphrase-callback-function) ;; (epg-context-set-progress-callback context -;; (cons -;; #'epa-progress-callback-function -;; "Signing keys...")) +;; (cons +;; #'epa-progress-callback-function +;; "Signing keys...")) +;; (setf (epg-context-pinentry-mode context) epa-pinentry-mode) ;; (message "Signing keys...") ;; (epg-sign-keys context keys local) ;; (message "Signing keys...done"))) diff --git a/lisp/epg-config.el b/lisp/epg-config.el index 10b37041443..16ed6e1f5c9 100644 --- a/lisp/epg-config.el +++ b/lisp/epg-config.el @@ -39,9 +39,9 @@ :group 'data :group 'external) -(defcustom epg-gpg-program (or (executable-find "gpg") - (executable-find "gpg2") - "gpg") +(defcustom epg-gpg-program (cond ((executable-find "gpg") "gpg") + ((executable-find "gpg2") "gpg2") + (t "gpg")) "The `gpg' executable." :group 'epg :type 'string) diff --git a/lisp/epg.el b/lisp/epg.el index 26e3b3d2501..520ff8d78b7 100644 --- a/lisp/epg.el +++ b/lisp/epg.el @@ -23,6 +23,7 @@ ;;; Code: (require 'epg-config) +(eval-when-compile (require 'cl-lib)) (defvar epg-user-id nil "GnuPG ID of your default identity.") @@ -39,6 +40,7 @@ (defvar epg-debug-buffer nil) (defvar epg-agent-file nil) (defvar epg-agent-mtime nil) +(defvar epg-error-output nil) ;; from gnupg/include/cipher.h (defconst epg-cipher-algorithm-alist @@ -164,210 +166,75 @@ (define-error 'epg-error "GPG error") -(defun epg-make-data-from-file (file) - "Make a data object from FILE." - (cons 'epg-data (vector file nil))) +(cl-defstruct (epg-data + (:constructor nil) + (:constructor epg-make-data-from-file (file)) + (:constructor epg-make-data-from-string (string)) + (:copier nil) + (:predicate nil)) + (file nil :read-only t) + (string nil :read-only t)) -(defun epg-make-data-from-string (string) - "Make a data object from STRING." - (cons 'epg-data (vector nil string))) +(defmacro epg--gv-nreverse (place) + (gv-letplace (getter setter) place + (funcall setter `(nreverse ,getter)))) -(defun epg-data-file (data) - "Return the file of DATA." - (unless (eq (car-safe data) 'epg-data) - (signal 'wrong-type-argument (list 'epg-data-p data))) - (aref (cdr data) 0)) - -(defun epg-data-string (data) - "Return the string of DATA." - (unless (eq (car-safe data) 'epg-data) - (signal 'wrong-type-argument (list 'epg-data-p data))) - (aref (cdr data) 1)) +(cl-defstruct (epg-context + (:constructor nil) + (:constructor epg-context--make + (protocol &optional armor textmode include-certs + cipher-algorithm digest-algorithm + compress-algorithm + &aux + (program + (pcase protocol + (`OpenPGP epg-gpg-program) + (`CMS epg-gpgsm-program) + (_ (signal 'epg-error + (list "unknown protocol" protocol))))))) + (:copier nil) + (:predicate nil)) + protocol + program + (home-directory epg-gpg-home-directory) + armor + textmode + include-certs + cipher-algorithm + digest-algorithm + compress-algorithm + (passphrase-callback (list #'epg-passphrase-callback-function)) + progress-callback + edit-callback + signers + sig-notations + process + output-file + result + operation + pinentry-mode + (error-output "")) +;; This is not an alias, just so we can mark it as autoloaded. ;;;###autoload (defun epg-make-context (&optional protocol armor textmode include-certs cipher-algorithm digest-algorithm compress-algorithm) "Return a context object." - (unless protocol - (setq protocol 'OpenPGP)) - (unless (memq protocol '(OpenPGP CMS)) - (signal 'epg-error (list "unknown protocol" protocol))) - (cons 'epg-context - (vector protocol - (if (eq protocol 'OpenPGP) - epg-gpg-program - epg-gpgsm-program) - epg-gpg-home-directory - armor textmode include-certs - cipher-algorithm digest-algorithm compress-algorithm - (list #'epg-passphrase-callback-function) - nil - nil nil nil nil nil nil nil))) - -(defun epg-context-protocol (context) - "Return the protocol used within CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 0)) - -(defun epg-context-program (context) - "Return the gpg or gpgsm executable used within CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 1)) - -(defun epg-context-home-directory (context) - "Return the GnuPG home directory used in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 2)) - -(defun epg-context-armor (context) - "Return t if the output should be ASCII armored in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 3)) - -(defun epg-context-textmode (context) - "Return t if canonical text mode should be used in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 4)) - -(defun epg-context-include-certs (context) - "Return how many certificates should be included in an S/MIME signed message." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 5)) - -(defun epg-context-cipher-algorithm (context) - "Return the cipher algorithm in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 6)) - -(defun epg-context-digest-algorithm (context) - "Return the digest algorithm in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 7)) - -(defun epg-context-compress-algorithm (context) - "Return the compress algorithm in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 8)) - -(defun epg-context-passphrase-callback (context) - "Return the function used to query passphrase." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 9)) - -(defun epg-context-progress-callback (context) - "Return the function which handles progress update." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 10)) - -(defun epg-context-signers (context) - "Return the list of key-id for signing." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 11)) - -(defun epg-context-sig-notations (context) - "Return the list of notations for signing." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 12)) - -(defun epg-context-process (context) - "Return the process object of `epg-gpg-program'. -This function is for internal use only." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 13)) - -(defun epg-context-output-file (context) - "Return the output file of `epg-gpg-program'. -This function is for internal use only." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 14)) - -(defun epg-context-result (context) - "Return the result of the previous cryptographic operation." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 15)) - -(defun epg-context-operation (context) - "Return the name of the current cryptographic operation." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 16)) - -(defun epg-context-pinentry-mode (context) - "Return the mode of pinentry invocation." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aref (cdr context) 17)) - -(defun epg-context-set-protocol (context protocol) - "Set the protocol used within CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 0 protocol)) - -(defun epg-context-set-program (context protocol) - "Set the gpg or gpgsm executable used within CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 1 protocol)) - -(defun epg-context-set-home-directory (context directory) - "Set the GnuPG home directory." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 2 directory)) + (epg-context--make (or protocol 'OpenPGP) + armor textmode include-certs + cipher-algorithm digest-algorithm + compress-algorithm)) (defun epg-context-set-armor (context armor) "Specify if the output should be ASCII armored in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 3 armor)) + (declare (obsolete setf "25.1")) + (setf (epg-context-armor context) armor)) (defun epg-context-set-textmode (context textmode) "Specify if canonical text mode should be used in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 4 textmode)) - -(defun epg-context-set-include-certs (context include-certs) - "Set how many certificates should be included in an S/MIME signed message." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 5 include-certs)) - -(defun epg-context-set-cipher-algorithm (context cipher-algorithm) - "Set the cipher algorithm in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 6 cipher-algorithm)) - -(defun epg-context-set-digest-algorithm (context digest-algorithm) - "Set the digest algorithm in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 7 digest-algorithm)) - -(defun epg-context-set-compress-algorithm (context compress-algorithm) - "Set the compress algorithm in CONTEXT." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 8 compress-algorithm)) + (declare (obsolete setf "25.1")) + (setf (epg-context-textmode context) textmode)) (defun epg-context-set-passphrase-callback (context passphrase-callback) @@ -384,11 +251,11 @@ on the external program called `gpg-agent' for passphrase query. If you really want to intercept passphrase query, consider installing GnuPG 1.x _along with_ GnuPG 2.x, which does passphrase query by itself and Emacs can intercept them." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 9 (if (consp passphrase-callback) - passphrase-callback - (list passphrase-callback)))) + ;; (declare (obsolete setf "25.1")) + (setf (epg-context-passphrase-callback context) + (if (functionp passphrase-callback) + (list passphrase-callback) + passphrase-callback))) (defun epg-context-set-progress-callback (context progress-callback) @@ -401,607 +268,119 @@ The function gets six arguments: the context, the operation description, the character to display a progress unit, the current amount done, the total amount to be done, and the callback data (if any)." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 10 (if (consp progress-callback) - progress-callback - (list progress-callback)))) + (setf (epg-context-progress-callback context) + (if (functionp progress-callback) + (list progress-callback) + progress-callback))) (defun epg-context-set-signers (context signers) "Set the list of key-id for signing." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 11 signers)) - -(defun epg-context-set-sig-notations (context notations) - "Set the list of notations for signing." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 12 notations)) - -(defun epg-context-set-process (context process) - "Set the process object of `epg-gpg-program'. -This function is for internal use only." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 13 process)) - -(defun epg-context-set-output-file (context output-file) - "Set the output file of `epg-gpg-program'. -This function is for internal use only." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 14 output-file)) - -(defun epg-context-set-result (context result) - "Set the result of the previous cryptographic operation." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 15 result)) - -(defun epg-context-set-operation (context operation) - "Set the name of the current cryptographic operation." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (aset (cdr context) 16 operation)) - -(defun epg-context-set-pinentry-mode (context mode) - "Set the mode of pinentry invocation." - (unless (eq (car-safe context) 'epg-context) - (signal 'wrong-type-argument (list 'epg-context-p context))) - (unless (memq mode '(nil ask cancel error loopback)) - (signal 'epg-error (list "Unknown pinentry mode" mode))) - (aset (cdr context) 17 mode)) - -(defun epg-make-signature (status &optional key-id) - "Return a signature object." - (cons 'epg-signature (vector status key-id nil nil nil nil nil nil nil nil - nil))) - -(defun epg-signature-status (signature) - "Return the status code of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 0)) - -(defun epg-signature-key-id (signature) - "Return the key-id of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 1)) - -(defun epg-signature-validity (signature) - "Return the validity of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 2)) - -(defun epg-signature-fingerprint (signature) - "Return the fingerprint of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 3)) - -(defun epg-signature-creation-time (signature) - "Return the creation time of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 4)) - -(defun epg-signature-expiration-time (signature) - "Return the expiration time of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 5)) - -(defun epg-signature-pubkey-algorithm (signature) - "Return the public key algorithm of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 6)) - -(defun epg-signature-digest-algorithm (signature) - "Return the digest algorithm of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 7)) - -(defun epg-signature-class (signature) - "Return the class of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 8)) - -(defun epg-signature-version (signature) - "Return the version of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 9)) - -(defun epg-sig-notations (signature) - "Return the list of notations of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aref (cdr signature) 10)) - -(defun epg-signature-set-status (signature status) - "Set the status code of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 0 status)) - -(defun epg-signature-set-key-id (signature key-id) - "Set the key-id of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 1 key-id)) - -(defun epg-signature-set-validity (signature validity) - "Set the validity of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 2 validity)) - -(defun epg-signature-set-fingerprint (signature fingerprint) - "Set the fingerprint of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 3 fingerprint)) - -(defun epg-signature-set-creation-time (signature creation-time) - "Set the creation time of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 4 creation-time)) - -(defun epg-signature-set-expiration-time (signature expiration-time) - "Set the expiration time of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 5 expiration-time)) - -(defun epg-signature-set-pubkey-algorithm (signature pubkey-algorithm) - "Set the public key algorithm of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 6 pubkey-algorithm)) - -(defun epg-signature-set-digest-algorithm (signature digest-algorithm) - "Set the digest algorithm of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 7 digest-algorithm)) - -(defun epg-signature-set-class (signature class) - "Set the class of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 8 class)) - -(defun epg-signature-set-version (signature version) - "Set the version of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 9 version)) - -(defun epg-signature-set-notations (signature notations) - "Set the list of notations of SIGNATURE." - (unless (eq (car-safe signature) 'epg-signature) - (signal 'wrong-type-argument (list 'epg-signature-p signature))) - (aset (cdr signature) 10 notations)) - -(defun epg-make-new-signature (type pubkey-algorithm digest-algorithm - class creation-time fingerprint) - "Return a new signature object." - (cons 'epg-new-signature (vector type pubkey-algorithm digest-algorithm - class creation-time fingerprint))) - -(defun epg-new-signature-type (new-signature) - "Return the type of NEW-SIGNATURE." - (unless (eq (car-safe new-signature) 'epg-new-signature) - (signal 'wrong-type-argument (list 'epg-new-signature-p new-signature))) - (aref (cdr new-signature) 0)) - -(defun epg-new-signature-pubkey-algorithm (new-signature) - "Return the public key algorithm of NEW-SIGNATURE." - (unless (eq (car-safe new-signature) 'epg-new-signature) - (signal 'wrong-type-argument (list 'epg-new-signature-p new-signature))) - (aref (cdr new-signature) 1)) - -(defun epg-new-signature-digest-algorithm (new-signature) - "Return the digest algorithm of NEW-SIGNATURE." - (unless (eq (car-safe new-signature) 'epg-new-signature) - (signal 'wrong-type-argument (list 'epg-new-signature-p new-signature))) - (aref (cdr new-signature) 2)) - -(defun epg-new-signature-class (new-signature) - "Return the class of NEW-SIGNATURE." - (unless (eq (car-safe new-signature) 'epg-new-signature) - (signal 'wrong-type-argument (list 'epg-new-signature-p new-signature))) - (aref (cdr new-signature) 3)) - -(defun epg-new-signature-creation-time (new-signature) - "Return the creation time of NEW-SIGNATURE." - (unless (eq (car-safe new-signature) 'epg-new-signature) - (signal 'wrong-type-argument (list 'epg-new-signature-p new-signature))) - (aref (cdr new-signature) 4)) - -(defun epg-new-signature-fingerprint (new-signature) - "Return the fingerprint of NEW-SIGNATURE." - (unless (eq (car-safe new-signature) 'epg-new-signature) - (signal 'wrong-type-argument (list 'epg-new-signature-p new-signature))) - (aref (cdr new-signature) 5)) - -(defun epg-make-key (owner-trust) - "Return a key object." - (cons 'epg-key (vector owner-trust nil nil))) - -(defun epg-key-owner-trust (key) - "Return the owner trust of KEY." - (unless (eq (car-safe key) 'epg-key) - (signal 'wrong-type-argument (list 'epg-key-p key))) - (aref (cdr key) 0)) - -(defun epg-key-sub-key-list (key) - "Return the sub key list of KEY." - (unless (eq (car-safe key) 'epg-key) - (signal 'wrong-type-argument (list 'epg-key-p key))) - (aref (cdr key) 1)) - -(defun epg-key-user-id-list (key) - "Return the user ID list of KEY." - (unless (eq (car-safe key) 'epg-key) - (signal 'wrong-type-argument (list 'epg-key-p key))) - (aref (cdr key) 2)) - -(defun epg-key-set-sub-key-list (key sub-key-list) - "Set the sub key list of KEY." - (unless (eq (car-safe key) 'epg-key) - (signal 'wrong-type-argument (list 'epg-key-p key))) - (aset (cdr key) 1 sub-key-list)) - -(defun epg-key-set-user-id-list (key user-id-list) - "Set the user ID list of KEY." - (unless (eq (car-safe key) 'epg-key) - (signal 'wrong-type-argument (list 'epg-key-p key))) - (aset (cdr key) 2 user-id-list)) - -(defun epg-make-sub-key (validity capability secret-p algorithm length id - creation-time expiration-time) - "Return a sub key object." - (cons 'epg-sub-key - (vector validity capability secret-p algorithm length id creation-time - expiration-time nil))) - -(defun epg-sub-key-validity (sub-key) - "Return the validity of SUB-KEY." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 0)) - -(defun epg-sub-key-capability (sub-key) - "Return the capability of SUB-KEY." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 1)) - -(defun epg-sub-key-secret-p (sub-key) - "Return non-nil if SUB-KEY is a secret key." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 2)) - -(defun epg-sub-key-algorithm (sub-key) - "Return the algorithm of SUB-KEY." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 3)) - -(defun epg-sub-key-length (sub-key) - "Return the length of SUB-KEY." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 4)) - -(defun epg-sub-key-id (sub-key) - "Return the ID of SUB-KEY." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 5)) - -(defun epg-sub-key-creation-time (sub-key) - "Return the creation time of SUB-KEY." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 6)) - -(defun epg-sub-key-expiration-time (sub-key) - "Return the expiration time of SUB-KEY." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 7)) - -(defun epg-sub-key-fingerprint (sub-key) - "Return the fingerprint of SUB-KEY." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aref (cdr sub-key) 8)) - -(defun epg-sub-key-set-fingerprint (sub-key fingerprint) - "Set the fingerprint of SUB-KEY. -This function is for internal use only." - (unless (eq (car-safe sub-key) 'epg-sub-key) - (signal 'wrong-type-argument (list 'epg-sub-key-p sub-key))) - (aset (cdr sub-key) 8 fingerprint)) - -(defun epg-make-user-id (validity string) - "Return a user ID object." - (cons 'epg-user-id (vector validity string nil))) - -(defun epg-user-id-validity (user-id) - "Return the validity of USER-ID." - (unless (eq (car-safe user-id) 'epg-user-id) - (signal 'wrong-type-argument (list 'epg-user-id-p user-id))) - (aref (cdr user-id) 0)) - -(defun epg-user-id-string (user-id) - "Return the name of USER-ID." - (unless (eq (car-safe user-id) 'epg-user-id) - (signal 'wrong-type-argument (list 'epg-user-id-p user-id))) - (aref (cdr user-id) 1)) - -(defun epg-user-id-signature-list (user-id) - "Return the signature list of USER-ID." - (unless (eq (car-safe user-id) 'epg-user-id) - (signal 'wrong-type-argument (list 'epg-user-id-p user-id))) - (aref (cdr user-id) 2)) - -(defun epg-user-id-set-signature-list (user-id signature-list) - "Set the signature list of USER-ID." - (unless (eq (car-safe user-id) 'epg-user-id) - (signal 'wrong-type-argument (list 'epg-user-id-p user-id))) - (aset (cdr user-id) 2 signature-list)) - -(defun epg-make-key-signature (validity pubkey-algorithm key-id creation-time - expiration-time user-id class - exportable-p) - "Return a key signature object." - (cons 'epg-key-signature - (vector validity pubkey-algorithm key-id creation-time expiration-time - user-id class exportable-p))) - -(defun epg-key-signature-validity (key-signature) - "Return the validity of KEY-SIGNATURE." - (unless (eq (car-safe key-signature) 'epg-key-signature) - (signal 'wrong-type-argument (list 'epg-key-signature-p key-signature))) - (aref (cdr key-signature) 0)) - -(defun epg-key-signature-pubkey-algorithm (key-signature) - "Return the public key algorithm of KEY-SIGNATURE." - (unless (eq (car-safe key-signature) 'epg-key-signature) - (signal 'wrong-type-argument (list 'epg-key-signature-p key-signature))) - (aref (cdr key-signature) 1)) - -(defun epg-key-signature-key-id (key-signature) - "Return the key-id of KEY-SIGNATURE." - (unless (eq (car-safe key-signature) 'epg-key-signature) - (signal 'wrong-type-argument (list 'epg-key-signature-p key-signature))) - (aref (cdr key-signature) 2)) - -(defun epg-key-signature-creation-time (key-signature) - "Return the creation time of KEY-SIGNATURE." - (unless (eq (car-safe key-signature) 'epg-key-signature) - (signal 'wrong-type-argument (list 'epg-key-signature-p key-signature))) - (aref (cdr key-signature) 3)) - -(defun epg-key-signature-expiration-time (key-signature) - "Return the expiration time of KEY-SIGNATURE." - (unless (eq (car-safe key-signature) 'epg-key-signature) - (signal 'wrong-type-argument (list 'epg-key-signature-p key-signature))) - (aref (cdr key-signature) 4)) - -(defun epg-key-signature-user-id (key-signature) - "Return the user-id of KEY-SIGNATURE." - (unless (eq (car-safe key-signature) 'epg-key-signature) - (signal 'wrong-type-argument (list 'epg-key-signature-p key-signature))) - (aref (cdr key-signature) 5)) - -(defun epg-key-signature-class (key-signature) - "Return the class of KEY-SIGNATURE." - (unless (eq (car-safe key-signature) 'epg-key-signature) - (signal 'wrong-type-argument (list 'epg-key-signature-p key-signature))) - (aref (cdr key-signature) 6)) - -(defun epg-key-signature-exportable-p (key-signature) - "Return t if KEY-SIGNATURE is exportable." - (unless (eq (car-safe key-signature) 'epg-key-signature) - (signal 'wrong-type-argument (list 'epg-key-signature-p key-signature))) - (aref (cdr key-signature) 7)) - -(defun epg-make-sig-notation (name value &optional human-readable - critical) - "Return a notation object." - (cons 'epg-sig-notation (vector name value human-readable critical))) - -(defun epg-sig-notation-name (sig-notation) - "Return the name of SIG-NOTATION." - (unless (eq (car-safe sig-notation) 'epg-sig-notation) - (signal 'wrong-type-argument (list 'epg-sig-notation-p - sig-notation))) - (aref (cdr sig-notation) 0)) - -(defun epg-sig-notation-value (sig-notation) - "Return the value of SIG-NOTATION." - (unless (eq (car-safe sig-notation) 'epg-sig-notation) - (signal 'wrong-type-argument (list 'epg-sig-notation-p - sig-notation))) - (aref (cdr sig-notation) 1)) - -(defun epg-sig-notation-human-readable (sig-notation) - "Return the human-readable of SIG-NOTATION." - (unless (eq (car-safe sig-notation) 'epg-sig-notation) - (signal 'wrong-type-argument (list 'epg-sig-notation-p - sig-notation))) - (aref (cdr sig-notation) 2)) - -(defun epg-sig-notation-critical (sig-notation) - "Return the critical of SIG-NOTATION." - (unless (eq (car-safe sig-notation) 'epg-sig-notation) - (signal 'wrong-type-argument (list 'epg-sig-notation-p - sig-notation))) - (aref (cdr sig-notation) 3)) - -(defun epg-sig-notation-set-value (sig-notation value) - "Set the value of SIG-NOTATION." - (unless (eq (car-safe sig-notation) 'epg-sig-notation) - (signal 'wrong-type-argument (list 'epg-sig-notation-p - sig-notation))) - (aset (cdr sig-notation) 1 value)) - -(defun epg-make-import-status (fingerprint &optional reason new user-id - signature sub-key secret) - "Return an import status object." - (cons 'epg-import-status (vector fingerprint reason new user-id signature - sub-key secret))) - -(defun epg-import-status-fingerprint (import-status) - "Return the fingerprint of the key that was considered." - (unless (eq (car-safe import-status) 'epg-import-status) - (signal 'wrong-type-argument (list 'epg-import-status-p import-status))) - (aref (cdr import-status) 0)) - -(defun epg-import-status-reason (import-status) - "Return the reason code for import failure." - (unless (eq (car-safe import-status) 'epg-import-status) - (signal 'wrong-type-argument (list 'epg-import-status-p import-status))) - (aref (cdr import-status) 1)) - -(defun epg-import-status-new (import-status) - "Return t if the imported key was new." - (unless (eq (car-safe import-status) 'epg-import-status) - (signal 'wrong-type-argument (list 'epg-import-status-p import-status))) - (aref (cdr import-status) 2)) - -(defun epg-import-status-user-id (import-status) - "Return t if the imported key contained new user IDs." - (unless (eq (car-safe import-status) 'epg-import-status) - (signal 'wrong-type-argument (list 'epg-import-status-p import-status))) - (aref (cdr import-status) 3)) - -(defun epg-import-status-signature (import-status) - "Return t if the imported key contained new signatures." - (unless (eq (car-safe import-status) 'epg-import-status) - (signal 'wrong-type-argument (list 'epg-import-status-p import-status))) - (aref (cdr import-status) 4)) - -(defun epg-import-status-sub-key (import-status) - "Return t if the imported key contained new sub keys." - (unless (eq (car-safe import-status) 'epg-import-status) - (signal 'wrong-type-argument (list 'epg-import-status-p import-status))) - (aref (cdr import-status) 5)) - -(defun epg-import-status-secret (import-status) - "Return t if the imported key contained a secret key." - (unless (eq (car-safe import-status) 'epg-import-status) - (signal 'wrong-type-argument (list 'epg-import-status-p import-status))) - (aref (cdr import-status) 6)) - -(defun epg-make-import-result (considered no-user-id imported imported-rsa - unchanged new-user-ids new-sub-keys - new-signatures new-revocations - secret-read secret-imported - secret-unchanged not-imported - imports) - "Return an import result object." - (cons 'epg-import-result (vector considered no-user-id imported imported-rsa - unchanged new-user-ids new-sub-keys - new-signatures new-revocations secret-read - secret-imported secret-unchanged - not-imported imports))) - -(defun epg-import-result-considered (import-result) - "Return the total number of considered keys." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 0)) - -(defun epg-import-result-no-user-id (import-result) - "Return the number of keys without user ID." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 1)) - -(defun epg-import-result-imported (import-result) - "Return the number of imported keys." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 2)) - -(defun epg-import-result-imported-rsa (import-result) - "Return the number of imported RSA keys." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 3)) - -(defun epg-import-result-unchanged (import-result) - "Return the number of unchanged keys." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 4)) - -(defun epg-import-result-new-user-ids (import-result) - "Return the number of new user IDs." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 5)) - -(defun epg-import-result-new-sub-keys (import-result) - "Return the number of new sub keys." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 6)) - -(defun epg-import-result-new-signatures (import-result) - "Return the number of new signatures." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 7)) - -(defun epg-import-result-new-revocations (import-result) - "Return the number of new revocations." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 8)) - -(defun epg-import-result-secret-read (import-result) - "Return the total number of secret keys read." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 9)) - -(defun epg-import-result-secret-imported (import-result) - "Return the number of imported secret keys." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 10)) - -(defun epg-import-result-secret-unchanged (import-result) - "Return the number of unchanged secret keys." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 11)) - -(defun epg-import-result-not-imported (import-result) - "Return the number of keys not imported." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 12)) - -(defun epg-import-result-imports (import-result) - "Return the list of `epg-import-status' objects." - (unless (eq (car-safe import-result) 'epg-import-result) - (signal 'wrong-type-argument (list 'epg-import-result-p import-result))) - (aref (cdr import-result) 13)) + (declare (obsolete setf "25.1")) + (setf (epg-context-signers context) signers)) + +(cl-defstruct (epg-signature + (:constructor nil) + (:constructor epg-make-signature + (status &optional key-id)) + (:copier nil) + (:predicate nil)) + status + key-id + validity + fingerprint + creation-time + expiration-time + pubkey-algorithm + digest-algorithm + class + version + notations) + +(cl-defstruct (epg-new-signature + (:constructor nil) + (:constructor epg-make-new-signature + (type pubkey-algorithm digest-algorithm + class creation-time fingerprint)) + (:copier nil) + (:predicate nil)) + (type nil :read-only t) + (pubkey-algorithm nil :read-only t) + (digest-algorithm nil :read-only t) + (class nil :read-only t) + (creation-time nil :read-only t) + (fingerprint nil :read-only t)) + +(cl-defstruct (epg-key + (:constructor nil) + (:constructor epg-make-key (owner-trust)) + (:copier nil) + (:predicate nil)) + (owner-trust nil :read-only t) + sub-key-list user-id-list) + +(cl-defstruct (epg-sub-key + (:constructor nil) + (:constructor epg-make-sub-key + (validity capability secret-p algorithm length id + creation-time expiration-time)) + (:copier nil) + (:predicate nil)) + validity capability secret-p algorithm length id + creation-time expiration-time fingerprint) + +(cl-defstruct (epg-user-id + (:constructor nil) + (:constructor epg-make-user-id (validity string)) + (:copier nil) + (:predicate nil)) + validity string signature-list) + +(cl-defstruct (epg-key-signature + (:constructor nil) + (:constructor epg-make-key-signature + (validity pubkey-algorithm key-id creation-time + expiration-time user-id class + exportable-p)) + (:copier nil) + (:predicate nil)) + validity pubkey-algorithm key-id creation-time + expiration-time user-id class + exportable-p) + +(cl-defstruct (epg-sig-notation + (:constructor nil) + (:constructor epg-make-sig-notation + (name value &optional human-readable critical)) + (:copier nil) + (:predicate nil)) + name value human-readable critical) + +(cl-defstruct (epg-import-status + (:constructor nil) + (:constructor epg-make-import-status + (fingerprint + &optional reason new user-id signature sub-key secret)) + (:copier nil) + (:predicate nil)) + fingerprint reason new user-id signature sub-key secret) + +(cl-defstruct (epg-import-result + (:constructor nil) + (:constructor epg-make-import-result + (considered no-user-id imported imported-rsa + unchanged new-user-ids new-sub-keys + new-signatures new-revocations + secret-read secret-imported + secret-unchanged not-imported + imports)) + (:copier nil) + (:predicate nil)) + considered no-user-id imported imported-rsa + unchanged new-user-ids new-sub-keys + new-signatures new-revocations + secret-read secret-imported + secret-unchanged not-imported + imports) (defun epg-context-result-for (context name) "Return the result of CONTEXT associated with NAME." @@ -1013,7 +392,7 @@ This function is for internal use only." (entry (assq name result))) (if entry (setcdr entry value) - (epg-context-set-result context (cons (cons name value) result))))) + (setf (epg-context-result context) (cons (cons name value) result))))) (defun epg-signature-to-string (signature) "Convert SIGNATURE to a human readable string." @@ -1263,12 +642,14 @@ This function is for internal use only." (make-local-variable 'epg-agent-file) (setq epg-agent-file agent-file) (make-local-variable 'epg-agent-mtime) - (setq epg-agent-mtime agent-mtime)) + (setq epg-agent-mtime agent-mtime) + (make-local-variable 'epg-error-output) + (setq epg-error-output nil)) (with-file-modes 448 (setq process (apply #'start-process "epg" buffer (epg-context-program context) args))) (set-process-filter process #'epg--process-filter) - (epg-context-set-process context process))) + (setf (epg-context-process context) process))) (defun epg--process-filter (process input) (if epg-debug @@ -1288,16 +669,35 @@ This function is for internal use only." (beginning-of-line) (while (looking-at ".*\n") ;the input line finished (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\) ?\\(.*\\)") - (let* ((status (match-string 1)) - (string (match-string 2)) - (symbol (intern-soft (concat "epg--status-" - status)))) + (let ((status (match-string 1)) + (string (match-string 2)) + symbol) (if (member status epg-pending-status-list) (setq epg-pending-status-list nil)) - (if (and symbol - (fboundp symbol)) - (funcall symbol epg-context string)) - (setq epg-last-status (cons status string)))) + ;; When editing a key, delegate all interaction + ;; to edit-callback. + (if (eq (epg-context-operation epg-context) 'edit-key) + (funcall (car (epg-context-edit-callback + epg-context)) + epg-context + status + string + (cdr (epg-context-edit-callback + epg-context))) + ;; Otherwise call epg--status-STATUS function. + (setq symbol (intern-soft (concat "epg--status-" + status))) + (if (and symbol + (fboundp symbol)) + (funcall symbol epg-context string))) + (setq epg-last-status (cons status string))) + ;; Record other lines sent to stderr. This assumes + ;; that the process-filter receives output only from + ;; stderr and the FD specified with --status-fd. + (setq epg-error-output + (cons (buffer-substring (point) + (line-end-position)) + epg-error-output))) (forward-line) (setq epg-read-point (point))))))))) @@ -1339,14 +739,18 @@ This function is for internal use only." (redraw-frame)) (epg-context-set-result-for context 'error - (nreverse (epg-context-result-for context 'error)))) + (nreverse (epg-context-result-for context 'error))) + (with-current-buffer (process-buffer (epg-context-process context)) + (setf (epg-context-error-output context) + (mapconcat #'identity (nreverse epg-error-output) "\n")))) (defun epg-reset (context) "Reset the CONTEXT." (if (and (epg-context-process context) (buffer-live-p (process-buffer (epg-context-process context)))) (kill-buffer (process-buffer (epg-context-process context)))) - (epg-context-set-process context nil)) + (setf (epg-context-process context) nil) + (setf (epg-context-edit-callback context) nil)) (defun epg-delete-output-file (context) "Delete the output file of CONTEXT." @@ -1540,7 +944,7 @@ This function is for internal use only." (if (and signature (eq (epg-signature-status signature) 'error) (equal (epg-signature-key-id signature) string)) - (epg-signature-set-status signature 'no-pubkey))) + (setf (epg-signature-status signature) 'no-pubkey))) (epg-context-set-result-for context 'error (cons (cons 'no-pubkey string) @@ -1567,21 +971,16 @@ This function is for internal use only." 'verify (cons signature (epg-context-result-for context 'verify))) - (epg-signature-set-key-id - signature - (match-string 1 string)) - (epg-signature-set-pubkey-algorithm - signature - (string-to-number (match-string 2 string))) - (epg-signature-set-digest-algorithm - signature - (string-to-number (match-string 3 string))) - (epg-signature-set-class - signature - (string-to-number (match-string 4 string) 16)) - (epg-signature-set-creation-time - signature - (epg--time-from-seconds (match-string 5 string)))))) + (setf (epg-signature-key-id signature) + (match-string 1 string)) + (setf (epg-signature-pubkey-algorithm signature) + (string-to-number (match-string 2 string))) + (setf (epg-signature-digest-algorithm signature) + (string-to-number (match-string 3 string))) + (setf (epg-signature-class signature) + (string-to-number (match-string 4 string) 16)) + (setf (epg-signature-creation-time signature) + (epg--time-from-seconds (match-string 5 string)))))) (defun epg--status-VALIDSIG (context string) (let ((signature (car (epg-context-result-for context 'verify)))) @@ -1591,81 +990,70 @@ This function is for internal use only." \\([0-9]+\\) [^ ]+ \\([0-9]+\\) \\([0-9]+\\) \\([0-9A-Fa-f][0-9A-Fa-f]\\) \ \\(.*\\)" string)) - (epg-signature-set-fingerprint - signature - (match-string 1 string)) - (epg-signature-set-creation-time - signature - (epg--time-from-seconds (match-string 2 string))) + (setf (epg-signature-fingerprint signature) + (match-string 1 string)) + (setf (epg-signature-creation-time signature) + (epg--time-from-seconds (match-string 2 string))) (unless (equal (match-string 3 string) "0") - (epg-signature-set-expiration-time - signature - (epg--time-from-seconds (match-string 3 string)))) - (epg-signature-set-version - signature - (string-to-number (match-string 4 string))) - (epg-signature-set-pubkey-algorithm - signature - (string-to-number (match-string 5 string))) - (epg-signature-set-digest-algorithm - signature - (string-to-number (match-string 6 string))) - (epg-signature-set-class - signature - (string-to-number (match-string 7 string) 16))))) + (setf (epg-signature-expiration-time signature) + (epg--time-from-seconds (match-string 3 string)))) + (setf (epg-signature-version signature) + (string-to-number (match-string 4 string))) + (setf (epg-signature-pubkey-algorithm signature) + (string-to-number (match-string 5 string))) + (setf (epg-signature-digest-algorithm signature) + (string-to-number (match-string 6 string))) + (setf (epg-signature-class signature) + (string-to-number (match-string 7 string) 16))))) (defun epg--status-TRUST_UNDEFINED (context _string) (let ((signature (car (epg-context-result-for context 'verify)))) (if (and signature (eq (epg-signature-status signature) 'good)) - (epg-signature-set-validity signature 'undefined)))) + (setf (epg-signature-validity signature) 'undefined)))) (defun epg--status-TRUST_NEVER (context _string) (let ((signature (car (epg-context-result-for context 'verify)))) (if (and signature (eq (epg-signature-status signature) 'good)) - (epg-signature-set-validity signature 'never)))) + (setf (epg-signature-validity signature) 'never)))) (defun epg--status-TRUST_MARGINAL (context _string) (let ((signature (car (epg-context-result-for context 'verify)))) (if (and signature (eq (epg-signature-status signature) 'marginal)) - (epg-signature-set-validity signature 'marginal)))) + (setf (epg-signature-validity signature) 'marginal)))) (defun epg--status-TRUST_FULLY (context _string) (let ((signature (car (epg-context-result-for context 'verify)))) (if (and signature (eq (epg-signature-status signature) 'good)) - (epg-signature-set-validity signature 'full)))) + (setf (epg-signature-validity signature) 'full)))) (defun epg--status-TRUST_ULTIMATE (context _string) (let ((signature (car (epg-context-result-for context 'verify)))) (if (and signature (eq (epg-signature-status signature) 'good)) - (epg-signature-set-validity signature 'ultimate)))) + (setf (epg-signature-validity signature) 'ultimate)))) (defun epg--status-NOTATION_NAME (context string) (let ((signature (car (epg-context-result-for context 'verify)))) (if signature - (epg-signature-set-notations - signature - (cons (epg-make-sig-notation string nil t nil) - (epg-sig-notations signature)))))) + (push (epg-make-sig-notation string nil t nil) + (epg-signature-notations signature))))) (defun epg--status-NOTATION_DATA (context string) (let ((signature (car (epg-context-result-for context 'verify))) notation) (if (and signature - (setq notation (car (epg-sig-notations signature)))) - (epg-sig-notation-set-value notation string)))) + (setq notation (car (epg-signature-notations signature)))) + (setf (epg-sig-notation-value notation) string)))) (defun epg--status-POLICY_URL (context string) (let ((signature (car (epg-context-result-for context 'verify)))) (if signature - (epg-signature-set-notations - signature - (cons (epg-make-sig-notation nil string t nil) - (epg-sig-notations signature)))))) + (push (epg-make-sig-notation nil string t nil) + (epg-signature-notations signature))))) (defun epg--status-PROGRESS (context string) (if (and (epg-context-progress-callback context) @@ -1904,8 +1292,9 @@ This function is for internal use only." string (match-string 0) index 0 field 0) - (while (eq index - (string-match "\\([^:]+\\)?:" string index)) + (while (and (< field (length (car keys))) + (eq index + (string-match "\\([^:]+\\)?:" string index))) (setq index (match-end 0)) (aset (car keys) field (match-string 1 string)) (setq field (1+ field)))) @@ -1944,15 +1333,11 @@ NAME is either a string or a list of strings." (cdr (assq (string-to-char (aref (car lines) 8)) epg-key-validity-alist)))) keys)) - (epg-key-set-sub-key-list - (car keys) - (cons (epg--make-sub-key-1 (car lines)) - (epg-key-sub-key-list (car keys))))) + (push (epg--make-sub-key-1 (car lines)) + (epg-key-sub-key-list (car keys)))) ((member (aref (car lines) 0) '("sub" "ssb")) - (epg-key-set-sub-key-list - (car keys) - (cons (epg--make-sub-key-1 (car lines)) - (epg-key-sub-key-list (car keys))))) + (push (epg--make-sub-key-1 (car lines)) + (epg-key-sub-key-list (car keys)))) ((equal (aref (car lines) 0) "uid") ;; Decode the UID name as a backslash escaped UTF-8 string, ;; generated by GnuPG/GpgSM. @@ -1967,52 +1352,42 @@ NAME is either a string or a list of strings." 'utf-8)) (error (setq string (aref (car lines) 9)))) - (epg-key-set-user-id-list - (car keys) - (cons (epg-make-user-id - (if (aref (car lines) 1) - (cdr (assq (string-to-char (aref (car lines) 1)) - epg-key-validity-alist))) - (if cert - (condition-case nil - (epg-dn-from-string string) - (error string)) - string)) - (epg-key-user-id-list (car keys))))) + (push (epg-make-user-id + (if (aref (car lines) 1) + (cdr (assq (string-to-char (aref (car lines) 1)) + epg-key-validity-alist))) + (if cert + (condition-case nil + (epg-dn-from-string string) + (error string)) + string)) + (epg-key-user-id-list (car keys)))) ((equal (aref (car lines) 0) "fpr") - (epg-sub-key-set-fingerprint (car (epg-key-sub-key-list (car keys))) - (aref (car lines) 9))) + (setf (epg-sub-key-fingerprint (car (epg-key-sub-key-list (car keys)))) + (aref (car lines) 9))) ((equal (aref (car lines) 0) "sig") - (epg-user-id-set-signature-list - (car (epg-key-user-id-list (car keys))) - (cons - (epg-make-key-signature - (if (aref (car lines) 1) - (cdr (assq (string-to-char (aref (car lines) 1)) - epg-key-validity-alist))) - (string-to-number (aref (car lines) 3)) - (aref (car lines) 4) - (epg--time-from-seconds (aref (car lines) 5)) - (epg--time-from-seconds (aref (car lines) 6)) - (aref (car lines) 9) - (string-to-number (aref (car lines) 10) 16) - (eq (aref (aref (car lines) 10) 2) ?x)) - (epg-user-id-signature-list - (car (epg-key-user-id-list (car keys)))))))) + (push + (epg-make-key-signature + (if (aref (car lines) 1) + (cdr (assq (string-to-char (aref (car lines) 1)) + epg-key-validity-alist))) + (string-to-number (aref (car lines) 3)) + (aref (car lines) 4) + (epg--time-from-seconds (aref (car lines) 5)) + (epg--time-from-seconds (aref (car lines) 6)) + (aref (car lines) 9) + (string-to-number (aref (car lines) 10) 16) + (eq (aref (aref (car lines) 10) 2) ?x)) + (epg-user-id-signature-list + (car (epg-key-user-id-list (car keys))))))) (setq lines (cdr lines))) (setq keys (nreverse keys) pointer keys) (while pointer - (epg-key-set-sub-key-list - (car pointer) - (nreverse (epg-key-sub-key-list (car pointer)))) - (setq pointer-1 (epg-key-set-user-id-list - (car pointer) - (nreverse (epg-key-user-id-list (car pointer))))) + (epg--gv-nreverse (epg-key-sub-key-list (car pointer))) + (setq pointer-1 (epg--gv-nreverse (epg-key-user-id-list (car pointer)))) (while pointer-1 - (epg-user-id-set-signature-list - (car pointer-1) - (nreverse (epg-user-id-signature-list (car pointer-1)))) + (epg--gv-nreverse (epg-user-id-signature-list (car pointer-1))) (setq pointer-1 (cdr pointer-1))) (setq pointer (cdr pointer))) keys)) @@ -2114,8 +1489,8 @@ If you are unsure, use synchronous version of this function `epg-decrypt-file' or `epg-decrypt-string' instead." (unless (epg-data-file cipher) (error "Not a file")) - (epg-context-set-operation context 'decrypt) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'decrypt) + (setf (epg-context-result context) nil) (epg--start context (list "--decrypt" "--" (epg-data-file cipher))) ;; `gpgsm' does not read passphrase from stdin, so waiting is not needed. (unless (eq (epg-context-protocol context) 'CMS) @@ -2135,10 +1510,8 @@ If you are unsure, use synchronous version of this function If PLAIN is nil, it returns the result as a string." (unwind-protect (progn - (if plain - (epg-context-set-output-file context plain) - (epg-context-set-output-file context - (epg--make-temp-file "epg-output"))) + (setf (epg-context-output-file context) + (or plain (epg--make-temp-file "epg-output"))) (epg-start-decrypt context (epg-make-data-from-file cipher)) (epg-wait-for-completion context) (epg--check-error-for-decrypt context) @@ -2155,8 +1528,8 @@ If PLAIN is nil, it returns the result as a string." (unwind-protect (progn (write-region cipher nil input-file nil 'quiet) - (epg-context-set-output-file context - (epg--make-temp-file "epg-output")) + (setf (epg-context-output-file context) + (epg--make-temp-file "epg-output")) (epg-start-decrypt context (epg-make-data-from-file input-file)) (epg-wait-for-completion context) (epg--check-error-for-decrypt context) @@ -2178,8 +1551,8 @@ If you use this function, you will need to wait for the completion of `epg-reset' to clear a temporary output file. If you are unsure, use synchronous version of this function `epg-verify-file' or `epg-verify-string' instead." - (epg-context-set-operation context 'verify) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'verify) + (setf (epg-context-result context) nil) (if signed-text ;; Detached signature. (if (epg-data-file signed-text) @@ -2226,10 +1599,8 @@ To check the verification results, use `epg-context-result-for' as follows: which will return a list of `epg-signature' object." (unwind-protect (progn - (if plain - (epg-context-set-output-file context plain) - (epg-context-set-output-file context - (epg--make-temp-file "epg-output"))) + (setf (epg-context-output-file context) + (or plain (epg--make-temp-file "epg-output"))) (if signed-text (epg-start-verify context (epg-make-data-from-file signature) @@ -2265,8 +1636,8 @@ which will return a list of `epg-signature' object." input-file) (unwind-protect (progn - (epg-context-set-output-file context - (epg--make-temp-file "epg-output")) + (setf (epg-context-output-file context) + (epg--make-temp-file "epg-output")) (if signed-text (progn (setq input-file (epg--make-temp-file "epg-signature")) @@ -2296,8 +1667,8 @@ If you use this function, you will need to wait for the completion of `epg-reset' to clear a temporary output file. If you are unsure, use synchronous version of this function `epg-sign-file' or `epg-sign-string' instead." - (epg-context-set-operation context 'sign) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'sign) + (setf (epg-context-result context) nil) (unless (memq mode '(t detached nil normal)) ;i.e. cleartext (epg-context-set-armor context nil) (epg-context-set-textmode context nil)) @@ -2336,10 +1707,8 @@ If it is nil or 'normal, it makes a normal signature. Otherwise, it makes a cleartext signature." (unwind-protect (progn - (if signature - (epg-context-set-output-file context signature) - (epg-context-set-output-file context - (epg--make-temp-file "epg-output"))) + (setf (epg-context-output-file context) + (or signature (epg--make-temp-file "epg-output"))) (epg-start-sign context (epg-make-data-from-file plain) mode) (epg-wait-for-completion context) (unless (epg-context-result-for context 'sign) @@ -2368,8 +1737,8 @@ Otherwise, it makes a cleartext signature." (coding-system-for-write 'binary)) (unwind-protect (progn - (epg-context-set-output-file context - (epg--make-temp-file "epg-output")) + (setf (epg-context-output-file context) + (epg--make-temp-file "epg-output")) (if input-file (write-region plain nil input-file nil 'quiet)) (epg-start-sign context @@ -2400,8 +1769,8 @@ If you use this function, you will need to wait for the completion of `epg-reset' to clear a temporary output file. If you are unsure, use synchronous version of this function `epg-encrypt-file' or `epg-encrypt-string' instead." - (epg-context-set-operation context 'encrypt) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'encrypt) + (setf (epg-context-result context) nil) (epg--start context (append (if always-trust '("--always-trust")) (if recipients '("--encrypt") '("--symmetric")) @@ -2445,10 +1814,8 @@ If CIPHER is nil, it returns the result as a string. If RECIPIENTS is nil, it performs symmetric encryption." (unwind-protect (progn - (if cipher - (epg-context-set-output-file context cipher) - (epg-context-set-output-file context - (epg--make-temp-file "epg-output"))) + (setf (epg-context-output-file context) + (or cipher (epg--make-temp-file "epg-output"))) (epg-start-encrypt context (epg-make-data-from-file plain) recipients sign always-trust) (epg-wait-for-completion context) @@ -2482,8 +1849,8 @@ If RECIPIENTS is nil, it performs symmetric encryption." (coding-system-for-write 'binary)) (unwind-protect (progn - (epg-context-set-output-file context - (epg--make-temp-file "epg-output")) + (setf (epg-context-output-file context) + (epg--make-temp-file "epg-output")) (if input-file (write-region plain nil input-file nil 'quiet)) (epg-start-encrypt context @@ -2514,8 +1881,8 @@ If you use this function, you will need to wait for the completion of `epg-reset' to clear a temporary output file. If you are unsure, use synchronous version of this function `epg-export-keys-to-file' or `epg-export-keys-to-string' instead." - (epg-context-set-operation context 'export-keys) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'export-keys) + (setf (epg-context-result context) nil) (epg--start context (cons "--export" (mapcar (lambda (key) @@ -2527,10 +1894,8 @@ If you are unsure, use synchronous version of this function "Extract public KEYS." (unwind-protect (progn - (if file - (epg-context-set-output-file context file) - (epg-context-set-output-file context - (epg--make-temp-file "epg-output"))) + (setf (epg-context-output-file context) + (or file (epg--make-temp-file "epg-output"))) (epg-start-export-keys context keys) (epg-wait-for-completion context) (let ((errors (epg-context-result-for context 'error))) @@ -2557,8 +1922,8 @@ If you use this function, you will need to wait for the completion of `epg-reset' to clear a temporary output file. If you are unsure, use synchronous version of this function `epg-import-keys-from-file' or `epg-import-keys-from-string' instead." - (epg-context-set-operation context 'import-keys) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'import-keys) + (setf (epg-context-result context) nil) (epg--start context (if (epg-data-file keys) (list "--import" "--" (epg-data-file keys)) (list "--import"))) @@ -2598,8 +1963,8 @@ If you use this function, you will need to wait for the completion of `epg-reset' to clear a temporary output file. If you are unsure, use synchronous version of this function `epg-receive-keys' instead." - (epg-context-set-operation context 'receive-keys) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'receive-keys) + (setf (epg-context-result context) nil) (epg--start context (cons "--recv-keys" key-id-list))) (defun epg-receive-keys (context keys) @@ -2626,8 +1991,8 @@ If you use this function, you will need to wait for the completion of `epg-reset' to clear a temporary output file. If you are unsure, use synchronous version of this function `epg-delete-keys' instead." - (epg-context-set-operation context 'delete-keys) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'delete-keys) + (setf (epg-context-result context) nil) (epg--start context (cons (if allow-secret "--delete-secret-key" "--delete-key") @@ -2659,8 +2024,8 @@ If you use this function, you will need to wait for the completion of If you are unsure, use synchronous version of this function `epg-sign-keys' instead." (declare (obsolete nil "23.1")) - (epg-context-set-operation context 'sign-keys) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'sign-keys) + (setf (epg-context-result context) nil) (epg--start context (cons (if local "--lsign-key" "--sign-key") @@ -2693,8 +2058,8 @@ If you use this function, you will need to wait for the completion of `epg-reset' to clear a temporary output file. If you are unsure, use synchronous version of this function `epg-generate-key-from-file' or `epg-generate-key-from-string' instead." - (epg-context-set-operation context 'generate-key) - (epg-context-set-result context nil) + (setf (epg-context-operation context) 'generate-key) + (setf (epg-context-result context) nil) (if (epg-data-file parameters) (epg--start context (list "--batch" "--genkey" "--" (epg-data-file parameters))) @@ -2733,6 +2098,38 @@ PARAMETERS is a string which tells how to create the key." (epg-errors-to-string errors)))))) (epg-reset context))) +(defun epg-start-edit-key (context key edit-callback handback) + "Initiate an edit operation on KEY. + +EDIT-CALLBACK is called from process filter and takes 3 +arguments: the context, a status, an argument string, and the +handback argument. + +If you use this function, you will need to wait for the completion of +`epg-gpg-program' by using `epg-wait-for-completion' and call +`epg-reset' to clear a temporary output file. +If you are unsure, use synchronous version of this function +`epg-edit-key' instead." + (setf (epg-context-operation context) 'edit-key) + (setf (epg-context-result context) nil) + (setf (epg-context-edit-callback context) (cons edit-callback handback)) + (epg--start context (list "--edit-key" + (epg-sub-key-id + (car (epg-key-sub-key-list key)))))) + +(defun epg-edit-key (context key edit-callback handback) + "Edit KEY in the keyring." + (unwind-protect + (progn + (epg-start-edit-key context key edit-callback handback) + (epg-wait-for-completion context) + (let ((errors (epg-context-result-for context 'error))) + (if errors + (signal 'epg-error + (list "Edit key failed" + (epg-errors-to-string errors)))))) + (epg-reset context))) + (defun epg--decode-percent-escape (string) (let ((index 0)) (while (string-match "%\\(\\(%\\)\\|\\([0-9A-Fa-f][0-9A-Fa-f]\\)\\)" diff --git a/lisp/erc/.gitignore b/lisp/erc/.gitignore deleted file mode 100644 index 7053c310135..00000000000 --- a/lisp/erc/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -{arch} -.arch-ids -*.elc diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 58aa0387f19..d4dee671439 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,15 +1,112 @@ +2014-11-23 Michael Albinus + + * erc-desktop-notifications.el (erc-notifications-bus): + New customer option. Supports cases when Emacs hasn't been + invoked in the same environment where the notifications shall go to. + (erc-notifications-notify): Use it. + +2014-11-10 Kelvin White + + * erc-stamp.el (erc-timestamp-intangible): Change version tag to 24.5. + +2014-11-05 Stefan Monnier + + * erc.el (erc-send-input): Bind `str' dynamically (bug#18936). + +2014-10-29 Paul Eggert + + Simplify use of current-time and friends. + * erc-backend.el (TOPIC): Omit unnecessary call to current-time. + * erc.el (erc-emacs-time-to-erc-time): Simplify by using float-time. + (erc-current-time): Simplify by using erc-emacs-time-to-erc-time. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-15 Ivan Shmakov + + * erc-track.el (erc-modified-channels-display): Update mode line + more frequently (bug#18510). + +2014-10-10 Kelvin White + + * erc.el (erc-initialize-log-marker): Only initialize + erc-last-saved-position if not already a marker. + +2014-10-04 Stefan Monnier + + * erc.el (erc-channel-receive-names): Silence compiler warning. + (erc-format-@nick, erc-update-modes): Idem. + +2014-10-03 Kelvin White + + * erc.el (erc-rename-buffers): Use defcustom instead of defvar for + buffer renaming configuration option. + +2014-10-02 Paul Eggert + + * erc.el (erc-nick-at-point): Fix format-string typo (Bug#17755). + +2014-10-02 Kelvin White + + * erc.el (erc-rename-buffer-p): When set to t buffers will be + renamed to the current irc network. + (erc-format-target-and/or-network): Use `erc-rename-buffer-p' when + renaming buffers. + + * erc-ring.el (erc-input-ring-setup): Fixes Bug #18599 + +2014-09-30 Stefan Monnier + + * erc-track.el (erc-modified-channels-display): Update all mode lines + if needed (bug#18510). Remove call to erc-modified-channels-object + where we ignored the return value. + (erc-modified-channels-update): Don't force-mode-line-update here + any more. + +2014-09-26 Kelvin White + + * erc.el (erc-format-nick): Fix code regression - Bug #18551 + +2014-09-25 Kelvin White + + * erc.el: Follow Emacs version instead of tracking it seperately. + (erc-quit/part-reason-default) : Clean up quit/part message + functions by abstracting repetitive code, change version string. + (erc-quit-reason-various, erc-quit-reason-normal, erc-quit-reason-zippy) + (erc-part-reason-normal, erc-part-reason-zippy, erc-part-reason-various) + (erc-cmd-SV, erc-ctcp-query-VERSION, erc-version, erc-version-string): + Change version string. + +2014-08-13 Kelvin White + + * erc.el (erc-send-input): Disable display commands in current buffer + (erc-format-target-and/or-network): Fix cases when buffer name is set + +2014-08-12 Stefan Monnier + + * erc-stamp.el (erc-timestamp-intangible): Disable by default because + `intangible' is evil. + +2014-08-07 Kelvin White + + * erc.el (erc-channel-receive-names): Fix variable names + (erc-format-target-and/or-network): Rename server-buffers to + network name if possible + 2014-07-08 Stefan Monnier * erc.el (erc-channel-receive-names): Reduce redundancy. -2014-06-19 Kelvin White +2014-06-19 Kelvin White * erc-backend.el: Handle user modes in relevant server responses * erc.el: Better user mode support. (erc-channel-user): Add members for new modes. (erc-channel-member-halfop-p, erc-channel-user-admin-p) (erc-channel-user-owner-p): Use new struct members. - (erc-format-nick, erc-format-@nick): Display user modes as nick prefix. + (erc-format-nick, erc-format-@nick): Display user modes as nick prefix. (erc-nick-prefix-face, erc-my-nick-prefix-face): Add new faces (erc-get-user-mode-prefix): Return symbol for mode prefix. (erc-update-channel-member, erc-update-current-channel-member) @@ -368,9 +465,9 @@ 2011-11-28 Mike Kazantsev (tiny change) - * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Updated regexp to + * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Update regexp to match quoted filenames with spaces inside. - (erc-dcc-handle-ctcp-send): Updated regexp match group numbers, + (erc-dcc-handle-ctcp-send): Update regexp match group numbers, added processing of escaped quotes and backslashes if filename itself was in quotes. diff --git a/lisp/erc/ChangeLog.02 b/lisp/erc/ChangeLog.02 index 77d4855abc2..1b4a52c12e0 100644 --- a/lisp/erc/ChangeLog.02 +++ b/lisp/erc/ChangeLog.02 @@ -2091,7 +2091,7 @@ * erc.el 2002-07-15T00:01:34Z!raeburn@raeburn.org: silly typo corrected - * erc.el: * erc.el: * New variable: erc-common-server-name-suffixes + * erc.el: New variable: erc-common-server-name-suffixes This alist can be used to change the server names displayed in mode-line to a shorter version.. * New function: erc-shorten-server-name (uses var above) diff --git a/lisp/erc/ChangeLog.03 b/lisp/erc/ChangeLog.03 index 5f04cf8ebe5..029e29e4728 100644 --- a/lisp/erc/ChangeLog.03 +++ b/lisp/erc/ChangeLog.03 @@ -323,7 +323,7 @@ * erc.el(erc-modules): Add some more symbols to the set - * erc.el(erc-modules): * erc.el(erc-modules): Add :greedy t to the set in + * erc.el(erc-modules): Add :greedy t to the set in * erc-dcc.el: More autoloads which make dcc autoload upon ctcp dcc query received. @@ -714,7 +714,7 @@ defcustom `erc-log-insert-log-on-open' defcustom `erc-generate-log-file-name-function' defun `erc-save-buffer-in-logs' (autoloads from erc-log.el) - defuns `erc-generate-log-file-name-*' + defuns `erc-generate-log-file-name-*' defun `erc-current-logfile' defun `erc-logging-enabled' (autoloads from erc-log.el) - erc-truncate-buffer-to-size: fix for double-saving bug when @@ -744,7 +744,7 @@ 2003-04-27 Damien Elmes - * erc.el: * erc.el: erc-modules: added + * erc.el: erc-modules: added 2003-04-27 Alex Schroeder @@ -1567,7 +1567,7 @@ * (erc-cmd-NAMES): Ditto. * (erc-cmd-ME): Put 'do-not-parse-args property. - * erc-dcc.el:nick: * erc-dcc.el: * erc-dcc-list: Renamed + * erc-dcc-list: Renamed * (erc-dcc-member). Treat :nick as either a nick!user@host or nick, do appropriate comparisons, simplified. * (erc-dcc-list-add): New functions @@ -1692,12 +1692,12 @@ 2003-01-11 Mario Lang - * erc-dcc.el: * erc-dcc.el: * (erc-dcc-do-LIST-command): Fix + * erc-dcc.el (erc-dcc-do-LIST-command): Fix * erc-dcc.el: * buffer-local variables erc-dcc-sent-marker and erc-dcc-send-confirmed marker removed Keep This info in erc-dcc-member :sent and :confirmed plist values - * : * :buffer plist for :type 'SEND removed, since we can get this with (marker-buffer + :buffer plist for :type 'SEND removed, since we can get this with (marker-buffer * erc-dcc-send-connect-hook: New hook, defaults to erc-dcc-send-block and erc-dcc-send-connected, which now prints a msg... * erc-dcc.el: diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 8751a194e3b..fb22f58822d 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -1465,8 +1465,7 @@ add things to `%s' instead." "The channel topic has changed." nil (let* ((ch (car (erc-response.command-args parsed))) (topic (erc-trim-string (erc-response.contents parsed))) - (time (format-time-string erc-server-timestamp-format - (current-time)))) + (time (format-time-string erc-server-timestamp-format))) (pcase-let ((`(,nick ,login ,host) (erc-parse-user (erc-response.sender parsed)))) (erc-update-channel-member ch nick nick nil nil nil nil nil nil host login) diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index 6e2c60cf6fa..10e73182fbd 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el @@ -183,7 +183,7 @@ PAR is a number of a regexp grouping whose text will be passed to 'nicknames, these are ignored, and CALLBACK will be called with the nickname matched as the argument." :group 'erc-button - :version "24.3" ; remove finger (bug#4443) + :version "24.1" ; remove finger (bug#4443) :type '(repeat (list :tag "Button" (choice :tag "Matches" diff --git a/lisp/erc/erc-desktop-notifications.el b/lisp/erc/erc-desktop-notifications.el index c0362b773dd..323788e1314 100644 --- a/lisp/erc/erc-desktop-notifications.el +++ b/lisp/erc/erc-desktop-notifications.el @@ -46,6 +46,12 @@ :group 'erc-notifications :type '(choice (const :tag "No icon" nil) file)) +(defcustom erc-notifications-bus :session + "D-Bus bus to use for notification." + :version "25.1" + :group 'erc-notifications + :type '(choice (const :tag "Session bus" :session) string)) + (defvar dbus-debug) ; used in the macroexpansion of dbus-ignore-errors (defun erc-notifications-notify (nick msg) @@ -53,7 +59,8 @@ This will replace the last notification sent with this function." (dbus-ignore-errors (setq erc-notifications-last-notification - (notifications-notify :title (xml-escape-string nick) + (notifications-notify :bus erc-notifications-bus + :title (xml-escape-string nick) :body (xml-escape-string msg) :replaces-id erc-notifications-last-notification :app-icon erc-notifications-icon)))) diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el index 1762700ff36..682585c53bb 100644 --- a/lisp/erc/erc-ring.el +++ b/lisp/erc/erc-ring.el @@ -67,7 +67,8 @@ variable.") (defun erc-input-ring-setup () "Do the setup required so that we can use comint style input rings. Call this function when setting up the mode." - (setq erc-input-ring (make-ring comint-input-ring-size)) + (unless (ring-p erc-input-ring) + (setq erc-input-ring (make-ring comint-input-ring-size))) (setq erc-input-ring-index nil)) (defun erc-add-to-input-ring (s) diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index ab951652bcc..37982069abe 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el @@ -147,10 +147,11 @@ the minibuffer." :group 'erc-stamp :type 'string) -(defcustom erc-timestamp-intangible t +(defcustom erc-timestamp-intangible nil "Whether the timestamps should be intangible, i.e. prevent the point from entering them and instead jump over them." :group 'erc-stamp + :version "24.5" :type 'boolean) (defface erc-timestamp-face '((t :weight bold :foreground "green")) diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index 3f7b6a7b501..fae6be433fd 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el @@ -265,9 +265,7 @@ nil - don't add to mode line." (erc-track-add-to-mode-line val)))) (defun erc-modified-channels-object (strings) - "Generate a new `erc-modified-channels-object' based on STRINGS. -If STRINGS is nil, we initialize `erc-modified-channels-object' to -an appropriate initial value for this flavor of Emacs." + "Generate a new `erc-modified-channels-object' based on STRINGS." (if strings (if (featurep 'xemacs) (let ((e-m-c-s '("["))) @@ -743,7 +741,7 @@ only consider active buffers visible.") (defvar erc-modified-channels-update-inside nil "Variable to prevent running `erc-modified-channels-update' multiple times. Without it, you cannot debug `erc-modified-channels-display', -because the debugger also cases changes to the window-configuration.") +because the debugger also causes changes to the window-configuration.") (defun erc-modified-channels-update (&rest _args) "This function updates the information in `erc-modified-channels-alist' @@ -767,8 +765,7 @@ ARGS are ignored." (erc-modified-channels-remove-buffer buffer)))) erc-modified-channels-alist) (when removed-channel - (erc-modified-channels-display) - (force-mode-line-update t))) + (erc-modified-channels-display))) (remove-hook 'post-command-hook 'erc-modified-channels-update))) (defvar erc-track-mouse-face (if (featurep 'xemacs) @@ -825,43 +822,45 @@ Use `erc-make-mode-line-buffer-name' to create buttons." ((eq 'importance erc-track-switch-direction) (erc-track-sort-by-importance))) (run-hooks 'erc-track-list-changed-hook) - (unless (eq erc-track-position-in-mode-line nil) - (if (null erc-modified-channels-alist) - (setq erc-modified-channels-object (erc-modified-channels-object nil)) - ;; erc-modified-channels-alist contains all the data we need. To - ;; better understand what is going on, we split things up into - ;; four lists: BUFFERS, COUNTS, SHORT-NAMES, and FACES. These - ;; four lists we use to create a new - ;; `erc-modified-channels-object' using - ;; `erc-make-mode-line-buffer-name'. - (let* ((buffers (mapcar 'car erc-modified-channels-alist)) - (counts (mapcar 'cadr erc-modified-channels-alist)) - (faces (mapcar 'cddr erc-modified-channels-alist)) - (long-names (mapcar #'(lambda (buf) - (or (buffer-name buf) - "")) - buffers)) - (short-names (if (functionp erc-track-shorten-function) - (funcall erc-track-shorten-function - long-names) - long-names)) - strings) - (while buffers - (when (car short-names) - (setq strings (cons (erc-make-mode-line-buffer-name - (car short-names) - (car buffers) - (car faces) - (car counts)) - strings))) - (setq short-names (cdr short-names) - buffers (cdr buffers) - counts (cdr counts) - faces (cdr faces))) - (when (featurep 'xemacs) - (erc-modified-channels-object nil)) - (setq erc-modified-channels-object - (erc-modified-channels-object strings)))))) + (when erc-track-position-in-mode-line + (let* ((oldobject erc-modified-channels-object) + (strings + (when erc-modified-channels-alist + ;; erc-modified-channels-alist contains all the data we need. To + ;; better understand what is going on, we split things up into + ;; four lists: BUFFERS, COUNTS, SHORT-NAMES, and FACES. These + ;; four lists we use to create a new + ;; `erc-modified-channels-object' using + ;; `erc-make-mode-line-buffer-name'. + (let* ((buffers (mapcar 'car erc-modified-channels-alist)) + (counts (mapcar 'cadr erc-modified-channels-alist)) + (faces (mapcar 'cddr erc-modified-channels-alist)) + (long-names (mapcar #'(lambda (buf) + (or (buffer-name buf) + "")) + buffers)) + (short-names (if (functionp erc-track-shorten-function) + (funcall erc-track-shorten-function + long-names) + long-names)) + strings) + (while buffers + (when (car short-names) + (setq strings (cons (erc-make-mode-line-buffer-name + (car short-names) + (car buffers) + (car faces) + (car counts)) + strings))) + (setq short-names (cdr short-names) + buffers (cdr buffers) + counts (cdr counts) + faces (cdr faces))) + strings))) + (newobject (erc-modified-channels-object strings))) + (unless (equal-including-properties oldobject newobject) + (setq erc-modified-channels-object newobject) + (force-mode-line-update t))))) (defun erc-modified-channels-remove-buffer (buffer) "Remove BUFFER from `erc-modified-channels-alist'." diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 3bd9ff3ce71..37b24eaaa60 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -12,7 +12,7 @@ ;; Kelvin White (kwhite@gnu.org) ;; Maintainer: emacs-devel@gnu.org ;; Keywords: IRC, chat, client, Internet -;; Version: 5.3 + ;; This file is part of GNU Emacs. @@ -63,11 +63,11 @@ ;;; History: ;; -;;; Code: - -(defconst erc-version-string "Version 5.3" +(defconst erc-version-string (format "\C-bERC\C-b (IRC client for Emacs %s)" emacs-version) "ERC version. This is used by function `erc-version'.") +;;; Code: + (eval-when-compile (require 'cl-lib)) (require 'font-lock) (require 'pp) @@ -196,6 +196,11 @@ parameters and authentication." :set (lambda (sym val) (set sym (if (functionp val) (funcall val) val)))) +(defcustom erc-rename-buffers nil + "When this is set to t, buffers will be renamed to network name if available" + :group 'erc + :type 'boolean) + (defvar erc-password nil "Password to use when authenticating to an IRC server. It is not strictly necessary to provide this, since ERC will @@ -1000,7 +1005,7 @@ display of that particular string at all." "Hook called first when some text is sent through `erc-send-current-line'. It gets called with one argument, STRING. -To change the text that will be sent, set the variable STR which is +To change the text that will be sent, set the variable `str' which is used in `erc-send-current-line'. To change the text inserted into the buffer without changing the text @@ -2052,9 +2057,10 @@ Returns the buffer for the given server or channel." "Initialize the `erc-last-saved-position' marker to a sensible position. BUFFER is the current buffer." (with-current-buffer buffer - (setq erc-last-saved-position (make-marker)) - (move-marker erc-last-saved-position - (1- (marker-position erc-insert-marker))))) + (unless (markerp erc-last-saved-position) + (setq erc-last-saved-position (make-marker)) + (move-marker erc-last-saved-position + (1- (marker-position erc-insert-marker)))))) ;; interactive startup @@ -3380,14 +3386,16 @@ If USER is omitted, close the current query buffer if one exists (signal 'wrong-number-of-arguments "")))) (defalias 'erc-cmd-Q 'erc-cmd-QUERY) +(defun erc-quit/part-reason-default () + "Default quit/part message." + (format "\C-bERC\C-b (IRC client for Emacs %s)" emacs-version)) + + (defun erc-quit-reason-normal (&optional s) "Normal quit message. If S is non-nil, it will be used as the quit reason." - (or s - (format "\C-bERC\C-b %s (IRC client for Emacs)"; - \C-b%s\C-b" - erc-version-string) ; erc-official-location) - )) + (or s (erc-quit/part-reason-default))) (defun erc-quit-reason-zippy (&optional s) "Zippy quit message. @@ -3396,7 +3404,7 @@ If S is non-nil, it will be used as the quit reason." (or s (if (fboundp 'yow) (erc-replace-regexp-in-string "\n" "" (yow)) - (erc-quit-reason-normal)))) + (erc-quit/part-reason-default)))) (make-obsolete 'erc-quit-reason-zippy "it will be removed." "24.4") @@ -3409,16 +3417,13 @@ If S is non-nil, it will be used as the quit reason." ((functionp res) (funcall res)) ((stringp res) res) (s s) - (t (erc-quit-reason-normal))))) + (t (erc-quit/part-reason-default))))) (defun erc-part-reason-normal (&optional s) "Normal part message. -If S is non-nil, it will be used as the quit reason." - (or s - (format "\C-bERC\C-b %s (IRC client for Emacs)"; - \C-b%s\C-b" - erc-version-string) ; erc-official-location) - )) +If S is non-nil, it will be used as the part reason." + (or s (erc-quit/part-reason-default))) (defun erc-part-reason-zippy (&optional s) "Zippy part message. @@ -3427,7 +3432,7 @@ If S is non-nil, it will be used as the quit reason." (or s (if (fboundp 'yow) (erc-replace-regexp-in-string "\n" "" (yow)) - (erc-part-reason-normal)))) + (erc-quit/part-reason-default)))) (make-obsolete 'erc-part-reason-zippy "it will be removed." "24.4") @@ -3440,7 +3445,7 @@ If S is non-nil, it will be used as the quit reason." ((functionp res) (funcall res)) ((stringp res) res) (s s) - (t (erc-part-reason-normal))))) + (t (erc-quit/part-reason-default))))) (defun erc-cmd-QUIT (reason) "Disconnect from the current server. @@ -3534,8 +3539,7 @@ the message given by REASON." (defun erc-cmd-SV () "Say the current ERC and Emacs version into channel." - (erc-send-message (format "I'm using ERC %s with %s %s (%s%s) of %s." - erc-version-string + (erc-send-message (format "I'm using ERC with %s %s (%s%s) of %s." (if (featurep 'xemacs) "XEmacs" "GNU Emacs") emacs-version system-configuration @@ -4227,11 +4231,7 @@ and as second argument the event parsed as a vector." (defun erc-format-nick (&optional user _channel-data) "Return the nickname of USER. See also `erc-format-nick-function'." - (let ((nick (erc-server-user-nickname user))) - (concat (erc-propertize - (erc-get-user-mode-prefix nick) - 'face 'erc-nick-prefix-face) - nick))) + (when user (erc-server-user-nickname user))) (defun erc-get-user-mode-prefix (user) (when user @@ -4247,7 +4247,7 @@ See also `erc-format-nick-function'." (erc-propertize "+" 'help-echo "voice")) (t "")))) -(defun erc-format-@nick (&optional user channel-data) +(defun erc-format-@nick (&optional user _channel-data) "Format the nickname of USER showing if USER has a voice, is an operator, half-op, admin or owner. Owners have \"~\", admins have \"&\", operators have \"@\" and users with voice have \"+\" as a @@ -4594,8 +4594,8 @@ See also `erc-display-message'." (unless erc-disable-ctcp-replies (erc-send-ctcp-notice nick (format - "VERSION \C-bERC\C-b %s - an IRC client for emacs (\C-b%s\C-b)" - erc-version-string + "VERSION \C-bERC\C-b - an IRC client for Emacs %s (\C-b%s\C-b)" + emacs-version erc-official-location))) nil) @@ -4771,22 +4771,24 @@ channel." (hop-ch (cdr (assq ?h prefix))) (adm-ch (cdr (assq ?a prefix))) (own-ch (cdr (assq ?q prefix))) - names name op voice halfop admin owner) - (setq names (delete "" (split-string names-string))) + (names (delete "" (split-string names-string))) + name op voice halfop admin owner) (let ((erc-channel-members-changed-hook nil)) (dolist (item names) - (let ((updatep t)) + (let ((updatep t) + (ch (aref item 0))) (setq name item op 'off voice 'off halfop 'off admin 'off owner 'off) - (if (rassq (elt item 0) prefix) + (if (rassq ch prefix) (if (= (length item) 1) (setq updatep nil) (setq name (substring item 1)) - (setf (pcase (aref item 0) + (setf (pcase ch ((pred (eq voice-ch)) voice) - ((pred (eq hop-ch)) hop) + ((pred (eq hop-ch)) halfop) ((pred (eq op-ch)) op) - ((pred (eq adm-ch)) adm) - ((pred (eq own-ch)) own)) + ((pred (eq adm-ch)) admin) + ((pred (eq own-ch)) owner) + (_ (error "Unknown prefix char `%S'" ch) voice)) 'on))) (when updatep (puthash (erc-downcase name) t @@ -5087,7 +5089,7 @@ arg-modes is a list of triples of the form: (list add-modes remove-modes arg-modes)) nil)) -(defun erc-update-modes (tgt mode-string &optional nick host login) +(defun erc-update-modes (tgt mode-string &optional _nick _host _login) "Update the mode information for TGT, provided as MODE-STRING. Optional arguments: NICK, HOST and LOGIN - the attributes of the person who changed the modes." @@ -5359,6 +5361,7 @@ This returns non-nil only if we actually send anything." (beep)) nil) (t + (defvar str) ;; FIXME: Make it obey the "erc-" prefix convention. (let ((str input) (erc-insert-this t)) (setq erc-send-this t) @@ -5377,8 +5380,6 @@ This returns non-nil only if we actually send anything." (or (and erc-flood-protect (erc-split-line line)) (list line)))) (split-string str "\n")) - ;; Insert the prompt along with the command. - (erc-display-command str) (erc-process-input-line (concat str "\n") t nil)) t))))) @@ -5956,17 +5957,10 @@ Returns a list of the form (HIGH LOW), compatible with Emacs time format." (list (truncate (/ n 65536)) (truncate (mod n 65536))))) -(defun erc-emacs-time-to-erc-time (time) - "Convert Emacs TIME to a number of seconds since the epoch." - (when time - (+ (* (nth 0 time) 65536.0) (nth 1 time)))) -; (round (+ (* (nth 0 tm) 65536.0) (nth 1 tm)))) +(defalias 'erc-emacs-time-to-erc-time + (if (featurep 'xemacs) 'time-to-seconds 'float-time)) -(defun erc-current-time () - "Return the `current-time' as a number of seconds since the epoch. - -See also `erc-emacs-time-to-erc-time'." - (erc-emacs-time-to-erc-time (current-time))) +(defalias 'erc-current-time 'erc-emacs-time-to-erc-time) (defun erc-time-diff (t1 t2) "Return the time difference in seconds between T1 and T2." @@ -6086,7 +6080,7 @@ entry of `channel-members'." nick login host (if full-name (format " (%s)" full-name) "") (if (or voice halfop op admin owner) - (format " and is +%s%s on %s" + (format " and is +%s%s%s%s%s on %s" (if voice "v" "") (if halfop "h" "") (if op "o" "") @@ -6233,7 +6227,11 @@ shortened server name instead." (cond ((erc-default-target) (concat (erc-string-no-properties (erc-default-target)) "@" network-name)) - (network-name network-name) + ((and network-name + (not (get-buffer network-name))) + (when erc-rename-buffers + (rename-buffer network-name)) + network-name) (t (buffer-name (current-buffer)))))) (defun erc-format-away-status () @@ -6372,7 +6370,7 @@ P may be an integer or a service name." If optional argument HERE is non-nil, insert version number at point." (interactive "P") (let ((version-string - (format "ERC %s (GNU Emacs %s)" erc-version-string emacs-version))) + (format "ERC (IRC client for Emacs %s)" emacs-version))) (if here (insert version-string) (if (called-interactively-p 'interactive) diff --git a/lisp/eshell/.gitignore b/lisp/eshell/.gitignore deleted file mode 100644 index 2abf84ba3ee..00000000000 --- a/lisp/eshell/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -esh-groups.el - diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el index faba9088ecd..4ddf8862618 100644 --- a/lisp/eshell/em-ls.el +++ b/lisp/eshell/em-ls.el @@ -490,7 +490,7 @@ whose cdr is the list of file attributes." " " (format-time-string (concat eshell-ls-date-format " " - (if (= (nth 5 (decode-time (current-time))) + (if (= (nth 5 (decode-time)) (nth 5 (decode-time (nth (cond ((eq sort-method 'by-atime) 4) diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el index b7830db08b5..ebbca58a442 100644 --- a/lisp/eshell/esh-io.el +++ b/lisp/eshell/esh-io.el @@ -118,8 +118,6 @@ from executing while Emacs is redisplaying." :type 'integer :group 'eshell-io) -(defvar x-select-enable-clipboard) ; term/common-win - (defcustom eshell-virtual-targets '(("/dev/eshell" eshell-interactive-print nil) ("/dev/kill" (lambda (mode) @@ -128,7 +126,7 @@ from executing while Emacs is redisplaying." 'eshell-kill-append) t) ("/dev/clip" (lambda (mode) (if (eq mode 'overwrite) - (let ((x-select-enable-clipboard t)) + (let ((gui-select-enable-clipboard t)) (kill-new ""))) 'eshell-clipboard-append) t)) "Map virtual devices name to Emacs Lisp functions. @@ -328,7 +326,7 @@ last execution result should not be changed." (defun eshell-clipboard-append (string) "Call `kill-append' with STRING, if it is indeed a string." (if (stringp string) - (let ((x-select-enable-clipboard t)) + (let ((gui-select-enable-clipboard t)) (kill-append string nil)))) (defun eshell-get-target (target &optional mode) diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el index 3bb6e8f31c7..53f642510f2 100644 --- a/lisp/eshell/esh-util.el +++ b/lisp/eshell/esh-util.el @@ -539,7 +539,7 @@ Unless optional argument INPLACE is non-nil, return a new string." (defmacro eshell-with-file-modes (modes &rest forms) "Evaluate, with file-modes set to MODES, the given FORMS." - (declare (obsolete with-file-modes "24.5")) + (declare (obsolete with-file-modes "25.1")) `(with-file-modes ,modes ,@forms)) (defmacro eshell-with-private-file-modes (&rest forms) @@ -653,7 +653,7 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable. (match-string 6)))) (if (nth 0 moment) (setcar (nthcdr 5 moment) - (nth 5 (decode-time (current-time)))) + (nth 5 (decode-time))) (setcar (nthcdr 0 moment) 0) (setcar (nthcdr 1 moment) 0) (setcar (nthcdr 2 moment) 0)) diff --git a/lisp/faces.el b/lisp/faces.el index d9239d9e1eb..1d4fc9c5570 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -53,7 +53,7 @@ This means to treat a terminal of type TYPE as if it were of type ALIAS." :type '(alist :key-type (string :tag "Terminal") :value-type (string :tag "Alias")) :group 'terminals - :version "24.5") + :version "25.1") (declare-function xw-defined-colors "term/common-win" (&optional frame)) @@ -1825,7 +1825,9 @@ If omitted or nil, that stands for the selected frame's display." (declare-function x-display-grayscale-p "xfns.c" (&optional terminal)) (defun display-grayscale-p (&optional display) - "Return non-nil if frames on DISPLAY can display shades of gray." + "Return non-nil if frames on DISPLAY can display shades of gray. +DISPLAY should be either a frame or a display name (a string). +If omitted or nil, that stands for the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -2090,7 +2092,8 @@ frame parameters in PARAMETERS." (value (cdr (assq param-name parameters)))) (if value (set-face-attribute (nth 1 param) frame - (nth 2 param) value)))))) + (nth 2 param) value)))) + (frame-can-run-window-configuration-change-hook frame t))) (defun tty-handle-reverse-video (frame parameters) "Handle the reverse-video frame parameter for terminal frames." diff --git a/lisp/ffap.el b/lisp/ffap.el index 95a651bbde6..e5f574db2de 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -167,7 +167,7 @@ schemes (e.g. \"ftp\"); in that case, only convert those URLs." "If non-nil, allow lax URL matching." :type 'boolean :group 'ffap - :version "24.5") + :version "25.1") (defcustom ffap-ftp-default-user "anonymous" "User name in FTP file names generated by `ffap-host-to-path'. diff --git a/lisp/files.el b/lisp/files.el index 9272e98384f..d55ef1ad538 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -729,6 +729,67 @@ The path separator is colon in GNU and GNU-like systems." (lambda (f) (and (file-directory-p f) 'dir-ok))) (error "No such directory found via CDPATH environment variable")))) +(defun file-tree-walk (dir action &rest args) + "Walk DIR executing ACTION on each file, with ARGS as additional arguments. +For each file, the function calls ACTION as follows: + + \(ACTION DIRECTORY BASENAME ARGS\) + +Where DIRECTORY is the leading directory of the file, + BASENAME is the basename of the file, + and ARGS are as specified in the call to this function, or nil if omitted. + +The ACTION is applied to each subdirectory before descending into +it, and if nil is returned at that point, the descent will be +prevented. Directory entries are sorted with string-lessp." + (cond ((file-directory-p dir) + (setq dir (file-name-as-directory dir)) + (let ((lst (directory-files dir nil nil t)) + fullname file) + (while lst + (setq file (car lst)) + (setq lst (cdr lst)) + (cond ((member file '("." ".."))) + (t + (and (apply action dir file args) + (setq fullname (concat dir file)) + (file-directory-p fullname) + (apply 'file-tree-walk fullname action args))))))) + (t + (apply action + (file-name-directory dir) + (file-name-nondirectory dir) + args)))) + +(defsubst directory-name-p (name) + "Return non-nil if NAME ends with a slash character." + (and (> (length name) 0) + (char-equal (aref name (1- (length name))) ?/))) + +(defun directory-files-recursively (dir match &optional include-directories) + "Return all files under DIR that have file names matching MATCH (a regexp). +This function works recursively. Files are returned in \"depth first\" +and alphabetical order. +If INCLUDE-DIRECTORIES, also include directories that have matching names." + (let ((result nil) + (files nil)) + (dolist (file (sort (file-name-all-completions "" dir) + 'string<)) + (unless (member file '("./" "../")) + (if (directory-name-p file) + (let* ((leaf (substring file 0 (1- (length file)))) + (path (expand-file-name leaf dir))) + ;; Don't follow symlinks to other directories. + (unless (file-symlink-p path) + (setq result (nconc result (directory-files-recursively + path match include-directories)))) + (when (and include-directories + (string-match match leaf)) + (setq result (nconc result (list path))))) + (when (string-match match file) + (push (expand-file-name file dir) files))))) + (nconc result (nreverse files)))) + (defun load-file (file) "Load the Lisp file named FILE." ;; This is a case where .elc makes a lot of sense. @@ -1375,6 +1436,9 @@ return value, which may be passed as the REQUIRE-MATCH arg to (defmacro minibuffer-with-setup-hook (fun &rest body) "Temporarily add FUN to `minibuffer-setup-hook' while executing BODY. +FUN can also be (:append FUN1), in which case FUN1 is appended to +`minibuffer-setup-hook'. + BODY should use the minibuffer at most once. Recursive uses of the minibuffer are unaffected (FUN is not called additional times). @@ -1383,20 +1447,23 @@ This macro actually adds an auxiliary function that calls FUN, rather than FUN itself, to `minibuffer-setup-hook'." (declare (indent 1) (debug t)) (let ((hook (make-symbol "setup-hook")) - (funsym (make-symbol "fun"))) + (funsym (make-symbol "fun")) + (append nil)) + (when (eq (car-safe fun) :append) + (setq append '(t) fun (cadr fun))) `(let ((,funsym ,fun) ,hook) (setq ,hook - (lambda () - ;; Clear out this hook so it does not interfere - ;; with any recursive minibuffer usage. - (remove-hook 'minibuffer-setup-hook ,hook) - (funcall ,funsym))) + (lambda () + ;; Clear out this hook so it does not interfere + ;; with any recursive minibuffer usage. + (remove-hook 'minibuffer-setup-hook ,hook) + (funcall ,funsym))) (unwind-protect - (progn - (add-hook 'minibuffer-setup-hook ,hook) - ,@body) - (remove-hook 'minibuffer-setup-hook ,hook))))) + (progn + (add-hook 'minibuffer-setup-hook ,hook ,@append) + ,@body) + (remove-hook 'minibuffer-setup-hook ,hook))))) (defun find-file-read-args (prompt mustmatch) (list (read-file-name prompt nil default-directory mustmatch) @@ -1786,12 +1853,13 @@ When nil, never request confirmation." :version "22.1" :type '(choice integer (const :tag "Never request confirmation" nil))) -(defcustom out-of-memory-warning-percentage 50 +(defcustom out-of-memory-warning-percentage nil "Warn if file size exceeds this percentage of available free memory. -When nil, never issue warning." +When nil, never issue warning. Beware: This probably doesn't do what you +think it does, because \"free\" is pretty hard to define in practice." :group 'files :group 'find-file - :version "24.4" + :version "25.1" :type '(choice integer (const :tag "Never issue warning" nil))) (defun abort-if-file-too-large (size op-type filename) @@ -2350,7 +2418,7 @@ since only a single case-insensitive search through the alist is made." ("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode) ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) ("\\.scm\\.[0-9]*\\'" . scheme-mode) - ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) + ("\\.[ckz]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) ("\\.bash\\'" . sh-mode) ("\\(/\\|\\`\\)\\.\\(bash_\\(profile\\|history\\|log\\(in\\|out\\)\\)\\|z?log\\(in\\|out\\)\\)\\'" . sh-mode) ("\\(/\\|\\`\\)\\.\\(shrc\\|[kz]shrc\\|bashrc\\|t?cshrc\\|esrc\\)\\'" . sh-mode) @@ -2406,17 +2474,16 @@ ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'" . archive-mode) ("\\.dbk\\'" . xml-mode) ("\\.dtd\\'" . sgml-mode) ("\\.ds\\(ss\\)?l\\'" . dsssl-mode) - ("\\.js\\'" . javascript-mode) + ("\\.jsm?\\'" . javascript-mode) ("\\.json\\'" . javascript-mode) ("\\.[ds]?vh?\\'" . verilog-mode) ("\\.by\\'" . bovine-grammar-mode) ("\\.wy\\'" . wisent-grammar-mode) ;; .emacs or .gnus or .viper following a directory delimiter in - ;; Unix, MSDOG or VMS syntax. - ("[]>:/\\]\\..*\\(emacs\\|gnus\\|viper\\)\\'" . emacs-lisp-mode) + ;; Unix or MS-DOS syntax. + ("[:/\\]\\..*\\(emacs\\|gnus\\|viper\\)\\'" . emacs-lisp-mode) ("\\`\\..*emacs\\'" . emacs-lisp-mode) - ;; _emacs following a directory delimiter - ;; in MsDos syntax + ;; _emacs following a directory delimiter in MS-DOS syntax ("[:/]_emacs\\'" . emacs-lisp-mode) ("/crontab\\.X*[0-9]+\\'" . shell-script-mode) ("\\.ml\\'" . lisp-mode) @@ -2439,7 +2506,7 @@ ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'" . archive-mode) ("\\.\\(asn\\|mib\\|smi\\)\\'" . snmp-mode) ("\\.\\(as\\|mi\\|sm\\)2\\'" . snmpv2-mode) ("\\.\\(diffs?\\|patch\\|rej\\)\\'" . diff-mode) - ("\\.\\(dif\\|pat\\)\\'" . diff-mode) ; for MSDOG + ("\\.\\(dif\\|pat\\)\\'" . diff-mode) ; for MS-DOS ("\\.[eE]?[pP][sS]\\'" . ps-mode) ("\\.\\(?:PDF\\|DVI\\|OD[FGPST]\\|DOCX?\\|XLSX?\\|PPTX?\\|pdf\\|djvu\\|dvi\\|od[fgpst]\\|docx?\\|xlsx?\\|pptx?\\)\\'" . doc-view-mode-maybe) ("configure\\.\\(ac\\|in\\)\\'" . autoconf-mode) @@ -3643,10 +3710,7 @@ VARIABLES list of the class. The list is processed in order. * If the element is of the form (DIRECTORY . LIST), and DIRECTORY is an initial substring of the file's directory, then LIST is applied by recursively following these rules." - (let ((elt (assq class dir-locals-class-alist))) - (if elt - (setcdr elt variables) - (push (cons class variables) dir-locals-class-alist)))) + (setf (alist-get class dir-locals-class-alist) variables)) (defconst dir-locals-file ".dir-locals.el" "File that contains directory-local variables. @@ -4760,7 +4824,7 @@ Before and after saving the buffer, this function runs ;; This returns a value (MODES EXTENDED-ATTRIBUTES BACKUPNAME), like ;; backup-buffer. (defun basic-save-buffer-2 () - (let (tempsetmodes setmodes writecoding) + (let (tempsetmodes setmodes) (if (not (file-writable-p buffer-file-name)) (let ((dir (file-name-directory buffer-file-name))) (if (not (file-directory-p dir)) @@ -4776,14 +4840,6 @@ Before and after saving the buffer, this function runs buffer-file-name))) (setq tempsetmodes t) (error "Attempt to save to a file which you aren't allowed to write")))))) - ;; This may involve prompting, so do it now before backing up the file. - ;; Otherwise there can be a delay while the user answers the - ;; prompt during which the original file has been renamed. (Bug#13522) - (setq writecoding - ;; Args here should match write-region call below around - ;; which we use writecoding. - (choose-write-coding-system nil nil buffer-file-name nil t - buffer-file-truename)) (or buffer-backed-up (setq setmodes (backup-buffer))) (let* ((dir (file-name-directory buffer-file-name)) @@ -4865,11 +4921,10 @@ Before and after saving the buffer, this function runs (logior (car setmodes) 128)))))) (let (success) (unwind-protect + (progn ;; Pass in nil&nil rather than point-min&max to indicate ;; we're saving the buffer rather than just a region. ;; write-region-annotate-functions may make us of it. - (let ((coding-system-for-write writecoding) - (coding-system-require-warning nil)) (write-region nil nil buffer-file-name nil t buffer-file-truename) (setq success t)) @@ -6676,7 +6731,7 @@ only these files will be asked to be saved." (`add (concat "/:" (apply operation arguments))) (`insert-file-contents (let ((visit (nth 1 arguments))) - (prog1 + (unwind-protect (apply operation arguments) (when (and visit buffer-file-name) (setq buffer-file-name (concat "/:" buffer-file-name)))))) diff --git a/lisp/find-cmd.el b/lisp/find-cmd.el index acd820a31ce..276aeed1208 100644 --- a/lisp/find-cmd.el +++ b/lisp/find-cmd.el @@ -39,6 +39,8 @@ ;;; Code: +(require 'grep) + (defconst find-constituents '((and . find-and) (not . find-not) @@ -145,13 +147,15 @@ For example: `default-directory' is used as the initial search path. The result is a string that should be ready for the command line." - (concat - "find " (shell-quote-argument (expand-file-name default-directory)) " " - (cond - ((cdr subfinds) - (mapconcat 'find-to-string subfinds "")) - (t - (find-to-string (car subfinds)))))) + ;; FIXME: Provide a version that returns a list of strings (ready to pass to + ;; call-process). + (concat find-program " " + (shell-quote-argument (expand-file-name default-directory)) " " + (cond + ((cdr subfinds) + (mapconcat #'find-to-string subfinds "")) + (t + (find-to-string (car subfinds)))))) (defun find-and (form) "And FORMs together, so: @@ -161,7 +165,7 @@ will produce: (if (< (length form) 2) (find-to-string (car form)) (concat "\\( " - (mapconcat 'find-to-string form "-and ") + (mapconcat #'find-to-string form "-and ") "\\) "))) (defun find-or (form) @@ -172,7 +176,7 @@ will produce: (if (< (length form) 2) (find-to-string (car form)) (concat "\\( " - (mapconcat 'find-to-string form "-or ") + (mapconcat #'find-to-string form "-or ") "\\) "))) (defun find-not (form) @@ -183,7 +187,7 @@ will produce: If you wanted the FORMs -and(ed) together instead then this would suffice: \(not \(and \(mtime \"+1\"\) \(name \"something\"\)\)\)" - (concat "-not " (find-or (mapcar 'find-to-string form)))) + (concat "-not " (find-or (mapcar #'find-to-string form)))) (defun find-prune (form) "-or together FORMs postfix '-prune' and then -or that with a @@ -194,7 +198,7 @@ will produce (unwrapped): -prune -or -true \\\) -and -name '*.pm' \\\)" (find-or (list - (concat (find-or (mapcar 'find-to-string form)) (find-generic "prune")) + (concat (find-or (mapcar #'find-to-string form)) (find-generic "prune")) (find-generic "true")))) (defun find-generic (option &optional oper argcount args dont-quote) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index fe37c24579b..22444277ba2 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1047,7 +1047,7 @@ The region it returns may start or end in the middle of a line.") ;; Of course, this function doesn't do all of the above in all situations ;; (e.g. depending on whether jit-lock is in use) and it can't guess what ;; the caller wants. - (interactive-only "use font-lock-ensure or font-lock-flush instead.")) + (interactive-only "use `font-lock-ensure' or `font-lock-flush' instead.")) (interactive "p") (font-lock-set-defaults) (let ((font-lock-verbose (or font-lock-verbose interactively))) @@ -1759,7 +1759,7 @@ If SYNTACTIC-KEYWORDS is non-nil, it means these keywords are used for keywords (setq keywords (cons t (cons keywords - (mapcar 'font-lock-compile-keyword keywords)))) + (mapcar #'font-lock-compile-keyword keywords)))) (if (and (not syntactic-keywords) (let ((beg-function (or font-lock-beginning-of-syntax-function @@ -1783,7 +1783,7 @@ If SYNTACTIC-KEYWORDS is non-nil, it means these keywords are used for keywords)) (defun font-lock-compile-keyword (keyword) - (cond ((nlistp keyword) ; MATCHER + (cond ((or (functionp keyword) (nlistp keyword)) ; MATCHER (list keyword '(0 font-lock-keyword-face))) ((eq (car keyword) 'eval) ; (eval . FORM) (font-lock-compile-keyword (eval (cdr keyword)))) diff --git a/lisp/frame.el b/lisp/frame.el index d3e84d21024..78480637e9b 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -1,4 +1,4 @@ -;;; frame.el --- multi-frame management independent of window systems +;;; frame.el --- multi-frame management independent of window systems -*- lexical-binding:t -*- ;; Copyright (C) 1993-1994, 1996-1997, 2000-2014 Free Software Foundation, Inc. @@ -26,21 +26,39 @@ ;;; Code: (eval-when-compile (require 'cl-lib)) -(defvar frame-creation-function-alist - (list (cons nil - (if (fboundp 'tty-create-frame-with-faces) - 'tty-create-frame-with-faces - (lambda (_parameters) - (error "Can't create multiple frames without a window system"))))) - "Alist of window-system dependent functions to call to create a new frame. +;; Dispatch tables for GUI methods. + +(defun gui-method--name (base) + (intern (format "%s-alist" base))) + +(defmacro gui-method (name &optional type) + (macroexp-let2 nil type (or type `window-system) + `(alist-get ,type ,(gui-method--name name) + (lambda (&rest _args) + (error "No method %S for %S frame" ',name ,type))))) + +(defmacro gui-method-define (name type fun) + `(setf (gui-method ,name ',type) ,fun)) + +(defmacro gui-method-declare (name &optional tty-fun doc) + (declare (doc-string 3) (indent 2)) + `(defvar ,(gui-method--name name) + ,(if tty-fun `(list (cons nil ,tty-fun))) ,doc)) + +(defmacro gui-call (name &rest args) + `(funcall (gui-method ,name) ,@args)) + +(gui-method-declare frame-creation-function + #'tty-create-frame-with-faces + "Method for window-system dependent functions to create a new frame. The window system startup file should add its frame creation -function to this list, which should take an alist of parameters +function to this method, which should take an alist of parameters as its argument.") (defvar window-system-default-frame-alist nil "Window-system dependent default frame parameters. The value should be an alist of elements (WINDOW-SYSTEM . ALIST), -where WINDOW-SYSTEM is a window system symbol (see `window-system') +where WINDOW-SYSTEM is a window system symbol (as returned by `framep') and ALIST is a frame parameter alist like `default-frame-alist'. Then, for frames on WINDOW-SYSTEM, any parameters specified in ALIST supersede the corresponding parameters specified in @@ -174,10 +192,6 @@ This function runs the hook `focus-out-hook'." (progn (setq frame-initial-frame-alist (append initial-frame-alist default-frame-alist nil)) - (or (assq 'horizontal-scroll-bars frame-initial-frame-alist) - (setq frame-initial-frame-alist - (cons '(horizontal-scroll-bars . t) - frame-initial-frame-alist))) (setq frame-initial-frame-alist (cons (cons 'window-system initial-window-system) frame-initial-frame-alist)) @@ -291,7 +305,7 @@ there (in decreasing order of priority)." frame-initial-frame-tool-bar-height))) (t (+ top frame-initial-frame-tool-bar-height))))) (modify-frame-parameters - frame-initial-frame '((top . adjusted-top)))))) + frame-initial-frame `((top . ,adjusted-top)))))) (tool-bar-mode -1)))) ;; The initial frame we create above always has a minibuffer. @@ -633,29 +647,27 @@ the new frame according to its own rules." (interactive) (let* ((display (cdr (assq 'display parameters))) (w (cond - ((assq 'terminal parameters) - (let ((type (terminal-live-p (cdr (assq 'terminal parameters))))) - (cond - ((eq type t) nil) - ((eq type nil) (error "Terminal %s does not exist" - (cdr (assq 'terminal parameters)))) - (t type)))) - ((assq 'window-system parameters) - (cdr (assq 'window-system parameters))) + ((assq 'terminal parameters) + (let ((type (terminal-live-p + (cdr (assq 'terminal parameters))))) + (cond + ((eq t type) nil) + ((null type) (error "Terminal %s does not exist" + (cdr (assq 'terminal parameters)))) + (t type)))) + ((assq 'window-system parameters) + (cdr (assq 'window-system parameters))) (display (or (window-system-for-display display) (error "Don't know how to interpret display %S" display))) - (t window-system))) - (frame-creation-function (cdr (assq w frame-creation-function-alist))) + (t window-system))) (oldframe (selected-frame)) (params parameters) frame) - (unless frame-creation-function - (error "Don't know how to create a frame on window system %s" w)) (unless (get w 'window-system-initialized) - (funcall (cdr (assq w window-system-initialization-alist)) display) + (funcall (gui-method window-system-initialization w) display) (setq x-display-name display) (put w 'window-system-initialized t)) @@ -669,7 +681,8 @@ the new frame according to its own rules." (push p params))) ;; Now make the frame. (run-hooks 'before-make-frame-hook) - (setq frame (funcall frame-creation-function params)) + (setq frame + (funcall (gui-method frame-creation-function w) params)) (normal-erase-is-backspace-setup-frame frame) ;; Inherit the original frame's parameters. (dolist (param frame-inherited-parameters) @@ -1252,20 +1265,22 @@ On graphical displays, it is displayed on the frame's title bar." (list (cons 'name name)))) (defun frame-current-scroll-bars (&optional frame) - "Return the current scroll-bar settings in frame FRAME. -Value is a cons (VERTICAL . HORIZ0NTAL) where VERTICAL specifies the -current location of the vertical scroll-bars (left, right, or nil), -and HORIZONTAL specifies the current location of the horizontal scroll -bars (top, bottom, or nil)." - (let ((vert (frame-parameter frame 'vertical-scroll-bars)) - (hor nil)) - (unless (memq vert '(left right nil)) - (setq vert default-frame-scroll-bars)) - (cons vert hor))) + "Return the current scroll-bar types for frame FRAME. +Value is a cons (VERTICAL . HORIZ0NTAL) where VERTICAL specifies +the current location of the vertical scroll-bars (`left', `right' +or nil), and HORIZONTAL specifies the current location of the +horizontal scroll bars (`bottom' or nil). FRAME must specify a +live frame and defaults to the selected one." + (let* ((frame (window-normalize-frame frame)) + (vertical (frame-parameter frame 'vertical-scroll-bars)) + (horizontal (frame-parameter frame 'horizontal-scroll-bars))) + (unless (memq vertical '(left right nil)) + (setq vertical default-frame-scroll-bars)) + (cons vertical (and horizontal 'bottom)))) (defun frame-monitor-attributes (&optional frame) "Return the attributes of the physical monitor dominating FRAME. -If FRAME is omitted, describe the currently selected frame. +If FRAME is omitted or nil, describe the currently selected frame. A frame is dominated by a physical monitor when either the largest area of the frame resides in the monitor, or the monitor @@ -1344,8 +1359,8 @@ frame's display)." (let ((frame-type (framep-on-display display))) (cond ((eq frame-type 'pc) - ;; MS-DOG frames support selections when Emacs runs inside - ;; the Windows' DOS Box. + ;; MS-DOS frames support selections when Emacs runs inside + ;; a Windows DOS Box. (with-no-warnings (not (null dos-windows-version)))) ((memq frame-type '(x w32 ns)) @@ -1357,6 +1372,7 @@ frame's display)." (defun display-screens (&optional display) "Return the number of screens associated with DISPLAY. +DISPLAY should be either a frame or a display name (a string). If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond @@ -1369,6 +1385,7 @@ If DISPLAY is omitted or nil, it defaults to the selected frame's display." (defun display-pixel-height (&optional display) "Return the height of DISPLAY's screen in pixels. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display. For character terminals, each character counts as a single pixel. @@ -1388,6 +1405,7 @@ with DISPLAY. To get information for each physical monitor, use (defun display-pixel-width (&optional display) "Return the width of DISPLAY's screen in pixels. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display. For character terminals, each character counts as a single pixel. @@ -1426,6 +1444,7 @@ not explicitly specified." (defun display-mm-height (&optional display) "Return the height of DISPLAY's screen in millimeters. If the information is unavailable, this function returns nil. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display. You can override what the system thinks the result should be by @@ -1446,6 +1465,7 @@ monitor, use `display-monitor-attributes-list'." (defun display-mm-width (&optional display) "Return the width of DISPLAY's screen in millimeters. If the information is unavailable, this function returns nil. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display. You can override what the system thinks the result should be by @@ -1469,6 +1489,7 @@ monitor, use `display-monitor-attributes-list'." "Return the backing store capability of DISPLAY's screen. The value may be `always', `when-mapped', `not-useful', or nil if the question is inapplicable to a certain kind of display. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond @@ -1481,6 +1502,7 @@ If DISPLAY is omitted or nil, it defaults to the selected frame's display." (defun display-save-under (&optional display) "Return non-nil if DISPLAY's screen supports the SaveUnder feature. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond @@ -1493,6 +1515,7 @@ If DISPLAY is omitted or nil, it defaults to the selected frame's display." (defun display-planes (&optional display) "Return the number of planes supported by DISPLAY. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond @@ -1507,6 +1530,7 @@ If DISPLAY is omitted or nil, it defaults to the selected frame's display." (defun display-color-cells (&optional display) "Return the number of color cells supported by DISPLAY. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond @@ -1523,6 +1547,7 @@ If DISPLAY is omitted or nil, it defaults to the selected frame's display." "Return the visual class of DISPLAY. The value is one of the symbols `static-gray', `gray-scale', `static-color', `pseudo-color', `true-color', or `direct-color'. +DISPLAY can be a display name or a frame. If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond @@ -1543,33 +1568,43 @@ If DISPLAY is omitted or nil, it defaults to the selected frame's display." (defun display-monitor-attributes-list (&optional display) "Return a list of physical monitor attributes on DISPLAY. -Each element of the list represents the attributes of each -physical monitor. The first element corresponds to the primary -monitor. +DISPLAY can be a display name, a terminal name, or a frame. +If DISPLAY is omitted or nil, it defaults to the selected frame's display. +Each element of the list represents the attributes of a physical +monitor. The first element corresponds to the primary monitor. -Attributes for a physical monitor is represented as an alist of -attribute keys and values as follows: +The attributes for a physical monitor are represented as an alist +of attribute keys and values as follows: - geometry -- Position and size in pixels in the form of - (X Y WIDTH HEIGHT) - workarea -- Position and size of the workarea in pixels in the + geometry -- Position and size in pixels in the form of (X Y WIDTH HEIGHT) + workarea -- Position and size of the work area in pixels in the form of (X Y WIDTH HEIGHT) mm-size -- Width and height in millimeters in the form of (WIDTH HEIGHT) frames -- List of frames dominated by the physical monitor name (*) -- Name of the physical monitor as a string + source (*) -- Source of multi-monitor information as a string -where X, Y, WIDTH, and HEIGHT are integers. Keys labeled -with (*) are optional. +where X, Y, WIDTH, and HEIGHT are integers. X and Y are coordinates +of the top-left corner, and might be negative for monitors other than +the primary one. Keys labeled with (*) are optional. + +The \"work area\" is a measure of the \"usable\" display space. +It may be less than the total screen size, owing to space taken up +by window manager features (docks, taskbars, etc.). The precise +details depend on the platform and environment. + +The `source' attribute describes the source from which the information +was obtained. On X, this may be one of: \"Gdk\", \"XRandr\", \"Xinerama\", +or \"fallback\". A frame is dominated by a physical monitor when either the largest area of the frame resides in the monitor, or the monitor is the closest to the frame if the frame does not intersect any -physical monitors. Every non-tip frame (including invisible one) +physical monitors. Every (non-tooltip) frame (including invisible ones) in a graphical display is dominated by exactly one physical monitor at a time, though it can span multiple (or no) physical -monitors. -If DISPLAY is omitted or nil, it defaults to the selected frame's display." +monitors." (let ((frame-type (framep-on-display display))) (cond ((eq frame-type 'x) @@ -1820,6 +1855,11 @@ If the frame is in fullscreen mode, don't change its mode, just toggle the temporary frame parameter `maximized', so the frame will go to the right maximization state after disabling fullscreen mode. + +Note that with some window managers you may have to set +`frame-resize-pixelwise' to non-nil in order to make a frame +appear truly maximized. + See also `toggle-frame-fullscreen'." (interactive) (if (memq (frame-parameter nil 'fullscreen) '(fullscreen fullboth)) @@ -1841,6 +1881,11 @@ already fullscreen. Ignore window manager screen decorations. When turning on fullscreen mode, remember the previous value of the maximization state in the temporary frame parameter `maximized'. Restore the maximization state when turning off fullscreen mode. + +Note that with some window managers you may have to set +`frame-resize-pixelwise' to non-nil in order to make a frame +appear truly fullscreen. + See also `toggle-frame-maximized'." (interactive) (modify-frame-parameters diff --git a/lisp/frameset.el b/lisp/frameset.el index b943d47e7bf..f8436259df0 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el @@ -664,10 +664,7 @@ nil while the filtering is done to restore it." ;; Set the display parameter after filtering, so that filter functions ;; have access to its original value. (when frameset--target-display - (let ((display (assq 'display filtered))) - (if display - (setcdr display (cdr frameset--target-display)) - (push frameset--target-display filtered)))) + (setf (alist-get 'display filtered) (cdr frameset--target-display))) filtered)) diff --git a/lisp/fringe.el b/lisp/fringe.el index ff60804cb19..51d6543a3f6 100644 --- a/lisp/fringe.el +++ b/lisp/fringe.el @@ -83,9 +83,9 @@ (hollow-small . hollow-square)))) -(defmacro fringe-bitmap-p (symbol) +(defun fringe-bitmap-p (symbol) "Return non-nil if SYMBOL is a fringe bitmap." - `(get ,symbol 'fringe)) + (get symbol 'fringe)) ;; Control presence of fringes diff --git a/lisp/generic-x.el b/lisp/generic-x.el index 21b429781f9..c14700b9a1e 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el @@ -1650,7 +1650,7 @@ like an INI file. You can add this hook to `find-file-hook'." (defun named-database-print-serial () "Print a serial number based on the current date." (interactive) - (insert (format-time-string named-database-time-string (current-time))))) + (insert (format-time-string named-database-time-string)))) (when (memq 'resolve-conf-generic-mode generic-extras-enable-list) diff --git a/lisp/gnus/.gitignore b/lisp/gnus/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/gnus/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index f55e04f02e6..6f0ea0f57de 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,255 @@ +2014-12-18 Paul Eggert + + * registry.el (registry-db): Set default slot later. + This is because its value is not a literal integer. + +2014-12-18 Stefan Monnier + + * mm-util.el (mm-with-unibyte-current-buffer): Mark obsolete and + add warning. + + * gnus-art.el: Fix up compiler warnings. + (article-display-face, article-display-x-face): Remove unused `face'. + (gnus-article-browse-html-save-cid-content): Remove unused var `type'. + (article-date-ut): Remove unused var `first'. + (gnus-article-prepare): Remove unused var `gnus-article'. + (gnus-mime-save-part-and-strip): Remove unused var `param'. + (gnus-mime-inline-part): Remove unused vars `charset', `contents', and + `coding-system' along with corresponding dead code. + (gnus-mime-view-part-externally): Remove unused var + `mm-user-display-methods'. + (gnus-insert-mime-button): Let-bind gnus-tmp-id explicitly. + (gnus-display-mime): Remove unused var `handle'. + (gnus-mime-display-alternative): Remove unused var `props'. + (gnus-article-read-summary-keys): Remove unused var `up-to-top'. + (gnus-article-edit-done): Remove unused var `p'. + (gnus-url-mailto): Remove unused var `to'. + (gnus-treat-article): Let-bind gnus-treat-condition, part-number, + total-parts, and gnus-treat-type explicitly. Remove unused var `elem'. + +2014-12-18 Eric Abrahamsen + + * registry.el (registry-db): Consolidate the :max-hard and :max-soft + slots into a :max-size slot. + (registry-db-version): Add new variable for database version number. + (registry-prune): Use :max-size slot. Accept and use a sort-function + argument. + (registry-collect-prune-candidates): Add new function for finding + non-precious pruning candidates. + (registry-prune-hard-candidates, registry-prune-soft-candidates): + Remove obsolete functions. + (initialize-instance): Upgrade registry version when starting. + + * gnus-registry.el (gnus-registry-prune-factor): Add new variable. + (gnus-registry-max-pruned-entries): Remove obsolete variable. + (gnus-registry-cache-file): Change default + filename extension to "eieio". + (gnus-registry-read): Add new function, split out from + `gnus-registry-load', that does the actual object reading. + (gnus-registry-load): Use it. Add condition case handler to check for + old filename extension and rename to the new one. + (gnus-registry-default-sort-function): New variable to specify a sort + function to use when pruning. + (gnus-registry-save, gnus-registry-insert): Use it. + (gnus-registry-sort-by-creation-time): Define a default sort function. + +2014-12-09 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-article-mime-handles): Refactored out into own + function for reuse. + (gnus-mime-buttonize-attachments-in-header): Adjusted. + +2014-12-07 Lars Magne Ingebrigtsen + + * message.el (message-change-subject): Really check whether the subject + changed. + +2014-12-05 Lars Magne Ingebrigtsen + + * mailcap.el (mailcap-mime-data): Add doc-view-mode as a viewer for + PDFs. + (mailcap-view-mime): New function. + +2014-12-01 Glenn Morris + + * gnus-cloud.el (gnus-cloud): Add :version tag. + +2014-11-29 John Mastro (tiny change) + + * auth-source.el (auth-source-macos-keychain-search-items): Return + result of `auth-source-macos-keychain-result-append' (bug#19074). + +2014-11-27 Katsumi Yamaoka + + * gnus-art.el (gnus-use-idna): + * gnus-sum.el (gnus-summary-idna-message): + * message.el (message-use-idna): + Protect against nil value for idna-program. + + * message.el (message-use-idna): Load Mule-UCS for XEmacs 21.4. + +2014-11-25 Glenn Morris + + * gnus-start.el (gnus-save-newsrc-file-check-timestamp): + Add :version tag. + +2014-11-23 Lars Magne Ingebrigtsen + + * pop3.el (pop3-open-server): Warn unless encrypted. + + * nnimap.el (nnimap-open-connection-1): Warn unless encrypted. + +2014-11-17 Albert Krewinkel + + * message.el (message-valid-fqdn-regexp): Add non-internaional new + TLDs. + +2014-11-14 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-exit-no-update): Don't query about + discarding changes in ephemeral groups. + + * ietf-drums.el (ietf-drums-parse-address): Don't issue warnings about + things the user isn't interested in. + +2014-11-13 Julien Danjou + + * gnus-notifications.el (gnus-notifications-notify): Provide both + app-icon and image-path. + +2014-11-10 Kenjiro NAKAYAMA + + * gnus/mm-url.el (mm-url-encode-multipart-form-data): + Restore to handle "multipart/form-data" by eww. + +2014-11-07 Tassilo Horn + + * gnus-start.el (gnus-activate-group): Fix typo reported by Tim + Landscheidt. + +2014-10-29 Paul Eggert + + Simplify use of current-time and friends. + * gnus-delay.el (gnus-delay-article): + * gnus-sum.el (gnus-summary-read-document): + * gnus-util.el (gnus-seconds-today, gnus-seconds-month): + * message.el (message-make-expires-date): + Omit unnecessary call to current-time. + * gnus-util.el (gnus-float-time): Simplify to an alias because + time-to-seconds now behaves like float-time with respect to nil arg. + (gnus-seconds-year): Don't call current-time twice to get the current + time stamp, as this can lead to inconsistent results. + +2014-10-27 Katsumi Yamaoka + + * gnus.el (gnus-mode-line-buffer-identification): + Don't add image data for a non-graphic display (bug#18813). + +2014-10-24 Katsumi Yamaoka + + * gnus.el (gnus-mode-line-buffer-identification): Don't shadow + load-path, it blocks autoloading of find-image (bug#18813). + +2014-10-24 enami tsugutomo + + * nnimap.el (nnimap-wait-for-response): Ignore NOOP response requested + to keep connection open (bug#18728). + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-15 Jorge A. Alfaro-Murillo (tiny change) + + * message.el (message-insert-signature): Use `newline' instead of + inserting explicit "\n". + +2014-10-15 Sylvain Chouleur + + * gnus-icalendar.el: Support vcal format timezones. + (gnus-icalendar-event--decode-datefield): Use icalendar functions to + compute dates with associated timezone. + (gnus-icalendar-event-from-ical): Compute all timezones. + +2014-10-14 Teodor Zlatanov + + * gnus-start.el (gnus-save-newsrc-file-check-timestamp): New option to + check the newsrc.eld file's timestamp before saving it. + (gnus-save-newsrc-file): Use it, with a prompt when the newsrc.eld + timestamp has changed to be newer. + +2014-10-06 Jan Tatarik + + * gnus-icalendar.el (gnus-icalendar-identities): + Include message-alternative-emails. + +2014-10-04 Alan Schmitt (tiny change) + + * nnimap.el (nnimap-process-expiry-targets): Reverse the list of + expired messages only when it was built in reverse order. + +2014-10-04 Peter Münster (tiny change) + + * gnus-delay.el (gnus-delay-send-queue): Remove `gnus-delay-header' + last so it can be used in `message-send-hook'. + +2014-10-02 Daiki Ueno + + * mml.el (mml-parse-1): Error out if unknown mode is specified in + <#secure> tag (bug#18513). + +2014-09-29 Daiki Ueno + + * mml.el (mml-parse-1): Error out if unknown mode is specified in + <#secure> tag (bug#18513). + +2014-09-11 Paul Eggert + + * gnus-cloud.el (gnus-cloud-parse-version-1): Fix misspelling + of ":delete". + +2014-08-26 Katsumi Yamaoka + + * gnus-art.el (gnus-article-browse-html-save-cid-content) + (gnus-article-browse-html-parts): + Revert last change that breaks links other than cid contents. + +2014-08-26 Katsumi Yamaoka + + * gnus-art.el (gnus-article-browse-html-save-cid-content) + (gnus-article-browse-html-parts): Make cid file names relative. + +2014-08-21 Katsumi Yamaoka + + * mm-view.el (mm-display-inline-fontify): Make the working buffer + temporarily displayed when running a mode function (at least org-mode + requires it). + +2014-08-14 Alan Schmitt + + * gnus-sum.el (gnus-summary-expire-articles): Functions registered to + the gnus-summary-article-expire-hook should be told where the function + is going. In particular, the Gnus registry might want to know. + +2014-08-12 Stefan Monnier + + * gnus-art.el (gnus-hidden-properties): Drop the evil `intangible'. + +2014-08-06 Katsumi Yamaoka + + * gnus-sum.el (gnus-summary-expire-articles): Revert. + +2014-08-05 Eric Abrahamsen + + * gnus-sum.el (gnus-summary-expire-articles): Functions registered to + the gnus-summary-article-expire-hook should be told where the function + is going. In particular, the Gnus registry might want to know. + +2014-07-31 Tassilo Horn + + * gnus-msg.el (gnus-inews-insert-gcc): Allow `gcc-self' to be a list of + groups and t. + 2014-07-22 Katsumi Yamaoka * gnus-utils.el (gnus-recursive-directory-files): @@ -397,7 +649,7 @@ * gnus-setup.el (gnus-use-sendmail): We never use sendmail for mail reading. -2014-01-09 Ken Olum (tiny change) +2014-01-09 Ken Olum * message.el (message-bury): Call bury-buffer with no argument in the message-return-action case too. @@ -521,7 +773,7 @@ * gnus-icalendar.el (gnus-icalendar-event:org-timestamp): Fix org-timestamp for events ending at midnight. -2013-11-21 Ivan Shmakov (tiny change) +2013-11-21 Ivan Shmakov * nndoc.el (nndoc-type-alist, nndoc-debbugs-db-type-p): Support debbugs .log files. @@ -24195,10 +24447,10 @@ * gnus-group.el: Require gnus-sum and autoload functions to resolve warnings when gnus-group.el compiled alone. - (gnus-group-line-format): Documented new %F. + (gnus-group-line-format): Document new %F. (size of Fetched data) group line format; identifies disk space used by agent and cache. - (gnus-group-line-format-alist): Defined new F format. + (gnus-group-line-format-alist): Define new F format. (gnus-total-fetched-for): New function. (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps diff --git a/lisp/gnus/ChangeLog.1 b/lisp/gnus/ChangeLog.1 index 540db9d2914..4ed24cef073 100644 --- a/lisp/gnus/ChangeLog.1 +++ b/lisp/gnus/ChangeLog.1 @@ -386,11 +386,11 @@ * gnus-start.el (gnus-save-newsrc-file): Use coding system. -1980-06-08 Mike McEwan +1998-08-18 Mike McEwan * gnus-agent.el (gnus-agent-braid-nov): Go to right place. -1980-06-08 Shuhei KOBAYASHI +1998-08-18 Shuhei KOBAYASHI * gnus-group.el (gnus-group-suspend): Fix. @@ -638,7 +638,7 @@ 1998-08-09 Simon Josefsson - * gnus-srvr.el (gnus-browse-make-menu-bar): select did read + * gnus-srvr.el (gnus-browse-make-menu-bar): select did read 1998-08-09 Lars Magne Ingebrigtsen @@ -794,7 +794,7 @@ 1998-07-19 16:59 Simon Josefsson - * gnus-util.el (gnus-netrc-syntax-table): @ is whitespace + * gnus-util.el (gnus-netrc-syntax-table): @ is whitespace 1998-07-17 Gordon Matzigkeit @@ -972,7 +972,7 @@ 1998-07-01 Simon Josefsson * gnus-int.el (gnus-get-function): returned non-nil when - function wasn't bound, if noerror=t + function wasn't bound, if noerror=t 1998-07-01 Lars Magne Ingebrigtsen @@ -1260,8 +1260,8 @@ 1998-06-09 Sam Steingold - * gnus-uu.el (gnus-uu-default-view-rules): make sed kill ^M only - at the end of line. + * gnus-uu.el (gnus-uu-default-view-rules): make sed kill ^M only + at the end of line. 1998-06-05 Hrvoje Niksic @@ -1798,7 +1798,7 @@ 1998-03-18 Simon Josefsson - * nndoc.el: dummy request-accept-article + * nndoc.el: dummy request-accept-article 1998-03-19 Lars Magne Ingebrigtsen @@ -2316,9 +2316,9 @@ 1998-01-17 Simon Josefsson - * gnus-sum.el (gnus-summary-work-articles): change buffer - before looking at marked articles - (gnus-summary-work-articles): better check of marked articles + * gnus-sum.el (gnus-summary-work-articles): change buffer + before looking at marked articles + (gnus-summary-work-articles): better check of marked articles 1998-02-14 Lars Magne Ingebrigtsen @@ -2607,7 +2607,7 @@ 1997-12-22 Simon Josefsson - * nnmail.el (nnmail-get-new-mail): Make nnmail-tmp-directory + * nnmail.el (nnmail-get-new-mail): Make nnmail-tmp-directory 1997-12-28 Per Abrahamsen diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2 index 475f7667f39..e54cc153eb7 100644 --- a/lisp/gnus/ChangeLog.2 +++ b/lisp/gnus/ChangeLog.2 @@ -41,20 +41,20 @@ * message.el (message-header-synonyms): Defcustom. (message-get-reply-headers): Catch `Original-To'. - (message-carefully-insert-headers): Added comment. + (message-carefully-insert-headers): Add comment. - * gnus-sum.el (gnus-summary-make-menu-bar): Improved "Washing" menu. + * gnus-sum.el (gnus-summary-make-menu-bar): Improve "Washing" menu. 2004-01-03 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-select-newsgroup): Use cat. - * gnus-agent.el (gnus-agent-cat-enable-undownloaded-faces): New - cat. + * gnus-agent.el (gnus-agent-cat-enable-undownloaded-faces): + New cat. - * gnus.el (gnus-user-agent): Moved here. + * gnus.el (gnus-user-agent): Move here. - * gnus-msg.el (gnus-user-agent): Moved from here. + * gnus-msg.el (gnus-user-agent): Move from here. * gnus.el (gnus-version-number): Bump. @@ -104,20 +104,19 @@ topic lines. (gnus-group-set-current-level): Fix fix. -2003-12-31 Jeremy Maitin-Shepard +2003-12-31 Jeremy Maitin-Shepard (tiny change) - * mml.el (mml-generate-mime-1): Use mml-compute-boundary (tiny - change). + * mml.el (mml-generate-mime-1): Use mml-compute-boundary. 2003-12-30 Reiner Steib - * gnus-group.el: Removed `(when t ...)' around `gnus-define-keys'. - (gnus-group-group-map): Added `gnus-group-read-ephemeral-group' + * gnus-group.el: Remove `(when t ...)' around `gnus-define-keys'. + (gnus-group-group-map): Add `gnus-group-read-ephemeral-group' (already in previous commit inadvertently). - (gnus-group-make-menu-bar): Added `gnus-group-read-ephemeral-group'. + (gnus-group-make-menu-bar): Add `gnus-group-read-ephemeral-group'. (gnus-group-read-ephemeral-group): Made interactive. - * gnus-score.el (gnus-score-find-trace): Added comment on sync + * gnus-score.el (gnus-score-find-trace): Add comment on sync with `gnus-score-edit-file-at-point'. * gnus-logic.el (gnus-score-advanced): Ditto. @@ -127,8 +126,8 @@ 2003-12-30 Simon Josefsson - * gnus-score.el (gnus-score-edit-file-at-point): Use - gnus-point-at-*, for portability. + * gnus-score.el (gnus-score-edit-file-at-point): + Use gnus-point-at-*, for portability. 2003-12-30 Reiner Steib @@ -136,8 +135,8 @@ custom type. (gnus-button-mid-or-mail-regexp): Don't be too restrictive. Suggested by Felix Wiemann . - (gnus-button-alist): Added "M-x ... RET" and "mid:" buttons. - Added comments about relevant RFCs. + (gnus-button-alist): Add "M-x ... RET" and "mid:" buttons. + Add comments about relevant RFCs. * gnus-sum.el (gnus-summary-mode): Untabify doc-string. (gnus-summary-goto-article): Allow `%40'. @@ -150,15 +149,15 @@ 2003-12-30 Reiner Steib - (gnus-score-find-trace): Use gnus-score-edit-file-at-point. Added - `f' and `t' commands, added quick help. With some suggestions + (gnus-score-find-trace): Use gnus-score-edit-file-at-point. + Add `f' and `t' commands, added quick help. With some suggestions from Karl Pflästerer . - * gnus-util.el (gnus-emacs-version): Added doc-string. + * gnus-util.el (gnus-emacs-version): Add doc-string. * mml.el (mml-minibuffer-read-disposition): New function. (mml-attach-file): Use it. - (mml-preview): Added MIME preview to gnus-buffers. + (mml-preview): Add MIME preview to gnus-buffers. 2003-12-30 Karl Pflästerer @@ -190,7 +189,7 @@ (gnus-agent-auto-agentize-methods): Customize. 2003-12-29 Kevin Greiner - * gnus.el (gnus-server-to-method): Fixed bug in 2003-12-22 + * gnus.el (gnus-server-to-method): Fix bug in 2003-12-22 check-in. 2003-12-28 Adrian Lanz @@ -202,8 +201,8 @@ 2003-12-28 Jesper Harder - * mm-view.el (mm-text-html-washer-alist): Use - mm-inline-wash-with-stdin for w3m-standalone. + * mm-view.el (mm-text-html-washer-alist): + Use mm-inline-wash-with-stdin for w3m-standalone. * mm-decode.el (mm-text-html-renderer): Add w3m-standalone. @@ -226,16 +225,16 @@ 2003-12-22 Kevin Greiner - * gnus-int.el (gnus-open-server): Fixed the server status such + * gnus-int.el (gnus-open-server): Fix the server status such that an agentized server, when opened offline, has a status of offline. Also fixes bug whereby the agent's backend was called twice to open each server. - * gnus-start.el (gnus-get-unread-articles-in-group): Autoload - gnus-agent-possibly-alter-active rather than inline to resolve + * gnus-start.el (gnus-get-unread-articles-in-group): + Autoload gnus-agent-possibly-alter-active rather than inline to resolve compiler warnings. - * gnus.el (gnus-server-to-method): Added fallback of iterating + * gnus.el (gnus-server-to-method): Add fallback of iterating over gnus-newsrc-alist to resolve names of foreign servers. Should fix recent agent bug. @@ -247,8 +246,8 @@ 2003-12-21 Jesper Harder - * gnus-agent.el (gnus-agent-read-agentview): Use - car-less-than-car. + * gnus-agent.el (gnus-agent-read-agentview): + Use car-less-than-car. 2003-12-20 Artem Chuprina (tiny change) @@ -267,17 +266,17 @@ 2003-12-18 Reiner Steib * mm-url.el (mm-url-insert-file-contents-external) - (mm-url-insert-file-contents): Added doc-strings. Autoload. + (mm-url-insert-file-contents): Add doc-strings. Autoload. 2003-12-18 Jesper Harder - * gnus-cus.el (defvar): Defvar - gnus-agent-cat-disable-undownloaded-faces. + * gnus-cus.el (defvar): + Defvar gnus-agent-cat-disable-undownloaded-faces. 2003-12-17 Katsumi Yamaoka - * message.el (message-forward-subject-name-subject): Use - gnus-extract-address-components instead of + * message.el (message-forward-subject-name-subject): + Use gnus-extract-address-components instead of mail-header-parse-address because it may be called with non-ascii text. @@ -320,7 +319,7 @@ 2003-12-13 Teodor Zlatanov - * spam.el: Added some gnus-registry autoloads. + * spam.el: Add some gnus-registry autoloads. (spam-split-symbolic-return): Makes spam-split return 'spam instead of the value of spam-split-group when spam is detected. (spam-split-symbolic-return-positive): Makes spam-split return @@ -345,8 +344,8 @@ (spam-unload-hook): Remove spam-find-spam from gnus-summary-prepare-hook. - * gnus.el (spam-autodetect, spam-autodetect-methods): New - configuration items for spam autodetection. + * gnus.el (spam-autodetect, spam-autodetect-methods): + New configuration items for spam autodetection. 2003-12-12 Reiner Steib @@ -367,16 +366,16 @@ (gnus-agent-regenerate-group): When necessary, alter the group's active range to include articles newly recognized as being downloaded. - (gnus-agent-regenerate): Removed code that updated the agent's + (gnus-agent-regenerate): Remove code that updated the agent's active file as the new gnus-agent-possibly-alter-active function obsolesced it. - * gnus-cus.el (gnus-agent-customize-category): Added missing + * gnus-cus.el (gnus-agent-customize-category): Add missing agent-disable-undownloaded-faces parameter. * gnus-start.el (gnus-activate-group): Backed out my 2003-11-29 patch as it was too late at adjusting the active range. - (gnus-get-unread-articles-in-group): Added call to new + (gnus-get-unread-articles-in-group): Add call to new gnus-agent-possibly-alter-active to adjust the active range. 2003-12-10 Jesper Harder @@ -385,10 +384,10 @@ 2003-12-10 Lőrentey Károly - * spam.el (spam-disable-spam-split-during-ham-respool): New - variable. - (spam-ham-copy-or-move-routine): Respect - spam-disable-spam-split-during-ham-respool. + * spam.el (spam-disable-spam-split-during-ham-respool): + New variable. + (spam-ham-copy-or-move-routine): + Respect spam-disable-spam-split-during-ham-respool. (spam-split-disabled): New variable. (spam-split): Respect spam-split-disabled. @@ -412,8 +411,8 @@ 2003-12-09 Xavier Maillard - * spam.el (spam-bogofilter-database-directory): Correct - customization group. + * spam.el (spam-bogofilter-database-directory): + Correct customization group. 2003-12-09 Per Abrahamsen @@ -459,8 +458,8 @@ 2003-12-07 Jesper Harder - * spam.el (spam-check-spamoracle, spam-spamoracle-learn): Don't - use = or zerop to test the return value of call-process, because + * spam.el (spam-check-spamoracle, spam-spamoracle-learn): + Don't use = or zerop to test the return value of call-process, because it can be a string. * mail-source.el (mail-source-fetch-with-program): Do. @@ -505,10 +504,10 @@ 2003-12-01 Kevin Greiner - * gnus-agent.el (gnus-agent-consider-all-articles): Updated - docstring. + * gnus-agent.el (gnus-agent-consider-all-articles): + Update docstring. (gnus-predicate-implies-unread, gnus-predicate-implies-unread-1): - Fixed implementation such that the predicate `true' no longer + Fix implementation such that the predicate `true' no longer evaluates to t. 2003-12-01 Adrian Lanz (tiny change) @@ -558,14 +557,14 @@ 2003-11-29 Jesper Harder - * gnus-group.el (gnus-group-make-menu-bar): Add - gnus-group-make-rss-group. + * gnus-group.el (gnus-group-make-menu-bar): + Add gnus-group-make-rss-group. 2003-11-28 Reiner Steib - * message.el: Added custom-manual links to all variables that have + * message.el: Add custom-manual links to all variables that have an index entry in the message manual. - (message-generate-headers-first): Fixed doc-string. + (message-generate-headers-first): Fix doc-string. 2003-11-27 Katsumi Yamaoka @@ -611,15 +610,15 @@ (spam-classification-valid-p, spam-process-type-valid-p) (spam-registration-check-valid-p) (spam-unregistration-check-valid-p): Convenience functions. - (spam-registration-function, spam-unregistration-function): Look - up the registration/unregistration function based on a + (spam-registration-function, spam-unregistration-function): + Look up the registration/unregistration function based on a classification and the check (spam-use-* symbol). (spam-list-articles): Generate list of spam/ham articles from a given list of articles. (spam-register-routine): Do the heavy work of registering and unregistering articles, using all the articles in the group or specific ones as needed. - (spam-generic-register-routine): Removed, no longer used. + (spam-generic-register-routine): Remove, no longer used. (spam-log-unregistration-needed-p, spam-log-undo-registration): Handle article registration/unregistration with a given spam/ham processor and group. @@ -642,7 +641,7 @@ parameter is specified. (spam-stat-load): Clear spam-stat-dirty. - * gnus.el (gnus-install-group-spam-parameters): Marked the + * gnus.el (gnus-install-group-spam-parameters): Mark the old-style exit processors as obsolete in the docs, added the new-style exit processors while the old ones are still allowed. @@ -666,23 +665,23 @@ 2003-11-20 Kevin Greiner - * gnus.el (gnus-agent-covered-methods): Documented use of + * gnus.el (gnus-agent-covered-methods): Document use of named servers, not methods, to identity agentized groups. Users may now change their server configurations without having the server become "unagentized". - (gnus-agent-covered-methods): Removed from gnus-variable-list to + (gnus-agent-covered-methods): Remove from gnus-variable-list to avoid storing two copies of gnus-agent-covered-methods, one in .newsrc.eld and the other in agent/lib/servers. (gnus-server-to-method): Do not cache server for the nil method. (gnus-method-to-server): New function. Associate named server with all, even foreign, methods. - (gnus-agent-method-p, gnus-agent-method-p-cache): Incorporated + (gnus-agent-method-p, gnus-agent-method-p-cache): Incorporate simple last-response cache to offset performance lose of having to always convert methods to named servers. - * gnus-agent.el (gnus-agent-expire-days): Removed obsolete + * gnus-agent.el (gnus-agent-expire-days): Remove obsolete documentation. (gnus-agentize, gnus-agent-add-server, gnus-agent-remove-server): - Modified to support new definition of gnus-agent-covered-method. + Modify to support new definition of gnus-agent-covered-method. (gnus-agent-read-servers): Rewritten to convert old method data into server names. (gnus-agent-read-servers-validate) @@ -701,17 +700,17 @@ (gnus-agent-expire-done-message): New function. (gnus-agent-unread-articles): Bug fix. No longer drops last unread article onto read list. - (gnus-agent-regenerate-group): Changed prompt to use typical + (gnus-agent-regenerate-group): Change prompt to use typical style. (gnus-agent-group-covered-p): Rewrote to internally use gnus-agent-method-p. * gnus-int.el (gnus-start-news-server): Partially convert old gnus-agent-covered-methods to new format so that gnus-open-server functions correctly. - * gnus-srvr.el (gnus-server-insert-server-line): Replaced - gnus-agent-covered-methods with gnus-agent-method-p. - * gnus-start.el (gnus-clear-system): Added - gnus-agent-covered-methods to compensate for removing it from + * gnus-srvr.el (gnus-server-insert-server-line): + Replace gnus-agent-covered-methods with gnus-agent-method-p. + * gnus-start.el (gnus-clear-system): + Add gnus-agent-covered-methods to compensate for removing it from gnus-variable-list. (gnus-setup-news): Complete conversion of old gnus-agent-covered-methods to new format so that secondary and @@ -831,9 +830,9 @@ 2003-11-10 Reiner Steib - * message.el (message-mode-field-menu): Moved some entries, added + * message.el (message-mode-field-menu): Move some entries, added `message-insert-wide-reply'. - (message-change-subject): Fixed comment. + (message-change-subject): Fix comment. 2003-11-10 Sam Steingold @@ -876,15 +875,15 @@ requested. (gnus-registry-split-fancy-with-parent): When long names are in use, strip the name if we're in the native server, or else return nothing. - (gnus-registry-spool-action, gnus-registry-action): Use - gnus-group-guess-full-name-from-command-method instead of + (gnus-registry-spool-action, gnus-registry-action): + Use gnus-group-guess-full-name-from-command-method instead of gnus-group-guess-full-name. * spam.el (spam-mark-spam-as-expired-and-move-routine) (spam-ham-copy-or-move-routine): Prevent article deletions or moves unless the backend allows it. - * gnus.el (gnus-install-group-spam-parameters): Fixed parameters + * gnus.el (gnus-install-group-spam-parameters): Fix parameters to list spamoracle as well, suggested by Jean-Marc Lasgouttes . @@ -899,7 +898,7 @@ 2003-10-31 Teodor Zlatanov * spam.el - (spam-log-processing-to-registry): Improved message and comments. + (spam-log-processing-to-registry): Improve message and comments. (spam-log-unregistration-needed-p): New function. (spam-ifile-register-spam-routine) (spam-ifile-register-ham-routine, spam-stat-register-spam-routine) @@ -908,8 +907,8 @@ (spam-whitelist-register-routine) (spam-bogofilter-register-spam-routine) (spam-bogofilter-register-ham-routine) - (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): Change - spam-log-processing-to-registry invocations appropriately. + (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): + Change spam-log-processing-to-registry invocations appropriately. 2003-10-31 Derek Atkins (tiny change) @@ -936,8 +935,8 @@ (spam-whitelist-register-routine) (spam-bogofilter-register-spam-routine) (spam-bogofilter-register-ham-routine) - (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): Add - spam-log-processing-to-registry invocations. + (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): + Add spam-log-processing-to-registry invocations. * gnus-registry.el: Fixed docs in the preface to mention gnus-registry-initialize. @@ -1002,7 +1001,7 @@ * spam.el (spam-mark-spam-as-expired-and-move-routine) (spam-ham-copy-or-move-routine): Don't ask when deleting copied articles, and use move instead of copy when possible. - (spam-split): Added the option of specifying a string as a + (spam-split): Add the option of specifying a string as a spam-split parameter; such a string will override spam-split-group temporarily. @@ -1017,8 +1016,8 @@ * gnus-art.el (gnus-button-alist): Allow & in mailto URLs. (gnus-header-button-alist): Likewise. (gnus-url-mailto): Handle ?to parameters. Replace \r\n with \n. - Reverse parameter list to use same order as in the URL. Reported - by f95-msv@f.kth.se (Mårten Svantesson). + Reverse parameter list to use same order as in the URL. + Reported by f95-msv@f.kth.se (Mårten Svantesson). 2003-10-25 Teodor Zlatanov @@ -1036,8 +1035,8 @@ 2003-10-24 Katsumi Yamaoka - * nndoc.el (nndoc-guess-type): Reverse the sort order. Suggested - by ARISAWA Akihiro . + * nndoc.el (nndoc-guess-type): Reverse the sort order. + Suggested by ARISAWA Akihiro . (nndoc-dissect-buffer): Don't miss even-numbered articles. 2003-10-23 Katsumi Yamaoka @@ -1054,7 +1053,7 @@ requirement, now just "IP address" is enough for detection for blackhole checking. (spam-check-blackholes): Oops, the dots were not escaped. - (spam-mark-spam-as-expired-and-move-routine): Added multiple group + (spam-mark-spam-as-expired-and-move-routine): Add multiple group support (multiple copies, then delete). (spam-ham-copy-routine): New function. (spam-ham-move-routine): New function. @@ -1086,8 +1085,8 @@ * gnus-art.el (gnus-narrow-to-page): Clear as well as set the value for gnus-page-broken. - * gnus-sum.el (gnus-summary-beginning-of-article): Use - gnus-break-pages instead of gnus-page-broken. + * gnus-sum.el (gnus-summary-beginning-of-article): + Use gnus-break-pages instead of gnus-page-broken. (gnus-summary-end-of-article): Use gnus-break-pages instead of gnus-page-broken; narrow to the end of a page beforehand. (gnus-summary-toggle-header): Use gnus-break-pages instead of @@ -1113,15 +1112,15 @@ * gnus-msg.el (gnus-extended-version): Use it. - * gnus-util.el (gnus-emacs-version): Separated out into own + * gnus-util.el (gnus-emacs-version): Separate out into own function. 2003-10-19 Reiner Steib - * message.el (message-mode-field-menu): Added - message-generate-unsubscribed-mail-followup-to. + * message.el (message-mode-field-menu): + Add message-generate-unsubscribed-mail-followup-to. (message-forward-subject-fwd): Avoid double "Fwd: ". - (message-change-subject): Added comment. + (message-change-subject): Add comment. 2003-10-19 Lars Magne Ingebrigtsen @@ -1131,8 +1130,8 @@ 2003-10-19 Katsumi Yamaoka - * gnus-sum.el (gnus-remove-odd-characters): Use - mm-subst-char-in-string instead of subst-char-in-string. + * gnus-sum.el (gnus-remove-odd-characters): + Use mm-subst-char-in-string instead of subst-char-in-string. (gnus-summary-refer-article): Use gnus-replace-in-string instead of replace-regexp-in-string. @@ -1143,22 +1142,19 @@ 2003-10-18 Jesper Harder - * gnus-sum.el (gnus-summary-save-parts-last-directory): Default - to mm-default-directory. + * gnus-sum.el (gnus-summary-save-parts-last-directory): + Default to mm-default-directory. (gnus-summary-save-parts-1): Use mm-file-name-rewrite-functions. 2003-10-18 Lars Magne Ingebrigtsen - * pop3.el (pop3-read-response): Check whether the process is - alive. + * pop3.el (pop3-read-response): Check whether the process is alive. * gnus-sum.el (gnus-summary-refer-article): Strip spaces. - * rfc2047.el (rfc2047-encode-region): Do error out on invalid - strings. + * rfc2047.el (rfc2047-encode-region): Do error out on invalid strings. - * nntp.el (nntp-retrieve-headers-with-xover): Get error messages - right. + * nntp.el (nntp-retrieve-headers-with-xover): Get error messages right. * gnus-agent.el (gnus-agent-read-servers): Remove sit-for. @@ -1244,8 +1240,8 @@ name for gcc-self. (gnus-inews-insert-archive-gcc): Paren mistake. - * gnus-sum.el (gnus-summary-enter-digest-group): Add - parent-group. + * gnus-sum.el (gnus-summary-enter-digest-group): + Add parent-group. * gnus-art.el (gnus-ignored-headers): Add more headers. @@ -1329,8 +1325,8 @@ 2003-10-06 Jesper Harder - * gnus.el (gnus-group-faq-directory): Update .tw entry. From - Albert Chun-Chieh Huang + * gnus.el (gnus-group-faq-directory): Update .tw entry. + From Albert Chun-Chieh Huang 2003-10-03 Teodor Zlatanov @@ -1355,7 +1351,7 @@ 2003-10-02 Reiner Steib - * spam.el (spam-install-hooks-function): Added Autoload cookie. + * spam.el (spam-install-hooks-function): Add Autoload cookie. 2003-10-02 Michael Shields @@ -1369,8 +1365,7 @@ 2003-10-01 Jesper Harder - * message.el (message-send): Fix reversed logic of supersedes - check. + * message.el (message-send): Fix reversed logic of supersedes check. 2003-09-30 Reiner Steib @@ -1464,8 +1459,8 @@ 2003-09-05 Teodor Zlatanov - * gnus-registry.el (gnus-registry-split-fancy-with-parent): Yet - another error. *sigh* + * gnus-registry.el (gnus-registry-split-fancy-with-parent): + Yet another error. *sigh* * gnus-registry.el (gnus-registry-fetch-extra-entry): Don't use puthash unless gnus-registry-entry-caching is on. @@ -1495,10 +1490,10 @@ (gnus-registry-register-message-ids): Pass subject to gnus-registry-add-group. (gnus-registry-simplify-subject) - (gnus-registry-fetch-simplified-message-subject-fast): New - functions. - (gnus-registry-fetch-extra, gnus-registry-fetch-extra-entry): Add - extra data entry caching. + (gnus-registry-fetch-simplified-message-subject-fast): + New functions. + (gnus-registry-fetch-extra, gnus-registry-fetch-extra-entry): + Add extra data entry caching. (gnus-registry-add-group): Handle the extra subject parameter. (gnus-registry-install-hooks, gnus-registry-unload-hook): Fix the gnus-register-* function names. @@ -1506,27 +1501,27 @@ * nnmail.el (nnmail-cache-insert): Add subject parameter, pass it on to the nnmail-spool-hook. - * nnbabyl.el (nnbabyl-request-accept-article): Added subject to + * nnbabyl.el (nnbabyl-request-accept-article): Add subject to nnmail-cache-insert call. - * nndiary.el (nndiary-request-accept-article): Added subject to + * nndiary.el (nndiary-request-accept-article): Add subject to nnmail-cache-insert call. - * nnfolder.el (nnfolder-request-accept-article): Added subject to + * nnfolder.el (nnfolder-request-accept-article): Add subject to nnmail-cache-insert call. - * nnimap.el (nnimap-split-articles): Added subject to + * nnimap.el (nnimap-split-articles): Add subject to nnmail-cache-insert call. - (nnimap-request-accept-article): Added subject to + (nnimap-request-accept-article): Add subject to nnmail-cache-insert call. - * nnmbox.el (nnmbox-request-accept-article): Added subject to + * nnmbox.el (nnmbox-request-accept-article): Add subject to nnmail-cache-insert call. - * nnmh.el (nnmh-request-accept-article): Added subject to + * nnmh.el (nnmh-request-accept-article): Add subject to nnmail-cache-insert call. - * nnml.el (nnml-request-accept-article): Added subject to + * nnml.el (nnml-request-accept-article): Add subject to nnmail-cache-insert call. 2003-09-04 Jesper Harder @@ -1557,8 +1552,8 @@ 2003-08-29 Simon Josefsson - * gnus-group.el (gnus-group-delete-group): Doc fix. Suggested by - Jochen Küpper . + * gnus-group.el (gnus-group-delete-group): Doc fix. + Suggested by Jochen Küpper . 2003-08-29 Katsumi Yamaoka @@ -1592,13 +1587,13 @@ 2003-08-24 Jesper Harder - * gnus-art.el (gnus-header-button-alist, gnus-button-alist): Fix - type. + * gnus-art.el (gnus-header-button-alist, gnus-button-alist): + Fix type. 2003-08-22 Jesper Harder - * message.el (message-make-forward-subject-function): Fix - customize mismatch. + * message.el (message-make-forward-subject-function): + Fix customize mismatch. * gnus.el (gnus-message-archive-method): Do. @@ -1608,7 +1603,7 @@ char is `/' and add more information for the user. * gnus-art.el (gnus-button-alist): Add `+' (gnus-button-handle-man). - (gnus-header-button-alist): Added `In-Reply-To'. + (gnus-header-button-alist): Add `In-Reply-To'. * nnimap.el (nnimap-open-connection): Allow different user names on the same server (and in the same authinfo file). @@ -1617,15 +1612,15 @@ * gnus-sieve.el (gnus-sieve-crosspost): Fix type. - * message.el (message-make-forward-subject-function): Add - message-forward-subject-name-subject to choices. + * message.el (message-make-forward-subject-function): + Add message-forward-subject-name-subject to choices. * gnus-art.el (gnus-article-edit-done, gnus-article-edit-exit): Redisplay article after editing. 2003-08-20 Jari Aalto - * gnus.el (gnus-read-group): Added check to ask confirmation if + * gnus.el (gnus-read-group): Add check to ask confirmation if Group name contains invalid character. You can use '/' in IMAP, but not in filenames. G m cannot know what the user is creating, so let user decide. See thread m2oeysiev3.fsf@naima.lensflare.org. @@ -1645,8 +1640,8 @@ 2003-08-07 Jesper Harder - * pgg-gpg.el (pgg-gpg-process-region): Bind - default-enable-multibyte-characters to nil. + * pgg-gpg.el (pgg-gpg-process-region): + Bind default-enable-multibyte-characters to nil. 2003-08-07 Katsumi Yamaoka @@ -1729,11 +1724,11 @@ * spam.el (spam-use-regex-body, spam-regex-body-spam) (spam-regex-body-ham): New variables, default to nil/empty/empty. - (spam-install-hooks): Added spam-use-regex-body to list or + (spam-install-hooks): Add spam-use-regex-body to list or pre-install conditions. - (spam-list-of-checks): Added spam-use-regex-body and + (spam-list-of-checks): Add spam-use-regex-body and spam-check-regex-body to list of checks. - (spam-list-of-statistical-checks): Added spam-use-regex-body to + (spam-list-of-statistical-checks): Add spam-use-regex-body to list of statistical checks. (spam-check-regex-body): Invokes spam-check-regex-headers with appropriate variable masking. @@ -1754,8 +1749,8 @@ (gnus-registry-clean-empty): New variable to enable cleaning the registry when saving it by calling gnus-registry-clean-empty-function. - * spam.el (spam-summary-prepare-exit): Use - spam-process-ham-in-spam-groups. + * spam.el (spam-summary-prepare-exit): + Use spam-process-ham-in-spam-groups. (spam-process-ham-in-spam-groups): New variable. 2003-07-24 Jesper Harder @@ -1763,8 +1758,8 @@ * pgg-gpg.el (pgg-gpg-process-region): Add "--yes" to options. * pgg-gpg.el, pgg-pgp.el, pgg-pgp5.el, pgg.el: Reapply changes - from 2003-04-03 to fix security problem. See - http://www.debian.org/security/2003/dsa-339. + from 2003-04-03 to fix security problem. + See http://www.debian.org/security/2003/dsa-339. 2003-07-23 Teodor Zlatanov @@ -1806,8 +1801,7 @@ 2003-07-10 Kai Großjohann - * imap.el (imap-arrival-filter): Fix test for missing process - buffer. + * imap.el (imap-arrival-filter): Fix test for missing process buffer. 2003-07-09 Gaute B Strokkenes (tiny change) @@ -1881,8 +1875,8 @@ 2003-07-06 Jesper Harder - * message.el (message-send-mail-with-sendmail): Handle - non-numeric return values. + * message.el (message-send-mail-with-sendmail): + Handle non-numeric return values. * gnus-start.el (gnus-clear-system): Revert change from 2003-06-19. @@ -1928,8 +1922,8 @@ 2003-06-23 Teodor Zlatanov - * spam.el (spam-from-listed-p, spam-parse-list): Use - ietf-drums-parse-addresses to extract the address portion of the + * spam.el (spam-from-listed-p, spam-parse-list): + Use ietf-drums-parse-addresses to extract the address portion of the whitelist/blacklist file if it looks like an address can be found. 2003-06-23 Didier Verna @@ -1942,8 +1936,8 @@ (gnus-xmas-remove-image): Ditto, with extents. * gnus-art.el (gnus-delete-images): Pass CATEGORY argument to gnus-[xmas-]remove-image. - (article-display-face): Don't always act as a toggle. Call - `gnus-put-image' with CATEGORY argument. + (article-display-face): Don't always act as a toggle. + Call `gnus-put-image' with CATEGORY argument. (article-display-x-face): Call `gnus-put-image' with CATEGORY argument. * smiley.el (smiley-region): Ditto. @@ -1959,11 +1953,11 @@ 2003-06-20 Jesper Harder - * mm-util.el (mm-append-to-file): Say "Appended to". Suggested by - Dan Jacobson . + * mm-util.el (mm-append-to-file): Say "Appended to". + Suggested by Dan Jacobson . - * mm-view.el (mm-inline-message): Bind - gnus-original-article-buffer to the buffer in the mml handle + * mm-view.el (mm-inline-message): + Bind gnus-original-article-buffer to the buffer in the mml handle holding the message. 2003-06-20 Katsumi Yamaoka @@ -1994,8 +1988,8 @@ 2003-06-19 Jesper Harder - * nnheader.el (nnheader-init-server-buffer): Add - nntp-server-buffer to gnus-buffers. + * nnheader.el (nnheader-init-server-buffer): + Add nntp-server-buffer to gnus-buffers. * gnus-start.el (gnus-clear-system): Now we don't need to kill nntp-server-buffer separately. @@ -2016,8 +2010,8 @@ 2003-06-17 Reiner Steib - * gnus-util.el (gnus-extract-address-components): Added - doc-string. + * gnus-util.el (gnus-extract-address-components): + Add doc-string. 2003-06-16 Michael Albinus @@ -2026,8 +2020,8 @@ 2003-06-16 Katsumi Yamaoka - * gnus-sum.el (gnus-summary-refer-parent-article): Extract - Message-ID from In-Reply-To header. + * gnus-sum.el (gnus-summary-refer-parent-article): + Extract Message-ID from In-Reply-To header. 2003-06-16 Katsumi Yamaoka @@ -2037,14 +2031,14 @@ 2003-06-15 Reiner Steib - * gnus-sum.el (gnus-summary-force-verify-and-decrypt): Bind - `gnus-article-emulate-mime'. + * gnus-sum.el (gnus-summary-force-verify-and-decrypt): + Bind `gnus-article-emulate-mime'. 2003-06-15 Tommi Vainikainen - * message.el (message-is-yours-p): New function. Separated common - code from message-cancel-news and message-supersede. Added - matching code which uses message-alternative-emails regexp as last + * message.el (message-is-yours-p): New function. Separate common + code from message-cancel-news and message-supersede. + Add matching code which uses message-alternative-emails regexp as last resort. (message-cancel-news, message-supersede): Use message-is-yours-p. @@ -2055,11 +2049,11 @@ 2003-06-12 Dave Love - * nnheader.el (nnheader-functionp): Deleted. + * nnheader.el (nnheader-functionp): Delete. * nnmail.el (nnmail-split-fancy-syntax-table): Define all in defvar. - (nnmail-version): Deleted. + (nnmail-version): Delete. (nnmail-check-duplication, nnmail-expiry-target-group): Don't use nnheader-functionp. @@ -2077,15 +2071,15 @@ (spam-spamoracle, spam-spamoracle): New variables. (spam-group-spam-processor-spamoracle-p) (spam-group-ham-processor-spamoracle-p): New functions. - (spam-summary-prepare-exit): Added spamoracle ham/spam exit processing. - (spam-list-of-checks, spam-list-of-statistical-checks): Add - spam-use-spamoracle. + (spam-summary-prepare-exit): Add spamoracle ham/spam exit processing. + (spam-list-of-checks, spam-list-of-statistical-checks): + Add spam-use-spamoracle. (spam-check-spamoracle, spam-spamoracle-learn) (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): New functions. * gnus.el (gnus-group-spam-exit-processor-spamoracle) (gnus-group-ham-exit-processor-spamoracle): New variables for SpamOracle. - (spam-process, ham-process): Added spamoracle spam/ham processors. + (spam-process, ham-process): Add spamoracle spam/ham processors. 2003-06-08 Jesper Harder @@ -2094,7 +2088,7 @@ 2003-06-07 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-summary-make-menu-bar): Removed ["Add buttons" + * gnus-sum.el (gnus-summary-make-menu-bar): Remove ["Add buttons" gnus-summary-display-buttonized t]. 2003-06-07 Kai Großjohann @@ -2150,9 +2144,9 @@ (gnus-other-frame): Quote lambda used as hook. * message.el: Doc fixes. - (message-functionp): Deleted. Callers changed. - (message-fix-before-sending): Highlight with overlays. Clarify - `illegible text' messages. + (message-functionp): Delete. Callers changed. + (message-fix-before-sending): Highlight with overlays. + Clarify `illegible text' messages. (rmail-enable-mime-composing, gnus-message-group-art): Defvar when compiling. (gnus-find-method-for-group, nnvirtual-find-group-art): Autoload. @@ -2168,8 +2162,8 @@ 2003-06-03 Eric Eide - * gnus-xmas.el (gnus-xmas-create-image): Use - insert-file-contents-literally. + * gnus-xmas.el (gnus-xmas-create-image): + Use insert-file-contents-literally. 2003-06-02 Teodor Zlatanov @@ -2195,8 +2189,8 @@ (gnus-registry-delete-group): Use it. (gnus-registry-unload-hook): Uninstall all the hooks. - * spam.el (spam-install-hooks-function, spam-unload-hook): New - functions so users that load spam.el for customization don't get + * spam.el (spam-install-hooks-function, spam-unload-hook): + New functions so users that load spam.el for customization don't get all the hooks installed. (spam-install-hooks): New variable, set to t by default if user has one of the spam-use-* variables set. @@ -2210,8 +2204,8 @@ * rfc2047.el (rfc2047-decode): Don't use mm-with-unibyte-current-buffer. - * qp.el (quoted-printable-decode-string): Use - mm-with-unibyte-buffer. + * qp.el (quoted-printable-decode-string): + Use mm-with-unibyte-buffer. 2003-05-29 Teodor Zlatanov @@ -2250,7 +2244,7 @@ 2003-05-20 Dave Love - * rfc2047.el (rfc2047-q-encoding-alist): Deleted. + * rfc2047.el (rfc2047-q-encoding-alist): Delete. (rfc2047-q-encode-region): Don't use it. (rfc2047-encode-message-header) <(eq method 'mime)>: Bind rfc2047-encoding-type to `mime'. @@ -2268,11 +2262,11 @@ 2003-05-14 Kevin Greiner - * gnus-agent.el (gnus-agentize): Updated documentation to match + * gnus-agent.el (gnus-agentize): Update documentation to match usage. (gnus-agent-expire-group-1): Do not skip over a group when the force argument is set. - * gnus.el (gnus-agent): Updated documentation to reflect that + * gnus.el (gnus-agent): Update documentation to reflect that gnus-agent now defaults to t. 2003-05-14 Lars Magne Ingebrigtsen @@ -2285,24 +2279,24 @@ 2003-05-14 Lars Magne Ingebrigtsen - * mail-source.el (mail-source-delete-incoming): Changed to t. + * mail-source.el (mail-source-delete-incoming): Change to t. * rfc2047.el (rfc2047-syntax-table): Funcall. * rfc2047.el (rfc2047-encodable-p): Use the header charset. - * gnus-sum.el (gnus-summary-reselect-current-group): Supply - leave-hidden. + * gnus-sum.el (gnus-summary-reselect-current-group): + Supply leave-hidden. 2003-05-14 Jonathan I. Kamens - * gnus-sum.el (gnus-summary-exit): Added `leave-hidden'. (Tiny + * gnus-sum.el (gnus-summary-exit): Add `leave-hidden'. (Tiny patch.) 2003-05-13 Lars Magne Ingebrigtsen - * gnus-registry.el (gnus-registry-store-extra-entry): Use - gnus-assq-delete-all. + * gnus-registry.el (gnus-registry-store-extra-entry): + Use gnus-assq-delete-all. * gnus-xmas.el (gnus-xmas-assq-delete-all): New function. @@ -2341,10 +2335,10 @@ (gnus-agent-cat-disable-undownloaded-faces): New function. Accessor for new agent property 'agent-disable-undownloaded-faces'. - gnus-cus.el (gnus-agent-parameters): Added - agent-disable-undownloaded-faces and corrected documentation. + gnus-cus.el (gnus-agent-parameters): + Add agent-disable-undownloaded-faces and corrected documentation. (gnus-agent-cat-prepare-category-field, - gnus-agent-customize-category): Changed to avoid creating free + gnus-agent-customize-category): Change to avoid creating free references to each field's symbol. gnus-sum.el (gnus-summary-use-undownloaded-faces): New local variable. (gnus-select-newgroup): Initialize it. @@ -2352,15 +2346,15 @@ 2003-05-12 Dave Love - * mm-util.el (mm-read-charset): Deleted. + * mm-util.el (mm-read-charset): Delete. (mm-coding-system-mime-charset): New. (mm-read-coding-system, mm-mule-charset-to-mime-charset) (mm-charset-to-coding-system, mm-mime-charset) (mm-find-mime-charset-region): Use it. (mm-default-multibyte-p): Fix non-mule case. - * rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-bol): Eval - and compile. + * rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-bol): + Eval and compile. (rfc2047-syntax-table): Fix building table to work in Emacs 22. (rfc2047-unfold-region): Delete unused var `leading'. @@ -2371,8 +2365,8 @@ 2003-05-11 Lars Magne Ingebrigtsen - * gnus-agent.el (gnus-agent-expire-unagentized-dirs): Added - space. + * gnus-agent.el (gnus-agent-expire-unagentized-dirs): + Add space. 2003-05-11 Jesper Harder @@ -2390,7 +2384,7 @@ 2003-05-10 Lars Magne Ingebrigtsen - * gnus.el (gnus-logo-color-alist): Added no colors. + * gnus.el (gnus-logo-color-alist): Add no colors. 2003-05-09 Dave Love @@ -2415,12 +2409,12 @@ * gnus-registry.el (gnus-registry-unregistered-group-regex): removed in favor of the group/topic/global variables. - (gnus-registry-register-message-ids): Fixed test to omit + (gnus-registry-register-message-ids): Fix test to omit gnus-registry-unregistered-group-regex. - * gnus.el (gnus-variable-list): Removed gnus-registry-alist and + * gnus.el (gnus-variable-list): Remove gnus-registry-alist and gnus-registry-headers-alist from the list. - (gnus-registry-headers-alist): Removed. + (gnus-registry-headers-alist): Remove. (registry-ignore): New parameter, with accompanying gnus-registry-ignored-groups global variable. @@ -2430,12 +2424,12 @@ used by gnus-registry.el. * gnus-registry.el (gnus-registry-cache-file): New file variable. - (gnus-registry-cache-read, gnus-registry-cache-save): New - functions. + (gnus-registry-cache-read, gnus-registry-cache-save): + New functions. (gnus-registry-save, gnus-registry-read): Use the new gnus-registry-cache-{read|save} functions, and change the name from gnus-registry-translate-{from|to}-alist. - (gnus-registry-clear): Fixed so it doesn't refer to old function name. + (gnus-registry-clear): Fix so it doesn't refer to old function name. 2003-05-09 Dan Christensen @@ -2448,7 +2442,7 @@ 2003-05-08 Teodor Zlatanov - * gnus-start.el (gnus-clear-system): Added gnus-registry-alist to + * gnus-start.el (gnus-clear-system): Add gnus-registry-alist to the list of cleared variables. * gnus-registry.el (gnus-registry-split-fancy-with-parent): @@ -2461,8 +2455,8 @@ 2003-05-08 Kai Großjohann - * gnus-sum.el (gnus-summary-next-page): Mention - `gnus-article-skip-boring' in docstring. + * gnus-sum.el (gnus-summary-next-page): + Mention `gnus-article-skip-boring' in docstring. 2003-05-08 Jesper Harder @@ -2546,13 +2540,13 @@ * rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-eol): New. Callers of gnus- versions changed to use them. - (rfc2047-header-encoding-alist): Add `address-mime' part. Doc - fixes. + (rfc2047-header-encoding-alist): Add `address-mime' part. + Doc fixes. (rfc2047-encoding-type): New. (rfc2047-encode-message-header): Use mm-charset-to-coding-system. Don't include header name field in encoding. Add `address-mime' case and bind rfc2047-encoding-type for `mime' case. - (rfc2047-encodable-p): Deleted. + (rfc2047-encodable-p): Delete. (rfc2047-syntax-table): New. (rfc2047-encode-region, rfc2047-encode): Rewritten to take account of rfc2047 rules with respect to rfc2822 tokens and to do encoding @@ -2566,8 +2560,8 @@ 2003-05-02 Dave Love - * rfc2047.el (rfc2047-q-encode-region, rfc2047-decode): Use - mm-with-unibyte-current-buffer. + * rfc2047.el (rfc2047-q-encode-region, rfc2047-decode): + Use mm-with-unibyte-current-buffer. (ietf-drums, gnus-util): Don't require. * sieve.el (sieve-manage-mode-menu): Define before use. @@ -2577,9 +2571,9 @@ * mm-util.el (mm-coding-system-p): Don't override nil from coding-system-p. (mm-mule4-p, mm-disable-multibyte-mule4) - (mm-with-unibyte-current-buffer-mule4): Deleted. + (mm-with-unibyte-current-buffer-mule4): Delete. (mm-multibyte-p): Use defun, not defalias. - (mm-make-temp-file): Moved to group at top of file. + (mm-make-temp-file): Move to group at top of file. (mm-point-at-eol, mm-point-at-bol): New. * gnus-cite.el (gnus-art): Require. @@ -2599,29 +2593,29 @@ (gnus-output-to-rmail): Require mm-util. * mail-source.el (mail-source-callback): Use mm-make-temp-file. - (mail-source-make-complex-temp-name): Deleted. + (mail-source-make-complex-temp-name): Delete. * message.el (message-use-idna): Use mm-coding-system-p. (message-tokenize-header, message-make-organization) (message-make-from): Use with-temp-buffer. - (message-set-work-buffer): Deleted. + (message-set-work-buffer): Delete. (message-fill-paragraph): Use `if' not `and' for compiler warning. (message-check-news-header-syntax): Remove useless lambda. (message-forward-make-body): Use mm-disable-multibyte, mm-with-unibyte-current-buffer, mm-enable-multibyte. - (message-replace-chars-in-string): Deleted. + (message-replace-chars-in-string): Delete. * mm-extern.el (mm-extern-local-file): Use mm-disable-multibyte. (mm-extern-url): Use mm-with-unibyte-current-buffer, mm-disable-multibyte. (mm-extern-anon-ftp): Use mm-disable-multibyte. - * mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt): Use - mm-with-unibyte-current-buffer. + * mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt): + Use mm-with-unibyte-current-buffer. * mml2015.el (mml): Require. - (mml2015-mailcrypt-encrypt, mml2015-gpg-encrypt): Use - mm-with-unibyte-current-buffer. + (mml2015-mailcrypt-encrypt, mml2015-gpg-encrypt): + Use mm-with-unibyte-current-buffer. * nnheader.el (gnus-util): Require. @@ -2656,7 +2650,7 @@ * gnus-registry.el (gnus-registry-fetch-extra) (gnus-registry-store-extra, gnus-registry-group-count): New functions. (gnus-registry-fetch-group, gnus-registry-delete-group) - (gnus-registry-add-group): Changed to work with extra data element + (gnus-registry-add-group): Change to work with extra data element if present. 2003-05-01 Lars Magne Ingebrigtsen @@ -2693,8 +2687,8 @@ 2003-05-01 Lars Magne Ingebrigtsen - * message.el (message-forward-subject-name-subject): Decode - string when forwarding. + * message.el (message-forward-subject-name-subject): + Decode string when forwarding. 2003-05-01 Lars Magne Ingebrigtsen @@ -2756,7 +2750,7 @@ 2003-04-30 Reiner Steib - * gnus-art.el (gnus-button-prefer-mid-or-mail): Fixed typo in + * gnus-art.el (gnus-button-prefer-mid-or-mail): Fix typo in doc-string. 2003-05-01 Steve Youngs @@ -2778,20 +2772,20 @@ 2003-04-30 Teodor Zlatanov - * gnus-registry.el (gnus-registry-split-fancy-with-parent): Added - diagnostic message. + * gnus-registry.el (gnus-registry-split-fancy-with-parent): + Add diagnostic message. (gnus-registry-grep-in-list): Don't run when word is nil. (gnus-registry-fetch-message-id-fast): New function. (gnus-registry-delete-group, gnus-registry-add-group): Make sure the id and group are not nil. (gnus-registry-register-message-ids): New function. - (gnus-register-action): Optimized logical flow. - (gnus-summary-prepare-hook): Added gnus-registry-register-message-ids. + (gnus-register-action): Optimize logical flow. + (gnus-summary-prepare-hook): Add gnus-registry-register-message-ids. 2003-04-30 Kai Großjohann - * gnus-delay.el (gnus-delay-article): Call - `gnus-agent-queue-setup' to create the delay group. + * gnus-delay.el (gnus-delay-article): + Call `gnus-agent-queue-setup' to create the delay group. * gnus-agent.el (gnus-agent-queue-setup): Support optional arg for the (queue) group name. @@ -2804,17 +2798,17 @@ 2003-04-30 Kevin Greiner * gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-name): - Wrapped in eval-when-compile. + Wrap in eval-when-compile. (gnus-agent-mode): Bind gnus-agent-go-online to nil as you shouldn't be asked twice to go online with each server. (gnus-agent-get-undownloaded-list, gnus-agent-fetch-articles, gnus-agent-crosspost, gnus-agent-flush-cache, gnus-agent-fetch-session, gnus-agent-unread-articles, gnus-agent-uncached-articles, gnus-agent-regenerate-group, - gnus-agent-group-covered-p): Expanded pop macros used for + gnus-agent-group-covered-p): Expand pop macros used for effect. Avoids compilation warning in emacs 21.3. - * gnus-int.el (gnus-open-server): Restructured to only open + * gnus-int.el (gnus-open-server): Restructure to only open nnagent when gnus-plugged is nil. 2003-04-29 Teodor Zlatanov @@ -2830,7 +2824,7 @@ 2003-04-29 Reiner Steib - * gnus-art.el (gnus-button-alist): Fixed CTAN regexp. + * gnus-art.el (gnus-button-alist): Fix CTAN regexp. 2003-04-29 Teodor Zlatanov @@ -2892,7 +2886,7 @@ * gnus-art.el (gnus-mime-display-multipart-as-mixed) (gnus-mime-display-multipart-alternative-as-mixed) - (gnus-mime-display-multipart-related-as-mixed): Added doc-strings, + (gnus-mime-display-multipart-related-as-mixed): Add doc-strings, allow customization. 2003-04-27 Lars Magne Ingebrigtsen @@ -2909,7 +2903,7 @@ 2003-04-27 Kevin Greiner - * gnus-registry.el (gnus-register-spool-action): Replaced literal + * gnus-registry.el (gnus-register-spool-action): Replace literal carriage-return character with its escape sequence. 2003-04-27 Lars Magne Ingebrigtsen @@ -2921,7 +2915,7 @@ * gnus.el: Remove gnus-functionp throughout. - * gnus-util.el (gnus-functionp): Removed. + * gnus-util.el (gnus-functionp): Remove. * gnus-msg.el (gnus-summary-wide-reply-with-original): Doc fix. @@ -2985,8 +2979,8 @@ * gnus-start.el (message-make-date): Autoload rather than requiring message. - * gnus-group.el (gnus-group-name-charset-group-alist): Use - mm-coding-system-p. + * gnus-group.el (gnus-group-name-charset-group-alist): + Use mm-coding-system-p. (gnus-cache-active-altered): Defvar when compiling. (gnus-group-delete-group): Re-write to help avoid warnings. @@ -3032,12 +3026,12 @@ 2003-04-22 Paul Jarc - * gnus-util.el (gnus-merge): Added "type" argument to match CL + * gnus-util.el (gnus-merge): Add "type" argument to match CL merge and gnus-sum.el's expectations. 2003-04-21 Reiner Steib - * gnus-art.el (gnus-button-url-regexp): Added nntp. + * gnus-art.el (gnus-button-url-regexp): Add nntp. * message.el (message-generate-headers-first): Default to '(references). @@ -3089,8 +3083,8 @@ * spam.el (spam-split): Allow a particular check as a parameter, e.g. (: spam-split 'spam-use-bogofilter). (spam-mark-only-unseen-as-spam): New parameter, see doc. - (spam-mark-junk-as-spam-routine): Use - spam-mark-only-unseen-as-spam, simplify routine to take advantage + (spam-mark-junk-as-spam-routine): + Use spam-mark-only-unseen-as-spam, simplify routine to take advantage of gnus-newsgroup-unread as well as gnus-newsgroup-unseen. 2003-04-17 Teodor Zlatanov @@ -3103,7 +3097,7 @@ * gnus-registry.el (gnus-registry-clear) (gnus-registry-fetch-group, gnus-registry-grep-in-list) (gnus-registry-split-fancy-with-parent): New functions. - (gnus-register-spool-action, gnus-register-action): Simplified the + (gnus-register-spool-action, gnus-register-action): Simplify the format. (gnus-registry): New customization group. (gnus-registry-unfollowed-groups): New variable. @@ -3154,9 +3148,9 @@ * spam-report.el (Module): New module for spam reporting. - * gnus.el (spam-process): Added - gnus-group-spam-exit-processor-report-gmane to the list of choices. - (gnus-install-group-spam-parameters): Defined new spam exit processor. + * gnus.el (spam-process): + Add gnus-group-spam-exit-processor-report-gmane to the list of choices. + (gnus-install-group-spam-parameters): Define new spam exit processor. * spam.el (autoload): Autoload spam-report-gmane when needed. (spam-report-gmane-register-routine): Glue for spam-report.el. @@ -3200,7 +3194,7 @@ 2003-04-16 Kevin Greiner - * gnus-agent.el (gnus-agent-make-cat): Added optional parameter to + * gnus-agent.el (gnus-agent-make-cat): Add optional parameter to specify a predicate other than false. (gnus-category-read): Use the new feature to create a 'default' category with a 'short' predicate. @@ -3214,7 +3208,7 @@ 2003-04-15 Teodor Zlatanov - * spam.el (spam-split): Added save-restriction to save-excursion. + * spam.el (spam-split): Add save-restriction to save-excursion. 2003-04-15 Julien Avarre @@ -3276,8 +3270,8 @@ 2003-04-13 Kevin Greiner - * gnus-agent.el (gnus-agent-group-pathname): Bind - gnus-command-method so that gnus-agent-directory will always + * gnus-agent.el (gnus-agent-group-pathname): + Bind gnus-command-method so that gnus-agent-directory will always return a valid directory. * gnus-cache.el (gnus-cache-enter-article): Remove article from gnus-newsgroup-undownloaded so that the summary will display the @@ -3300,13 +3294,13 @@ 2003-04-12 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-article-next-page): Use - gnus-article-over-scroll. + * gnus-art.el (gnus-article-next-page): + Use gnus-article-over-scroll. (gnus-article-over-scroll): New variable. * message.el (message-newline-and-reformat): Place a boundary before filling. - (message-make-forward-subject-function): Changed default to + (message-make-forward-subject-function): Change default to message-forward-subject-name-subject. (message-forward-subject-name-subject): New function. @@ -3314,16 +3308,15 @@ * gnus-sum.el (gnus-summary-line-message-size): Ditto. - * gnus-cus.el (gnus-group-parameters): Removed "which see". + * gnus-cus.el (gnus-group-parameters): Remove "which see". - * mml.el (mml-minibuffer-read-file): Bind - completion-ignored-extensions to nil. + * mml.el (mml-minibuffer-read-file): + Bind completion-ignored-extensions to nil. * message.el (message-fix-before-sending): Comment fix. (message-fix-before-sending): Make hidden headers visible. (message-hide-headers): Bind after-change-functions to nil. - (message-forbidden-properties): Put invisible and intangible - back. + (message-forbidden-properties): Put invisible and intangible back. (message-strip-forbidden-properties): Ignore message-hidden text. * gnus-msg.el: Hide headers. @@ -3332,8 +3325,7 @@ (message-hide-headers): New function. (message-hide-header-p): New function. (message-hide-header-p): Change logic. - (message-forbidden-properties): Remove intangible nil invisible - nil. + (message-forbidden-properties): Remove intangible nil invisible nil. (message-hide-headers): Narrow to headers. 2003-04-12 Jesper Harder @@ -3348,7 +3340,7 @@ * gnus-agent.el (gnus-agent-get-undownloaded-list): Articles in the CACHE are now detected and handled the same as an article downloaded into the agent. - (gnus-agent-group-path): Modified to match nnmail-group-pathname + (gnus-agent-group-path): Modify to match nnmail-group-pathname so that the agent front-end and back-end (nnagent) always use the same directory. (gnus-agent-group-pathname): New function. Wrapper for @@ -3371,7 +3363,7 @@ 2003-04-09 Kevin Greiner - * gnus-agent.el (gnus-agent-write-active): Added option of + * gnus-agent.el (gnus-agent-write-active): Add option of replacing, rather than updating, the agent's active file. Do NOT use the fully qualified group name as gnus-active-to-gnus-format blindly prefixes group names with server names. @@ -3384,9 +3376,9 @@ (gnus-agent-expire-unagentized-dirs): Avoid asking to delete the same ancestor multiple times. - * gnus-async.el (gnus-asynchronous): Moved defcustom of - gnus-asynchronous away from defgroup of gnus-asynchronous. This - seems to fix an intermittant error in which loading gnus-async + * gnus-async.el (gnus-asynchronous): Move defcustom of + gnus-asynchronous away from defgroup of gnus-asynchronous. + This seems to fix an intermittant error in which loading gnus-async fails to define gnus-asynchronous (the variable). * gnus-sum.el: Concur with Steve Young, 5th argument to 'load' is @@ -3395,7 +3387,7 @@ group's active range to include fetched articles that are no longer in the server's active range. - * gnus-util.el (gnus-with-output-to-file): Removed all of the + * gnus-util.el (gnus-with-output-to-file): Remove all of the print-* bindings as they should be handled by the function doing the printing. @@ -3443,8 +3435,8 @@ 2003-04-06 Jesper Harder - * mm-uu.el (mm-uu-copy-to-buffer): Copy - `buffer-file-coding-system' to the new buffer. + * mm-uu.el (mm-uu-copy-to-buffer): + Copy `buffer-file-coding-system' to the new buffer. (mm-uu-pgp-signed-extract-1): Don't copy `buffer-file-coding-system' here. @@ -3452,8 +3444,8 @@ exist in XEmacs. (mm-decode-body): Add missing quote. - * mm-uu.el (mm-uu-pgp-signed-extract-1): Set - buffer-file-coding-system. + * mm-uu.el (mm-uu-pgp-signed-extract-1): + Set buffer-file-coding-system. * mm-bodies.el (mm-decode-body): Set buffer-file-coding-system to last-coding-system-used. @@ -3484,8 +3476,8 @@ 2003-04-05 Kevin Greiner - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound - print-escape-nonascii to fix more characters in compiled format + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Bound print-escape-nonascii to fix more characters in compiled format specs. 2003-04-05 Jesper Harder @@ -3495,8 +3487,8 @@ 2003-04-04 Kevin Greiner - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound - print-quoted, print-readably, print-escape-multibyte, and + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Bound print-quoted, print-readably, print-escape-multibyte, and print-level to match original behavior of gnus-prin1. This should repair the format of .newsrc.eld when using compiled format specs. @@ -3514,7 +3506,7 @@ 2003-04-03 Reiner Steib - * gnus-art.el (gnus-button-ctan-directory-regexp): Changed meaning + * gnus-art.el (gnus-button-ctan-directory-regexp): Change meaning and value. (gnus-button-alist): Use it. @@ -3534,9 +3526,9 @@ 2003-04-02 Reiner Steib - * gnus-util.el (gnus-message): Added doc-string. + * gnus-util.el (gnus-message): Add doc-string. - * gnus-score.el (gnus-score-find-trace): Changed behavior of `q'. + * gnus-score.el (gnus-score-find-trace): Change behavior of `q'. (gnus-score-edit-file-at-point): Goto first match when using `e'. 2003-04-01 Reiner Steib @@ -3551,22 +3543,22 @@ 2003-03-31 Kevin Greiner - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound - print-escape-newlines to print escape sequences rather than + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Bound print-escape-newlines to print escape sequences rather than literal newline characters. 2003-03-31 Reiner Steib - * gnus-art.el (gnus-button-valid-fqdn-regexp): Use - `message-valid-fqdn-regexp' for initialization. - (gnus-button-handle-info-url): Renamed and extended version of + * gnus-art.el (gnus-button-valid-fqdn-regexp): + Use `message-valid-fqdn-regexp' for initialization. + (gnus-button-handle-info-url): Rename and extended version of `gnus-button-handle-info'. - (gnus-button-message-level): Renamed from `gnus-button-mail-level'. + (gnus-button-message-level): Rename from `gnus-button-mail-level'. (gnus-button-handle-symbol, gnus-button-handle-library) (gnus-button-handle-info-keystrokes): New functions. (gnus-button-browse-level): New variable. (gnus-button-alist): Use them. Added levels. - (gnus-header-button-alist): Added levels. + (gnus-header-button-alist): Add levels. 2003-03-31 Lars Magne Ingebrigtsen @@ -3578,10 +3570,10 @@ 2003-03-31 Lars Magne Ingebrigtsen - * gnus-start.el (gnus-unload): Removed. + * gnus-start.el (gnus-unload): Remove. - * pop3.el (pop3-read-response): Use - nnheader-accept-process-output. + * pop3.el (pop3-read-response): + Use nnheader-accept-process-output. (pop3-retr): Ditto. * mm-view.el (mm-text-html-renderer-alist): Add -nolist to Lynx. @@ -3601,7 +3593,7 @@ * nnheader.el (nnheader-read-timeout): New variable. (nnheader-accept-process-output): New function. - * nntp.el (nntp-read-timeout): Removed. + * nntp.el (nntp-read-timeout): Remove. * gnus-sum.el (gnus-summary-prepare-threads): Add comment. @@ -3622,8 +3614,8 @@ 2003-03-28 Vasily Korytov - * message.el (message-make-in-reply-to): Use - mail-extract-address-components to determine sender's + * message.el (message-make-in-reply-to): + Use mail-extract-address-components to determine sender's name/address. 2003-03-30 Lars Magne Ingebrigtsen @@ -3634,8 +3626,8 @@ valid lambda. (gnus-registry-translate-from-alist): Ditto. - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bind - print-length to nil. + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Bind print-length to nil. * gnus-sum.el (gnus-summary-highlight-line-0): Indent. @@ -3658,14 +3650,14 @@ (gnus-registry-translate-from-alist): New functions. (gnus-register-spool-action): Add a spool item to the registry. - * gnus.el (gnus-variable-list): Added gnus-registry-alist to the + * gnus.el (gnus-variable-list): Add gnus-registry-alist to the list of saved variables. (gnus-registry-alist): New variable. 2003-03-28 Andreas Fuchs - * gnus-registry.el (alist-to-hashtable, hashtable-to-alist): New - functions. + * gnus-registry.el (alist-to-hashtable, hashtable-to-alist): + New functions. 2003-03-27 Simon Josefsson @@ -3683,7 +3675,7 @@ 2003-03-26 Kevin Ryde - * gnus-sum.el (gnus-summary-find-for-reselect): Renamed from + * gnus-sum.el (gnus-summary-find-for-reselect): Rename from gnus-summary-find-uncancelled, skip temporary articles inserted by "refer" functions. @@ -3693,7 +3685,7 @@ 2003-03-26 Kevin Greiner - * gnus-agent.el (gnus-agent-fetch-selected-article): Replaced + * gnus-agent.el (gnus-agent-fetch-selected-article): Replace gnus-summary-update-line (which updated the article's face) with gnus-summary-update-download-mark (which updates the article's face by calling gnus-summary-update-line AND updates the download @@ -3717,8 +3709,8 @@ * rfc2047.el (rfc2047-header-encoding-alist): Make Followup-To same as Newsgroups. - * nntp.el (nntp-open-connection-function): Mention - nntp-open-tls-stream. + * nntp.el (nntp-open-connection-function): + Mention nntp-open-tls-stream. (nntp-open-tls-stream): New function. * tls.el: New file. @@ -3769,10 +3761,10 @@ * gnus-int.el (gnus-open-server): Catch errors in backend's open-server method. Returns nil rather than crashing startup. - * gnus-sum.el (eval-when-compile): Modified to resolve + * gnus-sum.el (eval-when-compile): Modify to resolve compile-time warnings. - * gnus-uu.el (gnus-uu-mark-series): Added informative msg. + * gnus-uu.el (gnus-uu-mark-series): Add informative msg. Reports length of series so that the user can compare N with a subject that should, if the entire series is present, contain '(.../N)'. @@ -3801,7 +3793,7 @@ 2003-03-20 Reiner Steib - * message.el (message-check-news-header-syntax): Fixed regexp. + * message.el (message-check-news-header-syntax): Fix regexp. 2003-03-20 ShengHuo ZHU @@ -3860,7 +3852,7 @@ * spam.el (spam-group-ham-mark-p, spam-group-spam-mark-p) (spam-group-ham-marks, spam-group-spam-marks): New functions. - (spam-spam-marks, spam-ham-marks): Removed in favor of the + (spam-spam-marks, spam-ham-marks): Remove in favor of the spam-marks and ham-marks parameters. (spam-generic-register-routine, spam-ham-move-routine): Use the new spam-group-{spam,ham}-mark-p functions. @@ -4030,23 +4022,23 @@ 2003-03-09 Kevin Greiner - * gnus-agent.el (gnus-agent-fetched-hook): New variable. Just - fixing the code to match the documentation. - (gnus-agent-fetch-selected-article): Replaced + * gnus-agent.el (gnus-agent-fetched-hook): New variable. + Just fixing the code to match the documentation. + (gnus-agent-fetch-selected-article): Replace gnus-summary-update-article-line with gnus-summary-update-line as the former did not correctly recalculate the thread indentation. (gnus-agent-find-parameter): The agent-predicate, if not found anywhere else, defaults to the value of gnus-agent-predicate. - (gnus-agent-fetch-session): Fixed typo; now executes + (gnus-agent-fetch-session): Fix typo; now executes gnus-agent-fetched-hook rather than the undocumented gnus-agent-fetch-hook. - (gnus-agent-fetch-group-1): Removed part of 2003-03-06 fix. The - default agent predicate is now provided by + (gnus-agent-fetch-group-1): Remove part of 2003-03-06 fix. + The default agent predicate is now provided by gnus-agent-find-parameter. (gnus-agent-message): New macro. This macro avoids potentially costly parameter evaluation when the message's level is too high to display. - (gnus-agent-expire-group-1): Disabled undo tracking in temp + (gnus-agent-expire-group-1): Disable undo tracking in temp overview buffer. Uses new gnus-agent-message macro to reduce overhead of optional messages. Reversed message levels to emphasize percent completion messages. Detailed messages of @@ -4054,8 +4046,8 @@ 2003-03-08 Teodor Zlatanov - * spam.el (spam-ham-move-routine): Use - spam-mark-ham-unread-before-move-from-spam-group. + * spam.el (spam-ham-move-routine): + Use spam-mark-ham-unread-before-move-from-spam-group. (spam-mark-ham-unread-before-move-from-spam-group): New variable. 2003-03-07 Teodor Zlatanov @@ -4074,7 +4066,7 @@ 2003-03-07 Teodor Zlatanov * spam.el (spam-use-hashcash): New variable. - (spam-list-of-checks): Added spam-use-hashcash with associated + (spam-list-of-checks): Add spam-use-hashcash with associated spam-check-hashcash. (spam-check-hashcash): New function, installed iff hashcash.el is loaded. @@ -4082,7 +4074,7 @@ 2003-03-06 Kevin Greiner - * gnus-agent.el (gnus-agent-fetch-group-1): Added default + * gnus-agent.el (gnus-agent-fetch-group-1): Add default predicate of `false' to avoid an error when a group defines no predicate. Fixed typo that disabled agent scoring (i.e. the low/high predicates should now work). @@ -4091,10 +4083,10 @@ * spam.el: Add spam-maybe-spam-stat-load to gnus-get-top-new-news-hook, remove it from gnus-get-new-news-hook. - (spam-bogofilter-register-with-bogofilter): Use - spam-bogofilter-spam-switch and spam-bogofilter-ham-switch. - (spam-bogofilter-spam-switch, spam-bogofilter-ham-switch): New - custom variables to replace "-s" and "-n". + (spam-bogofilter-register-with-bogofilter): + Use spam-bogofilter-spam-switch and spam-bogofilter-ham-switch. + (spam-bogofilter-spam-switch, spam-bogofilter-ham-switch): + New custom variables to replace "-s" and "-n". * gnus-group.el (gnus-group-get-new-news): Call the new gnus-get-top-new-news-hook hook. @@ -4113,9 +4105,9 @@ 2003-03-06 Kevin Greiner - * gnus-agent.el (gnus-agent-fetch-group-1): Added missing binding + * gnus-agent.el (gnus-agent-fetch-group-1): Add missing binding on gnus-agent-short-article. - (gnus-category-read): Replaced CL function mapcar* with new macro: + (gnus-category-read): Replace CL function mapcar* with new macro: gnus-mapcar. * gnus-util.el (gnus-mapcar): New macro. Generalizes mapcar to support functions that accept multiple parameters. A separate @@ -4144,19 +4136,19 @@ 2003-03-04 Kai Großjohann - * gnus-agent.el (gnus-function-implies-unread-1): Grok - byte-compiled functions. + * gnus-agent.el (gnus-function-implies-unread-1): + Grok byte-compiled functions. 2003-03-04 Kevin Greiner - * gnus-sum.el (gnus-auto-goto-ignores): New variable. Provides - customization between new maneuvering (which permits selecting + * gnus-sum.el (gnus-auto-goto-ignores): New variable. + Provides customization between new maneuvering (which permits selecting undownloaded articles) and old maneuvering (which skipped over undownloaded articles) behaviors. (gnus-summary-find-next): Pass through the unread and subject parameters when calling gnus-summary-find-prev. - (gnus-summary-find-next, gnus-summary-find-prev): Apply - gnus-auto-goto-ignores to filter out unacceptable articles. + (gnus-summary-find-next, gnus-summary-find-prev): + Apply gnus-auto-goto-ignores to filter out unacceptable articles. 2003-03-04 Jesper Harder @@ -4167,8 +4159,8 @@ (mail-source-fetch-webmail): Use read-passwd. * nntp.el (nntp-send-authinfo, nntp-send-nosy-authinfo) - (nntp-open-telnet, nntp-open-via-telnet-and-telnet): Use - read-passwd. + (nntp-open-telnet, nntp-open-via-telnet-and-telnet): + Use read-passwd. * nnwarchive.el (nnwarchive-open-server): Use read-passwd. @@ -4182,14 +4174,14 @@ (sieve-manage-interactive-login): Use read-passwd. * pop3.el (pop3-read-passwd): Remove. - (pop3-movemail, pop3-get-message-count, pop3-apop): Use - read-passwd. + (pop3-movemail, pop3-get-message-count, pop3-apop): + Use read-passwd. * pgg.el (pgg-read-passphrase): Simplify. 2003-03-04 Kevin Greiner - * gnus-agent.el (gnus-agent-mode): Fixed the mode line reports + * gnus-agent.el (gnus-agent-mode): Fix the mode line reports 'plugged' when actually 'unplugged' bug. (gnus-category-read): Ignore nil values when converting an old-format category so that the new-format category will default @@ -4197,8 +4189,8 @@ 2003-03-03 Reiner Steib - * mail-source.el (mail-source-delete-old-incoming-confirm): Fixed - doc-string. + * mail-source.el (mail-source-delete-old-incoming-confirm): + Fix doc-string. 2003-03-03 Jesper Harder @@ -4226,12 +4218,12 @@ 2003-03-03 Reiner Steib * gnus-msg.el (gnus-extended-version): Fix for 'emacs-gnus-config. - (gnus-user-agent): Fixed typo. + (gnus-user-agent): Fix typo. 2003-03-03 Kevin Greiner - * gnus-agent.el (gnus-agent-enable-expiration): Fixed documentation. - (gnus-agent-expire-group-1): Removed invalid (interactive) specifier. + * gnus-agent.el (gnus-agent-enable-expiration): Fix documentation. + (gnus-agent-expire-group-1): Remove invalid (interactive) specifier. 2003-03-03 Lars Magne Ingebrigtsen @@ -4241,8 +4233,8 @@ 2003-03-03 Jesper Harder * gnus-sum.el (gnus-highlight-selected-summary) - (gnus-article-get-xrefs, gnus-summary-show-thread): Use - `gnus-point-at-bol' and `gnus-point-at-eol' instead of + (gnus-article-get-xrefs, gnus-summary-show-thread): + Use `gnus-point-at-bol' and `gnus-point-at-eol' instead of `(progn (beginning-of-line) (point))'. It's shorter, faster, and makes it clear that we don't need the side effect. * gnus-util.el (gnus-delete-line): Do. @@ -4280,8 +4272,8 @@ 2003-03-02 Kevin Greiner - * gnus-agent.el (gnus-agent-enable-expiration): New - variable. Either ENABLE or DISABLE. Sets default behavior for + * gnus-agent.el (gnus-agent-enable-expiration): + New variable. Either ENABLE or DISABLE. Sets default behavior for selecting which groups are expired. (gnus-agent-cat-set-property, gnus-agent-cat-defaccessor, gnus-agent-set-cat-groups): Provides abstract interface for @@ -4289,8 +4281,8 @@ (gnus-agent-add-group, gnus-agent-remove-group, gnus-category-insert-line, gnus-category-edit-predicate, gnus-category-edit-score, gnus-category-edit-groups, - gnus-category-copy, gnus-category-add, gnus-group-category): Use - new agent category abstraction. + gnus-category-copy, gnus-category-add, gnus-group-category): + Use new agent category abstraction. (gnus-agent-find-parameter): New function. Search for agent configuration parameter first in the group's parameters, then its topics (if any), and then the group's category. If not found @@ -4310,11 +4302,11 @@ (gnus-category-write): Writes category file compatible with current, and previous, versions of gnus-agent. (gnus-category-make-function, gnus-category-make-function-1): - Corrected documentation; parameter is predicate NOT category. + Correct documentation; parameter is predicate NOT category. (gnus-predicate-implies-unread): Now works in more cases per the todo comment. - (gnus-function-implies-unread-1): New function. Supports - gnus-predicate-implies-unread. + (gnus-function-implies-unread-1): New function. + Supports gnus-predicate-implies-unread. (gnus-agent-expire-group): Command now provides default of group under point. (gnus-agent-expire-group-1): Obeys new agent-enable-expiration and @@ -4323,12 +4315,12 @@ (gnus-agent-request-article): Now performs its own checks of gnus-agent, gnus-agent-cache, and gnus-plugged rather than assuming that the caller will do them correctly. - (): Added one-time hook to gnus-group-prepare-hook. Detects when + (): Add one-time hook to gnus-group-prepare-hook. Detects when gnus-agent-expire-days is set to an alist. Converts said alist into group parameter so that gnus-agent-expire-days will not be needed. - * gnus-art.el (gnus-request-article-this-buffer): Conditional - checks surrounding gnus-agent-request-article removed; now + * gnus-art.el (gnus-request-article-this-buffer): + Conditional checks surrounding gnus-agent-request-article removed; now performed by gnus-agent-request-article. * gnus-cus.el (gnus-agent-parameters): New variable. List of customizable group/topic parameters that regulate the agent. @@ -4351,8 +4343,8 @@ warnings. (gnus-long-file-names): New function. Isolates platform dependent msdos-long-file-names. - (gnus-save-startup-file-via-temp-buffer): New variable. Provides - option of writing directly to file. Avoids memory exhausted + (gnus-save-startup-file-via-temp-buffer): New variable. + Provides option of writing directly to file. Avoids memory exhausted errors when .newsrc.eld is huge. (gnus-save-newsrc-file): Uses new gnus-save-startup-file-via-temp-buffer. @@ -4419,12 +4411,11 @@ nnimap-split-download-body, we add it to gnus-get-new-news-hook. (spam-list-of-statistical-checks): List of statistical splitter checks. - (spam-split): Added a widen call when a statistical check is - enabled. + (spam-split): Add a widen call when a statistical check is enabled. 2003-02-28 Reiner Steib - * gnus-msg.el (gnus-user-agent): Changed default to + * gnus-msg.el (gnus-user-agent): Change default to 'emacs-gnus-type, renamed 'full. 2003-02-28 ShengHuo ZHU @@ -4444,8 +4435,8 @@ 2003-02-26 Simon Josefsson - * gnus-sum.el (gnus-summary-toggle-header): Run - gnus-article-decode-hook instead of calling a-decode-encoded-words + * gnus-sum.el (gnus-summary-toggle-header): + Run gnus-article-decode-hook instead of calling a-decode-encoded-words directly (the latter is run as part of the former). 2003-02-26 ShengHuo ZHU @@ -4460,13 +4451,13 @@ 2003-02-25 Reiner Steib - * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): Added - compensation for TDMA addresses. + * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): + Add compensation for TDMA addresses. 2003-02-24 Reiner Steib * gnus-msg.el (gnus-user-agent): New variable. - (gnus-version-expose-system): Removed. Obsoleted by + (gnus-version-expose-system): Remove. Obsoleted by `gnus-user-agent'. (gnus-extended-version): Use `gnus-user-agent'. @@ -4478,17 +4469,17 @@ 2003-02-24 Kevin Greiner - * gnus-group.el (gnus-topic-mode-p): Fixed free variable + * gnus-group.el (gnus-topic-mode-p): Fix free variable reference. 2003-02-24 Kevin Greiner - * nnheader.el (nnheader-find-nov-line): Changed midpoint + * nnheader.el (nnheader-find-nov-line): Change midpoint calculation to avoid integer overflow. 2003-02-24 Reiner Steib - * gnus-start.el (gnus-backup-startup-file): Fixed custom type. + * gnus-start.el (gnus-backup-startup-file): Fix custom type. 2003-02-24 Teodor Zlatanov @@ -4528,10 +4519,10 @@ clause of the condition-case statement. Errors connecting to a server no longer terminate gnus. - * gnus-agent.el (gnus-agent-toggle-plugged): Renamed parameter to + * gnus-agent.el (gnus-agent-toggle-plugged): Rename parameter to make its use obvious. Added no-nothing case to avoid opening(closing) servers when already open(closed). - (gnus-agent-while-plugged): Added macro to facilitate internal use + (gnus-agent-while-plugged): Add macro to facilitate internal use of gnus-agent-toggle-plugged. (gnus-agent-fetch-group): Use new gnus-agent-while-plugged to temporarily open servers. @@ -4565,8 +4556,8 @@ 2003-02-20 Reiner Steib - * message.el (message-user-fqdn, message-valid-fqdn-regexp): New - variables. + * message.el (message-user-fqdn, message-valid-fqdn-regexp): + New variables. (message-make-fqdn): Use it. Improved validity check. 2003-02-23 Lars Magne Ingebrigtsen @@ -4592,7 +4583,7 @@ 2003-02-23 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-button-url-regexp): Removed `. + * gnus-art.el (gnus-button-url-regexp): Remove `. 2003-02-23 Max Froumentin @@ -4603,13 +4594,13 @@ * gnus-art.el (gnus-mime-action-on-part): Require a match interactively. - * gnus-start.el (gnus-save-newsrc-file): Use - gnus-backup-startup-file. + * gnus-start.el (gnus-save-newsrc-file): + Use gnus-backup-startup-file. (gnus-backup-startup-file): New variable. 2003-02-22 Lars Magne Ingebrigtsen - * gnus.el (gnus-summary-buffer-name): Moved function here. + * gnus.el (gnus-summary-buffer-name): Move function here. * gnus-draft.el (defun): Remove debug. @@ -4631,8 +4622,8 @@ 2003-02-22 Kai Großjohann - * gnus-agent.el (gnus-agent-get-undownloaded-list): Sort - `gnus-newsgroup-headers'. + * gnus-agent.el (gnus-agent-get-undownloaded-list): + Sort `gnus-newsgroup-headers'. 2003-02-22 Karl Pflästerer @@ -4651,18 +4642,18 @@ just article ID. * gnus-registry.el (gnus-registry-hashtb, gnus-register-action) - (gnus-register-spool-action): Added hashtable of message ID keys + (gnus-register-spool-action): Add hashtable of message ID keys with message motion data. 2003-02-21 Reiner Steib - * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): New - variable, used in `gnus-button-mid-or-mail-heuristic'. + * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): + New variable, used in `gnus-button-mid-or-mail-heuristic'. (gnus-button-mid-or-mail-heuristic): New function derived from Florian Weimer's Perl script. (gnus-button-handle-mid-or-mail): Allow a function instead of 'guess. - (gnus-button-guessed-mid-regexp): Removed. + (gnus-button-guessed-mid-regexp): Remove. 2003-02-20 Katsumi Yamaoka @@ -4700,7 +4691,7 @@ 2003-02-19 Reiner Steib * gnus-cite.el (gnus-cite-unsightly-citation-regexp) - (gnus-cite-parse): Renamed `gnus-unsightly-citation-regexp' to + (gnus-cite-parse): Rename `gnus-unsightly-citation-regexp' to `gnus-cite-unsightly-citation-regexp'. 2003-02-19 Katsumi Yamaoka @@ -4723,8 +4714,8 @@ 2003-02-18 Teodor Zlatanov * spam.el (spam-ham-move-routine) - (spam-mark-spam-as-expired-and-move-routine): Use - gnus-summary-kill-process-mark and gnus-summary-yank-process-mark + (spam-mark-spam-as-expired-and-move-routine): + Use gnus-summary-kill-process-mark and gnus-summary-yank-process-mark around process-mark manipulation on the group. 2003-02-17 Kai Großjohann @@ -4739,8 +4730,8 @@ 2003-02-16 Lars Magne Ingebrigtsen - * nndraft.el (nndraft-request-move-article): Bind - nnmh-allow-delete-final to t. + * nndraft.el (nndraft-request-move-article): + Bind nnmh-allow-delete-final to t. 2003-02-14 ShengHuo ZHU @@ -4821,8 +4812,8 @@ * gnus-art.el (gnus-article-only-boring-p): New. (gnus-article-skip-boring): New. * gnus-cite.el (gnus-article-boring-faces): New. - * gnus-sum.el (gnus-summary-next-page): Use - gnus-article-only-boring-p. + * gnus-sum.el (gnus-summary-next-page): + Use gnus-article-only-boring-p. 2003-02-12 Teodor Zlatanov @@ -4842,7 +4833,7 @@ 2003-02-11 Kevin Greiner - * gnus-agent.el (gnus-summary-set-agent-mark): Added call to + * gnus-agent.el (gnus-summary-set-agent-mark): Add call to gnus-summary-goto-subject as gnus-summary-update-mark operates on the current LINE. (gnus-agent-summary-fetch-group): Minimized the number of times @@ -4868,8 +4859,8 @@ 2003-02-10 Jesper Harder - * mm-util.el (mm-mule-charset-to-mime-charset): Use - sort-coding-systems to prefer utf-8 over utf-16. + * mm-util.el (mm-mule-charset-to-mime-charset): + Use sort-coding-systems to prefer utf-8 over utf-16. 2003-02-09 Kevin Greiner @@ -4880,9 +4871,9 @@ If you don't want to run gnus-agent-expire, don't call it. (gnus-agent-expire): The broken test to disable gnus-agent-expire when g-a-e-d was NOT nil was removed. - (gnus-agent-article-name): Removed unnecessary input test as + (gnus-agent-article-name): Remove unnecessary input test as article IDs are always strings. - (gnus-agent-regenerate-group): Added check to protect against + (gnus-agent-regenerate-group): Add check to protect against servers that generate absurdly long article IDs. Valid IDs are less than 10 digits to avoid overflow errors. Fixed logic error when ensuring that the final article ID is present in the new @@ -4918,8 +4909,8 @@ 2003-02-08 Jesper Harder - * gnus-art.el (gnus-article-refer-article): Use - gnus-replace-in-string. + * gnus-art.el (gnus-article-refer-article): + Use gnus-replace-in-string. * gnus-util.el (gnus-map-function): Remove unneeded let-binding. (gnus-remove-duplicates): Do. @@ -4928,12 +4919,12 @@ * gnus-int.el (gnus-internal-registry-spool-current-method): New variable. - (gnus-request-scan): Set - gnus-internal-registry-spool-current-method to gnus-command-method + (gnus-request-scan): + Set gnus-internal-registry-spool-current-method to gnus-command-method before a request-scan operation. - * gnus-registry.el (regtest-nnmail): Use - gnus-internal-registry-spool-current-method. + * gnus-registry.el (regtest-nnmail): + Use gnus-internal-registry-spool-current-method. 2003-02-07 Lars Magne Ingebrigtsen @@ -4946,7 +4937,7 @@ * gnus-registry.el: New file with examples of using the hooks. - * gnus.el (gnus-registry): Added registry customization group. + * gnus.el (gnus-registry): Add registry customization group. (gnus-group-prefixed-name): Improve function to return full group name optionally. (gnus-group-guess-prefixed-name): Shortcut to @@ -4990,8 +4981,8 @@ 2003-02-07 Simon Josefsson - * mml-sec.el (mml-unsecure-message): Don't use kill-region. Tiny - patch from deskpot@myrealbox.com (Vasily Korytov). + * mml-sec.el (mml-unsecure-message): Don't use kill-region. + Tiny patch from deskpot@myrealbox.com (Vasily Korytov). 2003-02-02 Lars Magne Ingebrigtsen @@ -5000,8 +4991,8 @@ 2003-02-06 Katsumi Yamaoka - * gnus-art.el (gnus-mime-view-part-internally): Bind - buffer-read-only to nil. + * gnus-art.el (gnus-mime-view-part-internally): + Bind buffer-read-only to nil. 2003-02-05 Katsumi Yamaoka @@ -5120,14 +5111,14 @@ * gnus-util.el (gnus-prin1-to-string): Bind print-length and print-level. - * gnus-art.el (article-display-x-face): Removed gray x-face stuff. - (gnus-treat-display-grey-xface): Removed. + * gnus-art.el (article-display-x-face): Remove gray x-face stuff. + (gnus-treat-display-grey-xface): Remove. * gnus-fun.el (gnus-grab-cam-face): New. - (gnus-convert-image-to-gray-x-face): Removed. - (gnus-convert-gray-x-face-to-xpm): Removed. - (gnus-convert-gray-x-face-region): Removed. - (gnus-grab-gray-x-face): Removed. + (gnus-convert-image-to-gray-x-face): Remove. + (gnus-convert-gray-x-face-to-xpm): Remove. + (gnus-convert-gray-x-face-region): Remove. + (gnus-grab-gray-x-face): Remove. * nnmail.el (nnmail-expiry-wait-function): Doc indent. @@ -5179,7 +5170,7 @@ * gnus-fun.el (gnus-face-encode): New function. (gnus-convert-png-to-face): Use it. - * gnus-sum.el (gnus-summary-make-menu-bar): Added M-& to marks. + * gnus-sum.el (gnus-summary-make-menu-bar): Add M-& to marks. 2003-01-26 Jesper Harder @@ -5201,16 +5192,16 @@ * mm-encode.el (mm-qp-or-base64): Always QP iff mm-use-ultra-safe-encoding and cleartext PGP. - * gnus-sum.el (gnus-summary-select-article): Inhibit - redisplay (mainly for secured messages). + * gnus-sum.el (gnus-summary-select-article): + Inhibit redisplay (mainly for secured messages). * nnmail.el (nnmail-article-group): Copy body too (but don't process it). 2003-01-25 Jesper Harder - * gnus-art.el (gnus-article-setup-buffer): Reset - gnus-button-marker-list. + * gnus-art.el (gnus-article-setup-buffer): + Reset gnus-button-marker-list. 2003-01-25 Lars Magne Ingebrigtsen @@ -5219,8 +5210,8 @@ 2003-01-24 Lars Magne Ingebrigtsen - * nnheader.el (nnheader-directory-separator-character): New - variable. + * nnheader.el (nnheader-directory-separator-character): + New variable. 2003-01-24 Kai Großjohann @@ -5257,8 +5248,8 @@ 2003-01-24 Teodor Zlatanov * spam.el (spam-check-blackholes, spam-split) - (spam-mark-junk-as-spam-routine, spam-summary-prepare-exit): Added - gnus-message calls to show to users what spam.el is doing. + (spam-mark-junk-as-spam-routine, spam-summary-prepare-exit): + Add gnus-message calls to show to users what spam.el is doing. 2003-01-24 Jesper Harder @@ -5282,7 +5273,7 @@ * gnus-async.el (gnus-async-wait-for-article): Don't use a timeout. - * nntp.el (nntp-accept-process-output): Removed timeout. + * nntp.el (nntp-accept-process-output): Remove timeout. (nntp-read-timeout): New variable. (nntp-accept-process-output): Use it. @@ -5290,14 +5281,14 @@ 2003-01-23 Kevin Greiner - * gnus-sum.el (gnus-summary-first-subject): Fixed bug that I + * gnus-sum.el (gnus-summary-first-subject): Fix bug that I introduced on 2002-01-22. (gnus-summary-first-unseen-or-unread-subject): Ditto. 2003-01-23 Teodor Zlatanov * spam.el (spam-check-regex-headers, spam-list-of-checks) - (spam-regex-headers-spam, spam-regex-headers-ham): Added spam/ham + (spam-regex-headers-spam, spam-regex-headers-ham): Add spam/ham checks of incoming mail based on simple header regexp matching. 2003-01-22 Teodor Zlatanov @@ -5310,16 +5301,16 @@ gnus-newsgroup-unfetched, the list of articles whose headers have not been fetched from the server. - * gnus-sum.el (gnus-summary-find-next): Removed undownloaded + * gnus-sum.el (gnus-summary-find-next): Remove undownloaded parameter as it never worked due to a bug. Added check to prevent selection of any article in the gnus-newsgroup-unfetched list. - (gnus-summary-find-prev): Added check to prevent selection of any + (gnus-summary-find-prev): Add check to prevent selection of any article in the gnus-newsgroup-unfetched list. - (gnus-summary-first-subject): Documented API. Modified - implementation so that constraints are handled independently. + (gnus-summary-first-subject): Document API. + Modified implementation so that constraints are handled independently. Added check to prevent selection of any article in the gnus-newsgroup-unfetched list. - (gnus-summary-first-unseen-subject): Updated parameters in + (gnus-summary-first-unseen-subject): Update parameters in gnus-summary-first-subject call to match new API. (gnus-summary-first-unseen-or-unread-subject): Ditto. (gnus-summary-catchup): Do not mark unfetched articles as read. @@ -5330,8 +5321,8 @@ make-obsolete-variable allows only two arguments in XEmacs and Emacs 20. - * gnus-sum.el (gnus-summary-wash-hide-map): Remove - gnus-article-hide-pgp. + * gnus-sum.el (gnus-summary-wash-hide-map): + Remove gnus-article-hide-pgp. (gnus-summary-make-menu-bar): Do. * gnus-art.el (gnus-treat-strip-pgp): Make obsolete. @@ -5348,21 +5339,21 @@ 2003-01-21 Teodor Zlatanov - * spam.el (spam-group-ham-processor-bogofilter-p): Fixed bug. - (spam-ifile-register-ham-routine, spam-ifile-ham-category): New - option to make ifile a purely binary classifier. + * spam.el (spam-group-ham-processor-bogofilter-p): Fix bug. + (spam-ifile-register-ham-routine, spam-ifile-ham-category): + New option to make ifile a purely binary classifier. 2003-01-21 Lars Magne Ingebrigtsen - * mml-sec.el (mml-secure-sign-pgpauto): Renamed. - (mml-secure-encrypt-pgpmime): Removed double. + * mml-sec.el (mml-secure-sign-pgpauto): Rename. + (mml-secure-encrypt-pgpmime): Remove double. - * gnus-sum.el (gnus-summary-mark-article-as-replied): Added - debugging statements. + * gnus-sum.el (gnus-summary-mark-article-as-replied): + Add debugging statements. 2003-01-21 Andreas Fuchs - * mml-sec.el (mml-sign-alist): Added pgpauto. + * mml-sec.el (mml-sign-alist): Add pgpauto. 2003-01-21 Lars Magne Ingebrigtsen @@ -5374,7 +5365,7 @@ 2003-01-21 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-button-url-regexp): Removed |. + * gnus-art.el (gnus-button-url-regexp): Remove |. * message.el (message-send-hook): Doc fix. @@ -5394,10 +5385,10 @@ 2003-01-18 Kevin Greiner - * gnus-agent.el (gnus-agent-regenerate-group): Added interactive form. + * gnus-agent.el (gnus-agent-regenerate-group): Add interactive form. - * gnus-sum.el (gnus-summary-update-article-line): Fixed - calculation of net characters added for use in the gnus-data + * gnus-sum.el (gnus-summary-update-article-line): + Fix calculation of net characters added for use in the gnus-data structure. 2003-01-18 Kai Großjohann @@ -5431,8 +5422,8 @@ avoid encoding problems. * mailcap.el (mailcap-ps-command): New variable. - (mailcap-mime-data): Add print entry where applicable. Use - pdftotext on a tty. + (mailcap-mime-data): Add print entry where applicable. + Use pdftotext on a tty. 2003-01-16 ShengHuo ZHU @@ -5449,7 +5440,7 @@ * spam.el (spam-get-article-as-filename): New function (unused for now). (spam-get-article-as-buffer): New function. (spam-get-article-as-string): Use spam-get-article-as-buffer. - (spam-summary-prepare-exit): Fixed bug, noticed by Malcolm Purvis. + (spam-summary-prepare-exit): Fix bug, noticed by Malcolm Purvis. 2003-01-15 ShengHuo ZHU @@ -5500,7 +5491,7 @@ (spam-group-ham-processor-bogofilter-p): New functions for the new Bogofilter interface. (spam-summary-prepare-exit): Use the new Bogofilter functions. - (spam-list-of-checks): Added spam-use-bogofilter-headers. + (spam-list-of-checks): Add spam-use-bogofilter-headers. (spam-bogofilter-score): Rewrote function. (spam-check-bogofilter): Optional score parameter, uses spam-check-bogofilter-headers better. @@ -5546,9 +5537,9 @@ 2003-01-13 Jhair Tocancipa Triana - * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use - /usr/bin/play as default player. - (gnus-audio-play): Added ARG-DESCRIPTOR to prompt for a file to play. + * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): + Use /usr/bin/play as default player. + (gnus-audio-play): Add ARG-DESCRIPTOR to prompt for a file to play. 2003-01-14 Katsumi Yamaoka @@ -5560,7 +5551,7 @@ fictitious headers generated by nnagent (ie. Undownloaded Article ####) in the list of articles that have not been downloaded. - * gnus-int.el (): Added require declarations to resolve + * gnus-int.el (): Add require declarations to resolve compile-time warnings. (gnus-open-server): If the server status is set to offline, recursively execute gnus-open-server to open the offline backend @@ -5568,8 +5559,8 @@ 2003-01-14 Jesper Harder - * gnus-art.el (gnus-article-reply-with-original): Use - gnus-mark-active-p. + * gnus-art.el (gnus-article-reply-with-original): + Use gnus-mark-active-p. (gnus-article-followup-with-original): Do. 2003-01-13 Reiner Steib @@ -5596,8 +5587,8 @@ * deuglify.el (gnus-article-outlook-unwrap-lines) (gnus-article-outlook-repair-attribution) (gnus-article-outlook-rearrange-citation): New function names, - renamed from "gnus-outlook-" to "gnus-article-outlook-". Changed - doc-string. + renamed from "gnus-outlook-" to "gnus-article-outlook-". + Changed doc-string. * gnus-sum.el (gnus-summary-mode-map): Use new function names, removed `W k' key binding (use `W Y f' instead). @@ -5632,7 +5623,7 @@ 2003-01-12 Lars Magne Ingebrigtsen - * mail-source.el (mail-sources): Removed autoload to make it + * mail-source.el (mail-sources): Remove autoload to make it compile under XEmacs. 2003-01-12 Raymond Scholz @@ -5660,8 +5651,8 @@ 2003-01-12 Simon Josefsson - * sieve.el (sieve-upload-and-bury): New. Suggested by - kai.grossjohann@uni-duisburg.de (Kai Großjohann). + * sieve.el (sieve-upload-and-bury): New. + Suggested by kai.grossjohann@uni-duisburg.de (Kai Großjohann). * sieve-mode.el (sieve-mode-map): Bind s-u-a-b to C-c C-c. Suggested by kai.grossjohann@uni-duisburg.de (Kai Großjohann). @@ -5706,8 +5697,8 @@ 2003-01-10 Reiner Steib - * deuglify.el (gnus-outlook-deuglify-attrib-verb-regexp): Added - castellano. + * deuglify.el (gnus-outlook-deuglify-attrib-verb-regexp): + Add castellano. (gnus-outlook-display-hook): New variable. (gnus-outlook-display-article-buffer): New function. (gnus-outlook-unwrap-lines, gnus-outlook-repair-attribution) @@ -5716,8 +5707,8 @@ (gnus-article-outlook-deuglify-article): Use `g-o-d-a-b'. * gnus-sum.el: Added autoloads. - (gnus-summary-mode-map): Added gnus-summary-wash-deuglify-map. - (gnus-summary-make-menu-bar): Added "(Outlook) Deuglify" menu. + (gnus-summary-mode-map): Add gnus-summary-wash-deuglify-map. + (gnus-summary-make-menu-bar): Add "(Outlook) Deuglify" menu. 2003-01-11 Lars Magne Ingebrigtsen @@ -5765,7 +5756,7 @@ * gnus-fun.el (gnus-face-from-file): New function. (gnus-convert-face-to-png): Ditto. - * gnus-art.el (gnus-ignored-headers): Added Face. + * gnus-art.el (gnus-ignored-headers): Add Face. 2003-01-10 Simon Josefsson @@ -5787,13 +5778,13 @@ * spam-stat.el (spam-stat): Typo fix. (spam-stat-install-hooks): New variable. - (spam-stat-split-fancy-spam-group): Added documentation clarification. + (spam-stat-split-fancy-spam-group): Add documentation clarification. (spam-stat-split-fancy-spam-threshhold): New variable. (spam-stat-install-hooks): Make hooks conditional. (spam-stat-split-fancy): Use spam-stat-split-fancy-spam-threshhold. - * gnus.el (gnus-group-ham-exit-processor-stat, spam-process): Add - spam-stat ham/spam processor symbols. + * gnus.el (gnus-group-ham-exit-processor-stat, spam-process): + Add spam-stat ham/spam processor symbols. 2003-01-10 Lars Magne Ingebrigtsen @@ -5811,7 +5802,7 @@ 2003-01-09 Teodor Zlatanov - * spam.el (spam-check-ifile): Fixed call-process-region to use the + * spam.el (spam-check-ifile): Fix call-process-region to use the db parameter only if it's set. (spam-ifile-register-with-ifile): Ditto. @@ -5857,17 +5848,17 @@ * spam.el: Fixed the BBDB autoloads again, using bbdb-search-simple now (which is not a macro, thank god). - * gnus.el (ham-process-destination): Added new parameter for + * gnus.el (ham-process-destination): Add new parameter for destination of ham articles found in spam groups at summary exit. * spam.el (spam-get-ifile-database-parameter): use spam-ifile-database-path. (spam-check-ifile, spam-ifile-register-with-ifile): use spam-get-ifile-database-parameter. - (spam-ifile-database-path): Added new parameter for ifile's database. + (spam-ifile-database-path): Add new parameter for ifile's database. (spam-move-spam-nonspam-groups-only): New parameter to determine if spam should be moved from all groups or only some. - (spam-summary-prepare-exit): Fixed logic to use + (spam-summary-prepare-exit): Fix logic to use spam-move-spam-nonspam-groups-only when deciding to invoke spam-mark-spam-as-expired-and-move-routine; always invoke that routine after the spam has been expired-or-moved in case there's @@ -5879,8 +5870,8 @@ * gnus-spec.el (gnus-parse-complex-format): %~ => ~*. - * gnus-agent.el (gnus-agent-fetch-selected-article): Use - gnus-summary-update-article-line. + * gnus-agent.el (gnus-agent-fetch-selected-article): + Use gnus-summary-update-article-line. 2003-01-08 Simon Josefsson @@ -5889,7 +5880,7 @@ 2003-01-07 Teodor Zlatanov - * spam.el (spam-check-ifile): Fixed the spam-ifile-all-categories + * spam.el (spam-check-ifile): Fix the spam-ifile-all-categories logic, finally. 2003-01-08 Lars Magne Ingebrigtsen @@ -5914,21 +5905,21 @@ * message.el (message-make-mail-followup-to, message-generate-unsubscribed-mail-followup-to): New function names. Renamed functions: "-mft" -> "-mail-followup-to". - (message-make-mft, message-gen-unsubscribed-mft): Removed function + (message-make-mft, message-gen-unsubscribed-mft): Remove function names. * mml.el (mml-preview-insert-mail-followup-to): New function name. - (mml-preview-insert-mft): Removed function name. + (mml-preview-insert-mft): Remove function name. (mml-preview): Use new function names. * gnus-art.el (gnus-article-edit-mode-map): Use new function names. - * message.el (message-mode-field-menu): Moved header related + * message.el (message-mode-field-menu): Move header related commands from "Message" to "Field" menu. 2003-01-07 Reiner Steib - * message.el (message-generate-headers-first): Added customization + * message.el (message-generate-headers-first): Add customization if variable is a list. 2003-01-07 Michael Shields @@ -5940,8 +5931,8 @@ * gnus-msg.el (gnus-debug): Use ignore-errors. - * gnus-agent.el (gnus-agent-fetch-selected-article): Use - `gnus-summary-update-line'. + * gnus-agent.el (gnus-agent-fetch-selected-article): + Use `gnus-summary-update-line'. 2003-01-08 Simon Josefsson @@ -5969,8 +5960,8 @@ 2003-01-07 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-summary-make-menu-bar): Added - gnus-summary-refer-thread to thread menu. + * gnus-sum.el (gnus-summary-make-menu-bar): + Add gnus-summary-refer-thread to thread menu. 2003-01-07 Kevin Greiner @@ -5986,16 +5977,16 @@ * spam.el (spam-check-ifile, spam-ifile-register-with-ifile) (spam-ifile-register-spam-routine) - (spam-ifile-register-ham-routine): Added ifile functionality that + (spam-ifile-register-ham-routine): Add ifile functionality that does not use ifile-gnus.el to classify and register articles. (spam-get-article-as-string): Convenience function. - (spam-summary-prepare-exit): Added ifile spam and ham registration. + (spam-summary-prepare-exit): Add ifile spam and ham registration. (spam-ifile-all-categories, spam-ifile-spam-category) - (spam-ifile-path, spam-ifile): Added customization options. + (spam-ifile-path, spam-ifile): Add customization options. - * gnus.el (gnus-group-ham-exit-processor-ifile): Added ifile ham + * gnus.el (gnus-group-ham-exit-processor-ifile): Add ifile ham exit processor. - (spam-process): Added gnus-group-ham-exit-processor-ifile to the + (spam-process): Add gnus-group-ham-exit-processor-ifile to the list of choices. 2003-01-07 Lars Magne Ingebrigtsen @@ -6005,7 +5996,7 @@ 2003-01-06 Lars Magne Ingebrigtsen - * nnweb.el (nnweb-asynchronous-p): Changed to nil. + * nnweb.el (nnweb-asynchronous-p): Change to nil. 2003-01-07 Simon Josefsson @@ -6033,14 +6024,14 @@ 2003-01-06 Kevin Greiner - * gnus-agent.el (gnus-agent-fetch-group): Modified to permit execution + * gnus-agent.el (gnus-agent-fetch-group): Modify to permit execution in either the group or summary buffer. New command "JS", in summary buffer, will fetch articles per the group's category, predicate, and processable flags. (gnus-agent-summary-fetch-series): Rewritten to call gnus-agent-session-fetch-group once with all articles in the series. - (gnus-agent-summary-fetch-group): Fixed bug and modified code to + (gnus-agent-summary-fetch-group): Fix bug and modified code to return list of fetched articles. (gnus-agent-fetch-articles): Split fetch list into sublists such that the article buffer is only slightly larger than @@ -6055,9 +6046,9 @@ When called in the group buffer, articles that can not be fetched are AUTOMATICALLY MARKED AS READ. - * gnus-sum.el (): Modified eval-when-compile to minimize + * gnus-sum.el (): Modify eval-when-compile to minimize misleading compilation warnings. - (gnus-update-summary-mark-positions): Changed code to use + (gnus-update-summary-mark-positions): Change code to use gnus-undownloaded-mark rather than gnus-downloaded-mark. * nnheader.el (nnheader-insert-nov-file): Do not try to insert an @@ -6071,18 +6062,18 @@ determine the appropriate course of action. Instead, two function implementations are provided and the nntp-report function value is bound to the appropriate implementation. - (nntp-retrieve-data): Moved nntp-report call to end of implementation. + (nntp-retrieve-data): Move nntp-report call to end of implementation. (nntp-with-open-group): Now binds nntp-report's function cell rather than binding gnus-with-open-group-first-pass. Added a condition-case to detect a quit during a nntp command. When the quit occurs, the current connection is closed as a fetch articles request could have several megabytes queued up for reading. - (nntp-retrieve-headers): Bind articles to itself. If - nntp-with-open-group repeats this command, I must have access to + (nntp-retrieve-headers): Bind articles to itself. + If nntp-with-open-group repeats this command, I must have access to the original list of articles. (nntp-retrieve-groups): Ditto for groups. (nntp-retrieve-articles): Ditto for articles. - (*): Replaced nntp-possibly-change-group calls to + (*): Replace nntp-possibly-change-group calls to nntp-with-open-group forms in all, but one, occurrence. (nntp-accept-process-output): Bug fix. Detect when called with null process. @@ -6106,8 +6097,8 @@ * mm-url.el (mm-url-program): Doc fix. - * message.el (message-mode-map): Rebound - message-insert-wide-reply. + * message.el (message-mode-map): + Rebound message-insert-wide-reply. 2003-01-05 Katsumi Yamaoka @@ -6118,9 +6109,9 @@ * spam.el: Fixed line lengths to 80 chars or less. - * gnus-sum.el (gnus-read-mark-p): Added the spam-mark as a + * gnus-sum.el (gnus-read-mark-p): Add the spam-mark as a "not-read" mark. - (gnus-summary-mark-forward): Added the spam-mark to the list of + (gnus-summary-mark-forward): Add the spam-mark to the list of marks not to be marked as "read" when viewed. 2003-01-05 Lars Magne Ingebrigtsen @@ -6170,8 +6161,8 @@ 2003-01-04 Kevin Ryde - * gnus-art.el (gnus-mime-jka-compr-maybe-uncompress): New - function. + * gnus-art.el (gnus-mime-jka-compr-maybe-uncompress): + New function. 2003-01-04 Lars Magne Ingebrigtsen @@ -6215,7 +6206,7 @@ (spam-generic-register-routine, spam-BBDB-register-routine) (spam-ifile-register-routine, spam-blacklist-register-routine) (spam-whitelist-register-routine): New functions. - (spam-summary-prepare-exit): Added summary exit processing (expire + (spam-summary-prepare-exit): Add summary exit processing (expire or move) of spam-marked articles for spam groups; added slots for all the spam-*-register-routine functions. @@ -6254,8 +6245,8 @@ 2003-01-02 Jesper Harder - * gnus-group.el (gnus-group-fetch-charter): Use - http://TLH.news-admin.org/charters/GROUPNAME as a fallback. + * gnus-group.el (gnus-group-fetch-charter): + Use http://TLH.news-admin.org/charters/GROUPNAME as a fallback. 2003-01-02 Lars Magne Ingebrigtsen @@ -6316,13 +6307,13 @@ * gnus.el (nnheader): Require nnheader. - * nndraft.el (nndraft-request-associate-buffer): Use - make-local-variable. + * nndraft.el (nndraft-request-associate-buffer): + Use make-local-variable. 2003-01-02 Michael Shields - * nndraft.el (nndraft-request-associate-buffer): Make - write-contents-hooks buffer-local before setting it. + * nndraft.el (nndraft-request-associate-buffer): + Make write-contents-hooks buffer-local before setting it. 2003-01-02 Lars Magne Ingebrigtsen @@ -6344,11 +6335,11 @@ 2003-01-01 Teodor Zlatanov - * spam.el (spam-summary-prepare-exit): Added slots for spam- and + * spam.el (spam-summary-prepare-exit): Add slots for spam- and ham-processing of articles; use the new spam-group-(spam|ham)-contents-p functions. - (spam-group-spam-contents-p, spam-group-ham-contents-p): New - convenience functions. + (spam-group-spam-contents-p, spam-group-ham-contents-p): + New convenience functions. (spam-mark-junk-as-spam-routine): Use the new spam-group-spam-contents-p function. @@ -6360,13 +6351,13 @@ (gnus-group-spam-exit-processor-whitelist) (gnus-group-spam-exit-processor-BBDB) (gnus-group-spam-classification-spam) - (gnus-group-spam-classification-ham): Added new symbols for the + (gnus-group-spam-classification-ham): Add new symbols for the spam-process and spam-contents parameters. - * spam.el (spam-ham-marks, spam-spam-marks): Changed list + * spam.el (spam-ham-marks, spam-spam-marks): Change list customization and list itself to store mark symbol rather than mark character. - (spam-bogofilter-register-routine): Added logic to generate mark + (spam-bogofilter-register-routine): Add logic to generate mark values list from spam-ham-marks and spam-spam-marks, so (member) would work. @@ -6376,10 +6367,10 @@ 2003-01-01 Teodor Zlatanov - * spam.el (spam-ham-marks, spam-spam-marks): Changed list + * spam.el (spam-ham-marks, spam-spam-marks): Change list customization and list itself to store mark symbol rather than mark character. - (spam-bogofilter-register-routine): Added logic to generate mark + (spam-bogofilter-register-routine): Add logic to generate mark values list from spam-ham-marks and spam-spam-marks, so (member) would work. @@ -6396,16 +6387,16 @@ message-cross-post-note-function): New variables names. (message-xpost-old-target, message-xpost-default, message-xpost-note, message-fup2-note, - message-xpost-note-function): Removed variable names. + message-xpost-note-function): Remove variable names. (message-cross-post-followup-to-header, message-cross-post-insert-note, message-cross-post-followup-to): New function names. (message-xpost-fup2-header, message-xpost-insert-note, - message-xpost-fup2): Removed function names. + message-xpost-fup2): Remove function names. 2002-12-30 Reiner Steib - * message.el (message-send-mail): Added message-cleanup-headers to + * message.el (message-send-mail): Add message-cleanup-headers to prevent newlines in headers. 2003-01-01 Lars Magne Ingebrigtsen @@ -6417,8 +6408,8 @@ 2003-01-01 Wes Hardaker - * gnus-sum.el (gnus-summary-display-while-building): New - variable. + * gnus-sum.el (gnus-summary-display-while-building): + New variable. 2003-01-01 Raymond Scholz @@ -6435,8 +6426,8 @@ lambda form. (message-draft-headers): New variable. - * gnus-msg.el (gnus-inews-make-draft-meta-information): New - function. + * gnus-msg.el (gnus-inews-make-draft-meta-information): + New function. (gnus-setup-message): Use it. * message.el (message-generate-headers-first): Doc fix. @@ -6455,8 +6446,8 @@ 2002-12-31 Raymond Scholz - * deuglify.el (gnus-outlook-rearrange-article): Use - `transpose-regions' instead of tempering the kill-ring. + * deuglify.el (gnus-outlook-rearrange-article): + Use `transpose-regions' instead of tempering the kill-ring. (gnus-article-outlook-deuglify-article): Rehighlight article instead of a complete redisplay. @@ -6515,7 +6506,7 @@ 2002-12-30 Reiner Steib - * message.el (message-completion-alist): Added "Mail-Followup-To" + * message.el (message-completion-alist): Add "Mail-Followup-To" and "Mail-Copies-To". 2002-07-21 Jesper Harder @@ -6528,10 +6519,10 @@ * spam.el (spam-use-dig): New variable for blackhole checking through dig.el. - (spam-check-blackholes): Added dig.el checking functionality and + (spam-check-blackholes): Add dig.el checking functionality and more verbose reporting; query-dig is autoloaded from dig.el. (spam-use-blackholes): Disabled by default. - (spam-blackhole-servers): Removed rbl.maps.vix.com from the + (spam-blackhole-servers): Remove rbl.maps.vix.com from the blackhole servers list. 2002-12-30 Lars Magne Ingebrigtsen @@ -6555,7 +6546,7 @@ 2002-08-10 Jari Aalto - * nnmail.el (nnmail-split-it): Added tracing to + * nnmail.el (nnmail-split-it): Add tracing to `:' split rule. 2002-08-13 Hrvoje Niksic @@ -6581,7 +6572,7 @@ * gnus-topic.el (gnus-topic-display-missing-topic): New function. (gnus-topic-goto-missing-group): Use it. - * message.el (message-required-news-headers): Removed Lines. + * message.el (message-required-news-headers): Remove Lines. (message-reply): Don't insert References first. (message-followup): Ditto. (message-make-references): New function. @@ -6702,7 +6693,7 @@ 2002-12-12 Kevin Greiner - * gnus-agent.el (gnus-agent-fetch-selected-article): Added call to + * gnus-agent.el (gnus-agent-fetch-selected-article): Add call to gnus-summary-update-download-mark to update the article in the summary. @@ -6712,14 +6703,14 @@ gnus-summary-normal-uncached-face, gnus-summary-low-uncached-face) New faces. - * gnus-agent.el (gnus-agent-downloaded-article-face): REMOVED. I - added this on 2002-11-23 but it just wasn't working out as + * gnus-agent.el (gnus-agent-downloaded-article-face): REMOVED. + I added this on 2002-11-23 but it just wasn't working out as intended. The idea isn't entirely dead, three new faces gnus-summary-*-uncached-face are being added to gnus.el to provide the basis for an improved implementation. - (gnus-agent-read-servers): Undo the change made on 2002-11-23. The - proper file to open is lib/servers. - (gnus-summary-set-agent-mark): Expanded documentation. Unmarking + (gnus-agent-read-servers): Undo the change made on 2002-11-23. + The proper file to open is lib/servers. + (gnus-summary-set-agent-mark): Expand documentation. Unmarking (i.e. removing the article from gnus-newsgroup-downloadable) will now restore the article's default mark rather than simply setting no mark. @@ -6730,8 +6721,8 @@ (gnus-agent-summary-fetch-group): Keep gnus-newsgroup-undownloaded up to date. Call new gnus-summary-update-download-mark to keep summary buffer up-to-date. - (gnus-agent-fetch-selected-article): Keep - gnus-newsgroup-undownloaded up to date. + (gnus-agent-fetch-selected-article): + Keep gnus-newsgroup-undownloaded up to date. (gnus-agent-fetch-articles): Return list of articles that were successfully fetched. (gnus-agent-check-overview-buffer): No more thingatpt. @@ -6749,14 +6740,14 @@ downloaded/undownloaded mark is no longer stored as the article's mark. - * gnus-salt.el (gnus-tree-highlight-node): Added uncached as + * gnus-salt.el (gnus-tree-highlight-node): Add uncached as gnus-summary-highlight may use it. Added downloaded as gnus-summary-highlight was using it. - * gnus-sum.el (gnus-undownloaded-mark): Changed from ?@ to ?- as + * gnus-sum.el (gnus-undownloaded-mark): Change from ?@ to ?- as the download mark now follows Kai's +/- convention. - (gnus-downloaded-mark): Added ?+ mark. - (gnus-summary-highlight): Added rules to select + (gnus-downloaded-mark): Add ?+ mark. + (gnus-summary-highlight): Add rules to select gnus-summary-high-uncached-face, gnus-summary-normal-uncached-face, and gnus-summary-low-uncached-face. Removed the @@ -6770,7 +6761,7 @@ you don't have to agentize every server that you use. (gnus-update-summary-mark-positions): Completed support for the download type of mark. - (gnus-summary-insert-line): Added undownloaded to the parameters. + (gnus-summary-insert-line): Add undownloaded to the parameters. (gnus-summary-prepare-threads): Set gnus-tmp-downloaded for reference by the gnus-summary-line-format-spec. @@ -6816,8 +6807,8 @@ 2002-12-09 Kai Großjohann - * nntp.el (nntp-send-command): Braino in last commit. Replace - `and' with `or'. + * nntp.el (nntp-send-command): Braino in last commit. + Replace `and' with `or'. 2002-12-08 Kai Großjohann @@ -6850,7 +6841,7 @@ 2002-11-29 Kai Großjohann - * gnus-art.el (gnus-inhibit-mime-unbuttonizing): Moved here from + * gnus-art.el (gnus-inhibit-mime-unbuttonizing): Move here from gnus-sum. Made into a user option. * gnus-sum.el (gnus-simplify-ignored-prefixes) @@ -6911,7 +6902,7 @@ (gnus-summary-mark-article-as-unread) (gnus-mark-article-as-unread, gnus-summary-highlight-line): Reformatting to avoid long lines. - (gnus-inhibit-mime-unbuttonizing): Moved to gnus-art. + (gnus-inhibit-mime-unbuttonizing): Move to gnus-art. 2002-11-28 Daiki Ueno @@ -6933,15 +6924,15 @@ 2002-11-26 ShengHuo ZHU - * gnus-agent.el (gnus-agent-uncached-articles): If - gnus-agent-load-alist fails, return ARTICLES. + * gnus-agent.el (gnus-agent-uncached-articles): + If gnus-agent-load-alist fails, return ARTICLES. * nnrss.el (nnrss-group-alist): Update the link of Jabber. 2002-11-26 Kai Großjohann - * gnus-sum.el (gnus-summary-insert-old-articles): Remove - superfluous function call. + * gnus-sum.el (gnus-summary-insert-old-articles): + Remove superfluous function call. (gnus-summary-catchup-all, gnus-summary-catchup-all-and-exit): Add warning to docstring. @@ -6952,8 +6943,8 @@ 2002-11-26 Kai Großjohann - * gnus-agent.el (gnus-agent-check-overview-buffer): Explicitly - require thingatpt (for number-at-point) and protect against + * gnus-agent.el (gnus-agent-check-overview-buffer): + Explicitly require thingatpt (for number-at-point) and protect against deactivate-mark being unbound (on XEmacs). 2002-11-25 Kai Großjohann @@ -6968,8 +6959,8 @@ 2002-11-24 Kai Großjohann - * gnus-sum.el (gnus-summary-insert-old-articles): Use - gnus-remove-from-range instead of gnus-range-difference which + * gnus-sum.el (gnus-summary-insert-old-articles): + Use gnus-remove-from-range instead of gnus-range-difference which doesn't exist. 2002-11-23 Kevin Greiner @@ -6979,11 +6970,11 @@ (gnus-agent-article-alist): Format change. Add documentation. (gnus-agent-summary-mode-map): New keybinding `J s' for fetching process-marked articles. - (gnus-agent-summary-fetch-series): Command for `J s'. Articles - in the series are individually fetched to minimize lose of + (gnus-agent-summary-fetch-series): Command for `J s'. + Articles in the series are individually fetched to minimize lose of content due to an error/quit. - (gnus-agent-synchronize-flags-server, gnus-agent-add-server): Use - gnus-message instead of message. + (gnus-agent-synchronize-flags-server, gnus-agent-add-server): + Use gnus-message instead of message. (gnus-agent-read-servers): Use file lib/methods instead of lib/servers. TODO: Why? (gnus-summary-set-agent-mark): Adapt to new agent-alist format. @@ -6992,7 +6983,7 @@ (gnus-agent-fetch-selected-article): Don't use history. (gnus-agent-save-history, gnus-agent-enter-history) (gnus-agent-article-in-history-p, gnus-agent-history-path): - Removed function; history is not used anymore. + Remove function; history is not used anymore. (gnus-agent-fetch-articles): Fix handling of crossposted articles. (gnus-agent-crosspost): Started rewrite then realized that a typo in gnus-agent-fetch-articles ensures that this function is never @@ -7022,8 +7013,8 @@ (gnus-agent-regenerate-group): No longer needs to be called from gnus-agent-regenerate. Individual groups may be regenerated. The regeneration code now fixes duplicate, and mis-ordered, NOV entries. - The article fetch dates are validated in the article alist. The - article alist is pruned of entries that do not reference existing + The article fetch dates are validated in the article alist. + The article alist is pruned of entries that do not reference existing NOV entries. All changes are computed then applied with inhibit-quit bound to t. As a result, it is now safe to quit out of regeneration. The optional clean parameter has been replaced with @@ -7031,11 +7022,11 @@ regeneration gets the appropriate setting from gnus-agent-consider-all-articles. The new reread parameter will result in fetched, or all, articles being marked as unread. - (gnus-agent-regenerate): Removed code to regenerate the history + (gnus-agent-regenerate): Remove code to regenerate the history file as it is no longer used. - * gnus-start.el (gnus-make-ascending-articles-unread): New - function, for efficient mass-marking. + * gnus-start.el (gnus-make-ascending-articles-unread): + New function, for efficient mass-marking. * gnus-sum.el (gnus-summary-highlight): Use new face for downloaded articles. @@ -7045,7 +7036,7 @@ line. (gnus-summary-highlight-line): Use new face for downloaded articles. - (gnus-summary-insert-old-articles): Improved performance by + (gnus-summary-insert-old-articles): Improve performance by replacing the initial LIST of older articles with a compressed RANGE of older articles. Some servers appear to lie about their active range so the original list could contain millions @@ -7069,8 +7060,8 @@ 2002-11-19 Simon Josefsson - * gnus-sum.el (gnus-summary-morse-message): Load - morse.el (unmorse-region not autoloaded in Emacs 20 nor XEmacs). + * gnus-sum.el (gnus-summary-morse-message): + Load morse.el (unmorse-region not autoloaded in Emacs 20 nor XEmacs). (unmorse-region): Autoload it instead. 2002-11-18 Simon Josefsson @@ -7097,13 +7088,13 @@ 2002-11-17 ShengHuo ZHU - * message.el (message-set-auto-save-file-name): Use - make-directory, to avoid the dependence on gnus-util. + * message.el (message-set-auto-save-file-name): + Use make-directory, to avoid the dependence on gnus-util. 2002-11-16 Simon Josefsson * nnimap.el (nnimap-callback-callback-function): - (nnimap-callback-buffer): Removed, these cannot be global but must + (nnimap-callback-buffer): Remove, these cannot be global but must be embedded into the callback. (nnimap-make-callback): New. Embedd article number, callback and buffer in function. @@ -7119,8 +7110,8 @@ 2002-11-11 Simon Josefsson - * pgg.el (pgg-encrypt, pgg-decrypt, pgg-sign, pgg-verify): Display - output when called interactively. + * pgg.el (pgg-encrypt, pgg-decrypt, pgg-sign, pgg-verify): + Display output when called interactively. 2002-11-08 Katsumi Yamaoka @@ -7201,15 +7192,15 @@ works better. (gnus-agent-fetch-headers): New implementation from Kevin Greiner. Uses gnus-agent-article-alist to store information - about fetched messages which aren't on the server anymore. The - trick is to return a list of considered messages to the caller, + about fetched messages which aren't on the server anymore. + The trick is to return a list of considered messages to the caller, but to only fetch those which haven't been fetched yet. 2002-10-30 Simon Josefsson * pgg-def.el (pgg-passphrase-cache-expiry): New, defcustom. - * pgg.el (pgg-passphrase-cache-expiry): Removed. + * pgg.el (pgg-passphrase-cache-expiry): Remove. 2002-10-30 TSUCHIYA Masatoshi @@ -7217,14 +7208,14 @@ versions of emacs-w3m than 1.3.3. * mm-view.el (mm-w3m-mode-command-alist) - (mm-w3m-mode-dont-bind-keys, mm-w3m-mode-ignored-keys): Removed. + (mm-w3m-mode-dont-bind-keys, mm-w3m-mode-ignored-keys): Remove. (mm-w3m-mode-map): Undefined for Emacs21 and XEmacs. - (mm-setup-w3m): Simplified. + (mm-setup-w3m): Simplify. (mm-w3m-local-map-property): New function. (mm-inline-text-html-render-with-w3m): Use it. - * gnus-art.el (gnus-article-wash-html-with-w3m): Use - mm-w3m-local-map-property. + * gnus-art.el (gnus-article-wash-html-with-w3m): + Use mm-w3m-local-map-property. 2002-10-29 Katsumi Yamaoka @@ -7240,7 +7231,7 @@ 2002-10-28 Josh Huber - * mml.el (mml-mode-map): Fixed keybindings for mml-secure-* + * mml.el (mml-mode-map): Fix keybindings for mml-secure-* functions. 2002-10-28 Mark A. Hershberger @@ -7256,8 +7247,8 @@ 2002-10-25 Kai Großjohann - * gnus-agent.el (gnus-agent-save-fetched-headers): Create - directory if it doesn't exist. + * gnus-agent.el (gnus-agent-save-fetched-headers): + Create directory if it doesn't exist. (gnus-agent-fetch-headers): Remove old cruft that tried to abstain from downloading articles more than once if gnus-agent-consider-all-articles was true. This is now done @@ -7289,8 +7280,8 @@ * gnus-agent.el (gnus-agent-fetched-headers): New variable, contains range of headers that have been fetched by the agent already. Compare gnus-agent-article-alist. - (gnus-agent-file-header-cache): Like - gnus-agent-file-loading-cache, but for gnus-agent-fetched-headers. + (gnus-agent-file-header-cache): + Like gnus-agent-file-loading-cache, but for gnus-agent-fetched-headers. (gnus-agent-fetch-headers): Improve comment. Revert to old seen/recent logic. Remember which headers have been fetched before and don't fetch @@ -7351,7 +7342,7 @@ * gnus-group.el (gnus-fetch-group): Allow an optional specification of the articles to select. - * gnus-srvr.el (gnus-server-prepare): Removed superfluous cdr. + * gnus-srvr.el (gnus-server-prepare): Remove superfluous cdr. 2002-10-20 Kai Großjohann @@ -7363,8 +7354,8 @@ 2002-10-20 Steve Youngs - * pgg-parse.el (pgg-parse-public-key-algorithm-alist): XEmacs - doesn't have the 'alist custom type, use cons cells instead. + * pgg-parse.el (pgg-parse-public-key-algorithm-alist): + XEmacs doesn't have the 'alist custom type, use cons cells instead. (pgg-parse-symmetric-key-algorithm-alist): Ditto. (pgg-parse-hash-algorithm-alist): Ditto. (pgg-parse-compression-algorithm-alist): Ditto. @@ -7441,8 +7432,8 @@ (nnheader-remove-cr-followed-by-lf): New function. (nnheader-ms-strip-cr): Use the above function. - * gnus-agent.el (gnus-agent-regenerate-group): Call - `nnheader-remove-body'; use `nnheader-parse-naked-head' instead of + * gnus-agent.el (gnus-agent-regenerate-group): + Call `nnheader-remove-body'; use `nnheader-parse-naked-head' instead of `nnheader-parse-head'. * gnus-cache.el (gnus-cache-possibly-enter-article): Ditto. @@ -7463,8 +7454,8 @@ 2002-10-16 Katsumi Yamaoka * spam-stat.el: Check for the existence of hash functions instead - of the Emacs version to decide whether to load cl. Suggested by - Kai Großjohann. + of the Emacs version to decide whether to load cl. + Suggested by Kai Großjohann. 2002-10-15 Kai Großjohann @@ -7487,7 +7478,7 @@ 2002-10-11 Teodor Zlatanov - * spam.el (spam-check-ifile): Added ifile as a spam checking + * spam.el (spam-check-ifile): Add ifile as a spam checking backend, and spam-use-ifle as the variable to toggle that check. 2002-10-12 Simon Josefsson @@ -7526,7 +7517,7 @@ * mml2015.el (mml2015-pgg-decrypt): Set gnus details even when decrypt failed. - (mml2015-trust-boundaries-alist): Removed. + (mml2015-trust-boundaries-alist): Remove. (mml2015-gpg-extract-signature-details): Don't use it. (mml2015-unabbrev-trust-alist): New. (mml2015-gpg-extract-signature-details): Use it. @@ -7547,8 +7538,8 @@ * pgg-gpg.el (pgg-gpg-verify-region): Filter out stuff into output buffer and error buffer depending on type of information. - * mml2015.el (mml2015-gpg-extract-signature-details): Parse - --status-fd stuff even if gpg.el is not used (revert earlier + * mml2015.el (mml2015-gpg-extract-signature-details): + Parse --status-fd stuff even if gpg.el is not used (revert earlier change). (mml2015-pgg-{clear-,}verify): Store both output and errors as gnus details. @@ -7594,8 +7585,8 @@ 2002-10-08 Kai Großjohann - * gnus-agent.el (gnus-agent-fetch-selected-article): Bind - gnus-agent-current-history. + * gnus-agent.el (gnus-agent-fetch-selected-article): + Bind gnus-agent-current-history. 2002-10-06 Simon Josefsson @@ -7623,8 +7614,8 @@ * pgg-gpg.el (pgg-gpg-encrypt-region): Make signencrypt work. - * pgg-pgp.el (pgg-pgp-verify-region): Inline - binary-write-decoded-region from MEL. + * pgg-pgp.el (pgg-pgp-verify-region): + Inline binary-write-decoded-region from MEL. * pgg.el (pgg-encrypt-region): Support sign. @@ -7679,13 +7670,13 @@ (pgg-string-as-unibyte): Defalias. (pgg-parse-armor-region): Use it. - * pgg-gpg.el (pgg-gpg-process-region): Use - pgg-temporary-file-directory. + * pgg-gpg.el (pgg-gpg-process-region): + Use pgg-temporary-file-directory. * luna.el: Don't def-edebug. - * pgg-pgp5.el (pgg-scheme-verify-region): Inline - binary-write-decoded-region from MEL. + * pgg-pgp5.el (pgg-scheme-verify-region): + Inline binary-write-decoded-region from MEL. * pgg-pgp5.el, pgg-gpg.el: Don't require mel. @@ -7790,8 +7781,8 @@ * gnus-art.el (gnus-article-mode-syntax-table): Make M-. work in article buffers. - * nnimap.el (nnimap-fixup-unread-after-getting-new-news): Autoload - it just in case. + * nnimap.el (nnimap-fixup-unread-after-getting-new-news): + Autoload it just in case. (nnimap-update-unseen): New function; update unseen count in `n-m-info'. (nnimap-close-group): Call it. @@ -7924,8 +7915,8 @@ * gnus-art.el (gnus-button-handle-apropos-variable): Fall back to apropos if apropos-variable does not exist. (gnus-button-guessed-mid-regexp) - (gnus-button-handle-describe-prefix, gnus-button-alist): Better - regexes. + (gnus-button-handle-describe-prefix, gnus-button-alist): + Better regexes. (gnus-button-handle-describe-function) (gnus-button-handle-describe-variable): Doc fix. (gnus-button-handle-describe-key, gnus-button-handle-apropos) @@ -7960,8 +7951,8 @@ 2002-09-23 Reiner Steib - * gnus-art.el (gnus-button-guessed-mid-regexp): Improved regexp. - (gnus-button-alist): Improved regexp for + * gnus-art.el (gnus-button-guessed-mid-regexp): Improve regexp. + (gnus-button-alist): Improve regexp for gnus-button-handle-mid-or-mail (false positives), fixed gnus-button-handle-man entries. @@ -7972,8 +7963,8 @@ 2002-09-23 Paul Jarc - * nnmaildir.el: Store article numbers persistently. General - revision. + * nnmaildir.el: Store article numbers persistently. + General revision. (nnmaildir-request-expire-articles): Handle 'immediate and 'never for nnmail-expiry-wait; delete instead of moving if 'force is given. @@ -8015,8 +8006,8 @@ * gnus-msg.el (gnus-configure-posting-styles): Sort results. - * gnus-art.el (gnus-article-reply-with-original): Correct - with-current-buffer scope. + * gnus-art.el (gnus-article-reply-with-original): + Correct with-current-buffer scope. * message.el (message-completion-alist): Add Reply-To, From, etc. @@ -8043,7 +8034,7 @@ describtion and menu. (message-change-subject, message-xpost-fup2): Signal error if current header is empty. - (message-xpost-insert-note): Changed insert position. + (message-xpost-insert-note): Change insert position. (message-archive-note): Ensure to insert note in message body (not in head). (message-archive-header, message-archive-note) @@ -8056,7 +8047,7 @@ (message-subject-trailing-was-query) (message-subject-trailing-was-ask-regexp) (message-subject-trailing-was-regexp): New variables. - (message-to-list-only): Added doc-string and menu entry. + (message-to-list-only): Add doc-string and menu entry. * message-utils.el: Removed. Functions are now in message.el. @@ -8177,8 +8168,8 @@ 2002-09-03 Katsumi Yamaoka - * gnus-util.el (gnus-frame-or-window-display-name): Exclude - invalid display names. + * gnus-util.el (gnus-frame-or-window-display-name): + Exclude invalid display names. 2002-08-30 Reiner Steib @@ -8220,8 +8211,8 @@ 2002-08-27 Simon Josefsson - * gnus-msg.el (posting-charset-alist): Use - gnus-define-group-parameter instead of defcustom. + * gnus-msg.el (posting-charset-alist): + Use gnus-define-group-parameter instead of defcustom. (gnus-put-message): Handle SPC in GCC. (gnus-inews-insert-gcc): Ditto. (gnus-inews-insert-archive-gcc): Ditto. @@ -8326,12 +8317,12 @@ 2002-08-11 Reiner Steib * message-utils.el (message-xpost-default) - (message-xpost-fup2-header, message-xpost-fup2): Fixed Typos. + (message-xpost-fup2-header, message-xpost-fup2): Fix Typos. 2002-08-09 Simon Josefsson - * message.el (message-canlock-password): Set - canlock-password-for-verify to newly generated canlock-password. + * message.el (message-canlock-password): + Set canlock-password-for-verify to newly generated canlock-password. When Emacs is restarted, Custom makes sure this is set, but during the same session we must set it manually. @@ -8389,7 +8380,7 @@ * nnweb.el (nnweb-type, nnweb-type-definition) (nnweb-gmane-create-mapping, nnweb-gmane-wash-article) - (nnweb-gmane-search, nnweb-gmane-identity): Added gmane + (nnweb-gmane-search, nnweb-gmane-identity): Add gmane functionality. * nnweb.el: Removed old non-functioning search engines. @@ -8401,8 +8392,8 @@ * flow-fill.el (fill-flowed): Disable filladapt-mode. - * gnus-sieve.el (gnus-sieve-guess-rule-for-article): Don't - regexp-quote, Cyrus Sieve is fixed. + * gnus-sieve.el (gnus-sieve-guess-rule-for-article): + Don't regexp-quote, Cyrus Sieve is fixed. * sieve-manage.el (sieve-manage-deletescript): New function. @@ -8420,13 +8411,13 @@ * mm-decode.el (mm-inline-text-html-with-images): Doc fix. (mm-w3m-safe-url-regexp): New user option. - * mm-view.el (mm-inline-text-html-render-with-w3m): Use - `mm-w3m-safe-url-regexp' to bind `w3m-safe-url-regexp'. + * mm-view.el (mm-inline-text-html-render-with-w3m): + Use `mm-w3m-safe-url-regexp' to bind `w3m-safe-url-regexp'. 2002-07-23 Karl Kleinpaste - * gnus-sum.el (gnus-summary-delete-article): Force - nnmail-expiry-target to 'delete, so that absolute deletion + * gnus-sum.el (gnus-summary-delete-article): + Force nnmail-expiry-target to 'delete, so that absolute deletion happens when absolute deletion is requested. 2002-07-21 Nevin Kapur @@ -8487,8 +8478,8 @@ 2002-07-06 ShengHuo ZHU - * gnus-topic.el (gnus-topic-indent, gnus-topic-unindent): Change - cdaar to cdar and car. + * gnus-topic.el (gnus-topic-indent, gnus-topic-unindent): + Change cdaar to cdar and car. * nnsoup.el (nnsoup-retrieve-headers, nnsoup-request-type) (nnsoup-read-active-file, nnsoup-article-to-area): Ditto. @@ -8574,8 +8565,8 @@ 2002-06-17 Simon Josefsson - * gnus-start.el (gnus-clear-system, gnus-read-newsrc-file): Make - sure to write byte-compiled versions of gnus-*-format-alist to + * gnus-start.el (gnus-clear-system, gnus-read-newsrc-file): + Make sure to write byte-compiled versions of gnus-*-format-alist to .newsrc.eld. 2002-06-16 Bjørn Mork @@ -8594,7 +8585,7 @@ * nnheader.el (nnheader-file-name-translation-alist): Set the default value for MS Windows systems. - * gnus-ems.el (nnheader-file-name-translation-alist): Removed. + * gnus-ems.el (nnheader-file-name-translation-alist): Remove. 2002-06-14 Katsumi Yamaoka @@ -8660,8 +8651,8 @@ * gnus-msg.el (gnus-group-mail, gnus-group-news) (gnus-group-post-news, gnus-summary-mail-other-window) - (gnus-summary-news-other-window, gnus-summary-post-news): Bind - gnus-article-copy to nil, thereby inhibiting the `header' posting + (gnus-summary-news-other-window, gnus-summary-post-news): + Bind gnus-article-copy to nil, thereby inhibiting the `header' posting style match to use data from last viewed article. Suggested by Hrvoje Niksic. @@ -8753,8 +8744,8 @@ 2002-05-20 Jason Baker (tiny change) - * gnus-art.el (gnus-request-article-this-buffer): Try - reconnecting if you don't get the message. + * gnus-art.el (gnus-request-article-this-buffer): + Try reconnecting if you don't get the message. 2002-05-20 Lars Magne Ingebrigtsen @@ -8840,7 +8831,7 @@ 2002-05-06 Josh Huber - * mml2015.el (mml2015-gpg-encrypt): Changed name of optional + * mml2015.el (mml2015-gpg-encrypt): Change name of optional argument, and fixed compiler warning. (Added autoload for gpg-encrypt). @@ -8864,10 +8855,10 @@ * mml-sec.el (mml-signencrypt-style): New. * mml-sec.el (mml-pgpmime-encrypt-buffer): Accept optional argument `sign'. - * mml-sec.el (mml-secure-message-encrypt-pgp): Changed default to + * mml-sec.el (mml-secure-message-encrypt-pgp): Change default to signencrypt. * mml-sec.el (mml-secure-message-encrypt-pgpmime): Ditto. - * mml.el (mml-generate-mime-1): Changed logic so a part which is + * mml.el (mml-generate-mime-1): Change logic so a part which is both signed & encryped is processed in one operation (rather than two separate ops: sign, then encrypt). * mml2015.el (mml2015-gpg-extract-signature-details): Give some @@ -8903,8 +8894,8 @@ 2002-05-01 Simon Josefsson - * imap.el (imap-parse-resp-text-code, imap-parse-status): Treat - UIDNEXT as a string. + * imap.el (imap-parse-resp-text-code, imap-parse-status): + Treat UIDNEXT as a string. * nnimap.el (nnimap-string-lessp-numerical): New function. (nnimap-retrieve-groups): Compare UIDNEXT as strings instead of @@ -8927,8 +8918,8 @@ (nnimap-mailbox-info): New internal variable. (nnimap-retrieve-groups): Implement faster new mail check. - * nnimap.el (nnimap-split-articles): Support - nnmail-cache-accepted-message-ids. + * nnimap.el (nnimap-split-articles): + Support nnmail-cache-accepted-message-ids. (nnimap-request-accept-article): Ditto. * imap.el (imap-mailbox-status-asynch): New command. @@ -9013,8 +9004,8 @@ 2002-04-23 Matthieu Moy - * gnus-msg.el (gnus-summary-resend-message-edit): Remove - message-ignored-resent-headers, too. + * gnus-msg.el (gnus-summary-resend-message-edit): + Remove message-ignored-resent-headers, too. 2002-04-22 Björn Torkelsson @@ -9048,7 +9039,7 @@ (message-mode): Add description for `message-to-list-only'. (message-to-list-only): New. - (message-make-mft): Changed to use the cl loop macro, and added + (message-make-mft): Change to use the cl loop macro, and added optional flag to return only the matched list (for use in new message-to-list-only function). @@ -9082,11 +9073,11 @@ 2002-04-13 Josh Huber - * mml-sec.el (mml-secure-message): Changed to support arbritrary + * mml-sec.el (mml-secure-message): Change to support arbritrary modes. * mml-sec.el (mml-secure-message-encrypt-(smime|pgp|pgpmime)): changed to support "signencrypt" mode. - * mml.el (mml-parse-1): Changed to support different secure modes + * mml.el (mml-parse-1): Change to support different secure modes more easily (for signencrypt). 2002-04-11 Stefan Monnier @@ -9107,13 +9098,13 @@ 2002-04-12 Daiki Ueno - * gnus-srvr.el (gnus-server-set-info): Clear - `gnus-server-method-cache' when `gnus-server-alist' is changed. + * gnus-srvr.el (gnus-server-set-info): + Clear `gnus-server-method-cache' when `gnus-server-alist' is changed. 2002-04-11 Simon Josefsson - * gnus-sum.el (gnus-summary-force-verify-and-decrypt): Force - viewing of security buttons. Thanks to Nicolas Kowalski + * gnus-sum.el (gnus-summary-force-verify-and-decrypt): + Force viewing of security buttons. Thanks to Nicolas Kowalski . * smime.el (smime-CA-directory): Fix doc. Thanks to Arne @@ -9142,7 +9133,7 @@ 2002-04-07 Josh Huber - * message.el (message-make-mft): Changed MFT code from using + * message.el (message-make-mft): Change MFT code from using message-recipients (which included Bcc) to use only the To and CC headers. @@ -9202,8 +9193,8 @@ * nnmaildir.el: Use defstruct. Use a single copy of nnmail-extra-headers to save memory. Store server's group name prefix instead of each group's prefixed name. - * nnnil.el (nnnil-retrieve-headers, nnnil-request-list): Erase - nntp-server-buffer. + * nnnil.el (nnnil-retrieve-headers, nnnil-request-list): + Erase nntp-server-buffer. 2002-03-31 Lars Magne Ingebrigtsen @@ -9272,7 +9263,7 @@ 2002-03-22 Josh Huber - * mml.el (mml-mode-map): Added a keybinding for + * mml.el (mml-mode-map): Add a keybinding for `mml-unsecure-message'. Also, added a menu entry for said function in the Attachments menu. @@ -9340,8 +9331,8 @@ 2002-03-12 Faried Nawaz (tiny change) - * message.el (message-qmail-inject-args): May be function. Adjust - doc string and custom type. + * message.el (message-qmail-inject-args): May be function. + Adjust doc string and custom type. (message-send-mail-with-qmail): Call function if m-q-i-a is a function. @@ -9367,8 +9358,8 @@ 2002-03-09 Andre Srinivasan (tiny change) - * gnus-sum.el (gnus-summary-save-parts-default-mime): Remove - duplication. + * gnus-sum.el (gnus-summary-save-parts-default-mime): + Remove duplication. (gnus-summary-save-parts-type-history): Ditto. (gnus-summary-save-parts-last-directory): Ditto. @@ -9408,8 +9399,8 @@ * qp.el (quoted-printable-decode-region): Doc addition. From: Eli Zaretskii - * mail-source.el (make-source-make-complex-temp-name): Use - make-temp-file. + * mail-source.el (make-source-make-complex-temp-name): + Use make-temp-file. * mm-util.el (mm-make-temp-file): New function. * nneething.el (nneething-file-name): Use it. @@ -9424,8 +9415,8 @@ 2002-03-04 Paul Jarc - * message.el (nnmaildir-article-number-to-base-name): New - function. + * message.el (nnmaildir-article-number-to-base-name): + New function. (nnmaildir-base-name-to-article-number): New function. 2002-03-04 Katsumi Yamaoka @@ -9477,7 +9468,7 @@ * gnus-util.el (gnus-multiple-choice): New function. - * gnus-kill.el (gnus-score-insert-help): Removed, because it is + * gnus-kill.el (gnus-score-insert-help): Remove, because it is also defined in gnus-score.el. 2002-03-01 Paul Jarc @@ -9544,8 +9535,8 @@ 2002-02-22 Andre Srinivasan (tiny change) - * mm-decode.el (mm-display-external): Use - mm-file-name-rewrite-functions. + * mm-decode.el (mm-display-external): + Use mm-file-name-rewrite-functions. 2002-02-22 Paul Jarc @@ -9559,13 +9550,13 @@ 2002-02-21 Paul Jarc - * nnmaildir.el (nnmaildir-request-expire-articles): Use - nnmail-expiry-wait* if expire-age parameter is not set. + * nnmaildir.el (nnmaildir-request-expire-articles): + Use nnmail-expiry-wait* if expire-age parameter is not set. 2002-02-21 ShengHuo ZHU - * gnus-group.el (gnus-group-sort-groups-by-real-name): New - function. + * gnus-group.el (gnus-group-sort-groups-by-real-name): + New function. (gnus-group-sort-selected-groups-by-real-name): New function. (gnus-group-make-menu-bar): Add sort by real name. @@ -9615,8 +9606,8 @@ * rfc2231.el (rfc2231-parse-string): Support non-ascii chars. - * gnus-art.el (gnus-article-wash-html-with-w3): Remove - w3-delay-image-loads. + * gnus-art.el (gnus-article-wash-html-with-w3): + Remove w3-delay-image-loads. * mm-view.el (mm-inline-text-html-render-with-w3): Ditto. (mm-w3-prepare-buffer): Ditto. @@ -9686,7 +9677,7 @@ 2002-02-18 Katsumi Yamaoka - * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Improved to speed + * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Improve to speed up. Suggested by Yuuichi Teranishi . * gnus-art.el (article-display-x-face): Sort gray X-Faces. @@ -9784,8 +9775,8 @@ * gnus-agent.el (gnus-get-predicate): Use nconc. - * gnus-sum.el (gnus-summary-display-make-predicate): Use - gnus-summary-display-cache as cache. + * gnus-sum.el (gnus-summary-display-make-predicate): + Use gnus-summary-display-cache as cache. * nndoc.el (nndoc-type-alist): Add mail-in-mail type. (nndoc-mail-in-mail-type-p): New function. @@ -9795,8 +9786,8 @@ * mailcap.el (mailcap-mime-data): Use enriched-decode. - * gnus-cite.el (gnus-article-fill-cited-article): Bind - use-hard-newlines to nil. + * gnus-cite.el (gnus-article-fill-cited-article): + Bind use-hard-newlines to nil. * gnus-xmas.el (gnus-xmas-image-type-available-p): Assume that image is not available if window-system is not available. @@ -9813,8 +9804,8 @@ * gnus-soup.el (gnus-soup-send-packet): Send news and mail directly instead of calling message-send-mail. - * gnus-start.el (gnus-read-descriptions-file): Use - gnus-default-charset. + * gnus-start.el (gnus-read-descriptions-file): + Use gnus-default-charset. * mm-util.el (mm-guess-mime-charset): New function. @@ -9857,16 +9848,16 @@ 2002-02-07 ShengHuo ZHU - * gnus-art.el (gnus-article-treat-body-boundary): Add - gnus-decoration property. + * gnus-art.el (gnus-article-treat-body-boundary): + Add gnus-decoration property. * gnus-msg.el (gnus-copy-article-buffer): Remove gnus-decoration. * gnus-art.el (gnus-article-treat-unfold-headers): Don't remove too many spaces. * rfc2047.el (rfc2047-unfold-region): Ditto. - (rfc2047-decode-region): Don't unfold. Let - gnus-article-treat-unfold-headers do it. + (rfc2047-decode-region): Don't unfold. + Let gnus-article-treat-unfold-headers do it. 2002-02-07 Matt Armstrong @@ -9946,8 +9937,8 @@ force, prevent errors when following up from article buffer. (gnus-article-reply-with-original): Ditto. - * binhex.el (binhex-decoder-switches): Fix doc. From - Pavel@Janik.cz (Pavel Janík). + * binhex.el (binhex-decoder-switches): Fix doc. + From Pavel@Janik.cz (Pavel Janík). 2002-02-04 ShengHuo ZHU @@ -9984,11 +9975,11 @@ * gnus-cache.el (gnus-summary-insert-cached-articles): (gnus-summary-limit-include-cached): gnus-newsgroup-cached is sorted. - * gnus-group.el (gnus-group-mark-article-read): Nreverse - gnus-newsgroups-unselected. + * gnus-group.el (gnus-group-mark-article-read): + Nreverse gnus-newsgroups-unselected. - * gnus-agent.el (gnus-summary-set-agent-mark): Use - gnus-add-to-sorted-list. + * gnus-agent.el (gnus-summary-set-agent-mark): + Use gnus-add-to-sorted-list. * gnus-sum.el (gnus-summary-update-info): gnus-newsgroup-unreads gnus-newsgroup-unselected are sorted. Use gnus-sorted-union. @@ -10003,8 +9994,8 @@ directories. (gnus-dired-print): New function. - * gnus-art.el (gnus-mime-print-part): Add argument filename. Call - ps-despool. + * gnus-art.el (gnus-mime-print-part): Add argument filename. + Call ps-despool. 2002-02-02 Simon Josefsson @@ -10048,11 +10039,11 @@ 2002-01-31 ShengHuo ZHU - * nnfolder.el (nnfolder-request-replace-article): Unfold. Don't - use mail-header-unfold-field. + * nnfolder.el (nnfolder-request-replace-article): Unfold. + Don't use mail-header-unfold-field. - * gnus-cache.el (gnus-summary-insert-cached-articles): Use - gnus-summary-limit. + * gnus-cache.el (gnus-summary-insert-cached-articles): + Use gnus-summary-limit. * gnus-range.el (gnus-add-to-sorted-list): New function. * gnus-sum.el (gnus-mark-article-as-read): Use it. @@ -10068,8 +10059,8 @@ * gnus-msg.el (gnus-posting-styles): Add new format of header. (gnus-configure-posting-styles): Support the new format. - * mail-source.el (mail-source-bind, mail-source-bind-common): Set - edebug-form-spec to (sexp body). + * mail-source.el (mail-source-bind, mail-source-bind-common): + Set edebug-form-spec to (sexp body). Suggested by Joe Wells . * message.el (message-reply-headers): Add doc. @@ -10095,19 +10086,19 @@ * nnagent.el (nnagent-retrieve-headers): Use gnus-sorted-difference. - * gnus-agent.el (gnus-agent-retrieve-headers): Use - gnus-sorted-difference. + * gnus-agent.el (gnus-agent-retrieve-headers): + Use gnus-sorted-difference. - * nnsoup.el (nnsoup-request-expire-articles): Use - gnus-sorted-difference. + * nnsoup.el (nnsoup-request-expire-articles): + Use gnus-sorted-difference. * nnheader.el: Autoload gnus-sorted-difference. - * nnfolder.el (nnfolder-request-expire-articles): Use - gnus-sorted-difference. + * nnfolder.el (nnfolder-request-expire-articles): + Use gnus-sorted-difference. - * gnus-cache.el (gnus-cache-retrieve-headers): Use - gnus-sorted-difference. + * gnus-cache.el (gnus-cache-retrieve-headers): + Use gnus-sorted-difference. * gnus-range.el: Autoload cookies. (gnus-sorted-difference): New function. @@ -10122,8 +10113,8 @@ * gnus-sum.el (gnus-select-newsgroup): Use gnus-sorted-difference, gnus-sorted-ndifference, and gnus-sorted-nintersection. (gnus-articles-to-read): Use gnus-sorted-difference. - (gnus-summary-limit-mark-excluded-as-read): Use - gnus-sorted-intersection and gnus-sorted-ndifference. + (gnus-summary-limit-mark-excluded-as-read): + Use gnus-sorted-intersection and gnus-sorted-ndifference. (gnus-list-of-read-articles): Use gnus-list-range-difference. (gnus-summary-insert-articles): Use gnus-sorted-difference. @@ -10139,7 +10130,7 @@ * mm-view.el (mm-w3m-mode-map): New variable. (mm-w3m-mode-command-alist): New variable. - (mm-w3m-minor-mode): Removed. + (mm-w3m-minor-mode): Remove. (mm-setup-w3m): Setup `mm-w3m-mode-map'; don't add minor mode. (mm-inline-text-html-render-with-w3m): Add keymap property to the buffer for using emacs-w3m command keys. @@ -10150,11 +10141,11 @@ (message-cite-prefix-regexp): Auto detect non word constituents. (message-cite-prefix-regexp): Don't use with-syntax-table. - * gnus-sum.el (gnus-summary-update-info): Use - gnus-list-range-intersection. + * gnus-sum.el (gnus-summary-update-info): + Use gnus-list-range-intersection. - * gnus-agent.el (gnus-agent-fetch-headers): Use - gnus-list-range-intersection. + * gnus-agent.el (gnus-agent-fetch-headers): + Use gnus-list-range-intersection. * gnus-range.el (gnus-range-normalize): Use correct predicate. (gnus-list-range-intersection): Use it. @@ -10189,8 +10180,8 @@ Don't split when the window is small, e.g. when a small *BBDB* window is the lowest one. - * gnus-agent.el (gnus-agent-retrieve-headers): Use - nnheader-find-nov-line to speed up. Use nreverse, because it is + * gnus-agent.el (gnus-agent-retrieve-headers): + Use nnheader-find-nov-line to speed up. Use nreverse, because it is sorted. Use nnheader-insert-nov-file. 2002-01-28 Katsumi Yamaoka @@ -10208,7 +10199,7 @@ * time-date.el: Add autoload cookies. Many doc fixes. (time-add): New function. - (time-subtract): Renamed from subtract-time. + (time-subtract): Rename from subtract-time. (subtract-time): New alias for time-subtract. 2002-01-28 Katsumi Yamaoka @@ -10254,7 +10245,7 @@ 2002-01-26 Lars Magne Ingebrigtsen * nnml.el (nnml-use-compressed-files): New variable. - (nnml-filenames-are-evil): Removed. + (nnml-filenames-are-evil): Remove. (nnml-current-group-article-to-file-alist): Don't use. (nnml-update-file-alist): Inhibit. (nnml-article-to-file): Use new var. @@ -10319,7 +10310,7 @@ 2002-01-25 Lars Magne Ingebrigtsen - * gnus-agent.el (gnus-agent-save-alist): Optimized. + * gnus-agent.el (gnus-agent-save-alist): Optimize. 2002-01-25 Lars Magne Ingebrigtsen @@ -10330,15 +10321,15 @@ (gnus-server-method-cache): New variable. (gnus-server-to-method): Use it. (gnus-group-method-cache): New variable. - (gnus-find-method-for-group-1): Renamed. + (gnus-find-method-for-group-1): Rename. (gnus-find-method-for-group): New function. - (gnus-group-method-cache): Removed. + (gnus-group-method-cache): Remove. * gnus-sum.el (gnus-compute-unseen-list): Use new optimized function. * gnus-range.el (gnus-members-of-range): New function. - (gnus-list-range-intersection): Renamed. + (gnus-list-range-intersection): Rename. (gnus-inverse-list-range-intersection): New function. * gnus-sum.el (gnus-compute-unseen-list): Made into own function. @@ -10350,8 +10341,8 @@ 2002-01-25 Katsumi Yamaoka - * mm-view.el (mm-inline-text-html-render-with-w3m): Decode - charset-encoded html contents. + * mm-view.el (mm-inline-text-html-render-with-w3m): + Decode charset-encoded html contents. 2002-01-24 ShengHuo ZHU @@ -10401,12 +10392,12 @@ 2002-01-22 Josh Huber - * mml.el (mml-parse-1): Fixed usage of recipients in the secure + * mml.el (mml-parse-1): Fix usage of recipients in the secure tag. 2002-01-22 Josh Huber - * message.el (message-font-lock-keywords): Added the secure tag. + * message.el (message-font-lock-keywords): Add the secure tag. * mml-sec.el: Added functions to generate/modify/remove the secure tag while in message mode. * mml-sec.el (mml-secure-message): New. @@ -10417,12 +10408,12 @@ * mml-sec.el (mml-secure-message-encrypt-smime): New. * mml-sec.el (mml-secure-message-encrypt-pgp): New. * mml-sec.el (mml-secure-message-encrypt-pgpmime): New. - * mml.el (mml-parse-1): Added code to recognize the secure tag and + * mml.el (mml-parse-1): Add code to recognize the secure tag and convert it to either a part or multipart depending on if there are other parts in the message. - * mml.el (mml-mode-map): Changed default sign/encrypt keybindings + * mml.el (mml-mode-map): Change default sign/encrypt keybindings to use the secure tag, rather than the part tag. - * mml.el (mml-preview): Added a save-excursion to keep cursor + * mml.el (mml-preview): Add a save-excursion to keep cursor position after doing an MML preview. 2002-01-22 Lars Magne Ingebrigtsen @@ -10462,8 +10453,8 @@ 2002-01-20 Lars Magne Ingebrigtsen - * nnfolder.el (nnfolder-request-accept-article): Unfold - x-from-line. + * nnfolder.el (nnfolder-request-accept-article): + Unfold x-from-line. (nnfolder-request-replace-article): Ditto. 2002-01-20 Nevin Kapur @@ -10487,8 +10478,8 @@ * message.el (message-dont-send): Doc fix. - * gnus-util.el (gnus-completing-read): Remove - inherit-input-method. + * gnus-util.el (gnus-completing-read): + Remove inherit-input-method. * gnus-art.el (gnus-treat-smiley): Doc fix. @@ -10541,8 +10532,8 @@ 2002-01-19 Daniel Pittman - * gnus-sum.el (gnus-summary-first-unseen-or-unread-subject): New - functions. + * gnus-sum.el (gnus-summary-first-unseen-or-unread-subject): + New functions. 2002-01-19 Lars Magne Ingebrigtsen @@ -10551,7 +10542,7 @@ * gnus-sum.el (gnus-summary-goto-subject): Error on non-numerical articles. - * gnus-util.el (gnus-completing-read-with-default): Renamed. + * gnus-util.el (gnus-completing-read-with-default): Rename. * nnmail.el (nnmail-article-group): Clean up. @@ -10571,17 +10562,17 @@ * smiley-ems.el (smiley-region): Register smiley. (smiley-toggle-buffer): Rewrite the function. - (smiley-active): Removed. + (smiley-active): Remove. 2002-01-19 Simon Josefsson - * gnus-util.el (gnus-parent-id): Optimize null n case. From - Jesper Harder . + * gnus-util.el (gnus-parent-id): Optimize null n case. + From Jesper Harder . 2002-01-18 TSUCHIYA Masatoshi - * gnus-art.el (gnus-request-article-this-buffer): Call - `nneething-get-file-name' to extract the file name from the + * gnus-art.el (gnus-request-article-this-buffer): + Call `nneething-get-file-name' to extract the file name from the message id. * nneething.el (nneething-encode-file-name): New function. @@ -10649,21 +10640,21 @@ 2002-01-17 ShengHuo ZHU * gnus-agent.el (gnus-agent-retrieve-headers): Use correct buffer. - (gnus-agent-braid-nov): Switch back to nntp-server-buffer. Remove - duplications. + (gnus-agent-braid-nov): Switch back to nntp-server-buffer. + Remove duplications. (gnus-agent-batch): Bind gnus-agent-confirmation-function. 2002-01-16 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-summary-initial-limit): Inline - gnus-summary-limit-children. + * gnus-sum.el (gnus-summary-initial-limit): + Inline gnus-summary-limit-children. (gnus-summary-initial-limit): Don't limit if gnus-newsgroup-display is nil. (gnus-summary-initial-limit): No, don't. * gnus-util.el - (gnus-put-text-property-excluding-characters-with-faces): Inline - gnus-put-text-property. + (gnus-put-text-property-excluding-characters-with-faces): + Inline gnus-put-text-property. * gnus-spec.el (gnus-default-format-specs): New variable. @@ -10680,8 +10671,8 @@ * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Inline some functions. - (gnus-gather-threads-by-references): Inline - `gnus-split-references'. + (gnus-gather-threads-by-references): + Inline `gnus-split-references'. * gnus-spec.el (gnus-summary-line-format-spec): New, optimized default value of gnus-summary-line-format-spec. @@ -10691,7 +10682,7 @@ * nnslashdot.el (nnslashdot-retrieve-headers-1): A better error message. (nnslashdot-request-list): Ditto. - (nnslashdot-sid-strip): Removed. + (nnslashdot-sid-strip): Remove. 2002-01-15 Simon Josefsson @@ -10705,14 +10696,14 @@ 2002-01-15 TSUCHIYA Masatoshi - * nneething.el (nneething-request-article): Set - `nnmail-file-coding-system' to `binary' locally, in order to read + * nneething.el (nneething-request-article): + Set `nnmail-file-coding-system' to `binary' locally, in order to read files without any conversion. 2002-01-15 ShengHuo ZHU - * gnus-agent.el (gnus-agent-retrieve-headers): Use - nnheader-file-coding-system and nnmail-active-file-coding-system. + * gnus-agent.el (gnus-agent-retrieve-headers): + Use nnheader-file-coding-system and nnmail-active-file-coding-system. (gnus-agent-regenerate-group): Ditto. (gnus-agent-regenerate): Ditto. (gnus-agent-write-active): Ditto. @@ -10747,19 +10738,19 @@ * imap.el (imap-close): Keep going if quit. - * gnus-agent.el (gnus-agent-retrieve-headers): Erase - nntp-server-buffer. + * gnus-agent.el (gnus-agent-retrieve-headers): + Erase nntp-server-buffer. 2002-01-12 Lars Magne Ingebrigtsen * mm-view.el (mm-display-inline-fontify): Require font-lock to avoid unbinding shadowed variables. - * gnus-art.el (gnus-picon-databases): Moved here. - (gnus-picons-installed-p): Moved here. + * gnus-art.el (gnus-picon-databases): Move here. + (gnus-picons-installed-p): Move here. (gnus-article-reply-with-original): Use `mark'. - * gnus.el (gnus-picon): Moved here and renamed. + * gnus.el (gnus-picon): Move here and renamed. * gnus-art.el (gnus-treat-from-picon): Only be on if picons are installed. @@ -10782,8 +10773,8 @@ 2002-01-12 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-article-reply-with-original): Use - `mark-active'. + * gnus-art.el (gnus-article-reply-with-original): + Use `mark-active'. * gnus-msg.el (gnus-summary-reply): Don't bug out on regions. @@ -10794,16 +10785,16 @@ 2002-01-12 Simon Josefsson * flow-fill.el (fill-flowed-display-column) - (fill-flowed-encode-columnq): New variables. Suggested by - Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann). + (fill-flowed-encode-columnq): New variables. + Suggested by Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann). (fill-flowed-encode, fill-flowed): Use them. - * message.el (message-send-news, message-send-mail): Use - m-b-s-n-p-e-h-n. + * message.el (message-send-news, message-send-mail): + Use m-b-s-n-p-e-h-n. * mml.el (autoload): Autoload fill-flowed-encode. - (mml-buffer-substring-no-properties-except-hard-newlines): New - function. + (mml-buffer-substring-no-properties-except-hard-newlines): + New function. (mml-read-part): Use it. (mml-generate-mime-1): Encode format=flowed if appropriate. (mml-insert-mime-headers): Insert format=flowed. @@ -10843,8 +10834,8 @@ gnus-article-prepare-hook. * gnus-agent.el (gnus-agent-retrieve-headers): Load agentview. - (gnus-agent-toggle-plugged): Use gnus-agent-go-online. Move - gnus-agent-possibly-synchronize-flags to the last. + (gnus-agent-toggle-plugged): Use gnus-agent-go-online. + Move gnus-agent-possibly-synchronize-flags to the last. (gnus-agent-go-online): New function. New variable. 2002-01-11 ShengHuo ZHU @@ -10904,8 +10895,8 @@ 2002-01-10 ShengHuo ZHU - * nnkiboze.el (nnkiboze-request-article): Use - gnus-agent-request-article. + * nnkiboze.el (nnkiboze-request-article): + Use gnus-agent-request-article. * nnagent.el (nnagent-retrieve-headers): Don't use nnml function. Insert undownloaded NOV. @@ -10915,13 +10906,13 @@ * gnus.el (gnus-agent-cache): New variable. - * gnus-int.el (gnus-retrieve-headers): Use - gnus-agent-retrieve-headers. + * gnus-int.el (gnus-retrieve-headers): + Use gnus-agent-retrieve-headers. (gnus-request-head): Use gnus-agent-request-article. (gnus-request-body): Ditto. - * gnus-art.el (gnus-request-article-this-buffer): Use - gnus-agent-request-article. + * gnus-art.el (gnus-request-article-this-buffer): + Use gnus-agent-request-article. * gnus-sum.el (gnus-summary-read-group-1): Don't show the first article if it is undownloaded. @@ -10942,8 +10933,8 @@ 2002-01-08 ShengHuo ZHU - * mm-encode.el (mm-content-transfer-encoding-defaults): Add - application/x-emacs-lisp. + * mm-encode.el (mm-content-transfer-encoding-defaults): + Add application/x-emacs-lisp. * gnus-msg.el (gnus-bug): Use application/emacs-lisp. @@ -10986,8 +10977,8 @@ 2002-01-07 TSUCHIYA Masatoshi * nneething.el (nneething-request-article): When a non-text file - is converted to an article, its data is encoded in base64. Call - `nneething-make-head' with options to specify MIME types. + is converted to an article, its data is encoded in base64. + Call `nneething-make-head' with options to specify MIME types. (nneething-make-head): Add optional arguments to specify MIME types. @@ -11007,13 +10998,13 @@ 2002-01-06 Simon Josefsson - * imap.el (imap-ssl-open, imap-ssl-open, imap-parse-fetch): Use - condition-case, not ignore-errors. + * imap.el (imap-ssl-open, imap-ssl-open, imap-parse-fetch): + Use condition-case, not ignore-errors. 2002-01-06 ShengHuo ZHU - * gnus-sum.el (gnus-summary-insert-old-articles): Bind - gnus-fetch-old-headers. + * gnus-sum.el (gnus-summary-insert-old-articles): + Bind gnus-fetch-old-headers. * gnus-art.el (article-display-x-face): Use the current buffer unless `W f'. Otherwise, X-Face may be shown in the header of a @@ -11023,8 +11014,8 @@ 2002-01-06 Lars Magne Ingebrigtsen - * gnus-group.el (gnus-group-read-ephemeral-group): Fix - parameters. + * gnus-group.el (gnus-group-read-ephemeral-group): + Fix parameters. 2002-01-06 ShengHuo ZHU @@ -11034,8 +11025,8 @@ (mm-detect-coding-region): New function. (mm-detect-mime-charset-region): New function. - * gnus-sum.el (gnus-summary-show-article): Use - mm-detect-coding-region. + * gnus-sum.el (gnus-summary-show-article): + Use mm-detect-coding-region. 2002-01-06 Lars Magne Ingebrigtsen @@ -11071,7 +11062,7 @@ 2002-01-05 Lars Magne Ingebrigtsen - * gnus.el (gnus-logo-color-alist): Added more colors from Luis. + * gnus.el (gnus-logo-color-alist): Add more colors from Luis. 2002-01-05 Keiichi Suzuki (tiny change) @@ -11096,7 +11087,7 @@ 2002-01-05 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-thread-latest-date): New function. - (gnus-thread-sort-by-most-recent-number): Renamed. + (gnus-thread-sort-by-most-recent-number): Rename. (gnus-thread-sort-functions): Doc fix. (gnus-select-group-hook): Don't use setq on a hook. (gnus-thread-latest-date): Use date, not number. @@ -11104,14 +11095,14 @@ * gnus-agent.el (gnus-agent-expire-days): Doc fix. (gnus-agent-expire): Allow regexp of expire-days. - * gnus-art.el (gnus-article-reply-with-original): Deactivate - region. + * gnus-art.el (gnus-article-reply-with-original): + Deactivate region. (gnus-article-followup-with-original): Ditto. * gnus-sum.el (gnus-thread-highest-number): Doc fix. - * gnus-art.el (gnus-mime-display-alternative): Use - gnus-local-map-property. + * gnus-art.el (gnus-mime-display-alternative): + Use gnus-local-map-property. (gnus-mime-display-alternative): Ditto. (gnus-insert-mime-security-button): Ditto. (gnus-insert-next-page-button): Ditto. @@ -11130,7 +11121,7 @@ "X-Face: " to the data in the built-in scenario. * gnus-spec.el (gnus-parse-simple-format): Use gnus-pad-form. - (gnus-correct-pad-form): Renamed. + (gnus-correct-pad-form): Rename. (gnus-tilde-max-form): Clean up. (gnus-pad-form): Use gnus-use-correct-string-widths. @@ -11161,30 +11152,30 @@ * gnus-fun.el (gnus-display-x-face-in-from): Use face. - * gnus-ems.el (gnus-article-xface-ring-internal): Removed. - (gnus-article-xface-ring-size): Removed. - (gnus-article-display-xface): Removed. + * gnus-ems.el (gnus-article-xface-ring-internal): Remove. + (gnus-article-xface-ring-size): Remove. + (gnus-article-display-xface): Remove. (gnus-remove-image): Cleaned up. * gnus-xmas.el (gnus-xmas-create-image): Convert pbm to xbm. (gnus-xmas-create-image): Take pbm files. - (gnus-x-face): Removed. - (gnus-xmas-article-display-xface): Removed. + (gnus-x-face): Remove. + (gnus-xmas-article-display-xface): Remove. - * gnus-fun.el (gnus-display-x-face-in-from): Bind - default-enable-multibyte-characters. + * gnus-fun.el (gnus-display-x-face-in-from): + Bind default-enable-multibyte-characters. * compface.el (uncompface): Doc fix. - * gnus-art.el (gnus-article-x-face-command): Use - gnus-display-x-face-in-from. + * gnus-art.el (gnus-article-x-face-command): + Use gnus-display-x-face-in-from. * gnus-xmas.el (gnus-xmas-put-image): Return the image. * gnus-ems.el (gnus-put-image): Return the image. * gnus-fun.el (gnus-display-x-face-in-from): New function. - (gnus-x-face): Moved here. + (gnus-x-face): Move here. 2002-01-04 ShengHuo ZHU @@ -11218,9 +11209,9 @@ * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Use uncompface. - * compface.el (compface-xbm-p): Removed. + * compface.el (compface-xbm-p): Remove. - * gnus-ems.el (gnus-article-compface-xbm): Removed. + * gnus-ems.el (gnus-article-compface-xbm): Remove. (gnus-article-display-xface): Use compface. * compface.el: New file. @@ -11232,8 +11223,8 @@ 2002-01-03 Paul Jarc - * nnmaildir.el (nnmaildir-request-expire-articles): Evaluate - the expire-group parameter once per article rather than once + * nnmaildir.el (nnmaildir-request-expire-articles): + Evaluate the expire-group parameter once per article rather than once per group; bind `nnmaildir-article-file-name' and `article' for convenience. Leave article alone when expire-group specifies the current group. @@ -11246,7 +11237,7 @@ 2002-01-03 Dave Love - * gnus-start.el (gnus-startup-file-coding-system): Removed. + * gnus-start.el (gnus-startup-file-coding-system): Remove. (gnus-read-init-file): Don't use it. 2002-01-03 Lars Magne Ingebrigtsen @@ -11268,7 +11259,7 @@ 2002-01-03 Per Abrahamsen - * gnus.el (gnus-summary-line-format): Added :link. + * gnus.el (gnus-summary-line-format): Add :link. * gnus-topic.el (gnus-topic-line-format): Ditto. * gnus-sum.el (gnus-summary-dummy-line-format): Ditto. * gnus-srvr.el (gnus-server-line-format): Ditto. @@ -11336,7 +11327,7 @@ 2002-01-02 Lars Magne Ingebrigtsen - * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Renamed. + * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Rename. * gnus-art.el (gnus-ignored-headers): Hide all X-Faces. (article-display-x-face): Display gray X-Faces. @@ -11389,10 +11380,10 @@ * gnus-fun.el: New file. (gnus-convert-image-to-x-face-command): New variable. (gnus-insert-x-face): New function. - (gnus-random-x-face): Renamed. - (gnus-x-face-from-file): Renamed. + (gnus-random-x-face): Rename. + (gnus-x-face-from-file): Rename. - * gnus-art.el (gnus-body-boundary-delimiter): Changed default to + * gnus-art.el (gnus-body-boundary-delimiter): Change default to "_". (gnus-body-boundary-delimiter): Typo fix. @@ -11442,7 +11433,7 @@ * gnus-picon.el (gnus-picon-find-face): Search MISC for all types. (gnus-picon-transform-address): Search for unknown faces as well. (gnus-picon-find-face): Don't search "news" for MISC. - (gnus-picon-user-directories): Changed default back to exclude + (gnus-picon-user-directories): Change default back to exclude "unknown". * gnus-sum.el (gnus-summary-hide-all-threads): Reversed logic. @@ -11455,13 +11446,13 @@ keystroke. (gnus-topic-goto-next-topic): Ditto. - * gnus.el (gnus-summary-line-format): Changed default. + * gnus.el (gnus-summary-line-format): Change default. * nnmail.el (nnmail-extra-headers): Change default. * gnus-sum.el (gnus-extra-headers): Change default. - * message.el (message-news-other-window): Changed "news" to + * message.el (message-news-other-window): Change "news" to "posting". (message-news-other-frame): Ditto. (message-do-send-housekeeping): Ditto. @@ -11499,8 +11490,8 @@ 2002-01-01 Steve Youngs - * gnus-xmas.el (gnus-xmas-article-display-xface): Uncomment - 'set-glyph-face' so x-face back/foreground can be set. + * gnus-xmas.el (gnus-xmas-article-display-xface): + Uncomment 'set-glyph-face' so x-face back/foreground can be set. 2001-12-31 ShengHuo ZHU @@ -11508,16 +11499,16 @@ 2002-01-01 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-treat-smiley): Renamed command. + * gnus-art.el (gnus-treat-smiley): Rename command. (gnus-article-remove-images): New command and keystroke. - * gnus-sum.el (gnus-summary-toggle-smiley): Removed. + * gnus-sum.el (gnus-summary-toggle-smiley): Remove. - * smiley-ems.el (gnus-smiley-display): Removed. + * smiley-ems.el (gnus-smiley-display): Remove. * gnus.el (gnus-version-number): Update version. - * message.el (message-text-with-property): Renamed and moved + * message.el (message-text-with-property): Rename and moved here. (message-fix-before-sending): Highlight invisible text and place point there. @@ -11528,7 +11519,7 @@ 2002-01-01 Lars Magne Ingebrigtsen - * gnus-delay.el (gnus-delay-send-queue): Renamed. + * gnus-delay.el (gnus-delay-send-queue): Rename. * gnus-art.el (gnus-ignored-headers): More headers. @@ -11558,7 +11549,7 @@ 2001-12-31 Lars Magne Ingebrigtsen - * gnus-group.el (gnus-group-line-format): Added %O to the default + * gnus-group.el (gnus-group-line-format): Add %O to the default value. * gnus-util.el (gnus-text-with-property): The smallest point is @@ -11591,7 +11582,7 @@ * gnus-ems.el (gnus-article-display-xface): Mark and store image. - * gnus-art.el (gnus-article-wash-status-entry): Renamed. + * gnus-art.el (gnus-article-wash-status-entry): Rename. (gnus-article-wash-status): Use it. (gnus-signature-toggle): Clean up. (gnus-add-wash-status): New function. @@ -11615,7 +11606,7 @@ * smiley-ems.el (gnus-smiley-file-types): New variable. (smiley-update-cache): Use it. (smiley-regexp-alist): Suffix-less smiley names. - (smiley-regexp-alist): Added more smileys. + (smiley-regexp-alist): Add more smileys. * gnus-sum.el (gnus-print-buffer): Made into own function. (gnus-summary-print-article): Use it. @@ -11630,8 +11621,8 @@ 2001-12-31 Simon Josefsson - * imap.el (imap-parse-fetch): Notice empty flags responses. From - Nic Ferrier . + * imap.el (imap-parse-fetch): Notice empty flags responses. + From Nic Ferrier . 2001-12-30 ShengHuo ZHU @@ -11644,15 +11635,15 @@ 2001-12-30 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-article-treat-fold-newsgroups): Don't - infloop. + * gnus-art.el (gnus-article-treat-fold-newsgroups): + Don't infloop. * gnus-sum.el (t): New `W D' map. * gnus-art.el (gnus-treat-fold-newsgroups): New variable. (gnus-article-treat-body-boundary): Clean up. - (gnus-body-boundary-face): Removed. - (gnus-article-goto-header): Moved here. + (gnus-body-boundary-face): Remove. + (gnus-article-goto-header): Move here. (gnus-article-goto-header): Allow better regexps. (gnus-article-treat-fold-newsgroups): New command. @@ -11667,7 +11658,7 @@ * mail-parse.el (mail-header-fold-line): New alias. (mail-header-unfold-line): Ditto. - * gnus-art.el (gnus-body-boundary-face): Renamed. + * gnus-art.el (gnus-body-boundary-face): Rename. (gnus-article-treat-body-boundary): Use it. (gnus-article-treat-body-boundary): Use an invisible header and a line of underline characters. @@ -11682,8 +11673,8 @@ (gnus-picon-transform-address): Use it. Set first to t for each address. - * gnus-art.el (gnus-with-article-headers): Move to here. Define - the macro then use it. + * gnus-art.el (gnus-with-article-headers): Move to here. + Define the macro then use it. (gnus-treatment-function-alist): Treat picons earlier. 2001-12-30 Lars Magne Ingebrigtsen @@ -11704,7 +11695,7 @@ * gnus-xmas.el (gnus-xmas-group-startup-message): Use general colors. - * gnus.el (gnus-logo-color-alist): Moved here and renamed. + * gnus.el (gnus-logo-color-alist): Move here and renamed. (gnus-logo-color-style): Ditto. (gnus-logo-colors): Ditto. @@ -11718,26 +11709,26 @@ * ietf-drums.el (ietf-drums-parse-addresses): Accept a nil string. - * gnus-picon.el (gnus-treat-mail-picon): Renamed. + * gnus-picon.el (gnus-treat-mail-picon): Rename. * gnus-art.el (gnus-treat-cc-picon): New variable. - (gnus-treat-mail-picon): Renamed. + (gnus-treat-mail-picon): Rename. * gnus-picon.el: New implementation. - (gnus-picon-find-face): Renamed. + (gnus-picon-find-face): Rename. (gnus-treat-from-picon): Use it. - (gnus-picon-transform-address): Renamed. + (gnus-picon-transform-address): Rename. (gnus-treat-from-picon): Use it. - (gnus-picon-create-glyph): Renamed. + (gnus-picon-create-glyph): Rename. (gnus-picon-transform-address): Use it. (gnus-treat-cc-picon): New command. - * mm-decode.el (mm-create-image-xemacs): Separated out into + * mm-decode.el (mm-create-image-xemacs): Separate out into function. (mm-get-image): Use it. * gnus-art.el (gnus-treat-display-picons): Simplify. - (gnus-treat-from-picon): Renamed. + (gnus-treat-from-picon): Rename. * gnus-ems.el (gnus-create-image): New function. (gnus-put-image): New function. @@ -11764,7 +11755,7 @@ 2001-12-29 Lars Magne Ingebrigtsen * gnus-art.el (gnus-treat-unfold-lines): New variable. - (gnus-treat-unfold-headers): Renamed. + (gnus-treat-unfold-headers): Rename. (gnus-article-treat-unfold-headers): New command and keystroke. * rfc2047.el (rfc2047-encode-message-header): Clean up. @@ -11781,7 +11772,7 @@ 2001-12-29 Lars Magne Ingebrigtsen - * gnus-picon.el (gnus-picons-news-directories): Removed obsolete + * gnus-picon.el (gnus-picons-news-directories): Remove obsolete alias. (gnus-picons-database): Default to list. (gnus-picons-lookup-internal): Use it. @@ -11819,8 +11810,8 @@ * gnus-art.el (gnus-treatment-function-alist): Emphasize after other treatments. - * gnus-util.el (gnus-put-overlay-excluding-newlines): New - function. + * gnus-util.el (gnus-put-overlay-excluding-newlines): + New function. * gnus-art.el (gnus-article-show-hidden-text): Remove the type from the list of hidden types. @@ -11833,7 +11824,7 @@ 2001-12-29 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-ignored-headers): Added more headers. + * gnus-art.el (gnus-ignored-headers): Add more headers. 2001-12-29 Jesper Harder @@ -11846,13 +11837,13 @@ 2001-12-28 Simon Josefsson - * gnus-srvr.el (gnus-browse-foreign-server): Fix typo. From - Jesper Harder . + * gnus-srvr.el (gnus-browse-foreign-server): Fix typo. + From Jesper Harder . 2001-12-27 Simon Josefsson - * gnus-sum.el (gnus-select-newsgroup): Make - `gnus-newsgroup-unseen' sorted. Make `gnus-newsgroup-unseen' + * gnus-sum.el (gnus-select-newsgroup): + Make `gnus-newsgroup-unseen' sorted. Make `gnus-newsgroup-unseen' contain all articles (instead of none) when no seen marks have been set for the group. (gnus-update-marks): Use `gnus-range-add' on a uncompressed list @@ -11860,8 +11851,8 @@ 2001-12-26 11:00:00 Jesper Harder - * mm-util.el (mm-iso-8859-x-to-15-region): Use - insert-before-markers. + * mm-util.el (mm-iso-8859-x-to-15-region): + Use insert-before-markers. 2001-12-26 Paul Jarc @@ -11874,8 +11865,8 @@ 2001-12-22 22:00:00 ShengHuo ZHU - * gnus-group.el (gnus-group-read-ephemeral-group): Call - gnus-group-real-name. + * gnus-group.el (gnus-group-read-ephemeral-group): + Call gnus-group-real-name. * gnus-sum.el (gnus-decode-encoded-word-methods): Backslash paren. (gnus-newsgroup-variables): Ditto. @@ -11904,8 +11895,8 @@ * nnimap.el (top-level): Don't require cl. Suggested by ShengHuo ZHU . - (nnimap-close-group): Don't quote KEYLIST items. Suggested by - Brian P Templeton . + (nnimap-close-group): Don't quote KEYLIST items. + Suggested by Brian P Templeton . 2001-12-19 17:00:00 Paul Jarc @@ -11946,8 +11937,8 @@ * gnus-salt.el (gnus-tree-recenter, gnus-generate-tree) (gnus-generate-tree, gnus-highlight-selected-tree) - (gnus-highlight-selected-tree, gnus-tree-highlight-article): Use - it. + (gnus-highlight-selected-tree, gnus-tree-highlight-article): + Use it. * gnus-art.el (gnus-article-set-window-start) (gnus-mm-display-part, gnus-request-article-this-buffer) @@ -12004,7 +11995,7 @@ 2001-12-13 Josh Huber - * gnus-cus.el (gnus-extra-topic-parameters): Added topic parameter + * gnus-cus.el (gnus-extra-topic-parameters): Add topic parameter subscribe-level * gnus-topic.el (gnus-subscribe-topics): Use it. @@ -12110,8 +12101,8 @@ 2001-12-07 09:00:00 ShengHuo ZHU - * nnrss.el (nnrss-decode-entities-unibyte-string): Use - mm-url-decode-entities-nbsp. + * nnrss.el (nnrss-decode-entities-unibyte-string): + Use mm-url-decode-entities-nbsp. * nnlistserv.el, nnultimate.el, nnwarchive.el, nnweb.el: * webmail.el, nnwfm.el: Use mm-url. @@ -12131,7 +12122,7 @@ 2001-12-06 10:00:00 ShengHuo ZHU - * nnweb.el (nnweb-replace-in-string): Removed. + * nnweb.el (nnweb-replace-in-string): Remove. * gnus-util.el (gnus-replace-in-string): New function. (gnus-mode-string-quote): Use it. @@ -12179,8 +12170,8 @@ 2001-12-01 15:00:00 ShengHuo ZHU - * gnus-sum.el (gnus-summary-save-article): Nix - gnus-display-mime-function and gnus-article-prepare-hook. + * gnus-sum.el (gnus-summary-save-article): + Nix gnus-display-mime-function and gnus-article-prepare-hook. * gnus-spec.el (gnus-parse-complex-format): Properly handle %C at the beginning of lines. @@ -12216,8 +12207,8 @@ 2001-11-29 Kai Großjohann * message.el (message-newgroups-header-regexp) - (message-completion-alist, message-tab-body-function): Use - defcustom rather than defvar. + (message-completion-alist, message-tab-body-function): + Use defcustom rather than defvar. (message-tab): Mention `message-tab-body-function' in doc. Suggested by Karl Eichwalder. @@ -12252,8 +12243,8 @@ * message.el (message-mode): make-local-hook is harmless in Emacs 21. - * gnus-msg.el (gnus-configure-posting-styles): Use - make-local-hook. Add LOCAL for add-hook. + * gnus-msg.el (gnus-configure-posting-styles): + Use make-local-hook. Add LOCAL for add-hook. 2001-11-27 Per Abrahamsen @@ -12419,8 +12410,8 @@ 2001-11-15 Per Abrahamsen - * gnus-art.el (gnus-article-wash-status-strings): Use - `copy-sequence', not `copy-seq'. + * gnus-art.el (gnus-article-wash-status-strings): + Use `copy-sequence', not `copy-seq'. 2001-11-15 Per Abrahamsen @@ -12435,7 +12426,7 @@ 2001-11-12 Simon Josefsson * mml1991.el (mml1991-use, mml1991-function-alist): New variables. - (mml1991-gpg-sign, mml1991-gpg-encrypt): Renamed, from + (mml1991-gpg-sign, mml1991-gpg-encrypt): Rename, from `mml1991-sign' and `mml1991-encrypt'. (mml1991-encrypt, mml1991-sign): New glue functions. (mml1991-mailcrypt-sign, mml1991-mailcrypt-encrypt): New functions. @@ -12466,8 +12457,8 @@ * message.el (top-level): Autoload sha1. (message-canlock-generate): Use sha1 instead of md5 (sha1 used by - canlock, no need to require two different hash algs). Suggested - by Ferenc Wagner . + canlock, no need to require two different hash algs). + Suggested by Ferenc Wagner . 2001-11-09 Pavel Janík @@ -12493,13 +12484,13 @@ * sieve-mode.el (sieve-control-commands-face) (sieve-control-commands-face, sieve-action-commands-face) - (sieve-test-commands-face, sieve-tagged-arguments-face): New - faces. + (sieve-test-commands-face, sieve-tagged-arguments-face): + New faces. (sieve-font-lock-keywords): Use them. (sieve-mode): Only set font-lock-defaults in emacs. - * gnus-art.el (gnus-default-article-saver): Add - gnus-summary-save-body-in-file. + * gnus-art.el (gnus-default-article-saver): + Add gnus-summary-save-body-in-file. (gnus-summary-write-to-file): Fix doc. 2001-11-07 Simon Josefsson @@ -12588,7 +12579,7 @@ (nnimap-expunge): Don't use it. * imap.el (imap-callbacks): New variable. - (imap-remassoc): Copied from `gnus-remassoc'. + (imap-remassoc): Copy from `gnus-remassoc'. (imap-add-callback): New function. (imap-mailbox-expunge, imap-mailbox-close): Support asynchronous behavior. @@ -12633,8 +12624,8 @@ * smiley-ems.el (smiley-update-cache): Auto detect file type. - * message.el (message-forward-rmail-make-body): Use - save-window-excursion. + * message.el (message-forward-rmail-make-body): + Use save-window-excursion. (message-encode-message-body): Search with noerror. (message-setup-1): Convert compose-mail send-actions to message-send-actions. @@ -12715,8 +12706,8 @@ (mm-charset-synonym-alist): Remove windows-125[02]. Make other entries conditional on not having a coding system defined for them. - (mm-mule-charset-to-mime-charset): Use - find-coding-systems-for-charsets if defined. + (mm-mule-charset-to-mime-charset): + Use find-coding-systems-for-charsets if defined. (mm-charset-to-coding-system): Don't use mm-get-coding-system-list. Look in mm-charset-synonym-alist later. Add last resort search of coding systems. @@ -12742,8 +12733,8 @@ 2001-10-30 13:00:00 ShengHuo ZHU - * gnus-spec.el (gnus-parse-simple-format): Use - buffer-substring-no-properties. + * gnus-spec.el (gnus-parse-simple-format): + Use buffer-substring-no-properties. 2001-10-30 Katsumi Yamaoka @@ -12846,8 +12837,8 @@ 2001-10-22 Simon Josefsson - * gnus-msg.el (gnus-extended-version): Include - system-configuration. + * gnus-msg.el (gnus-extended-version): + Include system-configuration. Suggested by Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann). 2001-10-22 Per Abrahamsen @@ -12860,8 +12851,8 @@ 2001-10-21 Simon Josefsson * nnimap.el (nnimap): Defgroup. - (nnimap-strict-function, nnimap-strict-function-match): New - widget, from Per Abrahamsen . + (nnimap-strict-function, nnimap-strict-function-match): + New widget, from Per Abrahamsen . (nnimap-split-crosspost, nnimap-split-inbox) (nnimap-split-rule, nnimap-split-predicate) (nnimap-split-predicate): Defcustom. @@ -12907,9 +12898,9 @@ * message.el (message-do-auto-fill): New version that does not rely on text properties, by Simon Josefsson . - (message-setup-1): Removed the `message-field' property. + (message-setup-1): Remove the `message-field' property. - * gnus-draft.el (gnus-draft-edit-message): Removed the + * gnus-draft.el (gnus-draft-edit-message): Remove the `message-field' property. 2001-10-19 Per Abrahamsen @@ -12945,8 +12936,8 @@ * message.el (message-check-news-header-syntax): Special case nnvirtual groups. - * gnus-sum.el (gnus-summary-respool-default-method): Changed - customize type to `symbol'. + * gnus-sum.el (gnus-summary-respool-default-method): + Change customize type to `symbol'. 2001-10-17 12:00:00 ShengHuo ZHU @@ -12968,13 +12959,13 @@ 2001-10-17 Per Abrahamsen - * gnus-msg.el (gnus-post-method): Changed two instances of + * gnus-msg.el (gnus-post-method): Change two instances of `active' to `current' and one `null' to `not'. 2001-10-16 Katsumi Yamaoka - * message.el (message-setup-fill-variables): Use - `normal-auto-fill-function' instead of `auto-fill-function'. + * message.el (message-setup-fill-variables): + Use `normal-auto-fill-function' instead of `auto-fill-function'. 2001-10-16 Simon Josefsson @@ -13040,8 +13031,8 @@ 2001-10-12 Kai Großjohann Suggested by Oliver Scholz . - * message.el (message-do-auto-fill): New function. Like - `do-auto-fill' but don't fill when in the message header. + * message.el (message-do-auto-fill): New function. + Like `do-auto-fill' but don't fill when in the message header. (message-setup-1): Put a text property on the message header. (message-setup-fill-variables): Use `message-do-auto-fill'. @@ -13063,8 +13054,8 @@ 2001-10-10 Katsumi Yamaoka - * gnus-group.el (gnus-group-name-charset-group-alist): Use - `find-coding-system' for XEmacs to check whether the coding-system + * gnus-group.el (gnus-group-name-charset-group-alist): + Use `find-coding-system' for XEmacs to check whether the coding-system `utf-8' is available. 2001-10-09 Per Abrahamsen @@ -13074,8 +13065,8 @@ 2001-10-09 Per Abrahamsen - * message.el (message-send-news): Allow - `gnus-group-name-charset-group-alist' to affect encoding of the + * message.el (message-send-news): + Allow `gnus-group-name-charset-group-alist' to affect encoding of the "Newsgroups" and "Followup-To" headers. 2001-10-07 Per Abrahamsen @@ -13096,7 +13087,7 @@ default charset for newsgroup names in accordance with USEFOR. * gnus-group.el (gnus-group-name-charset-method-alist, - gnus-group-name-charset-group-alist): Removed "*" from doc + gnus-group-name-charset-group-alist): Remove "*" from doc strings, "*" should not be used for complex variables. 2001-10-06 Simon Josefsson @@ -13110,18 +13101,18 @@ `gnus-article-decode-hook's except `article-decode-charset' instead of hardcoding call to one of them. - * gnus-art.el (gnus-article-decode-hook): Add - `article-decode-group-name'. + * gnus-art.el (gnus-article-decode-hook): + Add `article-decode-group-name'. (article-decode-group-name): New function, use `g-d-n'. - * gnus-group.el (gnus-group-insert-group-line): Decode - gnus-tmp-group using `g-d-n'. + * gnus-group.el (gnus-group-insert-group-line): + Decode gnus-tmp-group using `g-d-n'. * gnus-util.el (gnus-decode-newsgroups): New function. 2001-10-06 Per Abrahamsen - * gnus-srvr.el (gnus-browse-foreign-server): Fixed bug non-nil + * gnus-srvr.el (gnus-browse-foreign-server): Fix bug non-nil `gnus-group-name-charset-group-alist'. 2001-10-05 Simon Josefsson @@ -13283,8 +13274,8 @@ 2001-09-19 Sam Steingold - * gnus-win.el (gnus-buffer-configuration): Respect - `gnus-bug-create-help-buffer'. + * gnus-win.el (gnus-buffer-configuration): + Respect `gnus-bug-create-help-buffer'. 2001-09-18 Simon Josefsson @@ -13338,7 +13329,7 @@ 2001-09-14 Simon Josefsson - * gnus-start.el (gnus-group-mode-hook): Moved from gnus-group + * gnus-start.el (gnus-group-mode-hook): Move from gnus-group (otherwise e.g. gnus-agentize in .gnus overrides the customized default before gnus-group is loaded and the variable set.) @@ -13369,11 +13360,11 @@ * nndiary.el (nndiary-request-accept-article-hooks): New. * nndiary.el (nndiary-request-accept-article): Use it, check message validity. - * nndiary.el (nndiary-get-new-mail): Changed default to nil. + * nndiary.el (nndiary-get-new-mail): Change default to nil. * nndiary.el (nndiary-schedule): Fix bug (misplaced condition-case): it didn't return nil on error. * gnus-diary.el: New version. - * gnus-diary.el (gnus-diary-summary-line-format): Removed %I. + * gnus-diary.el (gnus-diary-summary-line-format): Remove %I. * gnus-diary.el (gnus-diary-header-value-history): New. * gnus-diary.el (gnus-diary-narrow-to-headers): New. * gnus-diary.el (gnus-diary-add-header): New. @@ -13383,11 +13374,11 @@ 2001-09-10 TSUCHIYA Masatoshi - * gnus-sum.el (gnus-select-newsgroup): Make - `gnus-current-select-method' buffer-local. + * gnus-sum.el (gnus-select-newsgroup): + Make `gnus-current-select-method' buffer-local. - * gnus-art.el (gnus-request-article-this-buffer): Refer - `gnus-current-select-method' in the current summary buffer. + * gnus-art.el (gnus-request-article-this-buffer): + Refer `gnus-current-select-method' in the current summary buffer. 2001-09-10 Daniel Pittman @@ -13395,10 +13386,10 @@ 2001-09-09 Simon Josefsson - * mm-decode.el (mm-inline-media-tests): Add - application/x-emacs-lisp. - (mm-attachment-override-types): Add - application/{x-,}pkcs7-signature. + * mm-decode.el (mm-inline-media-tests): + Add application/x-emacs-lisp. + (mm-attachment-override-types): + Add application/{x-,}pkcs7-signature. * gnus-srvr.el (gnus-server-mode-hook, gnus-server-exit-hook) (gnus-server-line-format, gnus-server-mode-line-format) @@ -13431,8 +13422,8 @@ (nnml-request-update-info): Don't update if marks didn't change. * gnus-agent.el (gnus-agent-any-covered-gcc) - (gnus-agent-add-server, gnus-agent-remove-server): Use - gnus-agent-method-p. + (gnus-agent-add-server, gnus-agent-remove-server): + Use gnus-agent-method-p. * gnus-art.el (gnus-buttonized-mime-types): New variable. (gnus-unbuttonized-mime-type-p): Use it. @@ -13634,8 +13625,8 @@ * gnus-spec.el (gnus-compile): Don't compile gnus-version. - * gnus-group.el (gnus-update-group-mark-positions): Bind - gnus-group-update-hook to nil. + * gnus-group.el (gnus-update-group-mark-positions): + Bind gnus-group-update-hook to nil. 2001-08-24 13:00:00 ShengHuo ZHU @@ -13655,8 +13646,8 @@ 2001-08-24 Simon Josefsson - * gnus-group.el (gnus-info-clear-data): Call - nnfoo-request-set-mark to propagate marks. Fix bug: + * gnus-group.el (gnus-info-clear-data): + Call nnfoo-request-set-mark to propagate marks. Fix bug: `gnus-group-update-line' doesn't update read range unless we call `gnus-get-unread-articles-in-group' first. @@ -13732,8 +13723,8 @@ 2001-08-20 15:00:00 ShengHuo ZHU - * nnslashdot.el (nnslashdot-retrieve-headers-1): Replace - nnslashdot-*-retrieve-headers. + * nnslashdot.el (nnslashdot-retrieve-headers-1): + Replace nnslashdot-*-retrieve-headers. (nnslashdot-request-article): Fix for slashcode 2.2. (nnslashdot-make-tuple): New function. (nnslashdot-read-groups): Use it. @@ -13775,15 +13766,15 @@ * mm-view.el (mm-inline-text): Ignore vcard errors. - * gnus-art.el (gnus-ignored-headers): Added more junk headers. + * gnus-art.el (gnus-ignored-headers): Add more junk headers. * gnus-score.el (gnus-all-score-files): Use append instead of nconc. * gnus.el (gnus-splash-face): Doc fix. - * mm-decode.el (mm-mailcap-command): Use - mm-path-name-rewrite-functions. + * mm-decode.el (mm-mailcap-command): + Use mm-path-name-rewrite-functions. (mm-path-name-rewrite-functions): New variable. * gnus-spec.el (gnus-parse-complex-format): React to ?=. @@ -13797,10 +13788,10 @@ the positional spec. (gnus-parse-complex-format): React to %C. - * gnus-ems.el (gnus-char-width): Moved here. + * gnus-ems.el (gnus-char-width): Move here. - * gnus-sum.el (gnus-select-newsgroup): Set - gnus-newsgroup-articles. + * gnus-sum.el (gnus-select-newsgroup): + Set gnus-newsgroup-articles. (gnus-unseen-mark): New variable. (gnus-newsgroup-unseen): Ditto. (gnus-newsgroup-seen): Ditto. @@ -13858,15 +13849,15 @@ 2001-08-18 Simon Josefsson - * gnus-util.el (gnus-remassoc, gnus-update-alist-soft): Moved from + * gnus-util.el (gnus-remassoc, gnus-update-alist-soft): Move from nnimap. - * nnimap.el (nnimap-remassoc, nnimap-update-alist-soft): Moved to + * nnimap.el (nnimap-remassoc, nnimap-update-alist-soft): Move to gnus-util. (nnimap-request-update-info-internal): Use new functions. - * nnml.el (nnml-request-set-mark, nnml-request-update-info): Use - new functions. + * nnml.el (nnml-request-set-mark, nnml-request-update-info): + Use new functions. 2001-08-18 Simon Josefsson @@ -13963,7 +13954,7 @@ * gnus-start.el (gnus-setup-news): Push the archive server only the server list. - * mml.el (mml-menu): Changed name to "Attachments". + * mml.el (mml-menu): Change name to "Attachments". * mm-decode.el (mm-destroy-postponed-undisplay-list): Only message when there is something to destroy. @@ -13999,8 +13990,8 @@ `nnmail-split-history' if recent is > 0. (nnimap-request-update-info-internal): Update `recent' marks. (nnimap-request-set-mark): Never set `recent' marks. - (nnimap-mark-to-predicate-alist, nnimap-mark-to-flag-alist): Add - recent. + (nnimap-mark-to-predicate-alist, nnimap-mark-to-flag-alist): + Add recent. * gnus-sum.el (gnus-recent-mark): New mark. (gnus-newsgroup-recent): New variable. @@ -14013,8 +14004,8 @@ 2001-08-12 Simon Josefsson - * mm-bodies.el (mm-decode-content-transfer-encoding): Returns - whether successful decoding took place. Add doc. + * mm-bodies.el (mm-decode-content-transfer-encoding): + Returns whether successful decoding took place. Add doc. 2001-08-12 Simon Josefsson Suggested by Per Abrahamsen @@ -14051,8 +14042,8 @@ 2001-08-10 02:00:00 ShengHuo ZHU - * gnus-ml.el (turn-on-gnus-mailing-list-mode): Use - gnus-group-find-parameter. Suggested by Janne Rinta-Manty + * gnus-ml.el (turn-on-gnus-mailing-list-mode): + Use gnus-group-find-parameter. Suggested by Janne Rinta-Manty . * mail-source.el (mail-source-movemail): The error buffer is @@ -14065,8 +14056,8 @@ 2001-08-09 15:00:00 ShengHuo ZHU - * nndraft.el (nndraft-request-group): Use - nndraft-auto-save-file-name. + * nndraft.el (nndraft-request-group): + Use nndraft-auto-save-file-name. 2001-08-09 Simon Josefsson @@ -14091,8 +14082,8 @@ 2001-08-09 Simon Josefsson - * message.el (message-get-reply-headers): Fix string. Suggested by - Christoph Conrad . + * message.el (message-get-reply-headers): Fix string. + Suggested by Christoph Conrad . 2001-08-08 15:00:00 ShengHuo ZHU @@ -14107,8 +14098,8 @@ 2001-08-04 Nuutti Kotivuori - * gnus-sum.el (gnus-summary-show-article): Call - gnus-summary-update-secondary-secondary-mark. + * gnus-sum.el (gnus-summary-show-article): + Call gnus-summary-update-secondary-secondary-mark. * gnus-sum.el (gnus-summary-edit-article-done): Ditto. * gnus-sum.el (gnus-summary-reparent-thread): Ditto. @@ -14131,8 +14122,8 @@ 2001-08-06 Florian Weimer - * message.el (message-indent-citation): Use - `message-yank-cited-prefix' for empty lines. + * message.el (message-indent-citation): + Use `message-yank-cited-prefix' for empty lines. 2001-08-05 Florian Weimer @@ -14141,8 +14132,8 @@ 2001-08-05 Nuutti Kotivuori (tiny change) - * gnus-cache.el (gnus-cache-possibly-enter-article): Use - gnus-cache-fully-p. + * gnus-cache.el (gnus-cache-possibly-enter-article): + Use gnus-cache-fully-p. 2001-08-04 Simon Josefsson @@ -14152,7 +14143,7 @@ 2001-08-04 Simon Josefsson * gnus-cache.el (gnus-cache-possibly-enter-article): Revert. - (gnus-cache-passively-or-fully-p): Removed. + (gnus-cache-passively-or-fully-p): Remove. (gnus-cache-fully-p): Fix it. * mm-view.el (mm-pkcs7-signed-magic): Support more ASN.1 lengths. @@ -14180,8 +14171,8 @@ 2001-08-04 10:00:00 ShengHuo ZHU - * gnus-art.el (gnus-mime-security-verify-or-decrypt): Insert - before remove. + * gnus-art.el (gnus-mime-security-verify-or-decrypt): + Insert before remove. (gnus-mime-security-show-details): Ditto. 2001-08-04 Kai Großjohann @@ -14228,7 +14219,7 @@ 2001-08-02 Simon Josefsson - * smime.el (smime-extra-arguments): Removed. + * smime.el (smime-extra-arguments): Remove. (smime-call-openssl-region): Don't use it. 2001-08-02 Simon Josefsson @@ -14236,8 +14227,8 @@ * smime.el (smime-sign-region): Handle stderr. (smime-encrypt-region): Ditto. - * mm-view.el (mm-pkcs7-signed-magic): Make it a regexp. Don't - match the ASN.1 length bytes. + * mm-view.el (mm-pkcs7-signed-magic): Make it a regexp. + Don't match the ASN.1 length bytes. (mm-pkcs7-enveloped-magic): Ditto. (mm-view-pkcs7-get-type): Don't regexp quote. @@ -14305,8 +14296,8 @@ * smime.el (smime-call-openssl-region): Revert previous change, just pass on buf to `call-process-region'. - (smime-verify-region): Doc fix. Don't message stuff. Use - `smime-new-details-buffer'. Inserts error messages into buffer. + (smime-verify-region): Doc fix. Don't message stuff. + Use `smime-new-details-buffer'. Inserts error messages into buffer. (smime-noverify-region): Ditto. (smime-decrypt-region): Ditto. Handles stderr separately. (smime-verify-buffer, smime-noverify-buffer) @@ -14321,8 +14312,8 @@ 2001-07-30 12:00:00 ShengHuo ZHU - * gnus-art.el (gnus-mime-save-part-and-strip): Save - gnus-article-mime-handles. + * gnus-art.el (gnus-mime-save-part-and-strip): + Save gnus-article-mime-handles. 2001-07-29 Simon Josefsson @@ -14380,8 +14371,8 @@ * gnus.el (gnus-summary-line-format): Mention `gnus-sum-thread-*' for %B spec. - * gnus-sum.el (gnus-summary-prepare-threads): If - gnus-sum-thread-tree-root is nil, use subject instead. + * gnus-sum.el (gnus-summary-prepare-threads): + If gnus-sum-thread-tree-root is nil, use subject instead. (gnus-sum-thread-tree-root, gnus-sum-thread-tree-single-indent) (gnus-sum-thread-tree-vertical, gnus-sum-thread-tree-indent) (gnus-sum-thread-tree-leaf-with-other) @@ -14407,16 +14398,16 @@ 2001-07-27 12:00:00 ShengHuo ZHU - * nnfolder.el (nnfolder-request-accept-article): Bind - nntp-server-buffer. + * nnfolder.el (nnfolder-request-accept-article): + Bind nntp-server-buffer. * nnmail.el (nnmail-parse-active): Read from buffer instead of nntp-server-buffer. 2001-07-27 11:00:00 ShengHuo ZHU - * message.el (message-check-news-header-syntax): Use - message-post-method. + * message.el (message-check-news-header-syntax): + Use message-post-method. (message-send-news): Bind message-post-method. 2001-07-27 07:00:00 ShengHuo ZHU @@ -14428,8 +14419,8 @@ 2001-07-26 22:00:00 ShengHuo ZHU - * nnfolder.el (nnfolder-request-accept-article): Replace - nnfolder-request-list. + * nnfolder.el (nnfolder-request-accept-article): + Replace nnfolder-request-list. 2001-07-27 Simon Josefsson @@ -14444,8 +14435,8 @@ * gnus-art.el (gnus-mm-display-part): Narrow to point if eobp. - * message.el (message-set-auto-save-file-name): More - poor-system-types. + * message.el (message-set-auto-save-file-name): + More poor-system-types. * mailcap.el (mailcap-parse-mimetypes): poor-system-types. @@ -14489,8 +14480,8 @@ 2001-07-25 22:22:22 Raymond Scholz - * nnmail.el (nnmail-split-fancy-with-parent-ignore-groups): New - variable. + * nnmail.el (nnmail-split-fancy-with-parent-ignore-groups): + New variable. (nnmail-split-fancy-with-parent): Ignore certain groups. 2001-07-25 11:00:00 ShengHuo ZHU @@ -14574,8 +14565,8 @@ 2001-07-23 Katsumi Yamaoka - * gnus-start.el (gnus-setup-news): Call - `gnus-check-bogus-newsgroups' just after the native server is + * gnus-start.el (gnus-setup-news): + Call `gnus-check-bogus-newsgroups' just after the native server is opened. 2001-07-23 Kai Großjohann @@ -14614,8 +14605,8 @@ * mm-util.el (mm-read-coding-system): Take two arguments. - * gnus-sum.el (gnus-summary-show-article): Use - mm-read-coding-system. + * gnus-sum.el (gnus-summary-show-article): + Use mm-read-coding-system. * gnus-art.el (article-de-quoted-unreadable): (article-de-base64-unreadable, article-wash-html): @@ -14631,8 +14622,8 @@ * nntp.el (nntp-request-newgroups): Use UTC date for NEWGROUPS command. - * gnus-start.el (gnus-find-new-newsgroups): Use - `message-make-date' instead of `current-time-string'. + * gnus-start.el (gnus-find-new-newsgroups): + Use `message-make-date' instead of `current-time-string'. (gnus-ask-server-for-new-groups): Ditto. (gnus-check-first-time-used): Ditto. @@ -14757,7 +14748,7 @@ 2001-07-12 Björn Torkelsson - * gnus-srvr.el (gnus-browse-make-menu-bar): Changed one of the + * gnus-srvr.el (gnus-browse-make-menu-bar): Change one of the Browse->Next entries to Browse->Prev. 2001-07-11 22:00:00 ShengHuo ZHU @@ -15078,8 +15069,8 @@ 2001-06-15 09:00:00 ShengHuo ZHU - * gnus-art.el (article-strip-multiple-blank-lines): Use - delete-region instead of replace-match. + * gnus-art.el (article-strip-multiple-blank-lines): + Use delete-region instead of replace-match. 2001-06-14 16:00:00 ShengHuo ZHU @@ -15160,8 +15151,8 @@ 2001-06-05 Alex Schroeder - * mm-decode.el (mm-handle-set-external-undisplayer): Don't - generate compiler warnings. + * mm-decode.el (mm-handle-set-external-undisplayer): + Don't generate compiler warnings. 2001-06-04 Hrvoje Niksic @@ -15346,7 +15337,7 @@ 2001-04-25 Per Abrahamsen - * mm-uu.el (mm-uu-configure-list): Fixed customize type. + * mm-uu.el (mm-uu-configure-list): Fix customize type. 2001-04-24 Hrvoje Niksic @@ -15416,7 +15407,7 @@ 2001-04-02 Nevin Kapur - * nnmail.el (nnmail-split-it): Added check for .* at the end of + * nnmail.el (nnmail-split-it): Add check for .* at the end of regexp in nnmail-split-fancy. 2001-04-10 Simon Josefsson @@ -15545,8 +15536,8 @@ 2001-03-31 00:03:42 Lars Magne Ingebrigtsen - * gnus-msg.el (gnus-inews-insert-draft-meta-information): Allow - lists of articles. + * gnus-msg.el (gnus-inews-insert-draft-meta-information): + Allow lists of articles. * gnus-uu.el (gnus-uu-digest-mail-forward): Mark as forwarded. @@ -15563,7 +15554,7 @@ forwarded. (gnus-summary-mail-forward): Clean up. - * gnus.el (gnus-article-mark-lists): Added forward. + * gnus.el (gnus-article-mark-lists): Add forward. * gnus-sum.el (gnus-forwarded-mark): New variable. (gnus-summary-prepare-threads): Use it. @@ -15593,14 +15584,14 @@ 2001-03-15 09:47:23 Lars Magne Ingebrigtsen - * nnultimate.el (nnultimate-retrieve-headers): Understand - long-form month names. + * nnultimate.el (nnultimate-retrieve-headers): + Understand long-form month names. 2001-03-18 23:00:00 ShengHuo ZHU * gnus-sum.el (gnus-summary-show-all-headers): - gnus-article-show-all-headers is broken. Use - gnus-summary-toggle-header instead. + gnus-article-show-all-headers is broken. + Use gnus-summary-toggle-header instead. * mml2015.el (mml2015-gpg-extract-from): No error. @@ -15612,8 +15603,8 @@ 2001-03-17 10:00:00 ShengHuo ZHU - * message.el (message-setup-fill-variables): Use - fill-paragraph-function. + * message.el (message-setup-fill-variables): + Use fill-paragraph-function. (message-fill-paragraph): Take an argument. (message-newline-and-reformat): Take another argument. @@ -15628,7 +15619,7 @@ 2001-03-16 Simon Josefsson - * nnimap.el (nnimap-dont-use-nov-p): Renamed from + * nnimap.el (nnimap-dont-use-nov-p): Rename from `nnimap-use-nov-p' (it really tested the negative). (nnimap-retrieve-headers): Use it. @@ -15661,16 +15652,16 @@ * mm-util.el, message.el, rfc2047.el, gnus-sum.el, gnus-score.el: Sync with Emacs 21 (tag EMACS_PRETEST_21_0_100). -;;Has been fixed -- zsh. -;;2001-03-05 Dave Love -;; -;; * mm-util.el (mm-mime-mule-charset-alist): Fix utf-8 case. -;; Move it after definition of mm-coding-system-p. -;; + ;;Has been fixed -- zsh. + ;;2001-03-05 Dave Love + ;; + ;; * mm-util.el (mm-mime-mule-charset-alist): Fix utf-8 case. + ;; Move it after definition of mm-coding-system-p. + ;; 2001-03-01 Dave Love - * mm-util.el (mm-inhibit-file-name-handlers): Add - image-file-handler. + * mm-util.el (mm-inhibit-file-name-handlers): + Add image-file-handler. 2001-02-11 Dave Love @@ -15704,8 +15695,8 @@ * gnus-score.el (gnus-score-find-bnews): Print messages on illegal SCORE paths. - * mm-decode.el (mm-dissect-buffer): Call - mail-extract-address-components only if necessary. + * mm-decode.el (mm-dissect-buffer): + Call mail-extract-address-components only if necessary. 2001-03-06 13:00:00 ShengHuo ZHU @@ -15715,8 +15706,8 @@ 2001-03-06 13:00:00 Adrian Aichner - * gnus-score.el (gnus-score-score-files-1): Use - gnus-kill-files-directory. + * gnus-score.el (gnus-score-score-files-1): + Use gnus-kill-files-directory. 2001-03-05 08:00:00 ShengHuo ZHU @@ -15726,8 +15717,8 @@ * mml.el (mml-preview): Disable local map. - * gnus-sum.el (gnus-summary-make-menu-bar): Make - gnus-article-post-menu here. + * gnus-sum.el (gnus-summary-make-menu-bar): + Make gnus-article-post-menu here. * gnus-art.el (gnus-article-make-menu-bar): Make summary-menu bar if it has not been made. @@ -15824,8 +15815,8 @@ * smiley.el (gnus-smiley-display): Don't do widening. - * smiley-ems.el (gnus-smiley-display): Don't do widening. Smiley - within body. + * smiley-ems.el (gnus-smiley-display): Don't do widening. + Smiley within body. * gnus-msg.el (gnus-inews-do-gcc): Activate group anyway. @@ -15911,7 +15902,7 @@ 2001-02-14 15:00:00 ShengHuo ZHU - * gnus.el (gnus-define-group-parameter): Improved. + * gnus.el (gnus-define-group-parameter): Improve. * gnus-sum.el (charset): Define parameter. (ignored-charsets): Ditto. @@ -15927,8 +15918,8 @@ 2001-02-13 21:00:00 ShengHuo ZHU - * gnus-sum.el (gnus-summary-read-group-1): Remove - gnus-summary-set-local-parameters. + * gnus-sum.el (gnus-summary-read-group-1): + Remove gnus-summary-set-local-parameters. (gnus-summary-setup-buffer): Put it here. 2001-02-13 20:00:00 ShengHuo ZHU @@ -15980,8 +15971,8 @@ (article-remove-leading-whitespace): New function. (gnus-article-make-menu-bar): Use it. - * gnus-sum.el (gnus-summary-wash-empty-map): Add - remove-leading-whitespace. + * gnus-sum.el (gnus-summary-wash-empty-map): + Add remove-leading-whitespace. (gnus-summary-wash-map): Bind strip-headers-in-body to `W a', because of conflict. @@ -16012,13 +16003,13 @@ 2001-02-08 Tommi Vainikainen (tiny change) - * gnus-sum.el (gnus-simplify-subject-re): Use - message-subject-re-regexp. + * gnus-sum.el (gnus-simplify-subject-re): + Use message-subject-re-regexp. 2001-02-08 18:00:00 ShengHuo ZHU - * nnmail.el (nnmail-expiry-target-group): Bind - nnmail-cache-accepted-message-ids to nil. + * nnmail.el (nnmail-expiry-target-group): + Bind nnmail-cache-accepted-message-ids to nil. * gnus-xmas.el (gnus-xmas-article-display-xface): Use binary coding system. @@ -16072,34 +16063,34 @@ 2001-02-06 02:00:00 ShengHuo ZHU - * gnus-xmas.el (gnus-xmas-article-menu-add): Add - gnus-article-commands-menu. + * gnus-xmas.el (gnus-xmas-article-menu-add): + Add gnus-article-commands-menu. * gnus-sum.el (gnus-summary-make-menu-bar): Don't share menu bar in Emacs. - * gnus-start.el (gnus-read-descriptions-file): Use - gnus-group-name-charset and gnus-group-charset-alist. + * gnus-start.el (gnus-read-descriptions-file): + Use gnus-group-name-charset and gnus-group-charset-alist. 2001-02-04 23:00:00 ShengHuo ZHU - * gnus-sum.el (gnus-summary-mark-as-processable): Understand - active region. + * gnus-sum.el (gnus-summary-mark-as-processable): + Understand active region. * gnus-start.el (gnus-group-change-level): Remove from both gnus-zombie-list and gnus-killed-list. 2001-02-04 11:00:00 ShengHuo ZHU - * gnus-start.el (gnus-subscribe-options-newsgroup-method): Add - gnus-subscribe-topics. + * gnus-start.el (gnus-subscribe-options-newsgroup-method): + Add gnus-subscribe-topics. * gnus-cus.el (gnus-extra-topic-parameters): Fix doc. 2001-02-04 11:00:00 ShengHuo ZHU - * gnus-art.el (gnus-article-make-menu-bar): Make - gnus-article-post-menu. + * gnus-art.el (gnus-article-make-menu-bar): + Make gnus-article-post-menu. * gnus-xmas.el (gnus-xmas-article-menu-add): Add post menu. @@ -16131,16 +16122,16 @@ 2001-01-31 Dave Love * gnus-art.el (gnus-article-x-face-command) - (gnus-treat-display-xface, gnus-treat-display-smileys): Add - :version. + (gnus-treat-display-xface, gnus-treat-display-smileys): + Add :version. 2001-01-26 Dave Love * mm-util.el (mm-multibyte-string-p): New. -;; * qp.el: Remove un-logged bogus changes from 2000-12-20. -;; (quoted-printable-encode-region): Doc fix. Don't call -;; string-as-multibyte on class. Clarify line-folding. + ;; * qp.el: Remove un-logged bogus changes from 2000-12-20. + ;; (quoted-printable-encode-region): Doc fix. Don't call + ;; string-as-multibyte on class. Clarify line-folding. (quoted-printable-encode-string): Make temp buffer inherit string's multibyteness. @@ -16170,7 +16161,7 @@ 2001-01-31 Karl Kleinpaste - * nnmail.el (nnmail-remove-list-identifiers): Improved. + * nnmail.el (nnmail-remove-list-identifiers): Improve. 2001-01-31 09:00:00 ShengHuo ZHU @@ -16317,8 +16308,8 @@ 2001-01-18 18:00:00 ShengHuo ZHU - * message.el (message-yank-original): Understand - universal-argument. + * message.el (message-yank-original): + Understand universal-argument. 2001-01-18 16:00:00 ShengHuo ZHU @@ -16349,8 +16340,8 @@ 2001-01-15 16:00:00 ShengHuo ZHU - * gnus-art.el (article-display-x-face): Use - gnus-original-article-buffer. + * gnus-art.el (article-display-x-face): + Use gnus-original-article-buffer. 2001-01-15 Jack Twilley @@ -16408,8 +16399,8 @@ (message-make-forward-subject-function) (message-send-mail-function, message-reply-to-function) (message-wide-reply-to-function, message-followup-to-function) - (message-distribution-function, message-auto-save-directory): Fix - :type. + (message-distribution-function, message-auto-save-directory): + Fix :type. * mml.el (mml-parse-1): Frob mml-confirmation-set when proceeding after warnings. Amend multipart warning message. @@ -16420,8 +16411,8 @@ compiling. (gnus-make-directory): Require nnmail. - * mm-decode.el (mm-inline-media-tests): Add - image/x-portable-bitmap. + * mm-decode.el (mm-inline-media-tests): + Add image/x-portable-bitmap. (mm-get-image): Grok pbm. 2001-01-10 Paul Stevenson @@ -16574,8 +16565,8 @@ 2000-12-30 00:17:38 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-summary-limit-include-expunged): Really - include the expunged articles. + * gnus-sum.el (gnus-summary-limit-include-expunged): + Really include the expunged articles. * gnus-group.el (gnus-group-sort-by-server): New function. @@ -16595,7 +16586,7 @@ * gnus-cite.el (gnus-article-fill-cited-article): Add a space after the fill prefix. - * gnus-sum.el (gnus-summary-make-menu-bar): Removed "Enter + * gnus-sum.el (gnus-summary-make-menu-bar): Remove "Enter score...". * gnus-art.el (gnus-ignored-headers): Hide more headers. @@ -16612,12 +16603,12 @@ 2000-12-29 01:00:00 ShengHuo ZHU - * mm-util.el (mm-enable-multibyte): Use - default-enable-multibyte-characters. + * mm-util.el (mm-enable-multibyte): + Use default-enable-multibyte-characters. (mm-enable-multibyte-mule4): Ditto. (mm-disable-multibyte): Test XEmacs. (mm-disable-multibyte-mule4): Ditto. - (mm-with-unibyte-current-buffer): Simplified. + (mm-with-unibyte-current-buffer): Simplify. (mm-with-unibyte-current-buffer-mule4): Ditto. 2000-12-28 19:44:56 Lars Magne Ingebrigtsen @@ -16672,8 +16663,8 @@ 2000-12-24 Simon Josefsson - * mm-bodies.el (mm-decode-content-transfer-encoding): Preserve - mailing list junk at end of part. + * mm-bodies.el (mm-decode-content-transfer-encoding): + Preserve mailing list junk at end of part. 2000-12-23 Simon Josefsson @@ -16768,7 +16759,7 @@ * mml.el (gnus-ems): Don't require. - * gnus.el (gnus-decode-rfc1522): Removed. + * gnus.el (gnus-decode-rfc1522): Remove. (gnus-set-text-properties): Define. 2000-12-21 09:00:00 ShengHuo ZHU @@ -16791,8 +16782,8 @@ 2000-12-20 17:00:00 ShengHuo ZHU * message.el (message-mail-user-agent): New variable. - (message-setup): Renamed to message-setup-1. Support - mail-user-agent. + (message-setup): Rename to message-setup-1. + Support mail-user-agent. (message-mail-user-agent): New function. (message-mail): Use it. (message-reply): Use it. @@ -16845,8 +16836,8 @@ 2000-12-20 03:00:00 ShengHuo ZHU - * mm-decode.el (mm-possibly-verify-or-decrypt): Use - mail-extract-a-c instead. Don't depend on Gnus. + * mm-decode.el (mm-possibly-verify-or-decrypt): + Use mail-extract-a-c instead. Don't depend on Gnus. * mml.el (gnus-ems): Require it. @@ -16959,11 +16950,11 @@ 2000-11-30 Dave Love - * message.el (message-auto-save-directory): Use - file-name-as-directory. - (message-set-auto-save-file-name): Create - message-auto-save-directory if necessary. - (message-replace-chars-in-string): Removed -- unused. + * message.el (message-auto-save-directory): + Use file-name-as-directory. + (message-set-auto-save-file-name): + Create message-auto-save-directory if necessary. + (message-replace-chars-in-string): Remove -- unused. (message-mail-alias-type): Customize. (message-headers): Remove duplicate defgroup. @@ -16981,17 +16972,17 @@ * nnlistserv.el: Ignore errors when requiring nnweb and avoid a compiler warning. -;2000-11-26 Dave Love -; -; * mm-uu.el (mm-uu-configure-list): Fix typo in :type. -; + ;2000-11-26 Dave Love + ; + ; * mm-uu.el (mm-uu-configure-list): Fix typo in :type. + ; 2000-11-23 Dave Love * uu-post.pbm, uu-decode.pbm: New files from XPMs. * mm-uu.el (uudecode): Require. - (uudecode-decode-region, uudecode-decode-region-external): Don't - autoload. + (uudecode-decode-region, uudecode-decode-region-external): + Don't autoload. (mm-uu-copy-to-buffer): Doc fix. (mm-uu-decode-function, mm-uu-binhex-decode-function): Doc, custom type fix. @@ -17001,7 +16992,7 @@ (mailcap): New group. (mailcap-download-directory): Customize. (mailcap-generate-unique-filename, mailcap-binary-suffixes) - (mailcap-temporary-directory): Deleted (unused). + (mailcap-temporary-directory): Delete (unused). (mailcap-unescape-mime-test): Simplify slightly. (mailcap-viewer-passes-test): Use functionp. (mailcap-command-p): Aliased to executable-find. @@ -17017,7 +17008,7 @@ * gnus-art.el (gnus-mime-button-map): Don't inherit from gnus-article-mode-map. -; (gnus-mime-button-menu): Use mouse-set-point. + ; (gnus-mime-button-menu): Use mouse-set-point. (gnus-insert-mime-button, gnus-mime-display-alternative) (gnus-mime-display-alternative): Don't use local-map property. @@ -17039,11 +17030,11 @@ * gnus-agent.el (gnus-agent-confirmation-function): Add :version. (gnus-agent-lib-file, gnus-agent-load-alist) - (gnus-agent-save-alist, gnus-agent-article-name): Use - expand-file-name. + (gnus-agent-save-alist, gnus-agent-article-name): + Use expand-file-name. - * gnus-group.el (gnus-group-name-charset-method-alist): Add - :version. + * gnus-group.el (gnus-group-name-charset-method-alist): + Add :version. (nnkiboze-score-file): Defvar when compiling. * gnus-start.el (gnus-read-newsrc-file): Add :version. @@ -17075,15 +17066,15 @@ * gnus-cache.el (gnus-cache-active-file): Don't use file-name-as-directory on directory. - (gnus-cache-file-name): Use expand-file-name, not concat. Don't - use file-name-as-directory on directory. + (gnus-cache-file-name): Use expand-file-name, not concat. + Don't use file-name-as-directory on directory. * time-date.el (timezone-make-date-arpa-standard): Autoload. (date-to-time): Use it. -; * message.el (message-mode) : -; : Use [:alnum:] in regexp range. -; (message-newline-and-reformat): Likewise. + ; * message.el (message-mode) : + ; : Use [:alnum:] in regexp range. + ; (message-newline-and-reformat): Likewise. (message-forward-as-mime, message-forward-ignored-headers) (message-buffer-naming-style, message-default-charset) (message-dont-reply-to-names, message-send-mail-partially-limit): @@ -17098,7 +17089,7 @@ * gnus-int.el (gnus-start-news-server): Use expand-file-name, not concat. - * pop3.el (pop3-version): Deleted. + * pop3.el (pop3-version): Delete. (pop3-make-date): New function, avoiding message-make-date. (pop3-munge-message-separator): Use it. @@ -17114,12 +17105,12 @@ * message.el (tool-bar-map): Defvar when compiling. * gnus-setup.el (running-xemacs, gnus-use-installed-tm) - (gnus-tm-lisp-directory): Deleted. - (gnus-use-installed-mailcrypt, gnus-emacs-lisp-directory): Use - (featurep 'xemacs). + (gnus-tm-lisp-directory): Delete. + (gnus-use-installed-mailcrypt, gnus-emacs-lisp-directory): + Use (featurep 'xemacs). (gnus-gnus-lisp-directory, gnus-mailcrypt-lisp-directory) - (gnus-mailcrypt-lisp-directory, gnus-bbdb-lisp-directory): Remove - version numbers from file names. + (gnus-mailcrypt-lisp-directory, gnus-bbdb-lisp-directory): + Remove version numbers from file names. 2000-11-08 Dave Love @@ -17188,16 +17179,16 @@ (uudecode-char-int): New alias, replacing char-int. (uudecode-decode-region): Don't call buffer-disable-undo. -; * mm-uu.el (mm-uu-configure): Unquote lambda. -; (mm-uu-configure-list): Doc fix. -; -; * earcon.el (running-xemacs): Don't define. -; -;2000-11-03 Stefan Monnier -; -; * message.el (message-font-lock-keywords): Match a final newline -; to help font-lock's multiline support. -; + ; * mm-uu.el (mm-uu-configure): Unquote lambda. + ; (mm-uu-configure-list): Doc fix. + ; + ; * earcon.el (running-xemacs): Don't define. + ; + ;2000-11-03 Stefan Monnier + ; + ; * message.el (message-font-lock-keywords): Match a final newline + ; to help font-lock's multiline support. + ; 2000-11-03 Dave Love * gnus-nocem.el (gnus-nocem-check-article-limit): Default to 500. @@ -17211,17 +17202,17 @@ * mm-decode.el (mm-display-external): Space-prefix temp buffer name. Don't disable undo explicitly. -;2000-11-02 Dave Love -; -; * message.el (message-font-lock-keywords): Use [:alpha:] for -; cite-prefix. + ;2000-11-02 Dave Love + ; + ; * message.el (message-font-lock-keywords): Use [:alpha:] for + ; cite-prefix. 2000-11-01 Dave Love * rfc2047.el (base64): Require unconditionally. (message-posting-charset): Defvar when compiling. - (rfc2047-encode-message-header, rfc2047-encodable-p): Require - message. + (rfc2047-encode-message-header, rfc2047-encodable-p): + Require message. * gnus-sum.el (nnoo): Require. (mm-uu-dissect): Autoload. @@ -17318,8 +17309,8 @@ 2000-10-09 Dave Love - * mail-source.el (mail-source-fetch-imap): Bind - default-enable-multibyte-characters rather than using + * mail-source.el (mail-source-fetch-imap): + Bind default-enable-multibyte-characters rather than using mm-disable-multibyte. 2000-10-05 Dave Love @@ -17356,8 +17347,8 @@ 2000-10-04 Dave Love - * smiley-ems.el (smiley-regexp-alist, smiley-update-cache): Use - pbm images. + * smiley-ems.el (smiley-regexp-alist, smiley-update-cache): + Use pbm images. * frown.pbm, smile.pbm, wry.pbm: New files. @@ -17452,7 +17443,7 @@ 2000-12-15 10:00:00 ShengHuo ZHU * pop3.el (pop3-movemail): Use binary. - (pop3-movemail-file-coding-system): Removed. + (pop3-movemail-file-coding-system): Remove. 2000-12-14 13:00:00 ShengHuo ZHU @@ -17512,8 +17503,8 @@ 2000-12-04 18:00:00 ShengHuo ZHU - * mail-source.el (mail-source-report-new-mail): Use - nnheader-run-at-time. + * mail-source.el (mail-source-report-new-mail): + Use nnheader-run-at-time. 2000-02-15 Andrew Innes @@ -17557,8 +17548,8 @@ 2000-12-01 Simon Josefsson - * mml-smime.el (mml-smime-verify): Don't modify MM buffer. Handle - more than one certificate inside PKCS#7 blob. Better security + * mml-smime.el (mml-smime-verify): Don't modify MM buffer. + Handle more than one certificate inside PKCS#7 blob. Better security information (clamed / actual sender, openssl output, certificates inside message). @@ -17567,8 +17558,8 @@ 2000-11-30 23:00:00 ShengHuo ZHU - * gnus-art.el (gnus-mime-security-button-line-format-alist): Add - ?d and ?D. + * gnus-art.el (gnus-mime-security-button-line-format-alist): + Add ?d and ?D. (gnus-mime-security-show-details-inline): New variable. (gnus-mime-security-show-details): Use them. (gnus-insert-mime-security-button): Ditto. @@ -17614,8 +17605,8 @@ 2000-11-22 Jan Nieuwenhuizen - * nnmh.el (nnmh-request-expire-articles): Implemented - expiry-target for nnmh backend. + * nnmh.el (nnmh-request-expire-articles): + Implemented expiry-target for nnmh backend. 2000-11-30 Simon Josefsson @@ -17681,8 +17672,8 @@ 2000-11-22 11:00:00 ShengHuo ZHU - * gnus-xmas.el (gnus-xmas-article-display-xface): Use - insert-buffer-substring. + * gnus-xmas.el (gnus-xmas-article-display-xface): + Use insert-buffer-substring. * message.el (message-send-mail): Use buffer-substring-no-properties. (message-send-news): Ditto. @@ -17777,13 +17768,13 @@ * mml-sec.el (mml-sign-alist): Update names. (mml-encrypt-alist): Ditto. - (mml-secure-part-smime-sign): Moved to mml-smime.el + (mml-secure-part-smime-sign): Move to mml-smime.el as `mml-smime-sign-query'. - (mml-secure-part-smime-encrypt-by-file): Moved to mml-smime.el as + (mml-secure-part-smime-encrypt-by-file): Move to mml-smime.el as `mml-smime-get-file-cert'. - (mml-secure-part-smime-encrypt-by-dns): Moved to mml-smime.el as + (mml-secure-part-smime-encrypt-by-dns): Move to mml-smime.el as `mml-smime-get-dns-cert'. - (mml-secure-part-smime-encrypt): Moved to mml-smime.el as + (mml-secure-part-smime-encrypt): Move to mml-smime.el as `mml-smime-encrypt-query'. (mml-smime-sign-buffer): Use mml-smime-sign. (mml-smime-encrypt-buffer): Use mml-smime-encrypt. @@ -17793,7 +17784,7 @@ (mml-smime-sign-query): (mml-smime-get-file-cert): (mml-smime-get-dns-cert): - (mml-smime-encrypt-query): Moved from mml-sec.el. + (mml-smime-encrypt-query): Move from mml-sec.el. 2000-11-16 Simon Josefsson @@ -17802,8 +17793,8 @@ 2000-11-17 14:21 ShengHuo ZHU - * message.el (message-setup-fill-variables): Use - message-cite-prefix-regexp. + * message.el (message-setup-fill-variables): + Use message-cite-prefix-regexp. (message-newline-and-reformat): Check the end of citation, leading WSP, break in the cite prefix. (message-fill-paragraph): New function. @@ -17844,8 +17835,8 @@ 2000-11-12 David Edmondson - * message.el (message-font-lock-keywords): Use - message-cite-prefix-regexp. + * message.el (message-font-lock-keywords): + Use message-cite-prefix-regexp. 2000-11-15 Kai Großjohann @@ -17939,15 +17930,15 @@ 2000-11-12 David Edmondson - * message.el (message-cite-prefix-regexp): Moved from gnus-cite.el + * message.el (message-cite-prefix-regexp): Move from gnus-cite.el and replace `.' with `\w' to allow for different syntax tables (from Vladimir Volovich). - * message.el (message-newline-and-reformat): Use - `message-cite-prefix-regexp'. - * gnus-cite.el (gnus-supercite-regexp): Use - `message-cite-prefix-regexp'. - * gnus-cite.el (gnus-cite-parse): Use - `message-cite-prefix-regexp'. + * message.el (message-newline-and-reformat): + Use `message-cite-prefix-regexp'. + * gnus-cite.el (gnus-supercite-regexp): + Use `message-cite-prefix-regexp'. + * gnus-cite.el (gnus-cite-parse): + Use `message-cite-prefix-regexp'. 2000-11-12 08:52:46 ShengHuo ZHU @@ -18124,8 +18115,8 @@ Verify S/MIME signature support. - * mm-decode.el (mm-inline-media-tests): Add - application/{x-,}pkcs7-signature. + * mm-decode.el (mm-inline-media-tests): + Add application/{x-,}pkcs7-signature. (mm-inlined-types): Ditto. (mm-automatic-display): Ditto. (mm-verify-function-alist): Ditto. Add name of method. @@ -18337,8 +18328,8 @@ * qp.el (quoted-printable-encode-region): Replace leading - when ultra safe. - * mml.el (mml-generate-mime-postprocess-function): Removed. - (mml-postprocess-alist): Removed. + * mml.el (mml-generate-mime-postprocess-function): Remove. + (mml-postprocess-alist): Remove. (mml-generate-mime-1): Use ultra-safe when sign. * mml2015.el (mml2015-fix-micalg): Uppercase. (mml2015-verify): Insert LF. @@ -18366,14 +18357,14 @@ 2000-10-30 08:17:46 ShengHuo ZHU - * gnus.el (gnus-server-browse-hashtb): Removed. + * gnus.el (gnus-server-browse-hashtb): Remove. * gnus-group.el (gnus-group-prepare-flat-list-dead): Use gnus-active. (gnus-group-insert-group-line-info): Use simplified method. * gnus-srvr.el (gnus-browse-foreign-server): Use gnus-set-active. 2000-10-30 01:52:40 ShengHuo ZHU - * gnus-util.el (gnus-union): Renamed from gnus-agent-union, and + * gnus-util.el (gnus-union): Rename from gnus-agent-union, and moved here. * gnus-agent.el (gnus-agent-fetch-headers): Use it. * gnus-group.el (gnus-group-prepare-flat): Use it. @@ -18450,9 +18441,9 @@ * mml-sec.el (mml-smime-encrypt-buffer): Support certfiles stored in buffers. - (mml-secure-dns-server): Removed. - (mml-secure-part-smime-encrypt-by-dns): Use DIG interface. Don't - write certificates to files. + (mml-secure-dns-server): Remove. + (mml-secure-part-smime-encrypt-by-dns): Use DIG interface. + Don't write certificates to files. * smime.el (smime-dns-server): New variable. (smime-mail-to-domain): diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 2efb16b8611..a2a3b4fa257 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el @@ -1787,29 +1787,29 @@ entries for git.gnus.org: (while (not (eobp)) (cond ((looking-at "^password: \"\\(.+\\)\"$") - (auth-source-macos-keychain-result-append - ret - keychain-generic - "secret" - (lexical-let ((v (match-string 1))) - (lambda () v)))) + (setq ret (auth-source-macos-keychain-result-append + ret + keychain-generic + "secret" + (lexical-let ((v (match-string 1))) + (lambda () v))))) ;; TODO: check if this is really the label ;; match 0x00000007 ="AppleID" ((looking-at "^[ ]+0x00000007 =\"\\(.+\\)\"") - (auth-source-macos-keychain-result-append - ret - keychain-generic - "label" - (match-string 1))) + (setq ret (auth-source-macos-keychain-result-append + ret + keychain-generic + "label" + (match-string 1)))) ;; match "crtr"="aapl" ;; match "svce"="AppleID" ((looking-at "^[ ]+\"\\([a-z]+\\)\"[^=]+=\"\\(.+\\)\"") - (auth-source-macos-keychain-result-append - ret - keychain-generic - (match-string 1) - (match-string 2)))) - (forward-line))) + (setq ret (auth-source-macos-keychain-result-append + ret + keychain-generic + (match-string 1) + (match-string 2))))) + (forward-line))) ;; return `ret' iff it has the :secret key (and (plist-get ret :secret) (list ret)))) diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index b08e523c440..e63737fa133 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -253,7 +253,13 @@ This can also be a list of the above values." (regexp :value ".*")) :group 'gnus-article-signature) -(defcustom gnus-hidden-properties '(invisible t intangible t) +(defcustom gnus-hidden-properties + (if (featurep 'xemacs) + ;; `intangible' is evil, but I keep it here in case it's useful. + '(invisible t intangible t) + ;; Emacs's command loop moves point out of invisible text anyway, so + ;; `intangible' is clearly not needed there. + '(invisible t)) "Property list to use for hiding text." :type 'sexp :group 'gnus-article-hiding) @@ -1620,8 +1626,11 @@ It is a string, such as \"PGP\". If nil, ask user." :type 'string :group 'mime-security) +(defvar idna-program) + (defcustom gnus-use-idna (and (condition-case nil (require 'idna) (file-error)) (mm-coding-system-p 'utf-8) + idna-program (executable-find idna-program)) "Whether IDNA decoding of headers is used when viewing messages. This requires GNU Libidn, and by default only enabled if it is found." @@ -1834,7 +1843,7 @@ Initialized from `text-mode-syntax-table.") (incf i))) i)) -(defun article-hide-headers (&optional arg delete) +(defun article-hide-headers (&optional _arg _delete) "Hide unwanted headers and possibly sort them as well." (interactive) ;; This function might be inhibited. @@ -2404,7 +2413,7 @@ long lines if and only if arg is positive." (if (and wash-face-p (memq 'face gnus-article-wash-types)) (gnus-delete-images 'face) (let ((from (message-fetch-field "from")) - face faces) + faces) (save-current-buffer (when (and wash-face-p (gnus-buffer-live-p gnus-original-article-buffer) @@ -2454,7 +2463,7 @@ long lines if and only if arg is positive." (gnus-delete-images 'xface) ;; Display X-Faces. (let ((from (message-fetch-field "from")) - x-faces face) + x-faces) (save-current-buffer (when (and wash-face-p (gnus-buffer-live-p gnus-original-article-buffer) @@ -2787,7 +2796,7 @@ summary buffer." "Find CID content in HANDLES and save it in a file in DIRECTORY. Return file name." (save-match-data - (let (file type) + (let (file) (catch 'found (dolist (handle handles) (cond @@ -3075,7 +3084,7 @@ images if any to the browser, and deletes them when exiting the group (gnus-summary-show-article))))) (defun article-hide-list-identifiers () - "Remove list identifies from the Subject header. + "Remove list identifiers from the Subject header. The `gnus-list-identifiers' variable specifies what to do." (interactive) (let ((inhibit-point-motion-hooks t) @@ -3389,7 +3398,7 @@ means show, 0 means toggle." 'hidden nil))) -(defun gnus-article-show-hidden-text (type &optional dummy) +(defun gnus-article-show-hidden-text (type &optional _dummy) "Show all hidden text of type TYPE. Originally it is hide instead of DUMMY." (let ((inhibit-read-only t) @@ -3428,7 +3437,7 @@ lines forward." gnus-article-date-headers) t)) -(defun article-date-ut (&optional type highlight date-position) +(defun article-date-ut (&optional type _highlight date-position) "Convert DATE date to TYPE in the current article. The default type is `ut'. See `gnus-article-date-headers' for possible values." @@ -3436,7 +3445,6 @@ possible values." (let* ((case-fold-search t) (inhibit-read-only t) (inhibit-point-motion-hooks t) - (first t) (visible-date (mail-fetch-field "Date")) pos date bface eface) (save-excursion @@ -3975,7 +3983,7 @@ This format is defined by the `gnus-article-time-format' variable." (set dir-var (file-name-directory result))) result)) -(defun gnus-article-archive-name (group) +(defun gnus-article-archive-name (_group) "Return the first instance of an \"Archive-name\" in the current buffer." (let ((case-fold-search t)) (when (re-search-forward "archive-name: *\\([^ \n\t]+\\)[ \t]*$" nil t) @@ -4207,7 +4215,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is default (or last-file default)))) -(defun gnus-plain-save-name (newsgroup headers &optional last-file) +(defun gnus-plain-save-name (newsgroup _headers &optional last-file) "Generate file name from NEWSGROUP, HEADERS, and optional LAST-FILE. If variable `gnus-use-long-file-name' is non-nil, it is ~/News/news.group. Otherwise, it is like ~/News/news/group/news." @@ -4220,7 +4228,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is default-directory)) gnus-article-save-directory))) -(defun gnus-sender-save-name (newsgroup headers &optional last-file) +(defun gnus-sender-save-name (_newsgroup headers &optional _last-file) "Generate file name from sender." (let ((from (mail-header-from headers))) (expand-file-name @@ -4417,6 +4425,8 @@ If variable `gnus-use-long-file-name' is non-nil, it is (substitute-key-definition 'undefined 'gnus-article-read-summary-keys gnus-article-mode-map) +(defvar gnus-article-send-map) + (gnus-define-keys (gnus-article-send-map "S" gnus-article-mode-map) "W" gnus-article-wide-reply-with-original) (if (featurep 'xemacs) @@ -4600,18 +4610,19 @@ commands: (forward-line line) (point))))))) -(defun gnus-article-prepare (article &optional all-headers header) +(defvar gnus-tmp-internal-hook) + +(defun gnus-article-prepare (article &optional all-headers _header) "Prepare ARTICLE in article mode buffer. ARTICLE should either be an article number or a Message-ID. If ARTICLE is an id, HEADER should be the article headers. If ALL-HEADERS is non-nil, no headers are hidden." - (save-excursion + (save-excursion ;FIXME: Shouldn't that be save-current-buffer? ;; Make sure we start in a summary buffer. (unless (derived-mode-p 'gnus-summary-mode) (set-buffer gnus-summary-buffer)) (setq gnus-summary-buffer (current-buffer)) - (let* ((gnus-article (if header (mail-header-number header) article)) - (summary-buffer (current-buffer)) + (let* ((summary-buffer (current-buffer)) (gnus-tmp-internal-hook gnus-article-internal-prepare-hook) (group gnus-newsgroup-name) result) @@ -4710,6 +4721,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (gnus-run-hooks 'gnus-article-prepare-hook) t)))))) +(defvar gnus-mime-display-attachment-buttons-in-header) + ;;;###autoload (defun gnus-article-prepare-display () "Make the current buffer look like a nice article." @@ -4833,6 +4846,16 @@ Valid specifiers include: General format specifiers can also be used. See Info node `(gnus)Formatting Variables'.") +(defvar gnus-tmp-type) +(defvar gnus-tmp-type-long) +(defvar gnus-tmp-name) +(defvar gnus-tmp-description) +(defvar gnus-tmp-id) +(defvar gnus-tmp-length) +(defvar gnus-tmp-dots) +(defvar gnus-tmp-info) +(defvar gnus-tmp-pressed-details) + (defvar gnus-mime-button-line-format-alist '((?t gnus-tmp-type ?s) (?T gnus-tmp-type-long ?s) @@ -5059,7 +5082,6 @@ If FILE is given, use it for the external part." The current article has a complicated MIME structure, giving up...")) (let* ((data (get-text-property (point) 'gnus-data)) (id (get-text-property (point) 'gnus-part)) - param (handles gnus-article-mime-handles)) (unless file (setq file @@ -5317,7 +5339,7 @@ Compressed files like .gz and .bz2 are decompressed." (text-property-any (point-min) (point) 'gnus-data handle))) (setq handle (get-text-property b 'gnus-data)) b)) - start contents charset coding-system) + start) (when handle (when (= b (prog1 btn @@ -5328,27 +5350,11 @@ Compressed files like .gz and .bz2 are decompressed." (setq b btn)) (if (and (not arg) (mm-handle-undisplayer handle)) (mm-remove-part handle) - (mm-with-unibyte-buffer - (mm-insert-part handle) - (setq contents - (or (mm-decompress-buffer (mm-handle-filename handle) nil t) - (buffer-string)))) (cond - ((not arg) - (unless (setq charset (mail-content-type-get - (mm-handle-type handle) 'charset)) - (unless (setq coding-system - (mm-with-unibyte-buffer - (insert contents) - (mm-find-buffer-file-coding-system))) - (setq charset gnus-newsgroup-charset)))) + ((not arg) nil) ((numberp arg) (if (mm-handle-undisplayer handle) - (mm-remove-part handle)) - (setq charset - (or (cdr (assq arg - gnus-summary-show-article-charset-alist)) - (mm-read-coding-system "Charset: ")))) + (mm-remove-part handle))) ((mm-handle-undisplayer handle) (mm-remove-part handle))) (goto-char start) @@ -5458,7 +5464,6 @@ specified charset." (interactive) (gnus-article-check-buffer) (let* ((handle (or handle (get-text-property (point) 'gnus-data))) - (mm-user-display-methods nil) (mm-inlined-types nil) (mail-parse-charset gnus-newsgroup-charset) (mail-parse-ignored-charsets @@ -5826,11 +5831,12 @@ all parts." (when gnus-break-pages (gnus-narrow-to-page)))) -(defun gnus-insert-mime-button (handle gnus-tmp-id &optional displayed) +(defun gnus-insert-mime-button (handle id &optional displayed) (let ((gnus-tmp-name (or (mm-handle-filename handle) (mail-content-type-get (mm-handle-type handle) 'url) "")) + (gnus-tmp-id id) (gnus-tmp-type (mm-handle-media-type handle)) (gnus-tmp-description (or (mm-handle-description handle) "")) (gnus-tmp-dots @@ -5881,7 +5887,7 @@ all parts." "hide" "show") (aref gnus-down-mouse-3 0)))))) -(defun gnus-widget-press-button (elems el) +(defun gnus-widget-press-button (elems _el) (goto-char (widget-get elems :from)) (gnus-article-press-button)) @@ -5899,8 +5905,7 @@ all parts." ;; may change the point. So we set the window point. (set-window-point window point))) (let ((handles ihandles) - (inhibit-read-only t) - handle) + (inhibit-read-only t)) (cond (handles) ((setq handles (mm-dissect-buffer nil gnus-article-loose-mime)) (when gnus-article-emulate-mime @@ -5977,7 +5982,7 @@ Since MIME attachments tend to be put at the end of an article, we may overlook them if there is a huge body. This option offers you a copy of all non-inlinable MIME parts as buttons shown in front of an article. If nil, don't show those extra buttons." - :version "24.5" + :version "25.1" :group 'gnus-article-mime :type 'boolean) @@ -6132,7 +6137,7 @@ If nil, don't show those extra buttons." (let* ((preferred (or preferred (mm-preferred-alternative handles))) (ihandles handles) (point (point)) - handle (inhibit-read-only t) from props begend not-pref) + handle (inhibit-read-only t) from begend not-pref) (save-window-excursion (save-restriction (when ibegend @@ -6328,6 +6333,40 @@ Provided for backwards compatibility." (when image (gnus-add-image 'shr image)))) +(defun gnus-article-mime-handles (&optional alist id all) + (if alist + (let ((i 1) newid flat) + (dolist (handle alist flat) + (setq newid (append id (list i)) + i (1+ i)) + (if (stringp (car handle)) + (setq flat (nconc flat (gnus-article-mime-handles + (cdr handle) newid all))) + (delq (rassq handle all) all) + (setq flat (nconc flat (list (cons newid handle))))))) + (let ((flat (list nil))) + ;; Assume that elements of `gnus-article-mime-handle-alist' + ;; are in the decreasing order, but unnumbered subsidiaries + ;; in each element are in the increasing order. + (dolist (handle (reverse gnus-article-mime-handle-alist)) + (if (stringp (cadr handle)) + (setq flat (nconc flat (gnus-article-mime-handles + (cddr handle) (list (car handle)) flat))) + (delq (rassq (cdr handle) flat) flat) + (setq flat (nconc flat (list (cons (list (car handle)) + (cdr handle))))))) + (setq flat (cdr flat)) + (mapc (lambda (handle) + (if (cdar handle) + ;; This is a hidden (i.e. unnumbered) handle. + (progn + (setcar handle + (1+ (caar gnus-article-mime-handle-alist))) + (push handle gnus-article-mime-handle-alist)) + (setcar handle (caar handle)))) + flat) + flat))) + (defun gnus-mime-buttonize-attachments-in-header (&optional interactive) "Show attachments as buttons in the end of the header of an article. This function toggles the display when called interactively. Note that @@ -6335,108 +6374,70 @@ buttons to be added to the header are only the ones that aren't inlined in the body. Use `gnus-header-face-alist' to highlight buttons." (interactive (list t)) (gnus-with-article-buffer - (gmm-labels - ;; Function that returns a flattened version of - ;; `gnus-article-mime-handle-alist'. - ((flattened-alist - (&optional alist id all) - (if alist - (let ((i 1) newid flat) - (dolist (handle alist flat) - (setq newid (append id (list i)) - i (1+ i)) - (if (stringp (car handle)) - (setq flat (nconc flat (flattened-alist (cdr handle) - newid all))) - (delq (rassq handle all) all) - (setq flat (nconc flat (list (cons newid handle))))))) - (let ((flat (list nil))) - ;; Assume that elements of `gnus-article-mime-handle-alist' - ;; are in the decreasing order, but unnumbered subsidiaries - ;; in each element are in the increasing order. - (dolist (handle (reverse gnus-article-mime-handle-alist)) - (if (stringp (cadr handle)) - (setq flat (nconc flat (flattened-alist (cddr handle) - (list (car handle)) - flat))) - (delq (rassq (cdr handle) flat) flat) - (setq flat (nconc flat (list (cons (list (car handle)) - (cdr handle))))))) - (setq flat (cdr flat)) - (mapc (lambda (handle) - (if (cdar handle) - ;; This is a hidden (i.e. unnumbered) handle. - (progn - (setcar handle - (1+ (caar gnus-article-mime-handle-alist))) - (push handle gnus-article-mime-handle-alist)) - (setcar handle (caar handle)))) - flat) - flat)))) - (let ((case-fold-search t) buttons handle type st) - (save-excursion - (save-restriction - (widen) - (article-narrow-to-head) - ;; Header buttons exist? - (while (and (not buttons) - (re-search-forward "^attachments?:[\n ]+" nil t)) - (when (get-char-property (match-end 0) - 'gnus-button-attachment-extra) - (setq buttons (match-beginning 0)))) - (widen) + (let ((case-fold-search t) buttons handle type st) + (save-excursion + (save-restriction + (widen) + (article-narrow-to-head) + ;; Header buttons exist? + (while (and (not buttons) + (re-search-forward "^attachments?:[\n ]+" nil t)) + (when (get-char-property (match-end 0) + 'gnus-button-attachment-extra) + (setq buttons (match-beginning 0)))) + (widen) + (when buttons + ;; Delete header buttons. + (delete-region buttons (if (re-search-forward "^[^ ]" nil t) + (match-beginning 0) + (point-max)))) + (unless (and interactive buttons) + ;; Find buttons. + (setq buttons nil) + (dolist (button (gnus-article-mime-handles)) + (setq handle (cdr button) + type (mm-handle-media-type handle)) + (when (or (and (if (gnus-buffer-live-p gnus-summary-buffer) + (with-current-buffer gnus-summary-buffer + gnus-inhibit-images) + gnus-inhibit-images) + (string-match "\\`image/" type)) + (mm-inline-override-p handle) + (and (mm-handle-disposition handle) + (not (equal (car (mm-handle-disposition handle)) + "inline")) + (not (mm-attachment-override-p handle))) + (not (mm-automatic-display-p handle)) + (not (or (and (mm-inlinable-p handle) + (mm-inlined-p handle)) + (mm-automatic-external-display-p type)))) + (push button buttons))) (when buttons - ;; Delete header buttons. - (delete-region buttons (if (re-search-forward "^[^ ]" nil t) - (match-beginning 0) - (point-max)))) - (unless (and interactive buttons) - ;; Find buttons. - (setq buttons nil) - (dolist (button (flattened-alist)) - (setq handle (cdr button) - type (mm-handle-media-type handle)) - (when (or (and (if (gnus-buffer-live-p gnus-summary-buffer) - (with-current-buffer gnus-summary-buffer - gnus-inhibit-images) - gnus-inhibit-images) - (string-match "\\`image/" type)) - (mm-inline-override-p handle) - (and (mm-handle-disposition handle) - (not (equal (car (mm-handle-disposition handle)) - "inline")) - (not (mm-attachment-override-p handle))) - (not (mm-automatic-display-p handle)) - (not (or (and (mm-inlinable-p handle) - (mm-inlined-p handle)) - (mm-automatic-external-display-p type)))) - (push button buttons))) - (when buttons - ;; Add header buttons. - (article-goto-body) - (forward-line -1) - (narrow-to-region (point) (point)) - (insert "Attachment" (if (cdr buttons) "s" "") ":") - (dolist (button (nreverse buttons)) - (setq st (point)) - (insert " ") - (mm-handle-set-undisplayer - (setq handle (copy-sequence (cdr button))) nil) - (gnus-insert-mime-button handle (car button)) - (skip-chars-backward "\t\n ") - (delete-region (point) (point-max)) - (when (> (current-column) (window-width)) - (goto-char st) - (insert "\n") - (end-of-line))) - (insert "\n") - (dolist (ovl (gnus-overlays-in (point-min) (point))) - (gnus-overlay-put ovl 'gnus-button-attachment-extra t) - (gnus-overlay-put ovl 'face nil)) - (let ((gnus-treatment-function-alist - '((gnus-treat-highlight-headers - gnus-article-highlight-headers)))) - (gnus-treat-article 'head)))))))))) + ;; Add header buttons. + (article-goto-body) + (forward-line -1) + (narrow-to-region (point) (point)) + (insert "Attachment" (if (cdr buttons) "s" "") ":") + (dolist (button (nreverse buttons)) + (setq st (point)) + (insert " ") + (mm-handle-set-undisplayer + (setq handle (copy-sequence (cdr button))) nil) + (gnus-insert-mime-button handle (car button)) + (skip-chars-backward "\t\n ") + (delete-region (point) (point-max)) + (when (> (current-column) (window-width)) + (goto-char st) + (insert "\n") + (end-of-line))) + (insert "\n") + (dolist (ovl (gnus-overlays-in (point-min) (point))) + (gnus-overlay-put ovl 'gnus-button-attachment-extra t) + (gnus-overlay-put ovl 'face nil)) + (let ((gnus-treatment-function-alist + '((gnus-treat-highlight-headers + gnus-article-highlight-headers)))) + (gnus-treat-article 'head))))))))) ;;; Article savers. @@ -6623,6 +6624,8 @@ specifies." (if header-line-format 1 0) 2))))))) +(defvar scroll-in-place) + (defun gnus-article-next-page-1 (lines) (condition-case () (let ((scroll-in-place nil) @@ -6710,7 +6713,9 @@ not have a face in `gnus-article-boring-faces'." (unless (derived-mode-p 'gnus-article-mode) (error "Command invoked outside of a Gnus article buffer"))) -(defun gnus-article-read-summary-keys (&optional arg key not-restore-window) +(defvar gnus-pick-mode) + +(defun gnus-article-read-summary-keys (&optional _arg key not-restore-window) "Read a summary buffer key sequence and execute it from the article buffer." (interactive "P") (gnus-article-check-buffer) @@ -6723,8 +6728,6 @@ not have a face in `gnus-article-boring-faces'." "An" "Ap" [?A (meta return)] [?A delete])) (nosave-in-article '("AS" "\C-d")) - (up-to-top - '("n" "Gn" "p" "Gp")) keys new-sum-point) (with-current-buffer gnus-article-current-summary (let (gnus-pick-mode) @@ -6883,6 +6886,7 @@ KEY is a string or a vector." (defvar gnus-agent-summary-mode) (defvar gnus-draft-mode) (defvar help-xref-stack-item) +(defvar help-xref-following) (defun gnus-article-describe-bindings (&optional prefix) "Show a list of all defined keys, and their definitions. @@ -7327,7 +7331,6 @@ groups." (let ((func gnus-article-edit-done-function) (buf (current-buffer)) (start (window-start)) - (p (point)) (winconf gnus-prev-winconf)) (widen) ;; Widen it in case that users narrowed the buffer. (funcall func arg) @@ -7956,7 +7959,7 @@ do the highlighting. See the documentation for those functions." (gnus-article-add-buttons) (gnus-article-add-buttons-to-head)) -(defun gnus-article-highlight-some (&optional force) +(defun gnus-article-highlight-some (&optional _force) "Highlight current article. This function calls `gnus-article-highlight-headers', `gnus-article-highlight-signature', and `gnus-article-add-buttons' to @@ -8259,9 +8262,11 @@ url is put as the `gnus-button-url' overlay property on the button." (error "Unknown news URL syntax")))) (list scheme server port group message-id articles))) +(defvar nntp-port-number) + (defun gnus-button-handle-news (url) "Fetch a news URL." - (destructuring-bind (scheme server port group message-id articles) + (destructuring-bind (_scheme server port group message-id _articles) (gnus-parse-news-url url) (cond (message-id @@ -8383,7 +8388,7 @@ url is put as the `gnus-button-url' overlay property on the button." (with-current-buffer gnus-summary-buffer (gnus-summary-refer-article message-id))) -(defun gnus-button-fetch-group (address &rest ignore) +(defun gnus-button-fetch-group (address &rest _ignore) "Fetch GROUP specified by ADDRESS." (when (string-match "\\`\\(nntp\\|news\\):\\(//\\)?\\(.*\\)\\'" address) @@ -8431,15 +8436,15 @@ url is put as the `gnus-button-url' overlay property on the button." (setq url (replace-regexp-in-string "\n" " " url)) (when (string-match "mailto:/*\\(.*\\)" url) (setq url (substring url (match-beginning 1) nil))) - (let (to args subject func) - (setq args (gnus-url-parse-query-string + (let* ((args (gnus-url-parse-query-string (if (string-match "^\\?" url) (substring url 1) (if (string-match "^\\([^?]+\\)\\?\\(.*\\)" url) (concat "to=" (match-string 1 url) "&" (match-string 2 url)) - (concat "to=" url)))) - subject (cdr-safe (assoc "subject" args))) + (concat "to=" url))))) + (subject (cdr-safe (assoc "subject" args))) + func) (gnus-msg-mail) (while args (setq func (intern-soft (concat "message-goto-" (downcase (caar args))))) @@ -8496,7 +8501,7 @@ url is put as the `gnus-button-url' overlay property on the button." :action 'gnus-button-prev-page :button-keymap gnus-prev-page-map))) -(defun gnus-button-next-page (&optional args more-args) +(defun gnus-button-next-page (&optional _args _more-args) "Go to the next page." (interactive) (let ((win (selected-window))) @@ -8504,7 +8509,7 @@ url is put as the `gnus-button-url' overlay property on the button." (gnus-article-next-page) (select-window win))) -(defun gnus-button-prev-page (&optional args more-args) +(defun gnus-button-prev-page (&optional _args _more-args) "Go to the prev page." (interactive) (let ((win (selected-window))) @@ -8532,7 +8537,7 @@ url is put as the `gnus-button-url' overlay property on the button." :action 'gnus-button-next-page :button-keymap gnus-next-page-map))) -(defun gnus-article-button-next-page (arg) +(defun gnus-article-button-next-page (_arg) "Go to the next page." (interactive "P") (let ((win (selected-window))) @@ -8540,7 +8545,7 @@ url is put as the `gnus-button-url' overlay property on the button." (gnus-article-next-page) (select-window win))) -(defun gnus-article-button-prev-page (arg) +(defun gnus-article-button-prev-page (_arg) "Go to the prev page." (interactive "P") (let ((win (selected-window))) @@ -8591,20 +8596,31 @@ For example: (defvar gnus-inhibit-article-treatments nil) -(defun gnus-treat-article (gnus-treat-condition - &optional part-number total-parts gnus-treat-type) - (let ((gnus-treat-length (- (point-max) (point-min))) +;; Dynamic variables. +(defvar part-number) ;FIXME: Lacks a "gnus-" prefix. +(defvar total-parts) ;FIXME: Lacks a "gnus-" prefix. +(defvar gnus-treat-type) +(defvar gnus-treat-condition) +(defvar gnus-treat-length) + +(defun gnus-treat-article (condition + &optional part-num total type) + (let ((gnus-treat-condition condition) + (part-number part-num) + (total-parts total) + (gnus-treat-type type) + (gnus-treat-length (- (point-max) (point-min))) (alist gnus-treatment-function-alist) (article-goto-body-goes-to-point-min-p t) (treated-type - (or (not gnus-treat-type) + (or (not type) (catch 'found (let ((list gnus-article-treat-types)) (while list - (when (string-match (pop list) gnus-treat-type) + (when (string-match (pop list) type) (throw 'found t))))))) (highlightp (gnus-visual-p 'article-highlight 'highlight)) - val elem) + val) (gnus-run-hooks 'gnus-part-display-hook) (dolist (elem alist) (setq val @@ -8622,13 +8638,6 @@ For example: (save-restriction (funcall (cadr elem))))))) -;; Dynamic variables. -(defvar part-number) -(defvar total-parts) -(defvar gnus-treat-type) -(defvar gnus-treat-condition) -(defvar gnus-treat-length) - (defun gnus-treat-predicate (val) (cond ((null val) @@ -8877,7 +8886,7 @@ For example: (gnus-mime-security-show-details handle) (gnus-mime-security-verify-or-decrypt handle)))) -(defun gnus-insert-mime-security-button (handle &optional displayed) +(defun gnus-insert-mime-security-button (handle &optional _displayed) (let* ((protocol (mm-handle-multipart-ctl-parameter handle 'protocol)) (gnus-tmp-type (concat @@ -8925,7 +8934,7 @@ For example: :action 'gnus-widget-press-button :button-keymap gnus-mime-security-button-map :help-echo - (lambda (widget) + (lambda (_widget) ;; Needed to properly clear the message due to a bug in ;; wid-edit (XEmacs only). (when (boundp 'help-echo-owns-message) diff --git a/lisp/gnus/gnus-bookmark.el b/lisp/gnus/gnus-bookmark.el index 91d5c769e25..e5d218e0393 100644 --- a/lisp/gnus/gnus-bookmark.el +++ b/lisp/gnus/gnus-bookmark.el @@ -251,7 +251,7 @@ So the cdr of each bookmark is an alist too.") (interactive) (save-excursion (save-window-excursion - ;; Avoir warnings? + ;; Avoid warnings? ;; (message "Saving Gnus bookmarks to file %s..." gnus-bookmark-default-file) (set-buffer (get-buffer-create " *Gnus bookmarks*")) (erase-buffer) diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el index c47976bdcfa..ec016eeeb77 100644 --- a/lisp/gnus/gnus-cloud.el +++ b/lisp/gnus/gnus-cloud.el @@ -30,6 +30,7 @@ (defgroup gnus-cloud nil "Syncing Gnus data via IMAP." + :version "25.1" :group 'gnus) (defcustom gnus-cloud-synced-files @@ -39,6 +40,7 @@ (:directory "~/News" :match ".*.SCORE\\'")) "List of file regexps that should be kept up-to-date via the cloud." :group 'gnus-cloud + ;; FIXME this type does not match the default. Nor does the documentation. :type '(repeat regexp)) (defvar gnus-cloud-group-name "*Emacs Cloud*") @@ -125,7 +127,7 @@ (let ((spec (ignore-errors (read (current-buffer)))) length) (when (and (consp spec) - (memq (plist-get spec :type) '(:file :data :deleta))) + (memq (plist-get spec :type) '(:file :data :delete))) (setq length (plist-get spec :length)) (push (append spec (list diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el index 5432d4da9f1..2a286dabcbc 100644 --- a/lisp/gnus/gnus-delay.el +++ b/lisp/gnus/gnus-delay.el @@ -98,7 +98,7 @@ DELAY is a string, giving the length of the time. Possible values are: (setq hour (string-to-number (match-string 1 delay)) minute (string-to-number (match-string 2 delay))) ;; Use current time, except... - (setq deadline (apply 'vector (decode-time (current-time)))) + (setq deadline (apply 'vector (decode-time))) ;; ... for minute and hour. (aset deadline 1 minute) (aset deadline 2 hour) @@ -153,7 +153,7 @@ DELAY is a string, giving the length of the time. Possible values are: (when (gnus-group-entry group) (gnus-activate-group group) (add-hook 'message-send-hook - (lambda () (message-remove-header gnus-delay-header))) + (lambda () (message-remove-header gnus-delay-header)) t) (setq articles (nndraft-articles)) (while (setq article (pop articles)) (gnus-request-head article group) diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el index e0d1578f49a..8d08cd66463 100644 --- a/lisp/gnus/gnus-fun.el +++ b/lisp/gnus/gnus-fun.el @@ -42,19 +42,19 @@ (defcustom gnus-x-face-omit-files nil "Regexp to match faces in `gnus-x-face-directory' to be omitted." - :version "24.5" + :version "25.1" :group 'gnus-fun :type 'string) (defcustom gnus-face-directory (expand-file-name "faces" gnus-directory) "*Directory where Face PNG files are stored." - :version "24.5" + :version "25.1" :group 'gnus-fun :type 'directory) (defcustom gnus-face-omit-files nil "Regexp to match faces in `gnus-face-directory' to be omitted." - :version "24.5" + :version "25.1" :group 'gnus-fun :type 'string) @@ -239,7 +239,7 @@ Files matching `gnus-face-omit-files' are not considered." ;;;###autoload (defun gnus-insert-random-face-header () - "Insert a randome Face header from `gnus-face-directory'." + "Insert a random Face header from `gnus-face-directory'." (gnus--insert-random-face-with-type 'gnus-random-face 'Face)) (defface gnus-x-face '((t (:foreground "black" :background "white"))) diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el index 9027c53a6f3..a9e4a24c93b 100644 --- a/lisp/gnus/gnus-icalendar.el +++ b/lisp/gnus/gnus-icalendar.el @@ -141,12 +141,13 @@ (defmethod gnus-icalendar-event:start ((event gnus-icalendar-event)) (format-time-string "%Y-%m-%d %H:%M" (gnus-icalendar-event:start-time event))) -(defun gnus-icalendar-event--decode-datefield (ical field) - (let* ((date (icalendar--get-event-property ical field)) - (date-props (icalendar--get-event-property-attributes ical field)) - (tz (plist-get date-props 'TZID))) - - (date-to-time (timezone-make-date-arpa-standard date nil tz)))) +(defun gnus-icalendar-event--decode-datefield (event field zone-map) + (let* ((dtdate (icalendar--get-event-property event field)) + (dtdate-zone (icalendar--find-time-zone + (icalendar--get-event-property-attributes + event field) zone-map)) + (dtdate-dec (icalendar--decode-isodatetime dtdate nil dtdate-zone))) + (apply 'encode-time dtdate-dec))) (defun gnus-icalendar-event--find-attendee (ical name-or-email) (let* ((event (car (icalendar--all-events ical))) @@ -204,10 +205,11 @@ ("REQ-PARTICIPANT" 'required) ("OPT-PARTICIPANT" 'optional) (_ 'non-participant))) + (zone-map (icalendar--convert-all-timezones ical)) (args (list :method method :organizer organizer - :start-time (gnus-icalendar-event--decode-datefield event 'DTSTART) - :end-time (gnus-icalendar-event--decode-datefield event 'DTEND) + :start-time (gnus-icalendar-event--decode-datefield event 'DTSTART zone-map) + :end-time (gnus-icalendar-event--decode-datefield event 'DTEND zone-map) :rsvp (string= (plist-get (cadr attendee) 'RSVP) "TRUE") :participation-type participation-type :req-participants (car attendee-names) @@ -676,8 +678,9 @@ Gnus will only offer you the Accept/Tentative/Decline buttons for calendar events if any of your identities matches at least one RSVP participant. -Your identity is guessed automatically from the variables `user-full-name', -`user-mail-address', and `gnus-ignored-from-addresses'. +Your identity is guessed automatically from the variables +`user-full-name', `user-mail-address', +`gnus-ignored-from-addresses' and `message-alternative-emails'. If you need even more aliases you can define them here. It really only makes sense to define names or email addresses." @@ -703,6 +706,7 @@ These will be used to retrieve the RSVP information from ical events." (list user-full-name (regexp-quote user-mail-address) ; NOTE: these can be lists gnus-ignored-from-addresses ; already regexp-quoted + message-alternative-emails ; (mapcar #'regexp-quote gnus-icalendar-additional-identities))))) ;; TODO: make the template customizable diff --git a/lisp/gnus/gnus-notifications.el b/lisp/gnus/gnus-notifications.el index ee1083d8005..0729ea25c1a 100644 --- a/lisp/gnus/gnus-notifications.el +++ b/lisp/gnus/gnus-notifications.el @@ -92,9 +92,9 @@ Return a notification id if any, or t on success." :body subject :actions '("read" "Read") :on-action 'gnus-notifications-action - :app-icon (or photo-file - (gnus-funcall-no-warning - 'image-search-load-path "gnus/gnus.png")) + :app-icon (gnus-funcall-no-warning + 'image-search-load-path "gnus/gnus.png") + :image-path photo-file :app-name "Gnus" :category "email.arrived" :timeout gnus-notifications-timeout) diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index f3b81f77b50..92f8f041d8e 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -176,6 +176,7 @@ nnmairix groups are specifically excluded because they are ephemeral." (make-obsolete-variable 'gnus-registry-max-track-groups nil "23.4") (make-obsolete-variable 'gnus-registry-entry-caching nil "23.4") (make-obsolete-variable 'gnus-registry-trim-articles-without-groups nil "23.4") +(make-obsolete-variable 'gnus-registry-max-pruned-entries nil "24.4") (defcustom gnus-registry-track-extra '(subject sender recipient) "Whether the registry should track extra data about a message. @@ -231,7 +232,7 @@ the Bit Bucket." (defcustom gnus-registry-cache-file (nnheader-concat (or gnus-dribble-directory gnus-home-directory "~/") - ".gnus.registry.eioio") + ".gnus.registry.eieio") "File where the Gnus registry will be stored." :group 'gnus-registry :type 'file) @@ -242,12 +243,38 @@ the Bit Bucket." :type '(radio (const :format "Unlimited " nil) (integer :format "Maximum number: %v"))) -(defcustom gnus-registry-max-pruned-entries nil - "Maximum number of pruned entries in the registry, nil for unlimited." - :version "24.1" +(defcustom gnus-registry-prune-factor 0.1 + "When pruning, try to prune back to this factor less than the maximum size. + +In order to prevent constant pruning, we prune back to a number +somewhat less than the maximum size. This option controls +exactly how much less. For example, given a maximum size of +50000 and a prune factor of 0.1, the pruning process will try to +cut the registry back to \(- 50000 \(* 50000 0.1\)\) -> 45000 +entries. The pruning process is constrained by the presence of +\"precious\" entries." + :version "24.4" :group 'gnus-registry - :type '(radio (const :format "Unlimited " nil) - (integer :format "Maximum number: %v"))) + :type 'float) + +(defcustom gnus-registry-default-sort-function + #'gnus-registry-sort-by-creation-time + "Sort function to use when pruning the registry. + +Entries which sort to the front of the list will be pruned +first. + +This can slow pruning down. Set to nil to perform no sorting." + :version "24.4" + :group 'gnus-registry + :type 'symbol) + +(defun gnus-registry-sort-by-creation-time (l r) + "Sort older entries to front of list." + ;; Pruning starts from the front of the list. + (time-less-p + (cadr (assq 'creation-time r)) + (cadr (assq 'creation-time l)))) (defun gnus-registry-fixup-registry (db) (when db @@ -255,14 +282,12 @@ the Bit Bucket." (oset db :precious (append gnus-registry-extra-entries-precious '())) - (oset db :max-hard + (oset db :max-size (or gnus-registry-max-entries most-positive-fixnum)) (oset db :prune-factor - 0.1) - (oset db :max-soft - (or gnus-registry-max-pruned-entries - most-positive-fixnum)) + (or gnus-registry-prune-factor + 0.1)) (oset db :tracked (append gnus-registry-track-extra '(mark group keyword))) @@ -278,8 +303,8 @@ the Bit Bucket." "Gnus Registry" :file (or file gnus-registry-cache-file) ;; these parameters are set in `gnus-registry-fixup-registry' - :max-hard most-positive-fixnum - :max-soft most-positive-fixnum + :max-size most-positive-fixnum + :version registry-db-version :precious nil :tracked nil))) @@ -295,22 +320,27 @@ This is not required after changing `gnus-registry-cache-file'." (gnus-message 4 "Remaking the Gnus registry") (setq gnus-registry-db (gnus-registry-make-db)))) -(defun gnus-registry-read () - "Read the registry cache file." +(defun gnus-registry-load () + "Load the registry from the cache file." (interactive) (let ((file gnus-registry-cache-file)) (condition-case nil - (progn - (gnus-message 5 "Reading Gnus registry from %s..." file) - (setq gnus-registry-db - (gnus-registry-fixup-registry - (condition-case nil - (with-no-warnings - (eieio-persistent-read file 'registry-db)) - ;; Older EIEIO versions do not check the class name. - ('wrong-number-of-arguments - (eieio-persistent-read file))))) - (gnus-message 5 "Reading Gnus registry from %s...done" file)) + (gnus-registry-read file) + (file-error + ;; Fix previous mis-naming of the registry file. + (let ((old-file-name + (concat (file-name-sans-extension + gnus-registry-cache-file) + ".eioio"))) + (if (and (file-exists-p old-file-name) + (yes-or-no-p + (format "Rename registry file from %s to %s? " + old-file-name file))) + (progn + (gnus-registry-read old-file-name) + (oset gnus-registry-db :file file) + (gnus-message 1 "Registry filename changed to %s" file)) + (gnus-registry-remake-db t)))) (error (gnus-message 1 @@ -318,6 +348,19 @@ This is not required after changing `gnus-registry-cache-file'." file) (gnus-registry-remake-db t))))) +(defun gnus-registry-read (file) + "Do the actual reading of the registry persistence file." + (gnus-message 5 "Reading Gnus registry from %s..." file) + (setq gnus-registry-db + (gnus-registry-fixup-registry + (condition-case nil + (with-no-warnings + (eieio-persistent-read file 'registry-db)) + ;; Older EIEIO versions do not check the class name. + ('wrong-number-of-arguments + (eieio-persistent-read file))))) + (gnus-message 5 "Reading Gnus registry from %s...done" file)) + (defun gnus-registry-save (&optional file db) "Save the registry cache file." (interactive) @@ -325,7 +368,8 @@ This is not required after changing `gnus-registry-cache-file'." (db (or db gnus-registry-db))) (gnus-message 5 "Saving Gnus registry (%d entries) to %s..." (registry-size db) file) - (registry-prune db) + (registry-prune + db gnus-registry-default-sort-function) ;; TODO: call (gnus-string-remove-all-properties v) on all elements? (eieio-persistent-save db file) (gnus-message 5 "Saving Gnus registry (size %d) to %s...done" @@ -1032,7 +1076,8 @@ only the last one's marks are returned." "Just like `registry-insert' but tries to prune on error." (when (registry-full db) (message "Trying to prune the registry because it's full") - (registry-prune db)) + (registry-prune + db gnus-registry-default-sort-function)) (registry-insert db id entry) entry) @@ -1090,7 +1135,7 @@ only the last one's marks are returned." (gnus-message 5 "Initializing the registry") (gnus-registry-install-hooks) (gnus-registry-install-shortcuts) - (gnus-registry-read)) + (gnus-registry-load)) ;; FIXME: Why autoload this function? ;;;###autoload @@ -1104,7 +1149,7 @@ only the last one's marks are returned." (add-hook 'nnmail-spool-hook 'gnus-registry-spool-action) (add-hook 'gnus-save-newsrc-hook 'gnus-registry-save) - (add-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read) + (add-hook 'gnus-read-newsrc-el-hook 'gnus-registry-load) (add-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)) @@ -1117,7 +1162,7 @@ only the last one's marks are returned." (remove-hook 'nnmail-spool-hook 'gnus-registry-spool-action) (remove-hook 'gnus-save-newsrc-hook 'gnus-registry-save) - (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read) + (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-load) (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids) (setq gnus-registry-enabled nil)) diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 766e7c26ac4..24c2b48e63a 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -442,6 +442,15 @@ See also `gnus-before-startup-hook'." :group 'gnus-newsrc :type 'hook) +(defcustom gnus-save-newsrc-file-check-timestamp nil + "Check the modification time of the newsrc.eld file before saving it. +When the newsrc.eld file is updated by multiple machines, +checking the file's modification time is a good way to avoid +overwriting updated data." + :version "25.1" + :group 'gnus-newsrc + :type 'boolean) + (defcustom gnus-save-newsrc-hook nil "A hook called before saving any of the newsrc files." :group 'gnus-newsrc @@ -1467,7 +1476,7 @@ newsgroup." "Check whether a group has been activated or not. If SCAN, request a scan of that group as well. If METHOD, use that select method instead of determining the method based on the -group name. If DONT-CHECK, don't check check whether the group +group name. If DONT-CHECK, don't check whether the group actually exists. If DONT-SUB-CHECK or DONT-CHECK, don't let the backend check whether the group actually exists." (let ((method (or method (inline (gnus-find-method-for-group group)))) @@ -2783,6 +2792,7 @@ If FORCE is non-nil, the .newsrc file is read." 'msdos-long-file-names (lambda () t)))) +(defvar gnus-save-newsrc-file-last-timestamp nil) (defun gnus-save-newsrc-file (&optional force) "Save .newsrc file." ;; Note: We cannot save .newsrc file if all newsgroups are removed @@ -2821,12 +2831,30 @@ If FORCE is non-nil, the .newsrc file is read." (erase-buffer) (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file) + ;; check timestamp of `gnus-current-startup-file'.eld against + ;; `gnus-save-newsrc-file-last-timestamp' + (when gnus-save-newsrc-file-check-timestamp + (let* ((checkfile (concat gnus-current-startup-file ".eld")) + (mtime (nth 5 (file-attributes checkfile)))) + (when (and gnus-save-newsrc-file-last-timestamp + (time-less-p gnus-save-newsrc-file-last-timestamp + mtime)) + (unless (y-or-n-p + (format "%s was updated externally after %s, save?" + checkfile + (format-time-string + "%c" + gnus-save-newsrc-file-last-timestamp))) + (error "Couldn't save %s: updated externally" checkfile))))) + (if gnus-save-startup-file-via-temp-buffer (let ((coding-system-for-write gnus-ding-file-coding-system) (standard-output (current-buffer))) (gnus-gnus-to-quick-newsrc-format) (gnus-run-hooks 'gnus-save-quick-newsrc-hook) - (save-buffer)) + (save-buffer) + (setq gnus-save-newsrc-file-last-timestamp + (nth 5 (file-attributes buffer-file-name)))) (let ((coding-system-for-write gnus-ding-file-coding-system) (version-control gnus-backup-startup-file) (startup-file (concat gnus-current-startup-file ".eld")) @@ -2861,7 +2889,9 @@ If FORCE is non-nil, the .newsrc file is read." ;; Replace the existing startup file with the temp file. (rename-file working-file startup-file t) - (gnus-set-file-modes startup-file setmodes))) + (gnus-set-file-modes startup-file setmodes) + (setq gnus-save-newsrc-file-last-timestamp + (nth 5 (file-attributes startup-file))))) (condition-case nil (delete-file working-file) (file-error nil))))) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index c0e099ba3ca..29f693fa9ce 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -7334,6 +7334,7 @@ If FORCE (the prefix), also save the .newsrc file(s)." (gnus-group-is-exiting-without-update-p t) (quit-config (gnus-group-quit-config group))) (when (or no-questions + (gnus-ephemeral-group-p group) gnus-expert-user (gnus-y-or-n-p "Discard changes to this group and exit? ")) (gnus-async-halt-prefetch) @@ -9333,7 +9334,7 @@ Obeys the standard process/prefix convention." ((gnus-group-read-ephemeral-group (setq vgroup (format "nnvirtual:%s-%s" gnus-newsgroup-name - (format-time-string "%Y%m%dT%H%M%S" (current-time)))) + (format-time-string "%Y%m%dT%H%M%S"))) `(nnvirtual ,vgroup (nnvirtual-component-groups ,groups)) t (cons (current-buffer) 'summary))) @@ -9869,6 +9870,7 @@ installed for this command to work." (if (not (and (condition-case nil (require 'idna) (file-error)) (mm-coding-system-p 'utf-8) + (symbol-value 'idna-program) (executable-find (symbol-value 'idna-program)))) (gnus-message 5 "GNU Libidn not installed properly (`idn' or `idna.el' missing)") @@ -10444,13 +10446,19 @@ This will be the case if the article has both been mailed and posted." (when (and (not (memq article es)) (gnus-data-find article)) (gnus-summary-mark-article article gnus-canceled-mark) - (run-hook-with-args 'gnus-summary-article-expire-hook - 'delete - (gnus-data-header - (assoc article (gnus-data-list nil))) - gnus-newsgroup-name - nil - nil))))))) + (run-hook-with-args + 'gnus-summary-article-expire-hook + 'delete + (gnus-data-header (assoc article (gnus-data-list nil))) + gnus-newsgroup-name + (cond + ((stringp nnmail-expiry-target) nnmail-expiry-target) + ((eq nnmail-expiry-target 'delete) nil) + (t + (let ((rescall (funcall nnmail-expiry-target + gnus-newsgroup-name))) + (if (stringp rescall) rescall nil)))) + nil))))))) (gnus-message 6 "Expiring articles...done"))))) (defun gnus-summary-expire-articles-now () diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index fe4d707be2e..526aa7785ca 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -313,14 +313,10 @@ Symbols are also allowed; their print names are used instead." ;; Every version of Emacs Gnus supports has built-in float-time. ;; The featurep test silences an irritating compiler warning. -(eval-and-compile +(defalias 'gnus-float-time (if (or (featurep 'emacs) (fboundp 'float-time)) - (defalias 'gnus-float-time 'float-time) - (defun gnus-float-time (&optional time) - "Convert time value TIME to a floating point number. -TIME defaults to the current time." - (time-to-seconds (or time (current-time)))))) + 'float-time 'time-to-seconds)) ;;; Keymap macros. @@ -389,19 +385,20 @@ TIME defaults to the current time." (defun gnus-seconds-today () "Return the number of seconds passed today." - (let ((now (decode-time (current-time)))) + (let ((now (decode-time))) (+ (car now) (* (car (cdr now)) 60) (* (car (nthcdr 2 now)) 3600)))) (defun gnus-seconds-month () "Return the number of seconds passed this month." - (let ((now (decode-time (current-time)))) + (let ((now (decode-time))) (+ (car now) (* (car (cdr now)) 60) (* (car (nthcdr 2 now)) 3600) (* (- (car (nthcdr 3 now)) 1) 3600 24)))) (defun gnus-seconds-year () "Return the number of seconds passed this year." - (let ((now (decode-time (current-time))) - (days (format-time-string "%j" (current-time)))) + (let* ((current (current-time)) + (now (decode-time current)) + (days (format-time-string "%j" current))) (+ (car now) (* (car (cdr now)) 60) (* (car (nthcdr 2 now)) 3600) (* (- (string-to-number days) 1) 3600 24)))) diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 206f5a502fc..c26c3b7559e 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -326,8 +326,9 @@ be set in `.emacs' instead." (if (fboundp 'find-image) (defun gnus-mode-line-buffer-identification (line) (let ((str (car-safe line)) - (load-path (mm-image-load-path))) - (if (and (stringp str) + (load-path (append (mm-image-load-path) load-path))) + (if (and (display-graphic-p) + (stringp str) (string-match "^Gnus:" str)) (progn (add-text-properties 0 5 diff --git a/lisp/gnus/ietf-drums.el b/lisp/gnus/ietf-drums.el index 11213689281..4fe8f18153a 100644 --- a/lisp/gnus/ietf-drums.el +++ b/lisp/gnus/ietf-drums.el @@ -206,7 +206,6 @@ backslash and doublequote.") (1+ (point)) (progn (forward-sexp 1) (1- (point)))))))) (t - (message "Unknown symbol: %c" c) (forward-char 1)))) ;; If we found no display-name, then we look for comments. (if display-name diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el index 4f1bdf4b1df..1a1a9923425 100644 --- a/lisp/gnus/mailcap.el +++ b/lisp/gnus/mailcap.el @@ -152,6 +152,10 @@ This is a compatibility function for different Emacsen." (non-viewer . t) (type . "application/zip") ("copiousoutput")) + ("pdf" + (viewer . doc-view-mode) + (type . "application/pdf") + (test . (eq window-system 'x))) ("pdf" (viewer . "gv -safer %s") (type . "application/pdf") @@ -1060,6 +1064,18 @@ If FORCE, re-parse even if already parsed." common-mime-info))))) commands)) +(defun mailcap-view-mime (type) + "View the data in the current buffer that has MIME type TYPE. +`mailcap-mime-data' determines the method to use." + (let ((method (mailcap-mime-info type))) + (if (stringp method) + (shell-command-on-region (point-min) (point-max) + ;; Use stdin as the "%s". + (format method "-") + (current-buffer) + t) + (funcall method)))) + (provide 'mailcap) ;;; mailcap.el ends here diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index ca0280c874f..d58a2922217 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -619,7 +619,7 @@ This may also be a list of regexps." "If non-nil, delete non-matching headers when forwarding a message. Only headers that match this regexp will be included. This variable should be a regexp or a list of regexps." - :version "24.5" + :version "25.1" :group 'message-forwarding :type '(repeat :value-to-internal (lambda (widget value) (custom-split-regexp-maybe value)) @@ -1756,13 +1756,17 @@ no, only reply back to the author." :type '(radio (const :format "%v " nil) (string :format "FQDN: %v"))) -(defcustom message-use-idna (and (condition-case nil (require 'idna) - (file-error)) - (mm-coding-system-p 'utf-8) - (executable-find idna-program) - (string= (idna-to-ascii "räksmörgås") - "xn--rksmrgs-5wao1o") - t) +(defcustom message-use-idna + (and (or (mm-coding-system-p 'utf-8) + (condition-case nil + (let (mucs-ignore-version-incompatibilities) + (require 'un-define)) + (error))) + (condition-case nil (require 'idna) (file-error)) + idna-program + (executable-find idna-program) + (string= (idna-to-ascii "räksmörgås") "xn--rksmrgs-5wao1o") + t) "Whether to encode non-ASCII in domain names into ASCII according to IDNA. GNU Libidn, and in particular the elisp package \"idna.el\" and the external program \"idn\", must be installed for this @@ -1919,7 +1923,45 @@ You must have the \"hashcash\" binary installed, see `hashcash-path'." "cat\\|com\\|coop\\|edu\\|gov\\|" "info\\|int\\|jobs\\|" "mil\\|mobi\\|museum\\|name\\|net\\|" - "org\\|pro\\|tel\\|travel\\|uucp\\)") + "org\\|pro\\|tel\\|travel\\|uucp\\|" + ;; ICANN-era generic top-level domains + "academy\\|actor\\|agency\\|airforce\\|archi\\|associates\\|axa\\|" + "bar\\|bargains\\|bayern\\|beer\\|berlin\\|best\\|bid\\|bike\\|" + "biz\\|black\\|blackfriday\\|blue\\|boutique\\|build\\|builders\\|" + "buzz\\|cab\\|camera\\|camp\\|capital\\|cards\\|care\\|career\\|" + "careers\\|cash\\|catering\\|center\\|ceo\\|cheap\\|christmas\\|" + "church\\|citic\\|cleaning\\|clinic\\|clothing\\|club\\|codes\\|" + "coffee\\|college\\|cologne\\|com\\|community\\|company\\|computer\\|" + "construction\\|contractors\\|cooking\\|cool\\|country\\|creditcard\\|" + "cruises\\|dance\\|dating\\|democrat\\|dental\\|desi\\|design\\|" + "diamonds\\|directory\\|discount\\|domains\\|education\\|email\\|" + "engineering\\|enterprises\\|equipment\\|estate\\|eus\\|events\\|" + "exchange\\|expert\\|exposed\\|fail\\|farm\\|feedback\\|finance\\|" + "financial\\|fish\\|fishing\\|fitness\\|flights\\|florist\\|foo\\|" + "foundation\\|frogans\\|fund\\|furniture\\|futbol\\|gal\\|" + "gallery\\|gift\\|glass\\|globo\\|gmo\\|gop\\|graphics\\|gratis\\|" + "gripe\\|guide\\|guitars\\|guru\\|hamburg\\|haus\\|hiphop\\|" + "holdings\\|holiday\\|homes\\|horse\\|house\\|immobilien\\|" + "industries\\|info\\|ink\\|institute\\|insure\\|international\\|" + "investments\\|jetzt\\|juegos\\|kaufen\\|kim\\|kitchen\\|kiwi\\|" + "koeln\\|kred\\|land\\|lat\\|latino\\|lease\\|life\\|lighting\\|" + "limited\\|limo\\|link\\|loans\\|london\\|luxe\\|luxury\\|" + "management\\|mango\\|marketing\\|media\\|meet\\|menu\\|miami\\|" + "moda\\|moe\\|monash\\|moscow\\|motorcycles\\|nagoya\\|name\\|" + "net\\|neustar\\|ninja\\|nyc\\|okinawa\\|onl\\|org\\|paris\\|" + "partners\\|parts\\|photo\\|photography\\|photos\\|pics\\|" + "pictures\\|pink\\|plumbing\\|pro\\|productions\\|properties\\|" + "pub\\|qpon\\|quebec\\|recipes\\|red\\|reisen\\|ren\\|rentals\\|" + "repair\\|report\\|rest\\|reviews\\|rich\\|rocks\\|rodeo\\|" + "ruhr\\|ryukyu\\|saarland\\|schule\\|scot\\|services\\|sexy\\|" + "shiksha\\|shoes\\|singles\\|social\\|sohu\\|solar\\|solutions\\|" + "soy\\|supplies\\|supply\\|support\\|surgery\\|systems\\|tattoo\\|" + "tax\\|technology\\|tienda\\|tips\\|today\\|tokyo\\|tools\\|" + "town\\|toys\\|trade\\|training\\|university\\|uno\\|vacations\\|" + "vegas\\|ventures\\|viajes\\|villas\\|vision\\|vodka\\|vote\\|" + "voting\\|voto\\|voyage\\|wang\\|watch\\|webcam\\|wed\\|wien\\|" + "wiki\\|works\\|wtc\\|wtf\\|xyz\\|yachts\\|yokohama\\|you\\|" + "zone\\)") ;; http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains ;; http://en.wikipedia.org/wiki/GTLD ;; `approved, but not yet in operation': .xxx @@ -2264,7 +2306,7 @@ Leading \"Re: \" is not stripped by this function. Use the function ((not (string-match (concat "^[ \t]*" (regexp-quote new-subject) - " \t]*$") + "[ \t]*$") old-subject)) ; yes, it really is a new subject ;; delete eventual Re: prefix (setq old-subject @@ -3531,15 +3573,16 @@ Message buffers and is not meant to be called directly." (goto-char (point-max)) ;; Insert the signature. (unless (bolp) - (insert "\n")) + (newline)) (when message-signature-insert-empty-line - (insert "\n")) - (insert "-- \n") + (newline)) + (insert "-- ") + (newline) (if (eq signature t) (insert-file-contents signature-file) (insert signature)) (goto-char (point-max)) - (or (bolp) (insert "\n"))))) + (or (bolp) (newline))))) (defun message-insert-importance-high () "Insert header to mark message as important." @@ -5549,7 +5592,7 @@ If NOW, use that time instead." "Make date string for the Expires header. Expiry in DAYS days. In posting styles use `(\"Expires\" (make-expires-date 30))'." - (let* ((cur (decode-time (current-time))) + (let* ((cur (decode-time)) (nday (+ days (nth 3 cur)))) (setf (nth 3 cur) nday) (message-make-date (apply 'encode-time cur)))) diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index cde0af036a5..f5b4d7cba88 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -647,7 +647,7 @@ MIME-Version header before proceeding." (unless from (setq from (mail-fetch-field "from"))) ;; FIXME: In some circumstances, this code is running within - ;; an unibyte macro. mail-extract-address-components + ;; a unibyte macro. mail-extract-address-components ;; creates unibyte buffers. This `if', though not a perfect ;; solution, avoids most of them. (if from diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el index bb342d6b8b1..bbeb1d85374 100644 --- a/lisp/gnus/mm-url.el +++ b/lisp/gnus/mm-url.el @@ -414,13 +414,51 @@ spaces. Die Die Die." (autoload 'mml-compute-boundary "mml") +(defun mm-url-encode-multipart-form-data (pairs &optional boundary) + "Return PAIRS encoded in multipart/form-data." + ;; RFC1867 + ;; Get a good boundary + (unless boundary + (setq boundary (mml-compute-boundary '()))) + (concat + ;; Start with the boundary + "--" boundary "\r\n" + ;; Create name value pairs + (mapconcat + 'identity + ;; Delete any returned items that are empty + (delq nil + (mapcar (lambda (data) + (cond ((equal (car data) "file") + ;; For each pair + (format + ;; Encode the name + "Content-Disposition: form-data; name=%S; filename=%S\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: binary\r\n\r\n%s" + (cdr (assoc "name" (cdr data))) (cdr (assoc "filename" (cdr data))) + (cond ((stringp (cdr (assoc "filedata" (cdr data)))) + (cdr (assoc "filedata" (cdr data)))) + ((integerp (cdr (assoc "filedata" (cdr data)))) + (number-to-string (cdr (assoc "filedata" (cdr data)))))))) + ((equal (car data) "submit") + "Content-Disposition: form-data; name=\"submit\"\r\n\r\nSubmit\r\n") + (t + (format + "Content-Disposition: form-data;name=%S\r\n\r\n%s\r\n" + (car data) (concat (mm-url-form-encode-xwfu (cdr data))) + )))) + pairs)) + ;; use the boundary as a separator + (concat "\r\n--" boundary "\r\n")) + ;; put a boundary at the end. + "--" boundary "--\r\n")) + (defun mm-url-remove-markup () "Remove all HTML markup, leaving just plain text." (goto-char (point-min)) (while (search-forward "" nil t) - (point-max)))) + (or (search-forward "-->" nil t) + (point-max)))) (goto-char (point-min)) (while (re-search-forward "<[^>]+>" nil t) (replace-match "" t t))) diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index 31b7d073fbe..e40aecea0cc 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el @@ -1243,6 +1243,7 @@ evaluating FORMS but it is no longer done. So, some programs assuming it if any may malfunction." (if (featurep 'xemacs) `(progn ,@forms) + (message "Warning: Using brain-dead macro `mm-with-unibyte-current-buffer'!") (let ((multibyte (make-symbol "multibyte"))) `(let ((,multibyte enable-multibyte-characters)) (when ,multibyte @@ -1253,6 +1254,7 @@ it if any may malfunction." (set-buffer-multibyte t))))))) (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) +(make-obsolete 'mm-with-unibyte-current-buffer nil "25.1") (defun mm-find-charset-region (b e) "Return a list of Emacs charsets in the region B to E." diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index ecfa2ac9582..bf24f349622 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el @@ -513,7 +513,9 @@ If MODE is not set, try to find mode automatically." (set (make-local-variable 'enable-local-variables) nil) (with-demoted-errors (if mode - (funcall mode) + (save-window-excursion + (switch-to-buffer (current-buffer)) + (funcall mode)) (let ((auto-mode-alist (delq (rassq 'doc-view-mode-maybe auto-mode-alist) (copy-sequence auto-mode-alist)))) diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index 726faeed6a0..fccdf521303 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el @@ -257,7 +257,9 @@ part. This is for the internal use, you should never modify the value.") ((string= mode "encrypt") (setq tags (list "encrypt" method))) ((string= mode "signencrypt") - (setq tags (list "sign" method "encrypt" method)))) + (setq tags (list "sign" method "encrypt" method))) + (t + (error "Unknown secure mode %s" mode))) (eval `(mml-insert-tag ,secure-mode ,@tags ,(if keyfile "keyfile") diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 1730bd4252c..45d10dd8a83 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -405,6 +405,7 @@ textual parts.") "*nnimap*" (current-buffer) nnimap-address (nnimap-map-port (car ports)) :type nnimap-stream + :warn-unless-encrypted t :return-list t :shell-command nnimap-shell-program :capability-command "1 CAPABILITY\r\n" @@ -986,10 +987,10 @@ textual parts.") (setq target nil)) (nnheader-message 7 "Expiring article %s:%d" group article)) (when target - (push article deleted-articles)))))))) + (push article deleted-articles)))))) + (setq deleted-articles (nreverse deleted-articles)))) ;; Change back to the current group again. (nnimap-change-group group server) - (setq deleted-articles (nreverse deleted-articles)) (nnimap-delete-article (gnus-compress-sequence deleted-articles)) deleted-articles)) @@ -1888,7 +1889,7 @@ Return the server's response to the SELECT or EXAMINE command." (while (and (not (bobp)) (progn (forward-line -1) - (looking-at "\\*")))) + (looking-at "\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence))))) (when messagep (nnheader-message-maybe diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el index e909372e8a7..6802484266d 100644 --- a/lisp/gnus/nnweb.el +++ b/lisp/gnus/nnweb.el @@ -438,7 +438,7 @@ Valid types include `google', `dejanews', and `gmane'.") t) (defun nnweb-google-identity (url) - "Return an unique identifier based on URL." + "Return a unique identifier based on URL." (if (string-match "selm=\\([^ &>]+\\)" url) (match-string 1 url) url)) diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el index dfc646b5e74..64a704f6106 100644 --- a/lisp/gnus/pop3.el +++ b/lisp/gnus/pop3.el @@ -561,6 +561,7 @@ Returns the process associated with the connection." 'tls) (t (or pop3-stream-type 'network))) + :warn-unless-encrypted t :capability-command "CAPA\r\n" :end-of-command "^\\(-ERR\\|+OK\\).*\n" :end-of-capability "^\\.\r?\n\\|^-ERR" diff --git a/lisp/gnus/registry.el b/lisp/gnus/registry.el index 24a3aa07ffa..69f5058b8ac 100644 --- a/lisp/gnus/registry.el +++ b/lisp/gnus/registry.el @@ -25,11 +25,11 @@ ;; This library provides a general-purpose EIEIO-based registry ;; database with persistence, initialized with these fields: -;; version: a float, 0.1 currently (don't change it) +;; version: a float -;; max-hard: an integer, default 5000000 +;; max-size: an integer, default most-positive-fixnum -;; max-soft: an integer, default 50000 +;; prune-factor: a float between 0 and 1, default 0.1 ;; precious: a list of symbols @@ -57,14 +57,15 @@ ;; Note that whether a field has one or many pieces of data, the data ;; is always a list of values. -;; The user decides which fields are "precious", F2 for example. At -;; PRUNE TIME (when the :prune-function is called), the registry will -;; trim any entries without the F2 field until the size is :max-soft -;; or less. No entries with the F2 field will be removed at PRUNE -;; TIME. +;; The user decides which fields are "precious", F2 for example. When +;; the registry is pruned, any entries without the F2 field will be +;; removed until the size is :max-size * :prune-factor _less_ than the +;; maximum database size. No entries with the F2 field will be removed +;; at PRUNE TIME, which means it may not be possible to prune back all +;; the way to the target size. -;; When an entry is inserted, the registry will reject new entries -;; if they bring it over the max-hard limit, even if they have the F2 +;; When an entry is inserted, the registry will reject new entries if +;; they bring it over the :max-size limit, even if they have the F2 ;; field. ;; The user decides which fields are "tracked", F1 for example. Any @@ -82,28 +83,32 @@ (require 'eieio) (require 'eieio-base) +;; The version number needs to be kept outside of the class definition +;; itself. The persistent-save process does *not* write to file any +;; slot values that are equal to the default :initform value. If a +;; database object is at the most recent version, therefore, its +;; version number will not be written to file. That makes it +;; difficult to know when a database needs to be upgraded. +(defvar registry-db-version 0.2 + "The current version of the registry format.") + (defclass registry-db (eieio-persistent) ((version :initarg :version - :initform 0.1 - :type float - :custom float + :initform nil + :type (or null float) :documentation "The registry version.") - (max-hard :initarg :max-hard - :initform 5000000 + (max-size :initarg :max-size + ;; :initform most-positive-fixnum ;; see below :type integer :custom integer - :documentation "Never accept more than this many elements.") - (max-soft :initarg :max-soft - :initform 50000 - :type integer - :custom integer - :documentation "Prune as much as possible to get to this size.") + :documentation "The maximum number of registry entries.") (prune-factor :initarg :prune-factor :initform 0.1 :type float :custom float - :documentation "At the max-hard limit, prune size * this entries.") + :documentation "Prune to \(:max-size * :prune-factor\) less + than the :max-size limit. Should be a float between 0 and 1.") (tracked :initarg :tracked :initform nil :type t @@ -118,6 +123,25 @@ (data :initarg :data :type hash-table :documentation "The data hashtable."))) +;; Do this separately, since defclass doesn't allow expressions in :initform. +(oset-default registry-db max-size most-positive-fixnum) + +(defmethod initialize-instance :BEFORE ((this registry-db) slots) + "Check whether a registry object needs to be upgraded." + ;; Hardcoded upgrade routines. Version 0.1 to 0.2 requires the + ;; :max-soft slot to disappear, and the :max-hard slot to be renamed + ;; :max-size. + (let ((current-version + (and (plist-member slots :version) + (plist-get slots :version)))) + (when (or (null current-version) + (eql current-version 0.1)) + (setq slots + (plist-put slots :max-size (plist-get slots :max-hard))) + (setq slots + (plist-put slots :version registry-db-version)) + (cl-remf slots :max-hard) + (cl-remf slots :max-soft)))) (defmethod initialize-instance :AFTER ((this registry-db) slots) "Set value of data slot of THIS after initialization." @@ -255,7 +279,7 @@ This is the key count of the :data slot." (defmethod registry-full ((db registry-db)) "Checks if registry-db THIS is full." (>= (registry-size db) - (oref db :max-hard))) + (oref db :max-size))) (defmethod registry-insert ((db registry-db) key entry) "Insert ENTRY under KEY into the registry-db THIS. @@ -267,7 +291,7 @@ Errors out if the key exists already." (assert (not (registry-full db)) nil - "registry max-hard size limit reached") + "registry max-size limit reached") ;; store the entry (puthash key entry (oref db :data)) @@ -300,58 +324,51 @@ Errors out if the key exists already." (registry-lookup-secondary-value db tr val value-keys)))) (oref db :data)))))) -(defmethod registry-prune ((db registry-db) &optional sortfun) - "Prunes the registry-db object THIS. -Removes only entries without the :precious keys if it can, -then removes oldest entries first. -Returns the number of deleted entries. -If SORTFUN is given, tries to keep entries that sort *higher*. -SORTFUN is passed only the two keys so it must look them up directly." - (dolist (collector '(registry-prune-soft-candidates - registry-prune-hard-candidates)) - (let* ((size (registry-size db)) - (collected (funcall collector db)) - (limit (nth 0 collected)) - (candidates (nth 1 collected)) - ;; sort the candidates if SORTFUN was given - (candidates (if sortfun (sort candidates sortfun) candidates)) - (candidates-count (length candidates)) - ;; are we over max-soft? - (prune-needed (> size limit))) +(defmethod registry-prune ((db registry-db) &optional sortfunc) + "Prunes the registry-db object DB. - ;; while we have more candidates than we need to remove... - (while (and (> candidates-count (- size limit)) candidates) - (decf candidates-count) - (setq candidates (cdr candidates))) +Attempts to prune the number of entries down to \(* +:max-size :prune-factor\) less than the max-size limit, so +pruning doesn't need to happen on every save. Removes only +entries without the :precious keys, so it may not be possible to +reach the target limit. - (registry-delete db candidates nil) - (length candidates)))) +Entries to be pruned are first sorted using SORTFUNC. Entries +from the front of the list are deleted first. -(defmethod registry-prune-soft-candidates ((db registry-db)) - "Collects pruning candidates from the registry-db object THIS. -Proposes only entries without the :precious keys." +Returns the number of deleted entries." + (let ((size (registry-size db)) + (target-size (- (oref db :max-size) + (* (oref db :max-size) + (oref db :prune-factor)))) + candidates) + (if (> size target-size) + (progn + (setq candidates + (registry-collect-prune-candidates + db (- size target-size) sortfunc)) + (length (registry-delete db candidates nil))) + 0))) + +(defmethod registry-collect-prune-candidates ((db registry-db) limit sortfunc) + "Collects pruning candidates from the registry-db object DB. + +Proposes only entries without the :precious keys, and attempts to +return LIMIT such candidates. If SORTFUNC is provided, sort +entries first and return candidates from beginning of list." (let* ((precious (oref db :precious)) (precious-p (lambda (entry-key) (cdr (memq (car entry-key) precious)))) (data (oref db :data)) - (limit (oref db :max-soft)) - (candidates (loop for k being the hash-keys of data - using (hash-values v) - when (notany precious-p v) - collect k))) - (list limit candidates))) - -(defmethod registry-prune-hard-candidates ((db registry-db)) - "Collects pruning candidates from the registry-db object THIS. -Proposes any entries over the max-hard limit minus size * prune-factor." - (let* ((data (oref db :data)) - ;; prune to (size * prune-factor) below the max-hard limit so - ;; we're not pruning all the time - (limit (max 0 (- (oref db :max-hard) - (* (registry-size db) (oref db :prune-factor))))) - (candidates (loop for k being the hash-keys of data - collect k))) - (list limit candidates))) + (candidates (cl-loop for k being the hash-keys of data + using (hash-values v) + when (notany precious-p v) + collect (cons k v)))) + ;; We want the full entries for sorting, but should only return a + ;; list of entry keys. + (when sortfunc + (setq candidates (sort candidates sortfunc))) + (delq nil (cl-subseq (mapcar #'car candidates) 0 limit)))) (provide 'registry) ;;; registry.el ends here diff --git a/lisp/help.el b/lisp/help.el index 63a658f391c..07b9627e3db 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -32,6 +32,10 @@ ;; or run interpreted, but not when the compiled code is loaded. (eval-when-compile (require 'help-macro)) +;; This makes `with-output-to-temp-buffer' buffers use `help-mode'. +(add-hook 'temp-buffer-setup-hook 'help-mode-setup) +(add-hook 'temp-buffer-show-hook 'help-mode-finish) + ;; `help-window-point-marker' is a marker you can move to a valid ;; position of the buffer shown in the help window in order to override ;; the standard positioning mechanism (`point-min') chosen by @@ -42,6 +46,9 @@ (defvar help-window-point-marker (make-marker) "Marker to override default `window-point' in help windows.") +(defvar help-window-old-frame nil + "Frame selected at the time `with-help-window' is invoked.") + (defvar help-map (let ((map (make-sparse-keymap))) (define-key map (char-to-string help-char) 'help-for-help) @@ -444,25 +451,32 @@ is specified by the variable `message-log-max'." (info "(efaq)Packages that do not come with Emacs")) (defun view-lossage () - "Display last 300 input keystrokes. + "Display last few input keystrokes and the commands run. To record all your input, use `open-dribble-file'." (interactive) (help-setup-xref (list #'view-lossage) (called-interactively-p 'interactive)) (with-help-window (help-buffer) + (princ " ") (princ (mapconcat (lambda (key) - (if (or (integerp key) (symbolp key) (listp key)) - (single-key-description key) - (prin1-to-string key nil))) - (recent-keys) + (cond + ((and (consp key) (null (car key))) + (format "[%s]\n" (if (symbolp (cdr key)) (cdr key) + "anonymous-command"))) + ((or (integerp key) (symbolp key) (listp key)) + (single-key-description key)) + (t + (prin1-to-string key nil)))) + (recent-keys 'include-cmds) " ")) (with-current-buffer standard-output (goto-char (point-min)) - (while (progn (move-to-column 50) (not (eobp))) - (when (search-forward " " nil t) - (delete-char -1)) - (insert "\n")) + (while (not (eobp)) + (move-to-column 50) + (unless (eolp) + (fill-region (line-beginning-position) (line-end-position))) + (forward-line 1)) ;; jidanni wants to see the last keystrokes immediately. (set-marker help-window-point-marker (point))))) @@ -1119,7 +1133,10 @@ of a horizontal combination, restrain its new size by `fit-window-to-buffer-horizontally' can inhibit resizing. If WINDOW is the root window of its frame, resize the frame -provided `fit-frame-to-buffer' is non-nil." +provided `fit-frame-to-buffer' is non-nil. + +This function may call `preserve-window-size' to preserve the +size of WINDOW." (setq window (window-normalize-window window t)) (let ((height (if (functionp temp-buffer-max-height) (with-selected-window window @@ -1141,20 +1158,30 @@ provided `fit-frame-to-buffer' is non-nil." (and (eq quit-cadr 'frame) fit-frame-to-buffer (eq window (frame-root-window window)))) - (fit-window-to-buffer window height nil width)))) + (fit-window-to-buffer window height nil width nil t)))) ;;; Help windows. -(defcustom help-window-select 'other - "Non-nil means select help window for viewing. +(defcustom help-window-select nil + "Non-nil means select help window for viewing. Choices are: + never (nil) Select help window only if there is no other window on its frame. - other Select help window unless the selected window is the - only other window on the help window's frame. + + other Select help window if and only if it appears on the + previously selected frame, that frame contains at + least two other windows and the help window is + either new or showed a different buffer before. + always (t) Always select the help window. +If this option is non-nil and the help window appears on another +frame, then give that frame input focus too. Note also that if +the help window appears on another frame, it may get selected and +its frame get input focus even if this option is nil. + This option has effect if and only if the help window was created -by `with-help-window'" +by `with-help-window'." :type '(choice (const :tag "never (nil)" nil) (const :tag "other" other) (const :tag "always (t)" t)) @@ -1201,7 +1228,9 @@ Return VALUE." (let* ((help-buffer (when (window-live-p window) (window-buffer window))) (help-setup (when (window-live-p window) - (car (window-parameter window 'quit-restore))))) + (car (window-parameter window 'quit-restore)))) + (frame (window-frame window))) + (when help-buffer ;; Handle `help-window-point-marker'. (when (eq (marker-buffer help-window-point-marker) help-buffer) @@ -1209,13 +1238,27 @@ Return VALUE." ;; Reset `help-window-point-marker'. (set-marker help-window-point-marker nil)) + ;; If the help window appears on another frame, select it if + ;; `help-window-select' is non-nil and give that frame input focus + ;; too. See also Bug#19012. + (when (and help-window-select + (frame-live-p help-window-old-frame) + (not (eq frame help-window-old-frame))) + (select-window window) + (select-frame-set-input-focus frame)) + (cond ((or (eq window (selected-window)) - (and (or (eq help-window-select t) - (eq help-setup 'frame) + ;; If the help window is on the selected frame, select + ;; it if `help-window-select' is t or `help-window-select' + ;; is 'other, the frame contains at least three windows, and + ;; the help window did show another buffer before. See also + ;; Bug#11039. + (and (eq frame (selected-frame)) + (or (eq help-window-select t) (and (eq help-window-select 'other) - (eq (window-frame window) (selected-frame)) - (> (length (window-list nil 'no-mini)) 2))) + (> (length (window-list nil 'no-mini)) 2) + (not (eq help-setup 'same)))) (select-window window))) ;; The help window is or gets selected ... (help-window-display-message @@ -1224,12 +1267,13 @@ Return VALUE." ;; ... and is new, ... "Type \"q\" to delete help window") ((eq help-setup 'frame) + ;; ... on a new frame, ... "Type \"q\" to quit the help frame") ((eq help-setup 'other) ;; ... or displayed some other buffer before. "Type \"q\" to restore previous buffer")) window t)) - ((and (eq (window-frame window) (selected-frame)) + ((and (eq (window-frame window) help-window-old-frame) (= (length (window-list nil 'no-mini)) 2)) ;; There are two windows on the help window's frame and the ;; other one is the selected one. @@ -1286,6 +1330,7 @@ the help window if the current value of the user option (cons 'help-mode-setup temp-buffer-window-setup-hook)) (temp-buffer-window-show-hook (cons 'help-mode-finish temp-buffer-window-show-hook))) + (setq help-window-old-frame (selected-frame)) (with-temp-buffer-window ,buffer-name nil 'help-window-setup (progn ,@body))))) diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index a3c5b062401..4b13b9ab11b 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el @@ -1,4 +1,4 @@ -;;; ibuf-ext.el --- extensions for ibuffer +;;; ibuf-ext.el --- extensions for ibuffer -*- lexical-binding:t -*- ;; Copyright (C) 2000-2014 Free Software Foundation, Inc. @@ -523,9 +523,9 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'." ibuffer-filter-groups (append ibuffer-filter-groups (list (cons "Default" nil)))))) -;; (dolist (hidden ibuffer-hidden-filter-groups) -;; (setq filter-group-alist (ibuffer-delete-alist -;; hidden filter-group-alist))) + ;; (dolist (hidden ibuffer-hidden-filter-groups) + ;; (setq filter-group-alist (ibuffer-delete-alist + ;; hidden filter-group-alist))) (let ((vec (make-vector (length filter-group-alist) nil)) (i 0)) (dolist (filtergroup filter-group-alist) @@ -540,12 +540,13 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'." (cl-incf i) (setq bmarklist lamers)))) (let (ret) - (dotimes (j i ret) + (dotimes (j i) (let ((bufs (aref vec j))) (unless (and noempty (null bufs)) (push (cons (car (nth j filter-group-alist)) bufs) - ret)))))))) + ret)))) + ret)))) ;;;###autoload (defun ibuffer-filters-to-filter-group (name) @@ -1100,9 +1101,9 @@ Default sorting modes are: Major Mode - the name of the major mode of the buffer Size - the size of the buffer" (interactive) - (let ((modes (mapcar 'car ibuffer-sorting-functions-alist))) - (add-to-list 'modes 'recency) - (setq modes (sort modes 'string-lessp)) + (let ((modes (mapcar #'car ibuffer-sorting-functions-alist))) + (cl-pushnew 'recency modes) + (setq modes (sort modes #'string-lessp)) (let ((next (or (car-safe (cdr-safe (memq ibuffer-sorting-mode modes))) (car modes)))) (setq ibuffer-sorting-mode next) diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el index a475e1eccb9..96701ee4d39 100644 --- a/lisp/ibuf-macs.el +++ b/lisp/ibuf-macs.el @@ -1,4 +1,4 @@ -;;; ibuf-macs.el --- macros for ibuffer +;;; ibuf-macs.el --- macros for ibuffer -*- lexical-binding:t -*- ;; Copyright (C) 2000-2014 Free Software Foundation, Inc. @@ -111,6 +111,7 @@ change its definition, you should explicitly call ,(if inline `(push '(,sym ,bod) ibuffer-inline-columns) `(defun ,sym (buffer mark) + (ignore mark) ;Silence byte-compiler if mark is unused. ,bod)) (put (quote ,sym) 'ibuffer-column-name ,(if (stringp name) @@ -204,7 +205,8 @@ macro for exactly what it does. (declare (indent 2) (doc-string 3)) `(progn (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op)) - "" "ibuffer-do-") (symbol-name op))) + "" "ibuffer-do-") + (symbol-name op))) ,args ,(if (stringp documentation) documentation @@ -247,6 +249,9 @@ macro for exactly what it does. (_ 'ibuffer-map-marked-lines)) #'(lambda (buf mark) + ;; Silence warning for code that doesn't + ;; use `mark'. + (ignore mark) ,(if (eq modifier-p :maybe) `(let ((ibuffer-tmp-previous-buffer-modification (buffer-modified-p buf))) diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index 7bf0858aac0..5541bbb310e 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el @@ -1,4 +1,4 @@ -;;; ibuffer.el --- operate on buffers like dired +;;; ibuffer.el --- operate on buffers like dired -*- lexical-binding:t -*- ;; Copyright (C) 2000-2014 Free Software Foundation, Inc. @@ -350,6 +350,7 @@ directory, like `default-directory'." (defcustom ibuffer-mode-hook nil "Hook run upon entry into `ibuffer-mode'." :type 'hook + :options '(ibuffer-auto-mode) :group 'ibuffer) (defcustom ibuffer-load-hook nil @@ -539,10 +540,6 @@ directory, like `default-directory'." (define-key map (kbd "/ X") 'ibuffer-delete-saved-filter-groups) (define-key map (kbd "/ \\") 'ibuffer-clear-filter-groups) - (define-key map (kbd "q") 'ibuffer-quit) - (define-key map (kbd "h") 'describe-mode) - (define-key map (kbd "?") 'describe-mode) - (define-key map (kbd "% n") 'ibuffer-mark-by-name-regexp) (define-key map (kbd "% m") 'ibuffer-mark-by-mode-regexp) (define-key map (kbd "% f") 'ibuffer-mark-by-file-name-regexp) @@ -706,7 +703,8 @@ directory, like `default-directory'." '(menu-item "Diff with file" ibuffer-diff-with-file :help "View the differences between this buffer and its file")) (define-key-after map [menu-bar view auto-mode] - '(menu-item "Toggle Auto Mode" ibuffer-auto-mode + '(menu-item "Auto Mode" ibuffer-auto-mode + :button (:toggle . ibuffer-auto-mode) :help "Attempt to automatically update the Ibuffer buffer")) (define-key-after map [menu-bar view customize] '(menu-item "Customize Ibuffer" ibuffer-customize @@ -876,12 +874,6 @@ directory, like `default-directory'." (define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu) map)) -(defvar ibuffer-restore-window-config-on-quit nil - "If non-nil, restore previous window configuration upon exiting `ibuffer'.") - -(defvar ibuffer-prev-window-config nil - "Window configuration before starting Ibuffer.") - (defvar ibuffer-did-modification nil) (defvar ibuffer-compiled-formats nil) @@ -915,7 +907,7 @@ width and the longest string in LIST." (when (zerop columns) (setq columns 1)) (while list - (dotimes (i (1- columns)) + (dotimes (_ (1- columns)) (insert (concat (car list) (make-string (- max (length (car list))) ?\s))) (setq list (cdr list))) @@ -1283,7 +1275,7 @@ a new window in the current frame, splitting vertically." :modifier-p t) (set-buffer-modified-p (not (buffer-modified-p)))) -(define-ibuffer-op ibuffer-do-toggle-read-only (&optional arg) +(define-ibuffer-op ibuffer-do-toggle-read-only (&optional _arg);FIXME:arg unused! "Toggle read only status in marked buffers. With optional ARG, make read-only only if ARG is not negative." (:opstring "toggled read only status in" @@ -1528,7 +1520,7 @@ If point is on a group name, this function operates on that group." ;; We use these variables to keep track of which variables ;; inside the generated function we need to bind, since ;; binding variables in Emacs takes time. - str-used tmp1-used tmp2-used global-strlen-used) + (vars-used ())) (dolist (form format) (push ;; Generate a form based on a particular format entry, like @@ -1554,8 +1546,8 @@ If point is on a group name, this function operates on that group." ;; This is a complex case; they want it limited to a ;; minimum size. (setq min-used t) - (setq str-used t strlen-used t global-strlen-used t - tmp1-used t tmp2-used t) + (setq strlen-used t) + (setq vars-used '(str strlen tmp1 tmp2)) ;; Generate code to limit the string to a minimum size. (setq minform `(progn (setq str @@ -1567,7 +1559,8 @@ If point is on a group name, this function operates on that group." strlen) align))))) (when (or (not (integerp max)) (> max 0)) - (setq str-used t max-used t) + (setq max-used t) + (cl-pushnew 'str vars-used) ;; Generate code to limit the string to a maximum size. (setq maxform `(progn (setq str @@ -1595,8 +1588,9 @@ If point is on a group name, this function operates on that group." ;; don't even understand it, and I wrote it five ;; minutes ago. (insertgenfn - (ibuffer-aif (get sym 'ibuffer-column-summarizer) + (if (get sym 'ibuffer-column-summarizer) ;; I really, really wish Emacs Lisp had closures. + ;; FIXME: Elisp does have them now. (lambda (arg sym) `(insert (let ((ret ,arg)) @@ -1604,7 +1598,7 @@ If point is on a group name, this function operates on that group." (cons ret (get ',sym 'ibuffer-column-summary))) ret))) - (lambda (arg sym) + (lambda (arg _sym) `(insert ,arg)))) (mincompform `(< strlen ,(if (integerp min) min @@ -1632,10 +1626,9 @@ If point is on a group name, this function operates on that group." `(when ,maxcompform ,maxform))) outforms) - (push (append - `(setq str ,callform) - (when strlen-used - `(strlen (length str)))) + (push `(setq str ,callform + ,@(when strlen-used + `(strlen (length str)))) outforms) (setq outforms (append outforms @@ -1648,25 +1641,17 @@ If point is on a group name, this function operates on that group." `(let ,letbindings ,@outforms))))) result)) - (setq result - ;; We don't want to unconditionally load the byte-compiler. - (funcall (if (or ibuffer-always-compile-formats - (featurep 'bytecomp)) - #'byte-compile - #'identity) - ;; Here, we actually create a lambda form which - ;; inserts all the generated forms for each entry - ;; in the format string. - (nconc (list 'lambda '(buffer mark)) - `((let ,(append (when str-used - '(str)) - (when global-strlen-used - '(strlen)) - (when tmp1-used - '(tmp1)) - (when tmp2-used - '(tmp2))) - ,@(nreverse result)))))))) + ;; We don't want to unconditionally load the byte-compiler. + (funcall (if (or ibuffer-always-compile-formats + (featurep 'bytecomp)) + #'byte-compile + #'identity) + ;; Here, we actually create a lambda form which + ;; inserts all the generated forms for each entry + ;; in the format string. + `(lambda (buffer mark) + (let ,vars-used + ,@(nreverse result)))))) (defun ibuffer-recompile-formats () "Recompile `ibuffer-formats'." @@ -1684,8 +1669,8 @@ If point is on a group name, this function operates on that group." (defun ibuffer-clear-summary-columns (format) (dolist (form format) - (ibuffer-awhen (and (consp form) - (get (car form) 'ibuffer-column-summarizer)) + (when (and (consp form) + (get (car form) 'ibuffer-column-summarizer)) (put (car form) 'ibuffer-column-summary nil)))) (defun ibuffer-check-formats () @@ -2296,18 +2281,6 @@ If optional arg SILENT is non-nil, do not display progress messages." (goto-char (point-min)) (forward-line orig)))) -(defun ibuffer-quit () - "Quit this `ibuffer' session. -Try to restore the previous window configuration if -`ibuffer-restore-window-config-on-quit' is non-nil." - (interactive) - (if ibuffer-restore-window-config-on-quit - (progn - (bury-buffer) - (unless (= (count-windows) 1) - (set-window-configuration ibuffer-prev-window-config))) - (bury-buffer))) - ;;;###autoload (defun ibuffer-list-buffers (&optional files-only) "Display a list of buffers, in another window. @@ -2348,7 +2321,6 @@ FORMATS is the value to use for `ibuffer-formats'. (interactive "P") (when ibuffer-use-other-window (setq other-window-p t)) - (setq ibuffer-prev-window-config (current-window-configuration)) (let ((buf (get-buffer-create (or name "*Ibuffer*")))) (if other-window-p (funcall (if noselect (lambda (buf) (display-buffer buf t)) #'pop-to-buffer) buf) @@ -2360,8 +2332,7 @@ FORMATS is the value to use for `ibuffer-formats'. (select-window (get-buffer-window buf 0)) (or (derived-mode-p 'ibuffer-mode) (ibuffer-mode)) - (setq ibuffer-restore-window-config-on-quit other-window-p) - (when shrink + (when shrink (setq ibuffer-shrink-to-minimum-size shrink)) (when qualifiers (require 'ibuf-ext) @@ -2499,7 +2470,6 @@ Other commands: '\\[ibuffer-switch-format]' - Change the current display format. '\\[forward-line]' - Move point to the next line. '\\[previous-line]' - Move point to the previous line. - '\\[ibuffer-quit]' - Bury the Ibuffer buffer. '\\[describe-mode]' - This help. '\\[ibuffer-diff-with-file]' - View the differences between this buffer and its associated file. @@ -2614,7 +2584,6 @@ will be inserted before the group at point." (set (make-local-variable 'ibuffer-cached-eliding-string) nil) (set (make-local-variable 'ibuffer-cached-elide-long-columns) nil) (set (make-local-variable 'ibuffer-current-format) nil) - (set (make-local-variable 'ibuffer-restore-window-config-on-quit) nil) (set (make-local-variable 'ibuffer-did-modification) nil) (set (make-local-variable 'ibuffer-tmp-hide-regexps) nil) (set (make-local-variable 'ibuffer-tmp-show-regexps) nil) @@ -2628,7 +2597,7 @@ will be inserted before the group at point." ;;; Start of automatically extracted autoloads. -;;;### (autoloads nil "ibuf-ext" "ibuf-ext.el" "e8ce929c4c76419f8d355b444f722c3a") +;;;### (autoloads nil "ibuf-ext" "ibuf-ext.el" "0d2393d1b47136bc7b1ac41593527f02") ;;; Generated autoloads from ibuf-ext.el (autoload 'ibuffer-auto-mode "ibuf-ext" "\ diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 0c5a2babd86..95a6e1b357c 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -487,6 +487,19 @@ matches exist." "}") (concat determ " [Matched]")))))) +;;; Iswitchb compatibility + +;; We moved Iswitchb to `obsolete' in 24.4, but autoloads in files in +;; `obsolete' aren't obeyed (since that would encourage people to keep using +;; those packages, oblivious to their obsolescence). Given the fact that +;; Iswitchb was very popular, we decided to keep its autoload for a bit longer, +;; so we moved it here. + +;;;###autoload(when (locate-library "obsolete/iswitchb") +;;;###autoload (autoload 'iswitchb-mode "iswitchb" "Toggle Iswitchb mode." t) +;;;###autoload (make-obsolete 'iswitchb-mode +;;;###autoload "use `icomplete-mode' or `ido-mode' instead." "24.4")) + ;;;_* Provide (provide 'icomplete) diff --git a/lisp/ido.el b/lisp/ido.el index b16ab1f91a6..5f7637c5632 100644 --- a/lisp/ido.el +++ b/lisp/ido.el @@ -1306,8 +1306,7 @@ Only used if `ido-use-virtual-buffers' is non-nil.") (defun ido-time-stamp (&optional time) ;; Time is a floating point number (fractions of 1 hour) - (setq time (or time (current-time))) - (/ (+ (* (car time) 65536.0) (car (cdr time))) 3600.0)) + (/ (float-time time) 3600)) (defun ido-cache-ftp-valid (&optional time) (and (numberp ido-cache-ftp-work-directory-time) @@ -1673,6 +1672,7 @@ This function also adds a hook to the minibuffer." (define-key map "\C-x\C-f" 'ido-enter-find-file) (define-key map "\C-x\C-b" 'ido-fallback-command) (define-key map "\C-k" 'ido-kill-buffer-at-head) + (define-key map [?\C-\S-b] 'ido-bury-buffer-at-head) (define-key map "\C-o" 'ido-toggle-virtual-buffers) (set-keymap-parent map ido-common-completion-map) (setq ido-buffer-completion-map map))) @@ -4027,6 +4027,20 @@ If cursor is not at the end of the user input, delete to end of input." (setq ido-cur-list (delete buf ido-cur-list)) (setq ido-rescan t)))))) +;;; BURY CURRENT BUFFER +(defun ido-bury-buffer-at-head () + "Bury the buffer at the head of `ido-matches'." + (interactive) + (let ((enable-recursive-minibuffers t) + (buf (ido-name (car ido-matches))) + (nextbuf (cadr ido-matches))) + (when (get-buffer buf) + (bury-buffer buf) + (setq ido-default-item nextbuf + ido-text-init ido-text + ido-exit 'refresh) + (exit-minibuffer)))) + ;;; DELETE CURRENT FILE (defun ido-delete-file-at-head () "Delete the file at the head of `ido-matches'. diff --git a/lisp/ielm.el b/lisp/ielm.el index d6d742875d6..37e66ccc611 100644 --- a/lisp/ielm.el +++ b/lisp/ielm.el @@ -541,7 +541,9 @@ Customized bindings may be defined in `ielm-map', which currently contains: (setq comint-process-echoes nil) (set (make-local-variable 'completion-at-point-functions) '(comint-replace-by-expanded-history - ielm-complete-filename lisp-completion-at-point)) + ielm-complete-filename elisp-completion-at-point)) + (setq-local eldoc-documentation-function + #'elisp-eldoc-documentation-function) (set (make-local-variable 'ielm-prompt-internal) ielm-prompt) (set (make-local-variable 'comint-prompt-read-only) ielm-prompt-read-only) (setq comint-get-old-input 'ielm-get-old-input) diff --git a/lisp/image-mode.el b/lisp/image-mode.el index b75946475dd..b94162d413a 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -49,6 +49,26 @@ "Special hook run when image data is requested in a new window. It is called with one argument, the initial WINPROPS.") +;; FIXME this doesn't seem mature yet. Document in manual when it is. +(defvar image-transform-resize nil + "The image resize operation. +Its value should be one of the following: + - nil, meaning no resizing. + - `fit-height', meaning to fit the image to the window height. + - `fit-width', meaning to fit the image to the window width. + - A number, which is a scale factor (the default size is 1).") + +(defvar image-transform-scale 1.0 + "The scale factor of the image being displayed.") + +(defvar image-transform-rotation 0.0 + "Rotation angle for the image in the current Image mode buffer.") + +(defvar image-transform-right-angle-fudge 0.0001 + "Snap distance to a multiple of a right angle. +There's no deep theory behind the default value, it should just +be somewhat larger than ImageMagick's MagickEpsilon.") + (defun image-mode-winprops (&optional window cleanup) "Return winprops of WINDOW. A winprops object has the shape (WINDOW . ALIST). @@ -379,8 +399,6 @@ call." ["Show as Text" image-toggle-display :active t :help "Show image as text"] "--" - ["Fit Frame to Image" image-mode-fit-frame :active t - :help "Resize frame to match image"] ["Fit to Window Height" image-transform-fit-to-height :visible (eq image-type 'imagemagick) :help "Resize image to match the window height"] @@ -390,6 +408,9 @@ call." ["Rotate Image..." image-transform-set-rotation :visible (eq image-type 'imagemagick) :help "Rotate the image"] + ["Reset Transformations" image-transform-reset + :visible (eq image-type 'imagemagick) + :help "Reset all image transformations"] "--" ["Show Thumbnails" (lambda () @@ -402,6 +423,9 @@ call." ["Previous Image" image-previous-file :active buffer-file-name :help "Move to previous image in this directory"] "--" + ["Fit Frame to Image" image-mode-fit-frame :active t + :help "Resize frame to match image"] + "--" ["Animate Image" image-toggle-animation :style toggle :selected (let ((image (image-get-display-property))) (and image (image-animate-timer image))) @@ -638,8 +662,19 @@ was inserted." (string-make-unibyte (buffer-substring-no-properties (point-min) (point-max))) filename)) - (type (image-type file-or-data nil data-p)) - (image (create-image file-or-data type data-p)) + ;; If we have a `fit-width' or a `fit-height', don't limit + ;; the size of the image to the window size. + (edges (and (null image-transform-resize) + (window-inside-pixel-edges + (get-buffer-window (current-buffer))))) + (type (if (fboundp 'imagemagick-types) + 'imagemagick + (image-type file-or-data nil data-p))) + (image (if (not edges) + (create-image file-or-data type data-p) + (create-image file-or-data type data-p + :max-width (- (nth 2 edges) (nth 0 edges)) + :max-height (- (nth 3 edges) (nth 1 edges))))) (inhibit-read-only t) (buffer-undo-list t) (modified (buffer-modified-p)) @@ -890,26 +925,6 @@ replacing the current Image mode buffer." ;; nil "image-transform" image-transform-minor-mode-map) -;; FIXME this doesn't seem mature yet. Document in manual when it is. -(defvar image-transform-resize nil - "The image resize operation. -Its value should be one of the following: - - nil, meaning no resizing. - - `fit-height', meaning to fit the image to the window height. - - `fit-width', meaning to fit the image to the window width. - - A number, which is a scale factor (the default size is 1).") - -(defvar image-transform-scale 1.0 - "The scale factor of the image being displayed.") - -(defvar image-transform-rotation 0.0 - "Rotation angle for the image in the current Image mode buffer.") - -(defvar image-transform-right-angle-fudge 0.0001 - "Snap distance to a multiple of a right angle. -There's no deep theory behind the default value, it should just -be somewhat larger than ImageMagick's MagickEpsilon.") - (defsubst image-transform-width (width height) "Return the bounding box width of a rotated WIDTH x HEIGHT rectangle. The rotation angle is the value of `image-transform-rotation' in degrees." @@ -1091,6 +1106,16 @@ Emacs is compiled with ImageMagick support." (setq image-transform-rotation (float (mod rotation 360))) (image-toggle-display-image)) +(defun image-transform-reset () + "Display the current image with the default size and rotation. +This command has no effect unless Emacs is compiled with +ImageMagick support." + (interactive) + (setq image-transform-resize nil + image-transform-rotation 0.0 + image-transform-scale 1) + (image-toggle-display-image)) + (provide 'image-mode) ;;; image-mode.el ends here diff --git a/lisp/image.el b/lisp/image.el index ef39fa7909f..8430d36a627 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -637,8 +637,8 @@ in which case you might want to use `image-default-frame-delay'." (images (plist-get metadata 'count)) (delay (plist-get metadata 'delay))) (when (and images (> images 1)) - (if (or (not (numberp delay)) (< delay 0)) - (setq delay image-default-frame-delay)) + (and delay (or (not (numberp delay)) (< delay 0)) + (setq delay image-default-frame-delay)) (cons images delay))))) (defun image-animated-p (image) diff --git a/lisp/imenu.el b/lisp/imenu.el index e5f33a5efb9..bad3dd11734 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el @@ -936,6 +936,8 @@ The returned value is of the form (INDEX-NAME . INDEX-POSITION)." (setq result t imenu--index-alist nil))) result)) +(defvar-local imenu--menubar-keymap nil) + ;;;###autoload (defun imenu-add-to-menubar (name) "Add an `imenu' entry to the menu bar for the current buffer. @@ -952,8 +954,9 @@ See the command `imenu' for more information." (let ((newmap (make-sparse-keymap))) (set-keymap-parent newmap (current-local-map)) (setq imenu--last-menubar-index-alist nil) + (setq imenu--menubar-keymap (make-sparse-keymap "Imenu")) (define-key newmap [menu-bar index] - `(menu-item ,name ,(make-sparse-keymap "Imenu"))) + `(menu-item ,name ,imenu--menubar-keymap)) (use-local-map newmap) (add-hook 'menu-bar-update-hook 'imenu-update-menubar))) (user-error "The mode `%s' does not support Imenu" @@ -975,28 +978,23 @@ to `imenu-update-menubar'.") (defun imenu-update-menubar () (when (and (current-local-map) - (keymapp (lookup-key (current-local-map) [menu-bar index])) + imenu--menubar-keymap (/= (buffer-chars-modified-tick) imenu-menubar-modified-tick)) (setq imenu-menubar-modified-tick (buffer-chars-modified-tick)) (let ((index-alist (imenu--make-index-alist t))) ;; Don't bother updating if the index-alist has not changed ;; since the last time we did it. (unless (equal index-alist imenu--last-menubar-index-alist) - (let (menu menu1 old) - (setq imenu--last-menubar-index-alist index-alist) - (setq index-alist (imenu--split-submenus index-alist)) - (setq menu (imenu--split-menu index-alist - (buffer-name))) - (setq menu1 (imenu--create-keymap (car menu) + (setq imenu--last-menubar-index-alist index-alist) + (setq index-alist (imenu--split-submenus index-alist)) + (let* ((menu (imenu--split-menu index-alist + (buffer-name))) + (menu1 (imenu--create-keymap (car menu) (cdr (if (< 1 (length (cdr menu))) menu (car (cdr menu)))) - 'imenu--menubar-select)) - (setq old (lookup-key (current-local-map) [menu-bar index])) - ;; This should never happen, but in some odd cases, potentially, - ;; lookup-key may return a dynamically composed keymap. - (if (keymapp (cadr old)) (setq old (cadr old))) - (setcdr old (cdr menu1))))))) + 'imenu--menubar-select))) + (setcdr imenu--menubar-keymap (cdr menu1))))))) (defun imenu--menubar-select (item) "Use Imenu to select the function or variable named in this menu ITEM." @@ -1012,7 +1010,7 @@ to `imenu-update-menubar'.") (imenu item) nil)) -(defun imenu-default-goto-function (_name position &optional _rest) +(defun imenu-default-goto-function (_name position &rest _rest) "Move to the given position. NAME is ignored. POSITION is where to move. REST is also ignored. @@ -1034,16 +1032,13 @@ for more information." (if (stringp index-item) (setq index-item (assoc index-item (imenu--make-index-alist)))) (when index-item - (push-mark nil t) - (let* ((is-special-item (listp (cdr index-item))) - (function - (if is-special-item - (nth 2 index-item) imenu-default-goto-function)) - (position (if is-special-item - (cadr index-item) (cdr index-item))) - (args (if is-special-item (cdr (cddr index-item))))) - (apply function (car index-item) position args)) - (run-hooks 'imenu-after-jump-hook))) + (pcase index-item + (`(,name ,pos ,fn . ,args) + (push-mark nil t) + (apply fn name pos args) + (run-hooks 'imenu-after-jump-hook)) + (`(,name . ,pos) (imenu (list name pos imenu-default-goto-function))) + (_ (error "Unknown imenu item: %S" index-item))))) (provide 'imenu) diff --git a/lisp/info.el b/lisp/info.el index 405d6a22449..7c4d7f33231 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -138,10 +138,15 @@ The Lisp code is executed when the node is selected.") :type 'boolean :group 'info) -(defcustom Info-fontify-maximum-menu-size 100000 +;; It's unfortunate that nil means no fontification, as opposed to no limit, +;; since that differs from font-lock-maximum-size. +(defcustom Info-fontify-maximum-menu-size 400000 "Maximum size of menu to fontify if `font-lock-mode' is non-nil. -Set to nil to disable node fontification." - :type 'integer +Set to nil to disable node fontification; set to t for no limit." + :type '(choice (const :tag "No fontification" nil) + (const :tag "No size limit" t) + (integer :tag "Up to this many characters")) + :version "25.1" ; 100k -> 400k :group 'info) (defcustom Info-use-header-line t @@ -774,8 +779,7 @@ with the top-level Info directory. In interactive use, a non-numeric prefix argument directs this command to read a file name from the minibuffer. -A numeric prefix argument N selects an Info buffer named -\"*info*<%s>\". +A numeric prefix argument of N selects an Info buffer named \"*info*\". The search path for Info files is in the variable `Info-directory-list'. The top-level Info directory is made by combining all the files named `dir' @@ -4605,7 +4609,9 @@ first line or header line, and for breadcrumb links.") (and Info-fontify-visited-nodes ;; Don't take time to refontify visited nodes in huge nodes Info-fontify-maximum-menu-size - (< (- (point-max) (point-min)) Info-fontify-maximum-menu-size))) + (or (eq Info-fontify-maximum-menu-size t) + (< (- (point-max) (point-min)) + Info-fontify-maximum-menu-size)))) rbeg rend) ;; Fontify header line @@ -4862,7 +4868,9 @@ first line or header line, and for breadcrumb links.") (search-forward "\n* Menu:" nil t) ;; Don't take time to annotate huge menus Info-fontify-maximum-menu-size - (< (- (point-max) (point)) Info-fontify-maximum-menu-size)) + (or (eq Info-fontify-maximum-menu-size t) + (< (- (point-max) (point)) + Info-fontify-maximum-menu-size))) (let ((n 0) cont) (while (re-search-forward diff --git a/lisp/international/.gitignore b/lisp/international/.gitignore deleted file mode 100644 index 161b3125972..00000000000 --- a/lisp/international/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -# Generated Unicode files. -charprop.el -uni-bidi.el -uni-category.el -uni-combining.el -uni-comment.el -uni-decimal.el -uni-decomposition.el -uni-digit.el -uni-lowercase.el -uni-mirrored.el -uni-name.el -uni-numeric.el -uni-old-name.el -uni-titlecase.el -uni-uppercase.el diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 067b1c35fa0..daebf8d2817 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -495,12 +495,13 @@ with L, LRE, or LRO Unicode bidi character type.") (modify-category-entry key ?L)))) table))) -;; Load uni-mirrored.el if available, so that it gets dumped into -;; Emacs. This allows to start Emacs with force-load-messages in -;; ~/.emacs, and avoid infinite recursion in bidi_initialize, which -;; needs to load uni-mirrored.el in order to display the "Loading" -;; messages. +;; Load uni-mirrored.el and uni-brackets.el if available, so that they +;; get dumped into Emacs. This allows to start Emacs with +;; force-load-messages in ~/.emacs, and avoid infinite recursion in +;; bidi_initialize, which needs to load uni-mirrored.el and +;; uni-brackets.el in order to display the "Loading" messages. (unicode-property-table-internal 'mirroring) +(unicode-property-table-internal 'bracket-type) ;; Latin diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index f6c0719e4c4..61ecc8b702a 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -2776,11 +2776,7 @@ See also the documentation of `get-char-code-property' and (or (stringp table) (error "Not a char-table nor a file name: %s" table))) (if (stringp table) (setq table (purecopy table))) - (let ((slot (assq name char-code-property-alist))) - (if slot - (setcdr slot table) - (setq char-code-property-alist - (cons (cons name table) char-code-property-alist)))) + (setf (alist-get name char-code-property-alist) table) (put name 'char-code-property-documentation (purecopy docstring))) (defvar char-code-property-table diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el index 13a178531bc..ead2decb771 100644 --- a/lisp/international/mule-diag.el +++ b/lisp/international/mule-diag.el @@ -825,10 +825,18 @@ but still contains full information about each coding system." The IGNORED argument is ignored." (print-list "name (opened by):" (aref font-info 0)) (print-list " full name:" (aref font-info 1)) + (and (aref font-info 12) + (print-list " file name:" (aref font-info 12))) (print-list " size:" (format "%2d" (aref font-info 2))) (print-list " height:" (format "%2d" (aref font-info 3))) (print-list " baseline-offset:" (format "%2d" (aref font-info 4))) - (print-list "relative-compose:" (format "%2d" (aref font-info 5)))) + (print-list "relative-compose:" (format "%2d" (aref font-info 5))) + (print-list " default-ascent:" (format "%2d" (aref font-info 6))) + (print-list " ascent:" (format "%2d" (aref font-info 8))) + (print-list " descent:" (format "%2d" (aref font-info 9))) + (print-list " average-width:" (format "%2d" (aref font-info 11))) + (print-list " space-width:" (format "%2d" (aref font-info 10))) + (print-list " max-width:" (format "%2d" (aref font-info 7)))) ;;;###autoload (defun describe-font (fontname) diff --git a/lisp/isearch.el b/lisp/isearch.el index 20dabdc5b6c..fde93530cc0 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -974,10 +974,17 @@ The last thing it does is to run `isearch-update-post-hook'." (other-window 1)) (goto-char found-point)) ;; Keep same hscrolling as at the start of the search when possible - (let ((current-scroll (window-hscroll))) + (let ((current-scroll (window-hscroll)) + visible-p) (set-window-hscroll (selected-window) isearch-start-hscroll) - (unless (pos-visible-in-window-p) - (set-window-hscroll (selected-window) current-scroll)))) + (setq visible-p (pos-visible-in-window-p nil nil t)) + (if (or (not visible-p) + ;; When point is not visible because of hscroll, + ;; pos-visible-in-window-p returns non-nil, but + ;; the X coordinate it returns is 1 pixel beyond + ;; the last visible one. + (>= (car visible-p) (window-body-width nil t))) + (set-window-hscroll (selected-window) current-scroll)))) (if isearch-other-end (if (< isearch-other-end (point)) ; isearch-forward? (isearch-highlight isearch-other-end (point)) @@ -1968,10 +1975,12 @@ Subword is used when `subword-mode' is activated. " (lambda () (if (or (= (char-syntax (or (char-after) 0)) ?w) (= (char-syntax (or (char-after (1+ (point))) 0)) ?w)) - (if (and (boundp 'subword-mode) subword-mode) + (if (or (and (boundp 'subword-mode) subword-mode) + (and (boundp 'superword-mode) superword-mode)) (subword-forward 1) (forward-word 1)) - (forward-char 1)) (point)))) + (forward-char 1)) + (point)))) (defun isearch-yank-word (&optional arg) "Pull next word from buffer into search string. @@ -2512,7 +2521,10 @@ If there is no completion possible, say so and continue searching." "word ") "") (if isearch-regexp "regexp " "") - (if multi-isearch-next-buffer-current-function "multi " "") + (cond + (multi-isearch-file-list "multi-file ") + (multi-isearch-buffer-list "multi-buffer ") + (t "")) (or isearch-message-prefix-add "") (if nonincremental "search" "I-search") (if isearch-forward "" " backward") @@ -2722,7 +2734,7 @@ update the match data, and return point." ;; in any of these overlays, se we are safe in this case too. (defun isearch-open-necessary-overlays (ov) (let ((inside-overlay (and (> (point) (overlay-start ov)) - (< (point) (overlay-end ov)))) + (<= (point) (overlay-end ov)))) ;; If this exists it means that the overlay was opened using ;; this function, not by us tweaking the overlay properties. (fct-temp (overlay-get ov 'isearch-open-invisible-temporary))) @@ -2871,8 +2883,12 @@ since they have special meaning in a regexp." (defun isearch-text-char-description (c) (cond - ((< c ?\s) (propertize (format "^%c" (+ c 64)) 'face 'escape-glyph)) - ((= c ?\^?) (propertize "^?" 'face 'escape-glyph)) + ((< c ?\s) (propertize + (char-to-string c) + 'display (propertize (format "^%c" (+ c 64)) 'face 'escape-glyph))) + ((= c ?\^?) (propertize + (char-to-string c) + 'display (propertize "^?" 'face 'escape-glyph))) (t (char-to-string c)))) ;; General function to unread characters or events. @@ -3047,11 +3063,15 @@ Attempt to do the search exactly the way the pending Isearch would." (bound (if isearch-lazy-highlight-forward (min (or isearch-lazy-highlight-end-limit (point-max)) (if isearch-lazy-highlight-wrapped - isearch-lazy-highlight-start + (+ isearch-lazy-highlight-start + ;; Extend bound to match whole string at point + (1- (length isearch-lazy-highlight-last-string))) (window-end))) (max (or isearch-lazy-highlight-start-limit (point-min)) (if isearch-lazy-highlight-wrapped - isearch-lazy-highlight-end + (- isearch-lazy-highlight-end + ;; Extend bound to match whole string at point + (1- (length isearch-lazy-highlight-last-string))) (window-start)))))) ;; Use a loop like in `isearch-search'. (while retry diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index d346f050415..74bfa3ab078 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -125,7 +125,8 @@ The value of this variable is used when JIT Lock mode is turned on." (defcustom jit-lock-defer-time nil ;; 0.25 "Idle time after which deferred fontification should take place. -If nil, fontification is not deferred." +If nil, fontification is not deferred. +If 0, then fontification is only deferred while there is input pending." :group 'jit-lock :type '(choice (const :tag "never" nil) (number :tag "seconds"))) @@ -333,7 +334,9 @@ Only applies to the current buffer." This function is added to `fontification-functions' when `jit-lock-mode' is active." (when (and jit-lock-mode (not memory-full)) - (if (null jit-lock-defer-timer) + (if (not (and jit-lock-defer-timer + (or (not (eq jit-lock-defer-time 0)) + (input-pending-p)))) ;; No deferral. (jit-lock-fontify-now start (+ start jit-lock-chunk-size)) ;; Record the buffer for later fontification. @@ -499,7 +502,10 @@ non-nil in a repeated invocation of this function." message-log-max start) (if (and jit-lock-stealth-load - (> (car (load-average)) jit-lock-stealth-load)) + ;; load-average can return nil. The w32 emulation does + ;; that during the first few dozens of seconds after + ;; startup. + (> (or (car (load-average)) 0) jit-lock-stealth-load)) ;; Wait a little if load is too high. (setq delay jit-lock-stealth-time) (if (buffer-live-p buffer) diff --git a/lisp/language/.gitignore b/lisp/language/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/language/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index eca209012d6..41579222295 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -3,7 +3,7 @@ ;;; Code: -;;;### (autoloads nil "5x5" "play/5x5.el" (21187 63826 213216 0)) +;;;### (autoloads nil "5x5" "play/5x5.el" (21607 54478 800121 42000)) ;;; Generated autoloads from play/5x5.el (autoload '5x5 "5x5" "\ @@ -65,8 +65,8 @@ should return a grid vector array that is the new solution. ;;;*** -;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (21220 61111 -;;;;;; 156047 0)) +;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/ada-mode.el (autoload 'ada-add-extensions "ada-mode" "\ @@ -85,8 +85,8 @@ Ada mode is the major mode for editing Ada code. ;;;*** -;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/ada-stmt.el (autoload 'ada-header "ada-stmt" "\ @@ -96,8 +96,8 @@ Insert a descriptive header at the top of the file. ;;;*** -;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/ada-xref.el (autoload 'ada-find-file "ada-xref" "\ @@ -108,8 +108,8 @@ Completion is available. ;;;*** -;;;### (autoloads nil "add-log" "vc/add-log.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "add-log" "vc/add-log.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from vc/add-log.el (put 'change-log-default-name 'safe-local-variable 'string-or-null-p) @@ -238,8 +238,8 @@ old-style time formats for entries are supported. ;;;*** -;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (21278 229 -;;;;;; 682967 799000)) +;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/advice.el (defvar ad-redefinition-action 'warn "\ @@ -374,7 +374,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) ;;;*** -;;;### (autoloads nil "align" "align.el" (21417 20521 870414 0)) +;;;### (autoloads nil "align" "align.el" (21607 54477 800124 118000)) ;;; Generated autoloads from align.el (autoload 'align "align" "\ @@ -477,7 +477,7 @@ A replacement function for `newline-and-indent', aligning as it goes. ;;;*** -;;;### (autoloads nil "allout" "allout.el" (21187 63826 213216 0)) +;;;### (autoloads nil "allout" "allout.el" (21607 54477 800124 118000)) ;;; Generated autoloads from allout.el (push (purecopy '(allout 2 3)) package--builtin-versions) @@ -837,8 +837,8 @@ for details on preparing Emacs for automatic allout activation. ;;;*** -;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (21350 -;;;;;; 58112 380040 0)) +;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (21609 +;;;;;; 55608 852266 580000)) ;;; Generated autoloads from allout-widgets.el (push (purecopy '(allout-widgets 1 0)) package--builtin-versions) @@ -896,8 +896,8 @@ outline hot-spot navigation (see `allout-mode'). ;;;*** -;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/ange-ftp.el (defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir) @@ -918,8 +918,8 @@ directory, so that Emacs will know its current contents. ;;;*** -;;;### (autoloads nil "animate" "play/animate.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "animate" "play/animate.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/animate.el (autoload 'animate-string "animate" "\ @@ -951,8 +951,8 @@ the buffer *Birthday-Present-for-Name*. ;;;*** -;;;### (autoloads nil "ansi-color" "ansi-color.el" (21277 37159 898165 -;;;;;; 0)) +;;;### (autoloads nil "ansi-color" "ansi-color.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from ansi-color.el (push (purecopy '(ansi-color 3 4 2)) package--builtin-versions) @@ -978,8 +978,8 @@ This is a good function to put in `comint-output-filter-functions'. ;;;*** -;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (21208 -;;;;;; 39903 471297 312000)) +;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/antlr-mode.el (push (purecopy '(antlr-mode 2 2 3)) package--builtin-versions) @@ -1015,8 +1015,8 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'. ;;;*** -;;;### (autoloads nil "appt" "calendar/appt.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "appt" "calendar/appt.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from calendar/appt.el (autoload 'appt-add "appt" "\ @@ -1037,8 +1037,8 @@ ARG is positive, otherwise off. ;;;*** -;;;### (autoloads nil "apropos" "apropos.el" (21259 10807 217062 -;;;;;; 0)) +;;;### (autoloads nil "apropos" "apropos.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from apropos.el (autoload 'apropos-read-pattern "apropos" "\ @@ -1153,8 +1153,8 @@ Returns list of symbols and documentation found. ;;;*** -;;;### (autoloads nil "arc-mode" "arc-mode.el" (21207 49087 974317 -;;;;;; 0)) +;;;### (autoloads nil "arc-mode" "arc-mode.el" (21621 7062 810116 +;;;;;; 332000)) ;;; Generated autoloads from arc-mode.el (autoload 'archive-mode "arc-mode" "\ @@ -1174,7 +1174,7 @@ archive. ;;;*** -;;;### (autoloads nil "array" "array.el" (21240 46395 727291 0)) +;;;### (autoloads nil "array" "array.el" (21607 54477 800124 118000)) ;;; Generated autoloads from array.el (autoload 'array-mode "array" "\ @@ -1245,8 +1245,8 @@ Entering array mode calls the function `array-mode-hook'. ;;;*** -;;;### (autoloads nil "artist" "textmodes/artist.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "artist" "textmodes/artist.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/artist.el (push (purecopy '(artist 1 2 6)) package--builtin-versions) @@ -1452,8 +1452,8 @@ Keymap summary ;;;*** -;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (21419 62246 -;;;;;; 751914 0)) +;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload 'asm-mode "asm-mode" "\ @@ -1480,8 +1480,8 @@ Special commands: ;;;*** -;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (21342 -;;;;;; 10917 902592 0)) +;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (21625 +;;;;;; 43838 483701 627000)) ;;; Generated autoloads from gnus/auth-source.el (defvar auth-source-cache-expiry 7200 "\ @@ -1493,8 +1493,8 @@ let-binding.") ;;;*** -;;;### (autoloads nil "autoarg" "autoarg.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "autoarg" "autoarg.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from autoarg.el (defvar autoarg-mode nil "\ @@ -1554,8 +1554,8 @@ This is similar to `autoarg-mode' but rebinds the keypad keys ;;;*** -;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/autoconf.el (autoload 'autoconf-mode "autoconf" "\ @@ -1565,8 +1565,8 @@ Major mode for editing Autoconf configure.ac files. ;;;*** -;;;### (autoloads nil "autoinsert" "autoinsert.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "autoinsert" "autoinsert.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from autoinsert.el (autoload 'auto-insert "autoinsert" "\ @@ -1604,8 +1604,8 @@ insert a template for the file depending on the mode of the buffer. ;;;*** -;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (21425 -;;;;;; 43779 760127 645000)) +;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (21628 +;;;;;; 43483 380149 771000)) ;;; Generated autoloads from emacs-lisp/autoload.el (put 'generated-autoload-file 'safe-local-variable 'stringp) @@ -1656,8 +1656,8 @@ should be non-nil). ;;;*** -;;;### (autoloads nil "autorevert" "autorevert.el" (21315 5521 187938 -;;;;;; 0)) +;;;### (autoloads nil "autorevert" "autorevert.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from autorevert.el (autoload 'auto-revert-mode "autorevert" "\ @@ -1745,7 +1745,7 @@ specifies in the mode line. ;;;*** -;;;### (autoloads nil "avoid" "avoid.el" (21379 5287 607434 0)) +;;;### (autoloads nil "avoid" "avoid.el" (21607 54477 800124 118000)) ;;; Generated autoloads from avoid.el (defvar mouse-avoidance-mode nil "\ @@ -1783,8 +1783,8 @@ definition of \"random distance\".) ;;;*** -;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/bat-mode.el (add-to-list 'auto-mode-alist '("\\.\\(bat\\|cmd\\)\\'" . bat-mode)) @@ -1802,7 +1802,8 @@ Run script using `bat-run' and `bat-run-args'. ;;;*** -;;;### (autoloads nil "battery" "battery.el" (21346 7974 405729 0)) +;;;### (autoloads nil "battery" "battery.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from battery.el (put 'battery-mode-line-string 'risky-local-variable t) @@ -1837,8 +1838,8 @@ seconds. ;;;*** -;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/benchmark.el (autoload 'benchmark-run "benchmark" "\ @@ -1874,8 +1875,8 @@ For non-interactive use see also `benchmark-run' and ;;;*** -;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (21414 44327 -;;;;;; 790846 0)) +;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/bibtex.el (autoload 'bibtex-initialize "bibtex" "\ @@ -1967,7 +1968,7 @@ A prefix arg negates the value of `bibtex-search-entry-globally'. ;;;*** ;;;### (autoloads nil "bibtex-style" "textmodes/bibtex-style.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54478 800121 42000)) ;;; Generated autoloads from textmodes/bibtex-style.el (autoload 'bibtex-style-mode "bibtex-style" "\ @@ -1977,8 +1978,8 @@ Major mode for editing BibTeX style files. ;;;*** -;;;### (autoloads nil "binhex" "mail/binhex.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "binhex" "mail/binhex.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from mail/binhex.el (defconst binhex-begin-line "^:...............................................................$" "\ @@ -2002,8 +2003,8 @@ Binhex decode region between START and END. ;;;*** -;;;### (autoloads nil "blackbox" "play/blackbox.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "blackbox" "play/blackbox.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from play/blackbox.el (autoload 'blackbox "blackbox" "\ @@ -2122,8 +2123,8 @@ a reflection. ;;;*** -;;;### (autoloads nil "bookmark" "bookmark.el" (21397 35239 170099 -;;;;;; 0)) +;;;### (autoloads nil "bookmark" "bookmark.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-r-map "b" 'bookmark-jump) (define-key ctl-x-r-map "m" 'bookmark-set) @@ -2316,8 +2317,8 @@ Incremental search of bookmarks, hiding the non-matches as we go. ;;;*** -;;;### (autoloads nil "browse-url" "net/browse-url.el" (21364 37926 -;;;;;; 837230 0)) +;;;### (autoloads nil "browse-url" "net/browse-url.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function 'browse-url-default-browser "\ @@ -2632,7 +2633,7 @@ from `browse-url-elinks-wrapper'. ;;;*** -;;;### (autoloads nil "bs" "bs.el" (21383 2343 498187 0)) +;;;### (autoloads nil "bs" "bs.el" (21607 54477 800124 118000)) ;;; Generated autoloads from bs.el (push (purecopy '(bs 1 17)) package--builtin-versions) @@ -2673,8 +2674,8 @@ name of buffer configuration. ;;;*** -;;;### (autoloads nil "bubbles" "play/bubbles.el" (21410 47268 609529 -;;;;;; 0)) +;;;### (autoloads nil "bubbles" "play/bubbles.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/bubbles.el (autoload 'bubbles "bubbles" "\ @@ -2696,7 +2697,7 @@ columns on its right towards the left. ;;;*** ;;;### (autoloads nil "bug-reference" "progmodes/bug-reference.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54478 800121 42000)) ;;; Generated autoloads from progmodes/bug-reference.el (put 'bug-reference-url-format 'safe-local-variable (lambda (s) (or (stringp s) (and (symbolp s) (get s 'bug-reference-url-format))))) @@ -2716,8 +2717,8 @@ Like `bug-reference-mode', but only buttonize in comments and strings. ;;;*** -;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (21334 -;;;;;; 16805 699731 0)) +;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/bytecomp.el (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) @@ -2837,8 +2838,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (21350 -;;;;;; 5031 352444 0)) +;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (21617 +;;;;;; 49721 420132 227000)) ;;; Generated autoloads from calendar/cal-china.el (put 'calendar-chinese-time-zone 'risky-local-variable t) @@ -2847,8 +2848,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (21609 55608 +;;;;;; 852266 580000)) ;;; Generated autoloads from calendar/cal-dst.el (put 'calendar-daylight-savings-starts 'risky-local-variable t) @@ -2859,8 +2860,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from calendar/cal-hebrew.el (autoload 'calendar-hebrew-list-yahrzeits "cal-hebrew" "\ @@ -2870,11 +2871,9 @@ from the cursor position. \(fn DEATH-DATE START-YEAR END-YEAR)" t nil) -(define-obsolete-function-alias 'list-yahrzeit-dates 'calendar-hebrew-list-yahrzeits "23.1") - ;;;*** -;;;### (autoloads nil "calc" "calc/calc.el" (21377 49959 896066 0)) +;;;### (autoloads nil "calc" "calc/calc.el" (21607 54477 800124 118000)) ;;; Generated autoloads from calc/calc.el (define-key ctl-x-map "*" 'calc-dispatch) @@ -2895,8 +2894,10 @@ Invoke the Calculator and give it a full-sized window. (autoload 'quick-calc "calc" "\ Do a quick calculation in the minibuffer without invoking full Calculator. +With prefix argument INSERT, insert the result in the current +buffer. Otherwise, the result is copied into the kill ring. -\(fn)" t nil) +\(fn &optional INSERT)" t nil) (autoload 'calc-eval "calc" "\ Do a quick calculation and return the result as a string. @@ -2958,8 +2959,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from calc/calc-undo.el (autoload 'calc-undo "calc-undo" "\ @@ -2969,8 +2970,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads nil "calculator" "calculator.el" (21417 20521 870414 -;;;;;; 0)) +;;;### (autoloads nil "calculator" "calculator.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from calculator.el (autoload 'calculator "calculator" "\ @@ -2981,8 +2982,8 @@ See the documentation for `calculator-mode' for more information. ;;;*** -;;;### (autoloads nil "calendar" "calendar/calendar.el" (21403 21198 -;;;;;; 190145 203000)) +;;;### (autoloads nil "calendar" "calendar/calendar.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from calendar/calendar.el (autoload 'calendar "calendar" "\ @@ -3025,8 +3026,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads nil "canlock" "gnus/canlock.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "canlock" "gnus/canlock.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/canlock.el (autoload 'canlock-insert-header "canlock" "\ @@ -3043,15 +3044,8 @@ it fails. ;;;*** -;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (21187 -;;;;;; 63826 213216 0)) -;;; Generated autoloads from progmodes/cc-compat.el -(put 'c-indent-level 'safe-local-variable 'integerp) - -;;;*** - -;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (21425 -;;;;;; 14635 268306 0)) +;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (21623 +;;;;;; 2108 292281 129000)) ;;; Generated autoloads from progmodes/cc-engine.el (autoload 'c-guess-basic-syntax "cc-engine" "\ @@ -3061,8 +3055,8 @@ Return the syntactic context of the current line. ;;;*** -;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (21419 62246 -;;;;;; 751914 0)) +;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/cc-guess.el (defvar c-guess-guessed-offsets-alist nil "\ @@ -3160,8 +3154,8 @@ the absolute file name of the file if STYLE-NAME is nil. ;;;*** -;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (21269 46645 -;;;;;; 763684 0)) +;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload 'c-initialize-cc-mode "cc-mode" "\ @@ -3318,8 +3312,8 @@ Key bindings: ;;;*** -;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/cc-styles.el (autoload 'c-set-style "cc-styles" "\ @@ -3370,8 +3364,8 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/cc-vars.el (put 'c-basic-offset 'safe-local-variable 'integerp) (put 'c-backslash-column 'safe-local-variable 'integerp) @@ -3379,8 +3373,8 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "ccl" "international/ccl.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "ccl" "international/ccl.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from international/ccl.el (autoload 'ccl-compile "ccl" "\ @@ -3640,8 +3634,8 @@ See the documentation of `define-ccl-program' for the detail of CCL program. ;;;*** -;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/cconv.el (autoload 'cconv-closure-convert "cconv" "\ @@ -3660,15 +3654,15 @@ Add the warnings that closure conversion would encounter. ;;;*** -;;;### (autoloads nil "cedet" "cedet/cedet.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "cedet" "cedet/cedet.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from cedet/cedet.el (push (purecopy '(cedet 2 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (21226 13501 -;;;;;; 706948 0)) +;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/cfengine.el (push (purecopy '(cfengine 1 3)) package--builtin-versions) @@ -3691,22 +3685,21 @@ to the action header. \(fn)" t nil) (autoload 'cfengine-auto-mode "cfengine" "\ -Choose between `cfengine2-mode' and `cfengine3-mode' depending -on the buffer contents +Choose `cfengine2-mode' or `cfengine3-mode' by buffer contents. -\(fn)" nil nil) +\(fn)" t nil) ;;;*** -;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/chart.el (push (purecopy '(chart 0 2)) package--builtin-versions) ;;;*** ;;;### (autoloads nil "check-declare" "emacs-lisp/check-declare.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/check-declare.el (autoload 'check-declare-file "check-declare" "\ @@ -3723,8 +3716,8 @@ Returns non-nil if any false statements are found. ;;;*** -;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/checkdoc.el (push (purecopy '(checkdoc 0 6 2)) package--builtin-versions) (put 'checkdoc-force-docstrings-flag 'safe-local-variable #'booleanp) @@ -3924,8 +3917,8 @@ checking of documentation strings. ;;;*** -;;;### (autoloads nil "china-util" "language/china-util.el" (21197 -;;;;;; 43194 200483 0)) +;;;### (autoloads nil "china-util" "language/china-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from language/china-util.el (autoload 'decode-hz-region "china-util" "\ @@ -3962,8 +3955,8 @@ Encode the text in the current buffer to HZ. ;;;*** -;;;### (autoloads nil "chistory" "chistory.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "chistory" "chistory.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from chistory.el (autoload 'repeat-matching-complex-command "chistory" "\ @@ -4002,8 +3995,8 @@ and runs the normal hook `command-history-hook'. ;;;*** -;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (21318 -;;;;;; 28582 821557 0)) +;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/cl-indent.el (autoload 'common-lisp-indent-function "cl-indent" "\ @@ -4086,8 +4079,8 @@ instead. ;;;*** -;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (21372 32036 -;;;;;; 731951 0)) +;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (21619 26501 +;;;;;; 970129 581000)) ;;; Generated autoloads from emacs-lisp/cl-lib.el (push (purecopy '(cl-lib 1 0)) package--builtin-versions) @@ -4117,8 +4110,8 @@ a future Emacs interpreter will be able to use it.") ;;;*** -;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/cmacexp.el (autoload 'c-macro-expand "cmacexp" "\ @@ -4138,8 +4131,8 @@ For use inside Lisp programs, see also `c-macro-expansion'. ;;;*** -;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from cmuscheme.el (autoload 'run-scheme "cmuscheme" "\ @@ -4159,7 +4152,7 @@ is run). ;;;*** -;;;### (autoloads nil "color" "color.el" (21187 63826 213216 0)) +;;;### (autoloads nil "color" "color.el" (21607 54477 800124 118000)) ;;; Generated autoloads from color.el (autoload 'color-name-to-rgb "color" "\ @@ -4178,7 +4171,7 @@ If FRAME cannot display COLOR, return nil. ;;;*** -;;;### (autoloads nil "comint" "comint.el" (21339 34726 39547 0)) +;;;### (autoloads nil "comint" "comint.el" (21607 54477 800124 118000)) ;;; Generated autoloads from comint.el (defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\ @@ -4279,8 +4272,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use. ;;;*** -;;;### (autoloads nil "compare-w" "vc/compare-w.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "compare-w" "vc/compare-w.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from vc/compare-w.el (autoload 'compare-windows "compare-w" "\ @@ -4313,8 +4306,8 @@ on third call it again advances points to the next difference and so on. ;;;*** -;;;### (autoloads nil "compile" "progmodes/compile.el" (21383 2343 -;;;;;; 498187 0)) +;;;### (autoloads nil "compile" "progmodes/compile.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ @@ -4495,8 +4488,8 @@ This is the value of `next-error-function' in Compilation buffers. ;;;*** -;;;### (autoloads nil "completion" "completion.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "completion" "completion.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from completion.el (defvar dynamic-completion-mode nil "\ @@ -4518,8 +4511,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (21383 -;;;;;; 2343 498187 0)) +;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from textmodes/conf-mode.el (autoload 'conf-mode "conf-mode" "\ @@ -4674,8 +4667,8 @@ For details see `conf-mode'. Example: ;;;*** -;;;### (autoloads nil "cookie1" "play/cookie1.el" (21245 64312 799897 -;;;;;; 0)) +;;;### (autoloads nil "cookie1" "play/cookie1.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/cookie1.el (autoload 'cookie "cookie1" "\ @@ -4703,8 +4696,8 @@ and subsequent calls on the same file won't go to disk. ;;;*** -;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/copyright.el (put 'copyright-at-end-flag 'safe-local-variable 'booleanp) (put 'copyright-names-regexp 'safe-local-variable 'stringp) @@ -4742,8 +4735,8 @@ If FIX is non-nil, run `copyright-fix-years' instead. ;;;*** -;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (21207 -;;;;;; 49087 974317 0)) +;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/cperl-mode.el (put 'cperl-indent-level 'safe-local-variable 'integerp) (put 'cperl-brace-offset 'safe-local-variable 'integerp) @@ -4941,8 +4934,8 @@ Run a `perldoc' on the word around point. ;;;*** -;;;### (autoloads nil "cpp" "progmodes/cpp.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "cpp" "progmodes/cpp.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from progmodes/cpp.el (autoload 'cpp-highlight-buffer "cpp" "\ @@ -4960,8 +4953,8 @@ Edit display information for cpp conditionals. ;;;*** -;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (21263 7861 493097 -;;;;;; 0)) +;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload 'completing-read-multiple "crm" "\ @@ -4987,19 +4980,25 @@ with empty strings removed. ;;;*** -;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (21285 31272 -;;;;;; 331063 0)) +;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/css-mode.el (autoload 'css-mode "css-mode" "\ Major mode to edit Cascading Style Sheets. +\(fn)" t nil) + (add-to-list 'auto-mode-alist '("\\.scss\\'" . scss-mode)) + +(autoload 'scss-mode "css-mode" "\ +Major mode to edit \"Sassy CSS\" files. + \(fn)" t nil) ;;;*** -;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (21319 49445 -;;;;;; 508378 0)) +;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ @@ -5044,8 +5043,8 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings. ;;;*** -;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emulation/cua-rect.el (autoload 'cua-rectangle-mark-mode "cua-rect" "\ @@ -5056,8 +5055,8 @@ Activates the region if needed. Only lasts until the region is deactivated. ;;;*** -;;;### (autoloads nil "cus-edit" "cus-edit.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "cus-edit" "cus-edit.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from cus-edit.el (defvar custom-browse-sort-alphabetically nil "\ @@ -5369,8 +5368,8 @@ The format is suitable for use with `easy-menu-define'. ;;;*** -;;;### (autoloads nil "cus-theme" "cus-theme.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "cus-theme" "cus-theme.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from cus-theme.el (autoload 'customize-create-theme "cus-theme" "\ @@ -5403,8 +5402,8 @@ omitted, a buffer named *Custom Themes* is used. ;;;*** -;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from vc/cvs-status.el (autoload 'cvs-status-mode "cvs-status" "\ @@ -5414,8 +5413,8 @@ Mode used for cvs status output. ;;;*** -;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (21383 2343 498187 -;;;;;; 0)) +;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from progmodes/cwarn.el (push (purecopy '(cwarn 1 3 1)) package--builtin-versions) @@ -5459,8 +5458,8 @@ See `cwarn-mode' for more information on Cwarn mode. ;;;*** -;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (21193 -;;;;;; 16180 875828 0)) +;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from language/cyril-util.el (autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\ @@ -5488,8 +5487,8 @@ If the argument is nil, we return the display table to its standard state. ;;;*** -;;;### (autoloads nil "dabbrev" "dabbrev.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "dabbrev" "dabbrev.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from dabbrev.el (put 'dabbrev-case-fold-search 'risky-local-variable t) (put 'dabbrev-case-replace 'risky-local-variable t) @@ -5535,8 +5534,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]. ;;;*** -;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (21197 43194 -;;;;;; 200483 0)) +;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from cedet/data-debug.el (autoload 'data-debug-new-buffer "data-debug" "\ @@ -5546,7 +5545,7 @@ Create a new data-debug buffer with NAME. ;;;*** -;;;### (autoloads nil "dbus" "net/dbus.el" (21414 44327 790846 0)) +;;;### (autoloads nil "dbus" "net/dbus.el" (21607 54478 300138 641000)) ;;; Generated autoloads from net/dbus.el (autoload 'dbus-handle-event "dbus" "\ @@ -5559,8 +5558,8 @@ If the HANDLER returns a `dbus-error', it is propagated as return message. ;;;*** -;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload 'dcl-mode "dcl-mode" "\ @@ -5686,8 +5685,8 @@ There is some minimal font-lock support (see vars ;;;*** -;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger 'debug) @@ -5730,8 +5729,8 @@ To specify a nil argument interactively, exit with an empty minibuffer. ;;;*** -;;;### (autoloads nil "decipher" "play/decipher.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "decipher" "play/decipher.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from play/decipher.el (autoload 'decipher "decipher" "\ @@ -5759,8 +5758,8 @@ The most useful commands are: ;;;*** -;;;### (autoloads nil "delim-col" "delim-col.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "delim-col" "delim-col.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from delim-col.el (push (purecopy '(delim-col 2 1)) package--builtin-versions) @@ -5785,7 +5784,7 @@ START and END delimits the corners of text rectangle. ;;;*** -;;;### (autoloads nil "delsel" "delsel.el" (21414 44327 790846 0)) +;;;### (autoloads nil "delsel" "delsel.el" (21607 54477 800124 118000)) ;;; Generated autoloads from delsel.el (defalias 'pending-delete-mode 'delete-selection-mode) @@ -5813,8 +5812,8 @@ point regardless of any selection. ;;;*** -;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/derived.el (autoload 'define-derived-mode "derived" "\ @@ -5880,8 +5879,8 @@ the first time the mode is used. ;;;*** -;;;### (autoloads nil "descr-text" "descr-text.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "descr-text" "descr-text.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from descr-text.el (autoload 'describe-text-properties "descr-text" "\ @@ -5915,8 +5914,7 @@ relevant to POS. ;;;*** -;;;### (autoloads nil "desktop" "desktop.el" (21419 62246 751914 -;;;;;; 0)) +;;;### (autoloads nil "desktop" "desktop.el" (21616 28857 81577 239000)) ;;; Generated autoloads from desktop.el (defvar desktop-save-mode nil "\ @@ -6070,10 +6068,11 @@ if different). Save the desktop in a desktop file. Parameter DIRNAME specifies where to save the desktop file. Optional parameter RELEASE says whether we're done with this desktop. -If AUTO-SAVE is non-nil, compare the saved contents to the one last saved, -and don't save the buffer if they are the same. +If ONLY-IF-CHANGED is non-nil, compare the current desktop information +to that in the desktop file, and if the desktop information has not +changed since it was last saved then do not rewrite the file. -\(fn DIRNAME &optional RELEASE AUTO-SAVE)" t nil) +\(fn DIRNAME &optional RELEASE ONLY-IF-CHANGED)" t nil) (autoload 'desktop-remove "desktop" "\ Delete desktop file in `desktop-dirname'. @@ -6120,8 +6119,8 @@ Revert to the last loaded desktop. ;;;*** -;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/deuglify.el (autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\ @@ -6153,8 +6152,8 @@ Deuglify broken Outlook (Express) articles and redisplay. ;;;*** -;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (21350 -;;;;;; 58112 380040 0)) +;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (21625 +;;;;;; 43838 483701 627000)) ;;; Generated autoloads from calendar/diary-lib.el (autoload 'diary "diary-lib" "\ @@ -6196,7 +6195,7 @@ Major mode for editing the diary file. ;;;*** -;;;### (autoloads nil "diff" "vc/diff.el" (21240 46395 727291 0)) +;;;### (autoloads nil "diff" "vc/diff.el" (21607 54478 800121 42000)) ;;; Generated autoloads from vc/diff.el (defvar diff-switches (purecopy "-c") "\ @@ -6244,8 +6243,8 @@ This requires the external program `diff' to be in your `exec-path'. ;;;*** -;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (21409 26408 -;;;;;; 607647 0)) +;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (21628 45530 +;;;;;; 160140 360000)) ;;; Generated autoloads from vc/diff-mode.el (autoload 'diff-mode "diff-mode" "\ @@ -6277,7 +6276,7 @@ the mode if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "dig" "net/dig.el" (21187 63826 213216 0)) +;;;### (autoloads nil "dig" "net/dig.el" (21607 54478 300138 641000)) ;;; Generated autoloads from net/dig.el (autoload 'dig "dig" "\ @@ -6288,7 +6287,7 @@ Optional arguments are passed to `dig-invoke'. ;;;*** -;;;### (autoloads nil "dired" "dired.el" (21414 44327 790846 0)) +;;;### (autoloads nil "dired" "dired.el" (21607 54477 800124 118000)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches (purecopy "-al") "\ @@ -6408,8 +6407,8 @@ Keybindings: ;;;*** -;;;### (autoloads nil "dirtrack" "dirtrack.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "dirtrack" "dirtrack.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from dirtrack.el (autoload 'dirtrack-mode "dirtrack" "\ @@ -6439,8 +6438,8 @@ from `default-directory'. ;;;*** -;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/disass.el (autoload 'disassemble "disass" "\ @@ -6454,8 +6453,8 @@ redefine OBJECT if it is a symbol. ;;;*** -;;;### (autoloads nil "disp-table" "disp-table.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "disp-table" "disp-table.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from disp-table.el (autoload 'make-display-table "disp-table" "\ @@ -6576,8 +6575,8 @@ in `.emacs'. ;;;*** -;;;### (autoloads nil "dissociate" "play/dissociate.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "dissociate" "play/dissociate.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from play/dissociate.el (autoload 'dissociated-press "dissociate" "\ @@ -6593,7 +6592,7 @@ Default is 2. ;;;*** -;;;### (autoloads nil "dnd" "dnd.el" (21240 46395 727291 0)) +;;;### (autoloads nil "dnd" "dnd.el" (21607 54477 800124 118000)) ;;; Generated autoloads from dnd.el (defvar dnd-protocol-alist `((,(purecopy "^file:///") . dnd-open-local-file) (,(purecopy "^file://") . dnd-open-file) (,(purecopy "^file:") . dnd-open-local-file) (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . dnd-open-file)) "\ @@ -6613,8 +6612,8 @@ if some action was made, or nil if the URL is ignored.") ;;;*** -;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/dns-mode.el (autoload 'dns-mode "dns-mode" "\ @@ -6637,8 +6636,8 @@ Locate SOA record and increment the serial field. ;;;*** -;;;### (autoloads nil "doc-view" "doc-view.el" (21364 37926 837230 -;;;;;; 0)) +;;;### (autoloads nil "doc-view" "doc-view.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from doc-view.el (autoload 'doc-view-mode-p "doc-view" "\ @@ -6684,8 +6683,8 @@ See the command `doc-view-mode' for more information on this mode. ;;;*** -;;;### (autoloads nil "doctor" "play/doctor.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "doctor" "play/doctor.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/doctor.el (autoload 'doctor "doctor" "\ @@ -6695,7 +6694,7 @@ Switch to *doctor* buffer and start giving psychotherapy. ;;;*** -;;;### (autoloads nil "double" "double.el" (21187 63826 213216 0)) +;;;### (autoloads nil "double" "double.el" (21607 54477 800124 118000)) ;;; Generated autoloads from double.el (autoload 'double-mode "double" "\ @@ -6711,8 +6710,8 @@ strings when pressed twice. See `double-map' for details. ;;;*** -;;;### (autoloads nil "dunnet" "play/dunnet.el" (21406 50214 284651 -;;;;;; 0)) +;;;### (autoloads nil "dunnet" "play/dunnet.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/dunnet.el (push (purecopy '(dunnet 2 1)) package--builtin-versions) @@ -6723,8 +6722,8 @@ Switch to *dungeon* buffer and start game. ;;;*** -;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (21259 -;;;;;; 10807 217062 0)) +;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/easy-mmode.el (defalias 'easy-mmode-define-minor-mode 'define-minor-mode) @@ -6863,8 +6862,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX). ;;;*** -;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/easymenu.el (autoload 'easy-menu-define "easymenu" "\ @@ -7002,8 +7001,8 @@ To implement dynamic menus, either call this from ;;;*** -;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/ebnf2ps.el (push (purecopy '(ebnf2ps 4 4)) package--builtin-versions) @@ -7268,8 +7267,8 @@ See `ebnf-style-database' documentation. ;;;*** -;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/ebrowse.el (autoload 'ebrowse-tree-mode "ebrowse" "\ @@ -7417,8 +7416,8 @@ Display statistics for a class tree. ;;;*** -;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from ebuff-menu.el (autoload 'electric-buffer-list "ebuff-menu" "\ @@ -7450,8 +7449,8 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry. ;;;*** -;;;### (autoloads nil "echistory" "echistory.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "echistory" "echistory.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from echistory.el (autoload 'Electric-command-history-redo-expression "echistory" "\ @@ -7462,8 +7461,8 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** -;;;### (autoloads nil "ecomplete" "gnus/ecomplete.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ecomplete" "gnus/ecomplete.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/ecomplete.el (autoload 'ecomplete-setup "ecomplete" "\ @@ -7473,7 +7472,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** -;;;### (autoloads nil "ede" "cedet/ede.el" (21350 58112 380040 0)) +;;;### (autoloads nil "ede" "cedet/ede.el" (21607 54477 800124 118000)) ;;; Generated autoloads from cedet/ede.el (push (purecopy '(ede 1 2)) package--builtin-versions) @@ -7499,8 +7498,8 @@ an EDE controlled project. ;;;*** -;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (21261 4402 -;;;;;; 232258 508000)) +;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -7564,7 +7563,7 @@ Toggle edebugging of all forms. ;;;*** -;;;### (autoloads nil "ediff" "vc/ediff.el" (21308 46599 181916 0)) +;;;### (autoloads nil "ediff" "vc/ediff.el" (21607 54478 800121 42000)) ;;; Generated autoloads from vc/ediff.el (push (purecopy '(ediff 2 81 4)) package--builtin-versions) @@ -7836,8 +7835,8 @@ With optional NODE, goes to that node. ;;;*** -;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from vc/ediff-help.el (autoload 'ediff-customize "ediff-help" "\ @@ -7847,8 +7846,8 @@ With optional NODE, goes to that node. ;;;*** -;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from vc/ediff-mult.el (autoload 'ediff-show-registry "ediff-mult" "\ @@ -7860,8 +7859,8 @@ Display Ediff's registry. ;;;*** -;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (21350 58112 -;;;;;; 380040 0)) +;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from vc/ediff-util.el (autoload 'ediff-toggle-multiframe "ediff-util" "\ @@ -7880,8 +7879,8 @@ To change the default, set the variable `ediff-use-toolbar-p', which see. ;;;*** -;;;### (autoloads nil "edmacro" "edmacro.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "edmacro" "edmacro.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from edmacro.el (push (purecopy '(edmacro 2 1)) package--builtin-versions) @@ -7930,8 +7929,8 @@ or nil, use a compact 80-column format. ;;;*** -;;;### (autoloads nil "edt" "emulation/edt.el" (21417 20521 870414 -;;;;;; 0)) +;;;### (autoloads nil "edt" "emulation/edt.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emulation/edt.el (autoload 'edt-set-scroll-margins "edt" "\ @@ -7948,7 +7947,7 @@ Turn on EDT Emulation. ;;;*** -;;;### (autoloads nil "ehelp" "ehelp.el" (21240 46395 727291 0)) +;;;### (autoloads nil "ehelp" "ehelp.el" (21607 54477 800124 118000)) ;;; Generated autoloads from ehelp.el (autoload 'with-electric-help "ehelp" "\ @@ -7984,15 +7983,15 @@ BUFFER is put back into its original major mode. ;;;*** -;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (21379 5529 990138 -;;;;;; 255000)) +;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/eieio.el (push (purecopy '(eieio 1 4)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/eieio-core.el (push (purecopy '(eieio-core 1 4)) package--builtin-versions) @@ -8008,52 +8007,8 @@ It creates an autoload function for CNAME's constructor. ;;;*** -;;;### (autoloads nil "eldoc" "emacs-lisp/eldoc.el" (21305 16557 -;;;;;; 836987 0)) -;;; Generated autoloads from emacs-lisp/eldoc.el - -(defvar eldoc-minor-mode-string (purecopy " ElDoc") "\ -String to display in mode line when ElDoc Mode is enabled; nil for none.") - -(custom-autoload 'eldoc-minor-mode-string "eldoc" t) - -(autoload 'eldoc-mode "eldoc" "\ -Toggle echo area display of Lisp objects at point (ElDoc mode). -With a prefix argument ARG, enable ElDoc mode if ARG is positive, -and disable it otherwise. If called from Lisp, enable ElDoc mode -if ARG is omitted or nil. - -ElDoc mode is a buffer-local minor mode. When enabled, the echo -area displays information about a function or variable in the -text where point is. If point is on a documented variable, it -displays the first line of that variable's doc string. Otherwise -it displays the argument list of the function called in the -expression point is on. - -\(fn &optional ARG)" t nil) - -(define-obsolete-function-alias 'turn-on-eldoc-mode 'eldoc-mode "24.4") - -(defvar eldoc-documentation-function #'eldoc-documentation-function-default "\ -Function to call to return doc string. -The function of no args should return a one-line string for displaying -doc about a function etc. appropriate to the context around point. -It should return nil if there's no doc appropriate for the context. -Typically doc is returned if point is on a function-like name or in its -arg list. - -The result is used as is, so the function must explicitly handle -the variables `eldoc-argument-case' and `eldoc-echo-area-use-multiline-p', -and the face `eldoc-highlight-function-argument', if they are to have any -effect. - -This variable is expected to be made buffer-local by modes (other than -Emacs Lisp mode) that support ElDoc.") - -;;;*** - -;;;### (autoloads nil "elec-pair" "elec-pair.el" (21327 43559 923043 -;;;;;; 0)) +;;;### (autoloads nil "elec-pair" "elec-pair.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from elec-pair.el (defvar electric-pair-text-pairs '((34 . 34)) "\ @@ -8088,8 +8043,8 @@ closing parenthesis. (Likewise for brackets, etc.). ;;;*** -;;;### (autoloads nil "elide-head" "elide-head.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "elide-head" "elide-head.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from elide-head.el (autoload 'elide-head "elide-head" "\ @@ -8104,8 +8059,8 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks. ;;;*** -;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (21195 23530 -;;;;;; 495420 0)) +;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/elint.el (autoload 'elint-file "elint" "\ @@ -8140,8 +8095,8 @@ optional prefix argument REINIT is non-nil. ;;;*** -;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/elp.el (autoload 'elp-instrument-function "elp" "\ @@ -8175,8 +8130,8 @@ displayed. ;;;*** -;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lock.el (autoload 'emacs-lock-mode "emacs-lock" "\ @@ -8203,20 +8158,22 @@ Other values are interpreted as usual. ;;;*** -;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (21302 89 140834 -;;;;;; 615000)) +;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (21608 34742 +;;;;;; 2253 811000)) ;;; Generated autoloads from mail/emacsbug.el (autoload 'report-emacs-bug "emacsbug" "\ Report a bug in GNU Emacs. Prompts for bug subject. Leaves you in a mail buffer. -\(fn TOPIC &optional RECENT-KEYS)" t nil) +\(fn TOPIC &optional UNUSED)" t nil) + +(set-advertised-calling-convention 'report-emacs-bug '(topic) '"24.5") ;;;*** -;;;### (autoloads nil "emerge" "vc/emerge.el" (21364 37926 837230 -;;;;;; 0)) +;;;### (autoloads nil "emerge" "vc/emerge.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from vc/emerge.el (autoload 'emerge-files "emerge" "\ @@ -8276,8 +8233,8 @@ Emerge two RCS revisions of a file, with another revision as ancestor. ;;;*** -;;;### (autoloads nil "enriched" "textmodes/enriched.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "enriched" "textmodes/enriched.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/enriched.el (autoload 'enriched-mode "enriched" "\ @@ -8312,7 +8269,7 @@ Commands: ;;;*** -;;;### (autoloads nil "epa" "epa.el" (21294 46247 414129 0)) +;;;### (autoloads nil "epa" "epa.el" (21624 22971 140149 848000)) ;;; Generated autoloads from epa.el (autoload 'epa-list-keys "epa" "\ @@ -8500,8 +8457,8 @@ Insert selected KEYS after the point. ;;;*** -;;;### (autoloads nil "epa-dired" "epa-dired.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "epa-dired" "epa-dired.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from epa-dired.el (autoload 'epa-dired-do-decrypt "epa-dired" "\ @@ -8526,8 +8483,8 @@ Encrypt marked files. ;;;*** -;;;### (autoloads nil "epa-file" "epa-file.el" (21205 7349 58947 -;;;;;; 0)) +;;;### (autoloads nil "epa-file" "epa-file.el" (21611 10937 700236 +;;;;;; 3000)) ;;; Generated autoloads from epa-file.el (autoload 'epa-file-handler "epa-file" "\ @@ -8547,8 +8504,8 @@ Encrypt marked files. ;;;*** -;;;### (autoloads nil "epa-mail" "epa-mail.el" (21294 46247 414129 -;;;;;; 0)) +;;;### (autoloads nil "epa-mail" "epa-mail.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from epa-mail.el (autoload 'epa-mail-mode "epa-mail" "\ @@ -8625,7 +8582,7 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "epg" "epg.el" (21364 37926 837230 0)) +;;;### (autoloads nil "epg" "epg.el" (21611 10937 700236 3000)) ;;; Generated autoloads from epg.el (push (purecopy '(epg 1 0 0)) package--builtin-versions) @@ -8636,8 +8593,8 @@ Return a context object. ;;;*** -;;;### (autoloads nil "epg-config" "epg-config.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "epg-config" "epg-config.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from epg-config.el (autoload 'epg-configuration "epg-config" "\ @@ -8657,9 +8614,8 @@ Look at CONFIG and try to expand GROUP. ;;;*** -;;;### (autoloads nil "erc" "erc/erc.el" (21412 2598 318409 0)) +;;;### (autoloads nil "erc" "erc/erc.el" (21607 54478 300138 641000)) ;;; Generated autoloads from erc/erc.el -(push (purecopy '(erc 5 3)) package--builtin-versions) (autoload 'erc-select-read-args "erc" "\ Prompt the user for values of nick, server, port, and password. @@ -8706,36 +8662,36 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL. ;;;*** -;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-autoaway.el (autoload 'erc-autoaway-mode "erc-autoaway") ;;;*** -;;;### (autoloads nil "erc-button" "erc/erc-button.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-button" "erc/erc-button.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-button.el (autoload 'erc-button-mode "erc-button" nil t) ;;;*** -;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-capab.el (autoload 'erc-capab-identify-mode "erc-capab" nil t) ;;;*** -;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-compat.el (autoload 'erc-define-minor-mode "erc-compat") ;;;*** -;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-dcc.el (autoload 'erc-dcc-mode "erc-dcc") @@ -8765,14 +8721,14 @@ that subcommand. ;;;*** ;;;### (autoloads nil "erc-desktop-notifications" "erc/erc-desktop-notifications.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21617 49721 420132 227000)) ;;; Generated autoloads from erc/erc-desktop-notifications.el (autoload 'erc-notifications-mode "erc-desktop-notifications" "" t) ;;;*** -;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-ezbounce.el (autoload 'erc-cmd-ezb "erc-ezbounce" "\ @@ -8834,8 +8790,8 @@ Add EZBouncer convenience functions to ERC. ;;;*** -;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-fill.el (autoload 'erc-fill-mode "erc-fill" nil t) @@ -8847,8 +8803,8 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'. ;;;*** -;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-identd.el (autoload 'erc-identd-mode "erc-identd") @@ -8869,8 +8825,8 @@ system. ;;;*** -;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-imenu.el (autoload 'erc-create-imenu-index "erc-imenu" "\ @@ -8880,22 +8836,22 @@ system. ;;;*** -;;;### (autoloads nil "erc-join" "erc/erc-join.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "erc-join" "erc/erc-join.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-join.el (autoload 'erc-autojoin-mode "erc-join" nil t) ;;;*** -;;;### (autoloads nil "erc-list" "erc/erc-list.el" (21308 46599 181916 -;;;;;; 0)) +;;;### (autoloads nil "erc-list" "erc/erc-list.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-list.el (autoload 'erc-list-mode "erc-list") ;;;*** -;;;### (autoloads nil "erc-log" "erc/erc-log.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "erc-log" "erc/erc-log.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-log.el (autoload 'erc-log-mode "erc-log" nil t) @@ -8924,8 +8880,8 @@ You can save every individual message by putting this function on ;;;*** -;;;### (autoloads nil "erc-match" "erc/erc-match.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-match" "erc/erc-match.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-match.el (autoload 'erc-match-mode "erc-match") @@ -8971,15 +8927,15 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'. ;;;*** -;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-menu.el (autoload 'erc-menu-mode "erc-menu" nil t) ;;;*** -;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-netsplit.el (autoload 'erc-netsplit-mode "erc-netsplit") @@ -8990,8 +8946,8 @@ Show who's gone. ;;;*** -;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (21260 -;;;;;; 55795 711190 0)) +;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-networks.el (autoload 'erc-determine-network "erc-networks" "\ @@ -9008,8 +8964,8 @@ Interactively select a server to connect to using `erc-server-alist'. ;;;*** -;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-notify.el (autoload 'erc-notify-mode "erc-notify" nil t) @@ -9027,36 +8983,36 @@ with args, toggle notify status of people. ;;;*** -;;;### (autoloads nil "erc-page" "erc/erc-page.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "erc-page" "erc/erc-page.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-page.el (autoload 'erc-page-mode "erc-page") ;;;*** -;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-pcomplete.el (autoload 'erc-completion-mode "erc-pcomplete" nil t) ;;;*** -;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-replace.el (autoload 'erc-replace-mode "erc-replace") ;;;*** -;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-ring.el (autoload 'erc-ring-mode "erc-ring" nil t) ;;;*** -;;;### (autoloads nil "erc-services" "erc/erc-services.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "erc-services" "erc/erc-services.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-services.el (autoload 'erc-services-mode "erc-services" nil t) @@ -9073,15 +9029,15 @@ When called interactively, read the password using `read-passwd'. ;;;*** -;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-sound.el (autoload 'erc-sound-mode "erc-sound") ;;;*** -;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-speedbar.el (autoload 'erc-speedbar-browser "erc-speedbar" "\ @@ -9092,22 +9048,22 @@ This will add a speedbar major display mode. ;;;*** -;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-spelling.el (autoload 'erc-spelling-mode "erc-spelling" nil t) ;;;*** -;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-stamp.el (autoload 'erc-timestamp-mode "erc-stamp" nil t) ;;;*** -;;;### (autoloads nil "erc-track" "erc/erc-track.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "erc-track" "erc/erc-track.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from erc/erc-track.el (defvar erc-track-minor-mode nil "\ @@ -9132,8 +9088,8 @@ keybindings will not do anything useful. ;;;*** -;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from erc/erc-truncate.el (autoload 'erc-truncate-mode "erc-truncate" nil t) @@ -9152,8 +9108,8 @@ Meant to be used in hooks, like `erc-insert-post-hook'. ;;;*** -;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from erc/erc-xdcc.el (autoload 'erc-xdcc-mode "erc-xdcc") @@ -9164,8 +9120,8 @@ Add a file to `erc-xdcc-files'. ;;;*** -;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (21419 62246 751914 -;;;;;; 0)) +;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/ert.el (autoload 'ert-deftest "ert" "\ @@ -9230,8 +9186,8 @@ Display the documentation for TEST-OR-TEST-NAME (a symbol or ert-test). ;;;*** -;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/ert-x.el (put 'ert-with-test-buffer 'lisp-indent-function 1) @@ -9243,8 +9199,8 @@ Kill all test buffers that are still live. ;;;*** -;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (21213 1461 -;;;;;; 513511 0)) +;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from eshell/esh-mode.el (autoload 'eshell-mode "esh-mode" "\ @@ -9254,8 +9210,8 @@ Emacs shell interactive mode. ;;;*** -;;;### (autoloads nil "eshell" "eshell/eshell.el" (21403 21396 190131 -;;;;;; 14000)) +;;;### (autoloads nil "eshell" "eshell/eshell.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from eshell/eshell.el (push (purecopy '(eshell 2 4 2)) package--builtin-versions) @@ -9290,8 +9246,8 @@ corresponding to a successful execution. ;;;*** -;;;### (autoloads nil "etags" "progmodes/etags.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "etags" "progmodes/etags.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ @@ -9599,8 +9555,8 @@ for \\[find-tag] (which see). ;;;*** -;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from language/ethio-util.el (autoload 'setup-ethiopic-environment-internal "ethio-util" "\ @@ -9768,7 +9724,7 @@ With ARG, insert that many delimiters. ;;;*** -;;;### (autoloads nil "eudc" "net/eudc.el" (21187 63826 213216 0)) +;;;### (autoloads nil "eudc" "net/eudc.el" (21607 54478 300138 641000)) ;;; Generated autoloads from net/eudc.el (autoload 'eudc-set-server "eudc" "\ @@ -9822,8 +9778,8 @@ This does nothing except loading eudc by autoload side-effect. ;;;*** -;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/eudc-bob.el (autoload 'eudc-display-generic-binary "eudc-bob" "\ @@ -9858,8 +9814,8 @@ Display a button for the JPEG DATA. ;;;*** -;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from net/eudc-export.el (autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\ @@ -9875,8 +9831,8 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record. ;;;*** -;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from net/eudc-hotlist.el (autoload 'eudc-edit-hotlist "eudc-hotlist" "\ @@ -9886,8 +9842,8 @@ Edit the hotlist of directory servers in a specialized buffer. ;;;*** -;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/ewoc.el (autoload 'ewoc-create "ewoc" "\ @@ -9913,7 +9869,7 @@ fourth arg NOSEP non-nil inhibits this. ;;;*** -;;;### (autoloads nil "eww" "net/eww.el" (21423 59302 489365 0)) +;;;### (autoloads nil "eww" "net/eww.el" (21628 44513 720130 219000)) ;;; Generated autoloads from net/eww.el (autoload 'eww "eww" "\ @@ -9929,15 +9885,26 @@ Render a file using EWW. \(fn FILE)" t nil) +(autoload 'eww-search-words "eww" "\ +Search the web for the text between the point and marker. +See the `eww-search-prefix' variable for the search engine used. + +\(fn &optional BEG END)" t nil) + (autoload 'eww-browse-url "eww" "\ \(fn URL &optional NEW-WINDOW)" nil nil) +(autoload 'eww-list-bookmarks "eww" "\ +Display the bookmarks. + +\(fn)" t nil) + ;;;*** -;;;### (autoloads nil "executable" "progmodes/executable.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "executable" "progmodes/executable.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/executable.el (autoload 'executable-command-find-posix-p "executable" "\ @@ -9978,7 +9945,7 @@ file modes. ;;;*** -;;;### (autoloads nil "expand" "expand.el" (21187 63826 213216 0)) +;;;### (autoloads nil "expand" "expand.el" (21607 54478 300138 641000)) ;;; Generated autoloads from expand.el (autoload 'expand-add-abbrevs "expand" "\ @@ -10027,8 +9994,8 @@ This is used only in conjunction with `expand-add-abbrevs'. ;;;*** -;;;### (autoloads nil "f90" "progmodes/f90.el" (21383 2343 498187 -;;;;;; 0)) +;;;### (autoloads nil "f90" "progmodes/f90.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from progmodes/f90.el (autoload 'f90-mode "f90" "\ @@ -10095,8 +10062,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "face-remap" "face-remap.el" (21241 18251 378509 -;;;;;; 0)) +;;;### (autoloads nil "face-remap" "face-remap.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from face-remap.el (autoload 'face-remap-add-relative "face-remap" "\ @@ -10255,8 +10222,8 @@ Besides the choice of face, it is the same as `buffer-face-mode'. ;;;*** -;;;### (autoloads nil "feedmail" "mail/feedmail.el" (21002 1963 769129 -;;;;;; 0)) +;;;### (autoloads nil "feedmail" "mail/feedmail.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/feedmail.el (push (purecopy '(feedmail 11)) package--builtin-versions) @@ -10310,7 +10277,7 @@ you can set `feedmail-queue-reminder-alist' to nil. ;;;*** -;;;### (autoloads nil "ffap" "ffap.el" (21401 32300 989919 0)) +;;;### (autoloads nil "ffap" "ffap.el" (21607 54478 300138 641000)) ;;; Generated autoloads from ffap.el (autoload 'ffap-next "ffap" "\ @@ -10373,8 +10340,8 @@ Evaluate the forms in variable `ffap-bindings'. ;;;*** -;;;### (autoloads nil "filecache" "filecache.el" (21265 49588 918402 -;;;;;; 0)) +;;;### (autoloads nil "filecache" "filecache.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from filecache.el (autoload 'file-cache-add-directory "filecache" "\ @@ -10431,8 +10398,8 @@ the name is considered already unique; only the second substitution ;;;*** -;;;### (autoloads nil "filenotify" "filenotify.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "filenotify" "filenotify.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from filenotify.el (autoload 'file-notify-handle-event "filenotify" "\ @@ -10444,8 +10411,8 @@ Otherwise, signal a `file-notify-error'. ;;;*** -;;;### (autoloads nil "files-x" "files-x.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "files-x" "files-x.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from files-x.el (autoload 'add-file-local-variable "files-x" "\ @@ -10510,8 +10477,8 @@ Copy directory-local variables to the -*- line. ;;;*** -;;;### (autoloads nil "filesets" "filesets.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "filesets" "filesets.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from filesets.el (autoload 'filesets-init "filesets" "\ @@ -10522,8 +10489,8 @@ Set up hooks, load the cache file -- if existing -- and build the menu. ;;;*** -;;;### (autoloads nil "find-cmd" "find-cmd.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "find-cmd" "find-cmd.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from find-cmd.el (push (purecopy '(find-cmd 0 6)) package--builtin-versions) @@ -10543,8 +10510,8 @@ result is a string that should be ready for the command line. ;;;*** -;;;### (autoloads nil "find-dired" "find-dired.el" (21264 57319 597552 -;;;;;; 0)) +;;;### (autoloads nil "find-dired" "find-dired.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from find-dired.el (autoload 'find-dired "find-dired" "\ @@ -10584,8 +10551,8 @@ use in place of \"-ls\" as the final argument. ;;;*** -;;;### (autoloads nil "find-file" "find-file.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "find-file" "find-file.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from find-file.el (defvar ff-special-constructs `((,(purecopy "^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") lambda nil (buffer-substring (match-beginning 2) (match-end 2)))) "\ @@ -10675,8 +10642,8 @@ Visit the file you click on in another window. ;;;*** -;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (21419 -;;;;;; 62246 751914 0)) +;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload 'find-library "find-func" "\ @@ -10834,8 +10801,8 @@ Define some key bindings for the find-function family of functions. ;;;*** -;;;### (autoloads nil "find-lisp" "find-lisp.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "find-lisp" "find-lisp.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from find-lisp.el (autoload 'find-lisp-find-dired "find-lisp" "\ @@ -10855,7 +10822,7 @@ Change the filter on a `find-lisp-find-dired' buffer to REGEXP. ;;;*** -;;;### (autoloads nil "finder" "finder.el" (21283 26898 123687 848000)) +;;;### (autoloads nil "finder" "finder.el" (21607 54478 300138 641000)) ;;; Generated autoloads from finder.el (push (purecopy '(finder 1 0)) package--builtin-versions) @@ -10877,8 +10844,8 @@ Find packages matching a given keyword. ;;;*** -;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from flow-ctrl.el (autoload 'enable-flow-control "flow-ctrl" "\ @@ -10899,8 +10866,8 @@ to get the effect of a C-q. ;;;*** -;;;### (autoloads nil "flow-fill" "gnus/flow-fill.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "flow-fill" "gnus/flow-fill.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/flow-fill.el (autoload 'fill-flowed-encode "flow-fill" "\ @@ -10915,8 +10882,8 @@ to get the effect of a C-q. ;;;*** -;;;### (autoloads nil "flymake" "progmodes/flymake.el" (21245 64312 -;;;;;; 799897 0)) +;;;### (autoloads nil "flymake" "progmodes/flymake.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/flymake.el (push (purecopy '(flymake 0 3)) package--builtin-versions) @@ -10946,8 +10913,8 @@ Turn flymake mode off. ;;;*** -;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/flyspell.el (autoload 'flyspell-prog-mode "flyspell" "\ @@ -11017,14 +10984,14 @@ Flyspell whole buffer. ;;;*** -;;;### (autoloads nil "foldout" "foldout.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "foldout" "foldout.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from foldout.el (push (purecopy '(foldout 1 10)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "follow" "follow.el" (21240 46395 727291 0)) +;;;### (autoloads nil "follow" "follow.el" (21607 54478 300138 641000)) ;;; Generated autoloads from follow.el (autoload 'turn-on-follow-mode "follow" "\ @@ -11092,8 +11059,8 @@ selected if the original window is the first one in the frame. ;;;*** -;;;### (autoloads nil "footnote" "mail/footnote.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "footnote" "mail/footnote.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/footnote.el (push (purecopy '(footnote 0 19)) package--builtin-versions) @@ -11112,7 +11079,7 @@ play around with the following keys: ;;;*** -;;;### (autoloads nil "forms" "forms.el" (21187 63826 213216 0)) +;;;### (autoloads nil "forms" "forms.el" (21607 54478 300138 641000)) ;;; Generated autoloads from forms.el (autoload 'forms-mode "forms" "\ @@ -11148,8 +11115,8 @@ Visit a file in Forms mode in other window. ;;;*** -;;;### (autoloads nil "fortran" "progmodes/fortran.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "fortran" "progmodes/fortran.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/fortran.el (autoload 'fortran-mode "fortran" "\ @@ -11226,8 +11193,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "fortune" "play/fortune.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "fortune" "play/fortune.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/fortune.el (autoload 'fortune-add-fortune "fortune" "\ @@ -11275,8 +11242,8 @@ and choose the directory as the fortune-file. ;;;*** -;;;### (autoloads nil "frameset" "frameset.el" (21300 27302 473448 -;;;;;; 0)) +;;;### (autoloads nil "frameset" "frameset.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from frameset.el (defvar frameset-session-filter-alist '((name . :never) (left . frameset-filter-iconified) (minibuffer . frameset-filter-minibuffer) (top . frameset-filter-iconified)) "\ @@ -11462,15 +11429,15 @@ Interactively, reads the register using `register-read-with-preview'. ;;;*** -;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from play/gamegrid.el (push (purecopy '(gamegrid 1 2)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (21350 58112 -;;;;;; 380040 0)) +;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/gdb-mi.el (defvar gdb-enable-debug nil "\ @@ -11547,8 +11514,8 @@ detailed description of this mode. ;;;*** -;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (21202 31159 -;;;;;; 541460 0)) +;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/generic.el (defvar generic-mode-list nil "\ @@ -11628,8 +11595,8 @@ regular expression that can be used as an element of ;;;*** -;;;### (autoloads nil "glasses" "progmodes/glasses.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "glasses" "progmodes/glasses.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/glasses.el (autoload 'glasses-mode "glasses" "\ @@ -11643,8 +11610,8 @@ add virtual separators (like underscores) at places they belong to. ;;;*** -;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (21326 22692 -;;;;;; 123234 0)) +;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gmm-utils.el (autoload 'gmm-regexp-concat "gmm-utils" "\ @@ -11698,7 +11665,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST. ;;;*** -;;;### (autoloads nil "gnus" "gnus/gnus.el" (21296 1575 438327 0)) +;;;### (autoloads nil "gnus" "gnus/gnus.el" (21607 54478 300138 641000)) ;;; Generated autoloads from gnus/gnus.el (push (purecopy '(gnus 5 13)) package--builtin-versions) (when (fboundp 'custom-autoload) @@ -11748,8 +11715,8 @@ prompt the user for the name of an NNTP server to use. ;;;*** -;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (21274 64565 -;;;;;; 737222 0)) +;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload 'gnus-unplugged "gnus-agent" "\ @@ -11839,8 +11806,8 @@ CLEAN is obsolete and ignored. ;;;*** -;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (21393 38187 -;;;;;; 675040 0)) +;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (21623 2108 292281 +;;;;;; 129000)) ;;; Generated autoloads from gnus/gnus-art.el (autoload 'gnus-article-prepare-display "gnus-art" "\ @@ -11850,8 +11817,8 @@ Make the current buffer look like a nice article. ;;;*** -;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from gnus/gnus-bookmark.el (autoload 'gnus-bookmark-set "gnus-bookmark" "\ @@ -11874,8 +11841,8 @@ deletion, or > if it is flagged for displaying. ;;;*** -;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-cache.el (autoload 'gnus-jog-cache "gnus-cache" "\ @@ -11916,8 +11883,8 @@ supported. ;;;*** -;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-delay.el (autoload 'gnus-delay-article "gnus-delay" "\ @@ -11952,8 +11919,8 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** -;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-diary.el (autoload 'gnus-user-format-function-d "gnus-diary" "\ @@ -11968,8 +11935,8 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** -;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-dired.el (autoload 'turn-on-gnus-dired-mode "gnus-dired" "\ @@ -11979,8 +11946,8 @@ Convenience method to turn on gnus-dired-mode. ;;;*** -;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-draft.el (autoload 'gnus-draft-reminder "gnus-draft" "\ @@ -11990,8 +11957,8 @@ Reminder user if there are unsent drafts. ;;;*** -;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (21355 22953 -;;;;;; 61816 0)) +;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-fun.el (autoload 'gnus--random-face-with-type "gnus-fun" "\ @@ -12050,14 +12017,14 @@ Files matching `gnus-face-omit-files' are not considered. \(fn)" t nil) (autoload 'gnus-insert-random-face-header "gnus-fun" "\ -Insert a randome Face header from `gnus-face-directory'. +Insert a random Face header from `gnus-face-directory'. \(fn)" nil nil) ;;;*** -;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from gnus/gnus-gravatar.el (autoload 'gnus-treat-from-gravatar "gnus-gravatar" "\ @@ -12074,8 +12041,8 @@ If gravatars are already displayed, remove them. ;;;*** -;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-group.el (autoload 'gnus-fetch-group "gnus-group" "\ @@ -12092,8 +12059,8 @@ Pop up a frame and enter GROUP. ;;;*** -;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-html.el (autoload 'gnus-article-html "gnus-html" "\ @@ -12108,8 +12075,8 @@ Pop up a frame and enter GROUP. ;;;*** -;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-kill.el (defalias 'gnus-batch-kill 'gnus-batch-score) @@ -12122,8 +12089,8 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score ;;;*** -;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/gnus-ml.el (autoload 'turn-on-gnus-mailing-list-mode "gnus-ml" "\ @@ -12146,8 +12113,8 @@ Minor mode for providing mailing-list commands. ;;;*** -;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-mlspl.el (autoload 'gnus-group-split-setup "gnus-mlspl" "\ @@ -12247,8 +12214,8 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: ;;;*** -;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (21235 28473 -;;;;;; 29431 0)) +;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload 'gnus-msg-mail "gnus-msg" "\ @@ -12275,7 +12242,7 @@ Like `message-reply'. ;;;*** ;;;### (autoloads nil "gnus-notifications" "gnus/gnus-notifications.el" -;;;;;; (21296 1575 438327 0)) +;;;;;; (21607 54478 300138 641000)) ;;; Generated autoloads from gnus/gnus-notifications.el (autoload 'gnus-notifications "gnus-notifications" "\ @@ -12291,8 +12258,8 @@ This is typically a function to add in ;;;*** -;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-picon.el (autoload 'gnus-treat-from-picon "gnus-picon" "\ @@ -12315,8 +12282,8 @@ If picons are already displayed, remove them. ;;;*** -;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-range.el (autoload 'gnus-sorted-difference "gnus-range" "\ @@ -12383,8 +12350,8 @@ Add NUM into sorted LIST by side effect. ;;;*** -;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (21350 -;;;;;; 58112 380040 0)) +;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from gnus/gnus-registry.el (autoload 'gnus-registry-initialize "gnus-registry" "\ @@ -12399,8 +12366,8 @@ Install the registry hooks. ;;;*** -;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-sieve.el (autoload 'gnus-sieve-update "gnus-sieve" "\ @@ -12427,8 +12394,8 @@ See the documentation for these variables and functions for details. ;;;*** -;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-spec.el (autoload 'gnus-update-format "gnus-spec" "\ @@ -12438,8 +12405,8 @@ Update the format specification near point. ;;;*** -;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (21620 25920 +;;;;;; 601566 783000)) ;;; Generated autoloads from gnus/gnus-start.el (autoload 'gnus-declare-backend "gnus-start" "\ @@ -12449,8 +12416,8 @@ Declare back end NAME with ABILITIES as a Gnus back end. ;;;*** -;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21414 44327 -;;;;;; 790846 0)) +;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21623 2108 292281 +;;;;;; 129000)) ;;; Generated autoloads from gnus/gnus-sum.el (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ @@ -12461,8 +12428,8 @@ BOOKMARK is a bookmark name or a bookmark record. ;;;*** -;;;### (autoloads nil "gnus-sync" "gnus/gnus-sync.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-sync" "gnus/gnus-sync.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-sync.el (autoload 'gnus-sync-initialize "gnus-sync" "\ @@ -12477,8 +12444,8 @@ Install the sync hooks. ;;;*** -;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gnus-win.el (autoload 'gnus-add-configuration "gnus-win" "\ @@ -12488,8 +12455,8 @@ Add the window configuration CONF to `gnus-buffer-configuration'. ;;;*** -;;;### (autoloads nil "gnutls" "net/gnutls.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "gnutls" "net/gnutls.el" (21620 46140 530123 +;;;;;; 341000)) ;;; Generated autoloads from net/gnutls.el (defvar gnutls-min-prime-bits 256 "\ @@ -12505,8 +12472,8 @@ A value of nil says to use the default GnuTLS value.") ;;;*** -;;;### (autoloads nil "gomoku" "play/gomoku.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "gomoku" "play/gomoku.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/gomoku.el (autoload 'gomoku "gomoku" "\ @@ -12532,8 +12499,8 @@ Use \\[describe-mode] for more info. ;;;*** -;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from net/goto-addr.el (define-obsolete-function-alias 'goto-address-at-mouse 'goto-address-at-point "22.1") @@ -12574,8 +12541,8 @@ Like `goto-address-mode', but only for comments and strings. ;;;*** -;;;### (autoloads nil "gravatar" "gnus/gravatar.el" (21296 1575 438327 -;;;;;; 0)) +;;;### (autoloads nil "gravatar" "gnus/gravatar.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/gravatar.el (autoload 'gravatar-retrieve "gravatar" "\ @@ -12591,8 +12558,8 @@ Retrieve MAIL-ADDRESS gravatar and returns it. ;;;*** -;;;### (autoloads nil "grep" "progmodes/grep.el" (21356 43818 957743 -;;;;;; 0)) +;;;### (autoloads nil "grep" "progmodes/grep.el" (21612 31801 50825 +;;;;;; 711000)) ;;; Generated autoloads from progmodes/grep.el (defvar grep-window-height nil "\ @@ -12625,7 +12592,7 @@ List of hook functions run by `grep-process-setup' (see `run-hooks').") (custom-autoload 'grep-setup-hook "grep" t) -(defconst grep-regexp-alist '(("^\\(.+?\\)\\(:[ ]*\\)\\([1-9][0-9]*\\)\\2" 1 3 ((lambda nil (when grep-highlight-matches (let* ((beg (match-end 0)) (end (save-excursion (goto-char beg) (line-end-position))) (mbeg (text-property-any beg end 'font-lock-face grep-match-face))) (when mbeg (- mbeg beg))))) lambda nil (when grep-highlight-matches (let* ((beg (match-end 0)) (end (save-excursion (goto-char beg) (line-end-position))) (mbeg (text-property-any beg end 'font-lock-face grep-match-face)) (mend (and mbeg (next-single-property-change mbeg 'font-lock-face nil end)))) (when mend (- mend beg)))))) ("^Binary file \\(.+\\) matches$" 1 nil nil 0 1)) "\ +(defconst grep-regexp-alist '(("^\\(.*?[^/\n]\\):[ ]*\\([1-9][0-9]*\\)[ ]*:" 1 2 ((lambda nil (when grep-highlight-matches (let* ((beg (match-end 0)) (end (save-excursion (goto-char beg) (line-end-position))) (mbeg (text-property-any beg end 'font-lock-face grep-match-face))) (when mbeg (- mbeg beg))))) lambda nil (when grep-highlight-matches (let* ((beg (match-end 0)) (end (save-excursion (goto-char beg) (line-end-position))) (mbeg (text-property-any beg end 'font-lock-face grep-match-face)) (mend (and mbeg (next-single-property-change mbeg 'font-lock-face nil end)))) (when mend (- mend beg)))))) ("^Binary file \\(.+\\) matches$" 1 nil nil 0 1)) "\ Regexp used to match grep hits. See `compilation-error-regexp-alist'.") (defvar grep-program (purecopy "grep") "\ @@ -12756,7 +12723,7 @@ file name to `*.gz', and sets `grep-highlight-matches' to `always'. ;;;*** -;;;### (autoloads nil "gs" "gs.el" (21240 46395 727291 0)) +;;;### (autoloads nil "gs" "gs.el" (21607 54478 300138 641000)) ;;; Generated autoloads from gs.el (autoload 'gs-load-image "gs" "\ @@ -12769,8 +12736,8 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. ;;;*** -;;;### (autoloads nil "gud" "progmodes/gud.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "gud" "progmodes/gud.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from progmodes/gud.el (autoload 'gud-gdb "gud" "\ @@ -12818,6 +12785,13 @@ and source-file directory for your debugger. \(fn COMMAND-LINE)" t nil) +(autoload 'guiler "gud" "\ +Run guiler on program FILE in buffer `*gud-FILE*'. +The directory containing FILE becomes the initial working directory +and source-file directory for your debugger. + +\(fn COMMAND-LINE)" t nil) + (autoload 'jdb "gud" "\ Run jdb with command line COMMAND-LINE in a buffer. The buffer is named \"*gud*\" if no initial class is given or @@ -12858,8 +12832,8 @@ it if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (21388 20265 495157 -;;;;;; 0)) +;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/gv.el (autoload 'gv-get "gv" "\ @@ -12961,8 +12935,8 @@ binding mode. ;;;*** -;;;### (autoloads nil "handwrite" "play/handwrite.el" (21207 49087 -;;;;;; 974317 0)) +;;;### (autoloads nil "handwrite" "play/handwrite.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from play/handwrite.el (autoload 'handwrite "handwrite" "\ @@ -12979,8 +12953,8 @@ Variables: `handwrite-linespace' (default 12) ;;;*** -;;;### (autoloads nil "hanoi" "play/hanoi.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "hanoi" "play/hanoi.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/hanoi.el (autoload 'hanoi "hanoi" "\ @@ -13007,8 +12981,8 @@ to be updated. ;;;*** -;;;### (autoloads nil "hashcash" "mail/hashcash.el" (21296 1575 438327 -;;;;;; 0)) +;;;### (autoloads nil "hashcash" "mail/hashcash.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/hashcash.el (autoload 'hashcash-insert-payment "hashcash" "\ @@ -13050,8 +13024,8 @@ Prefix arg sets default accept amount temporarily. ;;;*** -;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (21231 31415 579137 -;;;;;; 0)) +;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from help-at-pt.el (autoload 'help-at-pt-string "help-at-pt" "\ @@ -13178,8 +13152,8 @@ different regions. With numeric argument ARG, behaves like ;;;*** -;;;### (autoloads nil "help-fns" "help-fns.el" (21419 62246 751914 -;;;;;; 0)) +;;;### (autoloads nil "help-fns" "help-fns.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from help-fns.el (autoload 'describe-function "help-fns" "\ @@ -13258,8 +13232,8 @@ Produce a texinfo buffer with sorted doc-strings from the DOC file. ;;;*** -;;;### (autoloads nil "help-macro" "help-macro.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "help-macro" "help-macro.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from help-macro.el (defvar three-step-help nil "\ @@ -13273,8 +13247,8 @@ gives the window that lists the options.") ;;;*** -;;;### (autoloads nil "help-mode" "help-mode.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "help-mode" "help-mode.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from help-mode.el (autoload 'help-mode "help-mode" "\ @@ -13373,8 +13347,8 @@ BOOKMARK is a bookmark name or a bookmark record. ;;;*** -;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/helper.el (autoload 'Helper-describe-bindings "helper" "\ @@ -13389,7 +13363,7 @@ Provide help for current mode. ;;;*** -;;;### (autoloads nil "hexl" "hexl.el" (21271 1974 113743 0)) +;;;### (autoloads nil "hexl" "hexl.el" (21607 54478 300138 641000)) ;;; Generated autoloads from hexl.el (autoload 'hexl-mode "hexl" "\ @@ -13483,7 +13457,8 @@ This discards the buffer's undo information. ;;;*** -;;;### (autoloads nil "hi-lock" "hi-lock.el" (21383 2343 498187 0)) +;;;### (autoloads nil "hi-lock" "hi-lock.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from hi-lock.el (autoload 'hi-lock-mode "hi-lock" "\ @@ -13650,8 +13625,8 @@ be found in variable `hi-lock-interactive-patterns'. ;;;*** -;;;### (autoloads nil "hideif" "progmodes/hideif.el" (21422 8265 -;;;;;; 959286 0)) +;;;### (autoloads nil "hideif" "progmodes/hideif.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/hideif.el (autoload 'hide-ifdef-mode "hideif" "\ @@ -13666,27 +13641,31 @@ that the C preprocessor would eliminate may be hidden from view. Several variables affect how the hiding is done: `hide-ifdef-env' - An association list of defined and undefined symbols for the - current buffer. Initially, the global value of `hide-ifdef-env' - is used. + An association list of defined and undefined symbols for the + current project. Initially, the global value of `hide-ifdef-env' + is used. This variable was a buffer-local variable, which limits + hideif to parse only one C/C++ file at a time. We've extended + hideif to support parsing a C/C++ project containing multiple C/C++ + source files opened simultaneously in different buffers. Therefore + `hide-ifdef-env' can no longer be buffer local but must be global. `hide-ifdef-define-alist' - An association list of defined symbol lists. + An association list of defined symbol lists. Use `hide-ifdef-set-define-alist' to save the current `hide-ifdef-env' and `hide-ifdef-use-define-alist' to set the current `hide-ifdef-env' from one of the lists in `hide-ifdef-define-alist'. `hide-ifdef-lines' - Set to non-nil to not show #if, #ifdef, #ifndef, #else, and - #endif lines when hiding. + Set to non-nil to not show #if, #ifdef, #ifndef, #else, and + #endif lines when hiding. `hide-ifdef-initially' - Indicates whether `hide-ifdefs' should be called when Hide-Ifdef mode - is activated. + Indicates whether `hide-ifdefs' should be called when Hide-Ifdef mode + is activated. `hide-ifdef-read-only' - Set to non-nil if you want to make buffers read only while hiding. - After `show-ifdefs', read-only status is restored to previous value. + Set to non-nil if you want to make buffers read only while hiding. + After `show-ifdefs', read-only status is restored to previous value. \\{hide-ifdef-mode-map} @@ -13694,8 +13673,8 @@ Several variables affect how the hiding is done: ;;;*** -;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (21381 47015 -;;;;;; 637535 0)) +;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) "\ @@ -13757,8 +13736,8 @@ Unconditionally turn off `hs-minor-mode'. ;;;*** -;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (21271 1974 113743 -;;;;;; 0)) +;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from hilit-chg.el (autoload 'highlight-changes-mode "hilit-chg" "\ @@ -13889,8 +13868,8 @@ See `highlight-changes-mode' for more information on Highlight-Changes mode. ;;;*** -;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (21402 53158 293492 -;;;;;; 0)) +;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from hippie-exp.el (push (purecopy '(hippie-exp 1 6)) package--builtin-versions) @@ -13922,8 +13901,8 @@ argument VERBOSE non-nil makes the function verbose. ;;;*** -;;;### (autoloads nil "hl-line" "hl-line.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "hl-line" "hl-line.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from hl-line.el (autoload 'hl-line-mode "hl-line" "\ @@ -13972,12 +13951,10 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and ;;;*** -;;;### (autoloads nil "holidays" "calendar/holidays.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "holidays" "calendar/holidays.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from calendar/holidays.el -(define-obsolete-variable-alias 'general-holidays 'holiday-general-holidays "23.1") - (defvar holiday-general-holidays (mapcar 'purecopy '((holiday-fixed 1 1 "New Year's Day") (holiday-float 1 1 3 "Martin Luther King Day") (holiday-fixed 2 2 "Groundhog Day") (holiday-fixed 2 14 "Valentine's Day") (holiday-float 2 1 3 "President's Day") (holiday-fixed 3 17 "St. Patrick's Day") (holiday-fixed 4 1 "April Fools' Day") (holiday-float 5 0 2 "Mother's Day") (holiday-float 5 1 -1 "Memorial Day") (holiday-fixed 6 14 "Flag Day") (holiday-float 6 0 3 "Father's Day") (holiday-fixed 7 4 "Independence Day") (holiday-float 9 1 1 "Labor Day") (holiday-float 10 1 2 "Columbus Day") (holiday-fixed 10 31 "Halloween") (holiday-fixed 11 11 "Veteran's Day") (holiday-float 11 4 4 "Thanksgiving"))) "\ General holidays. Default value is for the United States. See the documentation for `calendar-holidays' for details.") @@ -13986,8 +13963,6 @@ See the documentation for `calendar-holidays' for details.") (put 'holiday-general-holidays 'risky-local-variable t) -(define-obsolete-variable-alias 'oriental-holidays 'holiday-oriental-holidays "23.1") - (defvar holiday-oriental-holidays (mapcar 'purecopy '((holiday-chinese-new-year) (if calendar-chinese-all-holidays-flag (append (holiday-chinese 1 15 "Lantern Festival") (holiday-chinese-qingming) (holiday-chinese 5 5 "Dragon Boat Festival") (holiday-chinese 7 7 "Double Seventh Festival") (holiday-chinese 8 15 "Mid-Autumn Festival") (holiday-chinese 9 9 "Double Ninth Festival") (holiday-chinese-winter-solstice))))) "\ Oriental holidays. See the documentation for `calendar-holidays' for details.") @@ -13996,8 +13971,6 @@ See the documentation for `calendar-holidays' for details.") (put 'holiday-oriental-holidays 'risky-local-variable t) -(define-obsolete-variable-alias 'local-holidays 'holiday-local-holidays "23.1") - (defvar holiday-local-holidays nil "\ Local holidays. See the documentation for `calendar-holidays' for details.") @@ -14006,8 +13979,6 @@ See the documentation for `calendar-holidays' for details.") (put 'holiday-local-holidays 'risky-local-variable t) -(define-obsolete-variable-alias 'other-holidays 'holiday-other-holidays "23.1") - (defvar holiday-other-holidays nil "\ User defined holidays. See the documentation for `calendar-holidays' for details.") @@ -14016,28 +13987,6 @@ See the documentation for `calendar-holidays' for details.") (put 'holiday-other-holidays 'risky-local-variable t) -(defvar hebrew-holidays-1 (mapcar 'purecopy '((holiday-hebrew-rosh-hashanah) (if calendar-hebrew-all-holidays-flag (holiday-julian 11 (let ((m displayed-month) (y displayed-year) year) (calendar-increment-month m y -1) (setq year (calendar-extract-year (calendar-julian-from-absolute (calendar-absolute-from-gregorian (list m 1 y))))) (if (zerop (% (1+ year) 4)) 22 21)) "\"Tal Umatar\" (evening)")))) "\ -Component of the old default value of `holiday-hebrew-holidays'.") - -(put 'hebrew-holidays-1 'risky-local-variable t) - -(defvar hebrew-holidays-2 (mapcar 'purecopy '((holiday-hebrew-hanukkah) (if calendar-hebrew-all-holidays-flag (holiday-hebrew 10 (let ((h-year (calendar-extract-year (calendar-hebrew-from-absolute (calendar-absolute-from-gregorian (list displayed-month 28 displayed-year)))))) (if (= 6 (% (calendar-hebrew-to-absolute (list 10 10 h-year)) 7)) 11 10)) "Tzom Teveth")) (if calendar-hebrew-all-holidays-flag (holiday-hebrew 11 15 "Tu B'Shevat")))) "\ -Component of the old default value of `holiday-hebrew-holidays'.") - -(put 'hebrew-holidays-2 'risky-local-variable t) - -(defvar hebrew-holidays-3 (mapcar 'purecopy '((if calendar-hebrew-all-holidays-flag (holiday-hebrew 11 (let* ((m displayed-month) (y displayed-year) (h-year (progn (calendar-increment-month m y 1) (calendar-extract-year (calendar-hebrew-from-absolute (calendar-absolute-from-gregorian (list m (calendar-last-day-of-month m y) y)))))) (s-s (calendar-hebrew-from-absolute (if (= 6 (% (calendar-hebrew-to-absolute (list 7 1 h-year)) 7)) (calendar-dayname-on-or-before 6 (calendar-hebrew-to-absolute (list 11 17 h-year))) (calendar-dayname-on-or-before 6 (calendar-hebrew-to-absolute (list 11 16 h-year)))))) (day (calendar-extract-day s-s))) day) "Shabbat Shirah")))) "\ -Component of the old default value of `holiday-hebrew-holidays'.") - -(put 'hebrew-holidays-3 'risky-local-variable t) - -(defvar hebrew-holidays-4 (mapcar 'purecopy '((holiday-hebrew-passover) (and calendar-hebrew-all-holidays-flag (let* ((m displayed-month) (y displayed-year) (year (progn (calendar-increment-month m y -1) (calendar-extract-year (calendar-julian-from-absolute (calendar-absolute-from-gregorian (list m 1 y))))))) (= 21 (% year 28))) (holiday-julian 3 26 "Kiddush HaHamah")) (if calendar-hebrew-all-holidays-flag (holiday-hebrew-tisha-b-av)))) "\ -Component of the old default value of `holiday-hebrew-holidays'.") - -(put 'hebrew-holidays-4 'risky-local-variable t) - -(define-obsolete-variable-alias 'hebrew-holidays 'holiday-hebrew-holidays "23.1") - (defvar holiday-hebrew-holidays (mapcar 'purecopy '((holiday-hebrew-passover) (holiday-hebrew-rosh-hashanah) (holiday-hebrew-hanukkah) (if calendar-hebrew-all-holidays-flag (append (holiday-hebrew-tisha-b-av) (holiday-hebrew-misc))))) "\ Jewish holidays. See the documentation for `calendar-holidays' for details.") @@ -14046,8 +13995,6 @@ See the documentation for `calendar-holidays' for details.") (put 'holiday-hebrew-holidays 'risky-local-variable t) -(define-obsolete-variable-alias 'christian-holidays 'holiday-christian-holidays "23.1") - (defvar holiday-christian-holidays (mapcar 'purecopy '((holiday-easter-etc) (holiday-fixed 12 25 "Christmas") (if calendar-christian-all-holidays-flag (append (holiday-fixed 1 6 "Epiphany") (holiday-julian 12 25 "Christmas (Julian calendar)") (holiday-greek-orthodox-easter) (holiday-fixed 8 15 "Assumption") (holiday-advent 0 "Advent"))))) "\ Christian holidays. See the documentation for `calendar-holidays' for details.") @@ -14056,8 +14003,6 @@ See the documentation for `calendar-holidays' for details.") (put 'holiday-christian-holidays 'risky-local-variable t) -(define-obsolete-variable-alias 'islamic-holidays 'holiday-islamic-holidays "23.1") - (defvar holiday-islamic-holidays (mapcar 'purecopy '((holiday-islamic-new-year) (holiday-islamic 9 1 "Ramadan Begins") (if calendar-islamic-all-holidays-flag (append (holiday-islamic 1 10 "Ashura") (holiday-islamic 3 12 "Mulad-al-Nabi") (holiday-islamic 7 26 "Shab-e-Mi'raj") (holiday-islamic 8 15 "Shab-e-Bara't") (holiday-islamic 9 27 "Shab-e Qadr") (holiday-islamic 10 1 "Id-al-Fitr") (holiday-islamic 12 10 "Id-al-Adha"))))) "\ Islamic holidays. See the documentation for `calendar-holidays' for details.") @@ -14066,8 +14011,6 @@ See the documentation for `calendar-holidays' for details.") (put 'holiday-islamic-holidays 'risky-local-variable t) -(define-obsolete-variable-alias 'bahai-holidays 'holiday-bahai-holidays "23.1") - (defvar holiday-bahai-holidays (mapcar 'purecopy '((holiday-bahai-new-year) (holiday-bahai-ridvan) (holiday-fixed 5 23 "Declaration of the Báb") (holiday-fixed 5 29 "Ascension of Bahá'u'lláh") (holiday-fixed 7 9 "Martyrdom of the Báb") (holiday-fixed 10 20 "Birth of the Báb") (holiday-fixed 11 12 "Birth of Bahá'u'lláh") (if calendar-bahai-all-holidays-flag (append (holiday-fixed 11 26 "Day of the Covenant") (holiday-fixed 11 28 "Ascension of `Abdu'l-Bahá"))))) "\ Bahá'í holidays. See the documentation for `calendar-holidays' for details.") @@ -14076,8 +14019,6 @@ See the documentation for `calendar-holidays' for details.") (put 'holiday-bahai-holidays 'risky-local-variable t) -(define-obsolete-variable-alias 'solar-holidays 'holiday-solar-holidays "23.1") - (defvar holiday-solar-holidays (mapcar 'purecopy '((solar-equinoxes-solstices) (holiday-sexp calendar-daylight-savings-starts (format "Daylight Saving Time Begins %s" (solar-time-string (/ calendar-daylight-savings-starts-time (float 60)) calendar-standard-time-zone-name))) (holiday-sexp calendar-daylight-savings-ends (format "Daylight Saving Time Ends %s" (solar-time-string (/ calendar-daylight-savings-ends-time (float 60)) calendar-daylight-time-zone-name))))) "\ Sun-related holidays. See the documentation for `calendar-holidays' for details.") @@ -14121,8 +14062,8 @@ The optional LABEL is used to label the buffer created. ;;;*** -;;;### (autoloads nil "html2text" "gnus/html2text.el" (21417 20521 -;;;;;; 870414 0)) +;;;### (autoloads nil "html2text" "gnus/html2text.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/html2text.el (autoload 'html2text "html2text" "\ @@ -14132,8 +14073,8 @@ Convert HTML to plain text in the current buffer. ;;;*** -;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (21383 2343 -;;;;;; 498187 0)) +;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from htmlfontify.el (push (purecopy '(htmlfontify 0 21)) package--builtin-versions) @@ -14166,8 +14107,8 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'. ;;;*** -;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from ibuf-macs.el (autoload 'define-ibuffer-column "ibuf-macs" "\ @@ -14255,8 +14196,8 @@ bound to the current value of the filter. ;;;*** -;;;### (autoloads nil "ibuffer" "ibuffer.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "ibuffer" "ibuffer.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from ibuffer.el (autoload 'ibuffer-list-buffers "ibuffer" "\ @@ -14295,8 +14236,8 @@ FORMATS is the value to use for `ibuffer-formats'. ;;;*** -;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (21611 +;;;;;; 10937 700236 3000)) ;;; Generated autoloads from calendar/icalendar.el (push (purecopy '(icalendar 0 19)) package--builtin-versions) @@ -14349,8 +14290,8 @@ buffer `*icalendar-errors*'. ;;;*** -;;;### (autoloads nil "icomplete" "icomplete.el" (21268 25782 576189 -;;;;;; 0)) +;;;### (autoloads nil "icomplete" "icomplete.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from icomplete.el (defvar icomplete-mode nil "\ @@ -14382,11 +14323,15 @@ completions: \\{icomplete-minibuffer-map} \(fn &optional ARG)" t nil) +(when (locate-library "obsolete/iswitchb") + (autoload 'iswitchb-mode "iswitchb" "Toggle Iswitchb mode." t) + (make-obsolete 'iswitchb-mode + "use `icomplete-mode' or `ido-mode' instead." "24.4")) ;;;*** -;;;### (autoloads nil "icon" "progmodes/icon.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "icon" "progmodes/icon.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from progmodes/icon.el (autoload 'icon-mode "icon" "\ @@ -14426,8 +14371,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (21419 -;;;;;; 62246 751914 0)) +;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload 'idlwave-shell "idlw-shell" "\ @@ -14452,8 +14397,8 @@ See also the variable `idlwave-shell-prompt-pattern'. ;;;*** -;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (21339 34726 -;;;;;; 39547 0)) +;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/idlwave.el (push (purecopy '(idlwave 6 1 22)) package--builtin-versions) @@ -14566,7 +14511,8 @@ The main features of this mode are Info documentation for this package is available. Use \\[idlwave-info] to display (complain to your sysadmin if that does not work). For Postscript, PDF, and HTML versions of the - documentation, check IDLWAVE's homepage at URL `http://idlwave.org'. + documentation, check IDLWAVE's homepage at URL + `http://github.com/jdtsmith/idlwave'. IDLWAVE has customize support - see the group `idlwave'. 10.Keybindings @@ -14581,7 +14527,7 @@ The main features of this mode are ;;;*** -;;;### (autoloads nil "ido" "ido.el" (21268 25782 576189 0)) +;;;### (autoloads nil "ido" "ido.el" (21612 31801 50825 711000)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ @@ -14843,7 +14789,7 @@ DEF, if non-nil, is the default value. ;;;*** -;;;### (autoloads nil "ielm" "ielm.el" (21240 46395 727291 0)) +;;;### (autoloads nil "ielm" "ielm.el" (21607 54478 300138 641000)) ;;; Generated autoloads from ielm.el (autoload 'ielm "ielm" "\ @@ -14855,7 +14801,7 @@ See `inferior-emacs-lisp-mode' for details. ;;;*** -;;;### (autoloads nil "iimage" "iimage.el" (21289 28325 826818 0)) +;;;### (autoloads nil "iimage" "iimage.el" (21607 54478 300138 641000)) ;;; Generated autoloads from iimage.el (define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1") @@ -14871,7 +14817,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. ;;;*** -;;;### (autoloads nil "image" "image.el" (21261 4487 230861 399000)) +;;;### (autoloads nil "image" "image.el" (21607 54478 300138 641000)) ;;; Generated autoloads from image.el (autoload 'image-type-from-data "image" "\ @@ -15064,8 +15010,8 @@ If Emacs is compiled without ImageMagick support, this does nothing. ;;;*** -;;;### (autoloads nil "image-dired" "image-dired.el" (21194 37048 -;;;;;; 599945 0)) +;;;### (autoloads nil "image-dired" "image-dired.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from image-dired.el (push (purecopy '(image-dired 0 4 11)) package--builtin-versions) @@ -15202,8 +15148,8 @@ easy-to-use form. ;;;*** -;;;### (autoloads nil "image-file" "image-file.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "image-file" "image-file.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from image-file.el (defvar image-file-name-extensions (purecopy '("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg")) "\ @@ -15265,8 +15211,8 @@ An image file is one whose name has an extension in ;;;*** -;;;### (autoloads nil "image-mode" "image-mode.el" (21334 16805 699731 -;;;;;; 0)) +;;;### (autoloads nil "image-mode" "image-mode.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from image-mode.el (autoload 'image-mode "image-mode" "\ @@ -15313,7 +15259,7 @@ on these modes. ;;;*** -;;;### (autoloads nil "imenu" "imenu.el" (21257 55477 969423 0)) +;;;### (autoloads nil "imenu" "imenu.el" (21607 54478 300138 641000)) ;;; Generated autoloads from imenu.el (defvar imenu-sort-function nil "\ @@ -15451,8 +15397,8 @@ for more information. ;;;*** -;;;### (autoloads nil "ind-util" "language/ind-util.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ind-util" "language/ind-util.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from language/ind-util.el (autoload 'indian-compose-region "ind-util" "\ @@ -15482,8 +15428,8 @@ Convert old Emacs Devanagari characters to UCS. ;;;*** -;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/inf-lisp.el (autoload 'inferior-lisp "inf-lisp" "\ @@ -15501,7 +15447,7 @@ of `inferior-lisp-program'). Runs the hooks from ;;;*** -;;;### (autoloads nil "info" "info.el" (21419 7843 195974 0)) +;;;### (autoloads nil "info" "info.el" (21607 54478 300138 641000)) ;;; Generated autoloads from info.el (defcustom Info-default-directory-list (let* ((config-dir (file-name-as-directory (or (and (featurep 'ns) (let ((dir (expand-file-name "../info" data-directory))) (if (file-directory-p dir) dir))) configure-info-directory))) (prefixes (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/"))) (suffixes '("share/" "" "gnu/" "gnu/lib/" "gnu/lib/emacs/" "emacs/" "lib/" "lib/emacs/")) (standard-info-dirs (apply #'nconc (mapcar (lambda (pfx) (let ((dirs (mapcar (lambda (sfx) (concat pfx sfx "info/")) suffixes))) (prune-directory-list dirs))) prefixes))) (dirs (if (member config-dir standard-info-dirs) (nconc standard-info-dirs (list config-dir)) (cons config-dir standard-info-dirs)))) (if (not (eq system-type 'windows-nt)) dirs (let* ((instdir (file-name-directory invocation-directory)) (dir1 (expand-file-name "../info/" instdir)) (dir2 (expand-file-name "../../../info/" instdir))) (cond ((file-exists-p dir1) (append dirs (list dir1))) ((file-exists-p dir2) (append dirs (list dir2))) (t dirs))))) "\ @@ -15543,8 +15489,7 @@ with the top-level Info directory. In interactive use, a non-numeric prefix argument directs this command to read a file name from the minibuffer. -A numeric prefix argument N selects an Info buffer named -\"*info*<%s>\". +A numeric prefix argument of N selects an Info buffer named \"*info*\". The search path for Info files is in the variable `Info-directory-list'. The top-level Info directory is made by combining all the files named `dir' @@ -15712,8 +15657,8 @@ Otherwise, visit the manual in a new Info buffer. ;;;*** -;;;### (autoloads nil "info-look" "info-look.el" (21238 4664 559807 -;;;;;; 0)) +;;;### (autoloads nil "info-look" "info-look.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from info-look.el (autoload 'info-lookup-reset "info-look" "\ @@ -15760,8 +15705,8 @@ Perform completion on file preceding point. ;;;*** -;;;### (autoloads nil "info-xref" "info-xref.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "info-xref" "info-xref.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from info-xref.el (push (purecopy '(info-xref 3)) package--builtin-versions) @@ -15844,8 +15789,8 @@ the sources handy. ;;;*** -;;;### (autoloads nil "informat" "informat.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "informat" "informat.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from informat.el (autoload 'Info-tagify "informat" "\ @@ -15890,8 +15835,23 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\" ;;;*** -;;;### (autoloads nil "inversion" "cedet/inversion.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "inline" "emacs-lisp/inline.el" (21628 43483 +;;;;;; 380149 771000)) +;;; Generated autoloads from emacs-lisp/inline.el + +(autoload 'define-inline "inline" "\ + + +\(fn NAME ARGS &rest BODY)" nil t) + +(function-put 'define-inline 'lisp-indent-function 'defun) + +(function-put 'define-inline 'doc-string-elt '3) + +;;;*** + +;;;### (autoloads nil "inversion" "cedet/inversion.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from cedet/inversion.el (push (purecopy '(inversion 1 3)) package--builtin-versions) @@ -15903,8 +15863,8 @@ Only checks one based on which kind of Emacs is being run. ;;;*** -;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from international/isearch-x.el (autoload 'isearch-toggle-specified-input-method "isearch-x" "\ @@ -15924,8 +15884,8 @@ Toggle input method in interactive search. ;;;*** -;;;### (autoloads nil "isearchb" "isearchb.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "isearchb" "isearchb.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from isearchb.el (push (purecopy '(isearchb 1 5)) package--builtin-versions) @@ -15939,8 +15899,8 @@ accessed via isearchb. ;;;*** -;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from international/iso-cvt.el (autoload 'iso-spanish "iso-cvt" "\ @@ -16031,15 +15991,15 @@ Add submenus to the File menu, to convert to and from various formats. ;;;*** ;;;### (autoloads nil "iso-transl" "international/iso-transl.el" -;;;;;; (21240 46395 727291 0)) +;;;;;; (21607 54478 300138 641000)) ;;; Generated autoloads from international/iso-transl.el (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) (autoload 'iso-transl-ctl-x-8-map "iso-transl" "Keymap for C-x 8 prefix." t 'keymap) ;;;*** -;;;### (autoloads nil "ispell" "textmodes/ispell.el" (21356 43818 -;;;;;; 957743 0)) +;;;### (autoloads nil "ispell" "textmodes/ispell.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/ispell.el (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive)))) @@ -16272,36 +16232,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to ;;;*** -;;;### (autoloads nil "iswitchb" "obsolete/iswitchb.el" (21300 29848 -;;;;;; 351552 156000)) -;;; Generated autoloads from obsolete/iswitchb.el - -(defvar iswitchb-mode nil "\ -Non-nil if Iswitchb mode is enabled. -See the command `iswitchb-mode' for a description of this minor mode. -Setting this variable directly does not take effect; -either customize it (see the info node `Easy Customization') -or call the function `iswitchb-mode'.") - -(custom-autoload 'iswitchb-mode "iswitchb" nil) - -(autoload 'iswitchb-mode "iswitchb" "\ -Toggle Iswitchb mode. -With a prefix argument ARG, enable Iswitchb mode if ARG is -positive, and disable it otherwise. If called from Lisp, enable -the mode if ARG is omitted or nil. - -Iswitchb mode is a global minor mode that enables switching -between buffers using substrings. See `iswitchb' for details. - -\(fn &optional ARG)" t nil) - -(make-obsolete 'iswitchb-mode "use `icomplete-mode' or `ido-mode' instead." "24.4") - -;;;*** - -;;;### (autoloads nil "japan-util" "language/japan-util.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "japan-util" "language/japan-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from language/japan-util.el (autoload 'setup-japanese-environment-internal "japan-util" "\ @@ -16378,8 +16310,8 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading. ;;;*** -;;;### (autoloads nil "jka-compr" "jka-compr.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "jka-compr" "jka-compr.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from jka-compr.el (defvar jka-compr-inhibit nil "\ @@ -16402,8 +16334,7 @@ by `jka-compr-installed'. ;;;*** -;;;### (autoloads nil "js" "progmodes/js.el" (21388 20265 495157 -;;;;;; 0)) +;;;### (autoloads nil "js" "progmodes/js.el" (21623 2108 292281 129000)) ;;; Generated autoloads from progmodes/js.el (push (purecopy '(js 9)) package--builtin-versions) @@ -16413,16 +16344,18 @@ Major mode for editing JavaScript. \(fn)" t nil) (defalias 'javascript-mode 'js-mode) +(dolist (name (list "node" "nodejs" "gjs" "rhino")) (add-to-list 'interpreter-mode-alist (cons (purecopy name) 'js-mode))) + ;;;*** -;;;### (autoloads nil "json" "json.el" (21187 63826 213216 0)) +;;;### (autoloads nil "json" "json.el" (21607 54478 300138 641000)) ;;; Generated autoloads from json.el (push (purecopy '(json 1 4)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "keypad" "emulation/keypad.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "keypad" "emulation/keypad.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emulation/keypad.el (defvar keypad-setup nil "\ @@ -16477,8 +16410,8 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.' ;;;*** -;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from international/kinsoku.el (autoload 'kinsoku "kinsoku" "\ @@ -16499,8 +16432,8 @@ the context of text formatting. ;;;*** -;;;### (autoloads nil "kkc" "international/kkc.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "kkc" "international/kkc.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from international/kkc.el (defvar kkc-after-update-conversion-functions nil "\ @@ -16522,7 +16455,7 @@ and the return value is the length of the conversion. ;;;*** -;;;### (autoloads nil "kmacro" "kmacro.el" (21244 11875 194797 0)) +;;;### (autoloads nil "kmacro" "kmacro.el" (21607 54478 300138 641000)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) @@ -16634,8 +16567,8 @@ If kbd macro currently being defined end it before activating it. ;;;*** -;;;### (autoloads nil "korea-util" "language/korea-util.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "korea-util" "language/korea-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from language/korea-util.el (defvar default-korean-keyboard (purecopy (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "")) "\ @@ -16649,8 +16582,8 @@ The kind of Korean keyboard for Korean input method. ;;;*** -;;;### (autoloads nil "landmark" "play/landmark.el" (21419 7843 195974 -;;;;;; 0)) +;;;### (autoloads nil "landmark" "play/landmark.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from play/landmark.el (push (purecopy '(landmark 1 0)) package--builtin-versions) @@ -16681,8 +16614,8 @@ Use \\[describe-mode] for more info. ;;;*** -;;;### (autoloads nil "lao-util" "language/lao-util.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "lao-util" "language/lao-util.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from language/lao-util.el (autoload 'lao-compose-string "lao-util" "\ @@ -16719,8 +16652,8 @@ Transcribe Romanized Lao string STR to Lao character string. ;;;*** -;;;### (autoloads nil "latexenc" "international/latexenc.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "latexenc" "international/latexenc.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from international/latexenc.el (defvar latex-inputenc-coding-alist (purecopy '(("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\ @@ -16752,7 +16685,7 @@ coding system names is determined from `latex-inputenc-coding-alist'. ;;;*** ;;;### (autoloads nil "latin1-disp" "international/latin1-disp.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54478 300138 641000)) ;;; Generated autoloads from international/latin1-disp.el (defvar latin1-display nil "\ @@ -16793,8 +16726,8 @@ use either \\[customize] or the function `latin1-display'.") ;;;*** -;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/ld-script.el (autoload 'ld-script-mode "ld-script" "\ @@ -16804,7 +16737,7 @@ A major mode to edit GNU ld script files ;;;*** -;;;### (autoloads nil "life" "play/life.el" (21240 46395 727291 0)) +;;;### (autoloads nil "life" "play/life.el" (21607 54478 800121 42000)) ;;; Generated autoloads from play/life.el (autoload 'life "life" "\ @@ -16817,7 +16750,7 @@ generations (this defaults to 1). ;;;*** -;;;### (autoloads nil "linum" "linum.el" (21240 46395 727291 0)) +;;;### (autoloads nil "linum" "linum.el" (21607 54478 300138 641000)) ;;; Generated autoloads from linum.el (push (purecopy '(linum 0 9 24)) package--builtin-versions) @@ -16854,8 +16787,8 @@ See `linum-mode' for more information on Linum mode. ;;;*** -;;;### (autoloads nil "loadhist" "loadhist.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "loadhist" "loadhist.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from loadhist.el (autoload 'unload-feature "loadhist" "\ @@ -16886,7 +16819,7 @@ something strange, such as redefining an Emacs function. ;;;*** -;;;### (autoloads nil "locate" "locate.el" (21187 63826 213216 0)) +;;;### (autoloads nil "locate" "locate.el" (21607 54478 300138 641000)) ;;; Generated autoloads from locate.el (defvar locate-ls-subdir-switches (purecopy "-al") "\ @@ -16938,8 +16871,8 @@ except that FILTER is not optional. ;;;*** -;;;### (autoloads nil "log-edit" "vc/log-edit.el" (21239 25528 651427 -;;;;;; 0)) +;;;### (autoloads nil "log-edit" "vc/log-edit.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from vc/log-edit.el (autoload 'log-edit "log-edit" "\ @@ -16970,8 +16903,8 @@ done. Otherwise, it uses the current buffer. ;;;*** -;;;### (autoloads nil "log-view" "vc/log-view.el" (21195 57908 940910 -;;;;;; 0)) +;;;### (autoloads nil "log-view" "vc/log-view.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from vc/log-view.el (autoload 'log-view-mode "log-view" "\ @@ -16981,7 +16914,7 @@ Major mode for browsing CVS log output. ;;;*** -;;;### (autoloads nil "lpr" "lpr.el" (21240 46395 727291 0)) +;;;### (autoloads nil "lpr" "lpr.el" (21607 54478 300138 641000)) ;;; Generated autoloads from lpr.el (defvar lpr-windows-system (memq system-type '(ms-dos windows-nt)) "\ @@ -17076,8 +17009,8 @@ for further customization of the printer command. ;;;*** -;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from ls-lisp.el (defvar ls-lisp-support-shell-wildcards t "\ @@ -17088,8 +17021,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).") ;;;*** -;;;### (autoloads nil "lunar" "calendar/lunar.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "lunar" "calendar/lunar.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from calendar/lunar.el (autoload 'lunar-phases "lunar" "\ @@ -17099,12 +17032,10 @@ This function is suitable for execution in an init file. \(fn &optional ARG)" t nil) -(define-obsolete-function-alias 'phases-of-moon 'lunar-phases "23.1") - ;;;*** -;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/m4-mode.el (autoload 'm4-mode "m4-mode" "\ @@ -17114,7 +17045,7 @@ A major mode to edit m4 macro files. ;;;*** -;;;### (autoloads nil "macros" "macros.el" (21240 46395 727291 0)) +;;;### (autoloads nil "macros" "macros.el" (21607 54478 300138 641000)) ;;; Generated autoloads from macros.el (autoload 'name-last-kbd-macro "macros" "\ @@ -17203,8 +17134,8 @@ and then select the region of un-tablified names and use ;;;*** -;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/mail-extr.el (autoload 'mail-extract-address-components "mail-extr" "\ @@ -17234,8 +17165,8 @@ Convert mail domain DOMAIN to the country it corresponds to. ;;;*** -;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/mail-hist.el (autoload 'mail-hist-define-keys "mail-hist" "\ @@ -17264,8 +17195,8 @@ This function normally would be called when the message is sent. ;;;*** -;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/mail-utils.el (defvar mail-use-rfc822 nil "\ @@ -17339,8 +17270,8 @@ matches may be returned from the message body. ;;;*** -;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/mailabbrev.el (defvar mail-abbrevs-mode nil "\ @@ -17389,8 +17320,8 @@ double-quotes. ;;;*** -;;;### (autoloads nil "mailalias" "mail/mailalias.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "mailalias" "mail/mailalias.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/mailalias.el (defvar mail-complete-style 'angles "\ @@ -17443,8 +17374,8 @@ current header, calls `mail-complete-function' and passes prefix ARG if any. ;;;*** -;;;### (autoloads nil "mailclient" "mail/mailclient.el" (21215 8898 -;;;;;; 840126 623000)) +;;;### (autoloads nil "mailclient" "mail/mailclient.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/mailclient.el (autoload 'mailclient-send-it "mailclient" "\ @@ -17456,8 +17387,8 @@ The mail client is taken to be the handler of mailto URLs. ;;;*** -;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/make-mode.el (autoload 'makefile-mode "make-mode" "\ @@ -17574,8 +17505,8 @@ An adapted `makefile-mode' that knows about imake. ;;;*** -;;;### (autoloads nil "makesum" "makesum.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "makesum" "makesum.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from makesum.el (autoload 'make-command-summary "makesum" "\ @@ -17586,19 +17517,21 @@ Previous contents of that buffer are killed first. ;;;*** -;;;### (autoloads nil "man" "man.el" (21356 43818 957743 0)) +;;;### (autoloads nil "man" "man.el" (21607 54478 300138 641000)) ;;; Generated autoloads from man.el (defalias 'manual-entry 'man) (autoload 'man "man" "\ Get a Un*x manual page and put it in a buffer. -This command is the top-level command in the man package. It -runs a Un*x command to retrieve and clean a manpage in the +This command is the top-level command in the man package. +It runs a Un*x command to retrieve and clean a manpage in the background and places the results in a `Man-mode' browsing -buffer. See variable `Man-notify-method' for what happens when -the buffer is ready. If a buffer already exists for this man -page, it will display immediately. +buffer. The variable `Man-width' defines the number of columns in +formatted manual pages. The buffer is displayed immediately. +The variable `Man-notify-method' defines how the buffer is displayed. +If a buffer already exists for this man page, it will be displayed +without running the man command. For a manpage from a particular section, use either of the following. \"cat(1)\" is how cross-references appear and is @@ -17640,7 +17573,7 @@ Default bookmark handler for Man buffers. ;;;*** -;;;### (autoloads nil "master" "master.el" (21187 63826 213216 0)) +;;;### (autoloads nil "master" "master.el" (21607 54478 300138 641000)) ;;; Generated autoloads from master.el (push (purecopy '(master 1 0 2)) package--builtin-versions) @@ -17663,8 +17596,8 @@ yourself the value of `master-of' by calling `master-show-slave'. ;;;*** -;;;### (autoloads nil "mb-depth" "mb-depth.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "mb-depth" "mb-depth.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from mb-depth.el (defvar minibuffer-depth-indicate-mode nil "\ @@ -17691,14 +17624,14 @@ recursion depth in the minibuffer prompt. This is only useful if ;;;*** -;;;### (autoloads nil "md4" "md4.el" (21187 63826 213216 0)) +;;;### (autoloads nil "md4" "md4.el" (21607 54478 300138 641000)) ;;; Generated autoloads from md4.el (push (purecopy '(md4 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "message" "gnus/message.el" (21326 22692 123234 -;;;;;; 0)) +;;;### (autoloads nil "message" "gnus/message.el" (21623 2108 292281 +;;;;;; 129000)) ;;; Generated autoloads from gnus/message.el (define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook) @@ -17863,8 +17796,8 @@ which specify the range to operate on. ;;;*** -;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/meta-mode.el (push (purecopy '(meta-mode 1 0)) package--builtin-versions) @@ -17880,8 +17813,8 @@ Major mode for editing MetaPost sources. ;;;*** -;;;### (autoloads nil "metamail" "mail/metamail.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "metamail" "mail/metamail.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/metamail.el (autoload 'metamail-interpret-header "metamail" "\ @@ -17924,8 +17857,8 @@ redisplayed as output is inserted. ;;;*** -;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from mh-e/mh-comp.el (autoload 'mh-smail "mh-comp" "\ @@ -18015,9 +17948,9 @@ delete the draft message. ;;;*** -;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (21356 43818 957743 0)) +;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (21607 54478 300138 641000)) ;;; Generated autoloads from mh-e/mh-e.el -(push (purecopy '(mh-e 8 5 -4)) package--builtin-versions) +(push (purecopy '(mh-e 8 6)) package--builtin-versions) (put 'mh-progs 'risky-local-variable t) @@ -18032,8 +17965,8 @@ Display version information about MH-E and the MH mail handling system. ;;;*** -;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (21286 52150 -;;;;;; 476720 0)) +;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mh-e/mh-folder.el (autoload 'mh-rmail "mh-folder" "\ @@ -18114,8 +18047,8 @@ perform the operation on all messages in that region. ;;;*** -;;;### (autoloads nil "midnight" "midnight.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "midnight" "midnight.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from midnight.el (autoload 'clean-buffer-list "midnight" "\ @@ -18141,8 +18074,8 @@ to its second argument TM. ;;;*** -;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from minibuf-eldef.el (defvar minibuffer-electric-default-mode nil "\ @@ -18171,7 +18104,7 @@ is modified to remove the default indication. ;;;*** -;;;### (autoloads nil "misc" "misc.el" (21240 46395 727291 0)) +;;;### (autoloads nil "misc" "misc.el" (21607 54478 300138 641000)) ;;; Generated autoloads from misc.el (autoload 'butterfly "misc" "\ @@ -18199,8 +18132,8 @@ The return value is always nil. ;;;*** -;;;### (autoloads nil "misearch" "misearch.el" (21245 64312 799897 -;;;;;; 0)) +;;;### (autoloads nil "misearch" "misearch.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from misearch.el (add-hook 'isearch-mode-hook 'multi-isearch-setup) @@ -18235,6 +18168,10 @@ Isearch starts.") The buffer where the search is currently searching. The value is nil when the search still is in the initial buffer.") +(defvar multi-isearch-buffer-list nil) + +(defvar multi-isearch-file-list nil) + (autoload 'multi-isearch-setup "misearch" "\ Set up isearch to search multiple buffers. Intended to be added to `isearch-mode-hook'. @@ -18281,8 +18218,8 @@ whose file names match the specified wildcard. ;;;*** -;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/mixal-mode.el (push (purecopy '(mixal-mode 0 1)) package--builtin-versions) @@ -18293,8 +18230,8 @@ Major mode for the mixal asm language. ;;;*** -;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/mm-encode.el (autoload 'mm-default-file-encoding "mm-encode" "\ @@ -18304,8 +18241,8 @@ Return a default encoding for FILE. ;;;*** -;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/mm-extern.el (autoload 'mm-extern-cache-contents "mm-extern" "\ @@ -18323,8 +18260,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** -;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/mm-partial.el (autoload 'mm-inline-partial "mm-partial" "\ @@ -18337,8 +18274,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** -;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (21296 1575 438327 -;;;;;; 0)) +;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/mm-url.el (autoload 'mm-url-insert-file-contents "mm-url" "\ @@ -18354,8 +18291,8 @@ Insert file contents of URL using `mm-url-program'. ;;;*** -;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (21363 17065 850322 -;;;;;; 0)) +;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/mm-uu.el (autoload 'mm-uu-dissect "mm-uu" "\ @@ -18374,7 +18311,7 @@ Assume text has been decoded if DECODED is non-nil. ;;;*** -;;;### (autoloads nil "mml" "gnus/mml.el" (21296 1575 438327 0)) +;;;### (autoloads nil "mml" "gnus/mml.el" (21607 54478 300138 641000)) ;;; Generated autoloads from gnus/mml.el (autoload 'mml-to-mime "mml" "\ @@ -18399,8 +18336,8 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (21296 1575 438327 -;;;;;; 0)) +;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/mml1991.el (autoload 'mml1991-encrypt "mml1991" "\ @@ -18415,8 +18352,8 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (21356 43818 957743 -;;;;;; 0)) +;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/mml2015.el (autoload 'mml2015-decrypt "mml2015" "\ @@ -18456,16 +18393,16 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from cedet/mode-local.el (put 'define-overloadable-function 'doc-string-elt 3) ;;;*** -;;;### (autoloads nil "modula2" "progmodes/modula2.el" (21282 19826 -;;;;;; 403614 0)) +;;;### (autoloads nil "modula2" "progmodes/modula2.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/modula2.el (defalias 'modula-2-mode 'm2-mode) @@ -18498,8 +18435,8 @@ followed by the first character of the construct. ;;;*** -;;;### (autoloads nil "morse" "play/morse.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "morse" "play/morse.el" (21616 28857 81577 +;;;;;; 239000)) ;;; Generated autoloads from play/morse.el (autoload 'morse-region "morse" "\ @@ -18524,8 +18461,8 @@ Convert NATO phonetic alphabet in region to ordinary ASCII text. ;;;*** -;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (21202 31159 541460 -;;;;;; 0)) +;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from mouse-drag.el (autoload 'mouse-drag-throw "mouse-drag" "\ @@ -18572,7 +18509,7 @@ To test this function, evaluate: ;;;*** -;;;### (autoloads nil "mpc" "mpc.el" (21361 61732 646433 0)) +;;;### (autoloads nil "mpc" "mpc.el" (21607 54478 300138 641000)) ;;; Generated autoloads from mpc.el (autoload 'mpc "mpc" "\ @@ -18582,7 +18519,7 @@ Main entry point for MPC. ;;;*** -;;;### (autoloads nil "mpuz" "play/mpuz.el" (21187 63826 213216 0)) +;;;### (autoloads nil "mpuz" "play/mpuz.el" (21607 54478 800121 42000)) ;;; Generated autoloads from play/mpuz.el (autoload 'mpuz "mpuz" "\ @@ -18592,7 +18529,7 @@ Multiplication puzzle with GNU Emacs. ;;;*** -;;;### (autoloads nil "msb" "msb.el" (21240 46395 727291 0)) +;;;### (autoloads nil "msb" "msb.el" (21607 54478 300138 641000)) ;;; Generated autoloads from msb.el (defvar msb-mode nil "\ @@ -18617,8 +18554,8 @@ different buffer menu using the function `msb'. ;;;*** -;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from international/mule-diag.el (autoload 'list-character-sets "mule-diag" "\ @@ -18750,8 +18687,8 @@ The default is 20. If LIMIT is negative, do not limit the listing. ;;;*** -;;;### (autoloads nil "mule-util" "international/mule-util.el" (21412 -;;;;;; 2598 318409 0)) +;;;### (autoloads nil "mule-util" "international/mule-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from international/mule-util.el (defsubst string-to-list (string) "\ @@ -18882,8 +18819,8 @@ per-character basis, this may not be accurate. ;;;*** -;;;### (autoloads nil "net-utils" "net/net-utils.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "net-utils" "net/net-utils.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from net/net-utils.el (autoload 'ifconfig "net-utils" "\ @@ -18977,8 +18914,8 @@ Open a network connection to HOST on PORT. ;;;*** -;;;### (autoloads nil "netrc" "net/netrc.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "netrc" "net/netrc.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/netrc.el (autoload 'netrc-credentials "netrc" "\ @@ -18990,8 +18927,8 @@ listed in the PORTS list. ;;;*** -;;;### (autoloads nil "network-stream" "net/network-stream.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "network-stream" "net/network-stream.el" (21619 +;;;;;; 5051 260148 536000)) ;;; Generated autoloads from net/network-stream.el (autoload 'open-network-stream "network-stream" "\ @@ -19072,11 +19009,14 @@ values: :use-starttls-if-possible is a boolean that says to do opportunistic STARTTLS upgrades even if Emacs doesn't have built-in TLS functionality. +:warn-unless-encrypted is a boolean which, if :return-list is +non-nil, is used warn the user if the connection isn't encrypted. + :nogreeting is a boolean that can be used to inhibit waiting for a greeting from the server. :nowait is a boolean that says the connection should be made - asynchronously, if possible. +asynchronously, if possible. \(fn NAME BUFFER HOST SERVICE &rest PARAMETERS)" nil nil) @@ -19084,8 +19024,8 @@ a greeting from the server. ;;;*** -;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (21260 -;;;;;; 57908 370145 500000)) +;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (21628 +;;;;;; 45530 160140 360000)) ;;; Generated autoloads from net/newst-backend.el (autoload 'newsticker-running-p "newst-backend" "\ @@ -19107,7 +19047,7 @@ Run `newsticker-start-hook' if newsticker was not running already. ;;;*** ;;;### (autoloads nil "newst-plainview" "net/newst-plainview.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54478 300138 641000)) ;;; Generated autoloads from net/newst-plainview.el (autoload 'newsticker-plainview "newst-plainview" "\ @@ -19117,8 +19057,8 @@ Start newsticker plainview. ;;;*** -;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from net/newst-reader.el (autoload 'newsticker-show-news "newst-reader" "\ @@ -19128,8 +19068,8 @@ Start reading news. You may want to bind this to a key. ;;;*** -;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from net/newst-ticker.el (autoload 'newsticker-ticker-running-p "newst-ticker" "\ @@ -19149,8 +19089,8 @@ running already. ;;;*** -;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (21628 +;;;;;; 45530 160140 360000)) ;;; Generated autoloads from net/newst-treeview.el (autoload 'newsticker-treeview "newst-treeview" "\ @@ -19160,15 +19100,8 @@ Start newsticker treeview. ;;;*** -;;;### (autoloads nil "newsticker" "net/newsticker.el" (21194 37048 -;;;;;; 599945 0)) -;;; Generated autoloads from net/newsticker.el -(push (purecopy '(newsticker 1 99)) package--builtin-versions) - -;;;*** - -;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (21204 37210 187838 -;;;;;; 0)) +;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/nndiary.el (autoload 'nndiary-generate-nov-databases "nndiary" "\ @@ -19178,8 +19111,8 @@ Generate NOV databases in all nndiary directories. ;;;*** -;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/nndoc.el (autoload 'nndoc-add-type "nndoc" "\ @@ -19193,8 +19126,8 @@ symbol in the alist. ;;;*** -;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (21296 1575 438327 -;;;;;; 0)) +;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/nnfolder.el (autoload 'nnfolder-generate-active-file "nnfolder" "\ @@ -19205,7 +19138,7 @@ This command does not work if you use short group names. ;;;*** -;;;### (autoloads nil "nnml" "gnus/nnml.el" (21187 63826 213216 0)) +;;;### (autoloads nil "nnml" "gnus/nnml.el" (21607 54478 300138 641000)) ;;; Generated autoloads from gnus/nnml.el (autoload 'nnml-generate-nov-databases "nnml" "\ @@ -19215,7 +19148,7 @@ Generate NOV databases in all nnml directories. ;;;*** -;;;### (autoloads nil "novice" "novice.el" (21240 46395 727291 0)) +;;;### (autoloads nil "novice" "novice.el" (21607 54478 300138 641000)) ;;; Generated autoloads from novice.el (define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1") @@ -19247,8 +19180,8 @@ future sessions. ;;;*** -;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from textmodes/nroff-mode.el (autoload 'nroff-mode "nroff-mode" "\ @@ -19262,14 +19195,14 @@ closing requests for requests that are used in matched pairs. ;;;*** -;;;### (autoloads nil "ntlm" "net/ntlm.el" (21187 63826 213216 0)) +;;;### (autoloads nil "ntlm" "net/ntlm.el" (21607 54478 300138 641000)) ;;; Generated autoloads from net/ntlm.el (push (purecopy '(ntlm 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "nxml-glyph" "nxml/nxml-glyph.el" (21293 25385 -;;;;;; 120083 0)) +;;;### (autoloads nil "nxml-glyph" "nxml/nxml-glyph.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from nxml/nxml-glyph.el (autoload 'nxml-glyph-display-string "nxml-glyph" "\ @@ -19281,8 +19214,8 @@ Return nil if the face cannot display a glyph for N. ;;;*** -;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (21383 2343 -;;;;;; 498187 0)) +;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (21611 10937 +;;;;;; 700236 3000)) ;;; Generated autoloads from nxml/nxml-mode.el (autoload 'nxml-mode "nxml-mode" "\ @@ -19342,8 +19275,8 @@ Many aspects this mode can be customized using ;;;*** -;;;### (autoloads nil "nxml-uchnm" "nxml/nxml-uchnm.el" (21293 25385 -;;;;;; 120083 0)) +;;;### (autoloads nil "nxml-uchnm" "nxml/nxml-uchnm.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from nxml/nxml-uchnm.el (autoload 'nxml-enable-unicode-char-name-sets "nxml-uchnm" "\ @@ -19355,8 +19288,8 @@ the variable `nxml-enabled-unicode-blocks'. ;;;*** -;;;### (autoloads nil "octave" "progmodes/octave.el" (21322 25639 -;;;;;; 363230 0)) +;;;### (autoloads nil "octave" "progmodes/octave.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/octave.el (autoload 'octave-mode "octave" "\ @@ -19393,8 +19326,8 @@ startup file, `~/.emacs-octave'. ;;;*** -;;;### (autoloads nil "opascal" "progmodes/opascal.el" (21282 19826 -;;;;;; 403614 0)) +;;;### (autoloads nil "opascal" "progmodes/opascal.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/opascal.el (define-obsolete-function-alias 'delphi-mode 'opascal-mode "24.4") @@ -19429,7 +19362,7 @@ Coloring: ;;;*** -;;;### (autoloads nil "org" "org/org.el" (21383 2343 498187 0)) +;;;### (autoloads nil "org" "org/org.el" (21607 54478 800121 42000)) ;;; Generated autoloads from org/org.el (autoload 'org-babel-do-load-languages "org" "\ @@ -19650,8 +19583,8 @@ Call the customize function with org as argument. ;;;*** -;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (21335 37672 -;;;;;; 97862 0)) +;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from org/org-agenda.el (autoload 'org-toggle-sticky-agenda "org-agenda" "\ @@ -19924,8 +19857,8 @@ to override `appt-message-warning-time'. ;;;*** -;;;### (autoloads nil "org-capture" "org/org-capture.el" (21335 37672 -;;;;;; 97862 0)) +;;;### (autoloads nil "org-capture" "org/org-capture.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from org/org-capture.el (autoload 'org-capture-string "org-capture" "\ @@ -19967,8 +19900,8 @@ Set `org-capture-templates' to be similar to `org-remember-templates'. ;;;*** -;;;### (autoloads nil "org-colview" "org/org-colview.el" (21335 37672 -;;;;;; 97862 0)) +;;;### (autoloads nil "org-colview" "org/org-colview.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from org/org-colview.el (autoload 'org-columns-remove-overlays "org-colview" "\ @@ -20031,8 +19964,8 @@ Turn on or update column view in the agenda. ;;;*** -;;;### (autoloads nil "org-compat" "org/org-compat.el" (21417 20521 -;;;;;; 870414 0)) +;;;### (autoloads nil "org-compat" "org/org-compat.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from org/org-compat.el (autoload 'org-check-version "org-compat" "\ @@ -20042,8 +19975,8 @@ Try very hard to provide sensible version strings. ;;;*** -;;;### (autoloads nil "org-macs" "org/org-macs.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "org-macs" "org/org-macs.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from org/org-macs.el (autoload 'org-load-noerror-mustsuffix "org-macs" "\ @@ -20053,8 +19986,8 @@ Load FILE with optional arguments NOERROR and MUSTSUFFIX. Drop the MUSTSUFFIX a ;;;*** -;;;### (autoloads nil "org-version" "org/org-version.el" (21335 37672 -;;;;;; 97862 0)) +;;;### (autoloads nil "org-version" "org/org-version.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from org/org-version.el (autoload 'org-release "org-version" "\ @@ -20071,8 +20004,8 @@ The Git version of org-mode. ;;;*** -;;;### (autoloads nil "outline" "outline.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "outline" "outline.el" (21626 64704 823711 +;;;;;; 579000)) ;;; Generated autoloads from outline.el (put 'outline-regexp 'safe-local-variable 'stringp) (put 'outline-heading-end-regexp 'safe-local-variable 'stringp) @@ -20133,8 +20066,8 @@ See the command `outline-mode' for more information on this mode. ;;;*** -;;;### (autoloads nil "package" "emacs-lisp/package.el" (21419 62246 -;;;;;; 751914 0)) +;;;### (autoloads nil "package" "emacs-lisp/package.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/package.el (push (purecopy '(package 1 0 1)) package--builtin-versions) @@ -20206,7 +20139,7 @@ The list is displayed in a buffer named `*Packages*'. ;;;*** -;;;### (autoloads nil "paren" "paren.el" (21240 46395 727291 0)) +;;;### (autoloads nil "paren" "paren.el" (21607 54478 800121 42000)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ @@ -20232,8 +20165,8 @@ matching parenthesis is highlighted in `show-paren-style' after ;;;*** -;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (21296 -;;;;;; 1575 438327 0)) +;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from calendar/parse-time.el (put 'parse-time-rules 'risky-local-variable t) @@ -20246,8 +20179,8 @@ unknown are returned as nil. ;;;*** -;;;### (autoloads nil "pascal" "progmodes/pascal.el" (21319 49445 -;;;;;; 508378 0)) +;;;### (autoloads nil "pascal" "progmodes/pascal.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/pascal.el (autoload 'pascal-mode "pascal" "\ @@ -20296,8 +20229,8 @@ See also the user variables `pascal-type-keywords', `pascal-start-keywords' and ;;;*** -;;;### (autoloads nil "password-cache" "password-cache.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "password-cache" "password-cache.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from password-cache.el (defvar password-cache t "\ @@ -20318,8 +20251,8 @@ Check if KEY is in the cache. ;;;*** -;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (21190 39993 -;;;;;; 744837 0)) +;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/pcase.el (autoload 'pcase "pcase" "\ @@ -20332,26 +20265,31 @@ UPatterns can take the following forms: SYMBOL matches anything and binds it to SYMBOL. (or UPAT...) matches if any of the patterns matches. (and UPAT...) matches if all the patterns match. + 'VAL matches if the object is `equal' to VAL `QPAT matches if the QPattern QPAT matches. - (pred PRED) matches if PRED applied to the object returns non-nil. + (pred FUN) matches if FUN applied to the object returns non-nil. (guard BOOLEXP) matches if BOOLEXP evaluates to non-nil. (let UPAT EXP) matches if EXP matches UPAT. + (app FUN UPAT) matches if FUN applied to the object matches UPAT. If a SYMBOL is used twice in the same pattern (i.e. the pattern is \"non-linear\"), then the second occurrence is turned into an `eq'uality test. QPatterns can take the following forms: - (QPAT1 . QPAT2) matches if QPAT1 matches the car and QPAT2 the cdr. - ,UPAT matches if the UPattern UPAT matches. - STRING matches if the object is `equal' to STRING. - ATOM matches if the object is `eq' to ATOM. -QPatterns for vectors are not implemented yet. + (QPAT1 . QPAT2) matches if QPAT1 matches the car and QPAT2 the cdr. + [QPAT1 QPAT2..QPATn] matches a vector of length n and QPAT1..QPATn match + its 0..(n-1)th elements, respectively. + ,UPAT matches if the UPattern UPAT matches. + STRING matches if the object is `equal' to STRING. + ATOM matches if the object is `eq' to ATOM. -PRED can take the form - FUNCTION in which case it gets called with one argument. - (FUN ARG1 .. ARGN) in which case it gets called with an N+1'th argument +FUN can take the form + SYMBOL or (lambda ARGS BODY) in which case it's called with one argument. + (F ARG1 .. ARGn) in which case F gets called with an n+1'th argument which is the value being matched. -A PRED of the form FUNCTION is equivalent to one of the form (FUNCTION). -PRED patterns can refer to variables bound earlier in the pattern. +So a FUN of the form SYMBOL is equivalent to one of the form (FUN). +FUN can refer to variables bound earlier in the pattern. +FUN is assumed to be pure, i.e. it can be dropped if its result is not used, +and two identical calls can be merged into one. E.g. you can match pairs where the cdr is larger than the car with a pattern like `(,a . ,(pred (< a))) or, with more checks: `(,(and a (pred numberp)) . ,(and (pred numberp) (pred (< a)))) @@ -20360,6 +20298,13 @@ like `(,a . ,(pred (< a))) or, with more checks: (function-put 'pcase 'lisp-indent-function '1) +(autoload 'pcase-exhaustive "pcase" "\ +The exhaustive version of `pcase' (which see). + +\(fn EXP &rest CASES)" nil t) + +(function-put 'pcase-exhaustive 'lisp-indent-function '1) + (autoload 'pcase-let* "pcase" "\ Like `let*' but where you can use `pcase' patterns for bindings. BODY should be an expression, and BINDINGS should be a list of bindings @@ -20378,10 +20323,19 @@ of the form (UPAT EXP). (function-put 'pcase-let 'lisp-indent-function '1) +(autoload 'pcase-defmacro "pcase" "\ +Define a pcase UPattern macro. + +\(fn NAME ARGS &rest BODY)" nil t) + +(function-put 'pcase-defmacro 'lisp-indent-function '2) + +(function-put 'pcase-defmacro 'doc-string-elt '3) + ;;;*** -;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from pcmpl-cvs.el (autoload 'pcomplete/cvs "pcmpl-cvs" "\ @@ -20391,8 +20345,8 @@ Completion rules for the `cvs' command. ;;;*** -;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from pcmpl-gnu.el (autoload 'pcomplete/gzip "pcmpl-gnu" "\ @@ -20419,8 +20373,8 @@ Completion for the GNU tar utility. ;;;*** -;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from pcmpl-linux.el (autoload 'pcomplete/kill "pcmpl-linux" "\ @@ -20440,8 +20394,8 @@ Completion for GNU/Linux `mount'. ;;;*** -;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from pcmpl-rpm.el (autoload 'pcomplete/rpm "pcmpl-rpm" "\ @@ -20451,8 +20405,8 @@ Completion for the `rpm' command. ;;;*** -;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from pcmpl-unix.el (autoload 'pcomplete/cd "pcmpl-unix" "\ @@ -20507,8 +20461,8 @@ Includes files as well as host names followed by a colon. ;;;*** -;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from pcmpl-x.el (autoload 'pcomplete/tlmgr "pcmpl-x" "\ @@ -20532,8 +20486,8 @@ Completion for the `ag' command. ;;;*** -;;;### (autoloads nil "pcomplete" "pcomplete.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "pcomplete" "pcomplete.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from pcomplete.el (autoload 'pcomplete "pcomplete" "\ @@ -20590,7 +20544,7 @@ Setup `shell-mode' to use pcomplete. ;;;*** -;;;### (autoloads nil "pcvs" "vc/pcvs.el" (21280 13349 392544 0)) +;;;### (autoloads nil "pcvs" "vc/pcvs.el" (21607 54478 800121 42000)) ;;; Generated autoloads from vc/pcvs.el (autoload 'cvs-checkout "pcvs" "\ @@ -20665,8 +20619,8 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d ;;;*** -;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (21280 13349 -;;;;;; 392544 0)) +;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from vc/pcvs-defs.el (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] `(menu-item ,(purecopy "Directory Status") cvs-status :help ,(purecopy "A more verbose status of a workarea"))) (define-key m [checkout] `(menu-item ,(purecopy "Checkout Module") cvs-checkout :help ,(purecopy "Check out a module from the repository"))) (define-key m [update] `(menu-item ,(purecopy "Update Directory") cvs-update :help ,(purecopy "Fetch updates from the repository"))) (define-key m [examine] `(menu-item ,(purecopy "Examine Directory") cvs-examine :help ,(purecopy "Examine the current state of a workarea"))) (fset 'cvs-global-menu m)) "\ @@ -20674,8 +20628,8 @@ Global menu used by PCL-CVS.") ;;;*** -;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (21339 -;;;;;; 34726 39547 0)) +;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/perl-mode.el (put 'perl-indent-level 'safe-local-variable 'integerp) (put 'perl-continued-statement-offset 'safe-local-variable 'integerp) @@ -20736,8 +20690,8 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'. ;;;*** -;;;### (autoloads nil "picture" "textmodes/picture.el" (21419 62246 -;;;;;; 751914 0)) +;;;### (autoloads nil "picture" "textmodes/picture.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/picture.el (autoload 'picture-mode "picture" "\ @@ -20817,8 +20771,8 @@ they are not by default assigned to keys. ;;;*** -;;;### (autoloads nil "plstore" "gnus/plstore.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "plstore" "gnus/plstore.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/plstore.el (autoload 'plstore-open "plstore" "\ @@ -20833,8 +20787,8 @@ Major mode for editing PLSTORE files. ;;;*** -;;;### (autoloads nil "po" "textmodes/po.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "po" "textmodes/po.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from textmodes/po.el (autoload 'po-find-file-coding-system "po" "\ @@ -20845,7 +20799,7 @@ Called through `file-coding-system-alist', before the file is visited for real. ;;;*** -;;;### (autoloads nil "pong" "play/pong.el" (21187 63826 213216 0)) +;;;### (autoloads nil "pong" "play/pong.el" (21607 54478 800121 42000)) ;;; Generated autoloads from play/pong.el (autoload 'pong "pong" "\ @@ -20861,7 +20815,7 @@ pong-mode keybindings:\\ ;;;*** -;;;### (autoloads nil "pop3" "gnus/pop3.el" (21240 46395 727291 0)) +;;;### (autoloads nil "pop3" "gnus/pop3.el" (21619 5051 260148 536000)) ;;; Generated autoloads from gnus/pop3.el (autoload 'pop3-movemail "pop3" "\ @@ -20872,8 +20826,8 @@ Use streaming commands. ;;;*** -;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/pp.el (autoload 'pp-to-string "pp" "\ @@ -20923,8 +20877,8 @@ Ignores leading comment characters. ;;;*** -;;;### (autoloads nil "printing" "printing.el" (21364 37926 837230 -;;;;;; 0)) +;;;### (autoloads nil "printing" "printing.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from printing.el (push (purecopy '(printing 6 9 3)) package--builtin-versions) @@ -21512,7 +21466,7 @@ are both set to t. ;;;*** -;;;### (autoloads nil "proced" "proced.el" (21187 63826 213216 0)) +;;;### (autoloads nil "proced" "proced.el" (21609 55608 852266 580000)) ;;; Generated autoloads from proced.el (autoload 'proced "proced" "\ @@ -21530,8 +21484,8 @@ Proced buffers. ;;;*** -;;;### (autoloads nil "profiler" "profiler.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "profiler" "profiler.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from profiler.el (autoload 'profiler-start "profiler" "\ @@ -21559,8 +21513,8 @@ Open profile FILENAME. ;;;*** -;;;### (autoloads nil "prolog" "progmodes/prolog.el" (21383 2343 -;;;;;; 498187 0)) +;;;### (autoloads nil "prolog" "progmodes/prolog.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/prolog.el (autoload 'prolog-mode "prolog" "\ @@ -21593,7 +21547,7 @@ With prefix argument ARG, restart the Prolog process if running before. ;;;*** -;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (21187 63826 213216 0)) +;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (21607 54478 800121 42000)) ;;; Generated autoloads from ps-bdf.el (defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\ @@ -21604,8 +21558,8 @@ The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") ;;;*** -;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (21342 10917 -;;;;;; 902592 0)) +;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/ps-mode.el (push (purecopy '(ps-mode 1 1 9)) package--builtin-versions) @@ -21651,8 +21605,8 @@ Typing \\\\[ps-run-goto-error] when the cursor is at the number ;;;*** -;;;### (autoloads nil "ps-print" "ps-print.el" (21360 40869 887231 -;;;;;; 0)) +;;;### (autoloads nil "ps-print" "ps-print.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from ps-print.el (push (purecopy '(ps-print 7 3 5)) package--builtin-versions) @@ -21849,17 +21803,17 @@ If EXTENSION is any other symbol, it is ignored. ;;;*** -;;;### (autoloads nil "pulse" "cedet/pulse.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "pulse" "cedet/pulse.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from cedet/pulse.el (push (purecopy '(pulse 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "python" "progmodes/python.el" (21414 44327 -;;;;;; 790846 0)) +;;;### (autoloads nil "python" "progmodes/python.el" (21625 43838 +;;;;;; 980113 968000)) ;;; Generated autoloads from progmodes/python.el -(push (purecopy '(python 0 24 2)) package--builtin-versions) +(push (purecopy '(python 0 24 4)) package--builtin-versions) (add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode)) @@ -21871,16 +21825,17 @@ Input and output via buffer named after `python-shell-buffer-name'. If there is a process already running in that buffer, just switch to it. -With argument, allows you to define CMD so you can edit the -command used to call the interpreter and define DEDICATED, so a -dedicated process for the current buffer is open. When numeric -prefix arg is other than 0 or 4 do not SHOW. +Argument CMD defaults to `python-shell-calculate-command' return +value. When called interactively with `prefix-arg', it allows +the user to edit such value and choose whether the interpreter +should be DEDICATED for the current buffer. When numeric prefix +arg is other than 0 or 4 do not SHOW. Runs the hook `inferior-python-mode-hook' after `comint-mode-hook' is run. (Type \\[describe-mode] in the process buffer for a list of commands.) -\(fn CMD &optional DEDICATED SHOW)" t nil) +\(fn &optional CMD DEDICATED SHOW)" t nil) (autoload 'python-mode "python" "\ Major mode for editing Python files. @@ -21891,7 +21846,7 @@ Major mode for editing Python files. ;;;*** -;;;### (autoloads nil "qp" "gnus/qp.el" (21187 63826 213216 0)) +;;;### (autoloads nil "qp" "gnus/qp.el" (21607 54478 300138 641000)) ;;; Generated autoloads from gnus/qp.el (autoload 'quoted-printable-decode-region "qp" "\ @@ -21910,8 +21865,8 @@ them into characters should be done separately. ;;;*** -;;;### (autoloads nil "quail" "international/quail.el" (21215 43189 -;;;;;; 822371 0)) +;;;### (autoloads nil "quail" "international/quail.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from international/quail.el (autoload 'quail-title "quail" "\ @@ -22141,8 +22096,8 @@ of each directory. ;;;*** -;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from leim/quail/hangul.el (autoload 'hangul-input-method-activate "quail/hangul" "\ @@ -22155,7 +22110,7 @@ HELP-TEXT is a text set in `hangul-input-method-help-text'. ;;;*** ;;;### (autoloads nil "quail/uni-input" "leim/quail/uni-input.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54478 300138 641000)) ;;; Generated autoloads from leim/quail/uni-input.el (autoload 'ucs-input-activate "quail/uni-input" "\ @@ -22169,8 +22124,8 @@ While this input method is active, the variable ;;;*** -;;;### (autoloads nil "quickurl" "net/quickurl.el" (21222 16439 978802 -;;;;;; 0)) +;;;### (autoloads nil "quickurl" "net/quickurl.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/quickurl.el (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ @@ -22241,8 +22196,8 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'. ;;;*** -;;;### (autoloads nil "rcirc" "net/rcirc.el" (21425 14635 268306 -;;;;;; 0)) +;;;### (autoloads nil "rcirc" "net/rcirc.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/rcirc.el (autoload 'rcirc "rcirc" "\ @@ -22280,8 +22235,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/re-builder.el (defalias 'regexp-builder 're-builder) @@ -22299,8 +22254,8 @@ matching parts of the target buffer will be highlighted. ;;;*** -;;;### (autoloads nil "recentf" "recentf.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "recentf" "recentf.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from recentf.el (defvar recentf-mode nil "\ @@ -22326,7 +22281,7 @@ were operated on recently. ;;;*** -;;;### (autoloads nil "rect" "rect.el" (21409 26408 607647 0)) +;;;### (autoloads nil "rect" "rect.el" (21607 54478 800121 42000)) ;;; Generated autoloads from rect.el (autoload 'delete-rectangle "rect" "\ @@ -22466,8 +22421,8 @@ Activates the region if needed. Only lasts until the region is deactivated. ;;;*** -;;;### (autoloads nil "refill" "textmodes/refill.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "refill" "textmodes/refill.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/refill.el (autoload 'refill-mode "refill" "\ @@ -22487,8 +22442,8 @@ For true \"word wrap\" behavior, use `visual-line-mode' instead. ;;;*** -;;;### (autoloads nil "reftex" "textmodes/reftex.el" (21418 41409 -;;;;;; 280143 158000)) +;;;### (autoloads nil "reftex" "textmodes/reftex.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/reftex.el (autoload 'reftex-citation "reftex-cite" nil t) (autoload 'reftex-all-document-files "reftex-parse") @@ -22541,8 +22496,8 @@ This enforces rescanning the buffer on next use. ;;;*** -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (21194 -;;;;;; 37048 599945 0)) +;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from textmodes/reftex-vars.el (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) @@ -22551,8 +22506,8 @@ This enforces rescanning the buffer on next use. ;;;*** -;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (21376 -;;;;;; 29092 815151 0)) +;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload 'regexp-opt "regexp-opt" "\ @@ -22581,15 +22536,15 @@ This means the number of non-shy regexp grouping constructs ;;;*** -;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/regi.el (push (purecopy '(regi 1 8)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "remember" "textmodes/remember.el" (21252 37559 -;;;;;; 125878 0)) +;;;### (autoloads nil "remember" "textmodes/remember.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/remember.el (push (purecopy '(remember 2 0)) package--builtin-versions) @@ -22643,7 +22598,7 @@ to turn the *scratch* buffer into your notes buffer. ;;;*** -;;;### (autoloads nil "repeat" "repeat.el" (21239 25528 651427 0)) +;;;### (autoloads nil "repeat" "repeat.el" (21607 54478 800121 42000)) ;;; Generated autoloads from repeat.el (push (purecopy '(repeat 0 51)) package--builtin-versions) @@ -22666,8 +22621,8 @@ recently executed command not bound to an input event\". ;;;*** -;;;### (autoloads nil "reporter" "mail/reporter.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "reporter" "mail/reporter.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/reporter.el (autoload 'reporter-submit-bug-report "reporter" "\ @@ -22698,8 +22653,8 @@ mail-sending package is used for editing and sending the message. ;;;*** -;;;### (autoloads nil "reposition" "reposition.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "reposition" "reposition.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from reposition.el (autoload 'reposition-window "reposition" "\ @@ -22725,7 +22680,7 @@ first comment line visible (if point is in a comment). ;;;*** -;;;### (autoloads nil "reveal" "reveal.el" (21359 20005 772941 0)) +;;;### (autoloads nil "reveal" "reveal.el" (21607 54478 800121 42000)) ;;; Generated autoloads from reveal.el (autoload 'reveal-mode "reveal" "\ @@ -22760,8 +22715,8 @@ the mode if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/ring.el (autoload 'ring-p "ring" "\ @@ -22776,8 +22731,8 @@ Make a ring that can contain SIZE elements. ;;;*** -;;;### (autoloads nil "rlogin" "net/rlogin.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "rlogin" "net/rlogin.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/rlogin.el (autoload 'rlogin "rlogin" "\ @@ -22821,8 +22776,8 @@ variable. ;;;*** -;;;### (autoloads nil "rmail" "mail/rmail.el" (21384 23211 329821 -;;;;;; 0)) +;;;### (autoloads nil "rmail" "mail/rmail.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from mail/rmail.el (defvar rmail-file-name (purecopy "~/RMAIL") "\ @@ -23019,8 +22974,8 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server. ;;;*** -;;;### (autoloads nil "rmailout" "mail/rmailout.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "rmailout" "mail/rmailout.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/rmailout.el (put 'rmail-output-file-alist 'risky-local-variable t) @@ -23084,8 +23039,8 @@ than appending to it. Deletes the message after writing if ;;;*** -;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (21319 49445 -;;;;;; 508378 0)) +;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from nxml/rng-cmpct.el (autoload 'rng-c-load-schema "rng-cmpct" "\ @@ -23096,8 +23051,8 @@ Return a pattern. ;;;*** -;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (21293 25385 -;;;;;; 120083 0)) +;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from nxml/rng-nxml.el (autoload 'rng-nxml-mode-init "rng-nxml" "\ @@ -23109,8 +23064,8 @@ Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil. ;;;*** -;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (21293 25385 -;;;;;; 120083 0)) +;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from nxml/rng-valid.el (autoload 'rng-validate-mode "rng-valid" "\ @@ -23140,8 +23095,8 @@ to use for finding the schema. ;;;*** -;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (21293 25385 120083 -;;;;;; 0)) +;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from nxml/rng-xsd.el (put 'http://www\.w3\.org/2001/XMLSchema-datatypes 'rng-dt-compile 'rng-xsd-compile) @@ -23168,8 +23123,8 @@ must be equal. ;;;*** -;;;### (autoloads nil "robin" "international/robin.el" (20523 62082 -;;;;;; 997685 0)) +;;;### (autoloads nil "robin" "international/robin.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from international/robin.el (autoload 'robin-define-package "robin" "\ @@ -23201,7 +23156,7 @@ Start using robin package NAME, which is a string. ;;;*** -;;;### (autoloads nil "rot13" "rot13.el" (21240 46395 727291 0)) +;;;### (autoloads nil "rot13" "rot13.el" (21607 54478 800121 42000)) ;;; Generated autoloads from rot13.el (autoload 'rot13 "rot13" "\ @@ -23238,8 +23193,8 @@ Toggle the use of ROT13 encoding for the current window. ;;;*** -;;;### (autoloads nil "rst" "textmodes/rst.el" (21415 65191 692645 -;;;;;; 0)) +;;;### (autoloads nil "rst" "textmodes/rst.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from textmodes/rst.el (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode))) @@ -23269,8 +23224,8 @@ for modes derived from Text mode, like Mail mode. ;;;*** -;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21414 -;;;;;; 44327 790846 0)) +;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/ruby-mode.el (push (purecopy '(ruby-mode 1 2)) package--builtin-versions) @@ -23287,8 +23242,8 @@ Major mode for editing Ruby code. ;;;*** -;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (21419 62246 751914 -;;;;;; 0)) +;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from ruler-mode.el (push (purecopy '(ruler-mode 1 6)) package--builtin-versions) @@ -23306,8 +23261,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/rx.el (autoload 'rx-to-string "rx" "\ @@ -23618,15 +23573,15 @@ enclosed in `(and ...)'. ;;;*** -;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from net/sasl-ntlm.el (push (purecopy '(sasl 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "savehist" "savehist.el" (21326 22692 123234 -;;;;;; 0)) +;;;### (autoloads nil "savehist" "savehist.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from savehist.el (push (purecopy '(savehist 24)) package--builtin-versions) @@ -23658,8 +23613,8 @@ histories, which is probably undesirable. ;;;*** -;;;### (autoloads nil "scheme" "progmodes/scheme.el" (21379 5287 -;;;;;; 607434 0)) +;;;### (autoloads nil "scheme" "progmodes/scheme.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/scheme.el (autoload 'scheme-mode "scheme" "\ @@ -23698,8 +23653,8 @@ that variable's value is a string. ;;;*** -;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/score-mode.el (autoload 'gnus-score-mode "score-mode" "\ @@ -23712,8 +23667,8 @@ This mode is an extended emacs-lisp mode. ;;;*** -;;;### (autoloads nil "scroll-all" "scroll-all.el" (21388 20265 495157 -;;;;;; 0)) +;;;### (autoloads nil "scroll-all" "scroll-all.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from scroll-all.el (defvar scroll-all-mode nil "\ @@ -23738,8 +23693,8 @@ one window apply to all visible windows in the same frame. ;;;*** -;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from scroll-lock.el (autoload 'scroll-lock-mode "scroll-lock" "\ @@ -23755,16 +23710,16 @@ vertically fixed relative to window boundaries during scrolling. ;;;*** -;;;### (autoloads nil "secrets" "net/secrets.el" (21256 34613 967717 -;;;;;; 0)) +;;;### (autoloads nil "secrets" "net/secrets.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/secrets.el (when (featurep 'dbusbind) (autoload 'secrets-show-secrets "secrets" nil t)) ;;;*** -;;;### (autoloads nil "semantic" "cedet/semantic.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "semantic" "cedet/semantic.el" (21609 55608 +;;;;;; 852266 580000)) ;;; Generated autoloads from cedet/semantic.el (push (purecopy '(semantic 2 2)) package--builtin-versions) @@ -23822,7 +23777,7 @@ Semantic mode. ;;;*** ;;;### (autoloads nil "semantic/bovine/grammar" "cedet/semantic/bovine/grammar.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54477 800124 118000)) ;;; Generated autoloads from cedet/semantic/bovine/grammar.el (autoload 'bovine-grammar-mode "semantic/bovine/grammar" "\ @@ -23833,7 +23788,7 @@ Major mode for editing Bovine grammars. ;;;*** ;;;### (autoloads nil "semantic/wisent/grammar" "cedet/semantic/wisent/grammar.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54477 800124 118000)) ;;; Generated autoloads from cedet/semantic/wisent/grammar.el (autoload 'wisent-grammar-mode "semantic/wisent/grammar" "\ @@ -23843,8 +23798,8 @@ Major mode for editing Wisent grammars. ;;;*** -;;;### (autoloads nil "sendmail" "mail/sendmail.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "sendmail" "mail/sendmail.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style 'default "\ @@ -24125,7 +24080,7 @@ Like `mail' command, but display mail buffer in another frame. ;;;*** -;;;### (autoloads nil "server" "server.el" (21351 25893 518259 0)) +;;;### (autoloads nil "server" "server.el" (21607 54478 800121 42000)) ;;; Generated autoloads from server.el (put 'server-host 'risky-local-variable t) @@ -24192,7 +24147,7 @@ only these files will be asked to be saved. ;;;*** -;;;### (autoloads nil "ses" "ses.el" (21405 29360 677747 0)) +;;;### (autoloads nil "ses" "ses.el" (21607 54478 800121 42000)) ;;; Generated autoloads from ses.el (autoload 'ses-mode "ses" "\ @@ -24236,8 +24191,8 @@ formula: ;;;*** -;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (21623 +;;;;;; 2108 292281 129000)) ;;; Generated autoloads from textmodes/sgml-mode.el (autoload 'sgml-mode "sgml-mode" "\ @@ -24302,8 +24257,8 @@ To work around that, do: ;;;*** -;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21419 -;;;;;; 62246 751914 0)) +;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/sh-script.el (push (purecopy '(sh-script 2 0 6)) package--builtin-versions) (put 'sh-shell 'safe-local-variable 'symbolp) @@ -24367,8 +24322,8 @@ with your script for an edit-interpret-debug cycle. ;;;*** -;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (21271 54940 -;;;;;; 492268 31000)) +;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/shadow.el (autoload 'list-load-path-shadows "shadow" "\ @@ -24417,8 +24372,8 @@ function, `load-path-shadows-find'. ;;;*** -;;;### (autoloads nil "shadowfile" "shadowfile.el" (21222 16439 978802 -;;;;;; 0)) +;;;### (autoloads nil "shadowfile" "shadowfile.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from shadowfile.el (autoload 'shadow-define-cluster "shadowfile" "\ @@ -24456,7 +24411,7 @@ Set up file shadowing. ;;;*** -;;;### (autoloads nil "shell" "shell.el" (21374 22080 740835 768000)) +;;;### (autoloads nil "shell" "shell.el" (21607 54478 800121 42000)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\ @@ -24504,7 +24459,7 @@ Otherwise, one argument `-i' is passed to the shell. ;;;*** -;;;### (autoloads nil "shr" "net/shr.el" (21327 43559 923043 0)) +;;;### (autoloads nil "shr" "net/shr.el" (21623 2108 292281 129000)) ;;; Generated autoloads from net/shr.el (autoload 'shr-render-region "shr" "\ @@ -24521,8 +24476,8 @@ DOM should be a parse tree as generated by ;;;*** -;;;### (autoloads nil "sieve" "gnus/sieve.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "sieve" "gnus/sieve.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/sieve.el (autoload 'sieve-manage "sieve" "\ @@ -24547,8 +24502,8 @@ DOM should be a parse tree as generated by ;;;*** -;;;### (autoloads nil "sieve-mode" "gnus/sieve-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "sieve-mode" "gnus/sieve-mode.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/sieve-mode.el (autoload 'sieve-mode "sieve-mode" "\ @@ -24563,8 +24518,8 @@ Turning on Sieve mode runs `sieve-mode-hook'. ;;;*** -;;;### (autoloads nil "simula" "progmodes/simula.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "simula" "progmodes/simula.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/simula.el (autoload 'simula-mode "simula" "\ @@ -24612,8 +24567,8 @@ with no arguments, if that value is non-nil. ;;;*** -;;;### (autoloads nil "skeleton" "skeleton.el" (21420 38312 308000 -;;;;;; 0)) +;;;### (autoloads nil "skeleton" "skeleton.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from skeleton.el (defvar skeleton-filter-function 'identity "\ @@ -24731,8 +24686,8 @@ symmetrical ones, and the same character twice for the others. ;;;*** -;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (21409 26408 -;;;;;; 607647 0)) +;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (21628 45530 +;;;;;; 160140 360000)) ;;; Generated autoloads from vc/smerge-mode.el (autoload 'smerge-ediff "smerge-mode" "\ @@ -24759,8 +24714,8 @@ If no conflict maker is found, turn off `smerge-mode'. ;;;*** -;;;### (autoloads nil "smiley" "gnus/smiley.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "smiley" "gnus/smiley.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from gnus/smiley.el (autoload 'smiley-region "smiley" "\ @@ -24777,8 +24732,8 @@ interactively. If there's no argument, do it at the current buffer. ;;;*** -;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (21322 25639 -;;;;;; 363230 0)) +;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (21619 5051 260148 +;;;;;; 536000)) ;;; Generated autoloads from mail/smtpmail.el (autoload 'smtpmail-send-it "smtpmail" "\ @@ -24793,8 +24748,8 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'. ;;;*** -;;;### (autoloads nil "snake" "play/snake.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "snake" "play/snake.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/snake.el (autoload 'snake "snake" "\ @@ -24817,8 +24772,8 @@ Snake mode keybindings: ;;;*** -;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from net/snmp-mode.el (autoload 'snmp-mode "snmp-mode" "\ @@ -24847,8 +24802,8 @@ then `snmpv2-mode-hook'. ;;;*** -;;;### (autoloads nil "solar" "calendar/solar.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "solar" "calendar/solar.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from calendar/solar.el (autoload 'sunrise-sunset "solar" "\ @@ -24863,8 +24818,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads nil "solitaire" "play/solitaire.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "solitaire" "play/solitaire.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from play/solitaire.el (autoload 'solitaire "solitaire" "\ @@ -24939,7 +24894,7 @@ Pick your favorite shortcuts: ;;;*** -;;;### (autoloads nil "sort" "sort.el" (21240 46395 727291 0)) +;;;### (autoloads nil "sort" "sort.el" (21607 54478 800121 42000)) ;;; Generated autoloads from sort.el (put 'sort-fold-case 'safe-local-variable 'booleanp) @@ -25114,7 +25069,7 @@ is non-nil, it also prints a message describing the number of deletions. ;;;*** -;;;### (autoloads nil "spam" "gnus/spam.el" (21296 1575 438327 0)) +;;;### (autoloads nil "spam" "gnus/spam.el" (21607 54478 300138 641000)) ;;; Generated autoloads from gnus/spam.el (autoload 'spam-initialize "spam" "\ @@ -25128,8 +25083,8 @@ installed through `spam-necessary-extra-headers'. ;;;*** -;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from gnus/spam-report.el (autoload 'spam-report-process-queue "spam-report" "\ @@ -25171,8 +25126,8 @@ Spam reports will be queued with the method used when ;;;*** -;;;### (autoloads nil "speedbar" "speedbar.el" (21335 37672 97862 -;;;;;; 0)) +;;;### (autoloads nil "speedbar" "speedbar.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from speedbar.el (defalias 'speedbar 'speedbar-frame-mode) @@ -25196,8 +25151,8 @@ selected. If the speedbar frame is active, then select the attached frame. ;;;*** -;;;### (autoloads nil "spook" "play/spook.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "spook" "play/spook.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/spook.el (autoload 'spook "spook" "\ @@ -25212,8 +25167,8 @@ Return a vector containing the lines from `spook-phrases-file'. ;;;*** -;;;### (autoloads nil "sql" "progmodes/sql.el" (21263 60346 30834 -;;;;;; 928000)) +;;;### (autoloads nil "sql" "progmodes/sql.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from progmodes/sql.el (push (purecopy '(sql 3 4)) package--builtin-versions) @@ -25672,17 +25627,22 @@ buffer. \(fn &optional BUFFER)" t nil) +(autoload 'sql-vertica "sql" "\ +Run vsql as an inferior process. + +\(fn &optional BUFFER)" t nil) + ;;;*** -;;;### (autoloads nil "srecode" "cedet/srecode.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "srecode" "cedet/srecode.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from cedet/srecode.el (push (purecopy '(srecode 1 2)) package--builtin-versions) ;;;*** ;;;### (autoloads nil "srecode/srt-mode" "cedet/srecode/srt-mode.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54477 800124 118000)) ;;; Generated autoloads from cedet/srecode/srt-mode.el (autoload 'srecode-template-mode "srecode/srt-mode" "\ @@ -25694,8 +25654,8 @@ Major-mode for writing SRecode macros. ;;;*** -;;;### (autoloads nil "starttls" "gnus/starttls.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "starttls" "gnus/starttls.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from gnus/starttls.el (autoload 'starttls-open-stream "starttls" "\ @@ -25718,7 +25678,8 @@ GnuTLS requires a port number. ;;;*** -;;;### (autoloads nil "strokes" "strokes.el" (21271 1974 113743 0)) +;;;### (autoloads nil "strokes" "strokes.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from strokes.el (autoload 'strokes-global-set-stroke "strokes" "\ @@ -25831,8 +25792,8 @@ Read a complex stroke and insert its glyph into the current buffer. ;;;*** -;;;### (autoloads nil "studly" "play/studly.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "studly" "play/studly.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/studly.el (autoload 'studlify-region "studly" "\ @@ -25852,11 +25813,11 @@ Studlify-case the current buffer. ;;;*** -;;;### (autoloads nil "subword" "progmodes/subword.el" (21377 49959 -;;;;;; 896066 0)) +;;;### (autoloads nil "subword" "progmodes/subword.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from progmodes/subword.el -(define-obsolete-function-alias 'capitalized-words-mode 'subword-mode "24.5") +(define-obsolete-function-alias 'capitalized-words-mode 'subword-mode "25.1") (autoload 'subword-mode "subword" "\ Toggle subword movement and editing (Subword mode). @@ -25880,7 +25841,7 @@ called a `subword'. Here are some examples: NSGraphicsContext => \"NS\", \"Graphics\" and \"Context\" This mode changes the definition of a word so that word commands -treat nomenclature boundaries as word bounaries. +treat nomenclature boundaries as word boundaries. \\{subword-mode-map} @@ -25945,8 +25906,8 @@ See `superword-mode' for more information on Superword mode. ;;;*** -;;;### (autoloads nil "supercite" "mail/supercite.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "supercite" "mail/supercite.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/supercite.el (autoload 'sc-cite-original "supercite" "\ @@ -25978,8 +25939,8 @@ and `sc-post-hook' is run after the guts of this function. ;;;*** -;;;### (autoloads nil "t-mouse" "t-mouse.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "t-mouse" "t-mouse.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from t-mouse.el (define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1") @@ -26007,7 +25968,7 @@ It relies on the `gpm' daemon being activated. ;;;*** -;;;### (autoloads nil "tabify" "tabify.el" (21240 46395 727291 0)) +;;;### (autoloads nil "tabify" "tabify.el" (21607 54478 800121 42000)) ;;; Generated autoloads from tabify.el (autoload 'untabify "tabify" "\ @@ -26036,8 +25997,8 @@ The variable `tab-width' controls the spacing of tab stops. ;;;*** -;;;### (autoloads nil "table" "textmodes/table.el" (21194 37048 599945 -;;;;;; 0)) +;;;### (autoloads nil "table" "textmodes/table.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from textmodes/table.el (defvar table-cell-map-hook nil "\ @@ -26629,7 +26590,7 @@ converts a table into plain text without frames. It is a companion to ;;;*** -;;;### (autoloads nil "talk" "talk.el" (21240 46395 727291 0)) +;;;### (autoloads nil "talk" "talk.el" (21607 54478 800121 42000)) ;;; Generated autoloads from talk.el (autoload 'talk-connect "talk" "\ @@ -26644,8 +26605,8 @@ Connect to the Emacs talk group from the current X display or tty frame. ;;;*** -;;;### (autoloads nil "tar-mode" "tar-mode.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "tar-mode" "tar-mode.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from tar-mode.el (autoload 'tar-mode "tar-mode" "\ @@ -26668,8 +26629,8 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ;;;*** -;;;### (autoloads nil "tcl" "progmodes/tcl.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "tcl" "progmodes/tcl.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from progmodes/tcl.el (autoload 'tcl-mode "tcl" "\ @@ -26717,8 +26678,8 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'. ;;;*** -;;;### (autoloads nil "telnet" "net/telnet.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "telnet" "net/telnet.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/telnet.el (autoload 'telnet "telnet" "\ @@ -26743,7 +26704,7 @@ Normally input is edited in Emacs and sent a line at a time. ;;;*** -;;;### (autoloads nil "term" "term.el" (21414 44327 790846 0)) +;;;### (autoloads nil "term" "term.el" (21607 54478 800121 42000)) ;;; Generated autoloads from term.el (autoload 'make-term "term" "\ @@ -26785,8 +26746,8 @@ use in that buffer. ;;;*** -;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/testcover.el (autoload 'testcover-this-defun "testcover" "\ @@ -26796,8 +26757,8 @@ Start coverage on function under point. ;;;*** -;;;### (autoloads nil "tetris" "play/tetris.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "tetris" "play/tetris.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from play/tetris.el (push (purecopy '(tetris 2 1)) package--builtin-versions) @@ -26822,8 +26783,8 @@ tetris-mode keybindings: ;;;*** -;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (21611 10938 +;;;;;; 204397 226000)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ @@ -27124,8 +27085,8 @@ Major mode to edit DocTeX files. ;;;*** -;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload 'texinfo-format-buffer "texinfmt" "\ @@ -27164,8 +27125,8 @@ if large. You can use `Info-split' to do this manually. ;;;*** -;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (21414 44327 -;;;;;; 790846 0)) +;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote (purecopy "``") "\ @@ -27249,8 +27210,8 @@ value of `texinfo-mode-hook'. ;;;*** -;;;### (autoloads nil "thai-util" "language/thai-util.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "thai-util" "language/thai-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from language/thai-util.el (autoload 'thai-compose-region "thai-util" "\ @@ -27277,8 +27238,8 @@ Compose Thai characters in the current buffer. ;;;*** -;;;### (autoloads nil "thingatpt" "thingatpt.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "thingatpt" "thingatpt.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from thingatpt.el (autoload 'forward-thing "thingatpt" "\ @@ -27342,7 +27303,7 @@ Return the Lisp list at point, or nil if none is found. ;;;*** -;;;### (autoloads nil "thumbs" "thumbs.el" (21240 46395 727291 0)) +;;;### (autoloads nil "thumbs" "thumbs.el" (21607 54478 800121 42000)) ;;; Generated autoloads from thumbs.el (autoload 'thumbs-find-thumb "thumbs" "\ @@ -27376,8 +27337,8 @@ In dired, call the setroot program on the image at point. ;;;*** -;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from language/tibet-util.el (autoload 'tibetan-char-p "tibet-util" "\ @@ -27450,14 +27411,14 @@ See also docstring of the function tibetan-compose-region. ;;;*** -;;;### (autoloads nil "tildify" "textmodes/tildify.el" (21393 38187 -;;;;;; 675040 0)) +;;;### (autoloads nil "tildify" "textmodes/tildify.el" (21611 10938 +;;;;;; 204397 226000)) ;;; Generated autoloads from textmodes/tildify.el -(push (purecopy '(tildify 4 5 3)) package--builtin-versions) +(push (purecopy '(tildify 4 5 7)) package--builtin-versions) (autoload 'tildify-region "tildify" "\ Add hard spaces in the region between BEG and END. -See variables `tildify-pattern-alist', `tildify-string-alist', and +See variables `tildify-pattern', `tildify-space-string', and `tildify-ignored-environments-alist' for information about configuration parameters. This function performs no refilling of the changed text. @@ -27468,7 +27429,7 @@ won't be prompted for confirmation of each substitution. (autoload 'tildify-buffer "tildify" "\ Add hard spaces in the current buffer. -See variables `tildify-pattern-alist', `tildify-string-alist', and +See variables `tildify-pattern', `tildify-space-string', and `tildify-ignored-environments-alist' for information about configuration parameters. This function performs no refilling of the changed text. @@ -27479,7 +27440,7 @@ won't be prompted for confirmation of each substitution. ;;;*** -;;;### (autoloads nil "time" "time.el" (21240 46395 727291 0)) +;;;### (autoloads nil "time" "time.el" (21607 54478 800121 42000)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ @@ -27541,8 +27502,8 @@ Return a string giving the duration of the Emacs initialization. ;;;*** -;;;### (autoloads nil "time-date" "calendar/time-date.el" (21361 -;;;;;; 61732 646433 0)) +;;;### (autoloads nil "time-date" "calendar/time-date.el" (21611 +;;;;;; 10937 700236 3000)) ;;; Generated autoloads from calendar/time-date.el (autoload 'date-to-time "time-date" "\ @@ -27557,15 +27518,10 @@ If DATE lacks timezone information, GMT is assumed. (autoload 'time-to-seconds "time-date")) (autoload 'seconds-to-time "time-date" "\ -Convert SECONDS (a floating point number) to a time value. +Convert SECONDS to a time value. \(fn SECONDS)" nil nil) -(autoload 'time-less-p "time-date" "\ -Return non-nil if time value T1 is earlier than time value T2. - -\(fn T1 T2)" nil nil) - (autoload 'days-to-time "time-date" "\ Convert DAYS into a time value. @@ -27578,17 +27534,9 @@ TIME should be either a time value or a date-time string. \(fn TIME)" nil nil) (defalias 'subtract-time 'time-subtract) - -(autoload 'time-subtract "time-date" "\ -Subtract two time values, T1 minus T2. -Return the difference in the format of a time value. - -\(fn T1 T2)" nil nil) - -(autoload 'time-add "time-date" "\ -Add two time values T1 and T2. One should represent a time difference. - -\(fn T1 T2)" nil nil) +(autoload 'time-add "time-date") +(autoload 'time-subtract "time-date") +(autoload 'time-less-p "time-date") (autoload 'date-to-day "time-date" "\ Return the number of days between year 1 and DATE. @@ -27658,8 +27606,8 @@ Convert the time interval in seconds to a short string. ;;;*** -;;;### (autoloads nil "time-stamp" "time-stamp.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "time-stamp" "time-stamp.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from time-stamp.el (put 'time-stamp-format 'safe-local-variable 'stringp) (put 'time-stamp-time-zone 'safe-local-variable 'string-or-null-p) @@ -27699,8 +27647,8 @@ With ARG, turn time stamping on if and only if arg is positive. ;;;*** -;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (21222 -;;;;;; 16439 978802 0)) +;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from calendar/timeclock.el (push (purecopy '(timeclock 2 6 1)) package--builtin-versions) @@ -27810,7 +27758,7 @@ relative only to the time worked today, and not to past time. ;;;*** ;;;### (autoloads nil "titdic-cnv" "international/titdic-cnv.el" -;;;;;; (21187 63826 213216 0)) +;;;;;; (21607 54478 300138 641000)) ;;; Generated autoloads from international/titdic-cnv.el (autoload 'titdic-convert "titdic-cnv" "\ @@ -27832,7 +27780,7 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\". ;;;*** -;;;### (autoloads nil "tmm" "tmm.el" (21240 46395 727291 0)) +;;;### (autoloads nil "tmm" "tmm.el" (21607 54478 800121 42000)) ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse) @@ -27874,8 +27822,8 @@ Its value should be an event that has a binding in MENU. ;;;*** -;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21423 -;;;;;; 59302 489365 0)) +;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21625 +;;;;;; 43838 483701 627000)) ;;; Generated autoloads from calendar/todo-mode.el (autoload 'todo-show "todo-mode" "\ @@ -27942,8 +27890,8 @@ Mode for displaying and reprioritizing top priority Todo. ;;;*** -;;;### (autoloads nil "tool-bar" "tool-bar.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "tool-bar" "tool-bar.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from tool-bar.el (autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\ @@ -28013,8 +27961,8 @@ holds a keymap. ;;;*** -;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (21607 54477 800124 +;;;;;; 118000)) ;;; Generated autoloads from emacs-lisp/tq.el (autoload 'tq-create "tq" "\ @@ -28027,8 +27975,8 @@ to a tcp server on another machine. ;;;*** -;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer "*trace-output*" "\ @@ -28073,8 +28021,8 @@ the output buffer or changing the window configuration. ;;;*** -;;;### (autoloads nil "tramp" "net/tramp.el" (21406 50214 284651 -;;;;;; 0)) +;;;### (autoloads nil "tramp" "net/tramp.el" (21625 43838 483701 +;;;;;; 627000)) ;;; Generated autoloads from net/tramp.el (defvar tramp-mode t "\ @@ -28160,7 +28108,7 @@ Invoke Tramp file name completion handler. Falls back to normal file name handler if no Tramp file name handler exists." (let ((directory-sep-char 47) (fn (assoc operation tramp-completion-file-name-handler-alist))) (if (and fn tramp-mode (or (eq tramp-syntax (quote sep)) (featurep (quote tramp)) (and (boundp (quote partial-completion-mode)) (symbol-value (quote partial-completion-mode))) (featurep (quote ido)) (featurep (quote icicles)))) (save-match-data (apply (cdr fn) args)) (tramp-completion-run-real-handler operation args)))) (defun tramp-autoload-file-name-handler (operation &rest args) "\ -Load Tramp file name handler, and perform OPERATION." (let ((default-directory temporary-file-directory)) (load "tramp" nil t)) (apply operation args)) +Load Tramp file name handler, and perform OPERATION." (let ((default-directory (or (symbol-value (quote temporary-file-directory)) "/"))) (load "tramp" nil t)) (apply operation args)) (defun tramp-register-autoload-file-name-handlers nil "\ Add Tramp file name handlers to `file-name-handler-alist' during autoload." (add-to-list (quote file-name-handler-alist) (cons tramp-file-name-regexp (quote tramp-autoload-file-name-handler))) (put (quote tramp-autoload-file-name-handler) (quote safe-magic) t) (add-to-list (quote file-name-handler-alist) (cons tramp-completion-file-name-regexp (quote tramp-completion-file-name-handler))) (put (quote tramp-completion-file-name-handler) (quote safe-magic) t)) @@ -28189,8 +28137,8 @@ Discard Tramp from loading remote files. ;;;*** -;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (21406 50214 -;;;;;; 284651 0)) +;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from net/tramp-ftp.el (autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\ @@ -28200,8 +28148,8 @@ Discard Tramp from loading remote files. ;;;*** -;;;### (autoloads nil "tutorial" "tutorial.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "tutorial" "tutorial.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from tutorial.el (autoload 'help-with-tutorial "tutorial" "\ @@ -28225,8 +28173,8 @@ resumed later. ;;;*** -;;;### (autoloads nil "tv-util" "language/tv-util.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads nil "tv-util" "language/tv-util.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from language/tv-util.el (autoload 'tai-viet-composition-function "tv-util" "\ @@ -28236,8 +28184,8 @@ resumed later. ;;;*** -;;;### (autoloads nil "two-column" "textmodes/two-column.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "two-column" "textmodes/two-column.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from textmodes/two-column.el (autoload '2C-command "two-column" () t 'keymap) (global-set-key "\C-x6" '2C-command) @@ -28284,8 +28232,8 @@ First column's text sSs Second column's text ;;;*** -;;;### (autoloads nil "type-break" "type-break.el" (21222 16439 978802 -;;;;;; 0)) +;;;### (autoloads nil "type-break" "type-break.el" (21609 55608 852266 +;;;;;; 580000)) ;;; Generated autoloads from type-break.el (defvar type-break-mode nil "\ @@ -28417,7 +28365,7 @@ FRAC should be the inverse of the fractional value; for example, a value of ;;;*** -;;;### (autoloads nil "uce" "mail/uce.el" (21199 54969 178188 0)) +;;;### (autoloads nil "uce" "mail/uce.el" (21607 54478 300138 641000)) ;;; Generated autoloads from mail/uce.el (autoload 'uce-reply-to-uce "uce" "\ @@ -28431,7 +28379,7 @@ You might need to set `uce-mail-reader' before using this. ;;;*** ;;;### (autoloads nil "ucs-normalize" "international/ucs-normalize.el" -;;;;;; (21194 37048 599945 0)) +;;;;;; (21607 54478 300138 641000)) ;;; Generated autoloads from international/ucs-normalize.el (autoload 'ucs-normalize-NFD-region "ucs-normalize" "\ @@ -28496,8 +28444,8 @@ Normalize the string STR by the Unicode NFC and Mac OS's HFS Plus. ;;;*** -;;;### (autoloads nil "underline" "textmodes/underline.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "underline" "textmodes/underline.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from textmodes/underline.el (autoload 'underline-region "underline" "\ @@ -28517,8 +28465,8 @@ which specify the range to operate on. ;;;*** -;;;### (autoloads nil "unrmail" "mail/unrmail.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "unrmail" "mail/unrmail.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from mail/unrmail.el (autoload 'batch-unrmail "unrmail" "\ @@ -28538,8 +28486,8 @@ The variable `unrmail-mbox-format' controls which mbox format to use. ;;;*** -;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (21607 54477 +;;;;;; 800124 118000)) ;;; Generated autoloads from emacs-lisp/unsafep.el (autoload 'unsafep "unsafep" "\ @@ -28551,7 +28499,7 @@ UNSAFEP-VARS is a list of symbols with local bindings. ;;;*** -;;;### (autoloads nil "url" "url/url.el" (21302 6641 882267 783000)) +;;;### (autoloads nil "url" "url/url.el" (21607 54478 800121 42000)) ;;; Generated autoloads from url/url.el (autoload 'url-retrieve "url" "\ @@ -28598,8 +28546,8 @@ no further processing). URL is either a string or a parsed URL. ;;;*** -;;;### (autoloads nil "url-auth" "url/url-auth.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "url-auth" "url/url-auth.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-auth.el (autoload 'url-get-authentication "url-auth" "\ @@ -28640,8 +28588,8 @@ RATING a rating between 1 and 10 of the strength of the authentication. ;;;*** -;;;### (autoloads nil "url-cache" "url/url-cache.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "url-cache" "url/url-cache.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from url/url-cache.el (autoload 'url-store-in-cache "url-cache" "\ @@ -28662,8 +28610,8 @@ Extract FNAM from the local disk cache. ;;;*** -;;;### (autoloads nil "url-cid" "url/url-cid.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "url-cid" "url/url-cid.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-cid.el (autoload 'url-cid "url-cid" "\ @@ -28673,8 +28621,8 @@ Extract FNAM from the local disk cache. ;;;*** -;;;### (autoloads nil "url-dav" "url/url-dav.el" (21302 6606 390237 -;;;;;; 377000)) +;;;### (autoloads nil "url-dav" "url/url-dav.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-dav.el (autoload 'url-dav-supported-p "url-dav" "\ @@ -28708,8 +28656,8 @@ added to this list, so most requests can just pass in nil. ;;;*** -;;;### (autoloads nil "url-file" "url/url-file.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "url-file" "url/url-file.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-file.el (autoload 'url-file "url-file" "\ @@ -28719,8 +28667,8 @@ Handle file: and ftp: URLs. ;;;*** -;;;### (autoloads nil "url-gw" "url/url-gw.el" (21302 6606 390237 -;;;;;; 377000)) +;;;### (autoloads nil "url-gw" "url/url-gw.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-gw.el (autoload 'url-gateway-nslookup-host "url-gw" "\ @@ -28734,12 +28682,15 @@ Args per `open-network-stream'. Will not make a connection if `url-gateway-unplugged' is non-nil. Might do a non-blocking connection; use `process-status' to check. -\(fn NAME BUFFER HOST SERVICE)" nil nil) +Optional arg GATEWAY-METHOD specifies the gateway to be used, +overriding the value of `url-gateway-method'. + +\(fn NAME BUFFER HOST SERVICE &optional GATEWAY-METHOD)" nil nil) ;;;*** -;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (21419 -;;;;;; 62246 751914 0)) +;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from url/url-handlers.el (defvar url-handler-mode nil "\ @@ -28793,8 +28744,8 @@ accessible. ;;;*** -;;;### (autoloads nil "url-http" "url/url-http.el" (21419 62246 751914 -;;;;;; 0)) +;;;### (autoloads nil "url-http" "url/url-http.el" (21619 5051 260148 +;;;;;; 536000)) ;;; Generated autoloads from url/url-http.el (autoload 'url-default-expander "url-expand") @@ -28806,8 +28757,8 @@ accessible. ;;;*** -;;;### (autoloads nil "url-irc" "url/url-irc.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "url-irc" "url/url-irc.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-irc.el (autoload 'url-irc "url-irc" "\ @@ -28817,8 +28768,8 @@ accessible. ;;;*** -;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-ldap.el (autoload 'url-ldap "url-ldap" "\ @@ -28831,8 +28782,8 @@ URL can be a URL string, or a URL vector of the type returned by ;;;*** -;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from url/url-mailto.el (autoload 'url-mail "url-mailto" "\ @@ -28847,8 +28798,8 @@ Handle the mailto: URL syntax. ;;;*** -;;;### (autoloads nil "url-misc" "url/url-misc.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "url-misc" "url/url-misc.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-misc.el (autoload 'url-man "url-misc" "\ @@ -28879,8 +28830,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-news" "url/url-news.el" (21301 65237 320114 -;;;;;; 350000)) +;;;### (autoloads nil "url-news" "url/url-news.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-news.el (autoload 'url-news "url-news" "\ @@ -28895,8 +28846,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-ns" "url/url-ns.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "url-ns" "url/url-ns.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-ns.el (autoload 'isPlainHostName "url-ns" "\ @@ -28936,8 +28887,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-parse" "url/url-parse.el" (21350 58112 -;;;;;; 380040 0)) +;;;### (autoloads nil "url-parse" "url/url-parse.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from url/url-parse.el (autoload 'url-recreate-url "url-parse" "\ @@ -28988,8 +28939,8 @@ parses to ;;;*** -;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from url/url-privacy.el (autoload 'url-setup-privacy-info "url-privacy" "\ @@ -28999,8 +28950,8 @@ Setup variables that expose info about you and your system. ;;;*** -;;;### (autoloads nil "url-queue" "url/url-queue.el" (21193 16180 -;;;;;; 875828 0)) +;;;### (autoloads nil "url-queue" "url/url-queue.el" (21619 5051 +;;;;;; 260148 536000)) ;;; Generated autoloads from url/url-queue.el (autoload 'url-queue-retrieve "url-queue" "\ @@ -29014,8 +28965,8 @@ The variable `url-queue-timeout' sets a timeout. ;;;*** -;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (21307 58279 -;;;;;; 19956 0)) +;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from url/url-tramp.el (defvar url-tramp-protocols '("ftp" "ssh" "scp" "rsync" "telnet") "\ @@ -29033,8 +28984,8 @@ would have been passed to OPERATION. ;;;*** -;;;### (autoloads nil "url-util" "url/url-util.el" (21364 37926 837230 -;;;;;; 0)) +;;;### (autoloads nil "url-util" "url/url-util.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from url/url-util.el (defvar url-debug nil "\ @@ -29202,8 +29153,8 @@ This uses `url-current-object', set locally to the buffer. ;;;*** -;;;### (autoloads nil "userlock" "userlock.el" (21260 57764 872288 -;;;;;; 374000)) +;;;### (autoloads nil "userlock" "userlock.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from userlock.el (autoload 'ask-user-about-lock "userlock" "\ @@ -29231,8 +29182,8 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads nil "utf-7" "international/utf-7.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "utf-7" "international/utf-7.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from international/utf-7.el (autoload 'utf-7-post-read-conversion "utf-7" "\ @@ -29257,7 +29208,7 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads nil "utf7" "gnus/utf7.el" (21187 63826 213216 0)) +;;;### (autoloads nil "utf7" "gnus/utf7.el" (21607 54478 300138 641000)) ;;; Generated autoloads from gnus/utf7.el (autoload 'utf7-encode "utf7" "\ @@ -29267,8 +29218,8 @@ Encode UTF-7 STRING. Use IMAP modification if FOR-IMAP is non-nil. ;;;*** -;;;### (autoloads nil "uudecode" "mail/uudecode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "uudecode" "mail/uudecode.el" (21607 54478 +;;;;;; 300138 641000)) ;;; Generated autoloads from mail/uudecode.el (autoload 'uudecode-decode-region-external "uudecode" "\ @@ -29292,7 +29243,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME. ;;;*** -;;;### (autoloads nil "vc" "vc/vc.el" (21332 61483 90708 0)) +;;;### (autoloads nil "vc" "vc/vc.el" (21628 45530 160140 360000)) ;;; Generated autoloads from vc/vc.el (defvar vc-checkout-hook nil "\ @@ -29343,8 +29294,7 @@ For old-style locking-based version control systems, like RCS: Register into a version control system. If VC-FILESET is given, register the files in that fileset. Otherwise register the current file. -With prefix argument SET-REVISION, allow user to specify initial revision -level. If COMMENT is present, use that as an initial comment. +If COMMENT is present, use that as an initial comment. The version control system to use is found by cycling through the list `vc-handled-backends'. The first backend in that list which declares @@ -29353,7 +29303,7 @@ directory are already registered under that backend) will be used to register the file. If no backend declares itself responsible, the first backend that could register the file is used. -\(fn &optional SET-REVISION VC-FILESET COMMENT)" t nil) +\(fn &optional VC-FILESET COMMENT)" t nil) (autoload 'vc-version-diff "vc" "\ Report diffs between revisions of the fileset in the repository history. @@ -29448,8 +29398,12 @@ checked out in that new branch. \(fn DIR NAME BRANCHP)" t nil) (autoload 'vc-retrieve-tag "vc" "\ -Descending recursively from DIR, retrieve the tag called NAME. -If NAME is empty, it refers to the latest revisions. +For each file in or below DIR, retrieve their tagged version NAME. +NAME can name a branch, in which case this command will switch to the +named branch in the directory DIR. +Interactively, prompt for DIR only for VCS that works at file level; +otherwise use the default directory of the current buffer. +If NAME is empty, it refers to the latest revisions of the current branch. If locking is used for the files in DIR, then there must not be any locked files at or below DIR (but if NAME is empty, locked files are allowed and simply skipped). @@ -29487,6 +29441,11 @@ When called interactively with a prefix argument, prompt for REMOTE-LOCATION. \(fn &optional REMOTE-LOCATION)" t nil) +(autoload 'vc-region-history "vc" "\ +Show the history of the region FROM..TO. + +\(fn FROM TO)" t nil) + (autoload 'vc-revert "vc" "\ Revert working copies of the selected fileset to their repository contents. This asks for confirmation if the buffer contents are not identical @@ -29579,8 +29538,8 @@ Return the branch part of a revision number REV. ;;;*** -;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (21607 54478 +;;;;;; 800121 42000)) ;;; Generated autoloads from vc/vc-annotate.el (autoload 'vc-annotate "vc-annotate" "\ @@ -29612,13 +29571,15 @@ Customization variables: mode-specific menu. `vc-annotate-color-map' and `vc-annotate-very-old-color' define the mapping of time to colors. `vc-annotate-background' specifies the background color. +`vc-annotate-background-mode' specifies whether the color map +should be applied to the background or to the foreground. \(fn FILE REV &optional DISPLAY-MODE BUF MOVE-POINT-TO VC-BK)" t nil) ;;;*** -;;;### (autoloads nil "vc-arch" "vc/vc-arch.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "vc-arch" "vc/vc-arch.el" (21628 43483 380149 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-arch.el (defun vc-arch-registered (file) (if (vc-find-root file "{arch}/=tagging-method") @@ -29628,8 +29589,8 @@ mode-specific menu. `vc-annotate-color-map' and ;;;*** -;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (21240 46395 727291 -;;;;;; 0)) +;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (21628 43483 380149 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-bzr.el (defconst vc-bzr-admin-dirname ".bzr" "\ @@ -29645,8 +29606,8 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (21628 43483 380149 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-cvs.el (defun vc-cvs-registered (f) "Return non-nil if file F is registered with CVS." @@ -29657,8 +29618,8 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from vc/vc-dir.el (autoload 'vc-dir "vc-dir" "\ @@ -29682,8 +29643,8 @@ These are the commands available for use in the file status buffer: ;;;*** -;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from vc/vc-dispatcher.el (autoload 'vc-do-command "vc-dispatcher" "\ @@ -29706,8 +29667,8 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-git" "vc/vc-git.el" (21274 64565 737222 -;;;;;; 0)) +;;;### (autoloads nil "vc-git" "vc/vc-git.el" (21628 45530 160140 +;;;;;; 360000)) ;;; Generated autoloads from vc/vc-git.el (defun vc-git-registered (file) "Return non-nil if FILE is registered with git." @@ -29718,7 +29679,7 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (21396 14374 24888 0)) +;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (21628 43483 380149 771000)) ;;; Generated autoloads from vc/vc-hg.el (defun vc-hg-registered (file) "Return non-nil if FILE is registered with hg." @@ -29729,8 +29690,8 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (21628 43483 380149 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-mtn.el (defconst vc-mtn-admin-dir "_MTN" "\ @@ -29746,8 +29707,8 @@ Name of the monotone directory's format file.") ;;;*** -;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (21379 5287 607434 -;;;;;; 0)) +;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (21628 43483 380149 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-rcs.el (defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ @@ -29760,8 +29721,8 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** -;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (21628 43483 380149 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-sccs.el (defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ @@ -29779,8 +29740,22 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** -;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "vc-src" "vc/vc-src.el" (21628 43483 380149 +;;;;;; 771000)) +;;; Generated autoloads from vc/vc-src.el + +(defvar vc-src-master-templates (purecopy '("%s.src/%s,v")) "\ +Where to look for SRC master files. +For a description of possible values, see `vc-check-master-templates'.") + +(custom-autoload 'vc-src-master-templates "vc-src" t) + +(defun vc-src-registered (f) (vc-default-registered 'src f)) + +;;;*** + +;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (21628 43483 380149 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-svn.el (defun vc-svn-registered (f) (let ((admin-dir (cond ((and (eq system-type 'windows-nt) @@ -29793,8 +29768,8 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** -;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (21383 -;;;;;; 2343 498187 0)) +;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/vera-mode.el (push (purecopy '(vera-mode 2 28)) package--builtin-versions) (add-to-list 'auto-mode-alist (cons (purecopy "\\.vr[hi]?\\'") 'vera-mode)) @@ -29853,7 +29828,7 @@ Key bindings: ;;;*** ;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el" -;;;;;; (21388 20265 495157 0)) +;;;;;; (21607 54478 800121 42000)) ;;; Generated autoloads from progmodes/verilog-mode.el (autoload 'verilog-mode "verilog-mode" "\ @@ -29992,8 +29967,8 @@ Key bindings specific to `verilog-mode-map' are: ;;;*** -;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (21305 -;;;;;; 16557 836987 0)) +;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload 'vhdl-mode "vhdl-mode" "\ @@ -30108,7 +30083,7 @@ Usage: and vice versa. Syntax-based indentation can be very slow in large files. Option - `vhdl-indent-syntax-based' allows to use faster but simpler indentation. + `vhdl-indent-syntax-based' allows you to use faster but simpler indentation. Option `vhdl-indent-comment-like-next-code-line' controls whether comment lines are indented like the preceding or like the following code @@ -30141,7 +30116,7 @@ Usage: CODE FILLING: - Code filling allows to condense code (e.g. sensitivity lists or port + Code filling allows you to condense code (e.g. sensitivity lists or port maps) by removing comments and newlines and re-wrapping so that all lines are maximally filled (block filling). `C-c C-f C-f' fills a list enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by @@ -30401,7 +30376,7 @@ Usage: Words with special syntax can be highlighted by specifying their syntax and color in option `vhdl-special-syntax-alist' and by setting - option `vhdl-highlight-special-words' to non-nil. This allows to + option `vhdl-highlight-special-words' to non-nil. This allows you to establish some naming conventions (e.g. to distinguish different kinds of signals or other objects by using name suffices) and to support them visually. @@ -30547,8 +30522,8 @@ Key bindings: ;;;*** -;;;### (autoloads nil "viet-util" "language/viet-util.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "viet-util" "language/viet-util.el" (21607 +;;;;;; 54478 300138 641000)) ;;; Generated autoloads from language/viet-util.el (autoload 'viet-encode-viscii-char "viet-util" "\ @@ -30592,7 +30567,7 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics. ;;;*** -;;;### (autoloads nil "view" "view.el" (21187 63826 213216 0)) +;;;### (autoloads nil "view" "view.el" (21607 54478 800121 42000)) ;;; Generated autoloads from view.el (defvar view-remove-frame-by-deleting t "\ @@ -30848,8 +30823,8 @@ Exit View mode and make the current buffer editable. ;;;*** -;;;### (autoloads nil "viper" "emulation/viper.el" (21222 16439 978802 -;;;;;; 0)) +;;;### (autoloads nil "viper" "emulation/viper.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from emulation/viper.el (push (purecopy '(viper 3 14 1)) package--builtin-versions) @@ -30866,8 +30841,8 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'. ;;;*** -;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (21240 -;;;;;; 46395 727291 0)) +;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (21607 +;;;;;; 54477 800124 118000)) ;;; Generated autoloads from emacs-lisp/warnings.el (defvar warning-prefix-function nil "\ @@ -30957,7 +30932,7 @@ this is equivalent to `display-warning', using ;;;*** -;;;### (autoloads nil "wdired" "wdired.el" (21187 63826 213216 0)) +;;;### (autoloads nil "wdired" "wdired.el" (21607 54478 800121 42000)) ;;; Generated autoloads from wdired.el (push (purecopy '(wdired 2 0)) package--builtin-versions) @@ -30975,8 +30950,8 @@ See `wdired-mode'. ;;;*** -;;;### (autoloads nil "webjump" "net/webjump.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "webjump" "net/webjump.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from net/webjump.el (autoload 'webjump "webjump" "\ @@ -30992,8 +30967,8 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke ;;;*** -;;;### (autoloads nil "which-func" "progmodes/which-func.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "which-func" "progmodes/which-func.el" (21607 +;;;;;; 54478 800121 42000)) ;;; Generated autoloads from progmodes/which-func.el (put 'which-func-format 'risky-local-variable t) (put 'which-func-current 'risky-local-variable t) @@ -31023,8 +30998,8 @@ in certain major modes. ;;;*** -;;;### (autoloads nil "whitespace" "whitespace.el" (21384 23211 329821 -;;;;;; 0)) +;;;### (autoloads nil "whitespace" "whitespace.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from whitespace.el (push (purecopy '(whitespace 13 2 2)) package--builtin-versions) @@ -31122,6 +31097,7 @@ Interactively, it reads one of the following chars: C-i toggle indentation SPACEs visualization (via `indent-tabs-mode') I toggle indentation SPACEs visualization i toggle indentation TABs visualization + C-t toggle big indentation visualization C-a toggle SPACEs after TAB visualization (via `indent-tabs-mode') A toggle SPACEs after TAB: SPACEs visualization a toggle SPACEs after TAB: TABs visualization @@ -31151,6 +31127,7 @@ The valid symbols are: indentation toggle indentation SPACEs visualization indentation::tab toggle indentation SPACEs visualization indentation::space toggle indentation TABs visualization + big-indent toggle big indentation visualization space-after-tab toggle SPACEs after TAB visualization space-after-tab::tab toggle SPACEs after TAB: SPACEs visualization space-after-tab::space toggle SPACEs after TAB: TABs visualization @@ -31192,6 +31169,7 @@ Interactively, it accepts one of the following chars: C-i toggle indentation SPACEs visualization (via `indent-tabs-mode') I toggle indentation SPACEs visualization i toggle indentation TABs visualization + C-t toggle big indentation visualization C-a toggle SPACEs after TAB visualization (via `indent-tabs-mode') A toggle SPACEs after TAB: SPACEs visualization a toggle SPACEs after TAB: TABs visualization @@ -31221,6 +31199,7 @@ The valid symbols are: indentation toggle indentation SPACEs visualization indentation::tab toggle indentation SPACEs visualization indentation::space toggle indentation TABs visualization + big-indent toggle big indentation visualization space-after-tab toggle SPACEs after TAB visualization space-after-tab::tab toggle SPACEs after TAB: SPACEs visualization space-after-tab::space toggle SPACEs after TAB: TABs visualization @@ -31388,8 +31367,8 @@ cleaning up these problems. ;;;*** -;;;### (autoloads nil "wid-browse" "wid-browse.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "wid-browse" "wid-browse.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from wid-browse.el (autoload 'widget-browse-at "wid-browse" "\ @@ -31417,8 +31396,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "wid-edit" "wid-edit.el" (21414 44327 790846 -;;;;;; 0)) +;;;### (autoloads nil "wid-edit" "wid-edit.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from wid-edit.el (autoload 'widgetp "wid-edit" "\ @@ -31460,8 +31439,8 @@ Setup current buffer so editing string widgets works. ;;;*** -;;;### (autoloads nil "windmove" "windmove.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "windmove" "windmove.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from windmove.el (autoload 'windmove-left "windmove" "\ @@ -31513,7 +31492,7 @@ Default MODIFIER is 'shift. ;;;*** -;;;### (autoloads nil "winner" "winner.el" (21187 63826 213216 0)) +;;;### (autoloads nil "winner" "winner.el" (21607 54478 800121 42000)) ;;; Generated autoloads from winner.el (defvar winner-mode nil "\ @@ -31536,7 +31515,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. ;;;*** -;;;### (autoloads nil "woman" "woman.el" (21393 38187 675040 0)) +;;;### (autoloads nil "woman" "woman.el" (21607 54478 800121 42000)) ;;; Generated autoloads from woman.el (push (purecopy '(woman 0 551)) package--builtin-versions) @@ -31585,7 +31564,7 @@ Default bookmark handler for Woman buffers. ;;;*** -;;;### (autoloads nil "xml" "xml.el" (21187 63826 213216 0)) +;;;### (autoloads nil "xml" "xml.el" (21607 54478 800121 42000)) ;;; Generated autoloads from xml.el (autoload 'xml-parse-file "xml" "\ @@ -31641,8 +31620,8 @@ Both features can be combined by providing a cons cell ;;;*** -;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (21327 43559 923043 -;;;;;; 0)) +;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (21607 54478 300138 +;;;;;; 641000)) ;;; Generated autoloads from nxml/xmltok.el (autoload 'xmltok-get-declared-encoding-position "xmltok" "\ @@ -31660,8 +31639,8 @@ If LIMIT is non-nil, then do not consider characters beyond LIMIT. ;;;*** -;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (21414 44327 790846 -;;;;;; 0)) +;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (21607 54478 800121 +;;;;;; 42000)) ;;; Generated autoloads from xt-mouse.el (defvar xterm-mouse-mode nil "\ @@ -31690,7 +31669,7 @@ down the SHIFT key while pressing the mouse button. ;;;*** -;;;### (autoloads nil "yenc" "gnus/yenc.el" (21187 63826 213216 0)) +;;;### (autoloads nil "yenc" "gnus/yenc.el" (21607 54478 300138 641000)) ;;; Generated autoloads from gnus/yenc.el (autoload 'yenc-decode-region "yenc" "\ @@ -31705,7 +31684,7 @@ Extract file name from an yenc header. ;;;*** -;;;### (autoloads nil "zone" "play/zone.el" (21187 63826 213216 0)) +;;;### (autoloads nil "zone" "play/zone.el" (21607 54478 800121 42000)) ;;; Generated autoloads from play/zone.el (autoload 'zone "zone" "\ @@ -31737,21 +31716,21 @@ Zone out, completely. ;;;;;; "calendar/diary-loaddefs.el" "calendar/hol-loaddefs.el" "cdl.el" ;;;;;; "cedet/cedet-cscope.el" "cedet/cedet-files.el" "cedet/cedet-global.el" ;;;;;; "cedet/cedet-idutils.el" "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el" -;;;;;; "cedet/ede/base.el" "cedet/ede/cpp-root.el" "cedet/ede/custom.el" -;;;;;; "cedet/ede/dired.el" "cedet/ede/emacs.el" "cedet/ede/files.el" -;;;;;; "cedet/ede/generic.el" "cedet/ede/linux.el" "cedet/ede/loaddefs.el" -;;;;;; "cedet/ede/locate.el" "cedet/ede/make.el" "cedet/ede/makefile-edit.el" -;;;;;; "cedet/ede/pconf.el" "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" -;;;;;; "cedet/ede/proj-aux.el" "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" -;;;;;; "cedet/ede/proj-info.el" "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" -;;;;;; "cedet/ede/proj-prog.el" "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" -;;;;;; "cedet/ede/proj.el" "cedet/ede/project-am.el" "cedet/ede/shell.el" -;;;;;; "cedet/ede/simple.el" "cedet/ede/source.el" "cedet/ede/speedbar.el" -;;;;;; "cedet/ede/srecode.el" "cedet/ede/system.el" "cedet/ede/util.el" -;;;;;; "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el" -;;;;;; "cedet/semantic/analyze/debug.el" "cedet/semantic/analyze/fcn.el" -;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el" -;;;;;; "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/debug.el" +;;;;;; "cedet/ede/base.el" "cedet/ede/config.el" "cedet/ede/cpp-root.el" +;;;;;; "cedet/ede/custom.el" "cedet/ede/detect.el" "cedet/ede/dired.el" +;;;;;; "cedet/ede/emacs.el" "cedet/ede/files.el" "cedet/ede/generic.el" +;;;;;; "cedet/ede/linux.el" "cedet/ede/loaddefs.el" "cedet/ede/locate.el" +;;;;;; "cedet/ede/make.el" "cedet/ede/makefile-edit.el" "cedet/ede/pconf.el" +;;;;;; "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" "cedet/ede/proj-aux.el" +;;;;;; "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" "cedet/ede/proj-info.el" +;;;;;; "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" "cedet/ede/proj-prog.el" +;;;;;; "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" "cedet/ede/proj.el" +;;;;;; "cedet/ede/project-am.el" "cedet/ede/shell.el" "cedet/ede/simple.el" +;;;;;; "cedet/ede/source.el" "cedet/ede/speedbar.el" "cedet/ede/srecode.el" +;;;;;; "cedet/ede/system.el" "cedet/ede/util.el" "cedet/semantic/analyze.el" +;;;;;; "cedet/semantic/analyze/complete.el" "cedet/semantic/analyze/debug.el" +;;;;;; "cedet/semantic/analyze/fcn.el" "cedet/semantic/analyze/refs.el" +;;;;;; "cedet/semantic/bovine.el" "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/debug.el" ;;;;;; "cedet/semantic/bovine/el.el" "cedet/semantic/bovine/gcc.el" ;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm.el" ;;;;;; "cedet/semantic/chart.el" "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" @@ -31785,8 +31764,8 @@ Zone out, completely. ;;;;;; "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el" ;;;;;; "cedet/srecode/semantic.el" "cedet/srecode/srt.el" "cedet/srecode/table.el" ;;;;;; "cedet/srecode/template.el" "cedet/srecode/texi.el" "cus-dep.el" -;;;;;; "dframe.el" "dired-aux.el" "dired-x.el" "dos-fns.el" "dos-vars.el" -;;;;;; "dos-w32.el" "dynamic-setting.el" "emacs-lisp/avl-tree.el" +;;;;;; "dframe.el" "dired-aux.el" "dired-x.el" "dom.el" "dos-fns.el" +;;;;;; "dos-vars.el" "dos-w32.el" "dynamic-setting.el" "emacs-lisp/avl-tree.el" ;;;;;; "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el" ;;;;;; "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" ;;;;;; "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-custom.el" @@ -31859,56 +31838,39 @@ Zone out, completely. ;;;;;; "mh-e/mh-utils.el" "mh-e/mh-xface.el" "mouse-copy.el" "mwheel.el" ;;;;;; "net/dns.el" "net/eudc-vars.el" "net/eudcb-bbdb.el" "net/eudcb-ldap.el" ;;;;;; "net/eudcb-mab.el" "net/eudcb-ph.el" "net/hmac-def.el" "net/hmac-md5.el" -;;;;;; "net/imap.el" "net/ldap.el" "net/mairix.el" "net/sasl-cram.el" -;;;;;; "net/sasl-digest.el" "net/sasl.el" "net/shr-color.el" "net/soap-client.el" -;;;;;; "net/soap-inspect.el" "net/socks.el" "net/tls.el" "net/tramp-adb.el" -;;;;;; "net/tramp-cache.el" "net/tramp-cmds.el" "net/tramp-compat.el" -;;;;;; "net/tramp-gvfs.el" "net/tramp-gw.el" "net/tramp-loaddefs.el" -;;;;;; "net/tramp-sh.el" "net/tramp-smb.el" "net/tramp-uu.el" "net/trampver.el" -;;;;;; "net/zeroconf.el" "notifications.el" "nxml/nxml-enc.el" "nxml/nxml-maint.el" +;;;;;; "net/imap.el" "net/ldap.el" "net/mairix.el" "net/newsticker.el" +;;;;;; "net/nsm.el" "net/sasl-cram.el" "net/sasl-digest.el" "net/sasl.el" +;;;;;; "net/shr-color.el" "net/soap-client.el" "net/soap-inspect.el" +;;;;;; "net/socks.el" "net/tls.el" "net/tramp-adb.el" "net/tramp-cache.el" +;;;;;; "net/tramp-cmds.el" "net/tramp-compat.el" "net/tramp-gvfs.el" +;;;;;; "net/tramp-gw.el" "net/tramp-loaddefs.el" "net/tramp-sh.el" +;;;;;; "net/tramp-smb.el" "net/tramp-uu.el" "net/trampver.el" "net/zeroconf.el" +;;;;;; "notifications.el" "nxml/nxml-enc.el" "nxml/nxml-maint.el" ;;;;;; "nxml/nxml-ns.el" "nxml/nxml-outln.el" "nxml/nxml-parse.el" ;;;;;; "nxml/nxml-rap.el" "nxml/nxml-util.el" "nxml/rng-dt.el" "nxml/rng-loc.el" ;;;;;; "nxml/rng-maint.el" "nxml/rng-match.el" "nxml/rng-parse.el" ;;;;;; "nxml/rng-pttrn.el" "nxml/rng-uri.el" "nxml/rng-util.el" -;;;;;; "nxml/xsd-regexp.el" "obsolete/abbrevlist.el" "obsolete/assoc.el" -;;;;;; "obsolete/awk-mode.el" "obsolete/bruce.el" "obsolete/cl-compat.el" -;;;;;; "obsolete/complete.el" "obsolete/crisp.el" "obsolete/cust-print.el" -;;;;;; "obsolete/erc-hecomplete.el" "obsolete/fast-lock.el" "obsolete/gulp.el" -;;;;;; "obsolete/iso-acc.el" "obsolete/iso-insert.el" "obsolete/iso-swed.el" -;;;;;; "obsolete/keyswap.el" "obsolete/lazy-lock.el" "obsolete/ledit.el" -;;;;;; "obsolete/levents.el" "obsolete/lmenu.el" "obsolete/longlines.el" -;;;;;; "obsolete/lucid.el" "obsolete/mailpost.el" "obsolete/meese.el" -;;;;;; "obsolete/mouse-sel.el" "obsolete/old-emacs-lock.el" "obsolete/old-whitespace.el" -;;;;;; "obsolete/options.el" "obsolete/otodo-mode.el" "obsolete/patcomp.el" -;;;;;; "obsolete/pc-mode.el" "obsolete/pc-select.el" "obsolete/pgg-def.el" -;;;;;; "obsolete/pgg-gpg.el" "obsolete/pgg-parse.el" "obsolete/pgg-pgp.el" -;;;;;; "obsolete/pgg-pgp5.el" "obsolete/pgg.el" "obsolete/rcompile.el" -;;;;;; "obsolete/resume.el" "obsolete/s-region.el" "obsolete/scribe.el" -;;;;;; "obsolete/spell.el" "obsolete/sregex.el" "obsolete/sup-mouse.el" -;;;;;; "obsolete/swedish.el" "obsolete/sym-comp.el" "obsolete/terminal.el" -;;;;;; "obsolete/tpu-edt.el" "obsolete/tpu-extras.el" "obsolete/tpu-mapper.el" -;;;;;; "obsolete/vc-mcvs.el" "obsolete/vi.el" "obsolete/vip.el" -;;;;;; "obsolete/ws-mode.el" "obsolete/xesam.el" "obsolete/yow.el" -;;;;;; "org/ob-C.el" "org/ob-R.el" "org/ob-asymptote.el" "org/ob-awk.el" -;;;;;; "org/ob-calc.el" "org/ob-clojure.el" "org/ob-comint.el" "org/ob-core.el" -;;;;;; "org/ob-css.el" "org/ob-ditaa.el" "org/ob-dot.el" "org/ob-emacs-lisp.el" -;;;;;; "org/ob-eval.el" "org/ob-exp.el" "org/ob-fortran.el" "org/ob-gnuplot.el" -;;;;;; "org/ob-haskell.el" "org/ob-io.el" "org/ob-java.el" "org/ob-js.el" -;;;;;; "org/ob-keys.el" "org/ob-latex.el" "org/ob-ledger.el" "org/ob-lilypond.el" -;;;;;; "org/ob-lisp.el" "org/ob-lob.el" "org/ob-makefile.el" "org/ob-matlab.el" -;;;;;; "org/ob-maxima.el" "org/ob-mscgen.el" "org/ob-ocaml.el" "org/ob-octave.el" -;;;;;; "org/ob-org.el" "org/ob-perl.el" "org/ob-picolisp.el" "org/ob-plantuml.el" -;;;;;; "org/ob-python.el" "org/ob-ref.el" "org/ob-ruby.el" "org/ob-sass.el" -;;;;;; "org/ob-scala.el" "org/ob-scheme.el" "org/ob-screen.el" "org/ob-sh.el" -;;;;;; "org/ob-shen.el" "org/ob-sql.el" "org/ob-sqlite.el" "org/ob-table.el" -;;;;;; "org/ob-tangle.el" "org/ob.el" "org/org-archive.el" "org/org-attach.el" -;;;;;; "org/org-bbdb.el" "org/org-bibtex.el" "org/org-clock.el" -;;;;;; "org/org-crypt.el" "org/org-ctags.el" "org/org-datetree.el" -;;;;;; "org/org-docview.el" "org/org-element.el" "org/org-entities.el" -;;;;;; "org/org-eshell.el" "org/org-faces.el" "org/org-feed.el" -;;;;;; "org/org-footnote.el" "org/org-gnus.el" "org/org-habit.el" -;;;;;; "org/org-id.el" "org/org-indent.el" "org/org-info.el" "org/org-inlinetask.el" -;;;;;; "org/org-install.el" "org/org-irc.el" "org/org-list.el" "org/org-loaddefs.el" +;;;;;; "nxml/xsd-regexp.el" "org/ob-C.el" "org/ob-R.el" "org/ob-asymptote.el" +;;;;;; "org/ob-awk.el" "org/ob-calc.el" "org/ob-clojure.el" "org/ob-comint.el" +;;;;;; "org/ob-core.el" "org/ob-css.el" "org/ob-ditaa.el" "org/ob-dot.el" +;;;;;; "org/ob-emacs-lisp.el" "org/ob-eval.el" "org/ob-exp.el" "org/ob-fortran.el" +;;;;;; "org/ob-gnuplot.el" "org/ob-haskell.el" "org/ob-io.el" "org/ob-java.el" +;;;;;; "org/ob-js.el" "org/ob-keys.el" "org/ob-latex.el" "org/ob-ledger.el" +;;;;;; "org/ob-lilypond.el" "org/ob-lisp.el" "org/ob-lob.el" "org/ob-makefile.el" +;;;;;; "org/ob-matlab.el" "org/ob-maxima.el" "org/ob-mscgen.el" +;;;;;; "org/ob-ocaml.el" "org/ob-octave.el" "org/ob-org.el" "org/ob-perl.el" +;;;;;; "org/ob-picolisp.el" "org/ob-plantuml.el" "org/ob-python.el" +;;;;;; "org/ob-ref.el" "org/ob-ruby.el" "org/ob-sass.el" "org/ob-scala.el" +;;;;;; "org/ob-scheme.el" "org/ob-screen.el" "org/ob-sh.el" "org/ob-shen.el" +;;;;;; "org/ob-sql.el" "org/ob-sqlite.el" "org/ob-table.el" "org/ob-tangle.el" +;;;;;; "org/ob.el" "org/org-archive.el" "org/org-attach.el" "org/org-bbdb.el" +;;;;;; "org/org-bibtex.el" "org/org-clock.el" "org/org-crypt.el" +;;;;;; "org/org-ctags.el" "org/org-datetree.el" "org/org-docview.el" +;;;;;; "org/org-element.el" "org/org-entities.el" "org/org-eshell.el" +;;;;;; "org/org-faces.el" "org/org-feed.el" "org/org-footnote.el" +;;;;;; "org/org-gnus.el" "org/org-habit.el" "org/org-id.el" "org/org-indent.el" +;;;;;; "org/org-info.el" "org/org-inlinetask.el" "org/org-install.el" +;;;;;; "org/org-irc.el" "org/org-list.el" "org/org-loaddefs.el" ;;;;;; "org/org-macro.el" "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el" ;;;;;; "org/org-pcomplete.el" "org/org-plot.el" "org/org-protocol.el" ;;;;;; "org/org-rmail.el" "org/org-src.el" "org/org-table.el" "org/org-timer.el" @@ -31937,9 +31899,9 @@ Zone out, completely. ;;;;;; "url/url-vars.el" "vc/ediff-diff.el" "vc/ediff-init.el" "vc/ediff-merg.el" ;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el" ;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el" -;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-common-fns.el" -;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (21426 35556 729434 -;;;;;; 927000)) +;;;;;; "vc/vc-filewise.el" "vcursor.el" "vt-control.el" "vt100-led.el" +;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (21628 46363 926675 +;;;;;; 999000)) ;;;*** diff --git a/lisp/leim/.gitignore b/lisp/leim/.gitignore deleted file mode 100644 index 57b77bad9ca..00000000000 --- a/lisp/leim/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -ja-dic/ -leim-list.el diff --git a/lisp/leim/quail/.gitignore b/lisp/leim/quail/.gitignore deleted file mode 100644 index c3f9e36f0db..00000000000 --- a/lisp/leim/quail/.gitignore +++ /dev/null @@ -1,22 +0,0 @@ -4Corner.el -ARRAY30.el -CCDOSPY.el -CTLau-b5.el -CTLau.el -ECDICT.el -ETZY.el -PY-b5.el -PY.el -Punct-b5.el -Punct.el -QJ-b5.el -QJ.el -SW.el -TONEPY.el -ZIRANMA.el -ZOZY.el -quick-b5.el -quick-cns.el -tsang-b5.el -tsang-cns.el - diff --git a/lisp/leim/quail/latin-post.el b/lisp/leim/quail/latin-post.el index c72c459fde0..a4bb85eca69 100644 --- a/lisp/leim/quail/latin-post.el +++ b/lisp/leim/quail/latin-post.el @@ -2299,6 +2299,7 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a' ("z." ?ż) ("z~" ?ž) + (" __" [" _"]) ("!//" ["!/"]) ("///" ["//"]) ("<<<" ["<<"]) diff --git a/lisp/let-alist.el b/lisp/let-alist.el new file mode 100644 index 00000000000..7271e391f47 --- /dev/null +++ b/lisp/let-alist.el @@ -0,0 +1,142 @@ +;;; let-alist.el --- Easily let-bind values of an assoc-list by their names -*- lexical-binding: t; -*- + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Artur Malabarba +;; Maintainer: Artur Malabarba +;; Version: 1.0.3 +;; Keywords: extensions lisp +;; Prefix: let-alist +;; Separator: - + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; This package offers a single macro, `let-alist'. This macro takes a +;; first argument (whose value must be an alist) and a body. +;; +;; The macro expands to a let form containing body, where each dotted +;; symbol inside body is let-bound to their cdrs in the alist. Dotted +;; symbol is any symbol starting with a `.'. Only those present in +;; the body are let-bound and this search is done at compile time. +;; +;; For instance, the following code +;; +;; (let-alist alist +;; (if (and .title .body) +;; .body +;; .site +;; .site.contents)) +;; +;; essentially expands to +;; +;; (let ((.title (cdr (assq 'title alist))) +;; (.body (cdr (assq 'body alist))) +;; (.site (cdr (assq 'site alist))) +;; (.site.contents (cdr (assq 'contents (cdr (assq 'site alist)))))) +;; (if (and .title .body) +;; .body +;; .site +;; .site.contents)) +;; +;; If you nest `let-alist' invocations, the inner one can't access +;; the variables of the outer one. You can, however, access alists +;; inside the original alist by using dots inside the symbol, as +;; displayed in the example above by the `.site.contents'. +;; +;;; Code: + + +(defun let-alist--deep-dot-search (data) + "Return alist of symbols inside DATA that start with a `.'. +Perform a deep search and return an alist where each car is the +symbol, and each cdr is the same symbol without the `.'." + (cond + ((symbolp data) + (let ((name (symbol-name data))) + (when (string-match "\\`\\." name) + ;; Return the cons cell inside a list, so it can be appended + ;; with other results in the clause below. + (list (cons data (intern (replace-match "" nil nil name))))))) + ((not (listp data)) nil) + (t (apply #'append + (mapcar #'let-alist--deep-dot-search data))))) + +(defun let-alist--access-sexp (symbol variable) + "Return a sexp used to acess SYMBOL inside VARIABLE." + (let* ((clean (let-alist--remove-dot symbol)) + (name (symbol-name clean))) + (if (string-match "\\`\\." name) + clean + (let-alist--list-to-sexp + (mapcar #'intern (nreverse (split-string name "\\."))) + variable)))) + +(defun let-alist--list-to-sexp (list var) + "Turn symbols LIST into recursive calls to `cdr' `assq' on VAR." + `(cdr (assq ',(car list) + ,(if (cdr list) (let-alist--list-to-sexp (cdr list) var) + var)))) + +(defun let-alist--remove-dot (symbol) + "Return SYMBOL, sans an initial dot." + (let ((name (symbol-name symbol))) + (if (string-match "\\`\\." name) + (intern (replace-match "" nil nil name)) + symbol))) + + +;;; The actual macro. +;;;###autoload +(defmacro let-alist (alist &rest body) + "Let-bind dotted symbols to their cdrs in ALIST and execute BODY. +Dotted symbol is any symbol starting with a `.'. Only those present +in BODY are let-bound and this search is done at compile time. + +For instance, the following code + + (let-alist alist + (if (and .title .body) + .body + .site + .site.contents)) + +essentially expands to + + (let ((.title (cdr (assq 'title alist))) + (.body (cdr (assq 'body alist))) + (.site (cdr (assq 'site alist))) + (.site.contents (cdr (assq 'contents (cdr (assq 'site alist)))))) + (if (and .title .body) + .body + .site + .site.contents)) + +If you nest `let-alist' invocations, the inner one can't access +the variables of the outer one. You can, however, access alists +inside the original alist by using dots inside the symbol, as +displayed in the example above." + (declare (indent 1) (debug t)) + (let ((var (make-symbol "alist"))) + `(let ((,var ,alist)) + (let ,(mapcar (lambda (x) `(,(car x) ,(let-alist--access-sexp (car x) var))) + (delete-dups (let-alist--deep-dot-search body))) + ,@body)))) + +(provide 'let-alist) + +;;; let-alist.el ends here diff --git a/lisp/linum.el b/lisp/linum.el index b13bd8dbbb6..fb2cda6c506 100644 --- a/lisp/linum.el +++ b/lisp/linum.el @@ -138,8 +138,13 @@ Linum mode is a buffer-local minor mode." (mapc #'delete-overlay linum-available) (setq linum-available nil)))) -(defun linum--face-height (face) - (aref (font-info (face-font face)) 2)) +(defun linum--face-width (face) + (let ((info (font-info (face-font face))) + width) + (setq width (aref info 11)) + (if (<= width 0) + (setq width (aref info 10))) + width)) (defun linum-update-window (win) "Update line numbers for the portion visible in window WIN." @@ -183,10 +188,8 @@ Linum mode is a buffer-local minor mode." (setq line (1+ line))) (when (display-graphic-p) (setq width (ceiling - ;; We'd really want to check the widths rather than the - ;; heights, but it's a start. - (/ (* width 1.0 (linum--face-height 'linum)) - (frame-char-height))))) + (/ (* width 1.0 (linum--face-width 'linum)) + (frame-char-width))))) (set-window-margins win width (cdr (window-margins win))))) (defun linum-after-change (beg end _len) diff --git a/lisp/loadup.el b/lisp/loadup.el index b911e9f1768..421c3d5bf3e 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -119,13 +119,13 @@ (let ((macroexp--pending-eager-loads '(skip))) (load "emacs-lisp/pcase")) ;; Re-load macroexp so as to eagerly macro-expand its uses of pcase. - (load "emacs-lisp/macroexp")) + (let ((max-lisp-eval-depth (* 2 max-lisp-eval-depth))) + (load "emacs-lisp/macroexp"))) (load "cus-face") (load "faces") ; after here, `defface' may be used. (load "button") -(load "startup") ;; We don't want to store loaddefs.el in the repository because it is ;; a generated file; but it is required in order to compile the lisp files. @@ -192,6 +192,7 @@ (load "indent") (load "frame") +(load "startup") (load "term/tty-colors") (load "font-core") ;; facemenu must be loaded before font-lock, because `facemenu-keymap' @@ -216,6 +217,7 @@ (load "textmodes/paragraphs") (load "progmodes/prog-mode") (load "emacs-lisp/lisp-mode") +(load "progmodes/elisp-mode") (load "textmodes/text-mode") (load "textmodes/fill") (load "newcomment") @@ -250,7 +252,6 @@ (load "w32-vars") (load "term/w32-win") (load "disp-table") - (load "w32-common-fns") (when (eq system-type 'windows-nt) (load "w32-fns") (load "ls-lisp") @@ -281,6 +282,7 @@ (load "vc/ediff-hook") (load "uniquify") (load "electric") +(load "emacs-lisp/eldoc") (if (not (eq system-type 'ms-dos)) (load "tooltip")) ;; This file doesn't exist when building a development version of Emacs diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el index 2ff0a3a230b..03ee0d25cce 100644 --- a/lisp/ls-lisp.el +++ b/lisp/ls-lisp.el @@ -113,6 +113,47 @@ update the dependent variables." :type 'boolean :group 'ls-lisp) +(defcustom ls-lisp-use-string-collate + (cond ((memq ls-lisp-emulation '(MacOS UNIX)) nil) + (t t)) ; GNU/Linux or MS-Windows emulate GNU ls + "Non-nil causes ls-lisp to sort files in locale-dependent collation order. + +A value of nil means use ordinary string comparison (see `compare-strings') +for sorting files. A non-nil value uses `string-collate-lessp' instead, +which more closely emulates what GNU `ls' does. + +On GNU/Linux systems, if the locale's codeset specifies UTF-8, as +in \"en_US.UTF-8\", the collation order follows the Unicode +Collation Algorithm (UCA), which places together file names that +differ only in punctuation characters. On MS-Windows, customize +the option `ls-lisp-UCA-like-collation' to a non-nil value to get +similar behavior." + :version "25.1" + :set-after '(ls-lisp-emulation) + :type 'boolean + :group 'ls-lisp) + +(defcustom ls-lisp-UCA-like-collation t + "Non-nil means force ls-lisp use a collation order compatible with UCA. + +UCA is the Unicode Collation Algorithm. GNU/Linux systems automatically +follow it in their string-collation routines if the locale specifies +UTF-8 as its codeset. On MS-Windows, customize this option to a non-nil +value to get similar behavior. + +When this option is non-nil, and `ls-lisp-use-string-collate' is also +non-nil, the collation order produced on MS-Windows will ignore +punctuation and symbol characters, which will, for example, place +\`.foo' near `foo'. See the documentation of `string-collate-lessp' +and `w32-collate-ignore-punctuation' for more details. + +This option is ignored on platforms other than MS-Windows; to +control the collation ordering of the file names on those other +systems, set your locale instead." + :version "25.1" + :type 'boolean + :group 'ls-lisp) + (defcustom ls-lisp-dirs-first (eq ls-lisp-emulation 'MS-Windows) "Non-nil causes ls-lisp to sort directories first in any ordering. \(Or last if it is reversed.) Follows Microsoft Windows Explorer." @@ -232,7 +273,7 @@ The Lisp emulation does not run any external programs or shells. It supports ordinary shell wildcards if `ls-lisp-support-shell-wildcards' is non-nil; otherwise, it interprets wildcards as regular expressions to match file names. It does not support all `ls' switches -- those -that work are: A a B C c F G g h i n R r S s t U u X. The l switch +that work are: A a B C c F G g h i n R r S s t U u v X. The l switch is assumed to be always present and cannot be turned off." (if ls-lisp-use-insert-directory-program (funcall orig-fun @@ -495,11 +536,81 @@ Responds to the window width as ls should but may not!" result)) (defsubst ls-lisp-string-lessp (s1 s2) - "Return t if string S1 is less than string S2 in lexicographic order. + "Return t if string S1 should sort before string S2. Case is significant if `ls-lisp-ignore-case' is nil. -Unibyte strings are converted to multibyte for comparison." - (let ((u (compare-strings s1 0 nil s2 0 nil ls-lisp-ignore-case))) - (and (numberp u) (< u 0)))) +Uses `string-collate-lessp' if `ls-lisp-use-string-collate' is non-nil, +\`compare-strings' otherwise. +On GNU/Linux systems, if the locale specifies UTF-8 as the codeset, +the sorting order will place together file names that differ only +by punctuation characters, like `.emacs' and `emacs'. To have a +similar behavior on MS-Windows, customize `ls-lisp-UCA-like-collation' +to a non-nil value." + (let ((w32-collate-ignore-punctuation ls-lisp-UCA-like-collation)) + (if ls-lisp-use-string-collate + (string-collate-lessp s1 s2 nil ls-lisp-ignore-case) + (let ((u (compare-strings s1 0 nil s2 0 nil ls-lisp-ignore-case))) + (and (numberp u) (< u 0)))))) + +(defun ls-lisp-version-lessp (s1 s2) + "Return t if versioned string S1 should sort before versioned string S2. + +Case is significant if `ls-lisp-ignore-case' is nil. +This is the same as string-lessp (with the exception of case +insensitivity), but sequences of digits are compared numerically, +as a whole, in the same manner as the `strverscmp' function available +in some standard C libraries does." + (let ((i1 0) + (i2 0) + (len1 (length s1)) + (len2 (length s2)) + (val 0) + ni1 ni2 e1 e2 found-2-numbers-p) + (while (and (< i1 len1) (< i2 len2) (zerop val)) + (unless found-2-numbers-p + (setq ni1 (string-match "[0-9]+" s1 i1) + e1 (match-end 0)) + (setq ni2 (string-match "[0-9]+" s2 i2) + e2 (match-end 0))) + (cond + ((and ni1 ni2) + (cond + ((and (> ni1 i1) (> ni2 i2)) + ;; Compare non-numerical part as strings. + (setq val (compare-strings s1 i1 ni1 s2 i2 ni2 ls-lisp-ignore-case) + i1 ni1 + i2 ni2 + found-2-numbers-p t)) + ((and (= ni1 i1) (= ni2 i2)) + (setq found-2-numbers-p nil) + ;; Compare numerical parts as integral and/or fractional parts. + (let* ((sub1 (substring s1 ni1 e1)) + (sub2 (substring s2 ni2 e2)) + ;; "Fraction" is a numerical sequence with leading zeros. + (fr1 (string-match "\\`0+" sub1)) + (fr2 (string-match "\\`0+" sub2))) + (cond + ((and fr1 fr2) ; two fractions, the shortest wins + (setq val (- val (- (length sub1) (length sub2))))) + (fr1 ; a fraction is always less than an integral + (setq val (- ni1))) + (fr2 + (setq val ni2))) + (if (zerop val) ; fall back on numerical comparison + (setq val (- (string-to-number sub1) + (string-to-number sub2)))) + (setq i1 e1 + i2 e2))) + (t + (setq val (compare-strings s1 i1 nil s2 i2 nil ls-lisp-ignore-case) + i1 len1 + i2 len2)))) + (t (setq val (compare-strings s1 i1 nil s2 i2 nil ls-lisp-ignore-case) + i1 len1 + i2 len2))) + (and (eq val t) (setq val 0))) + (if (zerop val) + (setq val (- len1 len2))) + (< val 0))) (defun ls-lisp-handle-switches (file-alist switches) "Return new FILE-ALIST sorted according to SWITCHES. @@ -527,6 +638,9 @@ SWITCHES is a list of characters. Default sorting is alphabetic." (ls-lisp-string-lessp (ls-lisp-extension (car x)) (ls-lisp-extension (car y))))) + ((memq ?v switches) + (lambda (x y) ; sorted by version number + (ls-lisp-version-lessp (car x) (car y)))) (t (lambda (x y) ; sorted alphabetically (ls-lisp-string-lessp (car x) (car y)))))))) diff --git a/lisp/mail/.gitignore b/lisp/mail/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/mail/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el index 91451504cab..5dde90b9fe4 100644 --- a/lisp/mail/emacsbug.el +++ b/lisp/mail/emacsbug.el @@ -137,13 +137,18 @@ This requires either the OS X \"open\" command, or the freedesktop (concat "mailto:" to))) (error "Subject, To or body not found"))))) +;; It's the default mail mode, so it seems OK to use its features. +(autoload 'message-bogus-recipient-p "message") +(autoload 'message-make-address "message") +(defvar message-send-mail-function) +(defvar message-sendmail-envelope-from) + ;;;###autoload -(defun report-emacs-bug (topic &optional recent-keys) +(defun report-emacs-bug (topic &optional unused) "Report a bug in GNU Emacs. Prompts for bug subject. Leaves you in a mail buffer." - ;; This strange form ensures that (recent-keys) is the value before - ;; the bug subject string is read. - (interactive (reverse (list (recent-keys) (read-string "Bug Subject: ")))) + (declare (advertised-calling-convention (topic) "24.5")) + (interactive "sBug Subject: ") ;; The syntax `version;' is preferred to `[version]' because the ;; latter could be mistakenly stripped by mailing software. (if (eq system-type 'ms-dos) @@ -165,7 +170,12 @@ Prompts for bug subject. Leaves you in a mail buffer." ;; that report-emacs-bug-orig-text remains valid. (Bug#5178) (message-sort-headers) ;; Stop message-mode stealing the properties we will add. - (set (make-local-variable 'message-strip-special-text-properties) nil)) + (set (make-local-variable 'message-strip-special-text-properties) nil) + ;; Make sure we default to the From: address as envelope when sending + ;; through sendmail. + (when (and (not message-sendmail-envelope-from) + (message-bogus-recipient-p (message-make-address))) + (set (make-local-variable 'message-sendmail-envelope-from) 'header))) (rfc822-goto-eoh) (forward-line 1) ;; Move the mail signature to the proper place. @@ -273,23 +283,6 @@ usually do not have translators for other languages.\n\n"))) (and (boundp mode) (buffer-local-value mode from-buffer) (insert (format " %s: %s\n" mode (buffer-local-value mode from-buffer))))) - (insert "\n") - (insert "Recent input:\n") - (let ((before-keys (point))) - (insert (mapconcat (lambda (key) - (if (or (integerp key) - (symbolp key) - (listp key)) - (single-key-description key) - (prin1-to-string key nil))) - (or recent-keys (recent-keys)) - " ")) - (save-restriction - (narrow-to-region before-keys (point)) - (goto-char before-keys) - (while (progn (move-to-column 50) (not (eobp))) - (search-forward " " nil t) - (insert "\n")))) (let ((message-buf (get-buffer "*Messages*"))) (if message-buf (let (beg-pos @@ -298,7 +291,7 @@ usually do not have translators for other languages.\n\n"))) (goto-char end-pos) (forward-line -10) (setq beg-pos (point))) - (insert "\n\nRecent messages:\n") + (insert "\nRecent messages:\n") (insert-buffer-substring message-buf beg-pos end-pos)))) ;; After Recent messages, to avoid the messages produced by ;; list-load-path-shadows. @@ -364,10 +357,6 @@ usually do not have translators for other languages.\n\n"))) (define-obsolete-function-alias 'report-emacs-bug-info 'info-emacs-bug "24.3") -;; It's the default mail mode, so it seems OK to use its features. -(autoload 'message-bogus-recipient-p "message") -(defvar message-send-mail-function) - (defun report-emacs-bug-hook () "Do some checking before sending a bug report." (save-excursion diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index f76920449f2..8c43e090d63 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -4512,11 +4512,11 @@ encoded string (and the same mask) will decode the string." ;; change it in one of the calls to `epa-decrypt-region'. (save-excursion - (let (decrypts) + (let (decrypts (mime (rmail-mime-message-p))) (goto-char (point-min)) ;; Turn off mime processing. - (when (and (rmail-mime-message-p) + (when (and mime (not (get-text-property (point-min) 'rmail-mime-hidden))) (rmail-mime)) @@ -4525,10 +4525,19 @@ encoded string (and the same mask) will decode the string." (goto-char (point-min)) (while (re-search-forward "-----BEGIN PGP MESSAGE-----$" nil t) (let ((coding-system-for-read coding-system-for-read) - armor-start armor-end after-end) + (case-fold-search t) + unquote + armor-start armor-prefix armor-end after-end) + (setq armor-start (match-beginning 0) - armor-end (re-search-forward "^-----END PGP MESSAGE-----$" - nil t)) + armor-prefix (buffer-substring + (line-beginning-position) + armor-start) + armor-end (re-search-forward + (concat "^" + armor-prefix + "-----END PGP MESSAGE-----$") + nil t)) (unless armor-end (error "Encryption armor beginning has no matching end")) (goto-char armor-start) @@ -4536,30 +4545,49 @@ encoded string (and the same mask) will decode the string." ;; Because epa--find-coding-system-for-mime-charset not autoloaded. (require 'epa) - ;; Use the charset specified in the armor. - (unless coding-system-for-read - (if (re-search-forward "^Charset: \\(.*\\)" armor-end t) - (setq coding-system-for-read - (epa--find-coding-system-for-mime-charset - (intern (downcase (match-string 1))))))) - ;; Advance over this armor. (goto-char armor-end) (setq after-end (- (point-max) armor-end)) + (when mime + (save-excursion + (goto-char armor-start) + (re-search-backward "^--" nil t) + (save-restriction + (narrow-to-region (point) armor-start) + + ;; Use the charset specified in the armor. + (unless coding-system-for-read + (if (re-search-forward "^Charset: \\(.*\\)" nil t) + (setq coding-system-for-read + (epa--find-coding-system-for-mime-charset + (intern (downcase (match-string 1))))))) + + (goto-char (point-min)) + (if (re-search-forward "^[ \t]*Content-transfer-encoding[ \t]*:[ \t]*quoted-printable[ \t]*$" nil t) + (setq unquote t))))) + + (when unquote + (let ((inhibit-read-only t)) + (mail-unquote-printable-region armor-start + (- (point-max) after-end)))) + ;; Decrypt it, maybe in place, maybe making new buffer. (epa-decrypt-region - armor-start armor-end + armor-start (- (point-max) after-end) ;; Call back this function to prepare the output. (lambda () (let ((inhibit-read-only t)) - (delete-region armor-start armor-end) + (delete-region armor-start (- (point-max) after-end)) (goto-char armor-start) (current-buffer)))) (push (list armor-start (- (point-max) after-end)) decrypts))) + (unless decrypts + (error "Nothing to decrypt")) + (when (and decrypts (rmail-buffers-swapped-p)) (when (y-or-n-p "Replace the original message? ") (setq decrypts (nreverse decrypts)) @@ -4684,7 +4712,7 @@ With prefix argument N moves forward N messages with these labels. ;;;*** -;;;### (autoloads nil "rmailmm" "rmailmm.el" "4904dafb4e3b7b456c14e63d2dc9163d") +;;;### (autoloads nil "rmailmm" "rmailmm.el" "6446c799d49a6df8519b11bfe2e3cbea") ;;; Generated autoloads from rmailmm.el (autoload 'rmail-mime "rmailmm" "\ diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index 2c625f67e38..29f7d449a8b 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el @@ -131,6 +131,26 @@ automatically display the image in the buffer." :version "23.2" :group 'rmail-mime) +(defcustom rmail-mime-render-html-function + (cond ((fboundp 'libxml-parse-html-region) 'rmail-mime-render-html-shr) + ((executable-find "lynx") 'rmail-mime-render-html-lynx) + (t nil)) + "Function to convert HTML to text. Called with buffer containing HTML +extracted from message in a temporary buffer. Converts to text in current +buffer. If NIL, display HTML source." + :group 'rmail + :version "25.1" + :type '(choice function (const nil))) + +(defcustom rmail-mime-prefer-html + ;; Default to preferring HTML parts, but only if we have a renderer + (if rmail-mime-render-html-function t nil) + "If non-nil, default to showing HTML part rather than text part +when both are available" + :group 'rmail + :version "25.1" + :type 'boolean) + ;;; End of user options. ;;; Global variables that always have let-binding when referred. @@ -150,6 +170,10 @@ processing MIME.") The value is usually nil, and bound to non-nil while inserting MIME entities.") +(defvar rmail-mime-searching nil + "Bound to T inside `rmail-search-mime-message' to suppress expensive +operations such as HTML decoding") + ;;; MIME-entity object (defun rmail-mime-entity (type disposition transfer-encoding @@ -631,6 +655,72 @@ HEADER is a header component of a MIME-entity object (see (insert-image (create-image data (cdr bulk-data) t)) (insert "\n"))) +(defun rmail-mime-insert-html (entity) + "Decode, render, and insert html from MIME-entity ENTITY." + (let ((body (rmail-mime-entity-body entity)) + (transfer-encoding (rmail-mime-entity-transfer-encoding entity)) + (charset (cdr (assq 'charset (cdr (rmail-mime-entity-type entity))))) + (buffer (current-buffer)) + coding-system) + (if charset (setq coding-system (coding-system-from-name charset))) + (or (and coding-system (coding-system-p coding-system)) + (setq coding-system 'undecided)) + (with-temp-buffer + (set-buffer-multibyte nil) + (setq buffer-undo-list t) + (insert-buffer-substring rmail-mime-mbox-buffer + (aref body 0) (aref body 1)) + (cond ((string= transfer-encoding "base64") + (ignore-errors (base64-decode-region (point-min) (point-max)))) + ((string= transfer-encoding "quoted-printable") + (quoted-printable-decode-region (point-min) (point-max)))) + (decode-coding-region (point-min) (point) coding-system) + (if (and + (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system)) + (not (eq (coding-system-base coding-system) 'us-ascii))) + (setq rmail-mime-coding-system coding-system)) + ;; Convert html in temporary buffer to text and insert in original buffer + (let ((source-buffer (current-buffer))) + (with-current-buffer buffer + (let ((start (point))) + (if rmail-mime-render-html-function + (funcall rmail-mime-render-html-function source-buffer) + (insert-buffer-substring source-buffer)) + (rmail-mime-fix-inserted-faces start))))))) + +(defun rmail-mime-render-html-shr (source-buffer) + (let ((dom (with-current-buffer source-buffer + (libxml-parse-html-region (point-min) (point-max)))) + ;; Image retrieval happens asynchronously, but meanwhile + ;; `rmail-swap-buffers' may have been run, leaving + ;; `shr-image-fetched' trying to insert the image in the wrong buffer. + (shr-inhibit-images t) + ;; Bind shr-width to nil to force shr-insert-document break + ;; the lines at the window margin. The default is + ;; fill-column, whose default value is too small, and screws + ;; up display of the quoted messages. + shr-width) + (shr-insert-document dom))) + +(defun rmail-mime-render-html-lynx (source-buffer) + (let ((destination-buffer (current-buffer))) + (with-current-buffer source-buffer + (call-process-region (point-min) (point-max) + "lynx" nil destination-buffer nil + "-stdin" "-dump" "-force_html" + "-dont_wrap_pre" "-width=70")))) + +;; Put font-lock-face properties matching face properties on text +;; inserted, e.g., by shr, in text from START to point. +(defun rmail-mime-fix-inserted-faces (start) + (while (< start (point)) + (let ((face (get-text-property start 'face)) + (next (next-single-property-change + start 'face (current-buffer) (point)))) + (if face ; anything to do? + (put-text-property start next 'font-lock-face face)) + (setq start next)))) + (defun rmail-mime-toggle-button (button) "Hide or show the body of the MIME-entity associated with BUTTON." (save-excursion @@ -675,6 +765,8 @@ directly." (setq size (/ (* size 7) 3))))))) (cond + ((string-match "text/html" content-type) + (setq type 'html)) ((string-match "text/" content-type) (setq type 'text)) ((string-match "image/\\(.*\\)" content-type) @@ -784,6 +876,12 @@ directly." (if (rmail-mime-display-body new) (cond ((eq (cdr bulk-data) 'text) (rmail-mime-insert-decoded-text entity)) + ((eq (cdr bulk-data) 'html) + ;; Render HTML if display single message, but if searching + ;; don't render but just search HTML itself. + (if rmail-mime-searching + (rmail-mime-insert-decoded-text entity) + (rmail-mime-insert-html entity))) ((cdr bulk-data) (rmail-mime-insert-image entity)) (t @@ -918,18 +1016,28 @@ The other arguments are the same as `rmail-mime-multipart-handler'." (setq entities (nreverse entities)) (if (string-match "alternative" subtype) ;; Find the best entity to show, and hide all the others. - (let (best second) + ;; If rmail-mime-prefer-html is set, html is best, then plain. + ;; If not, plain is best, then html. + ;; Then comes any other text part. + ;; If thereto of the same type, earlier entities in the message (later + ;; in the reverse list) are preferred. + (let (best best-priority) (dolist (child entities) (if (string= (or (car (rmail-mime-entity-disposition child)) (car content-disposition)) "inline") - (if (string-match "text/plain" - (car (rmail-mime-entity-type child))) - (setq best child) - (if (string-match "text/.*" - (car (rmail-mime-entity-type child))) - (setq second child))))) - (or best (not second) (setq best second)) + (let ((type (car (rmail-mime-entity-type child)))) + (if (string-match "text/" type) + ;; Consider all inline text parts + (let ((priority + (cond ((string-match "text/html" type) + (if rmail-mime-prefer-html 1 2)) + ((string-match "text/plain" type) + (if rmail-mime-prefer-html 2 1)) + (t 3)))) + (if (or (null best) (<= priority best-priority)) + (setq best child + best-priority priority))))))) (dolist (child entities) (unless (eq best child) (aset (rmail-mime-entity-body child) 2 nil) @@ -1114,6 +1222,8 @@ modified." (cond ((string-match "multipart/.*" (car content-type)) (save-restriction (narrow-to-region (1- end) (point-max)) + (if (zerop (length parse-tag)) ; top level of message + (aset new 1 (aset tagline 2 nil))) ; don't show tagline (setq children (rmail-mime-process-multipart content-type content-disposition @@ -1134,6 +1244,12 @@ modified." (aset (rmail-mime-entity-tagline msg) 2 nil) (setq children (list msg) handler 'rmail-mime-insert-multipart)))) + ((and is-inline (string-match "text/html" (car content-type))) + ;; Display tagline, so part can be detached + (aset new 1 (aset tagline 2 t)) + (aset new 2 (aset body 2 t)) ; display body also. + (setq handler 'rmail-mime-insert-bulk)) + ;; Inline non-HTML text ((and is-inline (string-match "text/" (car content-type))) ;; Don't need a tagline. (aset new 1 (aset tagline 2 nil)) @@ -1186,10 +1302,6 @@ If an error occurs, return an error message string." (new (aref (rmail-mime-entity-display entity) 1))) ;; Show header. (aset new 0 (aset (rmail-mime-entity-header entity) 2 t)) - ;; Show tagline if and only if body is not shown. - (if (aref new 2) - (aset new 1 (aset (rmail-mime-entity-tagline entity) 2 nil)) - (aset new 1 (aset (rmail-mime-entity-tagline entity) 2 t))) entity))) (error (format "%s" err))))) @@ -1390,7 +1502,8 @@ This is the usual value of `rmail-insert-mime-forwarded-message-function'." "Function to set in `rmail-search-mime-message-function' (which see)." (save-restriction (narrow-to-region (rmail-msgbeg msg) (rmail-msgend msg)) - (let* ((rmail-mime-mbox-buffer (current-buffer)) + (let* ((rmail-mime-searching t) ; mark inside search + (rmail-mime-mbox-buffer (current-buffer)) (rmail-mime-view-buffer rmail-view-buffer) (header-end (save-excursion (re-search-forward "^$" nil 'move) (point))) diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el index 3440741f573..e70499f222a 100644 --- a/lisp/mail/smtpmail.el +++ b/lisp/mail/smtpmail.el @@ -687,6 +687,7 @@ Returns an error if the server cannot be contacted." "smtpmail" process-buffer host port :type smtpmail-stream-type :return-list t + :warn-unless-encrypted ask-for-password :capability-command (format "EHLO %s\r\n" (smtpmail-fqdn)) :end-of-command "^[0-9]+ .*\r\n" :success "^2.*\n" diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in index cb2a1b4e4bb..08a4219ee6b 100644 --- a/lisp/makefile.w32-in +++ b/lisp/makefile.w32-in @@ -257,11 +257,11 @@ update-subdirs-SH: doit updates: $(lisp)/subdirs.el autoloads mh-autoloads finder-data custom-deps -# This is useful after "bzr up". -bzr-update: recompile autoloads finder-data custom-deps +# This is useful after a repository fetch. +repo-update: recompile autoloads finder-data custom-deps # For backwards compatibility: -cvs-update: bzr-update +cvs-update: repo-update # Update the AUTHORS file. diff --git a/lisp/man.el b/lisp/man.el index 4b235302f8b..a61524b890c 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -837,7 +837,7 @@ foo[, bar [, ...]] [other stuff] (sec) - description foo(sec)[, bar(sec) [, ...]] [other stuff] - description For more details and some regression tests, please see -test/automated/man-tests.el in the emacs bzr repository." +test/automated/man-tests.el in the emacs repository." (goto-char (point-min)) ;; See man-tests for data about which systems use which format (hopefully we ;; will be able to simplify the code if/when some of those formats aren't diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 57acbbe648e..8f33641a746 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -470,17 +470,14 @@ [paste-from-menu]) ;; ns-win.el said: Change text to be more consistent with ;; surrounding menu items `paste', etc." - `(menu-item ,(if (featurep 'ns) "Select and Paste" - "Paste from Kill Menu") yank-menu + `(menu-item ,(if (featurep 'ns) "Select and Paste" "Paste from Kill Menu") + yank-menu :enable (and (cdr yank-menu) (not buffer-read-only)) :help "Choose a string from the kill ring and paste it")) (bindings--define-key menu [paste] '(menu-item "Paste" yank :enable (and (or - ;; Emacs compiled --without-x (or --with-ns) - ;; doesn't have x-selection-exists-p. - (and (fboundp 'x-selection-exists-p) - (x-selection-exists-p 'CLIPBOARD)) + (gui-call gui-selection-exists-p 'CLIPBOARD) (if (featurep 'ns) ; like paste-from-menu (cdr yank-menu) kill-ring)) @@ -537,27 +534,26 @@ '(and mark-active (not buffer-read-only))) (put 'clipboard-kill-ring-save 'menu-enable 'mark-active) (put 'clipboard-yank 'menu-enable - '(and (or (not (fboundp 'x-selection-exists-p)) - (x-selection-exists-p) - (x-selection-exists-p 'CLIPBOARD)) + '(and (or (gui-call gui-selection-exists-p 'PRIMARY) + (gui-call gui-selection-exists-p 'CLIPBOARD)) (not buffer-read-only))) (defun clipboard-yank () "Insert the clipboard contents, or the last stretch of killed text." (interactive "*") - (let ((x-select-enable-clipboard t)) + (let ((gui-select-enable-clipboard t)) (yank))) (defun clipboard-kill-ring-save (beg end &optional region) - "Copy region to kill ring, and save in the X clipboard." + "Copy region to kill ring, and save in the GUI's clipboard." (interactive "r\np") - (let ((x-select-enable-clipboard t)) + (let ((gui-select-enable-clipboard t)) (kill-ring-save beg end region))) (defun clipboard-kill-region (beg end &optional region) - "Kill the region, and save it in the X clipboard." + "Kill the region, and save it in the GUI's clipboard." (interactive "r\np") - (let ((x-select-enable-clipboard t)) + (let ((gui-select-enable-clipboard t)) (kill-region beg end region))) (defun menu-bar-enable-clipboard () @@ -903,19 +899,17 @@ by \"Save Options\" in Custom buffers.") '(menu-item "Horizontal" menu-bar-horizontal-scroll-bar :help "Horizontal scroll bar" - :visible (display-graphic-p) - :button (:radio . (eq (cdr (assq 'horizontal-scroll-bars - (frame-parameters))) - t)))) + :visible (horizontal-scroll-bars-available-p) + :button (:radio . (cdr (assq 'horizontal-scroll-bars + (frame-parameters)))))) (bindings--define-key menu [none-horizontal] '(menu-item "None-horizontal" menu-bar-no-horizontal-scroll-bar :help "Turn off horizontal scroll bars" - :visible (display-graphic-p) - :button (:radio . (eq (cdr (assq 'horizontal-scroll-bars - (frame-parameters))) - nil)))) + :visible (horizontal-scroll-bars-available-p) + :button (:radio . (not (cdr (assq 'horizontal-scroll-bars + (frame-parameters))))))) (bindings--define-key menu [right] '(menu-item "On the Right" @@ -1332,9 +1326,6 @@ mail status in mode line")) (bindings--define-key menu [life] '(menu-item "Life" life :help "Watch how John Conway's cellular automaton evolves")) - (bindings--define-key menu [land] - '(menu-item "Landmark" landmark - :help "Watch a neural-network robot learn landmarks")) (bindings--define-key menu [hanoi] '(menu-item "Towers of Hanoi" hanoi :help "Watch Towers-of-Hanoi puzzle solved by Emacs")) @@ -1947,6 +1938,19 @@ Buffers menu is regenerated." "Function to select the buffer chosen from the `Buffers' menu-bar menu. It must accept a buffer as its only required argument.") +(defun menu-bar-buffer-vector (alist) + ;; turn ((name . buffer) ...) into a menu + (let ((buffers-vec (make-vector (length alist) nil)) + (i (length alist))) + (dolist (pair alist) + (setq i (1- i)) + (aset buffers-vec i + (cons (car pair) + `(lambda () + (interactive) + (funcall menu-bar-select-buffer-function ,(cdr pair)))))) + buffers-vec)) + (defun menu-bar-update-buffers (&optional force) ;; If user discards the Buffers item, play along. (and (lookup-key (current-global-map) [menu-bar buffer]) @@ -1982,17 +1986,7 @@ It must accept a buffer as its only required argument.") name) )) alist)))) - ;; Now make the actual list of items. - (let ((buffers-vec (make-vector (length alist) nil)) - (i (length alist))) - (dolist (pair alist) - (setq i (1- i)) - (aset buffers-vec i - (cons (car pair) - `(lambda () - (interactive) - (funcall menu-bar-select-buffer-function ,(cdr pair)))))) - (list buffers-vec)))) + (list (menu-bar-buffer-vector alist)))) ;; Make a Frames menu if we have more than one frame. (when (cdr frames) @@ -2312,13 +2306,33 @@ If FRAME is nil or not given, use the selected frame." global-map (vector 'menu-bar menu)) (lookup-key-ignore-too-long (current-local-map) (vector 'menu-bar menu)) - (cdar (minor-mode-key-binding (vector 'menu-bar menu)))) + (cdar (minor-mode-key-binding (vector 'menu-bar menu))) + (mouse-menu-bar-map)) (posn-at-x-y x 0 nil t) nil t))) (t (with-selected-frame (or frame (selected-frame)) (tmm-menubar)))))) (global-set-key [f10] 'menu-bar-open) +(defun buffer-menu-open () + "Start key navigation of the buffer menu. +This is the keyboard interface to \\[mouse-buffer-menu]." + (interactive) + (popup-menu (mouse-buffer-menu-keymap) + (posn-at-x-y 0 0 nil t))) + +(global-set-key [C-f10] 'buffer-menu-open) + +(defun mouse-buffer-menu-keymap () + (let* ((menu (mouse-buffer-menu-map)) + (km (make-sparse-keymap (pop menu)))) + (dolist (item (nreverse menu)) + (let* ((name (pop item))) + (define-key km (vector (intern name)) + (list name 'keymap name + (menu-bar-buffer-vector item))))) + km)) + (defvar tty-menu-navigation-map (let ((map (make-sparse-keymap))) ;; The next line is disabled because it breaks interpretation of diff --git a/lisp/mh-e/.gitignore b/lisp/mh-e/.gitignore deleted file mode 100644 index 2e5b1740f15..00000000000 --- a/lisp/mh-e/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -mh-autoloads.el -mh-cus-load.el -mh-loaddefs.el diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index 96a9b19ab78..d94cb99a8c8 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog @@ -1,3 +1,25 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-09-30 Bill Wohler + + Release MH-E version 8.6. + + * mh-e.el (Version, mh-version): Update for release 8.6. + +2014-09-30 Mike Kupfer + + * mh-comp.el (mh-insert-x-face): Ensure that mh-x-face-file is a + string before trying to use it (closes SF #474). + (mh-bare-components): New function to create a temporary initial + components file; replaces mh-find-components. Improve the temp + folder and file names as per a suggestion from Bill Wohler. + Also address XEmacs compatibility issues: use mm-make-temp-file instead + of make-temp-file, and only pass one argument to delete-directory. + (mh-edit-again, mh-send-sub): Use mh-bare-components instead of + mh-find-components (partially closes SF #468). + 2014-05-09 Glenn Morris * mh-e.el (mh-variants): Use file-accessible-directory-p. @@ -81,8 +103,8 @@ * mh-letter.el (mh-yank-hooks): Use new mh-make-obsolete-variable macro. - * mh-e.el (mh-kill-folder-suppress-prompt-hooks): Use - new mh-define-obsolete-variable-alias macro. + * mh-e.el (mh-kill-folder-suppress-prompt-hooks): + Use new mh-define-obsolete-variable-alias macro. * mh-compat.el (mh-cl-flet): New alias for cl-flet on Emacs 24 and flet elsewhere. @@ -94,8 +116,8 @@ Replace flet with new alias mh-cl-flet. * mh-mime.el (mh-display-with-external-viewer, mh-mime-display) - (mh-press-button, mh-push-button, mh-display-emphasis): Replace - flet with new alias mh-cl-flet. + (mh-press-button, mh-push-button, mh-display-emphasis): + Replace flet with new alias mh-cl-flet. * mh-e.el (mh-invisible-header-fields-internal): Remove trailing whitespace. @@ -137,16 +159,16 @@ (mh-folder-mode): Add mh-blacklist and mh-whitelist variables. (mh-execute-commands): Update documentation. (mh-undo, mh-outstanding-commands-p, mh-process-commands) - (mh-delete-a-msg, mh-refile-a-msg, mh-undo-msg): Handle - blacklisted and whitelisted messages. + (mh-delete-a-msg, mh-refile-a-msg, mh-undo-msg): + Handle blacklisted and whitelisted messages. * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Update to put messages in blacklist and whitelist respectively for latter processing. (mh-blacklist-a-msg, mh-junk-whitelist-a-msg): New function to support previous functions. (mh-junk-blacklist-disposition): New function. - (mh-junk-process-blacklist, mh-junk-process-whitelist): New - functions that perform the blacklisting and whitelisting + (mh-junk-process-blacklist, mh-junk-process-whitelist): + New functions that perform the blacklisting and whitelisting respectively that used to be performed by mh-junk-blacklist and mh-junk-whitelist. * mh-scan.el (mh-scan-blacklisted-msg-regexp) @@ -169,18 +191,18 @@ X-MaxCode-Template:, X-ME-Bayesian:, X-Sendergroup:, X-SFDC-, X-SMFBL:, X-SMHeaderMap:, X-VGI-OESCD:, X-VirtualServer:, X-VirtualServerGroup:, X-XPT-XSL-Name:, X-Y-GMX-Trusted:, - X-XWALL-, X-ZixNet:. Changed X-Habeas-SWE- to X-Habeas-. Updated - the comment. (addresses SF #1916032). + X-XWALL-, X-ZixNet:. Changed X-Habeas-SWE- to X-Habeas-. + Updated the comment. (addresses SF #1916032). 2012-11-25 Bill Wohler - * mh-e.el (mh-invisible-header-fields-internal): Add - X-AnalysisOut, X-Authentication-Info, X-Auto-Response-Suppress, + * mh-e.el (mh-invisible-header-fields-internal): + Add X-AnalysisOut, X-Authentication-Info, X-Auto-Response-Suppress, X-Bayes-Prob, X-Cam-, X-CanIt-Geo, X-Completed, X-Facebook, X-Forwarded-, X-Generated-By, X-Headers-End, X-IEEE-UCE, X-Jira-Fingerprint, X-Junkmail-, X-Launchpad-, X-MXL-Hash, - X-Notification-, X-Notifications, X-Oracle-Calendar. Replace - X-DCC-Usenix-Metrics with X-DCC- (addresses SF #1916032). + X-Notification-, X-Notifications, X-Oracle-Calendar. + Replace X-DCC-Usenix-Metrics with X-DCC- (addresses SF #1916032). 2012-11-25 Jeffrey C Honig @@ -1238,8 +1260,8 @@ (mh-show-subject, mh-show-to, mh-show-xface) (mh-speedbar-folder, mh-speedbar-folder-with-unseen-messages) (mh-speedbar-selected-folder) - (mh-speedbar-selected-folder-with-unseen-messages): Add - :package-version keyword to these faces (closes SF #1452724). + (mh-speedbar-selected-folder-with-unseen-messages): + Add :package-version keyword to these faces (closes SF #1452724). * mh-tool-bar.el (mh-tool-bar-define): Add commented-out :package-version keywords (closes SF #1452724). diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el index 7abd16bd832..21526c80d0a 100644 --- a/lisp/mh-e/mh-acros.el +++ b/lisp/mh-e/mh-acros.el @@ -46,6 +46,10 @@ ;;; Compatibility +;; TODO: Replace `cl' with `cl-lib'. +;; `cl' is deprecated in Emacs 24.3. Use `cl-lib' instead. However, +;; we'll likely have to insert `cl-' before each use of a Common Lisp +;; function. ;;;###mh-autoload (defmacro mh-require-cl () "Macro to load \"cl\" if needed. diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el index 95c543db248..35572c1eaaf 100644 --- a/lisp/mh-e/mh-comp.el +++ b/lisp/mh-e/mh-comp.el @@ -411,6 +411,7 @@ See also `mh-send'." (interactive (list (mh-get-msg-num t))) (let* ((from-folder mh-current-folder) (config (current-window-configuration)) + (components-file (mh-bare-components)) (draft (cond ((and mh-draft-folder (equal from-folder mh-draft-folder)) (pop-to-buffer (find-file-noselect (mh-msg-filename message)) @@ -467,7 +468,8 @@ See also `mh-send'." ;; Text field, that's an easy case (t (mh-modify-header-field field value)))))) - (mh-components-to-list (mh-find-components))) + (mh-components-to-list components-file)) + (delete-file components-file) (goto-char (point-min)) (save-buffer) (mh-compose-and-send-mail @@ -885,22 +887,6 @@ Optional argument BUFFER can be used to specify the buffer." (t nil)))) -(defun mh-find-components () - "Return the path to the components file." - (let (components) - (cond - ((file-exists-p - (setq components - (expand-file-name mh-comp-formfile mh-user-path))) - components) - ((file-exists-p - (setq components - (expand-file-name mh-comp-formfile mh-lib))) - components) - (t - (error "Can't find %s in %s or %s" - mh-comp-formfile mh-user-path mh-lib))))) - (defun mh-send-sub (to cc subject config) "Do the real work of composing and sending a letter. Expects the TO, CC, and SUBJECT fields as arguments. @@ -910,8 +896,8 @@ CONFIG is the window configuration before sending mail." (message "Composing a message...") (let ((draft (mh-read-draft "message" - (mh-find-components) - nil))) + (mh-bare-components) + t))) (mh-insert-fields "To:" to "Subject:" subject "Cc:" cc) (goto-char (point-max)) (mh-compose-and-send-mail draft "" folder msg-num @@ -920,6 +906,29 @@ CONFIG is the window configuration before sending mail." (mh-letter-mode-message) (mh-letter-adjust-point)))) +(defun mh-bare-components () + "Generate a temporary, clean components file and return its path." + ;; Let comp(1) create the skeleton for us. This is particularly + ;; important with nmh-1.5, because its default "components" needs + ;; some processing before it can be used. Unfortunately, comp(1) + ;; doesn't have a -build option. So, to avoid the possibility of + ;; clobbering an existing draft, create a temporary directory and + ;; use it as the drafts folder. Then copy the skeleton to a regular + ;; temp file, and return the regular temp file. + (let (new + (temp-folder (mm-make-temp-file + (concat mh-user-path "draftfolder.") t))) + (mh-exec-cmd "comp" "-nowhatnowproc" + "-draftfolder" (format "+%s" + (file-name-nondirectory temp-folder)) + (if (stringp mh-comp-formfile) + (list "-form" mh-comp-formfile))) + (setq new (mm-make-temp-file "comp.")) + (rename-file (concat temp-folder "/" "1") new t) + (delete-file (concat temp-folder "/" ".mh_sequences")) + (delete-directory temp-folder) + new)) + (defun mh-read-draft (use initial-contents delete-contents-file) "Read draft file into a draft buffer and make that buffer the current one. @@ -1069,7 +1078,8 @@ The versions of MH-E, Emacs, and MH are shown." (defun mh-insert-x-face () "Append X-Face, Face or X-Image-URL field to header. If the field already exists, this function does nothing." - (when (and (file-exists-p mh-x-face-file) + (when (and (stringp mh-x-face-file) + (file-exists-p mh-x-face-file) (file-readable-p mh-x-face-file)) (save-excursion (unless (or (mh-position-on-field "X-Face") diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index 7368c0b9ffb..06f48e95c4b 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el @@ -5,7 +5,7 @@ ;; Author: Bill Wohler ;; Maintainer: Bill Wohler -;; Version: 8.5+bzr +;; Version: 8.6 ;; Keywords: mail ;; This file is part of GNU Emacs. @@ -127,7 +127,7 @@ ;; Try to keep variables local to a single file. Provide accessors if ;; variables are shared. Use this section as a last resort. -(defconst mh-version "8.5+bzr" "Version number of MH-E.") +(defconst mh-version "8.6" "Version number of MH-E.") ;; Variants diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index f998843cd85..e1e6b0ee907 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -169,13 +169,15 @@ ACTION can be one of nil, t or `lambda'." (t 'test-completion)) string table pred)))) -(defun completion-table-dynamic (fun) +(defun completion-table-dynamic (fun &optional switch-buffer) "Use function FUN as a dynamic completion table. FUN is called with one argument, the string for which completion is required, and it should return an alist containing all the intended possible completions. This alist may be a full list of possible completions so that FUN can ignore -the value of its argument. If completion is performed in the minibuffer, -FUN will be called in the buffer from which the minibuffer was entered. +the value of its argument. +If SWITCH-BUFFER is non-nil and completion is performed in the +minibuffer, FUN will be called in the buffer from which the minibuffer +was entered. The result of the `completion-table-dynamic' form is a function that can be used as the COLLECTION argument to `try-completion' and @@ -187,9 +189,10 @@ See also the related function `completion-table-with-cache'." ;; `fun' is not supposed to return another function but a plain old ;; completion table, whose boundaries are always trivial. nil - (with-current-buffer (let ((win (minibuffer-selected-window))) - (if (window-live-p win) (window-buffer win) - (current-buffer))) + (with-current-buffer (if (not switch-buffer) (current-buffer) + (let ((win (minibuffer-selected-window))) + (if (window-live-p win) (window-buffer win) + (current-buffer)))) (complete-with-action action (funcall fun string) string pred))))) (defun completion-table-with-cache (fun &optional ignore-case) @@ -228,7 +231,8 @@ You should give VAR a non-nil `risky-local-variable' property." (lambda (,str) (when (functionp ,var) (setq ,var (funcall #',fun))) - ,var)))) + ,var) + 'do-switch-buffer))) (defun completion-table-case-fold (table &optional dont-fold) "Return new completion TABLE that is case insensitive. @@ -1811,11 +1815,13 @@ variables.") ;; Use `display-buffer-below-selected' for inline completions, ;; but not in the minibuffer (e.g. in `eval-expression') ;; for which `display-buffer-at-bottom' is used. - ,(if (and completion-in-region-mode-predicate - (not (minibuffer-selected-window))) - 'display-buffer-below-selected - 'display-buffer-at-bottom)) - (window-height . fit-window-to-buffer)) + ,(if (eq (selected-window) (minibuffer-window)) + 'display-buffer-at-bottom + 'display-buffer-below-selected)) + ,(when temp-buffer-resize-mode + '(window-height . resize-temp-buffer-window)) + ,(when temp-buffer-resize-mode + '(preserve-size . (nil . t)))) nil ;; Remove the base-size tail because `sort' requires a properly ;; nil-terminated list. @@ -2106,7 +2112,11 @@ The completion method is determined by `completion-at-point-functions'." (completion-in-region start end collection (plist-get plist :predicate)))) ;; Maybe completion already happened and the function returned t. - (_ (cdr res))))) + (_ + (when (cdr res) + (message "Warning: %S failed to return valid completion data!" + (car res))) + (cdr res))))) (defun completion-help-at-point () "Display the completions on the text around point. diff --git a/lisp/misearch.el b/lisp/misearch.el index 64ea40b7a1d..4b003b9b19d 100644 --- a/lisp/misearch.el +++ b/lisp/misearch.el @@ -91,6 +91,11 @@ Isearch starts.") "The buffer where the search is currently searching. The value is nil when the search still is in the initial buffer.") +;;;###autoload +(defvar multi-isearch-buffer-list nil) +;;;###autoload +(defvar multi-isearch-file-list nil) + (defvar multi-isearch-orig-search-fun nil) (defvar multi-isearch-orig-wrap nil) (defvar multi-isearch-orig-push-state nil) @@ -119,7 +124,9 @@ Intended to be added to `isearch-mode-hook'." (defun multi-isearch-end () "Clean up the multi-buffer search after terminating isearch." (setq multi-isearch-current-buffer nil - multi-isearch-next-buffer-current-function nil) + multi-isearch-next-buffer-current-function nil + multi-isearch-buffer-list nil + multi-isearch-file-list nil) (setq-default isearch-search-fun-function multi-isearch-orig-search-fun isearch-wrap-function multi-isearch-orig-wrap isearch-push-state-function multi-isearch-orig-push-state) @@ -204,8 +211,6 @@ Switch to the buffer restored from the search status stack." ;;; Global multi-buffer search invocations -(defvar multi-isearch-buffer-list nil) - (defun multi-isearch-next-buffer-from-list (&optional buffer wrap) "Return the next buffer in the series of buffers. This function is used for multiple buffers Isearch. A sequence of @@ -290,8 +295,6 @@ whose names match the specified regexp." ;;; Global multi-file search invocations -(defvar multi-isearch-file-list nil) - (defun multi-isearch-next-file-buffer-from-list (&optional buffer wrap) "Return the next buffer in the series of file buffers. This function is used for multiple file buffers Isearch. A sequence diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el index b8bd339acb3..ddfb879318f 100644 --- a/lisp/mouse-copy.el +++ b/lisp/mouse-copy.el @@ -147,7 +147,7 @@ If you have the bug (or the real fix :-), please let me know." ;; Third, set the selection. ;; (setq me-beg beg me-end end me-range range) ; for debugging (set-buffer end-buffer) - (x-set-selection 'SECONDARY (buffer-substring beg end))))) + (gui-set-selection 'SECONDARY (buffer-substring beg end))))) (defun mouse-drag-secondary-pasting (start-event) @@ -203,7 +203,7 @@ by johnh@ficus.cs.ucla.edu." (kill-region (overlay-start mouse-secondary-overlay) (overlay-end mouse-secondary-overlay))) ;; (delete-overlay mouse-secondary-overlay) - ;; (x-set-selection 'SECONDARY nil) + ;; (gui-set-selection 'SECONDARY nil) ;; (setq mouse-secondary-overlay nil) ) diff --git a/lisp/mouse.el b/lisp/mouse.el index 2606c8b4ca4..6e86bc06c1a 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -94,17 +94,15 @@ point at the click position." (defun mouse--down-1-maybe-follows-link (&optional _prompt) "Turn `mouse-1' events into `mouse-2' events if follows-link. Expects to be bound to `down-mouse-1' in `key-translation-map'." - (if (or (null mouse-1-click-follows-link) - (not (eq (if (eq mouse-1-click-follows-link 'double) - 'double-down-mouse-1 'down-mouse-1) - (car-safe last-input-event))) - (not (mouse-on-link-p (event-start last-input-event))) - (and (not mouse-1-click-in-non-selected-windows) - (not (eq (selected-window) - (posn-window (event-start last-input-event)))))) - nil - (let ((this-event last-input-event) - (timedout + (when (and mouse-1-click-follows-link + (eq (if (eq mouse-1-click-follows-link 'double) + 'double-down-mouse-1 'down-mouse-1) + (car-safe last-input-event)) + (mouse-on-link-p (event-start last-input-event)) + (or mouse-1-click-in-non-selected-windows + (eq (selected-window) + (posn-window (event-start last-input-event))))) + (let ((timedout (sit-for (if (numberp mouse-1-click-follows-link) (/ (abs mouse-1-click-follows-link) 1000.0) 0)))) @@ -113,24 +111,19 @@ Expects to be bound to `down-mouse-1' in `key-translation-map'." timedout (not timedout)) nil - (let ((event (read-event))) + (let ((event (read-key))) ;Use read-key so it works for xterm-mouse-mode! (if (eq (car-safe event) (if (eq mouse-1-click-follows-link 'double) 'double-mouse-1 'mouse-1)) ;; Turn the mouse-1 into a mouse-2 to follow links. (let ((newup (if (eq mouse-1-click-follows-link 'double) - 'double-mouse-2 'mouse-2)) - (newdown (if (eq mouse-1-click-follows-link 'double) - 'double-down-mouse-2 'down-mouse-2))) + 'double-mouse-2 'mouse-2))) ;; If mouse-2 has never been done by the user, it doesn't have ;; the necessary property to be interpreted correctly. - (put newup 'event-kind (get (car event) 'event-kind)) - (put newdown 'event-kind (get (car this-event) 'event-kind)) + (unless (get newup 'event-kind) + (put newup 'event-kind (get (car event) 'event-kind))) (push (cons newup (cdr event)) unread-command-events) - ;; Modify the event in place, so read-key-sequence doesn't - ;; generate a second fake prefix key (see fake_prefixed_keys in - ;; src/keyboard.c). - (setcar this-event newdown) - (vector this-event)) + ;; Don't change the down event, only the up-event (bug#18212). + nil) (push event unread-command-events) nil)))))) @@ -362,24 +355,6 @@ This command must be bound to a mouse click." (split-window-horizontally (min (max new-width first-col) last-col)))))) -;; `mouse-drag-line' is now the common routine for handling all line -;; dragging events combining the earlier `mouse-drag-mode-line-1' and -;; `mouse-drag-vertical-line'. It should improve the behavior of line -;; dragging wrt Emacs 23 as follows: - -;; (1) Gratuitous error messages and restrictions have been (hopefully) -;; removed. (The help-echo that dragging the mode-line can resize a -;; one-window-frame's window will still show through via bindings.el.) - -;; (2) No gratuitous selection of other windows should happen. (This -;; has not been completely fixed for mouse-autoselected windows yet.) - -;; (3) Mouse clicks below a scroll-bar should pass through via unread -;; command events. - -;; Note that `window-in-direction' replaces `mouse-drag-window-above' -;; and `mouse-drag-vertical-line-rightward-window' with Emacs 24.1. - (defun mouse-drag-line (start-event line) "Drag a mode line, header line, or vertical line with the mouse. START-EVENT is the starting mouse-event of the drag action. LINE @@ -390,103 +365,136 @@ must be one of the symbols `header', `mode', or `vertical'." (start (event-start start-event)) (window (posn-window start)) (frame (window-frame window)) - (minibuffer-window (minibuffer-window frame)) - (side (and (eq line 'vertical) - (or (cdr (assq 'vertical-scroll-bars - (frame-parameters frame))) - 'right))) + ;; `position' records the x- or y-coordinate of the last + ;; sampled position. + (position (if (eq line 'vertical) + (+ (window-pixel-left window) + (car (posn-x-y start))) + (+ (window-pixel-top window) + (cdr (posn-x-y start))))) + ;; `last-position' records the x- or y-coordinate of the + ;; previously sampled position. The difference of `position' + ;; and `last-position' determines the size change of WINDOW. + (last-position position) (draggable t) - height finished event position growth dragged) + posn-window growth dragged) + ;; Decide on whether we are allowed to track at all and whose + ;; window's edge we drag. (cond ((eq line 'header) - ;; Check whether header-line can be dragged at all. (if (window-at-side-p window 'top) + ;; We can't drag the header line of a topmost window. (setq draggable nil) - (setq height (/ (window-header-line-height window) 2)) + ;; Drag bottom edge of window above the header line. (setq window (window-in-direction 'above window t)))) ((eq line 'mode) - ;; Check whether mode-line can be dragged at all. (if (and (window-at-side-p window 'bottom) - ;; Allow resizing the minibuffer window if it's on the same - ;; frame as and immediately below the clicked window, and - ;; it's active or `resize-mini-windows' is nil. - (not (and (eq (window-frame minibuffer-window) frame) - (= (nth 1 (window-pixel-edges minibuffer-window)) - (nth 3 (window-pixel-edges window))) - (or (not resize-mini-windows) - (eq minibuffer-window - (active-minibuffer-window)))))) - (setq draggable nil) - (setq height (/ (window-mode-line-height window) 2)))) - ((eq line 'vertical) - ;; Get the window to adjust for the vertical case. If the scroll - ;; bar is on the window's right or we drag a vertical divider, - ;; adjust the window where the start-event occurred. If the - ;; scroll bar is on the start-event window's left or there are no - ;; scrollbars, adjust the window on the left of it. - (unless (or (eq side 'right) - (not (zerop (window-right-divider-width window)))) - (setq window (window-in-direction 'left window t))))) + ;; Allow resizing the minibuffer window if it's on the + ;; same frame as and immediately below `window', and it's + ;; either active or `resize-mini-windows' is nil. + (let ((minibuffer-window (minibuffer-window frame))) + (not (and (eq (window-frame minibuffer-window) frame) + (or (not resize-mini-windows) + (eq minibuffer-window + (active-minibuffer-window))))))) + (setq draggable nil)))) - ;; Start tracking. - (track-mouse + (let* ((exitfun nil) + (move + (lambda (event) (interactive "e") + (cond + ((not (consp event)) + nil) + ((eq line 'vertical) + ;; Drag right edge of `window'. + (setq start (event-start event)) + (setq position (car (posn-x-y start))) + ;; Set `posn-window' to the window where `event' was recorded. + ;; This can be `window' or the window on the left or right of + ;; `window'. + (when (window-live-p (setq posn-window (posn-window start))) + ;; Add left edge of `posn-window' to `position'. + (setq position (+ (window-pixel-left posn-window) position)) + (unless (nth 1 start) + ;; Add width of objects on the left of the text area to + ;; `position'. + (when (eq (window-current-scroll-bars posn-window) 'left) + (setq position (+ (window-scroll-bar-width posn-window) + position))) + (setq position (+ (car (window-fringes posn-window)) + (or (car (window-margins posn-window)) 0) + position)))) + ;; When the cursor overshoots after shrinking a window to its + ;; minimum size and the dragging direction changes, have the + ;; cursor first catch up with the window edge. + (unless (or (zerop (setq growth (- position last-position))) + (and (> growth 0) + (< position (+ (window-pixel-left window) + (window-pixel-width window)))) + (and (< growth 0) + (> position (+ (window-pixel-left window) + (window-pixel-width window))))) + (setq dragged t) + (adjust-window-trailing-edge window growth t t)) + (setq last-position position)) + (draggable + ;; Drag bottom edge of `window'. + (setq start (event-start event)) + ;; Set `posn-window' to the window where `event' was recorded. + ;; This can be either `window' or the window above or below of + ;; `window'. + (setq posn-window (posn-window start)) + (setq position (cdr (posn-x-y start))) + (when (window-live-p posn-window) + ;; Add top edge of `posn-window' to `position'. + (setq position (+ (window-pixel-top posn-window) position)) + ;; If necessary, add height of header line to `position' + (when (memq (posn-area start) + '(nil left-fringe right-fringe left-margin right-margin)) + (setq position (+ (window-header-line-height posn-window) position)))) + ;; When the cursor overshoots after shrinking a window to its + ;; minimum size and the dragging direction changes, have the + ;; cursor first catch up with the window edge. + (unless (or (zerop (setq growth (- position last-position))) + (and (> growth 0) + (< position (+ (window-pixel-top window) + (window-pixel-height window)))) + (and (< growth 0) + (> position (+ (window-pixel-top window) + (window-pixel-height window))))) + (setq dragged t) + (adjust-window-trailing-edge window growth nil t)) + (setq last-position position)))))) + ;; Start tracking. + (setq track-mouse t) ;; Loop reading events and sampling the position of the mouse. - (while (not finished) - (setq event (read-event)) - (setq position (mouse-pixel-position)) - ;; Do nothing if - ;; - there is a switch-frame event. - ;; - the mouse isn't in the frame that we started in - ;; - the mouse isn't in any Emacs frame - ;; Drag if - ;; - there is a mouse-movement event - ;; - there is a scroll-bar-movement event (Why? -- cyd) - ;; (same as mouse movement for our purposes) - ;; Quit if - ;; - there is a keyboard event or some other unknown event. - (cond - ((not (consp event)) - (setq finished t)) - ((memq (car event) '(switch-frame select-window)) - nil) - ((not (memq (car event) '(mouse-movement scroll-bar-movement))) - (when (consp event) - ;; Do not unread a drag-mouse-1 event to avoid selecting - ;; some other window. For vertical line dragging do not - ;; unread mouse-1 events either (but only if we dragged at - ;; least once to allow mouse-1 clicks get through). - (unless (and dragged - (if (eq line 'vertical) - (memq (car event) '(drag-mouse-1 mouse-1)) - (eq (car event) 'drag-mouse-1))) - (push event unread-command-events))) - (setq finished t)) - ((not (and (eq (car position) frame) - (cadr position))) - nil) - ((eq line 'vertical) - ;; Drag vertical divider. This must be probably fixed like - ;; for the mode-line. - (setq growth (- (cadr position) - (if (eq side 'right) 0 2) - (nth 2 (window-pixel-edges window)) - -1)) - (unless (zerop growth) - (setq dragged t) - (adjust-window-trailing-edge window growth t t))) - (draggable - ;; Drag horizontal divider. - (setq growth - (if (eq line 'mode) - (- (+ (cddr position) height) - (nth 3 (window-pixel-edges window))) - ;; The window's top includes the header line! - (- (+ (nth 3 (window-pixel-edges window)) height) - (cddr position)))) - (unless (zerop growth) - (setq dragged t) - (adjust-window-trailing-edge - window (if (eq line 'mode) growth (- growth)) nil t)))))))) + (setq exitfun + (set-transient-map + (let ((map (make-sparse-keymap))) + (define-key map [switch-frame] #'ignore) + (define-key map [select-window] #'ignore) + (define-key map [scroll-bar-movement] #'ignore) + (define-key map [mouse-movement] move) + ;; Swallow drag-mouse-1 events to avoid selecting some other window. + (define-key map [drag-mouse-1] + (lambda () (interactive) (funcall exitfun))) + ;; For vertical line dragging swallow also a mouse-1 + ;; event (but only if we dragged at least once to allow mouse-1 + ;; clicks to get through). + (when (eq line 'vertical) + (define-key map [mouse-1] + `(menu-item "" ,(lambda () (interactive) (funcall exitfun)) + :filter ,(lambda (cmd) (if dragged cmd))))) + ;; Some of the events will of course end up looked up + ;; with a mode-line or header-line prefix ... + (define-key map [mode-line] map) + (define-key map [header-line] map) + ;; ... and some maybe even with a right- or bottom-divider + ;; prefix. + (define-key map [right-divider] map) + (define-key map [bottom-divider] map) + map) + t (lambda () (setq track-mouse nil))))))) (defun mouse-drag-mode-line (start-event) "Change the height of a window by dragging on the mode line." @@ -1061,24 +1069,7 @@ regardless of where you click." (let (select-active-regions) (deactivate-mark))) (or mouse-yank-at-point (mouse-set-point click)) - (let ((primary - (if (fboundp 'x-get-selection-value) - (if (eq (framep (selected-frame)) 'w32) - ;; MS-Windows emulates PRIMARY in x-get-selection, but not - ;; in x-get-selection-value (the latter only accesses the - ;; clipboard). So try PRIMARY first, in case they selected - ;; something with the mouse in the current Emacs session. - (or (x-get-selection 'PRIMARY) - (x-get-selection-value)) - ;; Else MS-DOS or X. - ;; On X, x-get-selection-value supports more formats and - ;; encodings, so use it in preference to x-get-selection. - (or (x-get-selection-value) - (x-get-selection 'PRIMARY))) - ;; FIXME: What about xterm-mouse-mode etc.? - (x-get-selection 'PRIMARY)))) - (unless primary - (error "No selection is available")) + (let ((primary (gui-get-primary-selection))) (push-mark (point)) (insert-for-yank primary))) @@ -1265,7 +1256,7 @@ This must be bound to a mouse drag event." (if (numberp (posn-point posn)) (setq beg (posn-point posn))) (move-overlay mouse-secondary-overlay beg (posn-point end)) - (x-set-selection + (gui-set-selection 'SECONDARY (buffer-substring (overlay-start mouse-secondary-overlay) (overlay-end mouse-secondary-overlay)))))) @@ -1302,6 +1293,7 @@ The function returns a non-nil value if it creates a secondary selection." (setq mouse-secondary-start (make-marker))) (set-marker mouse-secondary-start start-point) (delete-overlay mouse-secondary-overlay)) + ;; FIXME: Use mouse-drag-track! (let (event end end-point) (track-mouse (while (progn @@ -1340,13 +1332,13 @@ The function returns a non-nil value if it creates a secondary selection." (if (marker-position mouse-secondary-start) (save-window-excursion (delete-overlay mouse-secondary-overlay) - (x-set-selection 'SECONDARY nil) + (gui-set-selection 'SECONDARY nil) (select-window start-window) (save-excursion (goto-char mouse-secondary-start) (sit-for 1) nil)) - (x-set-selection + (gui-set-selection 'SECONDARY (buffer-substring (overlay-start mouse-secondary-overlay) (overlay-end mouse-secondary-overlay))))))))) @@ -1360,7 +1352,7 @@ regardless of where you click." ;; Give temporary modes such as isearch a chance to turn off. (run-hooks 'mouse-leave-buffer-hook) (or mouse-yank-at-point (mouse-set-point click)) - (let ((secondary (x-get-selection 'SECONDARY))) + (let ((secondary (gui-get-selection 'SECONDARY))) (if secondary (insert-for-yank secondary) (error "No secondary selection")))) @@ -1479,7 +1471,7 @@ CLICK position, kill the secondary selection." (setq str (buffer-substring (overlay-start mouse-secondary-overlay) (overlay-end mouse-secondary-overlay))) (> (length str) 0) - (x-set-selection 'SECONDARY str)))) + (gui-set-selection 'SECONDARY str)))) (defcustom mouse-buffer-menu-maxlen 20 @@ -1524,8 +1516,17 @@ This switches buffers in the window that you clicked on, and selects that window." (interactive "e") (mouse-minibuffer-check event) - (let ((buffers (buffer-list)) alist menu split-by-major-mode sum-of-squares) - ;; Make an alist of elements that look like (MENU-ITEM . BUFFER). + (let ((buf (x-popup-menu event (mouse-buffer-menu-map))) + (window (posn-window (event-start event)))) + (when buf + (select-window + (if (framep window) (frame-selected-window window) + window)) + (switch-to-buffer buf)))) + +(defun mouse-buffer-menu-map () + ;; Make an alist of elements that look like (MENU-ITEM . BUFFER). + (let ((buffers (buffer-list)) split-by-major-mode sum-of-squares) (dolist (buf buffers) ;; Divide all buffers into buckets for various major modes. ;; Each bucket looks like (MODE NAMESTRING BUFFERS...). @@ -1589,18 +1590,10 @@ and selects that window." (setq subdivided-menus (cons (cons "Others" others-list) subdivided-menus))))) - (setq menu (cons "Buffer Menu" (nreverse subdivided-menus)))) - (progn - (setq alist (mouse-buffer-menu-alist buffers)) - (setq menu (cons "Buffer Menu" - (mouse-buffer-menu-split "Select Buffer" alist))))) - (let ((buf (x-popup-menu event menu)) - (window (posn-window (event-start event)))) - (when buf - (select-window - (if (framep window) (frame-selected-window window) - window)) - (switch-to-buffer buf))))) + (cons "Buffer Menu" (nreverse subdivided-menus))) + (cons "Buffer Menu" + (mouse-buffer-menu-split "Select Buffer" + (mouse-buffer-menu-alist buffers)))))) (defun mouse-buffer-menu-alist (buffers) (let (tail diff --git a/lisp/mpc.el b/lisp/mpc.el index d03edf86bba..3dac7f99014 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -1,4 +1,4 @@ -;;; mpc.el --- A client for the Music Player Daemon -*- coding: utf-8; lexical-binding: t -*- +;;; mpc.el --- A client for the Music Player Daemon -*- lexical-binding: t -*- ;; Copyright (C) 2006-2014 Free Software Foundation, Inc. @@ -891,9 +891,7 @@ If PLAYLIST is t or nil or missing, use the main playlist." :type '(choice (const nil) directory)) (defcustom mpc-data-directory - (if (and (not (file-directory-p "~/.mpc")) - (file-directory-p "~/.emacs.d")) - "~/.emacs.d/mpc" "~/.mpc") + (locate-user-emacs-file "mpc" ".mpc") "Directory where MPC.el stores auxiliary data." :type 'directory) @@ -1624,7 +1622,7 @@ Return non-nil if a selection was deactivated." (setq active (if (listp active) (mpc-intersection active vals) vals)))) - (when (and (listp active)) + (when (listp active) ;; Remove the selections if they are all in conflict with ;; other constraints. (let ((deactivate t)) @@ -1638,8 +1636,14 @@ Return non-nil if a selection was deactivated." (setq selection nil) (mapc 'delete-overlay mpc-select) (setq mpc-select nil) - (mpc-tagbrowser-all-select))))) + (mpc-tagbrowser-all-select)))) + ;; Don't bother splitting the "active" elements to the first part if + ;; they're the same as the selection. + (when (equal (sort (copy-sequence active) #'string-lessp) + (sort (copy-sequence selection) #'string-lessp)) + (setq active 'all))) + ;; FIXME: This `mpc-sort' takes a lot of time. Maybe we should ;; be more clever and presume the buffer is mostly sorted already. (mpc-sort (if (listp active) active)) @@ -1801,7 +1805,9 @@ A value of t means the main playlist.") ;; Maintain the volume. (setq mpc-volume (mpc-volume-widget - (string-to-number (cdr (assq 'volume mpc-status)))))) + (string-to-number (cdr (assq 'volume mpc-status))))) + (let ((status-buf (mpc-proc-buffer (mpc-proc) 'status))) + (when status-buf (with-current-buffer status-buf (force-mode-line-update))))) (defvar mpc-volume-step 5) @@ -2030,7 +2036,7 @@ This is used so that they can be compared with `eq', which is needed for (match-string 1))))) (cond ((null re) (posn-set-point posn)) - ((null sn) (error "This song is not in the playlist")) + ((null sn) (user-error "This song is not in the playlist")) ((null (with-current-buffer plbuf (re-search-forward re nil t))) ;; song-file only appears once in the playlist: no ambiguity, ;; we're good to go! @@ -2340,7 +2346,7 @@ This is used so that they can be compared with `eq', which is needed for (if (mpc-playlist-add) (if (member (cdr (assq 'state (mpc-cmd-status))) '("stop")) (mpc-cmd-play)) - (error "Don't know what to play")))) + (user-error "Don't know what to play")))) (defun mpc-next () "Jump to the next song in the queue." @@ -2604,7 +2610,8 @@ This is used so that they can be compared with `eq', which is needed for (mpc-cmd-move (let ((poss '())) (dotimes (i (length songs)) (push (+ i (length pl)) poss)) - (nreverse poss)) dest-pos mpc-songs-playlist) + (nreverse poss)) + dest-pos mpc-songs-playlist) (message "Added %d songs" (length songs))))) (mpc-songs-refresh)) (t diff --git a/lisp/msb.el b/lisp/msb.el index 166c6c61e30..474d76bf6ca 100644 --- a/lisp/msb.el +++ b/lisp/msb.el @@ -1064,7 +1064,7 @@ variable `msb-menu-cond'." list)) (defun msb--make-keymap-menu (raw-menu) - (let ((end (cons '(nil) 'menu-bar-select-buffer)) + (let ((end 'menu-bar-select-buffer) (mcount 0)) (mapcar (lambda (sub-menu) @@ -1105,13 +1105,12 @@ variable `msb-menu-cond'." (setcdr (nthcdr msb-max-menu-items frames) nil)) (setq frames-menu (nconc - (list 'frame f-title '(nil) 'keymap f-title) + (list 'frame f-title 'keymap f-title) (mapcar (lambda (frame) (nconc (list (frame-parameter frame 'name) - (frame-parameter frame 'name) - (cons nil nil)) + (frame-parameter frame 'name)) `(lambda () (interactive) (menu-bar-select-frame ,frame)))) frames))))) diff --git a/lisp/net/.gitignore b/lisp/net/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/net/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index d7632ed5e1b..db79c0d6675 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el @@ -2831,16 +2831,24 @@ match subdirectories as well.") files ange-ftp-files-hashtable))) (defun ange-ftp-switches-ok (switches) - "Return SWITCHES (a string) if suitable for our use." + "Return SWITCHES (a string) if suitable for use with ls over ftp." (and (stringp switches) - ;; We allow the A switch, which lists all files except "." and - ;; "..". This is OK because we manually insert these entries - ;; in the hash table. + ;; We allow the --almost-all switch, which lists all files + ;; except "." and "..". This is OK because we manually + ;; insert these entries in the hash table. (string-match - "--\\(almost-\\)?all\\>\\|\\(\\`\\| \\)-[[:alpha:]]*[aA]" switches) + "--\\(almost-\\)?all\\>\\|\\(\\`\\| \\)-[[:alpha:]]*[aA]" + switches) + ;; Disallow other long flags except --(almost-)all. + (not (string-match "\\(\\`\\| \\)--\\w+" + (replace-regexp-in-string + "--\\(almost-\\)?all\\>" "" + switches))) + ;; Must include 'l'. (string-match "\\(\\`\\| \\)-[[:alpha:]]*l" switches) + ;; Disallow recursive flag. (not (string-match - "--recursive\\>\\|\\(\\`\\| \\)-[[:alpha:]]*R" switches)) + "\\(\\`\\| \\)-[[:alpha:]]*R" switches)) switches)) (defun ange-ftp-get-files (directory &optional no-error) diff --git a/lisp/net/eww.el b/lisp/net/eww.el index 02fc575c261..c6d3bbceda2 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -28,13 +28,16 @@ (require 'format-spec) (require 'shr) (require 'url) +(require 'url-queue) +(require 'url-util) ; for url-get-url-at-point (require 'mm-url) +(eval-when-compile (require 'subr-x)) ;; for string-trim (defgroup eww nil "Emacs Web Wowser" - :version "24.4" + :version "25.1" :link '(custom-manual "(eww) Top") - :group 'hypermedia + :group 'web :prefix "eww-") (defcustom eww-header-line-format "%t: %u" @@ -57,6 +60,64 @@ :group 'eww :type 'string) +(defcustom eww-suggest-uris + '(eww-links-at-point + url-get-url-at-point + eww-current-url) + "List of functions called to form the list of default URIs for `eww'. +Each of the elements is a function returning either a string or a list +of strings. The results will be joined into a single list with +duplicate entries (if any) removed." + :version "25.1" + :group 'eww + :type 'hook + :options '(eww-links-at-point + url-get-url-at-point + eww-current-url)) + +(defcustom eww-bookmarks-directory user-emacs-directory + "Directory where bookmark files will be stored." + :version "25.1" + :group 'eww + :type 'string) + +(defcustom eww-desktop-remove-duplicates t + "Whether to remove duplicates from the history when saving desktop data. +If non-nil, repetitive EWW history entries (comprising of the URI, the +title, and the point position) will not be saved as part of the Emacs +desktop. Otherwise, such entries will be retained." + :version "25.1" + :group 'eww + :type 'boolean) + +(defcustom eww-restore-desktop nil + "How to restore EWW buffers on `desktop-restore'. +If t or 'auto, the buffers will be reloaded automatically. +If nil, buffers will require manual reload, and will contain the text +specified in `eww-restore-reload-prompt' instead of the actual Web +page contents." + :version "25.1" + :group 'eww + :type '(choice (const :tag "Restore all automatically" t) + (const :tag "Require manual reload" nil))) + +(defcustom eww-restore-reload-prompt + "\n\n *** Use \\[eww-reload] to reload this buffer. ***\n" + "The string to put in the buffers not reloaded on `desktop-restore'. +This prompt will be used if `eww-restore-desktop' is nil. + +The string will be passed through `substitute-command-keys'." + :version "25.1" + :group 'eww + :type 'string) + +(defcustom eww-history-limit 50 + "Maximum number of entries to retain in the history." + :version "25.1" + :group 'eww + :type '(choice (const :tag "Unlimited" nil) + integer)) + (defcustom eww-use-external-browser-for-content-type "\\`\\(video/\\|audio/\\|application/ogg\\)" "Always use external browser for specified content-type." @@ -65,6 +126,12 @@ :type '(choice (const :tag "Never" nil) regexp)) +(defcustom eww-after-render-hook nil + "A hook called after eww has finished rendering the buffer." + :version "25.1" + :group 'eww + :type 'hook) + (defcustom eww-form-checkbox-selected-symbol "[X]" "Symbol used to represent a selected checkbox. See also `eww-form-checkbox-symbol'." @@ -92,6 +159,14 @@ See also `eww-form-checkbox-selected-symbol'." :version "24.4" :group 'eww) +(defface eww-form-file + '((((type x w32 ns) (class color)) ; Like default mode line + :box (:line-width 2 :style released-button) + :background "#808080" :foreground "black")) + "Face for eww buffer buttons." + :version "25.1" + :group 'eww) + (defface eww-form-checkbox '((((type x w32 ns) (class color)) ; Like default mode line :box (:line-width 2 :style released-button) @@ -124,21 +199,24 @@ See also `eww-form-checkbox-selected-symbol'." :version "24.4" :group 'eww) -(defvar eww-current-url nil) -(defvar eww-current-dom nil) -(defvar eww-current-source nil) -(defvar eww-current-title "" - "Title of current page.") +(defface eww-invalid-certificate + '((default :weight bold) + (((class color)) :foreground "red")) + "Face for web pages with invalid certificates." + :version "25.1" + :group 'eww) + +(defface eww-valid-certificate + '((default :weight bold) + (((class color)) :foreground "ForestGreen")) + "Face for web pages with valid certificates." + :version "25.1" + :group 'eww) + +(defvar eww-data nil) (defvar eww-history nil) (defvar eww-history-position 0) -(defvar eww-next-url nil) -(defvar eww-previous-url nil) -(defvar eww-up-url nil) -(defvar eww-home-url nil) -(defvar eww-start-url nil) -(defvar eww-contents-url nil) - (defvar eww-local-regex "localhost" "When this regex is found in the URL, it's not a keyword but an address.") @@ -147,20 +225,40 @@ See also `eww-form-checkbox-selected-symbol'." (define-key map "\r" 'eww-follow-link) map)) +(defun eww-suggested-uris nil + "Return the list of URIs to suggest at the `eww' prompt. +This list can be customized via `eww-suggest-uris'." + (let ((obseen (make-vector 42 0)) + (uris nil)) + (dolist (fun eww-suggest-uris) + (let ((ret (funcall fun))) + (dolist (uri (if (stringp ret) (list ret) ret)) + (when (and uri (not (intern-soft uri obseen))) + (intern uri obseen) + (push uri uris))))) + (nreverse uris))) + ;;;###autoload (defun eww (url) "Fetch URL and render the page. If the input doesn't look like an URL or a domain name, the word(s) will be searched for via `eww-search-prefix'." - (interactive "sEnter URL or keywords: ") - (cond ((string-match-p "\\`file://" url)) + (interactive + (let* ((uris (eww-suggested-uris)) + (prompt (concat "Enter URL or keywords" + (if uris (format " (default %s)" (car uris)) "") + ": "))) + (list (read-string prompt nil nil uris)))) + (setq url (string-trim url)) + (cond ((string-match-p "\\`file:/" url)) + ;; Don't mangle file: URLs at all. ((string-match-p "\\`ftp://" url) (user-error "FTP is not supported.")) (t (if (and (= (length (split-string url)) 1) - (or (and (not (string-match-p "\\`[\"\'].*[\"\']\\'" url)) - (> (length (split-string url "\\.")) 1)) - (string-match eww-local-regex url))) + (or (and (not (string-match-p "\\`[\"\'].*[\"\']\\'" url)) + (> (length (split-string url "[.:]")) 1)) + (string-match eww-local-regex url))) (progn (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url) (setq url (concat "http://" url))) @@ -169,7 +267,18 @@ word(s) will be searched for via `eww-search-prefix'." (setq url (concat url "/")))) (setq url (concat eww-search-prefix (replace-regexp-in-string " " "+" url)))))) - (url-retrieve url 'eww-render (list url))) + (if (eq major-mode 'eww-mode) + (when (or (plist-get eww-data :url) + (plist-get eww-data :dom)) + (eww-save-history)) + (eww-setup-buffer) + (plist-put eww-data :url url) + (eww-update-header-line-format) + (let ((inhibit-read-only t)) + (insert (format "Loading %s..." url)) + (goto-char (point-min)))) + (url-retrieve url 'eww-render + (list url nil (current-buffer)))) ;;;###autoload (defalias 'browse-web 'eww) @@ -182,7 +291,14 @@ word(s) will be searched for via `eww-search-prefix'." "/") (expand-file-name file)))) -(defun eww-render (status url &optional point) +;;;###autoload +(defun eww-search-words (&optional beg end) + "Search the web for the text between the point and marker. +See the `eww-search-prefix' variable for the search engine used." + (interactive "r") + (eww (buffer-substring beg end))) + +(defun eww-render (status url &optional point buffer encode) (let ((redirect (plist-get status :redirect))) (when redirect (setq url redirect))) @@ -196,26 +312,31 @@ word(s) will be searched for via `eww-search-prefix'." (or (cdr (assq 'charset (cdr content-type))) (eww-detect-charset (equal (car content-type) "text/html")) - "utf8")))) + "utf-8")))) (data-buffer (current-buffer))) + ;; Save the https peer status. + (with-current-buffer buffer + (plist-put eww-data :peer (plist-get status :peer))) (unwind-protect (progn - (setq eww-current-title "") (cond ((and eww-use-external-browser-for-content-type (string-match-p eww-use-external-browser-for-content-type (car content-type))) (eww-browse-with-external-browser url)) ((equal (car content-type) "text/html") - (eww-display-html charset url nil point)) + (eww-display-html charset url nil point buffer encode)) + ((equal (car content-type) "application/pdf") + (eww-display-pdf)) ((string-match-p "\\`image/" (car content-type)) - (eww-display-image) - (eww-update-header-line-format)) + (eww-display-image buffer)) (t - (eww-display-raw) - (eww-update-header-line-format))) - (setq eww-current-url url - eww-history-position 0)) + (eww-display-raw buffer encode))) + (with-current-buffer buffer + (plist-put eww-data :url url) + (eww-update-header-line-format) + (setq eww-history-position 0) + (run-hooks 'eww-after-render-hook))) (kill-buffer data-buffer)))) (defun eww-parse-headers () @@ -247,139 +368,170 @@ word(s) will be searched for via `eww-search-prefix'." (declare-function libxml-parse-html-region "xml.c" (start end &optional base-url)) -(defun eww-display-html (charset url &optional document point) - (or (fboundp 'libxml-parse-html-region) - (error "This function requires Emacs to be compiled with libxml2")) - (unless (eq charset 'utf8) - (condition-case nil - (decode-coding-region (point) (point-max) charset) - (coding-system-error nil))) +(defun eww-display-html (charset url &optional document point buffer encode) + (unless (fboundp 'libxml-parse-html-region) + (error "This function requires Emacs to be compiled with libxml2")) + (unless (buffer-live-p buffer) + (error "Buffer %s doesn't exist" buffer)) + ;; There should be a better way to abort loading images + ;; asynchronously. + (setq url-queue nil) (let ((document (or document (list 'base (list (cons 'href url)) - (libxml-parse-html-region (point) (point-max)))))) - (setq eww-current-source (buffer-substring (point) (point-max))) - (eww-setup-buffer) - (setq eww-current-dom document) - (let ((inhibit-read-only t) - (after-change-functions nil) - (shr-width nil) - (shr-target-id (url-target (url-generic-parse-url url))) - (shr-external-rendering-functions - '((title . eww-tag-title) - (form . eww-tag-form) - (input . eww-tag-input) - (textarea . eww-tag-textarea) - (body . eww-tag-body) - (select . eww-tag-select) - (link . eww-tag-link) - (a . eww-tag-a)))) - (shr-insert-document document) - (cond - (point - (goto-char point)) - (shr-target-id - (goto-char (point-min)) - (let ((point (next-single-property-change - (point-min) 'shr-target-id))) - (when point - (goto-char point)))) - (t - (goto-char (point-min))))) - (setq eww-current-url url - eww-history-position 0) - (eww-update-header-line-format))) + (progn + (when (or (and encode + (not (eq charset encode))) + (not (eq charset 'utf-8))) + (condition-case nil + (decode-coding-region (point) (point-max) + (or encode charset)) + (coding-system-error nil))) + (libxml-parse-html-region (point) (point-max)))))) + (source (and (null document) + (buffer-substring (point) (point-max))))) + (with-current-buffer buffer + (plist-put eww-data :source source) + (plist-put eww-data :dom document) + (let ((inhibit-read-only t) + (inhibit-modification-hooks t) + (shr-target-id (url-target (url-generic-parse-url url))) + (shr-external-rendering-functions + '((title . eww-tag-title) + (form . eww-tag-form) + (input . eww-tag-input) + (textarea . eww-tag-textarea) + (body . eww-tag-body) + (select . eww-tag-select) + (link . eww-tag-link) + (a . eww-tag-a)))) + (erase-buffer) + (shr-insert-document document) + (cond + (point + (goto-char point)) + (shr-target-id + (goto-char (point-min)) + (let ((point (next-single-property-change + (point-min) 'shr-target-id))) + (when point + (goto-char point)))) + (t + (goto-char (point-min)) + ;; Don't leave point inside forms, because the normal eww + ;; commands aren't available there. + (while (and (not (eobp)) + (get-text-property (point) 'eww-form)) + (forward-line 1))))) + (eww-size-text-inputs)))) -(defun eww-handle-link (cont) - (let* ((rel (assq :rel cont)) - (href (assq :href cont)) - (where (assoc - ;; The text associated with :rel is case-insensitive. - (if rel (downcase (cdr rel))) - '(("next" . eww-next-url) - ;; Texinfo uses "previous", but HTML specifies - ;; "prev", so recognize both. - ("previous" . eww-previous-url) - ("prev" . eww-previous-url) - ;; HTML specifies "start" but also "contents", - ;; and Gtk seems to use "home". Recognize - ;; them all; but store them in different - ;; variables so that we can readily choose the - ;; "best" one. - ("start" . eww-start-url) - ("home" . eww-home-url) - ("contents" . eww-contents-url) - ("up" . eww-up-url))))) +(defun eww-handle-link (dom) + (let* ((rel (dom-attr dom 'rel)) + (href (dom-attr dom 'href)) + (where (assoc + ;; The text associated with :rel is case-insensitive. + (if rel (downcase rel)) + '(("next" . :next) + ;; Texinfo uses "previous", but HTML specifies + ;; "prev", so recognize both. + ("previous" . :previous) + ("prev" . :previous) + ;; HTML specifies "start" but also "contents", + ;; and Gtk seems to use "home". Recognize + ;; them all; but store them in different + ;; variables so that we can readily choose the + ;; "best" one. + ("start" . :start) + ("home" . :home) + ("contents" . :contents) + ("up" . up))))) (and href where - (set (cdr where) (cdr href))))) + (plist-put eww-data (cdr where) href)))) -(defun eww-tag-link (cont) - (eww-handle-link cont) - (shr-generic cont)) +(defun eww-tag-link (dom) + (eww-handle-link dom) + (shr-generic dom)) -(defun eww-tag-a (cont) - (eww-handle-link cont) +(defun eww-tag-a (dom) + (eww-handle-link dom) (let ((start (point))) - (shr-tag-a cont) + (shr-tag-a dom) (put-text-property start (point) 'keymap eww-link-keymap))) (defun eww-update-header-line-format () - (if eww-header-line-format - (setq header-line-format - (replace-regexp-in-string - "%" "%%" - ;; FIXME? Title can be blank. Default to, eg, last component - ;; of url? - (format-spec eww-header-line-format - `((?u . ,eww-current-url) - (?t . ,eww-current-title))))) - (setq header-line-format nil))) + (setq header-line-format + (and eww-header-line-format + (let ((title (plist-get eww-data :title)) + (peer (plist-get eww-data :peer))) + (when (zerop (length title)) + (setq title "[untitled]")) + ;; This connection has is https. + (when peer + (setq title + (propertize title 'face + (if (plist-get peer :warnings) + 'eww-invalid-certificate + 'eww-valid-certificate)))) + (replace-regexp-in-string + "%" "%%" + (format-spec + eww-header-line-format + `((?u . ,(or (plist-get eww-data :url) "")) + (?t . ,title)))))))) -(defun eww-tag-title (cont) - (setq eww-current-title "") - (dolist (sub cont) - (when (eq (car sub) 'text) - (setq eww-current-title (concat eww-current-title (cdr sub))))) +(defun eww-tag-title (dom) + (plist-put eww-data :title + (replace-regexp-in-string + "^ \\| $" "" + (replace-regexp-in-string "[ \t\r\n]+" " " (dom-text dom)))) (eww-update-header-line-format)) -(defun eww-tag-body (cont) +(defun eww-tag-body (dom) (let* ((start (point)) - (fgcolor (cdr (or (assq :fgcolor cont) - (assq :text cont)))) - (bgcolor (cdr (assq :bgcolor cont))) + (fgcolor (or (dom-attr dom 'fgcolor) (dom-attr dom 'text))) + (bgcolor (dom-attr dom 'bgcolor)) (shr-stylesheet (list (cons 'color fgcolor) (cons 'background-color bgcolor)))) - (shr-generic cont) - (eww-colorize-region start (point) fgcolor bgcolor))) + (shr-generic dom) + (shr-colorize-region start (point) fgcolor bgcolor))) -(defun eww-colorize-region (start end fg &optional bg) - (when (or fg bg) - (let ((new-colors (shr-color-check fg bg))) - (when new-colors - (when fg - (add-face-text-property start end - (list :foreground (cadr new-colors)) - t)) - (when bg - (add-face-text-property start end - (list :background (car new-colors)) - t)))))) - -(defun eww-display-raw () +(defun eww-display-raw (buffer &optional encode) (let ((data (buffer-substring (point) (point-max)))) - (eww-setup-buffer) - (let ((inhibit-read-only t)) - (insert data)) - (goto-char (point-min)))) + (unless (buffer-live-p buffer) + (error "Buffer %s doesn't exist" buffer)) + (with-current-buffer buffer + (let ((inhibit-read-only t)) + (erase-buffer) + (insert data) + (unless (eq encode 'utf-8) + (encode-coding-region (point-min) (1+ (length data)) 'utf-8) + (condition-case nil + (decode-coding-region (point-min) (1+ (length data)) encode) + (coding-system-error nil)))) + (goto-char (point-min))))) -(defun eww-display-image () +(defun eww-display-image (buffer) (let ((data (shr-parse-image-data))) - (eww-setup-buffer) - (let ((inhibit-read-only t)) - (shr-put-image data nil)) - (goto-char (point-min)))) + (unless (buffer-live-p buffer) + (error "Buffer %s doesn't exist" buffer)) + (with-current-buffer buffer + (let ((inhibit-read-only t)) + (erase-buffer) + (shr-put-image data nil)) + (goto-char (point-min))))) + +(declare-function mailcap-view-mime "mailcap" (type)) +(defun eww-display-pdf () + (let ((data (buffer-substring (point) (point-max)))) + (switch-to-buffer (get-buffer-create "*eww pdf*")) + (let ((coding-system-for-write 'raw-text) + (inhibit-read-only t)) + (erase-buffer) + (insert data) + (mailcap-view-mime "application/pdf"))) + (goto-char (point-min))) (defun eww-setup-buffer () (switch-to-buffer (get-buffer-create "*eww*")) @@ -387,33 +539,98 @@ word(s) will be searched for via `eww-search-prefix'." (remove-overlays) (erase-buffer)) (unless (eq major-mode 'eww-mode) - (eww-mode)) - (setq-local eww-next-url nil) - (setq-local eww-previous-url nil) - (setq-local eww-up-url nil) - (setq-local eww-home-url nil) - (setq-local eww-start-url nil) - (setq-local eww-contents-url nil)) + (eww-mode))) + +(defun eww-current-url nil + "Return URI of the Web page the current EWW buffer is visiting." + (plist-get eww-data :url)) + +(defun eww-links-at-point (&optional pt) + "Return list of URIs, if any, linked at point." + (remq nil + (list (get-text-property (point) 'shr-url) + (get-text-property (point) 'image-url)))) (defun eww-view-source () + "View the HTML source code of the current page." (interactive) (let ((buf (get-buffer-create "*eww-source*")) - (source eww-current-source)) + (source (plist-get eww-data :source))) (with-current-buffer buf - (delete-region (point-min) (point-max)) - (insert (or eww-current-source "no source")) - (goto-char (point-min)) - (when (fboundp 'html-mode) - (html-mode))) + (let ((inhibit-read-only t)) + (delete-region (point-min) (point-max)) + (insert (or source "no source")) + (goto-char (point-min)) + (when (fboundp 'html-mode) + (html-mode)))) (view-buffer buf))) +(defun eww-readable () + "View the main \"readable\" parts of the current web page. +This command uses heuristics to find the parts of the web page that +contains the main textual portion, leaving out navigation menus and +the like." + (interactive) + (let* ((old-data eww-data) + (dom (with-temp-buffer + (insert (plist-get old-data :source)) + (condition-case nil + (decode-coding-region (point-min) (point-max) 'utf-8) + (coding-system-error nil)) + (libxml-parse-html-region (point-min) (point-max))))) + (eww-score-readability dom) + (eww-save-history) + (eww-display-html nil nil + (eww-highest-readability dom) + nil (current-buffer)) + (dolist (elem '(:source :url :title :next :previous :up)) + (plist-put eww-data elem (plist-get old-data elem))) + (eww-update-header-line-format))) + +(defun eww-score-readability (node) + (let ((score -1)) + (cond + ((memq (dom-tag node) '(script head comment)) + (setq score -2)) + ((eq (dom-tag node) 'meta) + (setq score -1)) + ((eq (dom-tag node) 'img) + (setq score 2)) + ((eq (dom-tag node) 'a) + (setq score (- (length (split-string (dom-text node)))))) + (t + (dolist (elem (dom-children node)) + (if (stringp elem) + (setq score (+ score (length (split-string elem)))) + (setq score (+ score + (or (cdr (assoc :eww-readability-score (cdr elem))) + (eww-score-readability elem)))))))) + ;; Cache the score of the node to avoid recomputing all the time. + (dom-set-attribute node :eww-readability-score score) + score)) + +(defun eww-highest-readability (node) + (let ((result node) + highest) + (dolist (elem (dom-non-text-children node)) + (when (> (or (dom-attr + (setq highest (eww-highest-readability elem)) + :eww-readability-score) + most-negative-fixnum) + (or (dom-attr result :eww-readability-score) + most-negative-fixnum)) + (setq result highest))) + result)) + (defvar eww-mode-map (let ((map (make-sparse-keymap))) (suppress-keymap map) (define-key map "q" 'quit-window) (define-key map "g" 'eww-reload) + (define-key map "G" 'eww) (define-key map [?\t] 'shr-next-link) (define-key map [?\M-\t] 'shr-previous-link) + (define-key map [backtab] 'shr-previous-link) (define-key map [delete] 'scroll-down-command) (define-key map [?\S-\ ] 'scroll-down-command) (define-key map "\177" 'scroll-down-command) @@ -429,7 +646,10 @@ word(s) will be searched for via `eww-search-prefix'." (define-key map "w" 'eww-copy-page-url) (define-key map "C" 'url-cookie-list) (define-key map "v" 'eww-view-source) + (define-key map "R" 'eww-readable) (define-key map "H" 'eww-list-histories) + (define-key map "E" 'eww-set-character-encoding) + (define-key map "S" 'eww-list-buffers) (define-key map "b" 'eww-add-bookmark) (define-key map "B" 'eww-list-bookmarks) @@ -438,7 +658,7 @@ word(s) will be searched for via `eww-search-prefix'." (easy-menu-define nil map "" '("Eww" - ["Exit" eww-quit t] + ["Exit" quit-window t] ["Close browser" quit-window t] ["Reload" eww-reload t] ["Back to previous page" eww-back-url @@ -450,15 +670,17 @@ word(s) will be searched for via `eww-search-prefix'." ["View page source" eww-view-source] ["Copy page URL" eww-copy-page-url t] ["List histories" eww-list-histories t] + ["List buffers" eww-list-buffers t] ["Add bookmark" eww-add-bookmark t] ["List bookmarks" eww-list-bookmarks t] - ["List cookies" url-cookie-list t])) + ["List cookies" url-cookie-list t] + ["Character Encoding" eww-set-character-encoding])) map)) (defvar eww-tool-bar-map (let ((map (make-sparse-keymap))) (dolist (tool-bar-item - '((eww-quit . "close") + '((quit-window . "close") (eww-reload . "refresh") (eww-back-url . "left-arrow") (eww-forward-url . "right-arrow") @@ -474,26 +696,23 @@ word(s) will be searched for via `eww-search-prefix'." "Mode for browsing the web. \\{eww-mode-map}" - ;; FIXME? This seems a strange default. - (setq-local eww-current-url 'author) - (setq-local eww-current-dom nil) - (setq-local eww-current-source nil) - (setq-local eww-current-title "") + (setq-local eww-data (list :title "")) (setq-local browse-url-browser-function 'eww-browse-url) (setq-local after-change-functions 'eww-process-text-input) (setq-local eww-history nil) (setq-local eww-history-position 0) (when (boundp 'tool-bar-map) (setq-local tool-bar-map eww-tool-bar-map)) + ;; desktop support + (setq-local desktop-save-buffer 'eww-desktop-misc-data) (buffer-disable-undo) - ;;(setq buffer-read-only t) - ) + (setq buffer-read-only t)) ;;;###autoload -(defun eww-browse-url (url &optional _new-window) - (when (and (equal major-mode 'eww-mode) - eww-current-url) - (eww-save-history)) +(defun eww-browse-url (url &optional new-window) + (cond (new-window + (switch-to-buffer (generate-new-buffer "*eww*")) + (eww-mode))) (eww url)) (defun eww-back-url () @@ -514,23 +733,25 @@ word(s) will be searched for via `eww-search-prefix'." (eww-restore-history (elt eww-history (1- eww-history-position)))) (defun eww-restore-history (elem) - (let ((inhibit-read-only t)) - (erase-buffer) - (insert (plist-get elem :text)) - (setq eww-current-source (plist-get elem :source)) - (setq eww-current-dom (plist-get elem :dom)) - (goto-char (plist-get elem :point)) - (setq eww-current-url (plist-get elem :url) - eww-current-title (plist-get elem :title)) - (eww-update-header-line-format))) + (let ((inhibit-read-only t) + (inhibit-modification-hooks t) + (text (plist-get elem :text))) + (setq eww-data elem) + (if (null text) + (eww-reload) ; FIXME: restore :point? + (erase-buffer) + (insert text) + (goto-char (plist-get elem :point)) + (eww-update-header-line-format)))) (defun eww-next-url () "Go to the page marked `next'. A page is marked `next' if rel=\"next\" appears in a or tag." (interactive) - (if eww-next-url - (eww-browse-url (shr-expand-url eww-next-url eww-current-url)) + (if (plist-get eww-data :next) + (eww-browse-url (shr-expand-url (plist-get eww-data :next) + (plist-get eww-data :url))) (user-error "No `next' on this page"))) (defun eww-previous-url () @@ -538,8 +759,9 @@ or tag." A page is marked `previous' if rel=\"previous\" appears in a or tag." (interactive) - (if eww-previous-url - (eww-browse-url (shr-expand-url eww-previous-url eww-current-url)) + (if (plist-get eww-data :previous) + (eww-browse-url (shr-expand-url (plist-get eww-data :previous) + (plist-get eww-data :url))) (user-error "No `previous' on this page"))) (defun eww-up-url () @@ -547,8 +769,9 @@ or tag." A page is marked `up' if rel=\"up\" appears in a or tag." (interactive) - (if eww-up-url - (eww-browse-url (shr-expand-url eww-up-url eww-current-url)) + (if (plist-get eww-data :up) + (eww-browse-url (shr-expand-url (plist-get eww-data :up) + (plist-get eww-data :url))) (user-error "No `up' on this page"))) (defun eww-top-url () @@ -556,18 +779,26 @@ or tag." A page is marked `top' if rel=\"start\", rel=\"home\", or rel=\"contents\" appears in a or tag." (interactive) - (let ((best-url (or eww-start-url - eww-contents-url - eww-home-url))) + (let ((best-url (or (plist-get eww-data :start) + (plist-get eww-data :contents) + (plist-get eww-data :home)))) (if best-url - (eww-browse-url (shr-expand-url best-url eww-current-url)) + (eww-browse-url (shr-expand-url best-url (plist-get eww-data :url))) (user-error "No `top' for this page")))) -(defun eww-reload () - "Reload the current page." - (interactive) - (url-retrieve eww-current-url 'eww-render - (list eww-current-url (point)))) +(defun eww-reload (&optional local encode) + "Reload the current page. +If LOCAL (the command prefix), don't reload the page from the +network, but just re-display the HTML already fetched." + (interactive "P") + (let ((url (plist-get eww-data :url))) + (if local + (if (null (plist-get eww-data :dom)) + (error "No current HTML data") + (eww-display-html 'utf-8 url (plist-get eww-data :dom) + (point) (current-buffer))) + (url-retrieve url 'eww-render + (list url (point) (current-buffer) encode))))) ;; Form support. @@ -579,6 +810,12 @@ appears in a or tag." (define-key map [(control c) (control c)] 'eww-submit) map)) +(defvar eww-submit-file + (let ((map (make-sparse-keymap))) + (define-key map "\r" 'eww-select-file) + (define-key map [(control c) (control c)] 'eww-submit) + map)) + (defvar eww-checkbox-map (let ((map (make-sparse-keymap))) (define-key map " " 'eww-toggle-checkbox) @@ -643,13 +880,12 @@ appears in a or tag." (1- (next-single-property-change (point) 'eww-form nil (point-max)))) -(defun eww-tag-form (cont) - (let ((eww-form - (list (assq :method cont) - (assq :action cont))) +(defun eww-tag-form (dom) + (let ((eww-form (list (cons :method (dom-attr dom 'method)) + (cons :action (dom-attr dom 'action)))) (start (point))) (shr-ensure-paragraph) - (shr-generic cont) + (shr-generic dom) (unless (bolp) (insert "\n")) (insert "\n") @@ -657,9 +893,9 @@ appears in a or tag." (put-text-property start (1+ start) 'eww-form eww-form)))) -(defun eww-form-submit (cont) +(defun eww-form-submit (dom) (let ((start (point)) - (value (cdr (assq :value cont)))) + (value (dom-attr dom 'value))) (setq value (if (zerop (length value)) "Submit" @@ -670,48 +906,74 @@ appears in a or tag." (list :eww-form eww-form :value value :type "submit" - :name (cdr (assq :name cont)))) + :name (dom-attr dom 'name))) (put-text-property start (point) 'keymap eww-submit-map) (insert " "))) -(defun eww-form-checkbox (cont) +(defun eww-form-checkbox (dom) (let ((start (point))) - (if (cdr (assq :checked cont)) + (if (dom-attr dom 'checked) (insert eww-form-checkbox-selected-symbol) (insert eww-form-checkbox-symbol)) (add-face-text-property start (point) 'eww-form-checkbox) (put-text-property start (point) 'eww-form (list :eww-form eww-form - :value (cdr (assq :value cont)) - :type (downcase (cdr (assq :type cont))) - :checked (cdr (assq :checked cont)) - :name (cdr (assq :name cont)))) + :value (dom-attr dom 'value) + :type (downcase (dom-attr dom 'type)) + :checked (dom-attr dom 'checked) + :name (dom-attr dom 'name))) (put-text-property start (point) 'keymap eww-checkbox-map) (insert " "))) -(defun eww-form-text (cont) +(defun eww-form-file (dom) (let ((start (point)) - (type (downcase (or (cdr (assq :type cont)) - "text"))) - (value (or (cdr (assq :value cont)) "")) - (width (string-to-number - (or (cdr (assq :size cont)) - "40"))) - (readonly-property (if (or (cdr (assq :disabled cont)) - (cdr (assq :readonly cont))) + (value (dom-attr dom 'value))) + (setq value + (if (zerop (length value)) + " No file selected" + value)) + (insert "Browse") + (add-face-text-property start (point) 'eww-form-file) + (insert value) + (put-text-property start (point) 'eww-form + (list :eww-form eww-form + :value (dom-attr dom 'value) + :type (downcase (dom-attr dom 'type)) + :name (dom-attr dom 'name))) + (put-text-property start (point) 'keymap eww-submit-file) + (insert " "))) + +(defun eww-select-file () + "Change the value of the upload file menu under point." + (interactive) + (let* ((input (get-text-property (point) 'eww-form))) + (let ((filename + (let ((insert-default-directory t)) + (read-file-name "filename: ")))) + (eww-update-field filename (length "Browse")) + (plist-put input :filename filename)))) + +(defun eww-form-text (dom) + (let ((start (point)) + (type (downcase (or (dom-attr dom 'type) "text"))) + (value (or (dom-attr dom 'value) "")) + (width (string-to-number (or (dom-attr dom 'size) "40"))) + (readonly-property (if (or (dom-attr dom 'disabled) + (dom-attr dom 'readonly)) 'read-only 'inhibit-read-only))) (insert value) (when (< (length value) width) (insert (make-string (- width (length value)) ? ))) (put-text-property start (point) 'face 'eww-form-text) + (put-text-property start (point) 'inhibit-read-only t) (put-text-property start (point) 'local-map eww-text-map) (put-text-property start (point) readonly-property t) (put-text-property start (point) 'eww-form (list :eww-form eww-form :value value :type type - :name (cdr (assq :name cont)))) + :name (dom-attr dom 'name))) (insert " "))) (defconst eww-text-input-types '("text" "password" "textarea" @@ -721,57 +983,64 @@ appears in a or tag." "List of input types which represent a text input. See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") -(defun eww-process-text-input (beg end length) - (let* ((form (get-text-property (min (1+ end) (point-max)) 'eww-form)) - (properties (text-properties-at end)) - (type (plist-get form :type))) - (when (and form - (member type eww-text-input-types)) - (cond - ((zerop length) - ;; Delete some space at the end. - (save-excursion - (goto-char - (if (equal type "textarea") - (1- (line-end-position)) - (eww-end-of-field))) - (let ((new (- end beg))) - (while (and (> new 0) +(defun eww-process-text-input (beg end replace-length) + (when-let (pos (and (< (1+ end) (point-max)) + (> (1- end) (point-min)) + (cond + ((get-text-property (1+ end) 'eww-form) + (1+ end)) + ((get-text-property (1- end) 'eww-form) + (1- end))))) + (let* ((form (get-text-property pos 'eww-form)) + (properties (text-properties-at pos)) + (inhibit-read-only t) + (length (- end beg replace-length)) + (type (plist-get form :type))) + (when (and form + (member type eww-text-input-types)) + (cond + ((> length 0) + ;; Delete some space at the end. + (save-excursion + (goto-char + (if (equal type "textarea") + (1- (line-end-position)) + (eww-end-of-field))) + (while (and (> length 0) (eql (following-char) ? )) - (delete-region (point) (1+ (point))) - (setq new (1- new)))) - (set-text-properties beg end properties))) - ((> length 0) - ;; Add padding. - (save-excursion - (goto-char - (if (equal type "textarea") - (1- (line-end-position)) - (eww-end-of-field))) - (let ((start (point))) - (insert (make-string length ? )) - (set-text-properties start (point) properties))))) - (let ((value (buffer-substring-no-properties - (eww-beginning-of-field) - (eww-end-of-field)))) - (when (string-match " +\\'" value) - (setq value (substring value 0 (match-beginning 0)))) - (plist-put form :value value) - (when (equal type "password") - ;; Display passwords as asterisks. - (let ((start (eww-beginning-of-field))) - (put-text-property start (+ start (length value)) - 'display (make-string (length value) ?*)))))))) + (delete-region (1- (point)) (point)) + (cl-decf length)))) + ((< length 0) + ;; Add padding. + (save-excursion + (goto-char (1- end)) + (goto-char + (if (equal type "textarea") + (1- (line-end-position)) + (1+ (eww-end-of-field)))) + (let ((start (point))) + (insert (make-string (abs length) ? )) + (set-text-properties start (point) properties)) + (goto-char (1- end))))) + (set-text-properties (plist-get form :start) (plist-get form :end) + properties) + (let ((value (buffer-substring-no-properties + (eww-beginning-of-field) + (eww-end-of-field)))) + (when (string-match " +\\'" value) + (setq value (substring value 0 (match-beginning 0)))) + (plist-put form :value value) + (when (equal type "password") + ;; Display passwords as asterisks. + (let ((start (eww-beginning-of-field))) + (put-text-property start (+ start (length value)) + 'display (make-string (length value) ?*))))))))) -(defun eww-tag-textarea (cont) +(defun eww-tag-textarea (dom) (let ((start (point)) - (value (or (cdr (assq :value cont)) "")) - (lines (string-to-number - (or (cdr (assq :rows cont)) - "10"))) - (width (string-to-number - (or (cdr (assq :cols cont)) - "10"))) + (value (or (dom-attr dom 'value) "")) + (lines (string-to-number (or (dom-attr dom 'rows) "10"))) + (width (string-to-number (or (dom-attr dom 'cols) "10"))) end) (shr-ensure-newline) (insert value) @@ -788,6 +1057,7 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") (insert (make-string pad ? )))) (add-face-text-property (line-beginning-position) (point) 'eww-form-textarea) + (put-text-property (line-beginning-position) (point) 'inhibit-read-only t) (put-text-property (line-beginning-position) (point) 'local-map eww-textarea-map) (forward-line 1)) @@ -795,21 +1065,22 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") (list :eww-form eww-form :value value :type "textarea" - :name (cdr (assq :name cont)))))) + :name (dom-attr dom 'name))))) -(defun eww-tag-input (cont) - (let ((type (downcase (or (cdr (assq :type cont)) - "text"))) +(defun eww-tag-input (dom) + (let ((type (downcase (or (dom-attr dom 'type) "text"))) (start (point))) (cond ((or (equal type "checkbox") (equal type "radio")) - (eww-form-checkbox cont)) + (eww-form-checkbox dom)) + ((equal type "file") + (eww-form-file dom)) ((equal type "submit") - (eww-form-submit cont)) + (eww-form-submit dom)) ((equal type "hidden") (let ((form eww-form) - (name (cdr (assq :name cont)))) + (name (dom-attr dom 'name))) ;; Don't add elements repeatedly. (while (and form (or (not (consp (car form))) @@ -821,34 +1092,33 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") (nconc eww-form (list (list 'hidden :name name - :value (cdr (assq :value cont)))))))) + :value (dom-attr dom 'value))))))) (t - (eww-form-text cont))) + (eww-form-text dom))) (unless (= start (point)) (put-text-property start (1+ start) 'help-echo "Input field")))) -(defun eww-tag-select (cont) +(defun eww-tag-select (dom) (shr-ensure-paragraph) - (let ((menu (list :name (cdr (assq :name cont)) + (let ((menu (list :name (dom-attr dom 'name) :eww-form eww-form)) (options nil) (start (point)) (max 0) opelem) - (if (eq (car (car cont)) 'optgroup) - (dolist (groupelem cont) - (unless (cdr (assq :disabled (cdr groupelem))) - (setq opelem (append opelem (cdr (cdr groupelem)))))) - (setq opelem cont)) + (if (eq (dom-tag dom) 'optgroup) + (dolist (groupelem (dom-children dom)) + (unless (dom-attr groupelem 'disabled) + (setq opelem (append opelem (list groupelem))))) + (setq opelem (list dom))) (dolist (elem opelem) - (when (eq (car elem) 'option) - (when (cdr (assq :selected (cdr elem))) - (nconc menu (list :value - (cdr (assq :value (cdr elem)))))) - (let ((display (or (cdr (assq 'text (cdr elem))) ""))) + (when (eq (dom-tag elem) 'option) + (when (dom-attr elem 'selected) + (nconc menu (list :value (dom-attr elem 'value)))) + (let ((display (dom-text elem))) (setq max (max max (length display))) (push (list 'item - :value (cdr (assq :value (cdr elem))) + :value (dom-attr elem 'value) :display display) options)))) (when options @@ -897,14 +1167,17 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") (goto-char (eww-update-field display)))) -(defun eww-update-field (string) +(defun eww-update-field (string &optional offset) + (if (not offset) (setq offset 0)) (let ((properties (text-properties-at (point))) - (start (eww-beginning-of-field)) - (end (1+ (eww-end-of-field)))) - (delete-region start end) + (start (+ (eww-beginning-of-field) offset)) + (current-end (1+ (eww-end-of-field))) + (new-end (1+ (+ (eww-beginning-of-field) (length string))))) + (delete-region start current-end) + (forward-char offset) (insert string - (make-string (- (- end start) (length string)) ? )) - (set-text-properties start end properties) + (make-string (- (- (+ new-end offset) start) (length string)) ? )) + (if (= 0 offset) (set-text-properties start new-end properties)) start)) (defun eww-toggle-checkbox () @@ -949,6 +1222,18 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") (setq start (next-single-property-change start 'eww-form)))) (nreverse inputs))) +(defun eww-size-text-inputs () + (let ((start (point-min))) + (while (and start + (< start (point-max))) + (when (or (get-text-property start 'eww-form) + (setq start (next-single-property-change start 'eww-form))) + (let ((props (get-text-property start 'eww-form))) + (plist-put props :start start) + (setq start (next-single-property-change + start 'eww-form nil (point-max))) + (plist-put props :end start)))))) + (defun eww-input-value (input) (let ((type (plist-get input :type)) (value (plist-get input :value))) @@ -972,8 +1257,8 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") (form (plist-get this-input :eww-form)) values next-submit) (dolist (elem (sort (eww-inputs form) - (lambda (o1 o2) - (< (car o1) (car o2))))) + (lambda (o1 o2) + (< (car o1) (car o2))))) (let* ((input (cdr elem)) (input-start (car elem)) (name (plist-get input :name))) @@ -983,6 +1268,16 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") (when (plist-get input :checked) (push (cons name (plist-get input :value)) values))) + ((equal (plist-get input :type) "file") + (push (cons "file" + (list (cons "filedata" + (with-temp-buffer + (insert-file-contents + (plist-get input :filename)) + (buffer-string))) + (cons "name" (plist-get input :name)) + (cons "filename" (plist-get input :filename)))) + values)) ((equal (plist-get input :type) "submit") ;; We want the values from buttons if we hit a button if ;; we hit enter on it, or if it's the first button after @@ -1001,22 +1296,42 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") (when (and (consp elem) (eq (car elem) 'hidden)) (push (cons (plist-get (cdr elem) :name) - (plist-get (cdr elem) :value)) + (or (plist-get (cdr elem) :value) "")) values))) (if (and (stringp (cdr (assq :method form))) (equal (downcase (cdr (assq :method form))) "post")) - (let ((url-request-method "POST") - (url-request-extra-headers - '(("Content-Type" . "application/x-www-form-urlencoded"))) - (url-request-data (mm-url-encode-www-form-urlencoded values))) - (eww-browse-url (shr-expand-url (cdr (assq :action form)) - eww-current-url))) + (let ((mtype)) + (dolist (x values mtype) + (if (equal (car x) "file") + (progn + (setq mtype "multipart/form-data")))) + (cond ((equal mtype "multipart/form-data") + (let ((boundary (mml-compute-boundary '()))) + (let ((url-request-method "POST") + (url-request-extra-headers + (list (cons "Content-Type" + (concat "multipart/form-data; boundary=" + boundary)))) + (url-request-data + (mm-url-encode-multipart-form-data values boundary))) + (eww-browse-url (shr-expand-url + (cdr (assq :action form)) + (plist-get eww-data :url)))))) + (t + (let ((url-request-method "POST") + (url-request-extra-headers + '(("Content-Type" . + "application/x-www-form-urlencoded"))) + (url-request-data + (mm-url-encode-www-form-urlencoded values))) + (eww-browse-url (shr-expand-url + (cdr (assq :action form)) + (plist-get eww-data :url))))))) (eww-browse-url (concat (if (cdr (assq :action form)) - (shr-expand-url (cdr (assq :action form)) - eww-current-url) - eww-current-url) + (shr-expand-url (cdr (assq :action form)) (plist-get eww-data :url)) + (plist-get eww-data :url)) "?" (mm-url-encode-www-form-urlencoded values)))))) @@ -1024,11 +1339,12 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.") "Browse the current URL with an external browser. The browser to used is specified by the `shr-external-browser' variable." (interactive) - (funcall shr-external-browser (or url eww-current-url))) + (funcall shr-external-browser (or url (plist-get eww-data :url)))) (defun eww-follow-link (&optional external mouse-event) "Browse the URL under point. -If EXTERNAL, browse the URL using `shr-external-browser'." +If EXTERNAL is single prefix, browse the URL using `shr-external-browser'. +If EXTERNAL is double prefix, browse in new buffer." (interactive (list current-prefix-arg last-nonmenu-event)) (mouse-set-point mouse-event) (let ((url (get-text-property (point) 'shr-url))) @@ -1037,15 +1353,16 @@ If EXTERNAL, browse the URL using `shr-external-browser'." (message "No link under point")) ((string-match "^mailto:" url) (browse-url-mail url)) - (external + ((and (consp external) (<= (car external) 4)) (funcall shr-external-browser url)) ;; This is a #target url in the same page as the current one. ((and (url-target (url-generic-parse-url url)) - (eww-same-page-p url eww-current-url)) - (eww-save-history) - (eww-display-html 'utf8 url eww-current-dom)) + (eww-same-page-p url (plist-get eww-data :url))) + (let ((dom (plist-get eww-data :dom))) + (eww-save-history) + (eww-display-html 'utf-8 url dom nil (current-buffer)))) (t - (eww-browse-url url))))) + (eww-browse-url url external))))) (defun eww-same-page-p (url1 url2) "Return non-nil if both URLs represent the same page. @@ -1057,9 +1374,10 @@ Differences in #targets are ignored." (equal (url-recreate-url obj1) (url-recreate-url obj2)))) (defun eww-copy-page-url () + "Copy the URL of the current page into the kill ring." (interactive) - (message "%s" eww-current-url) - (kill-new eww-current-url)) + (message "%s" (plist-get eww-data :url)) + (kill-new (plist-get eww-data :url))) (defun eww-download () "Download URL under point to `eww-download-directory'." @@ -1075,7 +1393,9 @@ Differences in #targets are ignored." (path (car (url-path-and-query obj))) (file (eww-make-unique-file-name (file-name-nondirectory path) eww-download-directory))) - (write-file file) + (goto-char (point-min)) + (re-search-forward "\r?\n\r?\n") + (write-region (point) (point-max) file) (message "Saved %s" file)))) (defun eww-make-unique-file-name (file directory) @@ -1094,6 +1414,13 @@ Differences in #targets are ignored." (setq count (1+ count))) (expand-file-name file directory))) +(defun eww-set-character-encoding (charset) + "Set character encoding." + (interactive "zUse character set (default utf-8): ") + (if (null charset) + (eww-reload nil 'utf-8) + (eww-reload nil charset))) + ;;; Bookmarks code (defvar eww-bookmarks nil) @@ -1103,33 +1430,35 @@ Differences in #targets are ignored." (interactive) (eww-read-bookmarks) (dolist (bookmark eww-bookmarks) - (when (equal eww-current-url - (plist-get bookmark :url)) + (when (equal (plist-get eww-data :url) (plist-get bookmark :url)) (user-error "Already bookmarked"))) (if (y-or-n-p "bookmark this page? ") (progn - (let ((title (replace-regexp-in-string "[\n\t\r]" " " eww-current-title))) + (let ((title (replace-regexp-in-string "[\n\t\r]" " " + (plist-get eww-data :title)))) (setq title (replace-regexp-in-string "\\` +\\| +\\'" "" title)) - (push (list :url eww-current-url + (push (list :url (plist-get eww-data :url) :title title :time (current-time-string)) eww-bookmarks)) (eww-write-bookmarks) - (message "Bookmarked %s (%s)" eww-current-url eww-current-title)))) + (message "Bookmarked %s (%s)" (plist-get eww-data :url) + (plist-get eww-data :title))))) (defun eww-write-bookmarks () - (with-temp-file (expand-file-name "eww-bookmarks" user-emacs-directory) + (with-temp-file (expand-file-name "eww-bookmarks" eww-bookmarks-directory) (insert ";; Auto-generated file; don't edit\n") (pp eww-bookmarks (current-buffer)))) (defun eww-read-bookmarks () - (let ((file (expand-file-name "eww-bookmarks" user-emacs-directory))) + (let ((file (expand-file-name "eww-bookmarks" eww-bookmarks-directory))) (setq eww-bookmarks (unless (zerop (or (nth 7 (file-attributes file)) 0)) (with-temp-buffer (insert-file-contents file) (read (current-buffer))))))) +;;;###autoload (defun eww-list-bookmarks () "Display the bookmarks." (interactive) @@ -1142,19 +1471,18 @@ Differences in #targets are ignored." (user-error "No bookmarks are defined")) (set-buffer (get-buffer-create "*eww bookmarks*")) (eww-bookmark-mode) - (let ((format "%-40s %s") - (inhibit-read-only t) - start url) + (let* ((width (/ (window-width) 2)) + (format (format "%%-%ds %%s" width)) + (inhibit-read-only t) + start title) (erase-buffer) - (setq header-line-format (concat " " (format format "URL" "Title"))) + (setq header-line-format (concat " " (format format "Title" "URL"))) (dolist (bookmark eww-bookmarks) - (setq start (point)) - (setq url (plist-get bookmark :url)) - (when (> (length url) 40) - (setq url (substring url 0 40))) - (insert (format format url - (plist-get bookmark :title)) - "\n") + (setq start (point) + title (plist-get bookmark :title)) + (when (> (length title) width) + (setq title (substring title 0 width))) + (insert (format format title (plist-get bookmark :url)) "\n") (put-text-property start (1+ start) 'eww-bookmark bookmark)) (goto-char (point-min)))) @@ -1272,22 +1600,28 @@ Differences in #targets are ignored." ;;; History code (defun eww-save-history () - (push (list :url eww-current-url - :title eww-current-title - :point (point) - :dom eww-current-dom - :source eww-current-source - :text (buffer-string)) - eww-history)) + (plist-put eww-data :point (point)) + (plist-put eww-data :text (buffer-string)) + (push eww-data eww-history) + (setq eww-data (list :title "")) + ;; Don't let the history grow infinitely. We store quite a lot of + ;; data per page. + (when-let (tail (and eww-history-limit + (nthcdr eww-history-limit eww-history))) + (setcdr tail nil))) + +(defvar eww-current-buffer) (defun eww-list-histories () "List the eww-histories." (interactive) (when (null eww-history) (error "No eww-histories are defined")) - (let ((eww-history-trans eww-history)) + (let ((eww-history-trans eww-history) + (buffer (current-buffer))) (set-buffer (get-buffer-create "*eww history*")) (eww-history-mode) + (setq-local eww-current-buffer buffer) (let ((inhibit-read-only t) (domain-length 0) (title-length 0) @@ -1316,7 +1650,10 @@ Differences in #targets are ignored." (let ((history (get-text-property (line-beginning-position) 'eww-history))) (unless history (error "No history on the current line")) - (quit-window) + (let ((buffer eww-current-buffer)) + (quit-window) + (when buffer + (switch-to-buffer buffer))) (eww-restore-history history))) (defvar eww-history-mode-map @@ -1343,6 +1680,210 @@ Differences in #targets are ignored." (setq buffer-read-only t truncate-lines t)) +;;; eww buffers list + +(defun eww-list-buffers () + "Enlist eww buffers." + (interactive) + (let (buffers-info + (current (current-buffer))) + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (when (derived-mode-p 'eww-mode) + (push (vector buffer (plist-get eww-data :title) + (plist-get eww-data :url)) + buffers-info)))) + (unless buffers-info + (error "No eww buffers")) + (setq buffers-info (nreverse buffers-info)) ;more recent on top + (set-buffer (get-buffer-create "*eww buffers*")) + (eww-buffers-mode) + (let ((inhibit-read-only t) + (domain-length 0) + (title-length 0) + url title format start) + (erase-buffer) + (dolist (buffer-info buffers-info) + (setq title-length (max title-length + (length (elt buffer-info 1))) + domain-length (max domain-length + (length (elt buffer-info 2))))) + (setq format (format "%%-%ds %%-%ds" title-length domain-length) + header-line-format + (concat " " (format format "Title" "URL"))) + (let ((line 0) + (current-buffer-line 1)) + (dolist (buffer-info buffers-info) + (setq start (point) + title (elt buffer-info 1) + url (elt buffer-info 2) + line (1+ line)) + (insert (format format title url)) + (insert "\n") + (let ((buffer (elt buffer-info 0))) + (put-text-property start (1+ start) 'eww-buffer + buffer) + (when (eq current buffer) + (setq current-buffer-line line)))) + (goto-char (point-min)) + (forward-line (1- current-buffer-line))))) + (pop-to-buffer "*eww buffers*")) + +(defun eww-buffer-select () + "Switch to eww buffer." + (interactive) + (let ((buffer (get-text-property (line-beginning-position) + 'eww-buffer))) + (unless buffer + (error "No buffer on current line")) + (quit-window) + (switch-to-buffer buffer))) + +(defun eww-buffer-show () + "Display buffer under point in eww buffer list." + (let ((buffer (get-text-property (line-beginning-position) + 'eww-buffer))) + (unless buffer + (error "No buffer on current line")) + (other-window -1) + (switch-to-buffer buffer) + (other-window 1))) + +(defun eww-buffer-show-next () + "Move to next eww buffer in the list and display it." + (interactive) + (forward-line) + (when (eobp) + (goto-char (point-min))) + (eww-buffer-show)) + +(defun eww-buffer-show-previous () + "Move to previous eww buffer in the list and display it." + (interactive) + (beginning-of-line) + (when (bobp) + (goto-char (point-max))) + (forward-line -1) + (eww-buffer-show)) + +(defun eww-buffer-kill () + "Kill buffer from eww list." + (interactive) + (let* ((start (line-beginning-position)) + (buffer (get-text-property start 'eww-buffer)) + (inhibit-read-only t)) + (unless buffer + (user-error "No buffer on the current line")) + (kill-buffer buffer) + (forward-line 1) + (delete-region start (point))) + (when (eobp) + (forward-line -1)) + (eww-buffer-show)) + +(defvar eww-buffers-mode-map + (let ((map (make-sparse-keymap))) + (suppress-keymap map) + (define-key map "q" 'quit-window) + (define-key map [(control k)] 'eww-buffer-kill) + (define-key map "\r" 'eww-buffer-select) + (define-key map "n" 'eww-buffer-show-next) + (define-key map "p" 'eww-buffer-show-previous) + + (easy-menu-define nil map + "Menu for `eww-buffers-mode-map'." + '("Eww Buffers" + ["Exit" quit-window t] + ["Select" eww-buffer-select + :active (get-text-property (line-beginning-position) 'eww-buffer)] + ["Kill" eww-buffer-kill + :active (get-text-property (line-beginning-position) 'eww-buffer)])) + map)) + +(define-derived-mode eww-buffers-mode nil "eww buffers" + "Mode for listing buffers. + +\\{eww-buffers-mode-map}" + (buffer-disable-undo) + (setq buffer-read-only t + truncate-lines t)) + +;;; Desktop support + +(defvar eww-desktop-data-save + '(:url :title :point) + "List of `eww-data' properties to preserve in the desktop file. +Also used when saving `eww-history'.") + +(defun eww-desktop-data-1 (alist) + (let ((acc nil) + (tail alist)) + (while tail + (let ((k (car tail)) + (v (cadr tail))) + (when (memq k eww-desktop-data-save) + (setq acc (cons k (cons v acc))))) + (setq tail (cddr tail))) + acc)) + +(defun eww-desktop-history-duplicate (a b) + (let ((tail a) (r t)) + (while tail + (if (or (memq (car tail) '(:point)) ; ignore :point + (equal (cadr tail) + (plist-get b (car tail)))) + (setq tail (cddr tail)) + (setq tail nil + r nil))) + ;; . + r)) + +(defun eww-desktop-misc-data (directory) + "Return a property list with data used to restore eww buffers. +This list will contain, as :history, the list, whose first element is +the value of `eww-data', and the tail is `eww-history'. + +If `eww-desktop-remove-duplicates' is non-nil, duplicate +entries (if any) will be removed from the list. + +Only the properties listed in `eww-desktop-data-save' are included. +Generally, the list should not include the (usually overly large) +:dom, :source and :text properties." + (let ((history (mapcar 'eww-desktop-data-1 + (cons eww-data eww-history)))) + (list :history (if eww-desktop-remove-duplicates + (cl-remove-duplicates + history :test 'eww-desktop-history-duplicate) + history)))) + +(defun eww-restore-desktop (file-name buffer-name misc-data) + "Restore an eww buffer from its desktop file record. +If `eww-restore-desktop' is t or 'auto, this function will also +initiate the retrieval of the respective URI in the background. +Otherwise, the restored buffer will contain a prompt to do so by using +\\[eww-reload]." + (with-current-buffer (get-buffer-create buffer-name) + (eww-mode) + ;; NB: eww-history, eww-data are buffer-local per (eww-mode) + (setq eww-history (cdr (plist-get misc-data :history)) + eww-data (or (car (plist-get misc-data :history)) + ;; backwards compatibility + (list :url (plist-get misc-data :uri)))) + (unless file-name + (when (plist-get eww-data :url) + (case eww-restore-desktop + ((t auto) (eww (plist-get eww-data :url))) + ((zerop (buffer-size)) + (insert (substitute-command-keys + eww-restore-reload-prompt)))))) + ;; . + (current-buffer))) + +(add-to-list 'desktop-locals-to-save + 'eww-history-position) +(add-to-list 'desktop-buffer-mode-handlers + '(eww-mode . eww-restore-desktop)) + (provide 'eww) ;;; eww.el ends here diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el index 0c650f38d95..200d355f6fd 100644 --- a/lisp/net/gnutls.el +++ b/lisp/net/gnutls.el @@ -41,7 +41,7 @@ "Emacs interface to the GnuTLS library." :version "24.1" :prefix "gnutls-" - :group 'net-utils) + :group 'comm) (defcustom gnutls-algorithm-priority nil "If non-nil, this should be a TLS priority string. @@ -189,6 +189,9 @@ here's a recent version of the list. It must be omitted, a number, or nil; if omitted or nil it defaults to GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT." (let* ((type (or type 'gnutls-x509pki)) + ;; The gnutls library doesn't understand files delivered via + ;; the special handlers, so ignore all files found via those. + (file-name-handler-alist nil) (trustfiles (or trustfiles (delq nil (mapcar (lambda (f) (and f (file-exists-p f) f)) @@ -211,11 +214,13 @@ defaults to GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT." t) ;; if a list, look for hostname matches ((listp gnutls-verify-error) - (cl-mapcan - (lambda (check) - (when (string-match (car check) hostname) - (copy-sequence (cdr check)))) - gnutls-verify-error)) + (apply 'append + (mapcar + (lambda (check) + (when (string-match (nth 0 check) + hostname) + (nth 1 check))) + gnutls-verify-error))) ;; else it's nil (t nil)))) (min-prime-bits (or min-prime-bits gnutls-min-prime-bits)) diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el index 28e9d0ccf32..9e4b0bab6ac 100644 --- a/lisp/net/network-stream.el +++ b/lisp/net/network-stream.el @@ -45,6 +45,7 @@ (require 'tls) (require 'starttls) (require 'auth-source) +(require 'nsm) (autoload 'gnutls-negotiate "gnutls") (autoload 'open-gnutls-stream "gnutls") @@ -128,11 +129,14 @@ values: :use-starttls-if-possible is a boolean that says to do opportunistic STARTTLS upgrades even if Emacs doesn't have built-in TLS functionality. +:warn-unless-encrypted is a boolean which, if :return-list is +non-nil, is used warn the user if the connection isn't encrypted. + :nogreeting is a boolean that can be used to inhibit waiting for a greeting from the server. :nowait is a boolean that says the connection should be made - asynchronously, if possible." +asynchronously, if possible." (unless (featurep 'make-network-process) (error "Emacs was compiled without networking support")) (let ((type (plist-get parameters :type)) @@ -196,6 +200,8 @@ a greeting from the server. (stream (make-network-process :name name :buffer buffer :host host :service service :nowait (plist-get parameters :nowait)))) + (when (plist-get parameters :warn-unless-encrypted) + (setq stream (nsm-verify-connection stream host service nil t))) (list stream (network-stream-get-response stream start (plist-get parameters :end-of-command)) @@ -219,8 +225,6 @@ a greeting from the server. (capabilities (network-stream-command stream capability-command eo-capa)) (resulting-type 'plain) - (builtin-starttls (and (fboundp 'gnutls-available-p) - (gnutls-available-p))) starttls-available starttls-command error) ;; First check whether the server supports STARTTLS at all. @@ -231,14 +235,14 @@ a greeting from the server. ;; connection. (when (and starttls-command (setq starttls-available - (or builtin-starttls + (or (gnutls-available-p) (and (or require-tls (plist-get parameters :use-starttls-if-possible)) (starttls-available-p)))) (not (eq (plist-get parameters :type) 'plain))) ;; If using external STARTTLS, drop this connection and start ;; anew with `starttls-open-stream'. - (unless builtin-starttls + (unless (gnutls-available-p) (delete-process stream) (setq start (with-current-buffer buffer (point-max))) (let* ((starttls-extra-arguments @@ -271,7 +275,7 @@ a greeting from the server. (network-stream-command stream starttls-command eoc))) (and response (string-match success-string response))) ;; The server said it was OK to begin STARTTLS negotiations. - (if builtin-starttls + (if (gnutls-available-p) (let ((cert (network-stream-certificate host service parameters))) (condition-case nil (gnutls-negotiate :process stream :hostname host @@ -319,6 +323,12 @@ a greeting from the server. "' program was found")))) (delete-process stream) (setq stream nil)) + ;; Check certificate validity etc. + (when (gnutls-available-p) + (setq stream (nsm-verify-connection + stream host service + (eq resulting-type 'tls) + (plist-get parameters :warn-unless-encrypted)))) ;; Return value: (list stream greeting capabilities resulting-type error))) @@ -344,19 +354,20 @@ a greeting from the server. (defun network-stream-open-tls (name buffer host service parameters) (with-current-buffer buffer (let* ((start (point-max)) - (use-builtin-gnutls (and (fboundp 'gnutls-available-p) - (gnutls-available-p))) (stream - (funcall (if use-builtin-gnutls + (funcall (if (gnutls-available-p) 'open-gnutls-stream 'open-tls-stream) name buffer host service)) (eoc (plist-get parameters :end-of-command))) + ;; Check certificate validity etc. + (when (and (gnutls-available-p) stream) + (setq stream (nsm-verify-connection stream host service))) (if (null stream) (list nil nil nil 'plain) ;; If we're using tls.el, we have to delete the output from ;; openssl/gnutls-cli. - (when (and (null use-builtin-gnutls) + (when (and (not (gnutls-available-p)) eoc) (network-stream-get-response stream start eoc) (goto-char (point-min)) diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el index f67baccda7c..de5c23ca4c9 100644 --- a/lisp/net/newst-backend.el +++ b/lisp/net/newst-backend.el @@ -6,7 +6,6 @@ ;; Filename: newst-backend.el ;; URL: http://www.nongnu.org/newsticker ;; Keywords: News, RSS, Atom -;; Time-stamp: "13. Mai 2011, 20:47:05 (ulf)" ;; Package: newsticker ;; ====================================================================== @@ -37,6 +36,7 @@ (require 'derived) (require 'xml) +(require 'url-parse) ;; Silence warnings (defvar w3-mode-map) @@ -47,9 +47,6 @@ "List of timers for news retrieval. This is an alist, each element consisting of (feed-name . timer).") -(defvar newsticker--download-logos nil - "If non-nil download feed logos if available.") - (defvar newsticker--sentinel-callback nil "Function called at end of `newsticker--sentinel'.") @@ -483,14 +480,6 @@ that can be added." ;; ====================================================================== ;;; Internal variables ;; ====================================================================== -(defvar newsticker--item-list nil - "List of newsticker items.") -(defvar newsticker--item-position 0 - "Actual position in list of newsticker items.") -(defvar newsticker--prev-message "There was no previous message yet!" - "Last message that the newsticker displayed.") -(defvar newsticker--scrollable-text "" - "The text which is scrolled smoothly in the echo area.") (defvar newsticker--buffer-uptodate-p nil "Tells whether the newsticker buffer is up to date.") (defvar newsticker--latest-update-time (current-time) @@ -756,10 +745,14 @@ from." (insert result) ;; remove MIME header (goto-char (point-min)) - (search-forward "\n\n") + (search-forward "\n\n" nil t) (delete-region (point-min) (point)) ;; read the rss/atom contents - (newsticker--sentinel-work nil t feed-name "url-retrieve" (current-buffer)) + (newsticker--sentinel-work nil + (or (not status) + (not (eq (car status) :error))) + feed-name "url-retrieve" + (current-buffer)) (when status (let ((status-type (car status)) (status-details (cdr status))) @@ -768,7 +761,7 @@ from." ) ((eq status-type :error) (message "%s: Error while retrieving news from %s: %s: \"%s\"" - (format-time-string "%A, %H:%M" (current-time)) + (format-time-string "%A, %H:%M") feed-name (car status-details) (cdr status-details)))))))) @@ -788,6 +781,7 @@ See `newsticker-get-news'." newsticker-wget-name args))) (set-process-coding-system proc 'no-conversion 'no-conversion) (set-process-sentinel proc 'newsticker--sentinel) + (process-put proc 'nt-feed-name feed-name) (setq newsticker--process-ids (cons (process-id proc) newsticker--process-ids)) (force-mode-line-update))))) @@ -797,7 +791,7 @@ See `newsticker-get-news'." FEED-NAME must be a string which occurs as the label (i.e. the first element) in an element of `newsticker-url-list' or `newsticker-url-list-defaults'." (newsticker--debug-msg "%s: Getting news for %s" - (format-time-string "%A, %H:%M" (current-time)) + (format-time-string "%A, %H:%M") feed-name) (let* ((item (or (assoc feed-name newsticker-url-list) (assoc feed-name newsticker-url-list-defaults) @@ -823,25 +817,26 @@ Argument PROCESS is the process which has just changed its state. Argument EVENT tells what has happened to the process." (let ((p-status (process-status process)) (exit-status (process-exit-status process)) - (name (process-name process)) + (feed-name (process-get process 'nt-feed-name)) (command (process-command process)) (buffer (process-buffer process))) (newsticker--sentinel-work event (and (eq p-status 'exit) (= exit-status 0)) - name command buffer))) + feed-name command buffer))) -(defun newsticker--sentinel-work (event status-ok name command buffer) +(defun newsticker--sentinel-work (event status-ok feed-name command buffer) "Actually do the sentinel work. Argument EVENT tells what has happened to the retrieval process. Argument STATUS-OK is the final status of the retrieval process, non-nil meaning retrieval was successful. -Argument NAME is the name of the retrieval process. +Argument FEED-NAME is the name of the retrieved feed. Argument COMMAND is the command of the retrieval process. Argument BUFFER is the buffer of the retrieval process." (let ((time (current-time)) - (name-symbol (intern name)) - (something-was-added nil)) + (name-symbol (intern feed-name)) + (something-was-added nil) + (ct (current-time))) ;; catch known errors (zombie processes, rubbish-xml etc. ;; if an error occurs the news feed is not updated! (catch 'oops @@ -855,73 +850,26 @@ Argument BUFFER is the buffer of the retrieval process." (concat "%s: Newsticker could not retrieve news from %s.\n" "Return status: `%s'\n" "Command was `%s'") - (format-time-string "%A, %H:%M" (current-time)) - name event command) + (format-time-string "%A, %H:%M") + feed-name event command) "" - (current-time) + ct 'new - 0 nil)) + 0 '((guid nil "newsticker--download-error")) + ct)) (message "%s: Error while retrieving news from %s" - (format-time-string "%A, %H:%M" (current-time)) - name) + (format-time-string "%A, %H:%M") + feed-name) (throw 'oops nil)) (let* ((coding-system 'utf-8) (node-list (save-current-buffer (set-buffer buffer) - ;; a very very dirty workaround to overcome the - ;; problems with the newest (20030621) xml.el: - ;; remove all unnecessary whitespace - (goto-char (point-min)) - (while (re-search-forward ">[ \t\r\n]+<" nil t) - (replace-match "><" nil t)) - ;; and another brutal workaround (20031105)! For some - ;; reason the xml parser does not like the colon in the - ;; doctype name "rdf:RDF" - (goto-char (point-min)) - (if (re-search-forward "" nil t) - (replace-match "" nil t)) - ;; And another one (20050618)! (Fixed in GNU Emacs 22.0.50.18) - ;; Remove comments to avoid this xml-parsing bug: - ;; "XML files can have only one toplevel tag" - (goto-char (point-min)) - (while (search-forward "" nil t) - (error "Can't find end of comment")) - (delete-region start (point)))) - ;; And another one (20050702)! If description is HTML - ;; encoded and starts with a `<', wrap the whole - ;; description in a CDATA expression. This happened for - ;; http://www.thefreedictionary.com/_/WoD/rss.aspx?type=quote - (goto-char (point-min)) - (while (re-search-forward - "\\(" nil t) - (replace-match - "")) - ;; And another one (20051123)! XML parser does not - ;; like this: - ;; try to "fix" empty attributes - ;; This happened for - ;; http://xml.weather.yahoo.com/forecastrss?p=GMXX0040&u=f - (goto-char (point-min)) - (while (re-search-forward "\\(<[^>]*\\)=\"\"" nil t) - (replace-match "\\1=\" \"")) - ;; - (set-buffer-modified-p nil) + (unless (fboundp 'libxml-parse-xml-region) + (newsticker--do-xml-workarounds)) ;; check coding system (goto-char (point-min)) - (if (re-search-forward "encoding=\"\\([^\"]+\\)\"" + (if (re-search-forward "encoding=['\"]\\([^\"]+?\\)['\"]" nil t) (setq coding-system (intern (downcase (match-string 1)))) (setq coding-system @@ -930,22 +878,25 @@ Argument BUFFER is the buffer of the retrieval process." (coding-system-error (message "newsticker.el: ignoring coding system %s for %s" - coding-system name) + coding-system feed-name) nil)))) ;; Decode if possible (when coding-system (decode-coding-region (point-min) (point-max) coding-system)) (condition-case errordata - ;; The xml parser might fail - ;; or the xml might be bugged - (xml-parse-region (point-min) (point-max)) + ;; The xml parser might fail or the xml might be + ;; bugged + (if (fboundp 'libxml-parse-xml-region) + (list (libxml-parse-xml-region (point-min) (point-max) + nil t)) + (xml-parse-region (point-min) (point-max))) (error (message "Could not parse %s: %s" (buffer-name) (cadr errordata)) (throw 'oops nil))))) (topnode (car node-list)) - (channelnode (car (xml-get-children topnode 'channel))) - (imageurl nil)) + (image-url nil) + (icon-url nil)) ;; mark all items as obsolete (newsticker--cache-replace-age newsticker--cache name-symbol @@ -963,41 +914,51 @@ Argument BUFFER is the buffer of the retrieval process." ;; RSS 0.91 ((and (eq 'rss (xml-node-name topnode)) (string= "0.91" (xml-get-attribute topnode 'version))) - (setq imageurl (newsticker--get-logo-url-rss-0.91 topnode)) - (newsticker--parse-rss-0.91 name time topnode)) + (setq image-url (newsticker--get-logo-url-rss-0.91 topnode)) + (newsticker--parse-rss-0.91 feed-name time topnode)) ;; RSS 0.92 ((and (eq 'rss (xml-node-name topnode)) (string= "0.92" (xml-get-attribute topnode 'version))) - (setq imageurl (newsticker--get-logo-url-rss-0.92 topnode)) - (newsticker--parse-rss-0.92 name time topnode)) + (setq image-url (newsticker--get-logo-url-rss-0.92 topnode)) + (newsticker--parse-rss-0.92 feed-name time topnode)) ;; RSS 1.0 - ((eq 'rdf:RDF (xml-node-name topnode)) - (setq imageurl (newsticker--get-logo-url-rss-1.0 topnode)) - (newsticker--parse-rss-1.0 name time topnode)) + ((or (eq 'RDF (xml-node-name topnode)) + (eq 'rdf:RDF (xml-node-name topnode))) + (setq image-url (newsticker--get-logo-url-rss-1.0 topnode)) + (newsticker--parse-rss-1.0 feed-name time topnode)) ;; RSS 2.0 ((and (eq 'rss (xml-node-name topnode)) (string= "2.0" (xml-get-attribute topnode 'version))) - (setq imageurl (newsticker--get-logo-url-rss-2.0 topnode)) - (newsticker--parse-rss-2.0 name time topnode)) + (setq image-url (newsticker--get-logo-url-rss-2.0 topnode)) + (newsticker--parse-rss-2.0 feed-name time topnode)) ;; Atom 0.3 ((and (eq 'feed (xml-node-name topnode)) (string= "http://purl.org/atom/ns#" (xml-get-attribute topnode 'xmlns))) - (setq imageurl (newsticker--get-logo-url-atom-0.3 topnode)) - (newsticker--parse-atom-0.3 name time topnode)) + (setq image-url (newsticker--get-logo-url-atom-0.3 topnode)) + (newsticker--parse-atom-0.3 feed-name time topnode)) ;; Atom 1.0 - ((and (eq 'feed (xml-node-name topnode)) - (string= "http://www.w3.org/2005/Atom" - (xml-get-attribute topnode 'xmlns))) - (setq imageurl (newsticker--get-logo-url-atom-1.0 topnode)) - (newsticker--parse-atom-1.0 name time topnode)) - ;; unknown feed type (t - (newsticker--debug-msg "Feed type unknown: %s: %s" - (xml-node-name topnode) name) - nil)) + ;; The test for Atom 1.0 does not work when using + ;; libxml, as with libxml the namespace attribute is + ;; not in the xml tree. For the time being we skip + ;; the check and assume that we are dealing with an + ;; Atom 1.0 feed. + + ;; (and (eq 'feed (xml-node-name topnode)) + ;; (string= "http://www.w3.org/2005/Atom" + ;; (xml-get-attribute topnode 'xmlns))) + (setq image-url (newsticker--get-logo-url-atom-1.0 topnode)) + (setq icon-url (newsticker--get-icon-url-atom-1.0 topnode)) + (newsticker--parse-atom-1.0 feed-name time topnode)) + ;; unknown feed type + ;; (t + ;; (newsticker--debug-msg "Feed type unknown: %s: %s" + ;; (xml-node-name topnode) feed-name) + ;; nil) + ) (setq something-was-added t)) - (error (message "sentinelerror in %s: %s" name error-data))) + (error (message "sentinelerror in %s: %s" feed-name error-data))) ;; Remove those old items from cache which have been removed from ;; the feed @@ -1038,17 +999,97 @@ Argument BUFFER is the buffer of the retrieval process." ;; kill the process buffer if wanted (unless newsticker-debug (kill-buffer buffer)) - ;; launch retrieval of image - (when (and imageurl newsticker--download-logos) - (newsticker--image-get name imageurl))))) + ;; launch retrieval of images + (when (and (boundp 'newsticker-download-logos) + newsticker-download-logos) + ;; feed logo + (when image-url + (newsticker--image-get feed-name feed-name (newsticker--images-dir) + image-url)) + ;; icon / favicon + (setq icon-url + (or icon-url + (let* ((feed-url (newsticker--link (cadr (newsticker--cache-get-feed + (intern feed-name))))) + (uri (url-generic-parse-url feed-url))) + (when (and feed-url uri) + (setf (url-filename uri) nil) + (setf (url-target uri) nil) + (concat (url-recreate-url uri) "favicon.ico"))))) + (when icon-url + (newsticker--image-get feed-name + (concat feed-name "." + (file-name-extension icon-url)) + (newsticker--icons-dir) + icon-url)))))) (when newsticker--sentinel-callback (funcall newsticker--sentinel-callback))) +(defun newsticker--do-xml-workarounds () + "Fix all issues which `xml-parse-region' could be choking on." + + ;; a very very dirty workaround to overcome the + ;; problems with the newest (20030621) xml.el: + ;; remove all unnecessary whitespace + (goto-char (point-min)) + (while (re-search-forward ">[ \t\r\n]+<" nil t) + (replace-match "><" nil t)) + ;; and another brutal workaround (20031105)! For some + ;; reason the xml parser does not like the colon in the + ;; doctype name "rdf:RDF" + (goto-char (point-min)) + (if (re-search-forward "" nil t) + (replace-match "" nil t)) + ;; And another one (20050618)! (Fixed in GNU Emacs 22.0.50.18) + ;; Remove comments to avoid this xml-parsing bug: + ;; "XML files can have only one toplevel tag" + (goto-char (point-min)) + (while (search-forward "" nil t) + (error "Can't find end of comment")) + (delete-region start (point)))) + ;; And another one (20050702)! If description is HTML + ;; encoded and starts with a `<', wrap the whole + ;; description in a CDATA expression. This happened for + ;; http://www.thefreedictionary.com/_/WoD/rss.aspx?type=quote + (goto-char (point-min)) + (while (re-search-forward + "\\(" nil t) + (replace-match + "")) + ;; And another one (20051123)! XML parser does not + ;; like this: + ;; try to "fix" empty attributes + ;; This happened for + ;; http://xml.weather.yahoo.com/forecastrss?p=GMXX0040&u=f + (goto-char (point-min)) + (while (re-search-forward "\\(<[^>]*\\)=\"\"" nil t) + (replace-match "\\1=\" \"")) + ;; + (set-buffer-modified-p nil)) + + (defun newsticker--get-logo-url-atom-1.0 (node) "Return logo URL from atom 1.0 data in NODE." (car (xml-node-children (car (xml-get-children node 'logo))))) +(defun newsticker--get-icon-url-atom-1.0 (node) + "Return icon URL from atom 1.0 data in NODE." + (car (xml-node-children + (car (xml-get-children node 'icon))))) + (defun newsticker--get-logo-url-atom-0.3 (node) "Return logo URL from atom 0.3 data in NODE." (car (xml-node-children @@ -1125,6 +1166,30 @@ same as in `newsticker--parse-atom-1.0'." (xml-node-children node)))) (or new-item new-feed))) +(defun newsticker--unxml (node) + "Reverse parsing of an xml string. +Restore an xml-string from a an xml NODE that was returned by xml-parse..." + (if (or (not node) (stringp node)) + node + (newsticker--unxml-node node))) + +(defun newsticker--unxml-node (node) + "Actually restore xml-string of an xml NODE." + (let ((qname (symbol-name (car node))) + (att-list (cadr node)) + (children (cddr node))) + (concat "<" qname + (when att-list " ") + (mapconcat 'newsticker--unxml-attribute att-list " ") + ">" + (mapconcat 'newsticker--unxml children "") ""))) + +(defun newsticker--unxml-attribute (attribute) + "Actually restore xml-string of an ATTRIBUTE of an xml node." + (let ((name (symbol-name (car attribute))) + (value (cdr attribute))) + (concat name "=\"" value "\""))) + (defun newsticker--parse-atom-1.0 (name time topnode) "Parse Atom 1.0 data. Argument NAME gives the name of a news feed. TIME gives the @@ -1157,8 +1222,17 @@ URL `http://www.atompub.org/2005/08/17/draft-ietf-atompub-format-11.html'" (car (xml-get-children node 'title))))) ;; desc-fn (lambda (node) - (or (car (xml-node-children - (car (xml-get-children node 'content)))) + ;; unxml the content or the summary node. Atom + ;; allows for integrating (x)html into the atom + ;; structure but we need the raw html string. + ;; e.g. http://www.heise.de/open/news/news-atom.xml + ;; http://feeds.feedburner.com/ru_nix_blogs + (or (newsticker--unxml + (car (xml-node-children + (car (xml-get-children node 'content))))) + (newsticker--unxml + (car (xml-node-children + (car (xml-get-children node 'summary))))) (car (xml-node-children (car (xml-get-children node 'summary)))))) ;; link-fn @@ -1303,9 +1377,15 @@ For the RSS 1.0 specification see URL `http://web.resource.org/rss/1.0/spec'." (car (xml-node-children (car (xml-get-children channelnode 'title)))) ;; desc - (car (xml-node-children - (car (xml-get-children channelnode - 'description)))) + (or (car (xml-node-children + (car (xml-get-children channelnode + 'encoded)))) + (car (xml-node-children + (car (xml-get-children channelnode + 'content:encoded)))) + (car (xml-node-children + (car (xml-get-children channelnode + 'description))))) ;; link (car (xml-node-children (car (xml-get-children channelnode 'link)))) @@ -1329,8 +1409,10 @@ For the RSS 1.0 specification see URL `http://web.resource.org/rss/1.0/spec'." ;; time-fn (lambda (node) (newsticker--decode-iso8601-date - (car (xml-node-children - (car (xml-get-children node 'dc:date)))))) + (or (car (xml-node-children + (car (xml-get-children node 'dc:date)))) + (car (xml-node-children + (car (xml-get-children node 'date))))))) ;; guid-fn (lambda (node) nil) @@ -1354,9 +1436,15 @@ For the RSS 2.0 specification see URL `http://blogs.law.harvard.edu/tech/rss'." (car (xml-node-children (car (xml-get-children channelnode 'title)))) ;; desc - (car (xml-node-children - (car (xml-get-children channelnode - 'description)))) + (or (car (xml-node-children + (car (xml-get-children channelnode + 'encoded)))) + (car (xml-node-children + (car (xml-get-children channelnode + 'content:encoded)))) + (car (xml-node-children + (car (xml-get-children channelnode + 'description))))) ;; link (car (xml-node-children (car (xml-get-children channelnode 'link)))) @@ -1371,6 +1459,9 @@ For the RSS 2.0 specification see URL `http://blogs.law.harvard.edu/tech/rss'." ;; desc-fn (lambda (node) (or (car (xml-node-children + (car (xml-get-children node + 'encoded)))) + (car (xml-node-children (car (xml-get-children node 'content:encoded)))) (car (xml-node-children @@ -1464,7 +1555,7 @@ argument, which is one of the items in ITEMLIST." ;; decode numeric entities (setq title (xml-substitute-numeric-entities title)) (when desc - (setq desc (xml-substitute-numeric-entities desc))) + (setq desc (xml-substitute-numeric-entities desc))) (setq link (xml-substitute-numeric-entities link)) ;; remove whitespace from title, desc, and link (setq title (newsticker--remove-whitespace title)) @@ -1486,9 +1577,9 @@ argument, which is one of the items in ITEMLIST." (let ((prev-age (newsticker--age old-item))) (unless newsticker-automatically-mark-items-as-old ;; Some feeds deliver items multiply, the - ;; first time we find an 'obsolete-old one the - ;; cache, the following times we find an 'old - ;; one + ;; first time we find an 'obsolete-old one in + ;; the cache, the following times we find an + ;; 'old one (if (memq prev-age '(obsolete-old old)) (setq age2 'old) (setq age2 'new))) @@ -1498,11 +1589,16 @@ argument, which is one of the items in ITEMLIST." ;; item was not there (setq item-new-p t) (setq something-was-added t)) - (setq newsticker--cache - (newsticker--cache-add - newsticker--cache (intern name) title desc link - time age1 position (funcall extra-fn node) - time age2)) + (let ((extra-elements-with-guid (funcall extra-fn node))) + (unless (assoc 'guid extra-elements-with-guid) + (setq extra-elements-with-guid + (cons `(guid nil ,(funcall guid-fn node)) + extra-elements-with-guid))) + (setq newsticker--cache + (newsticker--cache-add + newsticker--cache (intern name) title desc link + time age1 position extra-elements-with-guid + time age2))) (when item-new-p (let ((item (newsticker--cache-contains newsticker--cache (intern name) title @@ -1712,31 +1808,44 @@ Checks list of active processes against list of newsticker processes." ;; ====================================================================== (defun newsticker--images-dir () "Return directory where feed images are saved." - (concat newsticker-dir "/images")) + (concat newsticker-dir "/images/")) -(defun newsticker--image-get (feed-name url) - "Get image of the news site FEED-NAME from URL. -If the image has been downloaded in the last 24h do nothing." - (let ((image-name (concat (newsticker--images-dir) feed-name))) +(defun newsticker--icons-dir () + "Return directory where feed icons are saved." + (concat newsticker-dir "/icons/")) + +(defun newsticker--image-get (feed-name filename directory url) + "Get image for FEED-NAME by returning FILENAME from DIRECTORY. +If the file does no exist or if it is older than 24 hours +download it from URL first." + (let ((image-name (concat directory feed-name))) (if (and (file-exists-p image-name) (time-less-p (current-time) (time-add (nth 5 (file-attributes image-name)) (seconds-to-time 86400)))) (newsticker--debug-msg "%s: Getting image for %s skipped" - (format-time-string "%A, %H:%M" (current-time)) + (format-time-string "%A, %H:%M") feed-name) ;; download (newsticker--debug-msg "%s: Getting image for %s" - (format-time-string "%A, %H:%M" (current-time)) + (format-time-string "%A, %H:%M") feed-name) - (let* ((buffername (concat " *newsticker-wget-image-" feed-name "*")) - (item (or (assoc feed-name newsticker-url-list) + (if (eq newsticker-retrieval-method 'intern) + (newsticker--image-download-by-url feed-name filename directory url) + (newsticker--image-download-by-wget feed-name filename directory url))))) + +(defun newsticker--image-download-by-wget (feed-name filename directory url) + "Download image for FEED-NAME using external program. +Save image as FILENAME in DIRECTORY, download it from URL." + (let* ((proc-name (concat feed-name "-" filename)) + (buffername (concat " *newsticker-wget-image-" proc-name "*")) + (item (or (assoc feed-name newsticker-url-list) (assoc feed-name newsticker-url-list-defaults) (error - "Cannot get news for %s: Check newsticker-url-list" + "Cannot get image for %s: Check newsticker-url-list" feed-name))) - (wget-arguments (or (car (cdr (cdr (cdr (cdr item))))) - newsticker-wget-arguments))) + (wget-arguments (or (car (cdr (cdr (cdr (cdr item))))) + newsticker-wget-arguments))) (with-current-buffer (get-buffer-create buffername) (erase-buffer) ;; throw an error if there is an old wget-process around @@ -1745,39 +1854,96 @@ If the image has been downloaded in the last 24h do nothing." feed-name)) ;; start wget (let* ((args (append wget-arguments (list url))) - (proc (apply 'start-process feed-name buffername + (proc (apply 'start-process proc-name buffername newsticker-wget-name args))) (set-process-coding-system proc 'no-conversion 'no-conversion) - (set-process-sentinel proc 'newsticker--image-sentinel))))))) + (set-process-sentinel proc 'newsticker--image-sentinel) + (process-put proc 'nt-directory directory) + (process-put proc 'nt-feed-name feed-name) + (process-put proc 'nt-filename filename))))) (defun newsticker--image-sentinel (process event) "Sentinel for image-retrieving PROCESS caused by EVENT." (let* ((p-status (process-status process)) (exit-status (process-exit-status process)) - (feed-name (process-name process))) + (feed-name (process-get process 'nt-feed-name)) + (directory (process-get process 'nt-directory)) + (filename (process-get process 'nt-filename))) ;; catch known errors (zombie processes, rubbish-xml, etc.) ;; if an error occurs the news feed is not updated! (catch 'oops (unless (and (eq p-status 'exit) (= exit-status 0)) (message "%s: Error while retrieving image from %s" - (format-time-string "%A, %H:%M" (current-time)) + (format-time-string "%A, %H:%M") feed-name) + (newsticker--image-remove directory feed-name) (throw 'oops nil)) - (let (image-name) - (with-current-buffer (process-buffer process) - (setq image-name (concat (newsticker--images-dir) feed-name)) - (set-buffer-file-coding-system 'no-conversion) - ;; make sure the cache dir exists - (unless (file-directory-p (newsticker--images-dir)) - (make-directory (newsticker--images-dir))) - ;; write and close buffer - (let ((require-final-newline nil) - (backup-inhibited t) - (coding-system-for-write 'no-conversion)) - (write-region nil nil image-name nil 'quiet)) - (set-buffer-modified-p nil) - (kill-buffer (current-buffer))))))) + (newsticker--image-save (process-buffer process) directory filename)))) + +(defun newsticker--image-save (buffer directory file-name) + "Save contents of BUFFER in DIRECTORY as FILE-NAME. +Finally kill buffer." + (with-current-buffer buffer + (let ((image-name (concat directory file-name))) + (set-buffer-file-coding-system 'no-conversion) + ;; make sure the cache dir exists + (unless (file-directory-p directory) + (make-directory directory)) + ;; write and close buffer + (let ((require-final-newline nil) + (backup-inhibited t) + (coding-system-for-write 'no-conversion)) + (write-region nil nil image-name nil 'quiet)) + (set-buffer-modified-p nil) + (kill-buffer buffer)))) + +(defun newsticker--image-remove (directory file-name) + "In DIRECTORY remove FILE-NAME." + (let ((image-name (concat directory file-name))) + (when (file-exists-p file-name) + (delete-file image-name)))) + +(defun newsticker--image-download-by-url (feed-name filename directory url) + "Download image for FEED-NAME using `url-retrieve'. +Save image as FILENAME in DIRECTORY, download it from URL." + (let ((coding-system-for-read 'no-conversion)) + (condition-case error-data + (url-retrieve url 'newsticker--image-download-by-url-callback + (list feed-name directory filename)) + (error (message "Error retrieving image from %s: %s" feed-name + error-data)))) + (force-mode-line-update)) + +(defun newsticker--image-download-by-url-callback (status feed-name directory filename) + "Callback function for `newsticker--image-download-by-url'. +STATUS is the return status as delivered by `url-retrieve'. +FEED-NAME is the name of the feed that the news were retrieved +from. +The image is saved in DIRECTORY as FILENAME." + (let ((do-save + (or (not status) + (let ((status-type (car status)) + (status-details (cdr status))) + (cond ((eq status-type :redirect) + ;; don't care about redirects + t) + ((eq status-type :error) + ;; silently ignore errors + nil)))))) + (when do-save + (let ((buf (get-buffer-create (concat " *newsticker-url-image-" feed-name "-" + directory "*"))) + (result (string-to-multibyte (buffer-string)))) + (set-buffer buf) + (erase-buffer) + (insert result) + ;; remove MIME header + (goto-char (point-min)) + (search-forward "\n\n") + (delete-region (point-min) (point)) + ;; save + (newsticker--image-save buf directory filename))))) (defun newsticker--insert-image (img string) "Insert IMG with STRING at point." @@ -2192,6 +2358,7 @@ If AGE is nil, the total number of items is returned." (defun newsticker-opml-export () "OPML subscription export. Export subscriptions to a buffer in OPML Format." + ;; FIXME: use newsticker-groups (interactive) (with-current-buffer (get-buffer-create "*OPML Export*") (set-buffer-file-coding-system 'utf-8) @@ -2211,7 +2378,8 @@ Export subscriptions to a buffer in OPML Format." (insert " \n")) (append newsticker-url-list newsticker-url-list-defaults)) (insert " \n\n")) diff --git a/lisp/net/newst-plainview.el b/lisp/net/newst-plainview.el index a05a2f67bcb..dea24f12a97 100644 --- a/lisp/net/newst-plainview.el +++ b/lisp/net/newst-plainview.el @@ -5,7 +5,6 @@ ;; Author: Ulf Jasper ;; Filename: newst-plainview.el ;; URL: http://www.nongnu.org/newsticker -;; Time-stamp: "Mon 11-Feb-2013 20:27:11 gm on skiddaw" ;; Package: newsticker ;; ====================================================================== diff --git a/lisp/net/newst-reader.el b/lisp/net/newst-reader.el index 737aac22d46..e639ffd4514 100644 --- a/lisp/net/newst-reader.el +++ b/lisp/net/newst-reader.el @@ -5,7 +5,6 @@ ;; Author: Ulf Jasper ;; Filename: newst-reader.el ;; URL: http://www.nongnu.org/newsticker -;; Time-stamp: "24. September 2011, 15:47:49 (ulf)" ;; Package: newsticker ;; ====================================================================== @@ -67,6 +66,12 @@ This must be one of the functions `newsticker-plainview' or :group 'newsticker-reader) ;; image related things +(defcustom newsticker-download-logos + t + "If non-nil newsticker downloads logo images of subscribed feeds." + :type 'boolean + :group 'newsticker-reader) + (defcustom newsticker-enable-logo-manipulations t "If non-nil newsticker manipulates logo images. @@ -105,7 +110,7 @@ window is used when filling. See also `newsticker-justification'." #'shr-render-region) "Function for rendering HTML contents. If non-nil, newsticker.el will call this function whenever it -finds HTML-like tags in item descriptions. +finds HTML-like tags in item descriptions. Possible functions include `shr-render-region', `w3m-region', `w3-region', and `newsticker-htmlr-render'. Newsticker automatically loads the respective package w3m, w3, or @@ -186,15 +191,18 @@ KEYMAP will be applied." 'nt-type 'desc)) (insert "\n"))))) -(defun newsticker--print-extra-elements (item keymap) +(defun newsticker--print-extra-elements (item keymap &optional htmlish) "Insert extra-elements of ITEM in a pretty form into the current buffer. -KEYMAP is applied." +KEYMAP is applied. If HTMLISH is non-nil then HTML-markup is used +for formatting." (let ((ignored-elements '(items link title description content - content:encoded dc:subject - dc:date entry item guid pubDate + content:encoded encoded + dc:subject subject + dc:date date entry item guid pubDate published updated enclosure)) (left-column-width 1)) + (if htmlish (insert "
    ")) (mapc (lambda (extra-element) (when (listp extra-element) ;; take care of broken xml ;; data, 2007-05-25 @@ -209,15 +217,20 @@ KEYMAP is applied." (unless (memq (car extra-element) ignored-elements) (newsticker--do-print-extra-element extra-element left-column-width - keymap)))) - (newsticker--extra item)))) + keymap + htmlish)))) + (newsticker--extra item)) + (if htmlish (insert "
")))) -(defun newsticker--do-print-extra-element (extra-element width keymap) +(defun newsticker--do-print-extra-element (extra-element width keymap htmlish) "Actually print an EXTRA-ELEMENT using the given WIDTH. -KEYMAP is applied." +KEYMAP is applied. If HTMLISH is non-nil then HTML-markup is used +for formatting." (let ((name (symbol-name (car extra-element)))) - (insert (format "%s: " name)) - (insert (make-string (- width (length name)) ? ))) + (if htmlish + (insert (format "
  • %s: " name)) + (insert (format "%s: " name)) + (insert (make-string (- width (length name)) ? )))) (let (;;(attributes (cadr extra-element)) ;FIXME!!!! (contents (cddr extra-element))) (cond ((listp contents) @@ -238,30 +251,58 @@ KEYMAP is applied." contents)) (t (insert (format "%s" contents)))) - (insert "\n"))) + (if htmlish + (insert "
  • ") + (insert "\n")))) -(defun newsticker--image-read (feed-name-symbol disabled) +(defun newsticker--image-read (feed-name-symbol disabled &optional max-height) "Read the cached image for FEED-NAME-SYMBOL from disk. If DISABLED is non-nil the image will be converted to a disabled look \(unless `newsticker-enable-logo-manipulations' is not t\). +Optional argument MAX-HEIGHT specifies the maximal image height. Return the image." (let ((image-name (concat (newsticker--images-dir) - (symbol-name feed-name-symbol))) - (img nil)) + (symbol-name feed-name-symbol)))) (when (file-exists-p image-name) (condition-case error-data - (setq img (create-image - image-name nil nil - :conversion (and newsticker-enable-logo-manipulations - disabled - 'disabled) - :mask (and newsticker-enable-logo-manipulations - 'heuristic) - :ascent 70)) + (create-image + image-name + (and (fboundp 'imagemagick-types) + (imagemagick-types) + 'imagemagick) + nil + :conversion (and newsticker-enable-logo-manipulations + disabled + 'disabled) + :mask (and newsticker-enable-logo-manipulations + 'heuristic) + :ascent 100 + :max-height max-height) (error (message "Error: cannot create image for %s: %s" - feed-name-symbol error-data)))) - img)) + feed-name-symbol error-data)))))) + +(defun newsticker--icon-read (feed-name-symbol) + "Read the cached icon for FEED-NAME-SYMBOL from disk. +Return the image." + (catch 'icon + (when (file-exists-p (newsticker--icons-dir)) + (dolist (file (directory-files (newsticker--icons-dir) t + (concat (symbol-name feed-name-symbol) "\\..*"))) + (condition-case error-data + (throw 'icon (create-image + file (and (fboundp 'imagemagick-types) + (imagemagick-types) + 'imagemagick) + nil + :ascent 'center + :max-width 16 + :max-height 16)) + (error + (message "Error: cannot create icon for %s: %s" + feed-name-symbol error-data))))) + ;; Fallback: default icon. + (find-image '((:type png :file "newsticker/rss-feed.png" :ascent center))))) ;; the functions we need for retrieval and display ;;;###autoload diff --git a/lisp/net/newst-ticker.el b/lisp/net/newst-ticker.el index bf0e3981824..982bcfc59f4 100644 --- a/lisp/net/newst-ticker.el +++ b/lisp/net/newst-ticker.el @@ -6,7 +6,6 @@ ;; Filename: newst-ticker.el ;; URL: http://www.nongnu.org/newsticker ;; Keywords: News, RSS, Atom -;; Time-stamp: "6. Dezember 2009, 19:16:00 (ulf)" ;; Package: newsticker ;; ====================================================================== @@ -37,6 +36,14 @@ (require 'newst-backend) +(defvar newsticker--item-list nil + "List of newsticker items.") +(defvar newsticker--item-position 0 + "Actual position in list of newsticker items.") +(defvar newsticker--prev-message "There was no previous message yet!" + "Last message that the newsticker displayed.") +(defvar newsticker--scrollable-text "" + "The text which is scrolled smoothly in the echo area.") (defvar newsticker--ticker-timer nil "Timer for newsticker ticker.") diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el index 4b96a8bc3cc..2470d1ba613 100644 --- a/lisp/net/newst-treeview.el +++ b/lisp/net/newst-treeview.el @@ -83,6 +83,14 @@ "Face for newsticker selection." :group 'newsticker-treeview) +(defcustom newsticker-treeview-date-format + "%d.%m.%y, %H:%M" + "Format for the date column in the treeview list buffer. +See `format-time-string' for a list of valid specifiers." + :version "25.1" + :type 'string + :group 'newsticker-treeview) + (defcustom newsticker-treeview-own-frame nil "Decides whether newsticker treeview creates and uses its own frame." @@ -124,8 +132,9 @@ Example: (\"Topmost group\" \"feed1\" (\"subgroup1\" \"feed 2\") \"feed3\")") (defcustom newsticker-groups-filename - "~/.newsticker-groups" - "Name of the newsticker groups settings file." + nil + "Name of the newsticker groups settings file. This variable is obsolete." + :version "25.1" ; changed default value to nil :type 'string :group 'newsticker-treeview) (make-obsolete-variable 'newsticker-groups-filename 'newsticker-dir "23.1") @@ -230,23 +239,23 @@ their id stays constant." (newsticker--treeview-do-get-node-of-feed feed-name newsticker--treeview-vfeed-tree))) -(defun newsticker--treeview-do-get-node (id startnode) +(defun newsticker--treeview-do-get-node-by-id (id startnode) "Recursively search node with ID starting from STARTNODE." (if (newsticker--treeview-ids-eq id (widget-get startnode :nt-id)) (throw 'found startnode) (let ((children (widget-get startnode :children))) (dolist (w children) - (newsticker--treeview-do-get-node id w))))) + (newsticker--treeview-do-get-node-by-id id w))))) -(defun newsticker--treeview-get-node (id) +(defun newsticker--treeview-get-node-by-id (id) "Return node with ID in newsticker treeview tree." (catch 'found - (newsticker--treeview-do-get-node id newsticker--treeview-feed-tree) - (newsticker--treeview-do-get-node id newsticker--treeview-vfeed-tree))) + (newsticker--treeview-do-get-node-by-id id newsticker--treeview-feed-tree) + (newsticker--treeview-do-get-node-by-id id newsticker--treeview-vfeed-tree))) (defun newsticker--treeview-get-current-node () "Return current node in newsticker treeview tree." - (newsticker--treeview-get-node newsticker--treeview-current-node-id)) + (newsticker--treeview-get-node-by-id newsticker--treeview-current-node-id)) ;; ====================================================================== @@ -307,7 +316,7 @@ If string SHOW-FEED is non-nil it is shown in the item string." 0 10) (propertize " " 'display '(space :align-to 12))) "")) - (insert (format-time-string "%d.%m.%y, %H:%M" + (insert (format-time-string newsticker-treeview-date-format (newsticker--time item))) (insert (propertize " " 'display (list 'space :align-to (if show-feed 28 18)))) @@ -319,7 +328,8 @@ If string SHOW-FEED is non-nil it is shown in the item string." (while (search-forward "\n" nil t) (replace-match " ")) (let ((map (make-sparse-keymap))) - (define-key map [mouse-1] 'newsticker-treeview-tree-click) + (dolist (key'([mouse-1] [mouse-3])) + (define-key map key 'newsticker-treeview-tree-click)) (define-key map "\n" 'newsticker-treeview-show-item) (define-key map "\C-m" 'newsticker-treeview-show-item) (add-text-properties pos1 (point-max) @@ -708,7 +718,9 @@ for the button." (remove-overlays) (when (and item feed-name-symbol) - (let ((wwidth (1- (window-width (newsticker--treeview-item-window))))) + (let ((wwidth (1- (if (window-live-p (newsticker--treeview-item-window)) + (window-width (newsticker--treeview-item-window)) + fill-column)))) (if newsticker-use-full-width (set (make-local-variable 'fill-column) wwidth)) (set (make-local-variable 'fill-column) (min fill-column @@ -727,7 +739,7 @@ for the button." (goto-char (point-min)) ;; insert logo at top (let* ((newsticker-enable-logo-manipulations nil) - (img (newsticker--image-read feed-name-symbol nil))) + (img (newsticker--image-read feed-name-symbol nil 40))) (if (and (display-images-p) img) (newsticker--insert-image img (car item)) (insert (newsticker--real-feed-name feed-name-symbol)))) @@ -773,8 +785,11 @@ for the button." (put-text-property pos (point) 'face 'newsticker-enclosure-face) (setq pos (point)) (insert "\n") - (newsticker--print-extra-elements item newsticker--treeview-url-keymap) - (put-text-property pos (point) 'face 'newsticker-extra-face) + (set-marker marker1 pos) + (newsticker--print-extra-elements item newsticker--treeview-url-keymap t) + (set-marker marker2 (point)) + (newsticker--treeview-render-text marker1 marker2) + (put-text-property marker1 marker2 'face 'newsticker-extra-face) (goto-char (point-min))))) (if (and newsticker-treeview-automatically-mark-displayed-items-as-old item @@ -818,6 +833,7 @@ Callback function for tree widget that adds nodes for feeds and subgroups." :nt-group ,(cdr g) :nt-feed ,g-name :nt-id ,nt-id + :leaf-icon newsticker--tree-widget-leaf-icon :keep (:nt-feed :num-new :nt-id :open);; :nt-group :open nil)) (let ((tag (newsticker--treeview-tree-get-tag g nil nt-id))) @@ -830,6 +846,23 @@ Callback function for tree widget that adds nodes for feeds and subgroups." :open t)))) group))) +(defun newsticker--tree-widget-icon-create (icon) + "Create the ICON widget." + (let* ((g (widget-get (widget-get icon :node) :nt-feed)) + (ico (and g (newsticker--icon-read (intern g))))) + (if ico + (progn + (widget-put icon :tag-glyph ico) + (widget-default-create icon) + ;; Insert space between the icon and the node widget. + (insert-char ? 1) + (put-text-property + (1- (point)) (point) + 'display (list 'space :width tree-widget-space-width))) + ;; fallback: default icon + (widget-put icon :leaf-icon 'tree-widget-leaf-icon) + (tree-widget-icon-create icon)))) + (defun newsticker--treeview-tree-expand-status (tree &optional changed-widget event) "Expand the vfeed TREE. @@ -864,6 +897,7 @@ Optional arguments CHANGED-WIDGET and EVENT are ignored." "Icon for a tree-widget leaf node." :tag "O" :glyph-name "leaf" + :create 'newsticker--tree-widget-icon-create :button-face 'default) (defun newsticker--treeview-tree-update () @@ -912,7 +946,8 @@ arguments NT-ID, FEED, and VFEED are added as properties." (map (make-sparse-keymap))) (if (and num-new (> num-new 0)) (setq face 'newsticker-treeview-new-face)) - (define-key map [mouse-1] 'newsticker-treeview-tree-click) + (dolist (key '([mouse-1] [mouse-3])) + (define-key map key 'newsticker-treeview-tree-click)) (define-key map "\n" 'newsticker-treeview-tree-do-click) (define-key map "\C-m" 'newsticker-treeview-tree-do-click) (propertize tag 'face face 'keymap map @@ -1158,12 +1193,14 @@ Arguments IGNORE are ignored." (unless newsticker--selection-overlay (with-current-buffer (newsticker--treeview-list-buffer) + (setq buffer-undo-list t) (setq newsticker--selection-overlay (make-overlay (point-min) (point-max))) (overlay-put newsticker--selection-overlay 'face 'newsticker-treeview-selection-face))) (unless newsticker--tree-selection-overlay (with-current-buffer (newsticker--treeview-tree-buffer) + (setq buffer-undo-list t) (setq newsticker--tree-selection-overlay (make-overlay (point-min) (point-max))) (overlay-put newsticker--tree-selection-overlay 'face @@ -1210,7 +1247,7 @@ Note: does not update the layout." (newsticker-treeview-save)) (defun newsticker-treeview-save () - "Save newsticker data including treeview settings." + "Save treeview group settings." (interactive) (let ((coding-system-for-write 'utf-8) (buf (find-file-noselect (concat newsticker-dir "/groups")))) @@ -1227,16 +1264,27 @@ Note: does not update the layout." "Load treeview settings." (let* ((coding-system-for-read 'utf-8) (filename - (or (and (file-exists-p newsticker-groups-filename) + (or (and newsticker-groups-filename + (not (string= + (expand-file-name newsticker-groups-filename) + (expand-file-name (concat newsticker-dir "/groups")))) + (file-exists-p newsticker-groups-filename) (y-or-n-p - (format "Old newsticker groups (%s) file exists. Read it? " - newsticker-groups-filename)) + (format + (concat "Obsolete variable `newsticker-groups-filename' " + "points to existing file \"%s\".\n" + "Read it? ") + newsticker-groups-filename)) newsticker-groups-filename) (concat newsticker-dir "/groups"))) (buf (and (file-exists-p filename) (find-file-noselect filename)))) - (and (file-exists-p newsticker-groups-filename) - (y-or-n-p (format "Delete old newsticker groups file? ")) + (and newsticker-groups-filename + (file-exists-p newsticker-groups-filename) + (y-or-n-p (format + (concat "Delete the file \"%s\",\nto which the obsolete " + "variable `newsticker-groups-filename' points ? ") + newsticker-groups-filename)) (delete-file newsticker-groups-filename)) (when buf (set-buffer buf) @@ -1590,10 +1638,8 @@ Return t if a new feed was activated, nil otherwise." "Recursively show subtree above the node that represents FEED-NAME." (let ((node (newsticker--treeview-get-node-of-feed feed-name))) (unless node - (let* ((group-name (or (car (newsticker--group-find-group-for-feed - feed-name)) - (newsticker--group-get-parent-group - feed-name)))) + (let* ((group-name (car (newsticker--group-find-parent-group + feed-name)))) (newsticker--treeview-unfold-node group-name)) (setq node (newsticker--treeview-get-node-of-feed feed-name))) (when node @@ -1617,20 +1663,31 @@ Return t if a new feed was activated, nil otherwise." ;; ====================================================================== ;;; Groups ;; ====================================================================== -(defun newsticker--group-do-find-group-for-feed (feed-name node) - "Recursively find FEED-NAME in NODE." - (if (member feed-name (cdr node)) - (throw 'found node) - (mapc (lambda (n) - (if (listp n) - (newsticker--group-do-find-group-for-feed feed-name n))) - (cdr node)))) +(defun newsticker--group-do-find-group (feed-or-group-name parent-node node) + "Recursively find FEED-OR-GROUP-NAME in PARENT-NODE or NODE." + (cond ((stringp node) + (when (string= feed-or-group-name node) + (throw 'found parent-node))) + ((listp node) + (cond ((string= feed-or-group-name (car node)) + (throw 'found parent-node)) + ((member feed-or-group-name (cdr node)) + (throw 'found node)) + (t + (mapc (lambda (n) + (if (listp n) + (newsticker--group-do-find-group + feed-or-group-name node n))) + (cdr node))))))) -(defun newsticker--group-find-group-for-feed (feed-name) - "Find group containing FEED-NAME." +(defun newsticker--group-find-parent-group (feed-or-group-name) + "Find group containing FEED-OR-GROUP-NAME." (catch 'found - (newsticker--group-do-find-group-for-feed feed-name - newsticker-groups) + (mapc (lambda (n) + (newsticker--group-do-find-group feed-or-group-name + newsticker-groups + n)) + newsticker-groups) nil)) (defun newsticker--group-do-get-group (name node) @@ -1651,26 +1708,6 @@ Return t if a new feed was activated, nil otherwise." newsticker-groups) nil)) -(defun newsticker--group-do-get-parent-group (name node parent) - "Recursively find parent group for NAME from NODE which is a child of PARENT." - (if (string= name (car node)) - (throw 'found parent) - (mapc (lambda (n) - (if (listp n) - (newsticker--group-do-get-parent-group name n (car node)))) - (cdr node)))) - -(defun newsticker--group-get-parent-group (name) - "Find parent group for group named NAME." - (catch 'found - (mapc (lambda (n) - (if (listp n) - (newsticker--group-do-get-parent-group - name n (car newsticker-groups)))) - newsticker-groups) - nil)) - - (defun newsticker--group-get-subgroups (group &optional recursive) "Return list of subgroups for GROUP. If RECURSIVE is non-nil recursively get subgroups and return a nested list." @@ -1706,9 +1743,9 @@ return a nested list." (defun newsticker-group-add-group (name parent) "Add group NAME to group PARENT." (interactive - (list (read-string "Group Name: ") + (list (read-string "Name of new group: ") (let ((completion-ignore-case t)) - (completing-read "Parent Group: " (newsticker--group-all-groups) + (completing-read "Name of parent group (optional): " (newsticker--group-all-groups) nil t)))) (if (newsticker--group-get-group name) (error "Group %s exists already" name)) @@ -1718,46 +1755,154 @@ return a nested list." (unless p (error "Parent %s does not exist" parent)) (setcdr p (cons (list name) (cdr p)))) - (newsticker--treeview-tree-update)) + (newsticker--treeview-tree-update) + (newsticker-treeview-jump newsticker--treeview-current-feed)) + +(defun newsticker-group-delete-group (name) + "Delete group NAME." + (interactive + (list (let ((completion-ignore-case t)) + (completing-read "Delete group: " + (newsticker--group-names) + nil t (car (newsticker--group-find-parent-group + newsticker--treeview-current-feed)))))) + (let ((parent-group (newsticker--group-find-parent-group name))) + (unless parent-group + (error "Parent %s does not exist" parent-group)) + (setcdr parent-group (cl-delete-if (lambda (g) + (and (listp g) + (string= name (car g)))) + (cdr parent-group))) + (newsticker--group-manage-orphan-feeds) + (newsticker--treeview-tree-update) + (newsticker-treeview-update) + (newsticker-treeview-jump newsticker--treeview-current-feed))) + +(defun newsticker--group-do-rename-group (old-name new-name) + "Actually rename group OLD-NAME to NEW-NAME." + (let ((parent-group (newsticker--group-find-parent-group old-name))) + (unless parent-group + (error "Parent of %s does not exist" old-name)) + (mapcar (lambda (elt) + (cond ((and (listp elt) + (string= old-name (car elt))) + (cons new-name (cdr elt))) + (t + elt))) parent-group))) + +(defun newsticker-group-rename-group (old-name new-name) + "Rename group OLD-NAME to NEW-NAME." + (interactive + (list (let* ((completion-ignore-case t)) + (completing-read "Rename group: " + (newsticker--group-names) + nil t (car (newsticker--group-find-parent-group + newsticker--treeview-current-feed)))) + (read-string "Rename to: "))) + (setq newsticker-groups (newsticker--group-do-rename-group old-name new-name)) + (newsticker--group-manage-orphan-feeds) + (newsticker--treeview-tree-update) + (newsticker-treeview-update) + (newsticker-treeview-jump newsticker--treeview-current-feed)) + +(defun newsticker--get-group-names (lst) + "Do get the group names from LST." + (delete nil (cons (car lst) + (apply 'append + (mapcar (lambda (e) + (cond ((listp e) + (newsticker--get-group-names e)) + (t + nil))) + (cdr lst)))))) + +(defun newsticker--group-names () + "Get names of all newsticker groups." + (newsticker--get-group-names newsticker-groups)) (defun newsticker-group-move-feed (name group-name &optional no-update) "Move feed NAME to group GROUP-NAME. Update treeview afterwards unless NO-UPDATE is non-nil." (interactive (let ((completion-ignore-case t)) - (list (completing-read "Feed Name: " - (mapcar 'car newsticker-url-list) + (list (completing-read "Name of feed or group to move: " + (append (mapcar 'car newsticker-url-list) + (newsticker--group-names)) nil t newsticker--treeview-current-feed) - (completing-read "Group Name: " (newsticker--group-all-groups) + (completing-read "Name of new parent group: " (newsticker--group-names) nil t)))) - (let ((group (if (and group-name (not (string= group-name ""))) - (newsticker--group-get-group group-name) - newsticker-groups))) + (let* ((group (if (and group-name (not (string= group-name ""))) + (newsticker--group-get-group group-name) + newsticker-groups)) + (moving-group-p (member name (newsticker--group-names))) + (moved-thing (if moving-group-p + (newsticker--group-get-group name) + name))) (unless group (error "Group %s does not exist" group-name)) (while (let ((old-group - (newsticker--group-find-group-for-feed name))) + (newsticker--group-find-parent-group name))) (when old-group - (delete name old-group)) + (delete moved-thing old-group)) old-group)) - (setcdr group (cons name (cdr group))) + (setcdr group (cons moved-thing (cdr group))) (unless no-update (newsticker--treeview-tree-update) - (newsticker-treeview-update)))) + (newsticker-treeview-update) + (newsticker-treeview-jump name)))) -(defun newsticker-group-delete-group (name) - "Remove group NAME." - (interactive - (let ((completion-ignore-case t)) - (list (completing-read "Group Name: " (newsticker--group-all-groups) - nil t)))) - (let* ((g (newsticker--group-get-group name)) - (p (or (newsticker--group-get-parent-group name) - newsticker-groups))) - (unless g - (error "Group %s does not exist" name)) - (delete g p)) - (newsticker--treeview-tree-update)) +(defun newsticker-group-shift-feed-down () + "Shift current feed down in its group." + (interactive) + (newsticker--group-shift 1)) + +(defun newsticker-group-shift-feed-up () + "Shift current feed down in its group." + (interactive) + (newsticker--group-shift -1)) + +(defun newsticker-group-shift-group-down () + "Shift current group down in its group." + (interactive) + (newsticker--group-shift 1 t)) + +(defun newsticker-group-shift-group-up () + "Shift current group down in its group." + (interactive) + (newsticker--group-shift -1 t)) + +(defun newsticker--group-shift (delta &optional move-group) + "Shift current feed or group within its parent group. +DELTA is an integer which specifies the direction and the amount +of the shift. If MOVE-GROUP is nil the currently selected feed +`newsticker--treeview-current-feed' is shifted, if it is t then +the current feed's parent group is shifted.." + (let* ((cur-feed newsticker--treeview-current-feed) + (thing (if move-group + (newsticker--group-find-parent-group cur-feed) + cur-feed)) + (parent-group (newsticker--group-find-parent-group + (if move-group (car thing) thing)))) + (unless parent-group + (error "Group not found!")) + (let* ((siblings (cdr parent-group)) + (pos (cl-position thing siblings :test 'equal)) + (tpos (+ pos delta )) + (new-pos (max 0 (min (length siblings) tpos))) + (beg (cl-subseq siblings 0 (min pos new-pos))) + (end (cl-subseq siblings (+ 1 (max pos new-pos)))) + (p (elt siblings new-pos))) + (when (not (= pos new-pos)) + (setcdr parent-group + (cl-concatenate 'list + beg + (if (> delta 0) + (list p thing) + (list thing p)) + end)) + (newsticker--treeview-tree-update) + (newsticker-treeview-update) + (newsticker-treeview-jump cur-feed))))) (defun newsticker--count-groups (group) "Recursively count number of subgroups of GROUP." @@ -1804,7 +1949,7 @@ Return t if groups have changed, nil otherwise." (let ((new-feed nil) (grouped-feeds (newsticker--count-grouped-feeds newsticker-groups))) (mapc (lambda (f) - (unless (newsticker--group-find-group-for-feed (car f)) + (unless (newsticker--group-find-parent-group (car f)) (setq new-feed t) (newsticker-group-move-feed (car f) nil t))) (append newsticker-url-list-defaults newsticker-url-list)) @@ -1817,37 +1962,22 @@ Return t if groups have changed, nil otherwise." ;; ====================================================================== ;;; Modes ;; ====================================================================== -(defun newsticker--treeview-create-groups-menu (group-list - excluded-group) - "Create menu for GROUP-LIST omitting EXCLUDED-GROUP." - (let ((menu (make-sparse-keymap (if (stringp (car group-list)) - (car group-list) - "Move to group...")))) - (mapc (lambda (g) - (when (listp g) - (let ((title (if (stringp (car g)) - (car g) - "Move to group..."))) - (unless (eq g excluded-group) - (define-key menu (vector (intern title)) - (list 'menu-item title - (newsticker--treeview-create-groups-menu - (cdr g) excluded-group))))))) - (reverse group-list)) - menu)) - -(defun newsticker--treeview-create-tree-menu (feed-name) - "Create tree menu for FEED-NAME." - (let ((menu (make-sparse-keymap feed-name))) +(defun newsticker--treeview-tree-open-menu (event) + "Open tree menu at position of EVENT." + (let* ((feed-name newsticker--treeview-current-feed) + (menu (make-sparse-keymap feed-name))) (define-key menu [newsticker-treeview-mark-list-items-old] (list 'menu-item "Mark all items old" 'newsticker-treeview-mark-list-items-old)) - (define-key menu [move] - (list 'menu-item "Move to group..." - (newsticker--treeview-create-groups-menu - newsticker-groups - (newsticker--group-get-group feed-name)))) - menu)) + (define-key menu [newsticker-treeview-get-news] + (list 'menu-item (concat "Get news for " feed-name) + 'newsticker-treeview-get-news)) + (define-key menu [newsticker-get-all-news] + (list 'menu-item "Get news for all feeds" + 'newsticker-get-all-news)) + (let ((choice (x-popup-menu event menu))) + (when choice + (funcall (car choice)))))) (defvar newsticker-treeview-list-menu (let ((menu (make-sparse-keymap "Newsticker List"))) @@ -1906,6 +2036,12 @@ Return t if groups have changed, nil otherwise." ;;(define-key map "\C-m" 'newsticker-treeview-scroll-item) (define-key map "\M-m" 'newsticker-group-move-feed) (define-key map "\M-a" 'newsticker-group-add-group) + (define-key map "\M-d" 'newsticker-group-delete-group) + (define-key map "\M-r" 'newsticker-group-rename-group) + (define-key map [M-down] 'newsticker-group-shift-feed-down) + (define-key map [M-up] 'newsticker-group-shift-feed-up) + (define-key map [M-S-down] 'newsticker-group-shift-group-down) + (define-key map [M-S-up] 'newsticker-group-shift-group-up) map) "Mode map for newsticker treeview.") @@ -1950,7 +2086,7 @@ Return t if groups have changed, nil otherwise." (newsticker--treeview-restore-layout) (save-excursion (switch-to-buffer (window-buffer (posn-window (event-end event)))) - (newsticker-treeview-tree-do-click (posn-point (event-end event))))) + (newsticker-treeview-tree-do-click (posn-point (event-end event)) event))) (defun newsticker-treeview-tree-do-click (&optional pos event) "Actually handle click event. @@ -1964,13 +2100,17 @@ POS gives the position where EVENT occurred." (newsticker-treeview-show-item)) (t ;; click in tree buffer - (let ((w (newsticker--treeview-get-node nt-id))) + (let ((w (newsticker--treeview-get-node-by-id nt-id))) (when w (newsticker--treeview-tree-update-tag w t t) - (setq w (newsticker--treeview-get-node nt-id)) + (setq w (newsticker--treeview-get-node-by-id nt-id)) (widget-put w :nt-selected t) (widget-apply w :action event) - (newsticker--treeview-set-current-node w)))))) + (newsticker--treeview-set-current-node w) + (and event + (eq 'mouse-3 (car event)) + (sit-for 0) + (newsticker--treeview-tree-open-menu event))))))) (newsticker--treeview-tree-update-highlight)) (defun newsticker--treeview-restore-layout () diff --git a/lisp/net/newsticker.el b/lisp/net/newsticker.el index c77058a1e19..630db6782a1 100644 --- a/lisp/net/newsticker.el +++ b/lisp/net/newsticker.el @@ -7,8 +7,6 @@ ;; URL: http://www.nongnu.org/newsticker ;; Created: 17. June 2003 ;; Keywords: News, RSS, Atom -;; Time-stamp: "6. Dezember 2009, 19:15:18 (ulf)" -;; Version: 1.99 ;; ====================================================================== @@ -28,6 +26,7 @@ ;; along with GNU Emacs. If not, see . (defconst newsticker-version "1.99" "Version number of newsticker.el.") +(make-obsolete-variable 'newsticker-version 'emacs-version "25.1") ;; ====================================================================== ;;; Commentary: diff --git a/lisp/net/nsm.el b/lisp/net/nsm.el new file mode 100644 index 00000000000..eb700d71c72 --- /dev/null +++ b/lisp/net/nsm.el @@ -0,0 +1,502 @@ +;;; nsm.el --- Network Security Manager + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Lars Magne Ingebrigtsen +;; Keywords: encryption, security, network + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'cl-lib) + +(defvar nsm-permanent-host-settings nil) +(defvar nsm-temporary-host-settings nil) + +(defgroup nsm nil + "Network Security Manager" + :version "25.1" + :group 'comm) + +(defcustom network-security-level 'medium + "How secure the network should be. +If a potential problem with the security of the network +connection is found, the user is asked to give input into how the +connection should be handled. + +The following values are possible: + +`low': Absolutely no checks are performed. +`medium': This is the default level, should be reasonable for most usage. +`high': This warns about additional things that many people would +not find useful. +`paranoid': On this level, the user is queried for most new connections. + +See the Emacs manual for a description of all things that are +checked and warned against." + :version "25.1" + :group 'nsm + :type '(choice (const :tag "Low" low) + (const :tag "Medium" medium) + (const :tag "High" high) + (const :tag "Paranoid" paranoid))) + +(defcustom nsm-settings-file (expand-file-name "network-security.data" + user-emacs-directory) + "The file the security manager settings will be stored in." + :version "25.1" + :group 'nsm + :type 'file) + +(defcustom nsm-save-host-names nil + "If non-nil, always save host names in the structures in `nsm-settings-file'. +By default, only hosts that have exceptions have their names +stored in plain text." + :version "25.1" + :group 'nsm + :type 'boolean) + +(defvar nsm-noninteractive nil + "If non-nil, the connection is opened in a non-interactive context. +This means that no queries should be performed.") + +(defun nsm-verify-connection (process host port &optional + save-fingerprint warn-unencrypted) + "Verify the security status of PROCESS that's connected to HOST:PORT. +If PROCESS is a gnutls connection, the certificate validity will +be examined. If it's a non-TLS connection, it may be compared +against previous connections. If the function determines that +there is something odd about the connection, the user will be +queried about what to do about it. + +The process it returned if everything is OK, and otherwise, the +process will be deleted and nil is returned. + +If SAVE-FINGERPRINT, always save the fingerprint of the +server (if the connection is a TLS connection). This is useful +to keep track of the TLS status of STARTTLS servers. + +If WARN-UNENCRYPTED, query the user if the connection is +unencrypted." + (if (eq network-security-level 'low) + process + (let* ((status (gnutls-peer-status process)) + (id (nsm-id host port)) + (settings (nsm-host-settings id))) + (cond + ((not (process-live-p process)) + nil) + ((not status) + ;; This is a non-TLS connection. + (nsm-check-plain-connection process host port settings + warn-unencrypted)) + (t + (let ((process + (nsm-check-tls-connection process host port status settings))) + (when (and process save-fingerprint + (null (nsm-host-settings id))) + (nsm-save-host host port status 'fingerprint 'always)) + process)))))) + +(defun nsm-check-tls-connection (process host port status settings) + (let ((process (nsm-check-certificate process host port status settings))) + (if (and process + (>= (nsm-level network-security-level) (nsm-level 'high))) + ;; Do further protocol-level checks if the security is high. + (nsm-check-protocol process host port status settings) + process))) + +(defun nsm-check-certificate (process host port status settings) + (let ((warnings (plist-get status :warnings))) + (cond + + ;; The certificate validated, but perhaps we want to do + ;; certificate pinning. + ((null warnings) + (cond + ((< (nsm-level network-security-level) (nsm-level 'high)) + process) + ;; The certificate is fine, but if we're paranoid, we might + ;; want to check whether it's changed anyway. + ((and (>= (nsm-level network-security-level) (nsm-level 'high)) + (not (nsm-fingerprint-ok-p host port status settings))) + (delete-process process) + nil) + ;; We haven't seen this before, and we're paranoid. + ((and (eq network-security-level 'paranoid) + (null settings) + (not (nsm-new-fingerprint-ok-p host port status))) + (delete-process process) + nil) + ((>= (nsm-level network-security-level) (nsm-level 'high)) + ;; Save the host fingerprint so that we can check it the + ;; next time we connect. + (nsm-save-host host port status 'fingerprint 'always) + process) + (t + process))) + + ;; The certificate did not validate. + ((not (equal network-security-level 'low)) + ;; We always want to pin the certificate of invalid connections + ;; to track man-in-the-middle or the like. + (if (not (nsm-fingerprint-ok-p host port status settings)) + (progn + (delete-process process) + nil) + ;; We have a warning, so query the user. + (if (and (not (nsm-warnings-ok-p status settings)) + (not (nsm-query + host port status 'conditions + "The TLS connection to %s:%s is insecure for the following reason%s:\n\n%s" + host port + (if (> (length warnings) 1) + "s" "") + (mapconcat #'gnutls-peer-status-warning-describe + warnings + "\n")))) + (progn + (delete-process process) + nil) + process)))))) + +(defun nsm-check-protocol (process host port status settings) + (let ((prime-bits (plist-get status :diffie-hellman-prime-bits)) + (encryption (format "%s-%s-%s" + (plist-get status :key-exchange) + (plist-get status :cipher) + (plist-get status :mac))) + (protocol (plist-get status :protocol))) + (cond + ((and prime-bits + (< prime-bits 1024) + (not (memq :diffie-hellman-prime-bits + (plist-get settings :conditions))) + (not + (nsm-query + host port status :diffie-hellman-prime-bits + "The Diffie-Hellman prime bits (%s) used for this connection to %s:%s is less than what is considered safe (%s)." + prime-bits host port 1024))) + (delete-process process) + nil) + ((and (string-match "\\bRC4\\b" encryption) + (not (memq :rc4 (plist-get settings :conditions))) + (not + (nsm-query + host port status :rc4 + "The connection to %s:%s uses the RC4 algorithm (%s), which is believed to be unsafe." + host port encryption))) + (delete-process process) + nil) + ((and protocol + (string-match "SSL" protocol) + (not (memq :ssl (plist-get settings :conditions))) + (not + (nsm-query + host port status :ssl + "The connection to %s:%s uses the %s protocol, which is believed to be unsafe." + host port protocol))) + (delete-process process) + nil) + (t + process)))) + +(defun nsm-fingerprint (status) + (plist-get (plist-get status :certificate) :public-key-id)) + +(defun nsm-fingerprint-ok-p (host port status settings) + (let ((did-query nil)) + (if (and settings + (not (eq (plist-get settings :fingerprint) :none)) + (not (equal (nsm-fingerprint status) + (plist-get settings :fingerprint))) + (not + (setq did-query + (nsm-query + host port status 'fingerprint + "The fingerprint for the connection to %s:%s has changed from %s to %s" + host port + (plist-get settings :fingerprint) + (nsm-fingerprint status))))) + ;; Not OK. + nil + (when did-query + ;; Remove any exceptions that have been set on the previous + ;; certificate. + (plist-put settings :conditions nil)) + t))) + +(defun nsm-new-fingerprint-ok-p (host port status) + (nsm-query + host port status 'fingerprint + "The fingerprint for the connection to %s:%s is new: %s" + host port + (nsm-fingerprint status))) + +(defun nsm-check-plain-connection (process host port settings warn-unencrypted) + ;; If this connection used to be TLS, but is now plain, then it's + ;; possible that we're being Man-In-The-Middled by a proxy that's + ;; stripping out STARTTLS announcements. + (cond + ((and (plist-get settings :fingerprint) + (not (eq (plist-get settings :fingerprint) :none)) + (not + (nsm-query + host port nil 'conditions + "The connection to %s:%s used to be an encrypted connection, but is now unencrypted. This might mean that there's a man-in-the-middle tapping this connection." + host port))) + (delete-process process) + nil) + ((and warn-unencrypted + (not (memq :unencrypted (plist-get settings :conditions))) + (not (nsm-query + host port nil 'conditions + "The connection to %s:%s is unencrypted." + host port))) + (delete-process process) + nil) + (t + process))) + +(defun nsm-query (host port status what message &rest args) + ;; If there is no user to answer queries, then say `no' to everything. + (if (or noninteractive + nsm-noninteractive) + nil + (let ((response + (condition-case nil + (nsm-query-user message args (nsm-format-certificate status)) + ;; Make sure we manage to close the process if the user hits + ;; `C-g'. + (quit 'no) + (error 'no)))) + (if (eq response 'no) + nil + (nsm-save-host host port status what response) + t)))) + +(defun nsm-query-user (message args cert) + (let ((buffer (get-buffer-create "*Network Security Manager*"))) + (with-help-window buffer + (with-current-buffer buffer + (erase-buffer) + (when (> (length cert) 0) + (insert cert "\n")) + (let ((start (point))) + (insert (apply 'format message args)) + (goto-char start) + ;; Fill the first line of the message, which usually + ;; contains lots of explanatory text. + (fill-region (point) (line-end-position))))) + (let ((responses '((?n . no) + (?s . session) + (?a . always))) + (prefix "") + response) + (while (not response) + (setq response + (cdr + (assq (downcase + (read-char + (concat prefix + "Continue connecting? (No, Session only, Always)"))) + responses))) + (unless response + (ding) + (setq prefix "Invalid choice. "))) + (kill-buffer buffer) + ;; If called from a callback, `read-char' will insert things + ;; into the pending input. Clear that. + (clear-this-command-keys) + response))) + +(defun nsm-save-host (host port status what permanency) + (let* ((id (nsm-id host port)) + (saved + (list :id id + :fingerprint (or (nsm-fingerprint status) + ;; Plain connection. + :none)))) + (when (or (eq what 'conditions) + nsm-save-host-names) + (nconc saved (list :host (format "%s:%s" host port)))) + ;; We either want to save/update the fingerprint or the conditions + ;; of the certificate/unencrypted connection. + (cond + ((eq what 'conditions) + (cond + ((not status) + (nconc saved '(:conditions (:unencrypted)))) + ((plist-get status :warnings) + (nconc saved + (list :conditions (plist-get status :warnings)))))) + ((not (eq what 'fingerprint)) + ;; Store additional protocol settings. + (let ((settings (nsm-host-settings id))) + (when settings + (setq saved settings)) + (if (plist-get saved :conditions) + (nconc (plist-get saved :conditions) (list what)) + (nconc saved (list :conditions (list what))))))) + (if (eq permanency 'always) + (progn + (nsm-remove-temporary-setting id) + (nsm-remove-permanent-setting id) + (push saved nsm-permanent-host-settings) + (nsm-write-settings)) + (nsm-remove-temporary-setting id) + (push saved nsm-temporary-host-settings)))) + +(defun nsm-write-settings () + (with-temp-file nsm-settings-file + (insert "(\n") + (dolist (setting nsm-permanent-host-settings) + (insert " ") + (prin1 setting (current-buffer)) + (insert "\n")) + (insert ")\n"))) + +(defun nsm-read-settings () + (setq nsm-permanent-host-settings + (with-temp-buffer + (insert-file-contents nsm-settings-file) + (goto-char (point-min)) + (ignore-errors (read (current-buffer)))))) + +(defun nsm-id (host port) + (concat "sha1:" (sha1 (format "%s:%s" host port)))) + +(defun nsm-host-settings (id) + (when (and (not nsm-permanent-host-settings) + (file-exists-p nsm-settings-file)) + (nsm-read-settings)) + (let ((result nil)) + (dolist (elem (append nsm-temporary-host-settings + nsm-permanent-host-settings)) + (when (and (not result) + (equal (plist-get elem :id) id)) + (setq result elem))) + result)) + +(defun nsm-warnings-ok-p (status settings) + (let ((ok t) + (conditions (plist-get settings :conditions))) + (dolist (warning (plist-get status :warnings)) + (unless (memq warning conditions) + (setq ok nil))) + ok)) + +(defun nsm-remove-permanent-setting (id) + (setq nsm-permanent-host-settings + (cl-delete-if + (lambda (elem) + (equal (plist-get elem :id) id)) + nsm-permanent-host-settings))) + +(defun nsm-remove-temporary-setting (id) + (setq nsm-temporary-host-settings + (cl-delete-if + (lambda (elem) + (equal (plist-get elem :id) id)) + nsm-temporary-host-settings))) + +(defun nsm-format-certificate (status) + (let ((cert (plist-get status :certificate))) + (when cert + (with-temp-buffer + (insert + "Certificate information\n" + "Issued by:" + (nsm-certificate-part (plist-get cert :issuer) "CN" t) "\n" + "Issued to:" + (or (nsm-certificate-part (plist-get cert :subject) "O") + (nsm-certificate-part (plist-get cert :subject) "OU" t)) + "\n" + "Hostname:" + (nsm-certificate-part (plist-get cert :subject) "CN" t) "\n") + (when (and (plist-get cert :public-key-algorithm) + (plist-get cert :signature-algorithm)) + (insert + "Public key:" (plist-get cert :public-key-algorithm) + ", signature: " (plist-get cert :signature-algorithm) "\n")) + (when (and (plist-get status :key-exchange) + (plist-get status :cipher) + (plist-get status :mac) + (plist-get status :protocol)) + (insert + "Protocol:" (plist-get status :protocol) + ", key: " (plist-get status :key-exchange) + ", cipher: " (plist-get status :cipher) + ", mac: " (plist-get status :mac) "\n")) + (when (plist-get cert :certificate-security-level) + (insert + "Security level:" + (propertize (plist-get cert :certificate-security-level) + 'face 'bold) + "\n")) + (insert + "Valid:From " (plist-get cert :valid-from) + " to " (plist-get cert :valid-to) "\n\n") + (goto-char (point-min)) + (while (re-search-forward "^[^:]+:" nil t) + (insert (make-string (- 20 (current-column)) ? ))) + (buffer-string))))) + +(defun nsm-certificate-part (string part &optional full) + (let ((part (cadr (assoc part (nsm-parse-subject string))))) + (cond + (part part) + (full string) + (t nil)))) + +(defun nsm-parse-subject (string) + (with-temp-buffer + (insert string) + (goto-char (point-min)) + (let ((start (point)) + (result nil)) + (while (not (eobp)) + (push (replace-regexp-in-string + "[\\]\\(.\\)" "\\1" + (buffer-substring start + (if (re-search-forward "[^\\]," nil 'move) + (1- (point)) + (point)))) + result) + (setq start (point))) + (mapcar + (lambda (elem) + (let ((pos (cl-position ?= elem))) + (if pos + (list (substring elem 0 pos) + (substring elem (1+ pos))) + elem))) + (nreverse result))))) + +(defun nsm-level (symbol) + "Return a numerical level for SYMBOL for easier comparison." + (cond + ((eq symbol 'low) 0) + ((eq symbol 'medium) 1) + ((eq symbol 'high) 2) + (t 3))) + +(provide 'nsm) + +;;; nsm.el ends here diff --git a/lisp/net/ntlm.el b/lisp/net/ntlm.el index bff3bab7207..30958aaa6bf 100644 --- a/lisp/net/ntlm.el +++ b/lisp/net/ntlm.el @@ -80,8 +80,8 @@ is not given." (request-msgType (concat (make-string 1 1) (make-string 3 0))) ;0x01 0x00 0x00 0x00 (request-flags (concat (make-string 1 7) (make-string 1 178) - (make-string 2 0))) - ;0x07 0xb2 0x00 0x00 + (make-string 1 8) (make-string 1 0))) + ;0x07 0xb2 0x08 0x00 lu ld off-d off-u) (when (string-match "@" user) (unless domain @@ -144,11 +144,35 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a return value of (setq domain (substring user (1+ (match-beginning 0)))) (setq user (substring user 0 (match-beginning 0)))) - ;; generate response data - (setq lmRespData - (ntlm-smb-owf-encrypt (car password-hashes) challengeData)) - (setq ntRespData - (ntlm-smb-owf-encrypt (cadr password-hashes) challengeData)) + ;; check if "negotiate NTLM2 key" flag is set in type 2 message + (if (not (zerop (logand (aref flags 2) 8))) + (let (randomString + sessionHash) + ;; generate NTLM2 session response data + (setq randomString (string-make-unibyte + (concat + (make-string 1 (random 256)) + (make-string 1 (random 256)) + (make-string 1 (random 256)) + (make-string 1 (random 256)) + (make-string 1 (random 256)) + (make-string 1 (random 256)) + (make-string 1 (random 256)) + (make-string 1 (random 256))))) + (setq sessionHash (secure-hash 'md5 + (concat challengeData randomString) + nil nil t)) + (setq sessionHash (substring sessionHash 0 8)) + + (setq lmRespData (concat randomString (make-string 16 0))) + (setq ntRespData (ntlm-smb-owf-encrypt + (cadr password-hashes) sessionHash))) + (progn + ;; generate response data + (setq lmRespData + (ntlm-smb-owf-encrypt (car password-hashes) challengeData)) + (setq ntRespData + (ntlm-smb-owf-encrypt (cadr password-hashes) challengeData)))) ;; get offsets to fields to pack the response struct in a string (setq lu (length user)) diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index f06f8bd292e..411932142e9 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -145,11 +145,13 @@ for connections using SSL/TLS." (defcustom rcirc-fill-column nil "Column beyond which automatic line-wrapping should happen. -If nil, use value of `fill-column'. If 'frame-width, use the -maximum frame width." - :type '(choice (const :tag "Value of `fill-column'") - (const :tag "Full frame width" frame-width) - (integer :tag "Number of columns")) +If nil, use value of `fill-column'. +If a function (e.g., `frame-text-width' or `window-text-width'), +call it to compute the number of columns." + :risky t ; can get funcalled + :type '(choice (const :tag "Value of `fill-column'" nil) + (integer :tag "Number of columns") + (function :tag "Function returning the number of columns")) :group 'rcirc) (defcustom rcirc-fill-prefix nil @@ -597,10 +599,10 @@ If ARG is non-nil, instead prompt for connection parameters." `(with-current-buffer rcirc-server-buffer ,@body)) -(defun rcirc-float-time () +(defalias 'rcirc-float-time (if (featurep 'xemacs) - (time-to-seconds (current-time)) - (float-time))) + 'time-to-seconds + 'float-time)) (defun rcirc-prompt-for-encryption (server-plist) "Prompt the user for the encryption method to use. @@ -661,7 +663,7 @@ Functions are called with PROCESS and SENTINEL arguments.") (defcustom rcirc-reconnect-delay 0 "The minimum interval in seconds between reconnect attempts. When 0, do not auto-reconnect." - :version "24.5" + :version "25.1" :type 'integer :group 'rcirc) @@ -2533,11 +2535,10 @@ If ARG is given, opens the URL in a new browser window." (let ((fill-prefix (or rcirc-fill-prefix (make-string (- (point) (line-beginning-position)) ?\s))) - (fill-column (- (cond ((eq rcirc-fill-column 'frame-width) - (1- (frame-width))) - (rcirc-fill-column - rcirc-fill-column) - (t fill-column)) + (fill-column (- (cond ((null rcirc-fill-column) fill-column) + ((functionp rcirc-fill-column) + (funcall rcirc-fill-column)) + (t rcirc-fill-column)) ;; make sure ... doesn't cause line wrapping 3))) (fill-region (point) (point-max) nil t)))) diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 58442575ad2..387bb024a52 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -33,11 +33,13 @@ (eval-when-compile (require 'cl)) (eval-when-compile (require 'url)) ;For url-filename's setf handler. (require 'browse-url) +(require 'subr-x) +(require 'dom) (defgroup shr nil "Simple HTML Renderer" - :version "24.1" - :group 'hypermedia) + :version "25.1" + :group 'web) (defcustom shr-max-image-proportion 0.9 "How big pictures displayed are in relation to the window they're in. @@ -123,19 +125,24 @@ cid: URL as the argument.") "Font for link elements." :group 'shr) +(defvar shr-inhibit-images nil + "If non-nil, inhibit loading images.") + ;;; Internal variables. (defvar shr-folding-mode nil) (defvar shr-state nil) (defvar shr-start nil) (defvar shr-indentation 0) -(defvar shr-inhibit-images nil) +(defvar shr-internal-width (or shr-width (1- (window-width)))) (defvar shr-list-mode nil) (defvar shr-content-cache nil) (defvar shr-kinsoku-shorten nil) (defvar shr-table-depth 0) (defvar shr-stylesheet nil) (defvar shr-base nil) +(defvar shr-depth 0) +(defvar shr-warning nil) (defvar shr-ignore-cache nil) (defvar shr-external-rendering-functions nil) (defvar shr-target-id nil) @@ -197,9 +204,13 @@ DOM should be a parse tree as generated by (shr-state nil) (shr-start nil) (shr-base nil) - (shr-width (or shr-width (1- (window-width))))) - (shr-descend (shr-transform-dom dom)) - (shr-remove-trailing-whitespace start (point)))) + (shr-depth 0) + (shr-warning nil) + (shr-internal-width (or shr-width (1- (window-width))))) + (shr-descend dom) + (shr-remove-trailing-whitespace start (point)) + (when shr-warning + (message "%s" shr-warning)))) (defun shr-remove-trailing-whitespace (start end) (let ((width (window-width))) @@ -214,12 +225,16 @@ DOM should be a parse tree as generated by (overlay-put overlay 'before-string nil)))) (forward-line 1))))) -(defun shr-copy-url () +(defun shr-copy-url (&optional image-url) "Copy the URL under point to the kill ring. +If IMAGE-URL (the prefix) is non-nil, or there is no link under +point, but there is an image under point then copy the URL of the +image under point instead. If called twice, then try to fetch the URL and see whether it redirects somewhere else." - (interactive) - (let ((url (get-text-property (point) 'shr-url))) + (interactive "P") + (let ((url (or (get-text-property (point) 'shr-url) + (get-text-property (point) 'image-url)))) (cond ((not url) (message "No URL under point")) @@ -242,16 +257,17 @@ redirects somewhere else." ;; Copy the URL to the kill ring. (t (with-temp-buffer - (insert url) + (insert (url-encode-url url)) (copy-region-as-kill (point-min) (point-max)) - (message "Copied %s" url)))))) + (message "Copied %s" (buffer-string))))))) (defun shr-next-link () "Skip to the next link." (interactive) (let ((skip (text-property-any (point) (point-max) 'help-echo nil))) - (if (not (setq skip (text-property-not-all skip (point-max) - 'help-echo nil))) + (if (or (eobp) + (not (setq skip (text-property-not-all skip (point-max) + 'help-echo nil)))) (message "No next link") (goto-char skip) (message "%s" (get-text-property (point) 'help-echo))))) @@ -286,7 +302,7 @@ redirects somewhere else." (let ((text (get-text-property (point) 'shr-alt))) (if (not text) (message "No image under point") - (message "%s" text)))) + (message "%s" (shr-fold-text text))))) (defun shr-browse-image (&optional copy-url) "Browse the image under point. @@ -353,78 +369,80 @@ size, and full-buffer size." ;;; Utility functions. -(defun shr-transform-dom (dom) - (let ((result (list (pop dom)))) - (dolist (arg (pop dom)) - (push (cons (intern (concat ":" (symbol-name (car arg))) obarray) - (cdr arg)) - result)) - (dolist (sub dom) - (if (stringp sub) - (push (cons 'text sub) result) - (push (shr-transform-dom sub) result))) - (nreverse result))) - -(defsubst shr-generic (cont) - (dolist (sub cont) - (cond - ((eq (car sub) 'text) - (shr-insert (cdr sub))) - ((listp (cdr sub)) - (shr-descend sub))))) +(defsubst shr-generic (dom) + (dolist (sub (dom-children dom)) + (if (stringp sub) + (shr-insert sub) + (shr-descend sub)))) (defun shr-descend (dom) (let ((function (or ;; Allow other packages to override (or provide) rendering ;; of elements. - (cdr (assq (car dom) shr-external-rendering-functions)) - (intern (concat "shr-tag-" (symbol-name (car dom))) obarray))) - (style (cdr (assq :style (cdr dom)))) + (cdr (assq (dom-tag dom) shr-external-rendering-functions)) + (intern (concat "shr-tag-" (symbol-name (dom-tag dom))) obarray))) + (style (dom-attr dom 'style)) (shr-stylesheet shr-stylesheet) + (shr-depth (1+ shr-depth)) (start (point))) - (when style - (if (string-match "color\\|display\\|border-collapse" style) - (setq shr-stylesheet (nconc (shr-parse-style style) - shr-stylesheet)) - (setq style nil))) - ;; If we have a display:none, then just ignore this part of the DOM. - (unless (equal (cdr (assq 'display shr-stylesheet)) "none") - (if (fboundp function) - (funcall function (cdr dom)) - (shr-generic (cdr dom))) - (when (and shr-target-id - (equal (cdr (assq :id (cdr dom))) shr-target-id)) - ;; If the element was empty, we don't have anything to put the - ;; anchor on. So just insert a dummy character. - (when (= start (point)) - (insert "*")) - (put-text-property start (1+ start) 'shr-target-id shr-target-id)) - ;; If style is set, then this node has set the color. + ;; shr uses about 12 frames per nested node. + (if (> shr-depth (/ max-specpdl-size 12)) + (setq shr-warning "Too deeply nested to render properly; consider increasing `max-specpdl-size'") (when style - (shr-colorize-region start (point) - (cdr (assq 'color shr-stylesheet)) - (cdr (assq 'background-color shr-stylesheet))))))) + (if (string-match "color\\|display\\|border-collapse" style) + (setq shr-stylesheet (nconc (shr-parse-style style) + shr-stylesheet)) + (setq style nil))) + ;; If we have a display:none, then just ignore this part of the DOM. + (unless (equal (cdr (assq 'display shr-stylesheet)) "none") + (if (fboundp function) + (funcall function dom) + (shr-generic dom)) + (when (and shr-target-id + (equal (dom-attr dom 'id) shr-target-id)) + ;; If the element was empty, we don't have anything to put the + ;; anchor on. So just insert a dummy character. + (when (= start (point)) + (insert "*")) + (put-text-property start (1+ start) 'shr-target-id shr-target-id)) + ;; If style is set, then this node has set the color. + (when style + (shr-colorize-region + start (point) + (cdr (assq 'color shr-stylesheet)) + (cdr (assq 'background-color shr-stylesheet)))))))) -(defmacro shr-char-breakable-p (char) +(defun shr-fold-text (text) + (if (zerop (length text)) + text + (with-temp-buffer + (let ((shr-indentation 0) + (shr-state nil) + (shr-start nil) + (shr-internal-width (window-width))) + (shr-insert text) + (buffer-string))))) + +(define-inline shr-char-breakable-p (char) "Return non-nil if a line can be broken before and after CHAR." - `(aref fill-find-break-point-function-table ,char)) -(defmacro shr-char-nospace-p (char) + (inline-quote (aref fill-find-break-point-function-table ,char))) +(define-inline shr-char-nospace-p (char) "Return non-nil if no space is required before and after CHAR." - `(aref fill-nospace-between-words-table ,char)) + (inline-quote (aref fill-nospace-between-words-table ,char))) ;; KINSOKU is a Japanese word meaning a rule that should not be violated. ;; In Emacs, it is a term used for characters, e.g. punctuation marks, ;; parentheses, and so on, that should not be placed in the beginning ;; of a line or the end of a line. -(defmacro shr-char-kinsoku-bol-p (char) +(define-inline shr-char-kinsoku-bol-p (char) "Return non-nil if a line ought not to begin with CHAR." - `(let ((char ,char)) - (and (not (eq char ?')) - (aref (char-category-set char) ?>)))) -(defmacro shr-char-kinsoku-eol-p (char) + (inline-letevals (char) + (inline-quote (and (not (eq ,char ?')) + (aref (char-category-set ,char) ?>))))) +(define-inline shr-char-kinsoku-eol-p (char) "Return non-nil if a line ought not to end with CHAR." - `(aref (char-category-set ,char) ?<)) + (inline-quote (aref (char-category-set ,char) ?<))) (unless (shr-char-kinsoku-bol-p (make-char 'japanese-jisx0208 33 35)) (load "kinsoku" nil t)) @@ -467,8 +485,8 @@ size, and full-buffer size." (insert elem) (setq shr-state nil) (let (found) - (while (and (> (current-column) shr-width) - (> shr-width 0) + (while (and (> (current-column) shr-internal-width) + (> shr-internal-width 0) (progn (setq found (shr-find-fill-point)) (not (eolp)))) @@ -482,10 +500,10 @@ size, and full-buffer size." (when (> shr-indentation 0) (shr-indent)) (end-of-line)) - (if (<= (current-column) shr-width) + (if (<= (current-column) shr-internal-width) (insert " ") ;; In case we couldn't get a valid break point (because of a - ;; word that's longer than `shr-width'), just break anyway. + ;; word that's longer than `shr-internal-width'), just break anyway. (insert "\n") (when (> shr-indentation 0) (shr-indent))))) @@ -493,7 +511,7 @@ size, and full-buffer size." (delete-char -1))))) (defun shr-find-fill-point () - (when (> (move-to-column shr-width) shr-width) + (when (> (move-to-column shr-internal-width) shr-internal-width) (backward-char 1)) (let ((bp (point)) failed) @@ -533,7 +551,7 @@ size, and full-buffer size." ;; so we look for the second best position. (while (and (progn (forward-char 1) - (<= (current-column) shr-width)) + (<= (current-column) shr-internal-width)) (progn (setq bp (point)) (shr-char-kinsoku-eol-p (following-char))))) @@ -570,6 +588,8 @@ size, and full-buffer size." ;; Always chop off anchors. (when (string-match "#.*" url) (setq url (substring url 0 (match-beginning 0)))) + ;; NB: URI may itself be relative to the document s URI + (setq url (shr-expand-url url)) (let* ((parsed (url-generic-parse-url url)) (local (url-filename parsed))) (setf (url-filename parsed) "") @@ -585,9 +605,14 @@ size, and full-buffer size." (url-type parsed) url))) +(autoload 'url-expand-file-name "url-expand") + +;; FIXME This needs some tests writing. +;; Does it even need to exist, given that url-expand-file-name does? (defun shr-expand-url (url &optional base) (setq base (if base + ;; shr-parse-base should never call this with non-nil base! (shr-parse-base base) ;; Bound by the parser. shr-base)) @@ -596,8 +621,8 @@ size, and full-buffer size." (cond ((or (not url) (not base) (string-match "\\`[a-z]*:" url)) - ;; Absolute URL. - (or url (car base))) + ;; Absolute or empty URI + (or url (nth 3 base))) ((eq (aref url 0) ?/) (if (and (> (length url) 1) (eq (aref url 1) ?/)) @@ -610,7 +635,7 @@ size, and full-buffer size." (concat (nth 3 base) url)) (t ;; Totally relative. - (concat (car base) (expand-file-name url (cadr base)))))) + (url-expand-file-name url (concat (car base) (cadr base)))))) (defun shr-ensure-newline () (unless (zerop (current-column)) @@ -640,9 +665,9 @@ size, and full-buffer size." (when (> shr-indentation 0) (insert (make-string shr-indentation ? )))) -(defun shr-fontize-cont (cont &rest types) +(defun shr-fontize-dom (dom &rest types) (let (shr-start) - (shr-generic cont) + (shr-generic dom) (dolist (type types) (shr-add-font (or shr-start (point)) (point) type)))) @@ -755,6 +780,8 @@ element is the data blob and the second element is the content-type." ((eq size 'original) (create-image data nil t :ascent 100 :format content-type)) + ((eq content-type 'image/svg+xml) + (create-image data 'svg t :ascent 100)) ((eq size 'full) (ignore-errors (shr-rescale-image data content-type))) @@ -817,14 +844,24 @@ Return a string with image data." (shr-parse-image-data))))) (defun shr-parse-image-data () - (list - (buffer-substring (point) (point-max)) - (save-excursion - (save-restriction - (narrow-to-region (point-min) (point)) - (let ((content-type (mail-fetch-field "content-type"))) - (and content-type - (intern content-type obarray))))))) + (let ((data (buffer-substring (point) (point-max))) + (content-type + (save-excursion + (save-restriction + (narrow-to-region (point-min) (point)) + (let ((content-type (mail-fetch-field "content-type"))) + (and content-type + ;; Remove any comments in the type string. + (intern (replace-regexp-in-string ";.*" "" content-type) + obarray))))))) + ;; SVG images may contain references to further images that we may + ;; want to block. So special-case these by parsing the XML data + ;; and remove the blocked bits. + (when (eq content-type 'image/svg+xml) + (setq data + (shr-dom-to-xml + (libxml-parse-xml-region (point) (point-max))))) + (list data content-type))) (defun shr-image-displayer (content-function) "Return a function to display an image. @@ -846,9 +883,9 @@ START, and END. Note that START and END should be markers." (list (current-buffer) start end) t t))))) -(defun shr-heading (cont &rest types) +(defun shr-heading (dom &rest types) (shr-ensure-paragraph) - (apply #'shr-fontize-cont cont types) + (apply #'shr-fontize-dom dom types) (shr-ensure-paragraph)) (defun shr-urlify (start url &optional title) @@ -856,7 +893,7 @@ START, and END. Note that START and END should be markers." (add-text-properties start (point) (list 'shr-url url - 'help-echo (if title (format "%s (%s)" url title) url) + 'help-echo (if title (shr-fold-text (format "%s (%s)" url title)) url) 'follow-link t 'mouse-face 'highlight 'keymap shr-map))) @@ -957,105 +994,106 @@ ones, in case fg and bg are nil." ;;; Tag-specific rendering rules. -(defun shr-tag-body (cont) +(defun shr-tag-body (dom) (let* ((start (point)) - (fgcolor (cdr (or (assq :fgcolor cont) - (assq :text cont)))) - (bgcolor (cdr (assq :bgcolor cont))) + (fgcolor (or (dom-attr dom 'fgcolor) (dom-attr dom 'text))) + (bgcolor (dom-attr dom 'bgcolor)) (shr-stylesheet (list (cons 'color fgcolor) (cons 'background-color bgcolor)))) - (shr-generic cont) + (shr-generic dom) (shr-colorize-region start (point) fgcolor bgcolor))) -(defun shr-tag-style (_cont) +(defun shr-tag-style (_dom) ) -(defun shr-tag-script (_cont) +(defun shr-tag-script (_dom) ) -(defun shr-tag-comment (_cont) +(defun shr-tag-comment (_dom) ) (defun shr-dom-to-xml (dom) - "Convert DOM into a string containing the xml representation." - (let ((arg " ") - (text "") - url) - (dolist (sub (cdr dom)) - (cond - ((listp (cdr sub)) - ;; Ignore external image definitions if required. - ;; - (when (or (not (eq (car sub) 'image)) - (not (setq url (cdr (assq ':xlink:href (cdr sub))))) - (not shr-blocked-images) - (not (string-match shr-blocked-images url))) - (setq text (concat text (shr-dom-to-xml sub))))) - ((eq (car sub) 'text) - (setq text (concat text (cdr sub)))) - (t - (setq arg (concat arg (format "%s=\"%s\" " - (substring (symbol-name (car sub)) 1) - (cdr sub))))))) - (format "<%s%s>%s" - (car dom) - (substring arg 0 (1- (length arg))) - text - (car dom)))) + (with-temp-buffer + (shr-dom-print dom) + (buffer-string))) -(defun shr-tag-svg (cont) +(defun shr-dom-print (dom) + "Convert DOM into a string containing the xml representation." + (insert (format "<%s" (dom-tag dom))) + (dolist (attr (dom-attributes dom)) + ;; Ignore attributes that start with a colon because they are + ;; private elements. + (unless (= (aref (format "%s" (car attr)) 0) ?:) + (insert (format " %s=\"%s\"" (car attr) (cdr attr))))) + (insert ">") + (let (url) + (dolist (elem (dom-children dom)) + (cond + ((stringp elem) + (insert elem)) + ((eq (dom-tag elem) 'comment) + ) + ((or (not (eq (dom-tag elem) 'image)) + ;; Filter out blocked elements inside the SVG image. + (not (setq url (dom-attr elem ':xlink:href))) + (not shr-blocked-images) + (not (string-match shr-blocked-images url))) + (insert " ") + (shr-dom-print elem))))) + (insert (format "" (dom-tag dom)))) + +(defun shr-tag-svg (dom) (when (and (image-type-available-p 'svg) (not shr-inhibit-images)) - (funcall shr-put-image-function - (shr-dom-to-xml (cons 'svg cont)) - "SVG Image"))) + (funcall shr-put-image-function (list (shr-dom-to-xml dom) 'image/svg+xml) + "SVG Image"))) -(defun shr-tag-sup (cont) +(defun shr-tag-sup (dom) (let ((start (point))) - (shr-generic cont) + (shr-generic dom) (put-text-property start (point) 'display '(raise 0.5)))) -(defun shr-tag-sub (cont) +(defun shr-tag-sub (dom) (let ((start (point))) - (shr-generic cont) + (shr-generic dom) (put-text-property start (point) 'display '(raise -0.5)))) -(defun shr-tag-label (cont) - (shr-generic cont) +(defun shr-tag-label (dom) + (shr-generic dom) (shr-ensure-paragraph)) -(defun shr-tag-p (cont) +(defun shr-tag-p (dom) (shr-ensure-paragraph) (shr-indent) - (shr-generic cont) + (shr-generic dom) (shr-ensure-paragraph)) -(defun shr-tag-div (cont) +(defun shr-tag-div (dom) (shr-ensure-newline) (shr-indent) - (shr-generic cont) + (shr-generic dom) (shr-ensure-newline)) -(defun shr-tag-s (cont) - (shr-fontize-cont cont 'shr-strike-through)) +(defun shr-tag-s (dom) + (shr-fontize-dom dom 'shr-strike-through)) -(defun shr-tag-del (cont) - (shr-fontize-cont cont 'shr-strike-through)) +(defun shr-tag-del (dom) + (shr-fontize-dom dom 'shr-strike-through)) -(defun shr-tag-b (cont) - (shr-fontize-cont cont 'bold)) +(defun shr-tag-b (dom) + (shr-fontize-dom dom 'bold)) -(defun shr-tag-i (cont) - (shr-fontize-cont cont 'italic)) +(defun shr-tag-i (dom) + (shr-fontize-dom dom 'italic)) -(defun shr-tag-em (cont) - (shr-fontize-cont cont 'italic)) +(defun shr-tag-em (dom) + (shr-fontize-dom dom 'italic)) -(defun shr-tag-strong (cont) - (shr-fontize-cont cont 'bold)) +(defun shr-tag-strong (dom) + (shr-fontize-dom dom 'bold)) -(defun shr-tag-u (cont) - (shr-fontize-cont cont 'underline)) +(defun shr-tag-u (dom) + (shr-fontize-dom dom 'underline)) (defun shr-parse-style (style) (when style @@ -1077,20 +1115,19 @@ ones, in case fg and bg are nil." plist))))) plist))) -(defun shr-tag-base (cont) - (let ((base (cdr (assq :href cont)))) - (when base - (setq shr-base (shr-parse-base base)))) - (shr-generic cont)) +(defun shr-tag-base (dom) + (when-let (base (dom-attr dom 'href)) + (setq shr-base (shr-parse-base base))) + (shr-generic dom)) -(defun shr-tag-a (cont) - (let ((url (cdr (assq :href cont))) - (title (cdr (assq :title cont))) +(defun shr-tag-a (dom) + (let ((url (dom-attr dom 'href)) + (title (dom-attr dom 'title)) (start (point)) shr-start) - (shr-generic cont) + (shr-generic dom) (when (and shr-target-id - (equal (cdr (assq :name cont)) shr-target-id)) + (equal (dom-attr dom 'name) shr-target-id)) ;; We have a zero-length
    element, so just ;; insert... something. (when (= start (point)) @@ -1101,19 +1138,33 @@ ones, in case fg and bg are nil." (not shr-inhibit-decoration)) (shr-urlify (or shr-start start) (shr-expand-url url) title)))) -(defun shr-tag-object (cont) - (let ((start (point)) - url) - (dolist (elem cont) - (when (eq (car elem) 'embed) - (setq url (or url (cdr (assq :src (cdr elem)))))) - (when (and (eq (car elem) 'param) - (equal (cdr (assq :name (cdr elem))) "movie")) - (setq url (or url (cdr (assq :value (cdr elem))))))) - (when url - (shr-insert " [multimedia] ") - (shr-urlify start (shr-expand-url url))) - (shr-generic cont))) +(defun shr-tag-object (dom) + (unless shr-inhibit-images + (let ((start (point)) + url multimedia image) + (when-let (type (dom-attr dom 'type)) + (when (string-match "\\`image/svg" type) + (setq url (dom-attr dom 'data) + image t))) + (dolist (child (dom-non-text-children dom)) + (cond + ((eq (dom-tag child) 'embed) + (setq url (or url (dom-attr child 'src)) + multimedia t)) + ((and (eq (dom-tag child) 'param) + (equal (dom-attr child 'name) "movie")) + (setq url (or url (dom-attr child 'value)) + multimedia t)))) + (when url + (cond + (image + (shr-tag-img dom url) + (setq dom nil)) + (multimedia + (shr-insert " [multimedia] ") + (shr-urlify start (shr-expand-url url))))) + (when dom + (shr-generic dom))))) (defcustom shr-prefer-media-type-alist '(("webm" . 1.0) ("ogv" . 1.0) @@ -1132,10 +1183,10 @@ url if no type is specified. The value should be a float in the range 0.0 to (defun shr--get-media-pref (elem) "Determine the preference for ELEM. The preference is a float determined from `shr-prefer-media-type'." - (let ((type (cdr (assq :type elem))) + (let ((type (dom-attr elem 'type)) (p 0.0)) (unless type - (setq type (cdr (assq :src elem)))) + (setq type (dom-attr elem 'src))) (when type (dolist (pref shr-prefer-media-type-alist) (when (and @@ -1144,61 +1195,61 @@ The preference is a float determined from `shr-prefer-media-type'." (setq p (cdr pref))))) p)) -(defun shr--extract-best-source (cont &optional url pref) - "Extract the best `:src' property from blocks in CONT." +(defun shr--extract-best-source (dom &optional url pref) + "Extract the best `:src' property from blocks in DOM." (setq pref (or pref -1.0)) (let (new-pref) - (dolist (elem cont) - (when (and (eq (car elem) 'source) + (dolist (elem (dom-non-text-children dom)) + (when (and (eq (dom-tag elem) 'source) (< pref (setq new-pref (shr--get-media-pref elem)))) (setq pref new-pref - url (cdr (assq :src elem))) + url (dom-attr elem 'src)) ;; libxml's html parser isn't HTML5 compliant and non terminated ;; source tags might end up as children. So recursion it is... - (dolist (child (cdr elem)) - (when (eq (car child) 'source) + (dolist (child (dom-non-text-children elem)) + (when (eq (dom-tag child) 'source) (let ((ret (shr--extract-best-source (list child) url pref))) (when (< pref (cdr ret)) (setq url (car ret) pref (cdr ret))))))))) (cons url pref)) -(defun shr-tag-video (cont) - (let ((image (cdr (assq :poster cont))) - (url (cdr (assq :src cont))) +(defun shr-tag-video (dom) + (let ((image (dom-attr dom 'poster)) + (url (dom-attr dom 'src)) (start (point))) (unless url - (setq url (car (shr--extract-best-source cont)))) + (setq url (car (shr--extract-best-source dom)))) (if image (shr-tag-img nil image) (shr-insert " [video] ")) (shr-urlify start (shr-expand-url url)))) -(defun shr-tag-audio (cont) - (let ((url (cdr (assq :src cont))) +(defun shr-tag-audio (dom) + (let ((url (dom-attr dom 'src)) (start (point))) (unless url - (setq url (car (shr--extract-best-source cont)))) + (setq url (car (shr--extract-best-source dom)))) (shr-insert " [audio] ") (shr-urlify start (shr-expand-url url)))) -(defun shr-tag-img (cont &optional url) +(defun shr-tag-img (dom &optional url) (when (or url - (and cont - (> (length (cdr (assq :src cont))) 0))) + (and dom + (> (length (dom-attr dom 'src)) 0))) (when (and (> (current-column) 0) (not (eq shr-state 'image))) (insert "\n")) - (let ((alt (cdr (assq :alt cont))) - (url (shr-expand-url (or url (cdr (assq :src cont)))))) + (let ((alt (dom-attr dom 'alt)) + (url (shr-expand-url (or url (dom-attr dom 'src))))) (let ((start (point-marker))) (when (zerop (length alt)) (setq alt "*")) (cond - ((or (member (cdr (assq :height cont)) '("0" "1")) - (member (cdr (assq :width cont)) '("0" "1"))) + ((or (member (dom-attr dom 'height) '("0" "1")) + (member (dom-attr dom 'width) '("0" "1"))) ;; Ignore zero-sized or single-pixel images. ) ((and (not shr-inhibit-images) @@ -1244,52 +1295,51 @@ The preference is a float determined from `shr-prefer-media-type'." (put-text-property start (point) 'image-displayer (shr-image-displayer shr-content-function)) (put-text-property start (point) 'help-echo - (or (cdr (assq :title cont)) - alt))) + (shr-fold-text (or (dom-attr dom 'title) alt)))) (setq shr-state 'image))))) -(defun shr-tag-pre (cont) +(defun shr-tag-pre (dom) (let ((shr-folding-mode 'none)) (shr-ensure-newline) (shr-indent) - (shr-generic cont) + (shr-generic dom) (shr-ensure-newline))) -(defun shr-tag-blockquote (cont) +(defun shr-tag-blockquote (dom) (shr-ensure-paragraph) (shr-indent) (let ((shr-indentation (+ shr-indentation 4))) - (shr-generic cont)) + (shr-generic dom)) (shr-ensure-paragraph)) -(defun shr-tag-dl (cont) +(defun shr-tag-dl (dom) (shr-ensure-paragraph) - (shr-generic cont) + (shr-generic dom) (shr-ensure-paragraph)) -(defun shr-tag-dt (cont) +(defun shr-tag-dt (dom) (shr-ensure-newline) - (shr-generic cont) + (shr-generic dom) (shr-ensure-newline)) -(defun shr-tag-dd (cont) +(defun shr-tag-dd (dom) (shr-ensure-newline) (let ((shr-indentation (+ shr-indentation 4))) - (shr-generic cont))) + (shr-generic dom))) -(defun shr-tag-ul (cont) +(defun shr-tag-ul (dom) (shr-ensure-paragraph) (let ((shr-list-mode 'ul)) - (shr-generic cont)) + (shr-generic dom)) (shr-ensure-paragraph)) -(defun shr-tag-ol (cont) +(defun shr-tag-ol (dom) (shr-ensure-paragraph) (let ((shr-list-mode 1)) - (shr-generic cont)) + (shr-generic dom)) (shr-ensure-paragraph)) -(defun shr-tag-li (cont) +(defun shr-tag-li (dom) (shr-ensure-newline) (shr-indent) (let* ((bullet @@ -1300,9 +1350,9 @@ The preference is a float determined from `shr-prefer-media-type'." shr-bullet)) (shr-indentation (+ shr-indentation (length bullet)))) (insert bullet) - (shr-generic cont))) + (shr-generic dom))) -(defun shr-tag-br (cont) +(defun shr-tag-br (dom) (when (and (not (bobp)) ;; Only add a newline if we break the current line, or ;; the previous line isn't a blank line. @@ -1311,42 +1361,42 @@ The preference is a float determined from `shr-prefer-media-type'." (not (= (char-after (- (point) 2)) ?\n))))) (insert "\n") (shr-indent)) - (shr-generic cont)) + (shr-generic dom)) -(defun shr-tag-span (cont) - (shr-generic cont)) +(defun shr-tag-span (dom) + (shr-generic dom)) -(defun shr-tag-h1 (cont) - (shr-heading cont 'bold 'underline)) +(defun shr-tag-h1 (dom) + (shr-heading dom 'bold 'underline)) -(defun shr-tag-h2 (cont) - (shr-heading cont 'bold)) +(defun shr-tag-h2 (dom) + (shr-heading dom 'bold)) -(defun shr-tag-h3 (cont) - (shr-heading cont 'italic)) +(defun shr-tag-h3 (dom) + (shr-heading dom 'italic)) -(defun shr-tag-h4 (cont) - (shr-heading cont)) +(defun shr-tag-h4 (dom) + (shr-heading dom)) -(defun shr-tag-h5 (cont) - (shr-heading cont)) +(defun shr-tag-h5 (dom) + (shr-heading dom)) -(defun shr-tag-h6 (cont) - (shr-heading cont)) +(defun shr-tag-h6 (dom) + (shr-heading dom)) -(defun shr-tag-hr (_cont) +(defun shr-tag-hr (_dom) (shr-ensure-newline) - (insert (make-string shr-width shr-hr-line) "\n")) + (insert (make-string shr-internal-width shr-hr-line) "\n")) -(defun shr-tag-title (cont) - (shr-heading cont 'bold 'underline)) +(defun shr-tag-title (dom) + (shr-heading dom 'bold 'underline)) -(defun shr-tag-font (cont) +(defun shr-tag-font (dom) (let* ((start (point)) - (color (cdr (assq :color cont))) + (color (dom-attr dom 'color)) (shr-stylesheet (nconc (list (cons 'color color)) shr-stylesheet))) - (shr-generic cont) + (shr-generic dom) (when color (shr-colorize-region start (point) color (cdr (assq 'background-color shr-stylesheet)))))) @@ -1361,23 +1411,22 @@ The preference is a float determined from `shr-prefer-media-type'." ;; main buffer). Now we know how much space each TD really takes, so ;; we then render everything again with the new widths, and finally ;; insert all these boxes into the main buffer. -(defun shr-tag-table-1 (cont) - (setq cont (or (cdr (assq 'tbody cont)) - cont)) +(defun shr-tag-table-1 (dom) + (setq dom (or (dom-child-by-tag dom 'tbody) dom)) (let* ((shr-inhibit-images t) (shr-table-depth (1+ shr-table-depth)) (shr-kinsoku-shorten t) ;; Find all suggested widths. - (columns (shr-column-specs cont)) + (columns (shr-column-specs dom)) ;; Compute how many characters wide each TD should be. (suggested-widths (shr-pro-rate-columns columns)) ;; Do a "test rendering" to see how big each TD is (this can ;; be smaller (if there's little text) or bigger (if there's ;; unbreakable text). - (sketch (shr-make-table cont suggested-widths)) + (sketch (shr-make-table dom suggested-widths)) ;; Compute the "natural" width by setting each column to 500 ;; characters and see how wide they really render. - (natural (shr-make-table cont (make-vector (length columns) 500))) + (natural (shr-make-table dom (make-vector (length columns) 500))) (sketch-widths (shr-table-widths sketch natural suggested-widths))) ;; This probably won't work very well. (when (> (+ (loop for width across sketch-widths @@ -1386,15 +1435,15 @@ The preference is a float determined from `shr-prefer-media-type'." (frame-width)) (setq truncate-lines t)) ;; Then render the table again with these new "hard" widths. - (shr-insert-table (shr-make-table cont sketch-widths t) sketch-widths))) + (shr-insert-table (shr-make-table dom sketch-widths t) sketch-widths))) -(defun shr-tag-table (cont) +(defun shr-tag-table (dom) (shr-ensure-paragraph) - (let* ((caption (cdr (assq 'caption cont))) - (header (cdr (assq 'thead cont))) - (body (or (cdr (assq 'tbody cont)) cont)) - (footer (cdr (assq 'tfoot cont))) - (bgcolor (cdr (assq :bgcolor cont))) + (let* ((caption (dom-child-by-tag dom 'caption)) + (header (dom-child-by-tag dom 'thead)) + (body (or (dom-child-by-tag dom 'tbody) dom)) + (footer (dom-child-by-tag dom 'tfoot)) + (bgcolor (dom-attr dom 'bgcolor)) (start (point)) (shr-stylesheet (nconc (list (cons 'background-color bgcolor)) shr-stylesheet)) @@ -1403,12 +1452,12 @@ The preference is a float determined from `shr-prefer-media-type'." (nfooter (if footer (shr-max-columns footer)))) (if (and (not caption) (not header) - (not (cdr (assq 'tbody cont))) - (not (cdr (assq 'tr cont))) + (not (dom-child-by-tag dom 'tbody)) + (not (dom-child-by-tag dom 'tr)) (not footer)) ;; The table is totally invalid and just contains random junk. ;; Try to output it anyway. - (shr-generic cont) + (shr-generic dom) ;; It's a real table, so render it. (shr-tag-table-1 (nconc @@ -1455,17 +1504,10 @@ The preference is a float determined from `shr-prefer-media-type'." ;; model isn't strong enough to allow us to put the images actually ;; into the tables. (when (zerop shr-table-depth) - (dolist (elem (shr-find-elements cont 'img)) - (shr-tag-img (cdr elem)))))) - -(defun shr-find-elements (cont type) - (let (result) - (dolist (elem cont) - (cond ((eq (car elem) type) - (push elem result)) - ((consp (cdr elem)) - (setq result (nconc (shr-find-elements (cdr elem) type) result))))) - (nreverse result))) + (dolist (elem (dom-by-tag dom 'object)) + (shr-tag-object elem)) + (dolist (elem (dom-by-tag dom 'img)) + (shr-tag-img elem))))) (defun shr-insert-table (table widths) (let* ((collapse (equal (cdr (assq 'border-collapse shr-stylesheet)) @@ -1548,22 +1590,22 @@ The preference is a float determined from `shr-prefer-media-type'." (aref widths i)))))))) widths)) -(defun shr-make-table (cont widths &optional fill) - (or (cadr (assoc (list cont widths fill) shr-content-cache)) - (let ((data (shr-make-table-1 cont widths fill))) - (push (list (list cont widths fill) data) +(defun shr-make-table (dom widths &optional fill) + (or (cadr (assoc (list dom widths fill) shr-content-cache)) + (let ((data (shr-make-table-1 dom widths fill))) + (push (list (list dom widths fill) data) shr-content-cache) data))) -(defun shr-make-table-1 (cont widths &optional fill) +(defun shr-make-table-1 (dom widths &optional fill) (let ((trs nil) (shr-inhibit-decoration (not fill)) (rowspans (make-vector (length widths) 0)) width colspan) - (dolist (row cont) - (when (eq (car row) 'tr) + (dolist (row (dom-non-text-children dom)) + (when (eq (dom-tag row) 'tr) (let ((tds nil) - (columns (cdr row)) + (columns (dom-children row)) (i 0) (width-column 0) column) @@ -1577,12 +1619,12 @@ The preference is a float determined from `shr-prefer-media-type'." (pop columns) (aset rowspans i (1- (aref rowspans i))) '(td))) - (when (or (memq (car column) '(td th)) - (not column)) - (when (cdr (assq :rowspan (cdr column))) + (when (and (not (stringp column)) + (or (memq (dom-tag column) '(td th)) + (not column))) + (when-let (span (dom-attr column 'rowspan)) (aset rowspans i (+ (aref rowspans i) - (1- (string-to-number - (cdr (assq :rowspan (cdr column)))))))) + (1- (string-to-number span))))) ;; Sanity check for invalid column-spans. (when (>= width-column (length widths)) (setq width-column 0)) @@ -1591,7 +1633,7 @@ The preference is a float determined from `shr-prefer-media-type'." (aref widths width-column) 10)) (when (and fill - (setq colspan (cdr (assq :colspan (cdr column))))) + (setq colspan (dom-attr column colspan))) (setq colspan (min (string-to-number colspan) ;; The colspan may be wrong, so ;; truncate it to the length of the @@ -1606,18 +1648,18 @@ The preference is a float determined from `shr-prefer-media-type'." (setq width-column (+ width-column (1- colspan)))) (when (or column (not fill)) - (push (shr-render-td (cdr column) width fill) + (push (shr-render-td column width fill) tds)) (setq i (1+ i) width-column (1+ width-column)))) (push (nreverse tds) trs)))) (nreverse trs))) -(defun shr-render-td (cont width fill) +(defun shr-render-td (dom width fill) (with-temp-buffer - (let ((bgcolor (cdr (assq :bgcolor cont))) - (fgcolor (cdr (assq :fgcolor cont))) - (style (cdr (assq :style cont))) + (let ((bgcolor (dom-attr dom 'bgcolor)) + (fgcolor (dom-attr dom 'fgcolor)) + (style (dom-attr dom 'style)) (shr-stylesheet shr-stylesheet) actual-colors) (when style @@ -1629,9 +1671,9 @@ The preference is a float determined from `shr-prefer-media-type'." (setq style (nconc (list (cons 'color fgcolor)) style))) (when style (setq shr-stylesheet (append style shr-stylesheet))) - (let ((shr-width width) + (let ((shr-internal-width width) (shr-indentation 0)) - (shr-descend (cons 'td cont))) + (shr-descend dom)) ;; Delete padding at the bottom of the TDs. (delete-region (point) @@ -1652,7 +1694,7 @@ The preference is a float determined from `shr-prefer-media-type'." (if (zerop (buffer-size)) (insert (make-string width ? )) ;; Otherwise, fill the buffer. - (let ((align (cdr (assq :align cont))) + (let ((align (dom-attr dom 'align)) length) (while (not (eobp)) (end-of-line) @@ -1701,19 +1743,21 @@ The preference is a float determined from `shr-prefer-media-type'." (dotimes (i (length columns)) (aset widths i (max (truncate (* (aref columns i) total-percentage - (- shr-width (1+ (length columns))))) + (- shr-internal-width + (1+ (length columns))))) 10))) widths)) ;; Return a summary of the number and shape of the TDs in the table. -(defun shr-column-specs (cont) - (let ((columns (make-vector (shr-max-columns cont) 1))) - (dolist (row cont) - (when (eq (car row) 'tr) +(defun shr-column-specs (dom) + (let ((columns (make-vector (shr-max-columns dom) 1))) + (dolist (row (dom-non-text-children dom)) + (when (eq (dom-tag row) 'tr) (let ((i 0)) - (dolist (column (cdr row)) - (when (memq (car column) '(td th)) - (let ((width (cdr (assq :width (cdr column))))) + (dolist (column (dom-children row)) + (when (and (not (stringp column)) + (memq (dom-tag column) '(td th))) + (let ((width (dom-attr column 'width))) (when (and width (string-match "\\([0-9]+\\)%" width) (not (zerop (setq width (string-to-number @@ -1722,19 +1766,21 @@ The preference is a float determined from `shr-prefer-media-type'." (setq i (1+ i))))))) columns)) -(defun shr-count (cont elem) +(defun shr-count (dom elem) (let ((i 0)) - (dolist (sub cont) - (when (eq (car sub) elem) + (dolist (sub (dom-children dom)) + (when (and (not (stringp sub)) + (eq (dom-tag sub) elem)) (setq i (1+ i)))) i)) -(defun shr-max-columns (cont) +(defun shr-max-columns (dom) (let ((max 0)) - (dolist (row cont) - (when (eq (car row) 'tr) - (setq max (max max (+ (shr-count (cdr row) 'td) - (shr-count (cdr row) 'th)))))) + (dolist (row (dom-children dom)) + (when (and (not (stringp row)) + (eq (dom-tag row) 'tr)) + (setq max (max max (+ (shr-count row 'td) + (shr-count row 'th)))))) max)) (provide 'shr) diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index 16017eebba3..1695631d1ae 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el @@ -2,7 +2,7 @@ ;; Copyright (C) 2011-2014 Free Software Foundation, Inc. -;; Author: Juergen Hoetzel +;; Author: Jürgen Hötzel ;; Keywords: comm, processes ;; Package: tramp @@ -34,7 +34,6 @@ ;;; Code: (require 'tramp) -(require 'time-date) ;; Pacify byte-compiler. (defvar directory-sep-char) @@ -316,17 +315,18 @@ pass to the OPERATION." (defun tramp-adb-handle-file-attributes (filename &optional id-format) "Like `file-attributes' for Tramp files." (unless id-format (setq id-format 'integer)) - (with-parsed-tramp-file-name filename nil - (with-tramp-file-property - v localname (format "file-attributes-%s" id-format) - (and - (tramp-adb-send-command-and-check - v (format "%s -d -l %s" - (tramp-adb-get-ls-command v) - (tramp-shell-quote-argument localname))) - (with-current-buffer (tramp-get-buffer v) - (tramp-adb-sh-fix-ls-output) - (cdar (tramp-do-parse-file-attributes-with-ls v id-format))))))) + (ignore-errors + (with-parsed-tramp-file-name filename nil + (with-tramp-file-property + v localname (format "file-attributes-%s" id-format) + (and + (tramp-adb-send-command-and-check + v (format "%s -d -l %s" + (tramp-adb-get-ls-command v) + (tramp-shell-quote-argument localname))) + (with-current-buffer (tramp-get-buffer v) + (tramp-adb-sh-fix-ls-output) + (cdar (tramp-do-parse-file-attributes-with-ls v id-format)))))))) (defun tramp-do-parse-file-attributes-with-ls (vec &optional id-format) "Parse `file-attributes' for Tramp files using the ls(1) command." @@ -467,7 +467,7 @@ Emacs dired can't find files." (setq time-a (apply 'encode-time (parse-time-string (match-string 0 a)))) (string-match tramp-adb-ls-date-regexp b) (setq time-b (apply 'encode-time (parse-time-string (match-string 0 b)))) - (tramp-time-less-p time-b time-a))) + (time-less-p time-b time-a))) (defun tramp-adb-ls-output-name-less-p (a b) "Sort \"ls\" output by name, ascending." @@ -794,11 +794,13 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." ;; directory. (condition-case nil (progn - (setq ret 0) - (tramp-adb-barf-unless-okay - v (format "(cd %s; %s)" - (tramp-shell-quote-argument localname) command) - "") + (setq ret + (if (tramp-adb-send-command-and-check + v + (format "(cd %s; %s)" + (tramp-shell-quote-argument localname) command)) + ;; Set return status accordingly. + 0 1)) ;; We should add the output anyway. (when outbuf (with-current-buffer outbuf @@ -1031,8 +1033,9 @@ This happens for Android >= 4.0." (defun tramp-adb-send-command-and-check (vec command) "Run COMMAND and check its exit status. -Sends `echo $?' along with the COMMAND for checking the exit status. If -COMMAND is nil, just sends `echo $?'. Returns the exit status found." +Sends `echo $?' along with the COMMAND for checking the exit +status. If COMMAND is nil, just sends `echo $?'. Returns nil if +the exit status is not equal 0, and t otherwise." (tramp-adb-send-command vec (if command (format "%s; echo tramp_exit_status $?" command) diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el index 838d326603c..50c8e249fe3 100644 --- a/lisp/net/tramp-cache.el +++ b/lisp/net/tramp-cache.el @@ -136,7 +136,7 @@ Returns DEFAULT if not set." (tramp-time-diff (current-time) (car value)) remote-file-name-inhibit-cache)) (and (consp remote-file-name-inhibit-cache) - (tramp-time-less-p + (time-less-p remote-file-name-inhibit-cache (car value))))) (setq value (cdr value)) (setq value default)) @@ -144,7 +144,7 @@ Returns DEFAULT if not set." (tramp-message key 8 "%s %s %s" file property value) (when (>= tramp-verbose 10) (let* ((var (intern (concat "tramp-cache-get-count-" property))) - (val (or (ignore-errors (symbol-value var)) 0))) + (val (or (and (boundp var) (symbol-value var)) 0))) (set var (1+ val)))) value)) @@ -161,7 +161,7 @@ Returns VALUE." (tramp-message key 8 "%s %s %s" file property value) (when (>= tramp-verbose 10) (let* ((var (intern (concat "tramp-cache-set-count-" property))) - (val (or (ignore-errors (symbol-value var)) 0))) + (val (or (and (boundp var) (symbol-value var)) 0))) (set var (1+ val)))) value)) @@ -207,10 +207,12 @@ Remove also properties of all files in subdirectories." "Flush all Tramp cache properties from `buffer-file-name'. This is suppressed for temporary buffers." (save-match-data - (unless (string-match "^ \\*temp\\*" (or (buffer-name) "")) + (unless (or (null (buffer-name)) + (string-match "^\\( \\|\\*\\)" (buffer-name))) (let ((bfn (if (stringp (buffer-file-name)) (buffer-file-name) - default-directory))) + default-directory)) + (tramp-verbose 0)) (when (tramp-tramp-file-p bfn) (with-parsed-tramp-file-name bfn nil (tramp-flush-file-property v localname))))))) diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index cd336ec61b3..de63d8c7c7a 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el @@ -44,7 +44,8 @@ (require 'outline) (require 'passwd) (require 'pp) - (require 'regexp-opt)) + (require 'regexp-opt) + (require 'time-date)) (require 'advice) (require 'custom) diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el index d98f6d74a6a..a723e57f296 100644 --- a/lisp/net/tramp-ftp.el +++ b/lisp/net/tramp-ftp.el @@ -178,12 +178,7 @@ pass to the OPERATION." (ignore-errors (delete-file tmpfile))))) ;; Normally, the handlers must be discarded. - ;; `inhibit-file-name-handlers' isn't sufficient, because the - ;; local file name could be in Tramp syntax as well (for - ;; example, returning VMS file names like "/DISK$CAM:/AAA"). - ;; That's why we set also `tramp-mode' to nil. - (t (let* (;(tramp-mode nil) - (inhibit-file-name-handlers + (t (let* ((inhibit-file-name-handlers (list 'tramp-file-name-handler 'tramp-completion-file-name-handler (and (eq inhibit-file-name-operation operation) diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 5d6447609fa..30802273d5c 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -167,9 +167,10 @@ ;; Introspection data exist since GVFS 1.14. If there are no such ;; data, we expect an earlier interface. (defconst tramp-gvfs-methods-mounttracker - (dbus-introspect-get-method-names - :session tramp-gvfs-service-daemon tramp-gvfs-path-mounttracker - tramp-gvfs-interface-mounttracker) + (and tramp-gvfs-enabled + (dbus-introspect-get-method-names + :session tramp-gvfs-service-daemon tramp-gvfs-path-mounttracker + tramp-gvfs-interface-mounttracker)) "The list of supported methods of the mount tracking interface.") (defconst tramp-gvfs-listmounts @@ -187,9 +188,10 @@ It has been changed in GVFS 1.14.") It has been changed in GVFS 1.14.") (defconst tramp-gvfs-mountlocation-signature - (dbus-introspect-get-signature - :session tramp-gvfs-service-daemon tramp-gvfs-path-mounttracker - tramp-gvfs-interface-mounttracker tramp-gvfs-mountlocation) + (and tramp-gvfs-enabled + (dbus-introspect-get-signature + :session tramp-gvfs-service-daemon tramp-gvfs-path-mounttracker + tramp-gvfs-interface-mounttracker tramp-gvfs-mountlocation)) "The D-Bus signature of the \"mountLocation\" method. It has been changed in GVFS 1.14.") @@ -718,124 +720,128 @@ is no information where to trace the message.") (defun tramp-gvfs-handle-file-attributes (filename &optional id-format) "Like `file-attributes' for Tramp files." (unless id-format (setq id-format 'integer)) - ;; Don't modify `last-coding-system-used' by accident. - (let ((last-coding-system-used last-coding-system-used) - dirp res-symlink-target res-numlinks res-uid res-gid res-access - res-mod res-change res-size res-filemodes res-inode res-device) - (with-parsed-tramp-file-name filename nil - (with-tramp-file-property - v localname (format "file-attributes-%s" id-format) - (tramp-message v 5 "file attributes: %s" localname) - (tramp-gvfs-send-command - v "gvfs-info" (tramp-gvfs-url-file-name filename)) - ;; Parse output ... - (with-current-buffer (tramp-get-connection-buffer v) - (goto-char (point-min)) - (when (re-search-forward "attributes:" nil t) - ;; ... directory or symlink + (ignore-errors + ;; Don't modify `last-coding-system-used' by accident. + (let ((last-coding-system-used last-coding-system-used) + dirp res-symlink-target res-numlinks res-uid res-gid res-access + res-mod res-change res-size res-filemodes res-inode res-device) + (with-parsed-tramp-file-name filename nil + (with-tramp-file-property + v localname (format "file-attributes-%s" id-format) + (tramp-message v 5 "file attributes: %s" localname) + (tramp-gvfs-send-command + v "gvfs-info" (tramp-gvfs-url-file-name filename)) + ;; Parse output ... + (with-current-buffer (tramp-get-connection-buffer v) (goto-char (point-min)) - (setq dirp (if (re-search-forward "type:\\s-+directory" nil t) t)) - (goto-char (point-min)) - (setq res-symlink-target - (if (re-search-forward - "standard::symlink-target:\\s-+\\(\\S-+\\)" nil t) - (match-string 1))) - ;; ... number links - (goto-char (point-min)) - (setq res-numlinks - (if (re-search-forward "unix::nlink:\\s-+\\([0-9]+\\)" nil t) - (string-to-number (match-string 1)) 0)) - ;; ... uid and gid - (goto-char (point-min)) - (setq res-uid - (or (if (eq id-format 'integer) + (when (re-search-forward "attributes:" nil t) + ;; ... directory or symlink + (goto-char (point-min)) + (setq dirp (if (re-search-forward "type:\\s-+directory" nil t) t)) + (goto-char (point-min)) + (setq res-symlink-target + (if (re-search-forward + "standard::symlink-target:\\s-+\\(\\S-+\\)" nil t) + (match-string 1))) + ;; ... number links + (goto-char (point-min)) + (setq res-numlinks + (if (re-search-forward + "unix::nlink:\\s-+\\([0-9]+\\)" nil t) + (string-to-number (match-string 1)) 0)) + ;; ... uid and gid + (goto-char (point-min)) + (setq res-uid + (or (if (eq id-format 'integer) + (if (re-search-forward + "unix::uid:\\s-+\\([0-9]+\\)" nil t) + (string-to-number (match-string 1))) (if (re-search-forward - "unix::uid:\\s-+\\([0-9]+\\)" nil t) - (string-to-number (match-string 1))) - (if (re-search-forward - "owner::user:\\s-+\\(\\S-+\\)" nil t) - (match-string 1))) - (tramp-get-local-uid id-format))) - (setq res-gid - (or (if (eq id-format 'integer) + "owner::user:\\s-+\\(\\S-+\\)" nil t) + (match-string 1))) + (tramp-get-local-uid id-format))) + (setq res-gid + (or (if (eq id-format 'integer) + (if (re-search-forward + "unix::gid:\\s-+\\([0-9]+\\)" nil t) + (string-to-number (match-string 1))) (if (re-search-forward - "unix::gid:\\s-+\\([0-9]+\\)" nil t) - (string-to-number (match-string 1))) - (if (re-search-forward - "owner::group:\\s-+\\(\\S-+\\)" nil t) - (match-string 1))) - (tramp-get-local-gid id-format))) - ;; ... last access, modification and change time - (goto-char (point-min)) - (setq res-access - (if (re-search-forward - "time::access:\\s-+\\([0-9]+\\)" nil t) - (seconds-to-time (string-to-number (match-string 1))) - '(0 0))) - (goto-char (point-min)) - (setq res-mod - (if (re-search-forward - "time::modified:\\s-+\\([0-9]+\\)" nil t) - (seconds-to-time (string-to-number (match-string 1))) - '(0 0))) - (goto-char (point-min)) - (setq res-change - (if (re-search-forward - "time::changed:\\s-+\\([0-9]+\\)" nil t) - (seconds-to-time (string-to-number (match-string 1))) - '(0 0))) - ;; ... size - (goto-char (point-min)) - (setq res-size - (if (re-search-forward - "standard::size:\\s-+\\([0-9]+\\)" nil t) - (string-to-number (match-string 1)) 0)) - ;; ... file mode flags - (goto-char (point-min)) - (setq res-filemodes - (if (re-search-forward "unix::mode:\\s-+\\([0-9]+\\)" nil t) - (tramp-file-mode-from-int - (string-to-number (match-string 1))) - (if dirp "drwx------" "-rwx------"))) - ;; ... inode and device - (goto-char (point-min)) - (setq res-inode - (if (re-search-forward "unix::inode:\\s-+\\([0-9]+\\)" nil t) - (string-to-number (match-string 1)) - (tramp-get-inode v))) - (goto-char (point-min)) - (setq res-device - (if (re-search-forward "unix::device:\\s-+\\([0-9]+\\)" nil t) - (string-to-number (match-string 1)) - (tramp-get-device v))) + "owner::group:\\s-+\\(\\S-+\\)" nil t) + (match-string 1))) + (tramp-get-local-gid id-format))) + ;; ... last access, modification and change time + (goto-char (point-min)) + (setq res-access + (if (re-search-forward + "time::access:\\s-+\\([0-9]+\\)" nil t) + (seconds-to-time (string-to-number (match-string 1))) + '(0 0))) + (goto-char (point-min)) + (setq res-mod + (if (re-search-forward + "time::modified:\\s-+\\([0-9]+\\)" nil t) + (seconds-to-time (string-to-number (match-string 1))) + '(0 0))) + (goto-char (point-min)) + (setq res-change + (if (re-search-forward + "time::changed:\\s-+\\([0-9]+\\)" nil t) + (seconds-to-time (string-to-number (match-string 1))) + '(0 0))) + ;; ... size + (goto-char (point-min)) + (setq res-size + (if (re-search-forward + "standard::size:\\s-+\\([0-9]+\\)" nil t) + (string-to-number (match-string 1)) 0)) + ;; ... file mode flags + (goto-char (point-min)) + (setq res-filemodes + (if (re-search-forward "unix::mode:\\s-+\\([0-9]+\\)" nil t) + (tramp-file-mode-from-int + (string-to-number (match-string 1))) + (if dirp "drwx------" "-rwx------"))) + ;; ... inode and device + (goto-char (point-min)) + (setq res-inode + (if (re-search-forward + "unix::inode:\\s-+\\([0-9]+\\)" nil t) + (string-to-number (match-string 1)) + (tramp-get-inode v))) + (goto-char (point-min)) + (setq res-device + (if (re-search-forward + "unix::device:\\s-+\\([0-9]+\\)" nil t) + (string-to-number (match-string 1)) + (tramp-get-device v))) - ;; Return data gathered. - (list - ;; 0. t for directory, string (name linked to) for - ;; symbolic link, or nil. - (or dirp res-symlink-target) - ;; 1. Number of links to file. - res-numlinks - ;; 2. File uid. - res-uid - ;; 3. File gid. - res-gid - ;; 4. Last access time, as a list of integers. - ;; 5. Last modification time, likewise. - ;; 6. Last status change time, likewise. - res-access res-mod res-change - ;; 7. Size in bytes (-1, if number is out of range). - res-size - ;; 8. File modes. - res-filemodes - ;; 9. t if file's gid would change if file were deleted - ;; and recreated. - nil - ;; 10. Inode number. - res-inode - ;; 11. Device number. - res-device - ))))))) + ;; Return data gathered. + (list + ;; 0. t for directory, string (name linked to) for + ;; symbolic link, or nil. + (or dirp res-symlink-target) + ;; 1. Number of links to file. + res-numlinks + ;; 2. File uid. + res-uid + ;; 3. File gid. + res-gid + ;; 4. Last access time, as a list of integers. + ;; 5. Last modification time, likewise. + ;; 6. Last status change time, likewise. + res-access res-mod res-change + ;; 7. Size in bytes (-1, if number is out of range). + res-size + ;; 8. File modes. + res-filemodes + ;; 9. t if file's gid would change if file were deleted + ;; and recreated. + nil + ;; 10. Inode number. + res-inode + ;; 11. Device number. + res-device + )))))))) (defun tramp-gvfs-handle-file-directory-p (filename) "Like `file-directory-p' for Tramp files." @@ -1108,7 +1114,7 @@ is no information where to trace the message.") (defun tramp-gvfs-url-file-name (filename) "Return FILENAME in URL syntax." ;; "/" must NOT be hexlified. - (let ((url-unreserved-chars (append '(?/) url-unreserved-chars)) + (let ((url-unreserved-chars (cons ?/ url-unreserved-chars)) result) (setq result diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index e234162bd4a..ba7b7d95a4b 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -64,6 +64,22 @@ files conditionalize this setup based on the TERM environment variable." :group 'tramp :type 'string) +;;;###tramp-autoload +(defcustom tramp-histfile-override "/dev/null" + "When invoking a shell, override the HISTFILE with this value. +By default, the HISTFILE is set to the \"/dev/null\" value, which +is special on Unix systems and indicates the shell history should +not be logged (this avoids clutter due to Tramp commands). + +If you set this variable to nil, however, the *override* is +disabled, so the history will go to the default storage +location, e.g. \"$HOME/.sh_history\"." + :group 'tramp + :version "25.1" + :type '(choice (const :tag "Do not override HISTFILE" nil) + (const :tag "Empty the history (/dev/null)" "/dev/null") + (string :tag "Redirect to a file"))) + ;;;###tramp-autoload (defconst tramp-color-escape-sequence-regexp "\e[[;0-9]+m" "Escape sequences produced by the \"ls\" command.") @@ -218,7 +234,9 @@ detected as prompt when being sent on echoing hosts, therefore.") ;; We use "-v" for better error tracking. (tramp-copy-args (("-w" "1") ("-v") ("%h") ("%r"))) (tramp-remote-copy-program "nc") - ;; We use "-p" as required for busyboxes. + ;; We use "-p" as required for newer busyboxes. For older + ;; busybox/nc versions, the value must be (("-l") ("%r")). This + ;; can be achieved by tweaking `tramp-connection-properties'. (tramp-remote-copy-args (("-l") ("-p" "%r"))) (tramp-default-port 23))) ;;;###tramp-autoload @@ -1101,23 +1119,24 @@ target of the symlink differ." (defun tramp-sh-handle-file-attributes (filename &optional id-format) "Like `file-attributes' for Tramp files." (unless id-format (setq id-format 'integer)) - ;; Don't modify `last-coding-system-used' by accident. - (let ((last-coding-system-used last-coding-system-used)) - (with-parsed-tramp-file-name (expand-file-name filename) nil - (with-tramp-file-property - v localname (format "file-attributes-%s" id-format) - (save-excursion - (tramp-convert-file-attributes - v - (or - (cond - ((tramp-get-remote-stat v) - (tramp-do-file-attributes-with-stat v localname id-format)) - ((tramp-get-remote-perl v) - (tramp-do-file-attributes-with-perl v localname id-format)) - (t nil)) - ;; The scripts could fail, for example with huge file size. - (tramp-do-file-attributes-with-ls v localname id-format)))))))) + (ignore-errors + ;; Don't modify `last-coding-system-used' by accident. + (let ((last-coding-system-used last-coding-system-used)) + (with-parsed-tramp-file-name (expand-file-name filename) nil + (with-tramp-file-property + v localname (format "file-attributes-%s" id-format) + (save-excursion + (tramp-convert-file-attributes + v + (or + (cond + ((tramp-get-remote-stat v) + (tramp-do-file-attributes-with-stat v localname id-format)) + ((tramp-get-remote-perl v) + (tramp-do-file-attributes-with-perl v localname id-format)) + (t nil)) + ;; The scripts could fail, for example with huge file size. + (tramp-do-file-attributes-with-ls v localname id-format))))))))) (defun tramp-do-file-attributes-with-ls (vec localname &optional id-format) "Implement `file-attributes' for Tramp files using the ls(1) command." @@ -2059,10 +2078,15 @@ FILENAME is the source file, NEWNAME the target file. KEEP-DATE is non-nil if NEWNAME should have the same timestamp as FILENAME." (with-temp-buffer ;; We must disable multibyte, because binary data shall not be - ;; converted. + ;; converted. We remove `tramp-file-name-handler' from + ;; `inhibit-file-name-handlers'; otherwise the file name handler + ;; for `insert-file-contents' might be deactivated in some corner + ;; cases. (set-buffer-multibyte nil) (let ((coding-system-for-read 'binary) - (jka-compr-inhibit t)) + (jka-compr-inhibit t) + (inhibit-file-name-handlers + (remq 'tramp-file-name-handler inhibit-file-name-handlers))) (insert-file-contents-literally filename)) ;; We don't want the target file to be compressed, so we let-bind ;; `jka-compr-inhibit' to t. @@ -2334,6 +2358,7 @@ The method used must be an out-of-band method." method 'tramp-copy-program) copy-keep-date (tramp-get-method-parameter method 'tramp-copy-keep-date) + copy-args (delete ;; " " has either been a replacement of "%k" (when @@ -2349,6 +2374,7 @@ The method used must be an out-of-band method." copy-args (let ((y (mapcar (lambda (z) (format-spec z spec)) x))) (if (member "" y) '(" ") y)))))) + copy-env (delq nil @@ -2357,23 +2383,20 @@ The method used must be an out-of-band method." (setq x (mapcar (lambda (y) (format-spec y spec)) x)) (unless (member "" x) (mapconcat 'identity x " "))) (tramp-get-method-parameter method 'tramp-copy-env))) - remote-copy-program (tramp-get-method-parameter - method 'tramp-remote-copy-program) - remote-copy-args - (delete - ;; " " has either been a replacement of "%k" (when - ;; keep-date argument is non-nil), or a replacement - ;; for the whole keep-date sublist. - " " - (dolist - (x - (tramp-get-method-parameter method 'tramp-remote-copy-args) - remote-copy-args) - (setq remote-copy-args - (append - remote-copy-args - (let ((y (mapcar (lambda (z) (format-spec z spec)) x))) - (if (member "" y) '(" ") y))))))) + + remote-copy-program + (tramp-get-method-parameter method 'tramp-remote-copy-program)) + + (dolist + (x + (or + (tramp-get-connection-property v "remote-copy-args" nil) + (tramp-get-method-parameter method 'tramp-remote-copy-args))) + (setq remote-copy-args + (append + remote-copy-args + (let ((y (mapcar (lambda (z) (format-spec z spec)) x))) + (if (member "" y) '(" ") y))))) ;; Check for local copy program. (unless (executable-find copy-program) @@ -2810,7 +2833,7 @@ the result will be a local, non-Tramp, file name." ;; connection has been setup. (defun tramp-sh-handle-start-file-process (name buffer program &rest args) "Like `start-file-process' for Tramp files." - (with-parsed-tramp-file-name default-directory nil + (with-parsed-tramp-file-name (expand-file-name default-directory) nil (let* (;; When PROGRAM matches "*sh", and the first arg is "-c", ;; it might be that the arguments exceed the command line ;; length. Therefore, we modify the command. @@ -2828,16 +2851,27 @@ the result will be a local, non-Tramp, file name." (list (replace-match " \\\\\n" nil nil (cadr args)))) (setq i (+ i 250)))) (cdr args))) + ;; Use a human-friendly prompt, for example for `shell'. + (prompt (format "PS1=%s" + (format "%s %s" + (file-remote-p default-directory) + tramp-initial-end-of-output))) + ;; We use as environment the difference to toplevel + ;; `process-environment'. + env + (env + (dolist + (elt + (cons prompt (nreverse (copy-sequence process-environment))) + env) + (or (member elt (default-toplevel-value 'process-environment)) + (setq env (cons elt env))))) (command (when (stringp program) - (format "cd %s && exec %s env PS1=%s %s" + (format "cd %s && exec %s env %s %s" (tramp-shell-quote-argument localname) (if heredoc (format "<<'%s'" tramp-end-of-heredoc) "") - ;; Use a human-friendly prompt, for example for `shell'. - (tramp-shell-quote-argument - (format "%s %s" - (file-remote-p default-directory) - tramp-initial-end-of-output)) + (mapconcat 'tramp-shell-quote-argument env " ") (if heredoc (format "%s\n(\n%s\n) ") ("<" . ">")))) (set (make-local-variable 'mode-line-process) '((nxml-degraded "/degraded"))) ;; We'll determine the fill prefix ourselves (make-local-variable 'adaptive-fill-mode) diff --git a/lisp/obsolete/.gitignore b/lisp/obsolete/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lisp/progmodes/cc-compat.el b/lisp/obsolete/cc-compat.el similarity index 99% rename from lisp/progmodes/cc-compat.el rename to lisp/obsolete/cc-compat.el index 8486742281e..1bd7c031afd 100644 --- a/lisp/progmodes/cc-compat.el +++ b/lisp/obsolete/cc-compat.el @@ -8,6 +8,7 @@ ;; Created: August 1994, split from cc-mode.el ;; Keywords: c languages ;; Package: cc-mode +;; Obsolete-Since: 24.5 ;; This file is part of GNU Emacs. diff --git a/lisp/obsolete/cl-compat.el b/lisp/obsolete/cl-compat.el index 191f885a900..bd702a84a25 100644 --- a/lisp/obsolete/cl-compat.el +++ b/lisp/obsolete/cl-compat.el @@ -129,14 +129,6 @@ (if test-not (not (funcall test-not item elt)) (funcall (or test 'eql) item elt)))) - -;;; Rounding functions with old-style multiple value returns. - -(defun cl-floor (a &optional b) (Values-list (floor* a b))) -(defun cl-ceiling (a &optional b) (Values-list (ceiling* a b))) -(defun cl-round (a &optional b) (Values-list (round* a b))) -(defun cl-truncate (a &optional b) (Values-list (truncate* a b))) - (defun safe-idiv (a b) (let* ((q (/ (abs a) (abs b))) (s (* (signum a) (signum b)))) diff --git a/lisp/obsolete/crisp.el b/lisp/obsolete/crisp.el index 47cf898190b..b9c2fc63a52 100644 --- a/lisp/obsolete/crisp.el +++ b/lisp/obsolete/crisp.el @@ -23,6 +23,8 @@ ;;; Commentary: +;; *Note: This package has now moved to elpa.gnu.org.* + ;; Keybindings and minor functions to duplicate the functionality and ;; finger-feel of the CRiSP/Brief editor. This package is designed to ;; facilitate transitioning from Brief to (XE|E)macs with a minimum diff --git a/lisp/obsolete/gulp.el b/lisp/obsolete/gulp.el index d959b73ba69..66394b409fe 100644 --- a/lisp/obsolete/gulp.el +++ b/lisp/obsolete/gulp.el @@ -5,7 +5,7 @@ ;; Author: Sam Shteingold ;; Maintainer: emacs-devel@gnu.org ;; Keywords: maint -;; Obsolete-since: 24.5 +;; Obsolete-since: 25.1 ;; This file is part of GNU Emacs. @@ -137,7 +137,7 @@ is left in the `*gulp*' buffer at the end." "Create the maintainer/package alist for files in FLIST in DIR. That is a list of elements, each of the form (MAINTAINER PACKAGES...)." (save-excursion - (let (mplist filen node mnt-tm mnt tm fl-tm) + (let (mplist filen node mnt tm fl-tm) (get-buffer-create gulp-tmp-buffer) (set-buffer gulp-tmp-buffer) (setq buffer-undo-list t) diff --git a/lisp/obsolete/iswitchb.el b/lisp/obsolete/iswitchb.el index dfe1222d550..4a0338af530 100644 --- a/lisp/obsolete/iswitchb.el +++ b/lisp/obsolete/iswitchb.el @@ -1416,7 +1416,7 @@ See the variable `iswitchb-case' for details." (isearch-no-upper-case-p iswitchb-text) (isearch-no-upper-case-p iswitchb-text t)))) -;;;###obsolete-autoload +;;;###autoload (define-minor-mode iswitchb-mode "Toggle Iswitchb mode. With a prefix argument ARG, enable Iswitchb mode if ARG is @@ -1430,10 +1430,6 @@ between buffers using substrings. See `iswitchb' for details." (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup) (remove-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup))) -;;;###obsolete-autoload -(make-obsolete 'iswitchb-mode - "use `icomplete-mode' or `ido-mode' instead." "24.4") - (provide 'iswitchb) ;;; iswitchb.el ends here diff --git a/lisp/obsolete/lucid.el b/lisp/obsolete/lucid.el index 15f80652809..2c6efa408ff 100644 --- a/lisp/obsolete/lucid.el +++ b/lisp/obsolete/lucid.el @@ -30,27 +30,6 @@ (defalias 'current-time-seconds 'current-time) -(defun read-number (prompt &optional integers-only) - "Read a number from the minibuffer. -Keep reentering the minibuffer until we get suitable input. -If optional argument INTEGERS-ONLY is non-nil, insist on an integer." - (interactive) - (let (success - (number nil) - (predicate (if integers-only 'integerp 'numberp))) - (while (not success) - (let ((input-string (read-string prompt))) - (condition-case () - (setq number (read input-string)) - (error)) - (if (funcall predicate number) - (setq success t) - (let ((cursor-in-echo-area t)) - (message "Please type %s" - (if integers-only "an integer" "a number")) - (sit-for 1))))) - number)) - (defun real-path-name (name &optional default) (file-truename (expand-file-name name default))) diff --git a/lisp/obsolete/mouse-sel.el b/lisp/obsolete/mouse-sel.el index 9b3ba9f727e..837aefb8b7f 100644 --- a/lisp/obsolete/mouse-sel.el +++ b/lisp/obsolete/mouse-sel.el @@ -97,8 +97,8 @@ ;; In this mode, mouse-insert-selection just calls mouse-yank-at-click. ;; ;; Selection/kill-ring interaction is retained -;; interprogram-cut-function = x-select-text -;; interprogram-paste-function = x-selection-value +;; interprogram-cut-function = gui-select-text +;; interprogram-paste-function = gui-selection-value ;; ;; What you lose is the ability to select some text in ;; delete-selection-mode and yank over the top of it. @@ -190,12 +190,9 @@ If nil, point will always be placed at the beginning of the region." ;;=== User Command ======================================================== -(defvar mouse-sel-has-been-enabled nil - "Non-nil if Mouse Sel mode has been enabled at least once.") - (defvar mouse-sel-original-bindings nil) -(defvar mouse-sel-original-interprogram-cut-function nil) -(defvar mouse-sel-original-interprogram-paste-function nil) + +(defalias 'mouse-sel--ignore #'ignore) ;;;###autoload (define-minor-mode mouse-sel-mode @@ -242,14 +239,11 @@ kill ring; mouse-1 or mouse-3 kills it." (global-set-key event (cdr binding))))) mouse-sel-bound-events)) ;; Update interprogram functions. - (setq mouse-sel-original-interprogram-cut-function - interprogram-cut-function - mouse-sel-original-interprogram-paste-function - interprogram-paste-function - mouse-sel-has-been-enabled t) (unless (eq mouse-sel-default-bindings 'interprogram-cut-paste) - (setq interprogram-cut-function nil - interprogram-paste-function nil)))) + (add-function :override interprogram-cut-function + #'mouse-sel--ignore) + (add-function :override interprogram-paste-function + #'mouse-sel--ignore)))) ;; Restore original bindings (remove-hook 'x-lost-selection-functions 'mouse-sel-lost-selection-hook) @@ -257,11 +251,8 @@ kill ring; mouse-1 or mouse-3 kills it." (global-set-key (car binding) (cdr binding))) ;; Restore the old values of these variables, ;; only if they were actually saved previously. - (if mouse-sel-has-been-enabled - (setq interprogram-cut-function - mouse-sel-original-interprogram-cut-function - interprogram-paste-function - mouse-sel-original-interprogram-paste-function)))) + (remove-function interprogram-cut-function #'mouse-sel--ignore) + (remove-function interprogram-paste-function #'mouse-sel--ignore))) (make-obsolete 'mouse-sel-mode "use the normal mouse modes" "24.3") @@ -301,15 +292,13 @@ where SELECTION-NAME = name of selection SELECTION-THING-SYMBOL = name of variable where the current selection type for this selection should be stored.") -(declare-function x-select-text "term/common-win" (text)) - (defvar mouse-sel-set-selection-function (if (eq mouse-sel-default-bindings 'interprogram-cut-paste) - 'x-set-selection + 'gui-set-selection (lambda (selection value) (if (eq selection 'PRIMARY) - (x-select-text value) - (x-set-selection selection value)))) + (gui-select-text value) + (gui-set-selection selection value)))) "Function to call to set selection. Called with two arguments: @@ -319,14 +308,13 @@ Called with two arguments: This sets the selection, unless `mouse-sel-default-bindings' is `interprogram-cut-paste'.") -(declare-function x-selection-value "term/x-win" ()) (defvar mouse-sel-get-selection-function (lambda (selection) (if (eq selection 'PRIMARY) - (or (x-selection-value) - (bound-and-true-p x-last-selected-text) - (bound-and-true-p x-last-selected-text-primary)) + (or (gui-selection-value) + (bound-and-true-p x-last-selected-text-primary) + gui-last-selected-text) (x-get-selection selection))) "Function to call to get the selection. Called with one argument: diff --git a/lisp/vc/vc-arch.el b/lisp/obsolete/vc-arch.el similarity index 97% rename from lisp/vc/vc-arch.el rename to lisp/obsolete/vc-arch.el index 2bc8b7b4339..c1ac505270c 100644 --- a/lisp/vc/vc-arch.el +++ b/lisp/obsolete/vc-arch.el @@ -231,8 +231,7 @@ Only the value `maybe' can be trusted :-(." "Return the administrative directory of FILE." (expand-file-name "{arch}" (vc-arch-root file))) -(defun vc-arch-register (files &optional rev _comment) - (if rev (error "Explicit initial revision not supported for Arch")) +(defun vc-arch-register (files &optional _comment) (dolist (file files) (let ((tagmet (vc-arch-tagging-method file))) (if (and (memq tagmet '(tagline implicit)) comment-start) @@ -262,10 +261,6 @@ Only the value `maybe' can be trusted :-(." ;; Strip the terminating newline. (buffer-substring (point-min) (1- (point-max))))))))) -(defun vc-arch-workfile-unchanged-p (_file) - "Stub: arch workfiles are always considered to be in a changed state," - nil) - (defun vc-arch-state (file) ;; There's no checkout operation and merging is not done from VC ;; so the only operation that's state dependent that VC supports is commit @@ -315,10 +310,11 @@ Only the value `maybe' can be trusted :-(." 'up-to-date 'edited))))))))) -;; -dir-status called from vc-dir, which loads vc, which loads vc-dispatcher. +;; dir-status-files called from vc-dir, which loads vc, +;; which loads vc-dispatcher. (declare-function vc-exec-after "vc-dispatcher" (code)) -(defun vc-arch-dir-status (dir callback) +(defun vc-arch-dir-status-files (dir _files callback) "Run 'tla inventory' for DIR and pass results to CALLBACK. CALLBACK expects (ENTRIES &optional MORE-TO-COME); see `vc-dir-refresh'." @@ -441,8 +437,7 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see (autoload 'vc-switches "vc") -(defun vc-arch-checkin (files rev comment) - (if rev (error "Committing to a specific revision is unsupported")) +(defun vc-arch-checkin (files comment) ;; FIXME: This implementation probably only works for singleton filesets (let ((summary (file-relative-name (car files) (vc-arch-root (car files))))) ;; Extract a summary from the comment. @@ -453,7 +448,7 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see (vc-arch-command nil 0 files "commit" "-s" summary "-L" comment "--" (vc-switches 'Arch 'checkin)))) -(defun vc-arch-diff (files &optional oldvers newvers buffer) +(defun vc-arch-diff (files &optional oldvers newvers buffer async) "Get a difference report using Arch between two versions of FILES." ;; FIXME: This implementation only works for singleton filesets. To make ;; it work for more cases, we have to either call `file-diffs' manually on @@ -470,7 +465,6 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see (if newvers (error "Diffing specific revisions not implemented") (let* (process-file-side-effects - (async (not vc-disable-async-diff)) ;; Run the command from the root dir. (default-directory (vc-arch-root file)) (status @@ -497,8 +491,6 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see "A wrapper around `vc-do-command' for use in vc-arch.el." (apply 'vc-do-command (or buffer "*vc*") okstatus vc-arch-program file flags)) -(defun vc-arch-init-revision () nil) - ;;; Completion of versions and revisions. (defun vc-arch--version-completion-table (root string) diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index 7ad601b1719..acb8470bf86 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog @@ -1,3 +1,649 @@ +2014-10-29 Paul Eggert + + Simplify use of current-time and friends. + * org-archive.el (org-archive-subtree) + (org-archive-to-archive-sibling): + * org-clock.el (org-resolve-clocks, org-clock-get-sum-start) + (org-clock-special-range): + * org-timer.el (org-timer-seconds): + * org.el (org-read-date-analyze, org-get-cursor-date): + * ox-html.el (org-html-format-spec): + * ox-icalendar.el (org-icalendar--vtodo): + Omit unnecessary call to current-time. + * org-clock.el (org-clock-get-table-data): Omit unnecessary, lossy + conversion from floating point to Emacs time and back. + (org-resolve-clocks): Prefer two-argument floor. + * org-compat.el (org-float-time): Simplify to an alias because + time-to-seconds now behaves like float-time with respect to nil arg. + * org.el (org-get-cursor-date): + Don't call current-time twice to get the current time stamp, + as this can lead to inconsistent results. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-12 Marco Wahl + + * org-agenda.el (org-get-entries-from-diary): + Use `diary-fancy-display' instead of the obsolete + `diary-display-hook'. + +2014-10-12 Nicolas Goaziou + + * ox.el (org-export-async-start): Limit first argument to lambda + expressions. + + * ox-publish.el (org-publish, org-publish-all) + (org-publish-current-file): Replace `ignore', per limit stated above. + +2014-10-12 Christopher Schmidt + + * org.el (orgstruct-make-binding): Do not use loop in interpreted code. + +2014-10-12 Mike McLean (tiny change) + + * org-agenda.el (org-agenda-time-grid): Change docstring. + +2014-10-12 Nicolas Goaziou + + * ox.el (org-export-async-start): Allow to use symbols as function. + +2014-10-03 Achim Gratz + + * ob-sh.el (org-babel-sh-initiate-session): After initiating a + session, initialize the marker `comint-last-output-start' since it + is going to be used by the ANSI color filter without further + checks in Emacs 23 and throws an error. + + * ob-lilypond.el: Change prefix from `ly-' to + `org-babel-lilypond-' throughout. + + * org-footnote.el: Forward declare `org-element-context', + `org-element-property' and `org-element-type'. + + * org.el: Add forward declarations for a number of functions that + the compiler otherwise warns about as potentially undefined at + runtime. + + * ob-core.el: Add comment to forward declaration of + 'org-src-preserve-indentations'. + + * ob-exp.el: Require org-src to import + 'org-src-preserve-indentations'. + + * ob-haskell.el, ob-python.el: Remove superfluous forward + declaration of 'org-src-preserve-indentations', since it gets + imported by other requires. + + * ob-core.el (org-every): Forward declare 'org-every'. + + * ob-C.el: Require cl during compilation so that lexical-let is + known. + + * org-entities.el: Remove superfluous require of org-macs. + Forward declare 'org-toggle-pretty-entities' and + 'org-pretty-entities'. + + * ox.el (org-export-get-parent): Move definition of + 'org-export-get-parent' before first use. Leave comment at original + place of definition. + + * org.el (org-uniquify): Move definition of 'org-uniquify' before + first use. Leave comment at original place of definition. + + * ob-tangle.el (org-babel-tangle): When `file-name-directory' + returns nil, do not run make-directory. Remove superfluous when + clauses by using short-circuiting `and' instead. + +2014-10-03 Alex Kosorukoff (tiny change) + + * org-capture.el (org-capture-fill-template): Set `mark-active' to + nil. + +2014-10-03 Bastien Guerry + + * org-agenda.el (org-agenda-prepare): Reset preset filters when + using sticky agendas. + + * org-agenda.el (org-agenda-get-sexps): Don't add tags as text + properties. + + * org-capture.el (org-capture-fill-template): + Take `org-extend-today-until' into account when setting the format time + string. + + * org.el (org-paste-subtree): Fix match subexpression. + + * org.el (org-fix-ellipsis-at-bol): Delete. + (org-mode, org-show-context, org-isearch-end): Don't use + `org-fix-ellipsis-at-bol'. + + * org-agenda.el (org-agenda-filter-apply): Fix setting of + `org-agenda-filtered-by-category'. + + * org.el (org-fontify-meta-lines-and-blocks-1): Fix handling + of `org-hidden-keywords'. + + * org-agenda.el (org-cmp-ts): Fix agenda entry type checking. + + * org-agenda.el (org-entries-lessp): Fix inactive timestamp + comparison. + + * org-agenda.el (org-agenda-mode): Let `org-agenda-redo' DTRT + when agenda are sticky. + (org-agenda-tag-filter-while-redo): Delete. + (org-agenda-list, org-agenda-redo, org-agenda-filter-by-tag): + Remove unused code. + (org-agenda-clockreport-mode, org-agenda-set-mode-name): + Don't consider tag filters. + + * org.el (org-fix-ellipsis-at-bol) + (org-first-headline-recenter): Use `set-window-start' instead + of `recenter'. + + * org-agenda.el (org-recenter-heading): Delete. + + * org.el (org-insert-heading): With one universal prefix argument + or `org-insert-heading-respect-content' set to `t', always respect + the content, i.e. don't insert a list item and don't convert + normal lines into headings. Update docstring. + (org-insert-heading-respect-content): Remove unused arg. + (org-insert-todo-heading-respect-content): Don't use + `org-insert-todo-heading-respect-content', use the second argument + of `org-insert-todo-heading' instead. + + * org-mobile.el (org-mobile-edit): Use only one arg. + + * org.el (org-overview): Don't call `recenter'. + + * org-agenda.el (org-agenda-custom-commands-local-options): + Fix misquoted values. + + * org.el (org-property-re): Also match null properties by default. + (org-entry-delete): Also delete null properties. + (org-read-property-value): Allow the empty string as a new value. + (org-delete-property): Throw a message when there is not property + to delete. + + * org-agenda.el (org-agenda-insert-diary-make-new-entry): + Fix docstring. + + * org.el (org-re-property): New parameter `allow-null' to match + property with a null value. + (org-entry-put): Correctly update a property with a null + value. + + * ox-md.el (org-md-headline): When exporting with a HTML table of + contents, add HTML anchors to Markdown headlines. + + * org.el (org-insert-heading): Don't insert an item when called + with two universal prefix arguments. + + * org-agenda.el (org-agenda-finalize): Remove duplicate check for + 'org-hd-marker. + + * org-agenda.el (org-agenda-prepare-window): New parameter + `filter-alist' to set the filters correctly when + `org-agenda-persistent-filter' is on. + (org-agenda-prepare): Use the new parameter for + `org-agenda-prepare-window'. + + * org-compat.el (org-in-invisibility-spec-p): Tiny code cleanup. + (org-move-to-column): Only remove '(org-filtered) from + `buffer-invisibility-spec'. + + * org-agenda.el (org-agenda-mode): Add buffer invisibility specs. + (org-agenda-filter-hide-line, org-agenda-remove-filter): + Set the 'invisible text property to 'org-filtered. + (org-agenda-show-new-time): Add the default face to avoid the + foreground of the last character on the line to leak into the + timestamp notification. + + * org-agenda.el (org-get-time-of-day): Don't return time string + from within links. + + * org-timer.el (org-timer-value-string): Always return a positive + value. Add docstring. + + * org-capture.el (org-capture-steal-local-variables): Don't steal + `mark-active', which should be nil in the target buffer. + + * org-agenda.el (org-agenda-remove-filter): Use `save-excursion'. + + * org.el (org-move-subtree-down): Use `org-end-of-subtree' instead + of `outline-end-of-subtree'. + (outline-end-of-subtree): Remove advice. + + * org-mouse.el (org-mouse-move-tree, org-mouse-do-remotely): + Use `org-end-of-subtree' instead of `outline-end-of-subtree'. + + * org-agenda.el (org-cmp-ts): Argument `type' is not optional. + Don't quote it. + + * org-habit.el (org-habit-insert-consistency-graphs): Don't remove + filter overlays as we don't use overlays for filters anymore. + + * org-agenda.el (org-agenda-local-vars): + Add `org-agenda-top-headline-filter'. + (org-agenda-filter-by-category): Fix syntax. + (org-agenda-filter-show-all-top-filter): New function. + (org-agenda-filter-by-top-headline) + (org-agenda-filter-remove-all): Use the new function. + (org-agenda-filter-top-headline-apply): Use a dedicated symbol + `top-headline'. + + * org.el (org-entry-properties): Ensure the special property is + not commented out when matched. + + * org-agenda.el (org-agenda-write): Code cleanup. + (org-agenda-mark-filtered-text) + (org-agenda-unmark-filtered-text) + (org-agenda-fix-tags-filter-overlays-at): Delete. + (org-agenda-remove-marked-text): Use the `property' argument + instead of hard-coding 'org-filtered. + (org-agenda-filter-remove-all): Use `org-agenda-finalize'. + (org-agenda-filter-hide-line): Rewrite using text properties + instead of overlays. + (org-agenda-remove-filter): New function. + (org-agenda-filter-show-all-tag) + (org-agenda-filter-show-all-cat) + (org-agenda-filter-show-all-re): Rewrite using + `org-agenda-remove-filter'. + + * org-attach.el (org-attach-dir): When the property is "inherited" + from a variable outside of the file, do not use + `org-entry-property-inherited-from' to find the attachment + position, assume we need to go back to the current headline. + + * ob-R.el (org-babel-R-assign-elisp): Fix parsing of a + one-dimensional value. + + * org.el (org-insert-heading): Fix bug when trying to insert a + heading when point is before the first headline and not at the + beginning of a line. + + * org-table.el (org-table-eval-formula): Fix conversion of + inactive timestamps to active ones. + + * org.el (org-set-regexps-and-options): + Allow `org-complex-heading-regexp-format' to match [/] and [%] cookies + when they are both before and after the heading. + + * org-agenda.el (org-agenda-max-todos, org-agenda-max-tags) + (org-agenda-max-effort): Fix type strings. + + * org-capture.el (org-capture-fill-template): Deactivate region + while trying to align tags on the current headline. + + * org-agenda.el (org-agenda-finalize): Filter by top headline if + `org-agenda-top-headline-filter' is set. + +2014-10-03 Bernt Hansen + + * org-macs.el: Remove restriction when locating markers. + +2014-10-03 Dmitry Gorbik (tiny change) + + * org.el (org-fast-tag-selection): Fix window splitting. + +2014-10-03 Eric Schulte + + * ob-screen.el (org-babel-screen-test): Use unpredictable name for + temporary file. + + * ob-screen.el (org-babel-screen-session-write-temp-file): + Use unpredictable temp file name, fixes bug#17416. + +2014-10-03 Ian Kelling + + * ob-core.el (org-babel-insert-result): Test all list elements + against listp and (eq element 'hline) instead of checking just the + first. + +2014-10-03 Konstantin Kliakhandler (tiny change) + + * org-agenda.el (org-agenda-redo): Reapply the filters correctly. + +2014-10-03 Kyle Meyer (tiny change) + + * ox.el (org-export-show-temporary-export-buffer): Fix typo. + +2014-10-03 Matt Lundin + + * ox-publish.el (org-publish-find-title, org-publish-find-date): + Make sure to call org-export-get-environment in copy of buffer if + emacs is already visiting. Otherwise, #+bind variables meant for + export can be set in live buffers. + + * org.el (org-agenda-inhibit-startup): fix docstring to reflect + default value + + * ox-publish.el (org-publish-find-title, org-publish-find-date): + Fix unnecessary invocations of org-mode with org-inhibit-startup. + +2014-10-03 Nick Dokos + + * org-table.el (org-table-clean-before-export): The regexes match + spaces in addition to the special characters that might be used in + the first column as special marking characters. Remove the space + from the character class. + + * ox-ascii.el (org-ascii-superscript): Change _ to ^ in the + output. + +2014-10-03 Nick Dokos + + * org-table.el (org-table-show-reference): Call `set-window-start' + with the calculated values `min' and `max', not with + (point-min) and (point-max). + +2014-10-03 Nicolas Goaziou + + * ox-latex.el (org-latex-link): Improve test for unnumbered + headlines. + + * ox-ascii.el (org-ascii--fill-string): Allow filling even when + `org-export-preserve-breaks' is non-nil. + + * org.el (org-N-empty-lines-before-current): Make sure to delete + only empty lines, not trailing whitespaces. + + * ox-html.el (org-html-headline): Make sure even listified + headlines have proper anchors so internal links can refer to them. + Small refactoring. + + * org-src.el (org-edit-src-code): Fix regexp. + (org-edit-src-exit): Do not remove auto-save timer. This is + handled by the timer itself. + + * org.el (org-re-property): Fix regexp. Improve docstring. + + * org-element.el (org-element-property-drawer-parser) + (org-element-node-property-parser): Ignore lines that are not node + properties. + (org-element-node-property-interpreter): Allow nil properties. + + * org.el (org-re-property): Fix regexp to match properties with + empty values. + + * org-element.el (org-element-headline-interpreter): Take into + consideration `org-odd-levels-only' value. Small refactoring. + + * ox-texinfo.el (org-texinfo--get-node): Return a node or anchor + name. + (org-texinfo--sanitize-content): Fix regexp. + (org-texinfo-link): Fix various bugs in link export. + + * ox-beamer.el (org-beamer-link): + * ox-html.el (org-html-link): + * ox-latex.el (org-latex-link): + * ox-odt.el (org-odt-link): When radio link has no valid + target (e.g., this is a subtree export and the radio target is not + in the exported subtree), simply return contents. + + * org.el (org-called-with-limited-levels): Initialize variable. + + * org-agenda.el (org-agenda-write): Write headings in proper + order. + + * org-element.el (org-element-table-interpreter): + Enhance docstring. + + * ox-md.el (org-md-link): Allow custom link type export function. + + * ox-texinfo.el (org-texinfo-template): Fix language and encoding + case. + + * ox-md.el (org-md-separate-elements): Outside of lists, preserve + blank lines between paragraphs and plain lists. + + * org-element.el (org-element-normalize-contents): Fix indentation + removal when there is an empty line within a verse block. + + * ox-texinfo.el (org-texinfo--normalize-headlines): Properly add a + section to the contents. + + * ox-texinfo.el (org-texinfo--normalize-headlines): Do not set pre + blanks since the value is now hard-coded. + (org-texinfo-headline): Force one blank line before contents, when non + empty. Refactoring. + (org-texinfo-src-block): Refactor code. Comply to predicate naming. + + * ox-texinfo.el (org-texinfo--sanitize-node): + Handle " (not)allowed" case. + + * ox-texinfo.el (org-texinfo-headline): Remove wrong code + comments. + + * ox-texinfo.el (org-texinfo-headline): Remove `not-in-toc' + special case for tags. + + * ox-texinfo.el (org-texinfo-headline): Remove LaTeXism (optional + arguments within square brackets). + + * ox-texinfo.el (org-texinfo-info-process): Fix docstring. + (org-texinfo-compile): Do not check for impossible cases (e.g., if the + previous variable contains a function). + + * ox-texinfo.el (org-texinfo-max-toc-depth): Fix docstring. + + * ox-texinfo.el (org-texinfo--make-option-string, + org-texinfo--sanitize-headline, + org-texinfo--sanitize-headline-contents): Remove. + + * ox-texinfo.el (org-texinfo--sanitize-node): "@", "{" and "}" + characters are allowed in a node name. So are "(" and ")" unless + "(" starts the name and there is ")" somewhere in the name. + Also trim and collapse whitespace characters. Renamed from + `org-texinfo--sanitize-menu'. + (org-texinfo--get-node): Do not sanitize node names over zealously. + Ensure returned node names are unique. + (org-texinfo-headline): Only add @node command where it makes sense. + + * ox-texinfo.el (org-texinfo--sanitize-menu) + (org-texinfo--sanitize-content): Fix docstrings. + + * ox-texinfo.el (org-texinfo--normalize-headlines): Make sure a + blank line always follows nodes. + + * ox-texinfo.el (org-texinfo-make-menu): Change signature. + Remove some intermediate functions. Generate the full master menu when + asked. + (org-texinfo--build-menu): Use a simpler algorithm. + (org-texinfo--format-entries): Fix entries when both node and title + are different. + (org-texinfo--menu-entries): Rename from `org-texinfo--generate-menu-list'. + (org-texinfo-headline): Move menu handling to next function. + (org-texinfo-section): Handle menu for current parent. + (org-texinfo--menu-headlines, org-texinfo--generate-detailed): + Remove functions. + (org-texinfo--normalize-headlines): New function. + + * ox-texinfo.el (org-texinfo-headline): Fix @appendix command. + + * ox-texinfo.el (org-texinfo-headline): Do not sanitize heading + text for sectioning command. + + * ox-texinfo.el (org-texinfo--generate-menu-list): ":COPYING: nil" + is expected to be equivalent to no COPYING property at all. + + * ox-texinfo.el (org-texinfo-item): Fix blank lines between items. + + * ox-texinfo.el (org-texinfo-plain-list): Fix format string. + Small refactoring. + + * ox-texinfo.el (texinfo): Provide new export property. + (org-texinfo-template): Use dedicated title for hard copy, when + available. + + * ox-texinfo.el (org-texinfo-headline): Always obey to a non-nil + :APPENDIX: property. Small refactoring. + + * ox-texinfo.el (org-texinfo-verse-block): Generate somewhat + meaningful Texinfo code instead of LaTeX. + + * ox-texinfo.el (org-texinfo-table): Remove reference to + "verbatim" attribute. Handle table.el tables. Tiny refactoring. + (org-texinfo-table--org-table, org-texinfo-table--table.el-table): + Remove functions. + (org-texinfo-table-column-widths): Indent code correctly. Ignore + special column, if any. Add a comment about the limitation on the + width computation. + (org-texinfo-table-row): Small refactoring. + + * ox-texinfo.el (texinfo): Do not provide a default value for + @setfilename value. + (org-texinfo-filename): Remove variable. + (org-texinfo-template): Correctly find value for @setfilename command. + If none is possible, do not provide the command at all. + + * ox.el (org-export-to-file): Provide output file name in + communication channel, through :output-file property. + + * ox-texinfo.el (org-texinfo-template): Do not hardcode "Manual" + in top node. + + * ox-texinfo.el (org-texinfo-classes): Change default value. + Update docstring. + (org-texinfo-template): Insert header string from current class after + "@settitle" command. Always provide "\input texinfo" at the beginning + of the output. + + * ox-texinfo.el (org-texinfo-template): Remove spurious blank + lines in output. Refactor code. + + * ox-texinfo.el (org-texinfo-template): Fix multi-line subtitles. + + * ox-texinfo.el (org-texinfo-template): Make sure table of + contents are allowed before inserting them. + + * ox-texinfo.el (org-texinfo-template): Check if copying data is + not nil before using it. + + * ox-texinfo.el (org-texinfo-template): Fix multi-line subauthors. + Correctly add email, when provided. Check if author info is + wanted first. + + * ox-texinfo.el (org-texinfo-node-description-column) + (org-texinfo-format-drawer-function): Fix docstrings. + + * ox-texinfo.el (texinfo): Make sure comments are ignored. + (org-texinfo-comment, org-texinfo-comment-block): Remove functions. + + * ox-texinfo.el (org-texinfo-template): Properly pad @direntry + description. + + * org-element.el (org-element-headline-parser): Add missing + `:post-blank' property in docstring. + + * ox-latex.el (org-latex-table-scientific-notation): + Set appropriate value. + (org-latex-listings-options): Fix docstring. + + * ox.el (org-export-raw-special-block-p): New function. + + * org-element.el (org-element-link-parser): Properly handle + multi-line links according to RFC 3986 when enclosed within square + brackets. + + * org-element.el (org-element-parse-secondary-string): Clone all + local variables from current buffer before parsing a secondary + string. Small refactoring. + (org-element-object-variables): Remove variable. + + * ox-odt.el (org-odt--format-paragraph): Change signature to + include info. + (org-odt-footnote-reference, org-odt-paragraph): Apply signature + change. + + * org-clock.el (org-clocktable-indent-string): Use "\emsp" instead + of "\__", which is not supported anymore since Org 8.0. + + * ox-odt.el (org-odt--paragraph-style): New function. + (org-odt--format-paragraph): Use new function to get proper style + to apply. + + * org-element.el (org-element--current-element): Fix regexp. + + * org-element.el (org-element--current-element): Fix regexp + matching latex environments. Discrepancy with regexp used in + `org-element-latex-environment-parser' introduced matching errors. + + * ox-ascii.el (org-ascii--table-cell-width): Correctly export + tables with width cookies. + + * org.el (org-insert-heading): Fix error when inserting a headline + before first headline, with point not at bol. Remove source block + check for consistency with behavior after first headline. + Tiny fix to docstring. + + * org.el (org-scan-tags): Fix typo in docstring. + + * ox.el (org-export--get-inbuffer-options): Return the empty + string instead of nil when TITLE keywords has no value. + (org-export--get-buffer-attributes): Do not set :title property + early. + (org-export--get-global-options): Do not ignore anymore nil values. + Small refactoring. + (org-export-as): Correctly set :title here. + + * org-list.el (org-list-repair): Fix typo in docstring. + + * ox-ascii.el (org-ascii--current-text-width): Tiny fix. + + * ox-org.el (org-org-section): Tiny refactoring. Use appropriate + property. + + * ox-org.el (org-org-headline): Ignore footnote sections. + (org-org-section): New function. + + * ox-beamer.el (org-beamer-select-environment): Ignore persistent + tags when displaying environments. + + * ox-ascii.el (org-ascii-indented-line-width): Update docstring. + (org-ascii-paragraph): Do not apply indentation to the very first line + of a section. + + * ox-latex.el (org-latex-inlinetask): Skip body if contents are + empty. + + * ox-html.el (org-html-standalone-image-p): Ensure paragraph + contains at least a link before return a non-nil value. + Clarify docstring. + + * ox.el (org-export-data): Always return a string, as specified + by the docstring. + + * ox-ascii.el (org-ascii--indent-string): Fix regexp to avoid + stack overflow in regexp matcher on very long lines. + + * org-element.el (org-element-timestamp-parser): Fix docstring. + + * ox-icalendar.el (org-icalendar-include-sexps, + org-icalendar-blocked-headline-p): Fix docstrings. + (org-icalendar-clear-blank-lines): Fix docstring and regexp. + + * ox-icalendar.el (org-icalendar-entry): + Use `org-icalendar-with-timestamps'. + +2014-10-03 Nicolas Richard + + * org.el (org-cycle-internal-local): Don't show a trailing + character when cycling a subtree that ends with a non-newline + character at the end of the buffer or the narrowed region. + +2014-10-03 Sebastien Vauban + + * ox-ascii.el (org-ascii--box-string): Choose more universal + Unicode characters for boxquote corners. + +2014-10-03 Marco Wahl (tiny change) + + * org-agenda.el (org-agenda-bulk-mark) + (org-agenda-bulk-mark-regexp, org-agenda-bulk-toggle-all): + Fix org-agenda-bulk-mark-all when time-grid is shown. + 2014-06-23 Stefan Monnier * org-compat.el (activate-mark): Set transient-mark-mode buffer-locally. @@ -661,7 +1307,7 @@ * org-habit.el (org-habit-parse-todo): Match all TODO keywords, not just "TODO". -2013-01-07 U-usuario (tiny change) +2013-01-07 Miguel Ruiz (tiny change) * ob-gnuplot.el (org-babel-gnuplot-quote-tsv-field): Fix code typo. @@ -6055,7 +6701,7 @@ (org-mew-open-by-message-id, org-mew-search, org-mew-capture) (org-mew-capture-guess-selection-keys): New functions. -2013-11-12 Trevor Murphy (tiny change) +2013-11-12 Trevor Murphy * org.el (org-get-compact-tod): Always pad minutes to two places. @@ -12983,7 +13629,7 @@ * ob.el (org-babel-params-from-properties): Now splits multiple var arguments behind a single ":var". - (org-babel-balanced-split): Separated balanced splitting of + (org-babel-balanced-split): Separate balanced splitting of strings out into a new function. (org-babel-parse-multiple-vars): Splits multiple var arguments behind a single ":var". @@ -20774,7 +21420,7 @@ 2010-11-11 Eric Schulte - * ob-exp.el (org-babel-exp-results): Replaced old function call. + * ob-exp.el (org-babel-exp-results): Replace old function call. 2010-11-11 Eric Schulte @@ -20967,7 +21613,7 @@ 2010-11-11 Noorul Islam - * org-latex.el (org-export-latex-links): Replaced hard coded + * org-latex.el (org-export-latex-links): Replace hard coded hyperref format with custom variable `org-export-latex-hyperref-format'. @@ -24751,7 +25397,7 @@ (org-ascii-replace-entities): New function. 2010-04-10 Carsten Dominik - Ulf Stegemann + Ulf Stegemann * org-entities.el: New file. diff --git a/lisp/org/ob-C.el b/lisp/org/ob-C.el index c460be326f8..2fcec790c43 100644 --- a/lisp/org/ob-C.el +++ b/lisp/org/ob-C.el @@ -30,6 +30,8 @@ ;; - not much in the way of error feedback ;;; Code: +(eval-when-compile + (require 'cl)) (require 'ob) (require 'cc-mode) diff --git a/lisp/org/ob-R.el b/lisp/org/ob-R.el index 93d6fe284f5..b97fd912eae 100644 --- a/lisp/org/ob-R.el +++ b/lisp/org/ob-R.el @@ -173,12 +173,11 @@ This function is called by `org-babel-execute-src-block'." (defun org-babel-R-assign-elisp (name value colnames-p rownames-p) "Construct R code assigning the elisp VALUE to a variable named NAME." (if (listp value) - (let ((max (apply #'max (mapcar #'length (org-remove-if-not - #'sequencep value)))) - (min (apply #'min (mapcar #'length (org-remove-if-not - #'sequencep value)))) - (transition-file (org-babel-temp-file "R-import-"))) - ;; ensure VALUE has an orgtbl structure (depth of at least 2) + (let* ((lengths (mapcar 'length (org-remove-if-not 'sequencep value))) + (max (if lengths (apply 'max lengths) 0)) + (min (if lengths (apply 'min lengths) 0)) + (transition-file (org-babel-temp-file "R-import-"))) + ;; Ensure VALUE has an orgtbl structure (depth of at least 2). (unless (listp (car value)) (setq value (list value))) (with-temp-file transition-file (insert diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el index 61d9ee3f870..a83f6b2fe01 100644 --- a/lisp/org/ob-core.el +++ b/lisp/org/ob-core.el @@ -38,6 +38,7 @@ (defvar org-src-lang-modes) (defvar org-babel-library-of-babel) (declare-function show-all "outline" ()) +(declare-function org-every "org" (pred seq)) (declare-function org-reduce "org" (CL-FUNC CL-SEQ &rest CL-KEYS)) (declare-function org-mark-ring-push "org" (&optional pos buffer)) (declare-function tramp-compat-make-temp-file "tramp-compat" @@ -1348,7 +1349,7 @@ specified in the properties of the current outline entry." (org-entry-get org-babel-current-src-block-location (concat "header-args:" lang) 'inherit)))))) -(defvar org-src-preserve-indentation) +(defvar org-src-preserve-indentation) ;; declare defcustom from org-src (defun org-babel-parse-src-block-match () "Parse the results from a match of the `org-babel-src-block-regexp'." (let* ((block-indentation (length (match-string 1))) @@ -2100,9 +2101,9 @@ code ---- the results are extracted in the syntax of the source ((funcall proper-list-p result) (goto-char beg) (insert (concat (orgtbl-to-orgtbl - (if (or (eq 'hline (car result)) - (and (listp (car result)) - (listp (cdr (car result))))) + (if (org-every + (lambda (el) (or (listp el) (eq el 'hline))) + result) result (list result)) '(:fmt (lambda (cell) (format "%s" cell)))) "\n")) (goto-char beg) (when (org-at-table-p) (org-table-align))) diff --git a/lisp/org/ob-exp.el b/lisp/org/ob-exp.el index 6d65496dbd4..761c9f17ad0 100644 --- a/lisp/org/ob-exp.el +++ b/lisp/org/ob-exp.el @@ -24,6 +24,7 @@ ;;; Code: (require 'ob-core) +(require 'org-src) (eval-when-compile (require 'cl)) diff --git a/lisp/org/ob-haskell.el b/lisp/org/ob-haskell.el index 22240addd8a..00066702a51 100644 --- a/lisp/org/ob-haskell.el +++ b/lisp/org/ob-haskell.el @@ -147,7 +147,6 @@ specifying a variable of the same value." (concat "[" (mapconcat #'org-babel-haskell-var-to-haskell var ", ") "]") (format "%S" var))) -(defvar org-src-preserve-indentation) (defvar org-export-copy-to-kill-ring) (declare-function org-export-to-file "ox" (backend file diff --git a/lisp/org/ob-lilypond.el b/lisp/org/ob-lilypond.el index 9b575464ea9..00a951d32d1 100644 --- a/lisp/org/ob-lilypond.el +++ b/lisp/org/ob-lilypond.el @@ -39,62 +39,62 @@ (defvar org-babel-default-header-args:lilypond '() "Default header arguments for lilypond code blocks. NOTE: The arguments are determined at lilypond compile time. -See (ly-set-header-args)") +See (org-babel-lilypond-set-header-args)") -(defvar ly-compile-post-tangle t +(defvar org-babel-lilypond-compile-post-tangle t "Following the org-babel-tangle (C-c C-v t) command, -ly-compile-post-tangle determines whether ob-lilypond should +org-babel-lilypond-compile-post-tangle determines whether ob-lilypond should automatically attempt to compile the resultant tangled file. If the value is nil, no automated compilation takes place. Default value is t") -(defvar ly-display-pdf-post-tangle t +(defvar org-babel-lilypond-display-pdf-post-tangle t "Following a successful LilyPond compilation -ly-display-pdf-post-tangle determines whether to automate the +org-babel-lilypond-display-pdf-post-tangle determines whether to automate the drawing / redrawing of the resultant pdf. If the value is nil, the pdf is not automatically redrawn. Default value is t") -(defvar ly-play-midi-post-tangle t +(defvar org-babel-lilypond-play-midi-post-tangle t "Following a successful LilyPond compilation -ly-play-midi-post-tangle determines whether to automate the +org-babel-lilypond-play-midi-post-tangle determines whether to automate the playing of the resultant midi file. If the value is nil, the midi file is not automatically played. Default value is t") -(defvar ly-OSX-ly-path +(defvar org-babel-lilypond-OSX-ly-path "/Applications/lilypond.app/Contents/Resources/bin/lilypond") -(defvar ly-OSX-pdf-path "open") -(defvar ly-OSX-midi-path "open") +(defvar org-babel-lilypond-OSX-pdf-path "open") +(defvar org-babel-lilypond-OSX-midi-path "open") -(defvar ly-nix-ly-path "/usr/bin/lilypond") -(defvar ly-nix-pdf-path "evince") -(defvar ly-nix-midi-path "timidity") +(defvar org-babel-lilypond-nix-ly-path "/usr/bin/lilypond") +(defvar org-babel-lilypond-nix-pdf-path "evince") +(defvar org-babel-lilypond-nix-midi-path "timidity") -(defvar ly-w32-ly-path "lilypond") -(defvar ly-w32-pdf-path "") -(defvar ly-w32-midi-path "") +(defvar org-babel-lilypond-w32-ly-path "lilypond") +(defvar org-babel-lilypond-w32-pdf-path "") +(defvar org-babel-lilypond-w32-midi-path "") -(defvar ly-gen-png nil +(defvar org-babel-lilypond-gen-png nil "Image generation (png) can be turned on by default by setting -LY-GEN-PNG to t") +ORG-BABEL-LILYPOND-GEN-PNG to t") -(defvar ly-gen-svg nil +(defvar org-babel-lilypond-gen-svg nil "Image generation (SVG) can be turned on by default by setting -LY-GEN-SVG to t") +ORG-BABEL-LILYPOND-GEN-SVG to t") -(defvar ly-gen-html nil +(defvar org-babel-lilypond-gen-html nil "HTML generation can be turned on by default by setting -LY-GEN-HTML to t") +ORG-BABEL-LILYPOND-GEN-HTML to t") -(defvar ly-gen-pdf nil +(defvar org-babel-lilypond-gen-pdf nil "PDF generation can be turned on by default by setting -LY-GEN-PDF to t") +ORG-BABEL-LILYPOND-GEN-PDF to t") -(defvar ly-use-eps nil +(defvar org-babel-lilypond-use-eps nil "You can force the compiler to use the EPS backend by setting -LY-USE-EPS to t") +ORG-BABEL-LILYPOND-USE-EPS to t") -(defvar ly-arrange-mode nil - "Arrange mode is turned on by setting LY-ARRANGE-MODE +(defvar org-babel-lilypond-arrange-mode nil + "Arrange mode is turned on by setting ORG-BABEL-LILYPOND-ARRANGE-MODE to t. In Arrange mode the following settings are altered from default... :tangle yes, :noweb yes @@ -123,20 +123,20 @@ Depending on whether we are in arrange mode either: 1. Attempt to execute lilypond block according to header settings (This is the default basic mode) 2. Tangle all lilypond blocks and process the result (arrange mode)" - (ly-set-header-args ly-arrange-mode) - (if ly-arrange-mode - (ly-tangle) - (ly-process-basic body params))) + (org-babel-lilypond-set-header-args org-babel-lilypond-arrange-mode) + (if org-babel-lilypond-arrange-mode + (org-babel-lilypond-tangle) + (org-babel-lilypond-process-basic body params))) -(defun ly-tangle () +(defun org-babel-lilypond-tangle () "ob-lilypond specific tangle, attempts to invoke =ly-execute-tangled-ly= if tangle is successful. Also passes specific arguments to =org-babel-tangle=" (interactive) (if (org-babel-tangle nil "yes" "lilypond") - (ly-execute-tangled-ly) nil)) + (org-babel-lilypond-execute-tangled-ly) nil)) -(defun ly-process-basic (body params) +(defun org-babel-lilypond-process-basic (body params) "Execute a lilypond block in basic mode." (let* ((result-params (cdr (assoc :result-params params))) (out-file (cdr (assoc :file params))) @@ -148,7 +148,7 @@ specific arguments to =org-babel-tangle=" (insert (org-babel-expand-body:generic body params))) (org-babel-eval (concat - (ly-determine-ly-path) + (org-babel-lilypond-determine-ly-path) " -dbackend=eps " "-dno-gs-load-fonts " "-dinclude-eps-fonts " @@ -167,45 +167,45 @@ specific arguments to =org-babel-tangle=" "Return an error because LilyPond exporter does not support sessions." (error "Sorry, LilyPond does not currently support sessions!")) -(defun ly-execute-tangled-ly () +(defun org-babel-lilypond-execute-tangled-ly () "Compile result of block tangle with lilypond. If error in compilation, attempt to mark the error in lilypond org file" - (when ly-compile-post-tangle - (let ((ly-tangled-file (ly-switch-extension + (when org-babel-lilypond-compile-post-tangle + (let ((org-babel-lilypond-tangled-file (org-babel-lilypond-switch-extension (buffer-file-name) ".lilypond")) - (ly-temp-file (ly-switch-extension + (org-babel-lilypond-temp-file (org-babel-lilypond-switch-extension (buffer-file-name) ".ly"))) - (if (file-exists-p ly-tangled-file) + (if (file-exists-p org-babel-lilypond-tangled-file) (progn - (when (file-exists-p ly-temp-file) - (delete-file ly-temp-file)) - (rename-file ly-tangled-file - ly-temp-file)) + (when (file-exists-p org-babel-lilypond-temp-file) + (delete-file org-babel-lilypond-temp-file)) + (rename-file org-babel-lilypond-tangled-file + org-babel-lilypond-temp-file)) (error "Error: Tangle Failed!") t) (switch-to-buffer-other-window "*lilypond*") (erase-buffer) - (ly-compile-lilyfile ly-temp-file) + (org-babel-lilypond-compile-lilyfile org-babel-lilypond-temp-file) (goto-char (point-min)) - (if (not (ly-check-for-compile-error ly-temp-file)) + (if (not (org-babel-lilypond-check-for-compile-error org-babel-lilypond-temp-file)) (progn (other-window -1) - (ly-attempt-to-open-pdf ly-temp-file) - (ly-attempt-to-play-midi ly-temp-file)) + (org-babel-lilypond-attempt-to-open-pdf org-babel-lilypond-temp-file) + (org-babel-lilypond-attempt-to-play-midi org-babel-lilypond-temp-file)) (error "Error in Compilation!")))) nil) -(defun ly-compile-lilyfile (file-name &optional test) +(defun org-babel-lilypond-compile-lilyfile (file-name &optional test) "Compile lilypond file and check for compile errors FILE-NAME is full path to lilypond (.ly) file" (message "Compiling LilyPond...") - (let ((arg-1 (ly-determine-ly-path)) ;program + (let ((arg-1 (org-babel-lilypond-determine-ly-path)) ;program (arg-2 nil) ;infile (arg-3 "*lilypond*") ;buffer (arg-4 t) ;display - (arg-5 (if ly-gen-png "--png" "")) ;&rest... - (arg-6 (if ly-gen-html "--html" "")) - (arg-7 (if ly-gen-pdf "--pdf" "")) - (arg-8 (if ly-use-eps "-dbackend=eps" "")) - (arg-9 (if ly-gen-svg "-dbackend=svg" "")) + (arg-5 (if org-babel-lilypond-gen-png "--png" "")) ;&rest... + (arg-6 (if org-babel-lilypond-gen-html "--html" "")) + (arg-7 (if org-babel-lilypond-gen-pdf "--pdf" "")) + (arg-8 (if org-babel-lilypond-use-eps "-dbackend=eps" "")) + (arg-9 (if org-babel-lilypond-gen-svg "-dbackend=svg" "")) (arg-10 (concat "--output=" (file-name-sans-extension file-name))) (arg-11 file-name)) (if test @@ -215,7 +215,7 @@ FILE-NAME is full path to lilypond (.ly) file" arg-1 arg-2 arg-3 arg-4 arg-5 arg-6 arg-7 arg-8 arg-9 arg-10 arg-11)))) -(defun ly-check-for-compile-error (file-name &optional test) +(defun org-babel-lilypond-check-for-compile-error (file-name &optional test) "Check for compile error. This is performed by parsing the *lilypond* buffer containing the output message from the compilation. @@ -226,24 +226,24 @@ nil as file-name since it is unused in this context" (if (not test) (if (not is-error) nil - (ly-process-compile-error file-name)) + (org-babel-lilypond-process-compile-error file-name)) is-error))) -(defun ly-process-compile-error (file-name) +(defun org-babel-lilypond-process-compile-error (file-name) "Process the compilation error that has occurred. FILE-NAME is full path to lilypond file" - (let ((line-num (ly-parse-line-num))) - (let ((error-lines (ly-parse-error-line file-name line-num))) - (ly-mark-error-line file-name error-lines) + (let ((line-num (org-babel-lilypond-parse-line-num))) + (let ((error-lines (org-babel-lilypond-parse-error-line file-name line-num))) + (org-babel-lilypond-mark-error-line file-name error-lines) (error "Error: Compilation Failed!")))) -(defun ly-mark-error-line (file-name line) +(defun org-babel-lilypond-mark-error-line (file-name line) "Mark the erroneous lines in the lilypond org buffer. FILE-NAME is full path to lilypond file. LINE is the erroneous line" (switch-to-buffer-other-window (concat (file-name-nondirectory - (ly-switch-extension file-name ".org")))) + (org-babel-lilypond-switch-extension file-name ".org")))) (let ((temp (point))) (goto-char (point-min)) (setq case-fold-search nil) @@ -254,7 +254,7 @@ LINE is the erroneous line" (goto-char (- (point) (length line)))) (goto-char temp)))) -(defun ly-parse-line-num (&optional buffer) +(defun org-babel-lilypond-parse-line-num (&optional buffer) "Extract error line number." (when buffer (set-buffer buffer)) @@ -276,12 +276,12 @@ LINE is the erroneous line" nil))) nil))) -(defun ly-parse-error-line (file-name lineNo) +(defun org-babel-lilypond-parse-error-line (file-name lineNo) "Extract the erroneous line from the tangled .ly file FILE-NAME is full path to lilypond file. LINENO is the number of the erroneous line" (with-temp-buffer - (insert-file-contents (ly-switch-extension file-name ".ly") + (insert-file-contents (org-babel-lilypond-switch-extension file-name ".ly") nil nil nil t) (if (> lineNo 0) (progn @@ -290,128 +290,128 @@ LINENO is the number of the erroneous line" (buffer-substring (point) (point-at-eol))) nil))) -(defun ly-attempt-to-open-pdf (file-name &optional test) +(defun org-babel-lilypond-attempt-to-open-pdf (file-name &optional test) "Attempt to display the generated pdf file FILE-NAME is full path to lilypond file If TEST is non-nil, the shell command is returned and is not run" - (when ly-display-pdf-post-tangle - (let ((pdf-file (ly-switch-extension file-name ".pdf"))) + (when org-babel-lilypond-display-pdf-post-tangle + (let ((pdf-file (org-babel-lilypond-switch-extension file-name ".pdf"))) (if (file-exists-p pdf-file) (let ((cmd-string - (concat (ly-determine-pdf-path) " " pdf-file))) + (concat (org-babel-lilypond-determine-pdf-path) " " pdf-file))) (if test cmd-string (start-process "\"Audition pdf\"" "*lilypond*" - (ly-determine-pdf-path) + (org-babel-lilypond-determine-pdf-path) pdf-file))) (message "No pdf file generated so can't display!"))))) -(defun ly-attempt-to-play-midi (file-name &optional test) +(defun org-babel-lilypond-attempt-to-play-midi (file-name &optional test) "Attempt to play the generated MIDI file FILE-NAME is full path to lilypond file If TEST is non-nil, the shell command is returned and is not run" - (when ly-play-midi-post-tangle - (let ((midi-file (ly-switch-extension file-name ".midi"))) + (when org-babel-lilypond-play-midi-post-tangle + (let ((midi-file (org-babel-lilypond-switch-extension file-name ".midi"))) (if (file-exists-p midi-file) (let ((cmd-string - (concat (ly-determine-midi-path) " " midi-file))) + (concat (org-babel-lilypond-determine-midi-path) " " midi-file))) (if test cmd-string (start-process "\"Audition midi\"" "*lilypond*" - (ly-determine-midi-path) + (org-babel-lilypond-determine-midi-path) midi-file))) (message "No midi file generated so can't play!"))))) -(defun ly-determine-ly-path (&optional test) +(defun org-babel-lilypond-determine-ly-path (&optional test) "Return correct path to ly binary depending on OS If TEST is non-nil, it contains a simulation of the OS for test purposes" (let ((sys-type (or test system-type))) (cond ((string= sys-type "darwin") - ly-OSX-ly-path) + org-babel-lilypond-OSX-ly-path) ((string= sys-type "windows-nt") - ly-w32-ly-path) - (t ly-nix-ly-path)))) + org-babel-lilypond-w32-ly-path) + (t org-babel-lilypond-nix-ly-path)))) -(defun ly-determine-pdf-path (&optional test) +(defun org-babel-lilypond-determine-pdf-path (&optional test) "Return correct path to pdf viewer depending on OS If TEST is non-nil, it contains a simulation of the OS for test purposes" (let ((sys-type (or test system-type))) (cond ((string= sys-type "darwin") - ly-OSX-pdf-path) + org-babel-lilypond-OSX-pdf-path) ((string= sys-type "windows-nt") - ly-w32-pdf-path) - (t ly-nix-pdf-path)))) + org-babel-lilypond-w32-pdf-path) + (t org-babel-lilypond-nix-pdf-path)))) -(defun ly-determine-midi-path (&optional test) +(defun org-babel-lilypond-determine-midi-path (&optional test) "Return correct path to midi player depending on OS If TEST is non-nil, it contains a simulation of the OS for test purposes" (let ((sys-type (or test test system-type))) (cond ((string= sys-type "darwin") - ly-OSX-midi-path) + org-babel-lilypond-OSX-midi-path) ((string= sys-type "windows-nt") - ly-w32-midi-path) - (t ly-nix-midi-path)))) + org-babel-lilypond-w32-midi-path) + (t org-babel-lilypond-nix-midi-path)))) -(defun ly-toggle-midi-play () +(defun org-babel-lilypond-toggle-midi-play () "Toggle whether midi will be played following a successful compilation." (interactive) - (setq ly-play-midi-post-tangle - (not ly-play-midi-post-tangle)) + (setq org-babel-lilypond-play-midi-post-tangle + (not org-babel-lilypond-play-midi-post-tangle)) (message (concat "Post-Tangle MIDI play has been " - (if ly-play-midi-post-tangle + (if org-babel-lilypond-play-midi-post-tangle "ENABLED." "DISABLED.")))) -(defun ly-toggle-pdf-display () +(defun org-babel-lilypond-toggle-pdf-display () "Toggle whether pdf will be displayed following a successful compilation." (interactive) - (setq ly-display-pdf-post-tangle - (not ly-display-pdf-post-tangle)) + (setq org-babel-lilypond-display-pdf-post-tangle + (not org-babel-lilypond-display-pdf-post-tangle)) (message (concat "Post-Tangle PDF display has been " - (if ly-display-pdf-post-tangle + (if org-babel-lilypond-display-pdf-post-tangle "ENABLED." "DISABLED.")))) -(defun ly-toggle-png-generation () +(defun org-babel-lilypond-toggle-png-generation () "Toggle whether png image will be generated by compilation." (interactive) - (setq ly-gen-png (not ly-gen-png)) + (setq org-babel-lilypond-gen-png (not org-babel-lilypond-gen-png)) (message (concat "PNG image generation has been " - (if ly-gen-png "ENABLED." "DISABLED.")))) + (if org-babel-lilypond-gen-png "ENABLED." "DISABLED.")))) -(defun ly-toggle-html-generation () +(defun org-babel-lilypond-toggle-html-generation () "Toggle whether html will be generated by compilation." (interactive) - (setq ly-gen-html (not ly-gen-html)) + (setq org-babel-lilypond-gen-html (not org-babel-lilypond-gen-html)) (message (concat "HTML generation has been " - (if ly-gen-html "ENABLED." "DISABLED.")))) + (if org-babel-lilypond-gen-html "ENABLED." "DISABLED.")))) -(defun ly-toggle-pdf-generation () +(defun org-babel-lilypond-toggle-pdf-generation () "Toggle whether pdf will be generated by compilation." (interactive) - (setq ly-gen-pdf (not ly-gen-pdf)) + (setq org-babel-lilypond-gen-pdf (not org-babel-lilypond-gen-pdf)) (message (concat "PDF generation has been " - (if ly-gen-pdf "ENABLED." "DISABLED.")))) + (if org-babel-lilypond-gen-pdf "ENABLED." "DISABLED.")))) -(defun ly-toggle-arrange-mode () +(defun org-babel-lilypond-toggle-arrange-mode () "Toggle whether in Arrange mode or Basic mode." (interactive) - (setq ly-arrange-mode - (not ly-arrange-mode)) + (setq org-babel-lilypond-arrange-mode + (not org-babel-lilypond-arrange-mode)) (message (concat "Arrange mode has been " - (if ly-arrange-mode "ENABLED." "DISABLED.")))) + (if org-babel-lilypond-arrange-mode "ENABLED." "DISABLED.")))) -(defun ly-switch-extension (file-name ext) +(defun org-babel-lilypond-switch-extension (file-name ext) "Utility command to swap current FILE-NAME extension with EXT" (concat (file-name-sans-extension file-name) ext)) -(defun ly-get-header-args (mode) +(defun org-babel-lilypond-get-header-args (mode) "Default arguments to use when evaluating a lilypond source block. These depend upon whether we are in arrange mode i.e. ARRANGE-MODE is t" @@ -425,11 +425,11 @@ mode i.e. ARRANGE-MODE is t" '((:results . "file") (:exports . "results"))))) -(defun ly-set-header-args (mode) +(defun org-babel-lilypond-set-header-args (mode) "Set org-babel-default-header-args:lilypond -dependent on LY-ARRANGE-MODE" +dependent on ORG-BABEL-LILYPOND-ARRANGE-MODE" (setq org-babel-default-header-args:lilypond - (ly-get-header-args mode))) + (org-babel-lilypond-get-header-args mode))) (provide 'ob-lilypond) diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el index baa5764ac42..7cee1046690 100644 --- a/lisp/org/ob-python.el +++ b/lisp/org/ob-python.el @@ -56,8 +56,6 @@ This will typically be either 'python or 'python-mode." :package-version '(Org . "8.0") :type 'symbol) -(defvar org-src-preserve-indentation) - (defcustom org-babel-python-hline-to "None" "Replace hlines in incoming tables with this when translating to python." :group 'org-babel diff --git a/lisp/org/ob-sh.el b/lisp/org/ob-sh.el index 96f275bc87a..856c7a01c88 100644 --- a/lisp/org/ob-sh.el +++ b/lisp/org/ob-sh.el @@ -123,7 +123,13 @@ Emacs-lisp table, otherwise return the results as a string." (when (and session (not (string= session "none"))) (save-window-excursion (or (org-babel-comint-buffer-livep session) - (progn (shell session) (get-buffer (current-buffer))))))) + (progn + (shell session) + ;; Needed for Emacs 23 since the marker is initially + ;; undefined and the filter functions try to use it without + ;; checking. + (set-marker comint-last-output-start (point)) + (get-buffer (current-buffer))))))) (defvar org-babel-sh-eoe-indicator "echo 'org_babel_sh_eoe'" "String to indicate that evaluation has completed.") diff --git a/lisp/org/ob-tangle.el b/lisp/org/ob-tangle.el index 37b2d92a8cf..3a43b42e3ad 100644 --- a/lisp/org/ob-tangle.el +++ b/lisp/org/ob-tangle.el @@ -225,13 +225,14 @@ used to limit the exported source code blocks by language." (concat base-name "." ext) base-name)))) (when file-name ;; Possibly create the parent directories for file. - (when (let ((m (funcall get-spec :mkdirp))) - (and m (not (string= m "no")))) - (make-directory (file-name-directory file-name) 'parents)) + (let ((m (funcall get-spec :mkdirp)) + (fnd (file-name-directory file-name))) + (and m fnd (not (string= m "no")) + (make-directory fnd 'parents))) ;; delete any old versions of file - (when (and (file-exists-p file-name) - (not (member file-name (mapcar #'car path-collector)))) - (delete-file file-name)) + (and (file-exists-p file-name) + (not (member file-name (mapcar #'car path-collector))) + (delete-file file-name)) ;; drop source-block to file (with-temp-buffer (when (fboundp lang-f) (ignore-errors (funcall lang-f))) diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 18fada15de8..c11c1c8ba41 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -390,32 +390,36 @@ the daily/weekly agenda, see `org-agenda-skip-function'.") (repeat :inline t :tag "Conditions for skipping" (choice :tag "Condition type" - (list :tag "Regexp matches" :inline t (const :format "" regexp) (regexp)) - (list :tag "Regexp does not match" :inline t (const :format "" notregexp) (regexp)) + (list :tag "Regexp matches" :inline t + (const :format "" 'regexp) + (regexp)) + (list :tag "Regexp does not match" :inline t + (const :format "" 'notregexp) + (regexp)) (list :tag "TODO state is" :inline t - (const todo) + (const 'todo) (choice - (const :tag "any not-done state" todo) - (const :tag "any done state" done) - (const :tag "any state" any) + (const :tag "Any not-done state" 'todo) + (const :tag "Any done state" 'done) + (const :tag "Any state" 'any) (list :tag "Keyword list" (const :format "" quote) (repeat (string :tag "Keyword"))))) (list :tag "TODO state is not" :inline t - (const nottodo) + (const 'nottodo) (choice - (const :tag "any not-done state" todo) - (const :tag "any done state" done) - (const :tag "any state" any) + (const :tag "Any not-done state" 'todo) + (const :tag "Any done state" 'done) + (const :tag "Any state" 'any) (list :tag "Keyword list" (const :format "" quote) (repeat (string :tag "Keyword"))))) - (const :tag "scheduled" scheduled) - (const :tag "not scheduled" notscheduled) - (const :tag "deadline" deadline) - (const :tag "no deadline" notdeadline) - (const :tag "timestamp" timestamp) - (const :tag "no timestamp" nottimestamp)))))) + (const :tag "scheduled" 'scheduled) + (const :tag "not scheduled" 'notscheduled) + (const :tag "deadline" 'deadline) + (const :tag "no deadline" 'notdeadline) + (const :tag "timestamp" 'timestamp) + (const :tag "no timestamp" 'nottimestamp)))))) (list :tag "Non-standard skipping condition" :value (org-agenda-skip-function) (const org-agenda-skip-function) @@ -1468,6 +1472,7 @@ symbols specifying conditions when the grid should be displayed: weekly if the agenda shows an entire week today show grid on current date, independent of daily/weekly display require-timed show grid only if at least one item has a time specification + remove-match skip grid times already present in an entry The second item is a string which will be placed behind the grid time. @@ -2092,11 +2097,9 @@ When nil, `q' will kill the single agenda buffer." org-agenda-info org-agenda-pre-window-conf org-agenda-columns-active - org-agenda-tag-filter-overlays org-agenda-tag-filter - org-agenda-cat-filter-overlays org-agenda-category-filter - org-agenda-re-filter-overlays + org-agenda-top-headline-filter org-agenda-regexp-filter org-agenda-markers org-agenda-last-search-view-search-was-boolean @@ -2158,10 +2161,11 @@ The following commands are available: nil t) (unless org-agenda-keep-modes (setq org-agenda-follow-mode org-agenda-start-with-follow-mode - org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode - org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode - org-agenda-show-log org-agenda-start-with-log-mode)) - + org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode)) + (setq org-agenda-show-log org-agenda-start-with-log-mode) + (setq org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode) + (add-to-invisibility-spec '(org-filtered)) + (add-to-invisibility-spec '(org-link)) (easy-menu-change '("Agenda") "Agenda Files" (append @@ -2604,7 +2608,7 @@ type." :package-version '(Org . "8.0") :group 'org-agenda-custom-commands :type '(choice (symbol :tag "No limit" nil) - (integer :tag "Max number of entries") + (integer :tag "Max number of TODOs") (repeat (cons (choice :tag "Agenda type" (const agenda) @@ -2612,7 +2616,7 @@ type." (const tags) (const search) (const timeline)) - (integer :tag "Max number of entries"))))) + (integer :tag "Max number of TODOs"))))) (defcustom org-agenda-max-tags nil "Maximum number of tagged entries to display in an agenda. @@ -2623,7 +2627,7 @@ type." :package-version '(Org . "8.0") :group 'org-agenda-custom-commands :type '(choice (symbol :tag "No limit" nil) - (integer :tag "Max number of entries") + (integer :tag "Max number of tagged entries") (repeat (cons (choice :tag "Agenda type" (const agenda) @@ -2631,7 +2635,7 @@ type." (const tags) (const search) (const timeline)) - (integer :tag "Max number of entries"))))) + (integer :tag "Max number of tagged entries"))))) (defcustom org-agenda-max-effort nil "Maximum cumulated effort duration for the agenda. @@ -2642,7 +2646,7 @@ to limit entries to in this type." :package-version '(Org . "8.0") :group 'org-agenda-custom-commands :type '(choice (symbol :tag "No limit" nil) - (integer :tag "Max number of entries") + (integer :tag "Max number of minutes") (repeat (cons (choice :tag "Agenda type" (const agenda) @@ -2650,7 +2654,7 @@ to limit entries to in this type." (const tags) (const search) (const timeline)) - (integer :tag "Max number of entries"))))) + (integer :tag "Max number of minutes"))))) (defvar org-keys nil) (defvar org-match nil) @@ -3324,19 +3328,12 @@ If AGENDA-BUFFER-NAME, use this as the buffer name for the agenda to write." (org-let (if nosettings nil org-agenda-exporter-settings) '(save-excursion (save-window-excursion - (org-agenda-mark-filtered-text) (let ((bs (copy-sequence (buffer-string))) beg content) - (org-agenda-unmark-filtered-text) (with-temp-buffer (rename-buffer org-agenda-write-buffer-name t) (set-buffer-modified-p nil) (insert bs) (org-agenda-remove-marked-text 'org-filtered) - (while (setq beg (text-property-any (point-min) (point-max) - 'org-filtered t)) - (delete-region - beg (or (next-single-property-change beg 'org-filtered) - (point-max)))) (run-hooks 'org-agenda-before-write-hook) (cond ((org-bound-and-true-p org-mobile-creating-agendas) @@ -3356,7 +3353,7 @@ If AGENDA-BUFFER-NAME, use this as the buffer name for the agenda to write." content))) (find-file file) (erase-buffer) - (mapcar (lambda (s) (org-paste-subtree 1 s)) (reverse content)) + (dolist (s content) (org-paste-subtree 1 s)) (write-file file) (kill-buffer (current-buffer)) (message "Org file written to %s" file))) @@ -3402,28 +3399,6 @@ If AGENDA-BUFFER-NAME, use this as the buffer name for the agenda to write." org-agenda-buffer-name))) (when open (org-open-file file))) -(defvar org-agenda-tag-filter-overlays nil) -(defvar org-agenda-cat-filter-overlays nil) -(defvar org-agenda-re-filter-overlays nil) - -(defun org-agenda-mark-filtered-text () - "Mark all text hidden by filtering with a text property." - (let ((inhibit-read-only t)) - (mapc - (lambda (o) - (when (equal (overlay-buffer o) (current-buffer)) - (put-text-property - (overlay-start o) (overlay-end o) - 'org-filtered t))) - (append org-agenda-tag-filter-overlays - org-agenda-cat-filter-overlays - org-agenda-re-filter-overlays)))) - -(defun org-agenda-unmark-filtered-text () - "Remove the filtering text property." - (let ((inhibit-read-only t)) - (remove-text-properties (point-min) (point-max) '(org-filtered t)))) - (defun org-agenda-remove-marked-text (property &optional value) "Delete all text marked with VALUE of PROPERTY. VALUE defaults to t." @@ -3432,7 +3407,7 @@ VALUE defaults to t." (while (setq beg (text-property-any (point-min) (point-max) property value)) (delete-region - beg (or (next-single-property-change beg 'org-filtered) + beg (or (next-single-property-change beg property) (point-max)))))) (defun org-agenda-add-entry-text () @@ -3557,7 +3532,6 @@ removed from the entry content. Currently only `planning' is allowed here." (defvar org-agenda-category-filter nil) (defvar org-agenda-regexp-filter nil) (defvar org-agenda-top-headline-filter nil) -(defvar org-agenda-tag-filter-while-redo nil) (defvar org-agenda-tag-filter-preset nil "A preset of the tags filter used for secondary agenda filtering. This must be a list of strings, each string must be a single tag preceded @@ -3609,10 +3583,12 @@ generating a new one." ;; does not have org variables local org-agenda-this-buffer-is-sticky)))) -(defun org-agenda-prepare-window (abuf) - "Setup agenda buffer in the window." - (let* ((awin (get-buffer-window abuf)) - wconf) +(defun org-agenda-prepare-window (abuf filter-alist) + "Setup agenda buffer in the window. +ABUF is the buffer for the agenda window. +FILTER-ALIST is an alist of filters we need to apply when +`org-agenda-persistent-filter' is non-nil." + (let* ((awin (get-buffer-window abuf)) wconf) (cond ((equal (current-buffer) abuf) nil) (awin (select-window awin)) @@ -3626,68 +3602,76 @@ generating a new one." ((equal org-agenda-window-setup 'reorganize-frame) (delete-other-windows) (org-switch-to-buffer-other-window abuf))) - ;; additional test in case agenda is invoked from within agenda - ;; buffer via elisp link + (setq org-agenda-tag-filter (cdr (assoc 'tag filter-alist))) + (setq org-agenda-category-filter (cdr (assoc 'cat filter-alist))) + (setq org-agenda-regexp-filter (cdr (assoc 're filter-alist))) + ;; Additional test in case agenda is invoked from within agenda + ;; buffer via elisp link. (unless (equal (current-buffer) abuf) (org-pop-to-buffer-same-window abuf)) (setq org-agenda-pre-window-conf (or org-agenda-pre-window-conf wconf)))) (defun org-agenda-prepare (&optional name) - (if (org-agenda-use-sticky-p) - (progn - ;; Popup existing buffer - (org-agenda-prepare-window (get-buffer org-agenda-buffer-name)) - (message "Sticky Agenda buffer, use `r' to refresh") - (or org-agenda-multi (org-agenda-fit-window-to-buffer)) - (throw 'exit "Sticky Agenda buffer, use `r' to refresh")) - (setq org-todo-keywords-for-agenda nil) - (setq org-drawers-for-agenda nil) - (unless org-agenda-persistent-filter - (setq org-agenda-tag-filter nil - org-agenda-category-filter nil - org-agenda-regexp-filter nil)) - (put 'org-agenda-tag-filter :preset-filter - org-agenda-tag-filter-preset) - (put 'org-agenda-category-filter :preset-filter - org-agenda-category-filter-preset) - (put 'org-agenda-regexp-filter :preset-filter - org-agenda-regexp-filter-preset) - (if org-agenda-multi + (let ((filter-alist (if org-agenda-persistent-filter + (list `(tag . ,org-agenda-tag-filter) + `(re . ,org-agenda-regexp-filter) + `(car . ,org-agenda-category-filter))))) + (if (org-agenda-use-sticky-p) (progn - (setq buffer-read-only nil) - (goto-char (point-max)) - (unless (or (bobp) org-agenda-compact-blocks - (not org-agenda-block-separator)) - (insert "\n" - (if (stringp org-agenda-block-separator) - org-agenda-block-separator - (make-string (window-width) org-agenda-block-separator)) - "\n")) - (narrow-to-region (point) (point-max))) - (setq org-done-keywords-for-agenda nil) + (put 'org-agenda-tag-filter :preset-filter nil) + (put 'org-agenda-category-filter :preset-filter nil) + (put 'org-agenda-regexp-filter :preset-filter nil) + ;; Popup existing buffer + (org-agenda-prepare-window (get-buffer org-agenda-buffer-name) + filter-alist) + (message "Sticky Agenda buffer, use `r' to refresh") + (or org-agenda-multi (org-agenda-fit-window-to-buffer)) + (throw 'exit "Sticky Agenda buffer, use `r' to refresh")) + (setq org-todo-keywords-for-agenda nil) + (setq org-drawers-for-agenda nil) + (put 'org-agenda-tag-filter :preset-filter + org-agenda-tag-filter-preset) + (put 'org-agenda-category-filter :preset-filter + org-agenda-category-filter-preset) + (put 'org-agenda-regexp-filter :preset-filter + org-agenda-regexp-filter-preset) + (if org-agenda-multi + (progn + (setq buffer-read-only nil) + (goto-char (point-max)) + (unless (or (bobp) org-agenda-compact-blocks + (not org-agenda-block-separator)) + (insert "\n" + (if (stringp org-agenda-block-separator) + org-agenda-block-separator + (make-string (window-width) org-agenda-block-separator)) + "\n")) + (narrow-to-region (point) (point-max))) + (setq org-done-keywords-for-agenda nil) - ;; Setting any org variables that are in org-agenda-local-vars - ;; list need to be done after the prepare call - (org-agenda-prepare-window (get-buffer-create org-agenda-buffer-name)) - (setq buffer-read-only nil) - (org-agenda-reset-markers) - (let ((inhibit-read-only t)) (erase-buffer)) - (org-agenda-mode) - (setq org-agenda-buffer (current-buffer)) - (setq org-agenda-contributing-files nil) - (setq org-agenda-columns-active nil) - (org-agenda-prepare-buffers (org-agenda-files nil 'ifmode)) - (setq org-todo-keywords-for-agenda - (org-uniquify org-todo-keywords-for-agenda)) - (setq org-done-keywords-for-agenda - (org-uniquify org-done-keywords-for-agenda)) - (setq org-drawers-for-agenda (org-uniquify org-drawers-for-agenda)) - (setq org-agenda-last-prefix-arg current-prefix-arg) - (setq org-agenda-this-buffer-name org-agenda-buffer-name) - (and name (not org-agenda-name) - (org-set-local 'org-agenda-name name))) - (setq buffer-read-only nil))) + ;; Setting any org variables that are in org-agenda-local-vars + ;; list need to be done after the prepare call + (org-agenda-prepare-window + (get-buffer-create org-agenda-buffer-name) filter-alist) + (setq buffer-read-only nil) + (org-agenda-reset-markers) + (let ((inhibit-read-only t)) (erase-buffer)) + (org-agenda-mode) + (setq org-agenda-buffer (current-buffer)) + (setq org-agenda-contributing-files nil) + (setq org-agenda-columns-active nil) + (org-agenda-prepare-buffers (org-agenda-files nil 'ifmode)) + (setq org-todo-keywords-for-agenda + (org-uniquify org-todo-keywords-for-agenda)) + (setq org-done-keywords-for-agenda + (org-uniquify org-done-keywords-for-agenda)) + (setq org-drawers-for-agenda (org-uniquify org-drawers-for-agenda)) + (setq org-agenda-last-prefix-arg current-prefix-arg) + (setq org-agenda-this-buffer-name org-agenda-buffer-name) + (and name (not org-agenda-name) + (org-set-local 'org-agenda-name name))) + (setq buffer-read-only nil)))) (defvar org-agenda-overriding-columns-format) ; From org-colview.el (defun org-agenda-finalize () @@ -3739,13 +3723,15 @@ generating a new one." (save-excursion (goto-char (point-min)) (while (equal (forward-line) 0) - (when (setq mrk (or (get-text-property (point) 'org-hd-marker) - (get-text-property (point) 'org-hd-marker))) + (when (setq mrk (get-text-property (point) 'org-hd-marker)) (put-text-property (point-at-bol) (point-at-eol) 'tags (org-with-point-at mrk (delete-dups (mapcar 'downcase (org-get-tags-at)))))))))) (run-hooks 'org-agenda-finalize-hook) + (when org-agenda-top-headline-filter + (org-agenda-filter-top-headline-apply + org-agenda-top-headline-filter)) (when org-agenda-tag-filter (org-agenda-filter-apply org-agenda-tag-filter 'tag)) (when (get 'org-agenda-tag-filter :preset-filter) @@ -4326,14 +4312,6 @@ items if they have an hour specification like [h]h:mm." (setq p (plist-put p :tstart clocktable-start)) (setq p (plist-put p :tend clocktable-end)) (setq p (plist-put p :scope 'agenda)) - (when (and (eq org-agenda-clockreport-mode 'with-filter) - (setq filter (or org-agenda-tag-filter-while-redo - (get 'org-agenda-tag-filter :preset-filter)))) - (setq p (plist-put p :tags (mapconcat (lambda (x) - (if (string-match "[<>=]" x) - "" - x)) - filter "")))) (setq tbl (apply 'org-clock-get-clocktable p)) (insert tbl))) (goto-char (point-min)) @@ -5111,8 +5089,7 @@ of what a project is and how to check if it stuck, customize the variable "Get the (Emacs Calendar) diary entries for DATE." (require 'diary-lib) (let* ((diary-fancy-buffer "*temporary-fancy-diary-buffer*") - (diary-display-hook '(fancy-diary-display)) - (diary-display-function 'fancy-diary-display) + (diary-display-function 'diary-fancy-display) (pop-up-frames nil) (diary-list-entries-hook (cons 'org-diary-default-entry diary-list-entries-hook)) @@ -5703,7 +5680,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (setq txt (org-agenda-format-item extra txt level category tags 'time)) (org-add-props txt props 'org-marker marker 'org-category category 'date date 'todo-state todo-state - 'org-category-position category-pos 'tags tags + 'org-category-position category-pos 'level level 'type "sexp" 'warntime warntime) (push txt ee))))) @@ -6781,8 +6758,10 @@ The optional STRING argument forces conversion into a 5 character wide string HH:MM." (save-match-data (when - (or (string-match "\\<\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)\\([AaPp][Mm]\\)?\\> *" s) - (string-match "\\<\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)?\\([AaPp][Mm]\\)\\> *" s)) + (and + (or (string-match "\\<\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)\\([AaPp][Mm]\\)?\\> *" s) + (string-match "\\<\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)?\\([AaPp][Mm]\\)\\> *" s)) + (not (eq (get-text-property 1 'face s) 'org-link))) (let* ((h (string-to-number (match-string 1 s))) (m (if (match-end 3) (string-to-number (match-string 3 s)) 0)) (ampm (if (match-end 4) (downcase (match-string 4 s)))) @@ -7010,7 +6989,7 @@ The optional argument TYPE tells the agenda type." (cond ((< ta tb) -1) ((< tb ta) +1)))) -(defsubst org-cmp-ts (a b &optional type) +(defsubst org-cmp-ts (a b type) "Compare the timestamps values of entries A and B. When TYPE is \"scheduled\", \"deadline\", \"timestamp\" or \"timestamp_ia\", compare within each of these type. When TYPE @@ -7018,9 +6997,11 @@ is the empty string, compare all timestamps without respect of their type." (let* ((def (if org-sort-agenda-notime-is-late most-positive-fixnum -1)) (ta (or (and (string-match type (or (get-text-property 1 'type a) "")) - (get-text-property 1 'ts-date a)) def)) + (get-text-property 1 'ts-date a)) + def)) (tb (or (and (string-match type (or (get-text-property 1 'type b) "")) - (get-text-property 1 'ts-date b)) def))) + (get-text-property 1 'ts-date b)) + def))) (cond ((< ta tb) -1) ((< tb ta) +1)))) @@ -7046,7 +7027,7 @@ their type." (org-cmp-ts a b "deadline"))) (deadline-down (if deadline-up (- deadline-up) nil)) (tsia-up (and (org-em 'tsia-up 'tsia-down ss) - (org-cmp-ts a b "iatimestamp_ia"))) + (org-cmp-ts a b "timestamp_ia"))) (tsia-down (if tsia-up (- tsia-up) nil)) (ts-up (and (org-em 'ts-up 'ts-down ss) (org-cmp-ts a b "timestamp"))) @@ -7283,7 +7264,6 @@ in the agenda." (cat-preset (get 'org-agenda-category-filter :preset-filter)) (re-filter org-agenda-regexp-filter) (re-preset (get 'org-agenda-regexp-filter :preset-filter)) - (org-agenda-tag-filter-while-redo (or tag-filter tag-preset)) (cols org-agenda-columns-active) (line (org-current-line)) (window-line (- line (org-current-line (window-start)))) @@ -7316,9 +7296,12 @@ in the agenda." (put 'org-agenda-tag-filter :preset-filter tag-preset) (put 'org-agenda-category-filter :preset-filter cat-preset) (put 'org-agenda-regexp-filter :preset-filter re-preset) - (and (or tag-filter tag-preset) (org-agenda-filter-apply tag-filter 'tag)) - (and (or cat-filter cat-preset) (org-agenda-filter-apply cat-filter 'category)) - (and (or re-filter re-preset) (org-agenda-filter-apply re-filter 'regexp)) + (let ((tag (or tag-filter tag-preset)) + (cat (or cat-filter cat-preset)) + (re (or re-filter re-preset))) + (when tag (org-agenda-filter-apply tag 'tag)) + (when cat (org-agenda-filter-apply cat 'category)) + (when re (org-agenda-filter-apply re 'regexp))) (and top-hl-filter (org-agenda-filter-top-headline-apply top-hl-filter)) (and cols (org-called-interactively-p 'any) (org-agenda-columns)) (org-goto-line line) @@ -7344,7 +7327,7 @@ The category is that of the current line." (org-agenda-filter-apply (setq org-agenda-category-filter (list (concat "+" cat))) 'category)) - ((error "No category at point")))))) + (t (error "No category at point")))))) (defun org-find-top-headline (&optional pos) "Find the topmost parent headline and return it." @@ -7365,10 +7348,10 @@ The top headline is that of the current line." (progn (setq org-agenda-filtered-by-top-headline nil org-agenda-top-headline-filter nil) - (org-agenda-filter-show-all-cat)) - (let ((cat (org-find-top-headline (org-get-at-bol 'org-hd-marker)))) - (if cat (org-agenda-filter-top-headline-apply cat strip) - (error "No top-level category at point"))))) + (org-agenda-filter-show-all-top-filter)) + (let ((toph (org-find-top-headline (org-get-at-bol 'org-hd-marker)))) + (if toph (org-agenda-filter-top-headline-apply toph strip) + (error "No top-level headline at point"))))) (defvar org-agenda-regexp-filter nil) (defun org-agenda-filter-by-regexp (strip) @@ -7397,7 +7380,10 @@ With two prefix arguments, remove the regexp filters." (when org-agenda-category-filter (org-agenda-filter-show-all-cat)) (when org-agenda-regexp-filter - (org-agenda-filter-show-all-re))) + (org-agenda-filter-show-all-re)) + (when org-agenda-top-headline-filter + (org-agenda-filter-show-all-top-filter)) + (org-agenda-finalize)) (defun org-agenda-filter-by-tag (strip &optional char narrow) "Keep only those lines in the agenda buffer that have a specific tag. @@ -7500,8 +7486,7 @@ to switch to narrowing." (org-agenda-filter-apply org-agenda-tag-filter 'tag) (setq maybe-refresh t)) (t (error "Invalid tag selection character %c" char))) - (when (and maybe-refresh - (eq org-agenda-clockreport-mode 'with-filter)) + (when maybe-refresh (org-agenda-redo)))) (defun org-agenda-get-represented-tags () @@ -7622,13 +7607,12 @@ When NO-OPERATOR is non-nil, do not add the + operator to returned tags." ;; Deactivate `org-agenda-entry-text-mode' when filtering (if org-agenda-entry-text-mode (org-agenda-entry-text-mode)) (let (tags cat txt) - (setq org-agenda-filter-form - (org-agenda-filter-make-matcher filter type)) - (if (and (eq type 'category) - (not (equal (substring (car filter) 0 1) "-"))) - ;; Only set `org-agenda-filtered-by-category' to t - ;; when a unique category is used as the filter - (setq org-agenda-filtered-by-category t)) + (setq org-agenda-filter-form (org-agenda-filter-make-matcher filter type)) + ;; Only set `org-agenda-filtered-by-category' to t when a unique + ;; category is used as the filter: + (setq org-agenda-filtered-by-category + (and (eq type 'category) + (not (equal (substring (car filter) 0 1) "-")))) (org-agenda-set-mode-name) (save-excursion (goto-char (point-min)) @@ -7659,7 +7643,7 @@ When NO-OPERATOR is non-nil, do not add the + operator to returned tags." (tophl (and pos (org-find-top-headline pos)))) (if (and tophl (funcall (if negative 'identity 'not) (string= hl tophl))) - (org-agenda-filter-hide-line 'category))) + (org-agenda-filter-hide-line 'top-headline))) (beginning-of-line 2))) (if (get-char-property (point) 'invisible) (org-agenda-previous-line)) @@ -7669,50 +7653,35 @@ When NO-OPERATOR is non-nil, do not add the + operator to returned tags." (defun org-agenda-filter-hide-line (type) "Hide lines with TYPE in the agenda buffer." (let* ((b (max (point-min) (1- (point-at-bol)))) - (e (point-at-eol)) - (ov (make-overlay b e))) - (overlay-put ov 'invisible t) - (overlay-put ov 'intangible t) - (overlay-put ov 'type type) - (cond ((eq type 'tag) (push ov org-agenda-tag-filter-overlays)) - ((eq type 'category) (push ov org-agenda-cat-filter-overlays)) - ((eq type 'regexp) (push ov org-agenda-re-filter-overlays))))) + (e (point-at-eol))) + (let ((inhibit-read-only t)) + (add-text-properties + b e `(invisible org-filtered org-filter-type ,type))))) -(defun org-agenda-fix-tags-filter-overlays-at (&optional pos) - (setq pos (or pos (point))) +(defun org-agenda-remove-filter (type) + (interactive) + "Remove filter of type TYPE from the agenda buffer." (save-excursion - (dolist (ov (overlays-at pos)) - (when (and (overlay-get ov 'invisible) - (eq (overlay-get ov 'type) 'tag)) + (goto-char (point-min)) + (let ((inhibit-read-only t) pos) + (while (setq pos (text-property-any (point) (point-max) 'org-filter-type type)) (goto-char pos) - (if (< (overlay-start ov) (point-at-eol)) - (move-overlay ov (point-at-eol) - (overlay-end ov))))))) + (remove-text-properties + (point) (next-single-property-change (point) 'org-filter-type) + `(invisible org-filtered org-filter-type ,type)))) + (set (intern (format "org-agenda-%s-filter" (intern-soft type))) nil) + (setq org-agenda-filter-form nil) + (org-agenda-set-mode-name) + (org-agenda-finalize))) (defun org-agenda-filter-show-all-tag nil - "Remove tag filter overlays from the agenda buffer." - (mapc 'delete-overlay org-agenda-tag-filter-overlays) - (setq org-agenda-tag-filter-overlays nil - org-agenda-tag-filter nil - org-agenda-filter-form nil) - (org-agenda-set-mode-name)) - + (org-agenda-remove-filter 'tag)) (defun org-agenda-filter-show-all-re nil - "Remove regexp filter overlays from the agenda buffer." - (mapc 'delete-overlay org-agenda-re-filter-overlays) - (setq org-agenda-re-filter-overlays nil - org-agenda-regexp-filter nil - org-agenda-filter-form nil) - (org-agenda-set-mode-name)) - + (org-agenda-remove-filter 'regexp)) (defun org-agenda-filter-show-all-cat nil - "Remove category filter overlays from the agenda buffer." - (mapc 'delete-overlay org-agenda-cat-filter-overlays) - (setq org-agenda-cat-filter-overlays nil - org-agenda-filtered-by-category nil - org-agenda-category-filter nil - org-agenda-filter-form nil) - (org-agenda-set-mode-name)) + (org-agenda-remove-filter 'category)) +(defun org-agenda-filter-show-all-top-filter nil + (org-agenda-remove-filter 'top-headline)) (defun org-agenda-manipulate-query-add () "Manipulate the query by adding a search term with positive selection. @@ -8106,15 +8075,12 @@ so that the date SD will be in that range." (format " (maximum number of lines is %d)" (if (integerp arg) arg org-agenda-entry-text-maxlines)))))) -(defun org-agenda-clockreport-mode (&optional with-filter) - "Toggle clocktable mode in an agenda buffer. -With prefix arg WITH-FILTER, make the clocktable respect the current -agenda filter." - (interactive "P") +(defun org-agenda-clockreport-mode () + "Toggle clocktable mode in an agenda buffer." + (interactive) (org-agenda-check-type t 'agenda) - (if with-filter - (setq org-agenda-clockreport-mode 'with-filter) - (setq org-agenda-clockreport-mode (not org-agenda-clockreport-mode))) + (setq org-agenda-clockreport-mode (not org-agenda-clockreport-mode)) + (setq org-agenda-start-with-clockreport-mode org-agenda-clockreport-mode) (org-agenda-set-mode-name) (org-agenda-redo) (message "Clocktable mode is %s" @@ -8135,6 +8101,7 @@ With a double `C-u' prefix arg, show *only* log items, nothing else." nil 'clockcheck)) (special '(closed clock state)) (t (not org-agenda-show-log)))) + (setq org-agenda-start-with-log-mode org-agenda-show-log) (org-agenda-set-mode-name) (org-agenda-redo) (message "Log mode is %s" @@ -8252,10 +8219,7 @@ When called with a prefix argument, include all archive files as well." " Archives" (format " :%s:" org-archive-tag)) "") - (if org-agenda-clockreport-mode - (if (eq org-agenda-clockreport-mode 'with-filter) - " Clock{}" " Clock") - ""))) + (if org-agenda-clockreport-mode " Clock" ""))) (force-mode-line-update)) (define-obsolete-function-alias @@ -8623,7 +8587,8 @@ if it was hidden in the outline." (interactive "p") (let ((win (selected-window))) (org-agenda-goto t) - (org-recenter-heading 1) + (org-back-to-heading) + (set-window-start (selected-window) (point-at-bol)) (cond ((= more 0) (hide-subtree) @@ -8662,11 +8627,6 @@ if it was hidden in the outline." (message "Remote: SUBTREE AND ALL DRAWERS"))) (select-window win))) -(defun org-recenter-heading (n) - (save-excursion - (org-back-to-heading) - (recenter n))) - (defvar org-agenda-cycle-counter nil) (defun org-agenda-cycle-show (&optional n) "Show the current entry in another window, with default settings. @@ -9177,8 +9137,6 @@ Called with a universal prefix arg, show the priority instead of setting it." (when (equal marker (org-get-at-bol 'org-marker)) (remove-text-properties (point-at-bol) (point-at-eol) '(display)) (org-move-to-column (- (window-width) (length stamp)) t) - - (org-agenda-fix-tags-filter-overlays-at (point)) (if (featurep 'xemacs) ;; Use `duplicable' property to trigger undo recording (let ((ex (make-extent nil nil)) @@ -9190,7 +9148,7 @@ Called with a universal prefix arg, show the priority instead of setting it." (add-text-properties (1- (point)) (point-at-eol) (list 'display (org-add-props stamp nil - 'face 'secondary-selection)))) + 'face '(secondary-selection default))))) (beginning-of-line 1)) (beginning-of-line 0))))) @@ -9478,9 +9436,9 @@ a timestamp can be added there." (if org-adapt-indentation (org-indent-to-column 2))) (defun org-agenda-insert-diary-make-new-entry (text) - "Make new entry as last child of current entry. -Add TEXT as headline, and position the cursor in the second line so that -a timestamp can be added there." + "Make a new entry with TEXT as the first child of the current subtree. +Position the point in the line right after the new heading so +that a timestamp can be added there." (let ((org-show-following-heading t) (org-show-siblings t) (org-show-hierarchy-above t) @@ -9669,7 +9627,7 @@ This is a command that has to be installed in `calendar-mode-map'." (overlay-put ov 'type 'org-marked-entry-overlay)) (end-of-line 1) (or (ignore-errors - (goto-char (next-single-property-change (point) 'txt))) + (goto-char (next-single-property-change (point) 'org-hd-marker))) (beginning-of-line 2)) (while (and (get-char-property (point) 'invisible) (not (eobp))) (beginning-of-line 2)) @@ -9687,7 +9645,7 @@ This is a command that has to be installed in `calendar-mode-map'." (let ((entries-marked 0) txt-at-point) (save-excursion (goto-char (point-min)) - (goto-char (next-single-property-change (point) 'txt)) + (goto-char (next-single-property-change (point) 'org-hd-marker)) (while (and (re-search-forward regexp nil t) (setq txt-at-point (get-text-property (point) 'txt))) (when (string-match regexp txt-at-point) @@ -9723,7 +9681,7 @@ This is a command that has to be installed in `calendar-mode-map'." (save-excursion (goto-char (point-min)) (while (ignore-errors - (goto-char (next-single-property-change (point) 'txt))) + (goto-char (next-single-property-change (point) 'org-hd-marker))) (org-agenda-bulk-toggle)))) (defun org-agenda-bulk-toggle () diff --git a/lisp/org/org-archive.el b/lisp/org/org-archive.el index 6deac47ba8e..87471a9cea9 100644 --- a/lisp/org/org-archive.el +++ b/lisp/org/org-archive.el @@ -231,8 +231,7 @@ this heading." (error "No file associated to buffer")))) (olpath (mapconcat 'identity (org-get-outline-path) "/")) (time (format-time-string - (substring (cdr org-time-stamp-formats) 1 -1) - (current-time))) + (substring (cdr org-time-stamp-formats) 1 -1))) category todo priority ltags itags atags ;; end of variables that will be used for saving context location afile heading buffer level newfile-p infile-p visiting @@ -441,8 +440,7 @@ sibling does not exist, it will be created at the end of the subtree." (org-set-property "ARCHIVE_TIME" (format-time-string - (substring (cdr org-time-stamp-formats) 1 -1) - (current-time))) + (substring (cdr org-time-stamp-formats) 1 -1))) (outline-up-heading 1 t) (hide-subtree) (org-cycle-show-empty-lines 'folded) diff --git a/lisp/org/org-attach.el b/lisp/org/org-attach.el index 07307e68f6f..bcf7ba736fd 100644 --- a/lisp/org/org-attach.el +++ b/lisp/org/org-attach.el @@ -208,7 +208,9 @@ the directory and (if necessary) the corresponding ID will be created." (save-excursion (save-restriction (widen) - (goto-char org-entry-property-inherited-from) + (if (marker-position org-entry-property-inherited-from) + (goto-char org-entry-property-inherited-from) + (org-back-to-heading t)) (let (org-attach-allow-inheritance) (org-attach-dir create-if-not-exists-p))))) (org-attach-check-absolute-path attach-dir) diff --git a/lisp/org/org-bbdb.el b/lisp/org/org-bbdb.el index b9841a65b84..cfd5b3b6a8c 100644 --- a/lisp/org/org-bbdb.el +++ b/lisp/org/org-bbdb.el @@ -400,8 +400,11 @@ This is used by Org to re-create the anniversary hash table." (defun org-bbdb-complete-link () "Read a bbdb link with name completion." (require 'bbdb-com) - (concat "bbdb:" - (bbdb-record-name (car (bbdb-completing-read-record "Name: "))))) + (let ((rec (bbdb-completing-read-record "Name: "))) + (concat "bbdb:" + (bbdb-record-name (if (listp rec) + (car rec) + rec))))) (defun org-bbdb-anniv-export-ical () "Extract anniversaries from BBDB and convert them to icalendar format." diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el index 0433306a909..c7086837437 100644 --- a/lisp/org/org-capture.el +++ b/lisp/org/org-capture.el @@ -1529,8 +1529,8 @@ The template may still contain \"%?\" for cursor positioning." (v-x (or (org-get-x-clipboard 'PRIMARY) (org-get-x-clipboard 'CLIPBOARD) (org-get-x-clipboard 'SECONDARY))) - (v-t (format-time-string (car org-time-stamp-formats) ct)) - (v-T (format-time-string (cdr org-time-stamp-formats) ct)) + (v-t (format-time-string (car org-time-stamp-formats) ct1)) + (v-T (format-time-string (cdr org-time-stamp-formats) ct1)) (v-u (concat "[" (substring v-t 1 -1) "]")) (v-U (concat "[" (substring v-T 1 -1) "]")) ;; `initial' and `annotation' might habe been passed. @@ -1587,7 +1587,7 @@ The template may still contain \"%?\" for cursor positioning." (insert template) (goto-char (point-min)) (org-capture-steal-local-variables buffer) - (setq buffer-file-name nil) + (setq buffer-file-name nil mark-active nil) ;; %[] Insert contents of a file. (goto-char (point-min)) @@ -1674,7 +1674,9 @@ The template may still contain \"%?\" for cursor positioning." (or (equal (char-before) ?:) (insert ":")) (insert ins) (or (equal (char-after) ?:) (insert ":")) - (and (org-at-heading-p) (org-set-tags nil 'align))))) + (and (org-at-heading-p) + (let ((org-ignore-region t)) + (org-set-tags nil 'align)))))) ((equal char "C") (cond ((= (length clipboards) 1) (insert (car clipboards))) ((> (length clipboards) 1) diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index e345bf37b6d..51c87892a9c 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el @@ -1046,9 +1046,9 @@ If `only-dangling-p' is non-nil, only ask to resolve dangling (lambda (clock) (format "Dangling clock started %d mins ago" - (floor - (/ (- (org-float-time (current-time)) - (org-float-time (cdr clock))) 60)))))) + (floor (- (org-float-time) + (org-float-time (cdr clock))) + 60))))) (or last-valid (cdr clock))))))))))) @@ -1368,7 +1368,7 @@ decides which time to use." (current-time)) ((equal cmt "today") (setq org--msg-extra "showing today's task time.") - (let* ((dt (decode-time (current-time)))) + (let* ((dt (decode-time))) (setq dt (append (list 0 0 0) (nthcdr 3 dt))) (if org-extend-today-until (setf (nth 2 dt) org-extend-today-until)) @@ -2029,7 +2029,7 @@ If MSTART is non-nil, use this number to specify the starting day of a month (1 is the first day of the month). If you can combine both, the month starting day will have priority." (if (integerp key) (setq key (intern (number-to-string key)))) - (let* ((tm (decode-time (or time (current-time)))) + (let* ((tm (decode-time time)) (s 0) (m (nth 1 tm)) (h (nth 2 tm)) (d (nth 3 tm)) (month (nth 4 tm)) (y (nth 5 tm)) (dow (nth 6 tm)) @@ -2556,13 +2556,10 @@ from the dynamic block definition." total-time)) (defun org-clocktable-indent-string (level) - (if (= level 1) - "" - (let ((str "\\__")) - (while (> level 2) - (setq level (1- level) - str (concat str "___"))) - (concat str " ")))) + (if (= level 1) "" + (let ((str " ")) + (dotimes (k (1- level) str) + (setq str (concat "\\emsp" str)))))) (defun org-clocktable-steps (params) "Step through the range to make a number of clock tables." @@ -2673,10 +2670,8 @@ TIME: The sum of all time spend in this tree, in minutes. This time (when (and te (listp te)) (setq te (format "%4d-%02d-%02d" (nth 2 te) (car te) (nth 1 te)))) ;; Now the times are strings we can parse. - (if ts (setq ts (org-float-time - (seconds-to-time (org-matcher-time ts))))) - (if te (setq te (org-float-time - (seconds-to-time (org-matcher-time te))))) + (if ts (setq ts (org-matcher-time ts))) + (if te (setq te (org-matcher-time te))) (save-excursion (org-clock-sum ts te (unless (null matcher) diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el index c3ccf062db9..447505ceafb 100644 --- a/lisp/org/org-compat.el +++ b/lisp/org/org-compat.el @@ -312,8 +312,7 @@ Works on both Emacs and XEmacs." (defun org-in-invisibility-spec-p (arg) "Is ARG a member of `buffer-invisibility-spec'?" (if (consp buffer-invisibility-spec) - (member arg buffer-invisibility-spec) - nil)) + (member arg buffer-invisibility-spec))) (defmacro org-xemacs-without-invisibility (&rest body) "Turn off extents with invisibility while executing BODY." @@ -347,18 +346,8 @@ Works on both Emacs and XEmacs." "Move to column COLUMN. Pass COLUMN and FORCE to `move-to-column'. Pass BUFFER to the XEmacs version of `move-to-column'." - (let* ((with-bracket-link - (save-excursion - (forward-line 0) - (looking-at (concat "^.*" org-bracket-link-regexp)))) - (buffer-invisibility-spec - (cond - ((or (not (derived-mode-p 'org-mode)) - (and with-bracket-link (org-invisible-p2))) - (remove '(org-link) buffer-invisibility-spec)) - (with-bracket-link - (remove t buffer-invisibility-spec)) - (t buffer-invisibility-spec)))) + (let ((buffer-invisibility-spec + (remove '(org-filtered) buffer-invisibility-spec))) (if (featurep 'xemacs) (org-xemacs-without-invisibility (move-to-column column force buffer)) @@ -422,12 +411,8 @@ Pass BUFFER to the XEmacs version of `move-to-column'." (when focus-follows-mouse (set-mouse-position frame (1- (frame-width frame)) 0))))) -(defun org-float-time (&optional time) - "Convert time value TIME to a floating point number. -TIME defaults to the current time." - (if (featurep 'xemacs) - (time-to-seconds (or time (current-time))) - (float-time time))) +(defalias 'org-float-time + (if (featurep 'xemacs) 'time-to-seconds 'float-time)) ;; `user-error' is only available from 24.2.50 on (unless (fboundp 'user-error) diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index b44466e53df..eb8ff415861 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el @@ -360,11 +360,6 @@ still has an entry since one of its properties (`:title') does.") (footnote-reference . :inline-definition)) "Alist between element types and location of secondary value.") -(defconst org-element-object-variables '(org-link-abbrev-alist-local) - "List of buffer-local variables used when parsing objects. -These variables are copied to the temporary buffer created by -`org-export-secondary-string'.") - ;;; Accessors and Setters @@ -732,11 +727,11 @@ CONTENTS is the contents of the footnote-definition." Return a list whose CAR is `headline' and CDR is a plist containing `:raw-value', `:title', `:alt-title', `:begin', -`:end', `:pre-blank', `:hiddenp', `:contents-begin' and +`:end', `:pre-blank', `:hiddenp', `:contents-begin', `:contents-end', `:level', `:priority', `:tags', `:todo-keyword',`:todo-type', `:scheduled', `:deadline', -`:closed', `:quotedp', `:archivedp', `:commentedp' and -`:footnote-section-p' keywords. +`:closed', `:quotedp', `:archivedp', `:commentedp', +`:footnote-section-p' and `:post-blank' keywords. The plist also contains any property set in the property drawer, with its name in upper cases and colons added at the @@ -875,38 +870,40 @@ CONTENTS is the contents of the element." (org-element-property :tags headline)) (org-element-property :tags headline)))) (and tag-list - (format ":%s:" (mapconcat 'identity tag-list ":"))))) + (format ":%s:" (mapconcat #'identity tag-list ":"))))) (commentedp (org-element-property :commentedp headline)) (quotedp (org-element-property :quotedp headline)) (pre-blank (or (org-element-property :pre-blank headline) 0)) - (heading (concat (make-string (org-reduced-level level) ?*) - (and todo (concat " " todo)) - (and quotedp (concat " " org-quote-string)) - (and commentedp (concat " " org-comment-string)) - (and priority - (format " [#%s]" (char-to-string priority))) - (cond ((and org-footnote-section - (org-element-property - :footnote-section-p headline)) - (concat " " org-footnote-section)) - (title (concat " " title)))))) - (concat heading - ;; Align tags. - (when tags - (cond - ((zerop org-tags-column) (format " %s" tags)) - ((< org-tags-column 0) - (concat - (make-string - (max (- (+ org-tags-column (length heading) (length tags))) 1) - ? ) - tags)) - (t - (concat - (make-string (max (- org-tags-column (length heading)) 1) ? ) - tags)))) - (make-string (1+ pre-blank) 10) - contents))) + (heading + (concat (make-string (if org-odd-levels-only (1- (* level 2)) level) + ?*) + (and todo (concat " " todo)) + (and quotedp (concat " " org-quote-string)) + (and commentedp (concat " " org-comment-string)) + (and priority (format " [#%s]" (char-to-string priority))) + " " + (if (and org-footnote-section + (org-element-property :footnote-section-p headline)) + org-footnote-section + title)))) + (concat + heading + ;; Align tags. + (when tags + (cond + ((zerop org-tags-column) (format " %s" tags)) + ((< org-tags-column 0) + (concat + (make-string + (max (- (+ org-tags-column (length heading) (length tags))) 1) + ?\s) + tags)) + (t + (concat + (make-string (max (- org-tags-column (length heading)) 1) ?\s) + tags)))) + (make-string (1+ pre-blank) ?\n) + contents))) ;;;; Inlinetask @@ -1315,36 +1312,36 @@ containing `:begin', `:end', `:hiddenp', `:contents-begin', `:contents-end', `:post-blank' and `:post-affiliated' keywords. Assume point is at the beginning of the property drawer." - (save-excursion - (let ((case-fold-search t)) - (if (not (save-excursion - (re-search-forward "^[ \t]*:END:[ \t]*$" limit t))) - ;; Incomplete drawer: parse it as a paragraph. - (org-element-paragraph-parser limit affiliated) - (save-excursion - (let* ((drawer-end-line (match-beginning 0)) - (begin (car affiliated)) - (post-affiliated (point)) - (contents-begin (progn (forward-line) - (and (< (point) drawer-end-line) - (point)))) - (contents-end (and contents-begin drawer-end-line)) - (hidden (org-invisible-p2)) - (pos-before-blank (progn (goto-char drawer-end-line) - (forward-line) - (point))) - (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (line-beginning-position))))) - (list 'property-drawer - (nconc - (list :begin begin - :end end - :hiddenp hidden - :contents-begin contents-begin - :contents-end contents-end - :post-blank (count-lines pos-before-blank end) - :post-affiliated post-affiliated) - (cdr affiliated))))))))) + (let ((case-fold-search t)) + (if (not (save-excursion (re-search-forward "^[ \t]*:END:[ \t]*$" limit t))) + ;; Incomplete drawer: parse it as a paragraph. + (org-element-paragraph-parser limit affiliated) + (save-excursion + (let* ((drawer-end-line (match-beginning 0)) + (begin (car affiliated)) + (post-affiliated (point)) + (contents-begin + (progn + (forward-line) + (and (re-search-forward org-property-re drawer-end-line t) + (line-beginning-position)))) + (contents-end (and contents-begin drawer-end-line)) + (hidden (org-invisible-p2)) + (pos-before-blank (progn (goto-char drawer-end-line) + (forward-line) + (point))) + (end (progn (skip-chars-forward " \r\t\n" limit) + (if (eobp) (point) (line-beginning-position))))) + (list 'property-drawer + (nconc + (list :begin begin + :end end + :hiddenp hidden + :contents-begin contents-begin + :contents-end contents-end + :post-blank (count-lines pos-before-blank end) + :post-affiliated post-affiliated) + (cdr affiliated)))))))) (defun org-element-property-drawer-interpreter (property-drawer contents) "Interpret PROPERTY-DRAWER element as Org syntax. @@ -2099,28 +2096,28 @@ LIMIT bounds the search. Return a list whose CAR is `node-property' and CDR is a plist containing `:key', `:value', `:begin', `:end' and `:post-blank' keywords." - (save-excursion - (looking-at org-property-re) - (let ((case-fold-search t) - (begin (point)) - (key (org-match-string-no-properties 2)) - (value (org-match-string-no-properties 3)) - (pos-before-blank (progn (forward-line) (point))) - (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) - (list 'node-property - (list :key key - :value value - :begin begin - :end end - :post-blank (count-lines pos-before-blank end)))))) + (looking-at org-property-re) + (let ((begin (point)) + (key (org-match-string-no-properties 2)) + (value (org-match-string-no-properties 3)) + (end (save-excursion + (end-of-line) + (if (re-search-forward org-property-re limit t) + (line-beginning-position) + limit)))) + (list 'node-property + (list :key key + :value value + :begin begin + :end end + :post-blank 0)))) (defun org-element-node-property-interpreter (node-property contents) "Interpret NODE-PROPERTY element as Org syntax. CONTENTS is nil." (format org-property-format (format ":%s:" (org-element-property :key node-property)) - (org-element-property :value node-property))) + (or (org-element-property :value node-property) ""))) ;;;; Paragraph @@ -2486,7 +2483,7 @@ Assume point is at the beginning of the table." (defun org-element-table-interpreter (table contents) "Interpret TABLE element as Org syntax. -CONTENTS is nil." +CONTENTS is a string, if table's type is `org', or nil." (if (eq (org-element-property :type table) 'table.el) (org-remove-indentation (org-element-property :value table)) (concat (with-temp-buffer (insert contents) @@ -3112,16 +3109,20 @@ Assume point is at the beginning of the link." (cond ;; File type. ((or (file-name-absolute-p raw-link) - (string-match "^\\.\\.?/" raw-link)) + (string-match "\\`\\.\\.?/" raw-link)) (setq type "file" path raw-link)) ;; Explicit type (http, irc, bbdb...). See `org-link-types'. - ((string-match org-link-re-with-space3 raw-link) - (setq type (match-string 1 raw-link) path (match-string 2 raw-link))) + ((string-match org-link-types-re raw-link) + (setq type (match-string 1 raw-link) + ;; According to RFC 3986, extra whitespace should be + ;; ignored when a URI is extracted. + path (replace-regexp-in-string + "[ \t]*\n[ \t]*" "" (substring raw-link (match-end 0))))) ;; Id type: PATH is the id. - ((string-match "^id:\\([-a-f0-9]+\\)" raw-link) + ((string-match "\\`id:\\([-a-f0-9]+\\)" raw-link) (setq type "id" path (match-string 1 raw-link))) ;; Code-ref type: PATH is the name of the reference. - ((string-match "^(\\(.*\\))$" raw-link) + ((string-match "\\`(\\(.*\\))\\'" raw-link) (setq type "coderef" path (match-string 1 raw-link))) ;; Custom-id type: PATH is the name of the custom id. ((= (aref raw-link 0) ?#) @@ -3541,7 +3542,7 @@ Return a list whose CAR is `timestamp', and CDR a plist with `:month-end', `:day-end', `:hour-end', `:minute-end', `:repeater-type', `:repeater-value', `:repeater-unit', `:warning-type', `:warning-value', `:warning-unit', `:begin', -`:end', `:value' and `:post-blank' keywords. +`:end' and `:post-blank' keywords. Assume point is at the beginning of the timestamp." (save-excursion @@ -3890,8 +3891,7 @@ element it has to parse." (goto-char (car affiliated)) (org-element-keyword-parser limit nil)) ;; LaTeX Environment. - ((looking-at - "[ \t]*\\\\begin{[A-Za-z0-9*]+}\\(\\[.*?\\]\\|{.*?}\\)*[ \t]*$") + ((looking-at "[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}\\(\\[.*?\\]\\|{.*?}\\)*[ \t]*$") (org-element-latex-environment-parser limit affiliated)) ;; Drawer and Property Drawer. ((looking-at org-drawer-regexp) @@ -4090,21 +4090,18 @@ looked after. Optional argument PARENT, when non-nil, is the element or object containing the secondary string. It is used to set correctly `:parent' property within the string." - ;; Copy buffer-local variables listed in - ;; `org-element-object-variables' into temporary buffer. This is - ;; required since object parsing is dependent on these variables. - (let ((pairs (delq nil (mapcar (lambda (var) - (when (boundp var) - (cons var (symbol-value var)))) - org-element-object-variables)))) + (let ((local-variables (buffer-local-variables))) (with-temp-buffer - (mapc (lambda (pair) (org-set-local (car pair) (cdr pair))) pairs) + (dolist (v local-variables) + (ignore-errors + (if (symbolp v) (makunbound v) + (org-set-local (car v) (cdr v))))) (insert string) + (restore-buffer-modified-p nil) (let ((secondary (org-element--parse-objects (point-min) (point-max) nil restriction))) (when parent - (mapc (lambda (obj) (org-element-put-property obj :parent parent)) - secondary)) + (dolist (o secondary) (org-element-put-property o :parent parent))) secondary)))) (defun org-element-map @@ -4617,29 +4614,29 @@ indentation is not done with TAB characters." (let* ((min-ind most-positive-fixnum) find-min-ind ; For byte-compiler. (find-min-ind - (function - ;; Return minimal common indentation within BLOB. This is - ;; done by walking recursively BLOB and updating MIN-IND - ;; along the way. FIRST-FLAG is non-nil when the first - ;; string hasn't been seen yet. It is required as this - ;; string is the only one whose indentation doesn't happen - ;; after a newline character. - (lambda (blob first-flag) - (dolist (object (org-element-contents blob)) - (when (and first-flag (stringp object)) - (setq first-flag nil) - (string-match "\\`\\( *\\)" object) - (let ((len (length (match-string 1 object)))) - ;; An indentation of zero means no string will be - ;; modified. Quit the process. - (if (zerop len) (throw 'zero (setq min-ind 0)) - (setq min-ind (min len min-ind))))) - (cond - ((stringp object) - (dolist (line (delq "" (cdr (org-split-string object " *\n")))) - (setq min-ind (min (org-get-indentation line) min-ind)))) - ((memq (org-element-type object) org-element-recursive-objects) - (funcall find-min-ind object first-flag)))))))) + ;; Return minimal common indentation within BLOB. This is + ;; done by walking recursively BLOB and updating MIN-IND + ;; along the way. FIRST-FLAG is non-nil when the first + ;; string hasn't been seen yet. It is required as this + ;; string is the only one whose indentation doesn't happen + ;; after a newline character. + (lambda (blob first-flag) + (dolist (object (org-element-contents blob)) + (when (and first-flag (stringp object)) + (setq first-flag nil) + (string-match "\\` *" object) + (let ((len (match-end 0))) + ;; An indentation of zero means no string will be + ;; modified. Quit the process. + (if (zerop len) (throw 'zero (setq min-ind 0)) + (setq min-ind (min len min-ind))))) + (cond + ((stringp object) + (dolist (line (cdr (org-split-string object " *\n"))) + (unless (string= line "") + (setq min-ind (min (org-get-indentation line) min-ind))))) + ((memq (org-element-type object) org-element-recursive-objects) + (funcall find-min-ind object first-flag))))))) ;; Find minimal indentation in ELEMENT. (catch 'zero (funcall find-min-ind element (not ignore-first))) (if (or (zerop min-ind) (= min-ind most-positive-fixnum)) element diff --git a/lisp/org/org-entities.el b/lisp/org/org-entities.el index ba1eed12bdb..6324a625dbd 100644 --- a/lisp/org/org-entities.el +++ b/lisp/org/org-entities.el @@ -27,9 +27,8 @@ ;;; Code: -(require 'org-macs) - -(declare-function org-table-align "org-table" ()) +(declare-function org-toggle-pretty-entities "org" ()) +(declare-function org-table-align "org-table" ()) (eval-when-compile (require 'cl)) @@ -568,6 +567,7 @@ Kind can be any of `latex', `html', `ascii', `latin1', or `utf8'." (goto-char pos) (org-table-align))) +(defvar org-pretty-entities) ;; declare defcustom from org (defun org-entities-help () "Create a Help buffer with all available entities." (interactive) diff --git a/lisp/org/org-habit.el b/lisp/org/org-habit.el index 721718d2b6c..60137568c00 100644 --- a/lisp/org/org-habit.el +++ b/lisp/org/org-habit.el @@ -351,14 +351,7 @@ current time." (let ((inhibit-read-only t) l c (buffer-invisibility-spec '(org-link)) (moment (time-subtract (current-time) - (list 0 (* 3600 org-extend-today-until) 0))) - disabled-overlays) - ;; Disable filters; this helps with alignment if there are links. - (mapc (lambda (ol) - (when (overlay-get ol 'invisible) - (overlay-put ol 'invisible nil) - (setq disabled-overlays (cons ol disabled-overlays)))) - (overlays-in (point-min) (point-max))) + (list 0 (* 3600 org-extend-today-until) 0)))) (save-excursion (goto-char (if line (point-at-bol) (point-min))) (while (not (eobp)) @@ -374,9 +367,7 @@ current time." (time-subtract moment (days-to-time org-habit-preceding-days)) moment (time-add moment (days-to-time org-habit-following-days)))))) - (forward-line))) - (mapc (lambda (ol) (overlay-put ol 'invisible t)) - disabled-overlays))) + (forward-line))))) (defun org-habit-toggle-habits () "Toggle display of habits in an agenda buffer." diff --git a/lisp/org/org-list.el b/lisp/org/org-list.el index 92a92491e30..a00e557371c 100644 --- a/lisp/org/org-list.el +++ b/lisp/org/org-list.el @@ -2237,7 +2237,7 @@ item is invisible." t))))) (defun org-list-repair () - "Fix indentation, bullets and checkboxes is the list at point." + "Fix indentation, bullets and checkboxes in the list at point." (interactive) (unless (org-at-item-p) (error "This is not a list")) (let* ((struct (org-list-struct)) diff --git a/lisp/org/org-macs.el b/lisp/org/org-macs.el index ddd6e2e90f5..96265ec02fe 100644 --- a/lisp/org/org-macs.el +++ b/lisp/org/org-macs.el @@ -154,9 +154,9 @@ We use a macro so that the test can happen at compilation time." `(let ((,mpom ,pom)) (save-excursion (if (markerp ,mpom) (set-buffer (marker-buffer ,mpom))) - (save-excursion - (goto-char (or ,mpom (point))) - ,@body))))) + (org-with-wide-buffer + (goto-char (or ,mpom (point))) + ,@body))))) (def-edebug-spec org-with-point-at (form body)) (put 'org-with-point-at 'lisp-indent-function 1) diff --git a/lisp/org/org-mobile.el b/lisp/org/org-mobile.el index f59d1c47911..41a99586742 100644 --- a/lisp/org/org-mobile.el +++ b/lisp/org/org-mobile.el @@ -1074,7 +1074,7 @@ be returned that indicates what went wrong." ;; which prevents correct insertion when point is invisible (org-show-subtree) (end-of-line 1) - (org-insert-heading-respect-content '(16) t) + (org-insert-heading-respect-content t) (org-demote)) (beginning-of-line) (insert "* ")) diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el index 9f9538df789..718f346670f 100644 --- a/lisp/org/org-mouse.el +++ b/lisp/org/org-mouse.el @@ -953,20 +953,23 @@ This means, between the beginning of line and the point." (point) (save-excursion (goto-char start) (org-back-to-heading) (point)))) - (outline-end-of-subtree) + (progn (org-end-of-subtree nil t) + (unless (eobp) (backward-char))) (end-of-line) (if (eobp) (newline) (forward-char))) (when (looking-at org-outline-regexp) (let ((level (- (match-end 0) (match-beginning 0)))) (when (> end (match-end 0)) - (outline-end-of-subtree) + (progn (org-end-of-subtree nil t) + (unless (eobp) (backward-char))) (end-of-line) (if (eobp) (newline) (forward-char)) (setq level (1+ level))) (org-paste-subtree level) (save-excursion - (outline-end-of-subtree) + (progn (org-end-of-subtree nil t) + (unless (eobp) (backward-char))) (when (bolp) (delete-char -1)))))))))) @@ -1003,8 +1006,8 @@ This means, between the beginning of line and the point." (org-mouse-main-buffer (current-buffer))) (when (eq (with-current-buffer buffer major-mode) 'org-mode) (let ((endmarker (with-current-buffer buffer - (outline-end-of-subtree) - (forward-char 1) + (org-end-of-subtree nil t) + (unless (eobp) (forward-char 1)) (point-marker)))) (org-with-remote-undo buffer (with-current-buffer buffer diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el index d5e70076df0..26b10cea9c7 100644 --- a/lisp/org/org-src.el +++ b/lisp/org/org-src.el @@ -376,23 +376,21 @@ the display of windows containing the Org buffer and the code buffer." (when (fboundp edit-prep-func) (funcall edit-prep-func full-info))) (or org-edit-src-code-timer + (zerop org-edit-src-auto-save-idle-delay) (setq org-edit-src-code-timer - (unless (zerop org-edit-src-auto-save-idle-delay) - (run-with-idle-timer - org-edit-src-auto-save-idle-delay t - (lambda () - (cond - ((and (string-match "\*Org Src" (buffer-name)) - (buffer-modified-p)) - (org-edit-src-save)) - ((not - (delq nil (mapcar - (lambda (b) - (string-match "\*Org Src" (buffer-name b))) - (buffer-list)))) - (cancel-timer org-edit-src-code-timer) - (setq org-edit-src-code-timer))))))))) - t))) + (run-with-idle-timer + org-edit-src-auto-save-idle-delay t + (lambda () + (cond + ((org-string-match-p "\\`\\*Org Src" (buffer-name)) + (when (buffer-modified-p) (org-edit-src-save))) + ((not (org-some (lambda (b) + (org-string-match-p "\\`\\*Org Src" + (buffer-name b))) + (buffer-list))) + (cancel-timer org-edit-src-code-timer) + (setq org-edit-src-code-timer nil)))))))) + t))) (defun org-edit-src-continue (e) "Continue editing source blocks." ;; Fixme: be more accurate @@ -757,8 +755,8 @@ with \",*\", \",#+\", \",,*\" and \",,#+\"." (delete-region beg (max beg end)) (unless (string-match "\\`[ \t]*\\'" code) (insert code)) - ;; Make sure the overlay stays in place - (when (eq context 'save) (move-overlay ovl beg (point))) + ;; Make sure the overlay stays in place + (when (eq context 'save) (move-overlay ovl beg (point))) (goto-char beg) (if single (just-one-space))) (if (memq t (mapcar (lambda (overlay) @@ -774,9 +772,6 @@ with \",*\", \",#+\", \",,*\" and \",,#+\"." (unless (eq context 'save) (move-marker beg nil) (move-marker end nil))) - (when org-edit-src-code-timer - (cancel-timer org-edit-src-code-timer) - (setq org-edit-src-code-timer nil)) (unless (eq context 'save) (when org-edit-src-saved-temp-window-config (set-window-configuration org-edit-src-saved-temp-window-config) diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index ed926a387b5..8c9a83d8847 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el @@ -2351,7 +2351,7 @@ For all numbers larger than LIMIT, shift them by DELTA." (string-match "^[a-zA-Z][_a-zA-Z0-9]*$" field)) (push (cons field v) org-table-local-parameters) (push (list field line col) org-table-named-field-locations)))) - ;; Analyse the line types + ;; Analyze the line types. (goto-char beg) (setq org-table-current-begin-line (org-current-line) org-table-current-begin-pos (point) @@ -2712,7 +2712,8 @@ not overwrite the stored one." (or (fboundp 'calc-eval) (user-error "Calc does not seem to be installed, and is needed to evaluate the formula")) ;; Use <...> time-stamps so that Calc can handle them - (setq form (replace-regexp-in-string org-ts-regexp3 "<\\1>" form)) + (while (string-match (concat "\\[" org-ts-regexp1 "\\]") form) + (setq form (replace-match "<\\1>" nil nil form))) ;; I18n-ize local time-stamps by setting (system-time-locale "C") (when (string-match org-ts-regexp2 form) (let* ((ts (match-string 0 form)) @@ -3862,9 +3863,10 @@ With prefix ARG, apply the new formulas to the table." (push org-table-current-begin-pos org-show-positions) (let ((min (apply 'min org-show-positions)) (max (apply 'max org-show-positions))) - (goto-char min) (recenter 0) + (set-window-start (selected-window) min) (goto-char max) - (or (pos-visible-in-window-p max) (recenter -1)))) + (or (pos-visible-in-window-p max) + (set-window-start (selected-window) max)))) (select-window win)))) (defun org-table-force-dataline () diff --git a/lisp/org/org-timer.el b/lisp/org/org-timer.el index 1a86ffa7488..b22db7bc6fa 100644 --- a/lisp/org/org-timer.el +++ b/lisp/org/org-timer.el @@ -186,14 +186,17 @@ it in the buffer." (insert (org-timer-value-string)))) (defun org-timer-value-string () - (format org-timer-format (org-timer-secs-to-hms (floor (org-timer-seconds))))) + "Set the timer string." + (format org-timer-format + (org-timer-secs-to-hms + (abs (floor (org-timer-seconds)))))) (defvar org-timer-timer-is-countdown nil) (defun org-timer-seconds () (if org-timer-timer-is-countdown (- (org-float-time org-timer-start-time) - (org-float-time (current-time))) - (- (org-float-time (or org-timer-pause-time (current-time))) + (org-float-time)) + (- (org-float-time org-timer-pause-time) (org-float-time org-timer-start-time)))) ;;;###autoload diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index 4909d45530a..aae65cc6d37 100644 --- a/lisp/org/org-version.el +++ b/lisp/org/org-version.el @@ -5,13 +5,13 @@ (defun org-release () "The release version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-release "8.2.6")) + (let ((org-release "8.2.10")) org-release)) ;;;###autoload (defun org-git-version () "The Git version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-git-version "release_8.2.6-1")) + (let ((org-git-version "release_8.2.10")) org-git-version)) (provide 'org-version) diff --git a/lisp/org/org.el b/lisp/org/org.el index fed3854007f..2b7c947b446 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -111,6 +111,8 @@ Stars are put in group 1 and the trimmed body in group 2.") (unless (boundp 'diary-fancy-buffer) (org-defvaralias 'diary-fancy-buffer 'fancy-diary-buffer)) +(declare-function org-add-archive-files "org-archive" (files)) + (declare-function org-inlinetask-at-task-p "org-inlinetask" ()) (declare-function org-inlinetask-outline-regexp "org-inlinetask" ()) (declare-function org-inlinetask-toggle-visibility "org-inlinetask" ()) @@ -118,7 +120,10 @@ Stars are put in group 1 and the trimmed body in group 2.") (declare-function org-clock-get-last-clock-out-time "org-clock" ()) (declare-function org-clock-timestamps-up "org-clock" (&optional n)) (declare-function org-clock-timestamps-down "org-clock" (&optional n)) +(declare-function org-clock-remove-overlays "org-clock" (&optional beg end noremove)) (declare-function org-clock-sum-current-item "org-clock" (&optional tstart)) +(declare-function org-clock-update-time-maybe "org-clock" ()) +(declare-function org-clocktable-shift "org-clock" (dir n)) (declare-function orgtbl-mode "org-table" (&optional arg)) (declare-function org-clock-out "org-clock" (&optional switch-to-state fail-quietly at-time)) @@ -133,6 +138,10 @@ Stars are put in group 1 and the trimmed body in group 2.") (declare-function org-agenda-list "org-agenda" (&optional arg start-day span)) (declare-function org-agenda-redo "org-agenda" (&optional all)) (declare-function org-table-align "org-table" ()) +(declare-function org-table-begin "org-table" (&optional table-type)) +(declare-function org-table-blank-field "org-table" ()) +(declare-function org-table-end "org-table" (&optional table-type)) +(declare-function org-table-insert-row "org-table" (&optional arg)) (declare-function org-table-paste-rectangle "org-table" ()) (declare-function org-table-maybe-eval-formula "org-table" ()) (declare-function org-table-maybe-recalculate-line "org-table" ()) @@ -179,6 +188,7 @@ Stars are put in group 1 and the trimmed body in group 2.") (intern (concat "org-babel-expand-body:" lang))))))) org-babel-load-languages)) +(declare-function org-babel-tangle-file "ob-tangle" (file &optional target-file lang)) ;;;###autoload (defun org-babel-load-file (file &optional compile) "Load Emacs Lisp source code blocks in the Org-mode FILE. @@ -5109,9 +5119,9 @@ Support for group tags is controlled by the option "\\(?: +\\(\\[#.\\]\\)\\)?" "\\(?: +" ;; Stats cookies can be stuck to body. - "\\(?:\\[[0-9%%/]+\\] *\\)?" + "\\(?:\\[[0-9%%/]+\\] *\\)*" "\\(%s\\)" - "\\(?: *\\[[0-9%%/]+\\]\\)?" + "\\(?: *\\[[0-9%%/]+\\]\\)*" "\\)" (org-re "\\(?:[ \t]+\\(:[[:alnum:]_@#%%:]+:\\)\\)?") "[ \t]*$") @@ -5417,8 +5427,7 @@ The following commands are available: (org-add-hook 'isearch-mode-end-hook 'org-isearch-end 'append 'local) ;; Emacs 22 deals with this through a special variable (org-set-local 'outline-isearch-open-invisible-function - (lambda (&rest ignore) (org-show-context 'isearch))) - (org-add-hook 'isearch-mode-end-hook 'org-fix-ellipsis-at-bol 'append 'local)) + (lambda (&rest ignore) (org-show-context 'isearch)))) ;; Setup the pcomplete hooks (set (make-local-variable 'pcomplete-command-completion-function) @@ -5473,9 +5482,6 @@ The following commands are available: (put 'org-mode 'flyspell-mode-predicate 'org-mode-flyspell-verify) -(defsubst org-fix-ellipsis-at-bol () - (save-excursion (goto-char (window-start)) (recenter 0))) - (defun org-find-invisible-foreground () (let ((candidates (remove "unspecified-bg" @@ -5881,7 +5887,7 @@ by a #." ((member dc1 '("+title:" "+author:" "+email:" "+date:")) (add-text-properties beg (match-end 3) - (if (member (intern (substring dc1 0 -1)) org-hidden-keywords) + (if (member (intern (substring dc1 1 -1)) org-hidden-keywords) '(font-lock-fontified t invisible t) '(font-lock-fontified t face org-document-info-keyword))) (add-text-properties @@ -6145,15 +6151,25 @@ Use `org-reduced-level' to remove the effect of `org-odd-levels'." (defvar org-font-lock-keywords nil) -(defsubst org-re-property (property &optional literal) +(defsubst org-re-property (property &optional literal allow-null) "Return a regexp matching a PROPERTY line. -Match group 3 will be set to the value if it exists." - (concat "^\\(?4:[ \t]*\\)\\(?1::\\(?2:" - (if literal property (regexp-quote property)) - "\\):\\)[ \t]+\\(?3:[^ \t\r\n].*?\\)\\(?5:[ \t]*\\)$")) + +When optional argument LITERAL is non-nil, do not quote PROPERTY. +This is useful when PROPERTY is a regexp. When ALLOW-NULL is +non-nil, match properties even without a value. + +Match group 3 is set to the value when it exists. If there is no +value and ALLOW-NULL is non-nil, it is set to the empty string." + (concat + "^\\(?4:[ \t]*\\)" + (format "\\(?1::\\(?2:%s\\):\\)" + (if literal property (regexp-quote property))) + (if allow-null + "\\(?:\\(?3:$\\)\\|[ \t]+\\(?3:.*?\\)\\)\\(?5:[ \t]*\\)$" + "[ \t]+\\(?3:[^ \r\t\n]+.*?\\)\\(?5:[ \t]*\\)$"))) (defconst org-property-re - (org-re-property ".*?" 'literal) + (org-re-property ".*?" 'literal t) "Regular expression matching a property line. There are four matching groups: 1: :PROPKEY: including the leading and trailing colon, @@ -6712,7 +6728,8 @@ in special contexts. (setq org-cycle-global-status 'overview) (run-hook-with-args 'org-cycle-hook 'overview))))) -(defvar org-called-with-limited-levels);Dyn-bound in ̀org-with-limited-levels'. +(defvar org-called-with-limited-levels nil + "Non-nil when `org-with-limited-levels' is currently active.") (defun org-cycle-internal-local () "Do the local cycling action." @@ -6729,7 +6746,8 @@ in special contexts. (setq has-children (org-list-has-child-p (point) struct))) (org-back-to-heading) (setq eoh (save-excursion (outline-end-of-heading) (point))) - (setq eos (save-excursion (1- (org-end-of-subtree t t)))) + (setq eos (save-excursion (org-end-of-subtree t t) + (when (bolp) (backward-char)) (point))) (setq has-children (or (save-excursion (let ((level (funcall outline-level))) @@ -6894,21 +6912,20 @@ With a numeric prefix, show all headlines up to that level." ;; buffers, where outline-regexp is needed. (defun org-overview () "Switch to overview mode, showing only top-level headlines. -Really, this shows all headlines with level equal or greater than the level +This shows all headlines with a level equal or greater than the level of the first headline in the buffer. This is important, because if the first headline is not level one, then (hide-sublevels 1) gives confusing results." (interactive) - (let ((pos (point)) - (level (save-excursion - (goto-char (point-min)) - (if (re-search-forward (concat "^" outline-regexp) nil t) - (progn - (goto-char (match-beginning 0)) - (funcall outline-level)))))) - (and level (hide-sublevels level)) - (recenter '(4)) - (goto-char pos))) + (save-excursion + (let ((level + (save-excursion + (goto-char (point-min)) + (if (re-search-forward (concat "^" outline-regexp) nil t) + (progn + (goto-char (match-beginning 0)) + (funcall outline-level)))))) + (and level (hide-sublevels level))))) (defun org-content (&optional arg) "Show all headlines in the buffer, like a table of contents. @@ -7105,13 +7122,11 @@ Otherwise make it visible." (pos-visible-in-window-p (save-excursion (org-end-of-subtree t) (point)))) -(defun org-first-headline-recenter (&optional N) - "Move cursor to the first headline and recenter the headline. -Optional argument N means put the headline into the Nth line of the window." +(defun org-first-headline-recenter () + "Move cursor to the first headline and recenter the headline." (goto-char (point-min)) (when (re-search-forward (concat "^\\(" org-outline-regexp "\\)") nil t) - (beginning-of-line) - (recenter (prefix-numeric-value N)))) + (set-window-start (selected-window) (point-at-bol)))) ;;; Saving and restoring visibility @@ -7545,23 +7560,22 @@ When NEXT is non-nil, check the next line instead." (looking-at "[ \t]*$"))))) (defun org-insert-heading (&optional arg invisible-ok) - "Insert a new heading or item with same depth at point. + "Insert a new heading or an item with the same depth at point. If point is at the beginning of a heading or a list item, insert -a heading or a list item before it. - -If point is at the beginning of a normal line, turn this line -into a heading. +a new heading or a new item above the current one. If point is +at the beginning of a normal line, turn the line into a heading. If point is in the middle of a headline or a list item, split the headline or the item and create a new headline/item with the text in the current line after point \(see `org-M-RET-may-split-line' on how to modify this behavior). -With one universal prefix argument: If point is within a list, -insert a heading instead of a list item. Otherwise, set the -value of `org-insert-heading-respect-content' to `t' for the -duration of the command. +With one universal prefix argument, set the user option +`org-insert-heading-respect-content' to t for the duration of +the command. This modifies the behavior described above in this +ways: on list items and at the beginning of normal lines, force +the insertion of a heading after the current subtree. With two universal prefix arguments, insert the heading at the end of the grandparent subtree. For example, if point is within @@ -7589,12 +7603,19 @@ command." (or arg (not itemp)))) ;; At beginning of buffer or so high up that only a heading ;; makes sense. - (insert - (if (or (bobp) (org-previous-line-empty-p)) "" "\n") - (if (org-in-src-block-p) ",* " "* ")) + (cond ((and (bolp) (not respect-content)) (insert "* ")) + ((not respect-content) + (unless may-split (end-of-line)) + (insert "\n* ")) + ((re-search-forward org-outline-regexp-bol nil t) + (beginning-of-line) + (insert "* \n") + (backward-char)) + (t (goto-char (point-max)) + (insert "\n* "))) (run-hooks 'org-insert-heading-hook)) - ((and itemp (not (equal arg '(4)))) + ((and itemp (not (member arg '((4) (16))))) ;; Insert an item (org-insert-item)) @@ -7614,11 +7635,12 @@ command." nil)) ;; Get a level string to fall back on (fix-level - (save-excursion - (org-back-to-heading t) - (if (org-previous-line-empty-p) (setq empty-line-p t)) - (looking-at org-outline-regexp) - (make-string (1- (length (match-string 0))) ?*))) + (if (org-before-first-heading-p) "*" + (save-excursion + (org-back-to-heading t) + (if (org-previous-line-empty-p) (setq empty-line-p t)) + (looking-at org-outline-regexp) + (make-string (1- (length (match-string 0))) ?*)))) (stars (save-excursion (condition-case nil @@ -7650,8 +7672,12 @@ command." pos hide-previous previous-pos) ;; If we insert after content, move there and clean up whitespace - (when (and respect-content (not (org-on-heading-p))) - (org-end-of-subtree nil t) + (when (and respect-content + (not (org-looking-at-p org-outline-regexp-bol))) + (if (not (org-before-first-heading-p)) + (org-end-of-subtree nil t) + (re-search-forward org-outline-regexp-bol) + (beginning-of-line 0)) (skip-chars-backward " \r\n") (and (not (looking-back "^\*+")) (looking-at "[ \t]+") (replace-match "")) @@ -7680,10 +7706,9 @@ command." (setq initial-content (org-trim initial-content))) (goto-char pos)) ;; a normal line - (unless (bolp) - (setq initial-content (buffer-substring (point) (point-at-eol))) - (delete-region (point) (point-at-eol)) - (setq initial-content (org-trim initial-content))))) + (setq initial-content + (org-trim (buffer-substring (point) (point-at-eol)))) + (delete-region (point) (point-at-eol)))) ;; If we are at the beginning of the line, insert before it. Else after (cond @@ -7708,13 +7733,12 @@ command." "Make the number of empty lines before current exactly N. So this will delete or add empty lines." (save-excursion - (goto-char (point-at-bol)) - (if (looking-back "\\s-+" nil 'greedy) - (replace-match "")) - (or (bobp) (insert "\n")) - (while (> N 0) - (insert "\n") - (setq N (1- N))))) + (beginning-of-line) + (let ((p (point))) + (skip-chars-backward " \r\t\n") + (unless (bolp) (forward-line)) + (delete-region (point) p)) + (when (> N 0) (insert (make-string N ?\n))))) (defun org-get-heading (&optional no-tags no-todo) "Return the heading of the current entry, without the stars. @@ -7783,17 +7807,15 @@ This is a list with the following elements: (org-move-subtree-down) (end-of-line 1)) -(defun org-insert-heading-respect-content (&optional arg invisible-ok) +(defun org-insert-heading-respect-content (&optional invisible-ok) "Insert heading with `org-insert-heading-respect-content' set to t." - (interactive "P") - (let ((org-insert-heading-respect-content t)) - (org-insert-heading '(4) invisible-ok))) + (interactive) + (org-insert-heading '(4) invisible-ok)) (defun org-insert-todo-heading-respect-content (&optional force-state) "Insert TODO heading with `org-insert-heading-respect-content' set to t." - (interactive "P") - (let ((org-insert-heading-respect-content t)) - (org-insert-todo-heading force-state '(4)))) + (interactive) + (org-insert-todo-heading force-state '(4))) (defun org-insert-todo-heading (arg &optional force-heading) "Insert a new heading with the same level and TODO state as current heading. @@ -8150,7 +8172,8 @@ case." (save-match-data (save-excursion (outline-end-of-heading) (setq folded (outline-invisible-p))) - (outline-end-of-subtree)) + (progn (org-end-of-subtree nil t) + (unless (eobp) (backward-char)))) (outline-next-heading) (setq ne-end (org-back-over-empty-lines)) (setq end (point)) @@ -8303,7 +8326,7 @@ the inserted text when done." (string-match "^\\*+$" (buffer-substring (point-at-bol) (point)))) - (- (match-end 1) (match-beginning 1))) + (- (match-end 0) (match-beginning 0))) ((and (bolp) (looking-at org-outline-regexp)) (- (match-end 0) (point) 1)))) @@ -9076,14 +9099,16 @@ if `orgstruct-heading-prefix-regexp' is not empty." (if fallback (let* ((orgstruct-mode) (binding - (loop with key = ,key - for rep in - '(nil - ("<\\([^>]*\\)tab>" . "\\1TAB") - ("<\\([^>]*\\)return>" . "\\1RET") - ("<\\([^>]*\\)escape>" . "\\1ESC") - ("<\\([^>]*\\)delete>" . "\\1DEL")) - do + (let ((key ,key)) + (catch 'exit + (dolist + (rep + '(nil + ("<\\([^>]*\\)tab>" . "\\1TAB") + ("<\\([^>]*\\)return>" . "\\1RET") + ("<\\([^>]*\\)escape>" . "\\1ESC") + ("<\\([^>]*\\)delete>" . "\\1DEL")) + nil) (when rep (setq key (read-kbd-macro (let ((case-fold-search)) @@ -9091,7 +9116,8 @@ if `orgstruct-heading-prefix-regexp' is not empty." (car rep) (cdr rep) (key-description key)))))) - thereis (key-binding key)))) + (when (key-binding key) + (throw 'exit (key-binding key)))))))) (if (keymapp binding) (org-set-transient-map binding) (let ((func (or binding @@ -10592,6 +10618,10 @@ application the system uses for this file type." (move-marker org-open-link-marker nil) (run-hook-with-args 'org-follow-link-hook))) +(defsubst org-uniquify (list) + "Non-destructively remove duplicate elements from LIST." + (let ((res (copy-sequence list))) (delete-dups res))) + (defun org-offer-links-in-entry (buffer marker &optional nth zero) "Offer links in the current entry and return the selected link. If there is only one link, return it. @@ -13640,8 +13670,7 @@ How much context is shown depends upon the variables (error nil)) (not (bobp))) (org-flag-heading nil) - (when siblings-p (org-show-siblings))))) - (unless (eq key 'agenda) (org-fix-ellipsis-at-bol)))) + (when siblings-p (org-show-siblings))))))) (defvar org-reveal-start-hook nil "Hook run before revealing a location.") @@ -13836,7 +13865,7 @@ a file becomes an N^2 operation - but with this variable set, it scales as N.") (defun org-scan-tags (action matcher todo-only &optional start-level) - "Sca headline tags with inheritance and produce output ACTION. + "Scan headline tags with inheritance and produce output ACTION. ACTION can be `sparse-tree' to produce a sparse tree in the current buffer, or `agenda' to produce an entry list for an agenda view. It can also be @@ -14744,8 +14773,8 @@ Returns the new tags string, or nil to not change the current settings." (if expert (set-buffer (get-buffer-create " *Org tags*")) (delete-other-windows) - (split-window-vertically) - (org-switch-to-buffer-other-window (get-buffer-create " *Org tags*"))) + (set-window-buffer (split-window-vertically) (get-buffer-create " *Org tags*")) + (org-switch-to-buffer-other-window " *Org tags*")) (erase-buffer) (org-set-local 'org-done-keywords done-keywords) (org-fast-tag-insert "Inherited" inherited i-face "\n") @@ -15269,7 +15298,10 @@ things up because then unnecessary parsing is avoided." '("SCHEDULED" "DEADLINE" "CLOCK" "CLOSED" "TIMESTAMP" "TIMESTAMP_IA"))) (catch 'match - (while (re-search-forward org-maybe-keyword-time-regexp end t) + (while (and (re-search-forward org-maybe-keyword-time-regexp end t) + (not (text-property-any 0 (length (match-string 0)) + 'face 'font-lock-comment-face + (match-string 0)))) (setq key (if (match-end 1) (substring (org-match-string-no-properties 1) 0 -1)) @@ -15397,7 +15429,7 @@ an empty drawer to delete." (if (and range (goto-char (car range)) (re-search-forward - (org-re-property property) + (org-re-property property nil t) (cdr range) t)) (progn (delete-region (match-beginning 0) (1+ (point-at-eol))) @@ -15562,7 +15594,7 @@ If it is not a string, an error is raised." (setq range (org-get-property-block beg end 'force)) (goto-char (car range)) (if (re-search-forward - (org-re-property property) (cdr range) t) + (org-re-property property nil t) (cdr range) t) (progn (delete-region (match-beginning 0) (match-end 0)) (goto-char (match-beginning 0))) @@ -15773,9 +15805,7 @@ This is computed according to `org-property-set-functions-alist'." (funcall set-function prompt (mapcar 'list (org-property-values property)) nil nil "" nil cur))))) - (if (equal val "") - cur - val))) + (org-trim val))) (defvar org-last-set-property nil) (defvar org-last-set-property-value nil) @@ -15853,8 +15883,10 @@ an empty drawer to delete." (org-icompleting-read "Property: " props nil t) (caar props)))) (list prop))) - (if (org-entry-delete nil property delete-empty-drawer) - (message "Property %s deleted" property))) + (if (not property) + (message "No property to delete in this entry") + (org-entry-delete nil property delete-empty-drawer) + (message "Property \"%s\" deleted" property))) (defun org-delete-property-globally (property) "Remove PROPERTY globally, from all entries." @@ -16458,7 +16490,7 @@ user." (defun org-read-date-analyze (ans org-def org-defdecode) "Analyze the combined answer of the date prompt." ;; FIXME: cleanup and comment - (let ((nowdecode (decode-time (current-time))) + (let ((nowdecode (decode-time)) delta deltan deltaw deltadef year month day hour minute second wday pm h2 m2 tl wday1 iso-year iso-weekday iso-week iso-year iso-date futurep kill-year) @@ -16616,7 +16648,7 @@ user." (deltan (setq futurep nil) (unless deltadef - (let ((now (decode-time (current-time)))) + (let ((now (decode-time))) (setq day (nth 3 now) month (nth 4 now) year (nth 5 now)))) (cond ((member deltaw '("d" "")) (setq day (+ day deltan))) ((equal deltaw "w") (setq day (+ day (* 7 deltan)))) @@ -17743,9 +17775,9 @@ This requires Emacs >= 24.1, build with imagemagick support." (defcustom org-agenda-inhibit-startup nil "Inhibit startup when preparing agenda buffers. -When this variable is `t' (the default), the initialization of -the Org agenda buffers is inhibited: e.g. the visibility state -is not set, the tables are not re-aligned, etc." +When this variable is `t', the initialization of the Org agenda +buffers is inhibited: e.g. the visibility state is not set, the +tables are not re-aligned, etc." :type 'boolean :version "24.3" :group 'org-agenda) @@ -19116,7 +19148,7 @@ BEG and END default to the buffer boundaries." (org-defkey org-mode-map "\C-c\M-f" 'org-next-block) (org-defkey org-mode-map "\C-c\M-b" 'org-previous-block) (org-defkey org-mode-map "\C-c$" 'org-archive-subtree) -(org-defkey org-mode-map "\C-c\C-x\C-s" 'org-advertized-archive-subtree) +(org-defkey org-mode-map "\C-c\C-x\C-s" 'org-archive-subtree) (org-defkey org-mode-map "\C-c\C-x\C-a" 'org-archive-subtree-default) (org-defkey org-mode-map "\C-c\C-xd" 'org-insert-drawer) (org-defkey org-mode-map "\C-c\C-xa" 'org-toggle-archive-tag) @@ -20316,7 +20348,7 @@ This command does many different things, depending on context: (item ;; At an item: a double C-u set checkbox to "[-]" ;; unconditionally, whereas a single one will toggle its - ;; presence. Without an universal argument, if the item + ;; presence. Without a universal argument, if the item ;; has a checkbox, toggle it. Otherwise repair the list. (let* ((box (org-element-property :checkbox context)) (struct (org-element-property :structure context)) @@ -20911,7 +20943,7 @@ on context. See the individual commands for more information." ("Archive" ["Archive (default method)" org-archive-subtree-default (org-in-subtree-not-table-p)] "--" - ["Move Subtree to Archive file" org-advertized-archive-subtree (org-in-subtree-not-table-p)] + ["Move Subtree to Archive file" org-archive-subtree (org-in-subtree-not-table-p)] ["Toggle ARCHIVE tag" org-toggle-archive-tag (org-in-subtree-not-table-p)] ["Move subtree to Archive sibling" org-archive-to-archive-sibling (org-in-subtree-not-table-p)] ) @@ -21819,9 +21851,7 @@ for the search purpose." "Return the reverse of STRING." (apply 'string (reverse (string-to-list string)))) -(defsubst org-uniquify (list) - "Non-destructively remove duplicate elements from LIST." - (let ((res (copy-sequence list))) (delete-dups res))) +;; defsubst org-uniquify must be defined before first use (defun org-uniquify-alist (alist) "Merge elements of ALIST with the same key. @@ -22032,8 +22062,9 @@ the agenda) or the current time of the day." (when (and tp (string-match "\\([0-9][0-9]\\):\\([0-9][0-9]\\)" tp)) (setq hod (string-to-number (match-string 1 tp)) mod (string-to-number (match-string 2 tp)))) - (or tp (setq hod (nth 2 (decode-time (current-time))) - mod (nth 1 (decode-time (current-time)))))) + (or tp (let ((now (decode-time))) + (setq hod (nth 2 now) + mod (nth 1 now))))) (cond ((eq major-mode 'calendar-mode) (setq date (calendar-cursor-to-date) @@ -23273,14 +23304,6 @@ If there is no such heading, return nil." (forward-char -1)))))) (point)) -(defadvice outline-end-of-subtree (around prefer-org-version activate compile) - "Use Org version in org-mode, for dramatic speed-up." - (if (derived-mode-p 'org-mode) - (progn - (org-end-of-subtree nil t) - (unless (eobp) (backward-char 1))) - ad-do-it)) - (defun org-end-of-meta-data-and-drawers () "Jump to the first text after meta data and drawers in the current entry. This will move over empty lines, lines with planning time stamps, @@ -23777,8 +23800,7 @@ Show the heading too, if it is currently invisible." isearch-mode-end-hook-quit) ;; Only when the isearch was not quitted. (org-add-hook 'post-command-hook 'org-isearch-post-command - 'append 'local))) - (org-fix-ellipsis-at-bol))) + 'append 'local))))) (defun org-isearch-post-command () "Remove self from hook, and show context." diff --git a/lisp/org/ox-ascii.el b/lisp/org/ox-ascii.el index 6208cdbe065..50a2011e291 100644 --- a/lisp/org/ox-ascii.el +++ b/lisp/org/ox-ascii.el @@ -185,15 +185,17 @@ original Org buffer at the same place." :package-version '(Org . "8.0") :type '(choice (const :tag "Replicate original spacing" nil) - (cons :tag "Set an uniform spacing" + (cons :tag "Set a uniform spacing" (integer :tag "Number of blank lines before contents") (integer :tag "Number of blank lines after contents")))) (defcustom org-ascii-indented-line-width 'auto "Additional indentation width for the first line in a paragraph. If the value is an integer, indent the first line of each -paragraph by this number. If it is the symbol `auto' preserve -indentation from original document." +paragraph by this width, unless it is located at the beginning of +a section, in which case indentation is removed from that line. +If it is the symbol `auto' preserve indentation from original +document." :group 'org-export-ascii :version "24.4" :package-version '(Org . "8.0") @@ -421,17 +423,17 @@ equivalent to `left'. For a justification that doesn't also fill string, see `org-ascii--justify-string'. Return nil if S isn't a string." - ;; Don't fill paragraph when break should be preserved. - (cond ((not (stringp s)) nil) - ((plist-get info :preserve-breaks) s) - (t (let ((double-space-p sentence-end-double-space)) - (with-temp-buffer - (let ((fill-column text-width) - (use-hard-newlines t) - (sentence-end-double-space double-space-p)) - (insert s) - (fill-region (point-min) (point-max) justify)) - (buffer-string)))))) + (when (stringp s) + (let ((double-space-p sentence-end-double-space)) + (with-temp-buffer + (let ((fill-column text-width) + (use-hard-newlines t) + (sentence-end-double-space double-space-p)) + (insert (if (plist-get info :preserve-breaks) + (replace-regexp-in-string "\n" hard-newline s) + s)) + (fill-region (point-min) (point-max) justify)) + (buffer-string))))) (defun org-ascii--justify-string (s text-width how) "Justify string S. @@ -455,13 +457,13 @@ HOW determines the type of justification: it can be `left', Empty lines are not indented." (when (stringp s) (replace-regexp-in-string - "\\(^\\)\\(?:.*\\S-\\)" (make-string width ? ) s nil nil 1))) + "\\(^\\)[ \t]*\\S-" (make-string width ?\s) s nil nil 1))) (defun org-ascii--box-string (s info) "Return string S with a partial box to its left. INFO is a plist used as a communication channel." (let ((utf8p (eq (plist-get info :ascii-charset) 'utf-8))) - (format (if utf8p "╭────\n%s\n╰────" ",----\n%s\n`----") + (format (if utf8p "┌────\n%s\n└────" ",----\n%s\n`----") (replace-regexp-in-string "^" (if utf8p "│ " "| ") ;; Remove last newline character. @@ -473,7 +475,7 @@ INFO is a plist used as a communication channel." (case (org-element-type element) ;; Elements with an absolute width: `headline' and `inlinetask'. (inlinetask org-ascii-inlinetask-width) - ('headline + (headline (- org-ascii-text-width (let ((low-level-rank (org-export-low-level-p element info))) (if low-level-rank (* low-level-rank 2) org-ascii-global-margin)))) @@ -1418,12 +1420,16 @@ INFO is a plist holding contextual information." "Transcode a PARAGRAPH element from Org to ASCII. CONTENTS is the contents of the paragraph, as a string. INFO is the plist used as a communication channel." - (let ((contents (if (not (wholenump org-ascii-indented-line-width)) contents - (concat - (make-string org-ascii-indented-line-width ? ) - (replace-regexp-in-string "\\`[ \t]+" "" contents))))) - (org-ascii--fill-string - contents (org-ascii--current-text-width paragraph info) info))) + (org-ascii--fill-string + (if (not (wholenump org-ascii-indented-line-width)) contents + (concat + ;; Do not indent first paragraph in a section. + (unless (and (not (org-export-get-previous-element paragraph info)) + (eq (org-element-type (org-export-get-parent paragraph)) + 'section)) + (make-string org-ascii-indented-line-width ?\s)) + (replace-regexp-in-string "\\`[ \t]+" "" contents))) + (org-ascii--current-text-width paragraph info) info)) ;;;; Plain List @@ -1591,8 +1597,8 @@ contextual information." CONTENTS is the contents of the object. INFO is a plist holding contextual information." (if (org-element-property :use-brackets-p superscript) - (format "_{%s}" contents) - (format "_%s" contents))) + (format "^{%s}" contents) + (format "^%s" contents))) ;;;; Strike-through @@ -1659,20 +1665,25 @@ are ignored." (or (gethash key cache) (puthash key - (or (and (not org-ascii-table-widen-columns) - (org-export-table-cell-width table-cell info)) - (let* ((max-width 0)) - (org-element-map table 'table-row - (lambda (row) - (setq max-width - (max (string-width - (org-export-data - (org-element-contents - (elt (org-element-contents row) col)) - info)) - max-width))) - info) - max-width)) + (let ((cookie-width (org-export-table-cell-width table-cell info))) + (or (and (not org-ascii-table-widen-columns) cookie-width) + (let ((contents-width + (let ((max-width 0)) + (org-element-map table 'table-row + (lambda (row) + (setq max-width + (max (string-width + (org-export-data + (org-element-contents + (elt (org-element-contents row) col)) + info)) + max-width))) + info) + max-width))) + (cond ((not cookie-width) contents-width) + (org-ascii-table-widen-columns + (max cookie-width contents-width)) + (t cookie-width))))) cache)))) (defun org-ascii-table-cell (table-cell contents info) diff --git a/lisp/org/ox-beamer.el b/lisp/org/ox-beamer.el index f3a79d7c860..5ab805db271 100644 --- a/lisp/org/ox-beamer.el +++ b/lisp/org/ox-beamer.el @@ -687,7 +687,7 @@ used as a communication channel." (cond ((equal type "radio") (let ((destination (org-export-resolve-radio-link link info))) - (when destination + (if (not destination) contents (format "\\hyperlink%s{%s}{%s}" (or (org-beamer--element-has-overlay-p link) "") (org-export-solidify-link-text @@ -1092,6 +1092,7 @@ aid, but the tag does not have any semantic meaning." envs) '((:endgroup)) '(("BMCOL" . ?|)))) + (org-tag-persistent-alist nil) (org-use-fast-tag-selection t) (org-fast-tag-selection-single-key t)) (org-set-tags) diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el index 1fd1da7bbbb..a3f0b501da6 100644 --- a/lisp/org/ox-html.el +++ b/lisp/org/ox-html.el @@ -1630,8 +1630,7 @@ used in the preamble or postamble." (?c . ,(plist-get info :creator)) (?C . ,(let ((file (plist-get info :input-file))) (format-time-string org-html-metadata-timestamp-format - (if file (nth 5 (file-attributes file)) - (current-time))))) + (if file (nth 5 (file-attributes file)))))) (?v . ,(or org-html-validation-link "")))) (defun org-html--build-pre/postamble (type info) @@ -2275,83 +2274,70 @@ holding contextual information." "Transcode a HEADLINE element from Org to HTML. CONTENTS holds the contents of the headline. INFO is a plist holding contextual information." - ;; Empty contents? - (setq contents (or contents "")) - (let* ((numberedp (org-export-numbered-headline-p headline info)) - (level (org-export-get-relative-level headline info)) - (text (org-export-data (org-element-property :title headline) info)) - (todo (and (plist-get info :with-todo-keywords) - (let ((todo (org-element-property :todo-keyword headline))) - (and todo (org-export-data todo info))))) - (todo-type (and todo (org-element-property :todo-type headline))) - (tags (and (plist-get info :with-tags) - (org-export-get-tags headline info))) - (priority (and (plist-get info :with-priority) - (org-element-property :priority headline))) - (section-number (and (org-export-numbered-headline-p headline info) - (mapconcat 'number-to-string - (org-export-get-headline-number - headline info) "."))) - ;; Create the headline text. - (full-text (org-html-format-headline--wrap headline info))) - (cond - ;; Case 1: This is a footnote section: ignore it. - ((org-element-property :footnote-section-p headline) nil) - ;; Case 2. This is a deep sub-tree: export it as a list item. - ;; Also export as items headlines for which no section - ;; format has been found. - ((org-export-low-level-p headline info) - ;; Build the real contents of the sub-tree. - (let* ((type (if numberedp 'ordered 'unordered)) - (itemized-body (org-html-format-list-item - contents type nil info nil full-text))) - (concat - (and (org-export-first-sibling-p headline info) - (org-html-begin-plain-list type)) - itemized-body - (and (org-export-last-sibling-p headline info) - (org-html-end-plain-list type))))) - ;; Case 3. Standard headline. Export it as a section. - (t - (let* ((section-number (mapconcat 'number-to-string - (org-export-get-headline-number - headline info) "-")) - (ids (remove 'nil - (list (org-element-property :CUSTOM_ID headline) - (concat "sec-" section-number) - (org-element-property :ID headline)))) - (preferred-id (car ids)) - (extra-ids (cdr ids)) - (extra-class (org-element-property :HTML_CONTAINER_CLASS headline)) - (level1 (+ level (1- org-html-toplevel-hlevel))) - (first-content (car (org-element-contents headline)))) - (format "<%s id=\"%s\" class=\"%s\">%s%s\n" - (org-html--container headline info) - (format "outline-container-%s" - (or (org-element-property :CUSTOM_ID headline) - (concat "sec-" section-number))) - (concat (format "outline-%d" level1) (and extra-class " ") - extra-class) - (format "\n%s%s\n" - level1 - preferred-id - (mapconcat - (lambda (x) - (let ((id (org-export-solidify-link-text - (if (org-uuidgen-p x) (concat "ID-" x) - x)))) - (org-html--anchor id))) - extra-ids "") - full-text - level1) - ;; When there is no section, pretend there is an empty - ;; one to get the correct
    %s%s\n" + (org-html--container headline info) + (format "outline-container-%s" + (or (org-element-property :CUSTOM_ID headline) + (concat "sec-" section-number))) + (concat (format "outline-%d" level1) (and extra-class " ") + extra-class) + (format "\n%s%s\n" + level1 preferred-id extra-ids full-text level1) + ;; When there is no section, pretend there is an + ;; empty one to get the correct
    (incf link-count) 1) - (not (org-html-inline-image-p obj info)))) - (otherwise t))) - info 'first-match 'link)))))) + (catch 'exit + (let ((link-count 0)) + (org-element-map (org-element-contents paragraph) + (cons 'plain-text org-element-all-objects) + #'(lambda (obj) + (when (case (org-element-type obj) + (plain-text (org-string-nw-p obj)) + (link (or (> (incf link-count) 1) + (not (org-html-inline-image-p obj info)))) + (otherwise t)) + (throw 'exit nil))) + info nil 'link) + (= link-count 1)))))) (defun org-html-link (link desc info) "Transcode a LINK object from Org to HTML. @@ -2719,7 +2706,7 @@ INFO is a plist holding contextual information. See ;; link's description. ((string= type "radio") (let ((destination (org-export-resolve-radio-link link info))) - (when destination + (if (not destination) desc (format "%s" (org-export-solidify-link-text (org-element-property :value destination)) diff --git a/lisp/org/ox-icalendar.el b/lisp/org/ox-icalendar.el index a60c2f92f39..38bdcf95dd2 100644 --- a/lisp/org/ox-icalendar.el +++ b/lisp/org/ox-icalendar.el @@ -174,8 +174,7 @@ The anniversaries are defined in the BBDB database." (defcustom org-icalendar-include-sexps t "Non-nil means export to iCalendar files should also cover sexp entries. -These are entries like in the diary, but directly in an Org mode -file." +These are entries like in the diary, but directly in an Org file." :group 'org-export-icalendar :type 'boolean) @@ -302,14 +301,14 @@ which will be updated." INFO is a plist used as a communication channel. -a headline is blocked when either: +A headline is blocked when either - - It has children which are not all in a completed state. + - it has children which are not all in a completed state; - - It has a parent with the property :ORDERED:, and there are - siblings prior to it with incomplete status. + - it has a parent with the property :ORDERED:, and there are + siblings prior to it with incomplete status; - - Its parent is blocked because it has siblings that should be + - its parent is blocked because it has siblings that should be done first or is a child of a blocked grandparent entry." (or ;; Check if any child is not done. @@ -478,10 +477,10 @@ or subject for the event." ;;; Filters (defun org-icalendar-clear-blank-lines (headline back-end info) - "Remove trailing blank lines in HEADLINE export. + "Remove blank lines in HEADLINE export. HEADLINE is a string representing a transcoded headline. BACK-END and INFO are ignored." - (replace-regexp-in-string "^\\(?:[ \t]*\n\\)*" "" headline)) + (replace-regexp-in-string "^\\(?:[ \t]*\n\\)+" "" headline)) @@ -570,13 +569,19 @@ inlinetask within the section." ;; happen once ENTRY is one of them. (let ((counter 0)) (mapconcat - 'identity + #'identity (org-element-map (cons (org-element-property :title entry) (org-element-contents inside)) 'timestamp (lambda (ts) - (let ((uid (format "TS%d-%s" (incf counter) uid))) - (org-icalendar--vevent entry ts uid summary loc desc cat))) + (when (let ((type (org-element-property :type ts))) + (case (plist-get info :with-timestamps) + (active (memq type '(active active-range))) + (inactive (memq type '(inactive inactive-range))) + ((t) t))) + (let ((uid (format "TS%d-%s" (incf counter) uid))) + (org-icalendar--vevent + entry ts uid summary loc desc cat)))) info nil (and (eq type 'headline) 'inlinetask)) "")) ;; Task: First check if it is appropriate to export it. @@ -589,7 +594,7 @@ inlinetask within the section." (and (eq type 'headline) (not (org-icalendar-blocked-headline-p entry info)))) - ('t (eq todo-type 'todo)))) + ((t) (eq todo-type 'todo)))) (org-icalendar--vtodo entry uid summary loc desc cat)) ;; Diary-sexp: Collect every diary-sexp element within ;; ENTRY and its title, and transcode them. If ENTRY is @@ -597,7 +602,7 @@ inlinetask within the section." ;; separately. (when org-icalendar-include-sexps (let ((counter 0)) - (mapconcat 'identity + (mapconcat #'identity (org-element-map (cons (org-element-property :title entry) (org-element-contents inside)) @@ -613,7 +618,7 @@ inlinetask within the section." ;; inlinetask within it. In agenda export, this is independent ;; from the mark (or lack thereof) on the entry. (when (eq type 'headline) - (mapconcat 'identity + (mapconcat #'identity (org-element-map inside 'inlinetask (lambda (task) (org-icalendar-entry task nil info)) info) "")) @@ -673,7 +678,7 @@ Return VTODO component as a string." (org-element-property :scheduled entry)) ;; If we can't use a scheduled time for some ;; reason, start task now. - (let ((now (decode-time (current-time)))) + (let ((now (decode-time))) (list 'timestamp (list :type 'active :minute-start (nth 1 now) diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el index 53cc54f00f7..2c71f7d785a 100644 --- a/lisp/org/ox-latex.el +++ b/lisp/org/ox-latex.el @@ -524,7 +524,7 @@ When nil, no transformation is made." :package-version '(Org . "8.0") :type '(choice (string :tag "Format string") - (const :tag "No formatting"))) + (const :tag "No formatting" nil))) ;;;; Text markup @@ -689,9 +689,9 @@ These options are supplied as a comma-separated list to the a list containing two strings: the name of the option, and the value. For example, - (setq org-latex-listings-options + \(setq org-latex-listings-options '((\"basicstyle\" \"\\\\small\") - (\"keywordstyle\" \"\\\\color{black}\\\\bfseries\\\\underbar\"))) + \(\"keywordstyle\" \"\\\\color{black}\\\\bfseries\\\\underbar\"))) will typeset the code in a small size font with underlined, bold black keywords. @@ -1526,17 +1526,16 @@ holding contextual information." (when priority (format "\\framebox{\\#%c} " priority)) title (when tags (format "\\hfill{}\\textsc{:%s:}" - (mapconcat 'identity tags ":")))))) - (format (concat "\\begin{center}\n" - "\\fbox{\n" - "\\begin{minipage}[c]{.6\\textwidth}\n" - "%s\n\n" - "\\rule[.8em]{\\textwidth}{2pt}\n\n" - "%s" - "\\end{minipage}\n" - "}\n" - "\\end{center}") - full-title contents)))))) + (mapconcat #'identity tags ":")))))) + (concat "\\begin{center}\n" + "\\fbox{\n" + "\\begin{minipage}[c]{.6\\textwidth}\n" + full-title "\n\n" + (and (org-string-nw-p contents) + (concat "\\rule[.8em]{\\textwidth}{2pt}\n\n" contents)) + "\\end{minipage}\n" + "}\n" + "\\end{center}")))))) ;;;; Italic @@ -1810,7 +1809,7 @@ INFO is a plist holding contextual information. See ;; description. ((string= type "radio") (let ((destination (org-export-resolve-radio-link link info))) - (when destination + (if (not destination) desc (format "\\hyperref[%s]{%s}" (org-export-solidify-link-text (org-element-property :value destination)) @@ -1843,7 +1842,8 @@ INFO is a plist holding contextual information. See 'number-to-string (org-export-get-headline-number destination info) "-")))) - (if (and (plist-get info :section-numbers) (not desc)) + (if (and (not desc) + (org-export-numbered-headline-p destination info)) (format "\\ref{%s}" label) (format "\\hyperref[%s]{%s}" label (or desc diff --git a/lisp/org/ox-md.el b/lisp/org/ox-md.el index 1f841c865fa..99a4ae01786 100644 --- a/lisp/org/ox-md.el +++ b/lisp/org/ox-md.el @@ -102,21 +102,28 @@ This variable can be set to either `atx' or `setext'." TREE is the parse tree being exported. BACKEND is the export back-end used. INFO is a plist used as a communication channel. -Make sure there's no blank line before a plain list, unless it is -located right after a paragraph. Otherwise, add a blank line -between elements. Blank lines between items are preserved. +Enforce a blank line between elements. There are three +exceptions to this rule: + + 1. Preserve blank lines between sibling items in a plain list, + + 2. Outside of plain lists, preserve blank lines between + a paragraph and a plain list, + + 3. In an item, remove any blank line before the very first + paragraph and the next sub-list. Assume BACKEND is `md'." (org-element-map tree (remq 'item org-element-all-elements) - (lambda (elem) - (org-element-put-property - elem :post-blank - (if (and (eq (org-element-type (org-export-get-next-element elem info)) - 'plain-list) - (not (and (eq (org-element-type elem) 'paragraph) - (org-export-get-previous-element elem info)))) - 0 - 1)))) + (lambda (e) + (cond + ((not (and (eq (org-element-type e) 'paragraph) + (eq (org-element-type (org-export-get-next-element e info)) + 'plain-list))) + (org-element-put-property e :post-blank 1)) + ((not (eq (org-element-type (org-element-property :parent e)) 'item))) + (t (org-element-put-property + e :post-blank (if (org-export-get-previous-element e info) 1 0)))))) ;; Return updated tree. tree) @@ -182,6 +189,14 @@ a communication channel." (and (plist-get info :with-priority) (let ((char (org-element-property :priority headline))) (and char (format "[#%c] " char))))) + (anchor + (when (plist-get info :with-toc) + (org-html--anchor + (or (org-element-property :CUSTOM_ID headline) + (concat "sec-" + (mapconcat 'number-to-string + (org-export-get-headline-number + headline info) "-")))))) ;; Headline text without tags. (heading (concat todo priority title))) (cond @@ -202,12 +217,12 @@ a communication channel." (replace-regexp-in-string "^" " " contents))))) ;; Use "Setext" style. ((eq org-md-headline-style 'setext) - (concat heading tags "\n" + (concat heading tags anchor "\n" (make-string (length heading) (if (= level 1) ?= ?-)) "\n\n" contents)) ;; Use "atx" style. - (t (concat (make-string level ?#) " " heading tags "\n\n" contents)))))) + (t (concat (make-string level ?#) " " heading tags anchor "\n\n" contents)))))) ;;;; Horizontal Rule @@ -279,57 +294,65 @@ a communication channel." (concat (file-name-sans-extension raw-path) ".md") raw-path)))) (type (org-element-property :type link))) - (cond ((member type '("custom-id" "id")) - (let ((destination (org-export-resolve-id-link link info))) - (if (stringp destination) ; External file. - (let ((path (funcall link-org-files-as-md destination))) - (if (not contents) (format "<%s>" path) - (format "[%s](%s)" contents path))) - (concat - (and contents (concat contents " ")) - (format "(%s)" - (format (org-export-translate "See section %s" :html info) - (mapconcat 'number-to-string - (org-export-get-headline-number - destination info) - "."))))))) - ((org-export-inline-image-p link org-html-inline-image-rules) - (let ((path (let ((raw-path (org-element-property :path link))) - (if (not (file-name-absolute-p raw-path)) raw-path - (expand-file-name raw-path)))) - (caption (org-export-data - (org-export-get-caption - (org-export-get-parent-element link)) info))) - (format "![img](%s)" - (if (not (org-string-nw-p caption)) path - (format "%s \"%s\"" path caption))))) - ((string= type "coderef") - (let ((ref (org-element-property :path link))) - (format (org-export-get-coderef-format ref contents) - (org-export-resolve-coderef ref info)))) - ((equal type "radio") contents) - ((equal type "fuzzy") - (let ((destination (org-export-resolve-fuzzy-link link info))) - (if (org-string-nw-p contents) contents - (when destination - (let ((number (org-export-get-ordinal destination info))) - (when number - (if (atom number) (number-to-string number) - (mapconcat 'number-to-string number ".")))))))) - (t (let* ((raw-path (org-element-property :path link)) - (path - (cond - ((member type '("http" "https" "ftp")) - (concat type ":" raw-path)) - ((string= type "file") - (let ((path (funcall link-org-files-as-md raw-path))) - (if (not (file-name-absolute-p path)) path - ;; If file path is absolute, prepend it - ;; with "file:" component. - (concat "file:" path)))) - (t raw-path)))) - (if (not contents) (format "<%s>" path) - (format "[%s](%s)" contents path))))))) + (cond + ((member type '("custom-id" "id")) + (let ((destination (org-export-resolve-id-link link info))) + (if (stringp destination) ; External file. + (let ((path (funcall link-org-files-as-md destination))) + (if (not contents) (format "<%s>" path) + (format "[%s](%s)" contents path))) + (concat + (and contents (concat contents " ")) + (format "(%s)" + (format (org-export-translate "See section %s" :html info) + (mapconcat 'number-to-string + (org-export-get-headline-number + destination info) + "."))))))) + ((org-export-inline-image-p link org-html-inline-image-rules) + (let ((path (let ((raw-path (org-element-property :path link))) + (if (not (file-name-absolute-p raw-path)) raw-path + (expand-file-name raw-path)))) + (caption (org-export-data + (org-export-get-caption + (org-export-get-parent-element link)) info))) + (format "![img](%s)" + (if (not (org-string-nw-p caption)) path + (format "%s \"%s\"" path caption))))) + ((string= type "coderef") + (let ((ref (org-element-property :path link))) + (format (org-export-get-coderef-format ref contents) + (org-export-resolve-coderef ref info)))) + ((equal type "radio") contents) + ((equal type "fuzzy") + (let ((destination (org-export-resolve-fuzzy-link link info))) + (if (org-string-nw-p contents) contents + (when destination + (let ((number (org-export-get-ordinal destination info))) + (when number + (if (atom number) (number-to-string number) + (mapconcat 'number-to-string number ".")))))))) + ;; Link type is handled by a special function. + ((let ((protocol (nth 2 (assoc type org-link-protocols)))) + (and (functionp protocol) + (funcall protocol + (org-link-unescape (org-element-property :path link)) + contents + 'md)))) + (t (let* ((raw-path (org-element-property :path link)) + (path + (cond + ((member type '("http" "https" "ftp")) + (concat type ":" raw-path)) + ((string= type "file") + (let ((path (funcall link-org-files-as-md raw-path))) + (if (not (file-name-absolute-p path)) path + ;; If file path is absolute, prepend it + ;; with "file:" component. + (concat "file:" path)))) + (t raw-path)))) + (if (not contents) (format "<%s>" path) + (format "[%s](%s)" contents path))))))) ;;;; Paragraph diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el index 49be3bcb015..8b61d5c47b6 100644 --- a/lisp/org/ox-odt.el +++ b/lisp/org/ox-odt.el @@ -1741,7 +1741,8 @@ CONTENTS is nil. INFO is a plist holding contextual information." :transcoders '((paragraph . (lambda (p c i) (org-odt--format-paragraph - p c "Footnote" + p c i + "Footnote" "OrgFootnoteCenter" "OrgFootnoteQuotations"))))) info)))) @@ -2732,7 +2733,7 @@ INFO is a plist holding contextual information. See ;; link's description. ((string= type "radio") (let ((destination (org-export-resolve-radio-link link info))) - (when destination + (if (not destination) desc (format "%s" (org-export-solidify-link-text @@ -2832,33 +2833,44 @@ INFO is a plist holding contextual information. See ;;;; Paragraph -(defun org-odt--format-paragraph (paragraph contents default center quote) +(defun org-odt--paragraph-style (paragraph) + "Return style of PARAGRAPH. +Style is a symbol among `quoted', `centered' and nil." + (let ((up paragraph)) + (while (and (setq up (org-element-property :parent up)) + (not (memq (org-element-type up) + '(center-block quote-block section))))) + (case (org-element-type up) + (center-block 'centered) + (quote-block 'quoted)))) + +(defun org-odt--format-paragraph (paragraph contents info default center quote) "Format paragraph according to given styles. PARAGRAPH is a paragraph type element. CONTENTS is the -transcoded contents of that paragraph, as a string. DEFAULT, -CENTER and QUOTE are, respectively, style to use when paragraph -belongs to no special environment, a center block, or a quote -block." - (let* ((parent (org-export-get-parent paragraph)) - (parent-type (org-element-type parent)) - (style (case parent-type - (quote-block quote) - (center-block center) - (t default)))) - ;; If this paragraph is a leading paragraph in an item and the - ;; item has a checkbox, splice the checkbox and paragraph contents - ;; together. - (when (and (eq (org-element-type parent) 'item) - (eq paragraph (car (org-element-contents parent)))) - (setq contents (concat (org-odt--checkbox parent) contents))) - (format "\n%s" style contents))) +transcoded contents of that paragraph, as a string. INFO is +a plist used as a communication channel. DEFAULT, CENTER and +QUOTE are, respectively, style to use when paragraph belongs to +no special environment, a center block, or a quote block." + (format "\n%s" + (case (org-odt--paragraph-style paragraph) + (quoted quote) + (centered center) + (otherwise default)) + ;; If PARAGRAPH is a leading paragraph in an item that has + ;; a checkbox, splice checkbox and paragraph contents + ;; together. + (concat (let ((parent (org-element-property :parent paragraph))) + (and (eq (org-element-type parent) 'item) + (not (org-export-get-previous-element paragraph info)) + (org-odt--checkbox parent))) + contents))) (defun org-odt-paragraph (paragraph contents info) "Transcode a PARAGRAPH element from Org to ODT. CONTENTS is the contents of the paragraph, as a string. INFO is the plist used as a communication channel." (org-odt--format-paragraph - paragraph contents + paragraph contents info (or (org-element-property :style paragraph) "Text_20_body") "OrgCenter" "Quotations")) diff --git a/lisp/org/ox-org.el b/lisp/org/ox-org.el index d9a8001dcfc..4bee45ab014 100644 --- a/lisp/org/ox-org.el +++ b/lisp/org/ox-org.el @@ -65,7 +65,7 @@ setting of `org-html-htmlize-output-type' is 'css." (entity . org-org-identity) (example-block . org-org-identity) (fixed-width . org-org-identity) - (footnote-definition . org-org-identity) + (footnote-definition . ignore) (footnote-reference . org-org-identity) (headline . org-org-headline) (horizontal-rule . org-org-identity) @@ -87,7 +87,7 @@ setting of `org-html-htmlize-output-type' is 'css." (quote-block . org-org-identity) (quote-section . org-org-identity) (radio-target . org-org-identity) - (section . org-org-identity) + (section . org-org-section) (special-block . org-org-identity) (src-block . org-org-identity) (statistics-cookie . org-org-identity) @@ -122,15 +122,16 @@ CONTENTS is its contents, as a string or nil. INFO is ignored." (defun org-org-headline (headline contents info) "Transcode HEADLINE element back into Org syntax. CONTENTS is its contents, as a string or nil. INFO is ignored." - (unless (plist-get info :with-todo-keywords) - (org-element-put-property headline :todo-keyword nil)) - (unless (plist-get info :with-tags) - (org-element-put-property headline :tags nil)) - (unless (plist-get info :with-priority) - (org-element-put-property headline :priority nil)) - (org-element-put-property headline :level - (org-export-get-relative-level headline info)) - (org-element-headline-interpreter headline contents)) + (unless (org-element-property :footnote-section-p headline) + (unless (plist-get info :with-todo-keywords) + (org-element-put-property headline :todo-keyword nil)) + (unless (plist-get info :with-tags) + (org-element-put-property headline :tags nil)) + (unless (plist-get info :with-priority) + (org-element-put-property headline :priority nil)) + (org-element-put-property headline :level + (org-export-get-relative-level headline info)) + (org-element-headline-interpreter headline contents))) (defun org-org-keyword (keyword contents info) "Transcode KEYWORD element back into Org syntax. @@ -144,6 +145,33 @@ keywords targeted at other export back-ends." org-element-block-name-alist)) (org-element-keyword-interpreter keyword nil))) +(defun org-org-section (section contents info) + "Transcode SECTION element back into Org syntax. +CONTENTS is the contents of the section. INFO is a plist used as +a communication channel." + (concat + (org-element-normalize-string contents) + ;; Insert footnote definitions appearing for the first time in this + ;; section. Indeed, some of them may not be available to narrowing + ;; so we make sure all of them are included in the result. + (let ((footnotes-alist + (org-element-map section 'footnote-reference + (lambda (fn) + (and (eq (org-element-property :type fn) 'standard) + (org-export-footnote-first-reference-p fn info) + (cons (org-element-property :label fn) + (org-export-get-footnote-definition fn info)))) + info))) + (and footnotes-alist + (concat "\n" + (mapconcat + (lambda (d) + (org-element-normalize-string + (concat (format "[%s] "(car d)) + (org-export-data (cdr d) info)))) + footnotes-alist "\n")))) + (make-string (or (org-element-property :post-blank section) 0) ?\n))) + ;;;###autoload (defun org-org-export-as-org (&optional async subtreep visible-only ext-plist) "Export current buffer to an Org buffer. diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el index b38fca97059..efc70d22a83 100644 --- a/lisp/org/ox-publish.el +++ b/lisp/org/ox-publish.el @@ -805,9 +805,14 @@ Default for SITEMAP-FILENAME is 'sitemap.org'." (visiting (find-buffer-visiting file)) (buffer (or visiting (find-file-noselect file)))) (with-current-buffer buffer - (org-mode) (let ((title - (let ((property (plist-get (org-export-get-environment) :title))) + (let ((property + (plist-get + ;; protect local variables in open buffers + (if visiting + (org-export-with-buffer-copy (org-export-get-environment)) + (org-export-get-environment)) + :title))) (if property (org-no-properties (org-element-interpret-data property)) (file-name-nondirectory (file-name-sans-extension file)))))) @@ -822,12 +827,14 @@ If FILE is an Org file and provides a DATE keyword use it. In any other case use the file system's modification time. Return time in `current-time' format." (if (file-directory-p file) (nth 5 (file-attributes file)) - (let* ((visiting (find-buffer-visiting file)) + (let* ((org-inhibit-startup t) + (visiting (find-buffer-visiting file)) (file-buf (or visiting (find-file-noselect file nil))) (date (plist-get (with-current-buffer file-buf - (let ((org-inhibit-startup t)) (org-mode)) - (org-export-get-environment)) + (if visiting + (org-export-with-buffer-copy (org-export-get-environment)) + (org-export-get-environment))) :date))) (unless visiting (kill-buffer file-buf)) ;; DATE is either a timestamp object or a secondary string. If it @@ -874,7 +881,7 @@ publishing will be done asynchronously, in another process." ;; project is still a string here. (list (assoc project org-publish-project-alist))))) (if async - (org-export-async-start 'ignore + (org-export-async-start (lambda (results) nil) `(let ((org-publish-use-timestamps-flag (if ',force nil ,org-publish-use-timestamps-flag))) (org-publish-projects ',project-alist))) @@ -892,7 +899,7 @@ optional argument ASYNC, publishing will be done asynchronously, in another process." (interactive "P") (if async - (org-export-async-start 'ignore + (org-export-async-start (lambda (results) nil) `(progn (when ',force (org-publish-remove-all-timestamps)) (let ((org-publish-use-timestamps-flag @@ -914,7 +921,7 @@ asynchronously, in another process." (interactive "P") (let ((file (buffer-file-name (buffer-base-buffer)))) (if async - (org-export-async-start 'ignore + (org-export-async-start (lambda (results) nil) `(let ((org-publish-use-timestamps-flag (if ',force nil ,org-publish-use-timestamps-flag))) (org-publish-file ,file))) diff --git a/lisp/org/ox-texinfo.el b/lisp/org/ox-texinfo.el index a961d7acdbc..37841d776f4 100644 --- a/lisp/org/ox-texinfo.el +++ b/lisp/org/ox-texinfo.el @@ -21,38 +21,7 @@ ;;; Commentary: ;; -;; This library implements a Texinfo back-end for Org generic -;; exporter. -;; -;; To test it, run -;; -;; M-: (org-export-to-buffer 'texinfo "*Test Texinfo*") RET -;; -;; in an Org mode buffer then switch to the buffer to see the Texinfo -;; export. See ox.el for more details on how this exporter works. -;; - -;; It introduces nine new buffer keywords: "TEXINFO_CLASS", -;; "TEXINFO_FILENAME", "TEXINFO_HEADER", "TEXINFO_POST_HEADER", -;; "TEXINFO_DIR_CATEGORY", "TEXINFO_DIR_TITLE", "TEXINFO_DIR_DESC" -;; "SUBTITLE" and "SUBAUTHOR". - -;; -;; It introduces 1 new headline property keywords: -;; "TEXINFO_MENU_TITLE" for optional menu titles. -;; -;; To include inline code snippets (for example for generating @kbd{} -;; and @key{} commands), the following export-snippet keys are -;; accepted: -;; -;; texinfo -;; info -;; -;; You can add them for export snippets via any of the below: -;; -;; (add-to-list 'org-export-snippet-translation-alist -;; '("info" . "texinfo")) -;; +;; See Org manual for details. ;;; Code: @@ -70,8 +39,8 @@ (center-block . org-texinfo-center-block) (clock . org-texinfo-clock) (code . org-texinfo-code) - (comment . org-texinfo-comment) - (comment-block . org-texinfo-comment-block) + (comment . (lambda (&rest args) "")) + (comment-block . (lambda (&rest args) "")) (drawer . org-texinfo-drawer) (dynamic-block . org-texinfo-dynamic-block) (entity . org-texinfo-entity) @@ -114,13 +83,14 @@ :export-block "TEXINFO" :filters-alist '((:filter-headline . org-texinfo-filter-section-blank-lines) + (:filter-parse-tree . org-texinfo--normalize-headlines) (:filter-section . org-texinfo-filter-section-blank-lines)) :menu-entry '(?i "Export to Texinfo" ((?t "As TEXI file" org-texinfo-export-to-texinfo) (?i "As INFO file" org-texinfo-export-to-info))) :options-alist - '((:texinfo-filename "TEXINFO_FILENAME" nil org-texinfo-filename t) + '((:texinfo-filename "TEXINFO_FILENAME" nil nil t) (:texinfo-class "TEXINFO_CLASS" nil org-texinfo-default-class t) (:texinfo-header "TEXINFO_HEADER" nil nil newline) (:texinfo-post-header "TEXINFO_POST_HEADER" nil nil newline) @@ -128,7 +98,8 @@ (:subauthor "SUBAUTHOR" nil nil newline) (:texinfo-dircat "TEXINFO_DIR_CATEGORY" nil nil t) (:texinfo-dirtitle "TEXINFO_DIR_TITLE" nil nil t) - (:texinfo-dirdesc "TEXINFO_DIR_DESC" nil nil t))) + (:texinfo-dirdesc "TEXINFO_DIR_DESC" nil nil t) + (:texinfo-printed-title "TEXINFO_PRINTED_TITLE" nil nil t))) @@ -141,12 +112,7 @@ :package-version '(Org . "8.0") :group 'org-export) -;;; Preamble - -(defcustom org-texinfo-filename "" - "Default filename for Texinfo output." - :group 'org-export-texinfo - :type '(string :tag "Export Filename")) +;;;; Preamble (defcustom org-texinfo-coding-system nil "Default document encoding for Texinfo output. @@ -162,19 +128,42 @@ If `nil' it will default to `buffer-file-coding-system'." (defcustom org-texinfo-classes '(("info" - "\\input texinfo @c -*- texinfo -*-" + "@documentencoding AUTO\n@documentlanguage AUTO" ("@chapter %s" . "@unnumbered %s") ("@section %s" . "@unnumberedsec %s") ("@subsection %s" . "@unnumberedsubsec %s") ("@subsubsection %s" . "@unnumberedsubsubsec %s"))) "Alist of Texinfo classes and associated header and structure. -If #+Texinfo_CLASS is set in the buffer, use its value and the +If #+TEXINFO_CLASS is set in the buffer, use its value and the associated information. Here is the structure of each cell: \(class-name header-string - \(numbered-section . unnumbered-section\) - ...\) + \(numbered-section . unnumbered-section) + ...) + + +The header string +----------------- + +The header string is inserted in the header of the generated +document, right after \"@setfilename\" and \"@settitle\" +commands. + +If it contains the special string + + \"@documentencoding AUTO\" + +\"AUTO\" will be replaced with an appropriate coding system. See +`org-texinfo-coding-system' for more information. Likewise, if +the string contains the special string + + \"@documentlanguage AUTO\" + +\"AUTO\" will be replaced with the language defined in the +buffer, through #+LANGUAGE keyword, or globally, with +`org-export-default-language', which see. + The sectioning structure ------------------------ @@ -186,10 +175,12 @@ section string and will be replaced by the title of the section. Instead of a list of sectioning commands, you can also specify a function name. That function will be called with two -parameters, the \(reduced) level of the headline, and a predicate +parameters, the reduced) level of the headline, and a predicate non-nil when the headline should be numbered. It must return a format string in which the section title will be added." :group 'org-export-texinfo + :version "24.4" + :package-version '(Org . "8.2") :type '(repeat (list (string :tag "Texinfo class") (string :tag "Texinfo header") @@ -200,7 +191,7 @@ a format string in which the section title will be added." (string :tag "unnumbered")) (function :tag "Hook computing sectioning")))))) -;;; Headline +;;;; Headline (defcustom org-texinfo-format-headline-function 'ignore "Function to format headline text. @@ -230,22 +221,16 @@ order to reproduce the default set-up: :group 'org-export-texinfo :type 'function) -;;; Node listing (menu) +;;;; Node listing (menu) (defcustom org-texinfo-node-description-column 32 - "Column at which to start the description in the node - listings. - + "Column at which to start the description in the node listings. If a node title is greater than this length, the description will be placed after the end of the title." :group 'org-export-texinfo :type 'integer) -;;; Footnotes -;; -;; Footnotes are inserted directly - -;;; Timestamps +;;;; Timestamps (defcustom org-texinfo-active-timestamp-format "@emph{%s}" "A printf format string to be applied to active timestamps." @@ -262,14 +247,14 @@ be placed after the end of the title." :group 'org-export-texinfo :type 'string) -;;; Links +;;;; Links (defcustom org-texinfo-link-with-unknown-path-format "@indicateurl{%s}" "Format string for links with unknown path type." :group 'org-export-texinfo :type 'string) -;;; Tables +;;;; Tables (defcustom org-texinfo-tables-verbatim nil "When non-nil, tables are exported verbatim." @@ -285,14 +270,14 @@ When nil, no transformation is made." :group 'org-export-texinfo :type '(choice (string :tag "Format string") - (const :tag "No formatting"))) + (const :tag "No formatting" nil))) (defcustom org-texinfo-def-table-markup "@samp" "Default setting for @table environments." :group 'org-export-texinfo :type 'string) -;;; Text markup +;;;; Text markup (defcustom org-texinfo-text-markup-alist '((bold . "@strong{%s}") (code . code) @@ -316,7 +301,7 @@ returned as-is." :type 'alist :options '(bold code italic verbatim comment)) -;;; Drawers +;;;; Drawers (defcustom org-texinfo-format-drawer-function (lambda (name contents) contents) @@ -331,10 +316,10 @@ The function should return the string to be exported. The default function simply returns the value of CONTENTS." :group 'org-export-texinfo :version "24.4" - :package-version '(Org . "8.3") + :package-version '(Org . "8.2") :type 'function) -;;; Inlinetasks +;;;; Inlinetasks (defcustom org-texinfo-format-inlinetask-function 'ignore "Function called to format an inlinetask in Texinfo code. @@ -370,18 +355,13 @@ in order to mimic default behavior: :group 'org-export-texinfo :type 'function) -;;; Src blocks -;; -;; Src Blocks are example blocks, except for LISP +;;;; Compilation -;;; Compilation - -(defcustom org-texinfo-info-process - '("makeinfo %f") +(defcustom org-texinfo-info-process '("makeinfo %f") "Commands to process a Texinfo file to an INFO file. This is list of strings, each of them will be given to the shell as a command. %f in the command will be replaced by the full -file name, %b by the file base name \(i.e without extension) and +file name, %b by the file base name (i.e without extension) and %o by the base directory of the file." :group 'org-export-texinfo :type '(repeat :tag "Shell command sequence" @@ -403,12 +383,13 @@ set `org-texinfo-logfiles-extensions'." :group 'org-export-latex :type 'boolean) - ;;; Constants + (defconst org-texinfo-max-toc-depth 4 - "Maximum depth for creation of detailed menu listings. Beyond - this depth Texinfo will not recognize the nodes and will cause - errors. Left as a constant in case this value ever changes.") + "Maximum depth for creation of detailed menu listings. +Beyond this depth, Texinfo will not recognize the nodes and will +cause errors. Left as a constant in case this value ever +changes.") (defconst org-texinfo-supported-coding-systems '("US-ASCII" "UTF-8" "ISO-8859-15" "ISO-8859-1" "ISO-8859-2" "koi8-r" "koi8-u") @@ -425,6 +406,31 @@ If two strings share the same prefix (e.g. \"ISO-8859-1\" and (let ((blanks (make-string 2 ?\n))) (replace-regexp-in-string "\n\\(?:\n[ \t]*\\)*\\'" blanks headline))) +(defun org-texinfo--normalize-headlines (tree back-end info) + "Normalize headlines in TREE. + +BACK-END is the symbol specifying back-end used for export. INFO +is a plist used as a communication channel. + +Make sure every headline in TREE contains a section, since those +are required to install a menu. Also put exactly one blank line +at the end of each section. + +Return new tree." + (org-element-map tree 'headline + (lambda (hl) + (org-element-put-property hl :post-blank 1) + (let ((contents (org-element-contents hl))) + (when contents + (let ((first (org-element-map contents '(headline section) + #'identity info t))) + (unless (eq (org-element-type first) 'section) + (apply #'org-element-set-contents + hl + (cons `(section (:parent ,hl)) contents))))))) + info) + tree) + (defun org-texinfo--find-verb-separator (s) "Return a character not used in string S. This is used to choose a separator for constructs like \\verb." @@ -433,18 +439,6 @@ This is used to choose a separator for constructs like \\verb." when (not (string-match (regexp-quote (char-to-string c)) s)) return (char-to-string c)))) -(defun org-texinfo--make-option-string (options) - "Return a comma separated string of keywords and values. -OPTIONS is an alist where the key is the options keyword as -a string, and the value a list containing the keyword value, or -nil." - (mapconcat (lambda (pair) - (concat (first pair) - (when (> (length (second pair)) 0) - (concat "=" (second pair))))) - options - ",")) - (defun org-texinfo--text-markup (text markup) "Format TEXT depending on MARKUP text markup. See `org-texinfo-text-markup-alist' for details." @@ -472,207 +466,44 @@ See `org-texinfo-text-markup-alist' for details." ;; Else use format string. (t (format fmt text))))) -(defun org-texinfo--get-node (headline info) - "Return node entry associated to HEADLINE. -INFO is a plist used as a communication channel." - (let ((menu-title (org-export-get-alt-title headline info))) - (org-texinfo--sanitize-menu - (replace-regexp-in-string - "%" "%%" - (if menu-title (org-export-data menu-title info) - (org-texinfo--sanitize-headline - (org-element-property :title headline) info)))))) +(defun org-texinfo--get-node (blob info) + "Return node or anchor associated to BLOB. +BLOB is an element or object. INFO is a plist used as +a communication channel. The function guarantees the node or +anchor name is unique." + (let ((cache (plist-get info :texinfo-node-cache))) + (or (cdr (assq blob cache)) + (let ((name + (org-texinfo--sanitize-node + (case (org-element-type blob) + (headline + (org-export-data (org-export-get-alt-title blob info) info)) + ((radio-target target) (org-element-property :value blob)) + (otherwise (or (org-element-property :name blob) "")))))) + ;; Ensure NAME is unique. + (while (rassoc name cache) (setq name (concat name "x"))) + (plist-put info :texinfo-node-cache (cons (cons blob name) cache)) + name)))) -;;; Headline sanitizing +;;;; Menu sanitizing -(defun org-texinfo--sanitize-headline (headline info) - "Remove all formatting from the text of a headline for use in - node and menu listing." - (mapconcat 'identity - (org-texinfo--sanitize-headline-contents headline info) " ")) +(defun org-texinfo--sanitize-node (title) + "Bend string TITLE to node line requirements. +Trim string and collapse multiple whitespace characters as they +are not significant. Also remove the following characters: @ +{ } ( ) : . ," + (replace-regexp-in-string + "[:,.]" "" + (replace-regexp-in-string + "\\`(\\(.*)\\)" "[\\1" + (org-trim (replace-regexp-in-string "[ \t]\\{2,\\}" " " title))))) -(defun org-texinfo--sanitize-headline-contents (headline info) - "Retrieve the content of the headline. - -Any content that can contain further formatting is checked -recursively, to ensure that nested content is also properly -retrieved." - (loop for contents in headline append - (cond - ;; already a string - ((stringp contents) - (list (replace-regexp-in-string " $" "" contents))) - ;; Is exported as-is (value) - ((org-element-map contents '(verbatim code) - (lambda (value) (org-element-property :value value)) info)) - ;; Has content and recurse into the content - ((org-element-contents contents) - (org-texinfo--sanitize-headline-contents - (org-element-contents contents) info))))) - -;;; Menu sanitizing - -(defun org-texinfo--sanitize-menu (title) - "Remove invalid characters from TITLE for use in menus and -nodes. - -Based on Texinfo specifications, the following must be removed: -@ { } ( ) : . ," - (replace-regexp-in-string "[@{}():,.]" "" title)) - -;;; Content sanitizing +;;;; Content sanitizing (defun org-texinfo--sanitize-content (text) - "Ensure characters are properly escaped when used in headlines or blocks. - -Escape characters are: @ { }" - (replace-regexp-in-string "\\\([@{}]\\\)" "@\\1" text)) - -;;; Menu creation - -(defun org-texinfo--build-menu (tree level info &optional detailed) - "Create the @menu/@end menu information from TREE at headline -level LEVEL. - -TREE contains the parse-tree to work with, either of the entire -document or of a specific parent headline. LEVEL indicates what -level of headlines to look at when generating the menu. INFO is -a plist containing contextual information. - -Detailed determines whether to build a single level of menu, or -recurse into all children as well." - (let ((menu (org-texinfo--generate-menu-list tree level info)) - output text-menu) - (cond - (detailed - ;; Looping is done within the menu generation. - (setq text-menu (org-texinfo--generate-detailed menu level info))) - (t - (setq text-menu (org-texinfo--generate-menu-items menu info)))) - (when text-menu - (setq output (org-texinfo--format-menu text-menu)) - (mapconcat 'identity output "\n")))) - -(defun org-texinfo--generate-detailed (menu level info) - "Generate a detailed listing of all subheadings within MENU starting at LEVEL. - -MENU is the parse-tree to work with. LEVEL is the starting level -for the menu headlines and from which recursion occurs. INFO is -a plist containing contextual information." - (when level - (let ((max-depth (min org-texinfo-max-toc-depth - (plist-get info :headline-levels)))) - (when (> max-depth level) - (loop for headline in menu append - (let* ((title (org-texinfo--menu-headlines headline info)) - ;; Create list of menu entries for the next level - (sublist (org-texinfo--generate-menu-list - headline (1+ level) info)) - ;; Generate the menu items for that level. If - ;; there are none omit that heading completely, - ;; otherwise join the title to it's related entries. - (submenu (if (org-texinfo--generate-menu-items sublist info) - (append (list title) - (org-texinfo--generate-menu-items sublist info)) - 'nil)) - ;; Start the process over the next level down. - (recursion (org-texinfo--generate-detailed sublist (1+ level) info))) - (setq recursion (append submenu recursion)) - recursion)))))) - -(defun org-texinfo--generate-menu-list (tree level info) - "Generate the list of headlines that are within a given level -of the tree for further formatting. - -TREE is the parse-tree containing the headlines. LEVEL is the -headline level to generate a list of. INFO is a plist holding -contextual information." - (org-element-map tree 'headline - (lambda (head) - (and (= (org-export-get-relative-level head info) level) - ;; Do not take note of footnotes or copying headlines. - (not (org-element-property :COPYING head)) - (not (org-element-property :footnote-section-p head)) - ;; Collect headline. - head)) - info)) - -(defun org-texinfo--generate-menu-items (items info) - "Generate a list of headline information from the listing ITEMS. - -ITEMS is a list of the headlines to be converted into entries. -INFO is a plist containing contextual information. - -Returns a list containing the following information from each -headline: length, title, description. This is used to format the -menu using `org-texinfo--format-menu'." - (loop for headline in items collect - (let* ((menu-title (org-texinfo--sanitize-menu - (org-export-data - (org-export-get-alt-title headline info) - info))) - (title (org-texinfo--sanitize-menu - (org-texinfo--sanitize-headline - (org-element-property :title headline) info))) - (descr (org-export-data - (org-element-property :DESCRIPTION headline) - info)) - (menu-entry (if (string= "" menu-title) title menu-title)) - (len (length menu-entry)) - (output (list len menu-entry descr))) - output))) - -(defun org-texinfo--menu-headlines (headline info) - "Retrieve the title from HEADLINE. - -INFO is a plist holding contextual information. - -Return the headline as a list of (length title description) with -length of -1 and nil description. This is used in -`org-texinfo--format-menu' to identify headlines as opposed to -entries." - (let ((title (org-export-data - (org-element-property :title headline) info))) - (list -1 title 'nil))) - -(defun org-texinfo--format-menu (text-menu) - "Format the TEXT-MENU items to be properly printed in the menu. - -Each entry in the menu should be provided as (length title -description). - -Headlines in the detailed menu are given length -1 to ensure they -are never confused with other entries. They also have no -description. - -Other menu items are output as: - Title:: description - -With the spacing between :: and description based on the length -of the longest menu entry." - - (let (output) - (setq output - (mapcar (lambda (name) - (let* ((title (nth 1 name)) - (desc (nth 2 name)) - (length (nth 0 name)) - (column (max - ;;6 is "* " ":: " for inserted text - length - (- - org-texinfo-node-description-column - 6))) - (spacing (- column length) - )) - (if (> length -1) - (concat "* " title ":: " - (make-string spacing ?\s) - (if desc - (concat desc))) - (concat "\n" title "\n")))) - text-menu)) - output)) + "Escape special characters in string TEXT. +Special characters are: @ { }" + (replace-regexp-in-string "[@{}]" "@\\&" text)) ;;; Template @@ -680,145 +511,127 @@ of the longest menu entry." "Return complete document string after Texinfo conversion. CONTENTS is the transcoded contents string. INFO is a plist holding export options." - (let* ((title (org-export-data (plist-get info :title) info)) - (info-filename (or (plist-get info :texinfo-filename) - (file-name-nondirectory - (org-export-output-file-name ".info")))) - (author (org-export-data (plist-get info :author) info)) - (lang (org-export-data (plist-get info :language) info)) - (texinfo-header (plist-get info :texinfo-header)) - (texinfo-post-header (plist-get info :texinfo-post-header)) - (subtitle (plist-get info :subtitle)) - (subauthor (plist-get info :subauthor)) - (class (plist-get info :texinfo-class)) - (header (nth 1 (assoc class org-texinfo-classes))) - (copying - (org-element-map (plist-get info :parse-tree) 'headline - (lambda (hl) (and (org-element-property :COPYING hl) hl)) info t)) - (dircat (plist-get info :texinfo-dircat)) - (dirtitle (plist-get info :texinfo-dirtitle)) - (dirdesc (plist-get info :texinfo-dirdesc)) - ;; Spacing to align description (column 32 - 3 for `* ' and - ;; `.' in text. - (dirspacing (- 29 (length dirtitle))) - (menu (org-texinfo-make-menu info 'main)) - (detail-menu (org-texinfo-make-menu info 'detailed))) + (let ((title (org-export-data (plist-get info :title) info)) + ;; Copying data is the contents of the first headline in + ;; parse tree with a non-nil copying property. + (copying (org-element-map (plist-get info :parse-tree) 'headline + (lambda (hl) + (and (org-not-nil (org-element-property :COPYING hl)) + (org-element-contents hl))) + info t))) (concat - ;; Header - header "\n" + "\\input texinfo @c -*- texinfo -*-\n" "@c %**start of header\n" - ;; Filename and Title - "@setfilename " info-filename "\n" - "@settitle " title "\n" - ;; Coding system. - (format - "@documentencoding %s\n" - (catch 'coding-system - (let ((case-fold-search t) - (name (symbol-name (or org-texinfo-coding-system - buffer-file-coding-system)))) - (dolist (system org-texinfo-supported-coding-systems "UTF-8") - (when (org-string-match-p (regexp-quote system) name) - (throw 'coding-system system)))))) - "\n" - (format "@documentlanguage %s\n" lang) - "\n\n" - "@c Version and Contact Info\n" - "@set AUTHOR " author "\n" - - ;; Additional Header Options set by `#+TEXINFO_HEADER - (if texinfo-header - (concat "\n" - texinfo-header - "\n")) - - "@c %**end of header\n" - "@finalout\n" - "\n\n" - - ;; Additional Header Options set by #+TEXINFO_POST_HEADER - (if texinfo-post-header - (concat "\n" - texinfo-post-header - "\n")) - - ;; Copying - "@copying\n" - ;; Only export the content of the headline, do not need the - ;; initial headline. - (org-export-data (nth 2 copying) info) - "@end copying\n" - "\n\n" - - ;; Info directory information - ;; Only supply if both title and category are provided - (if (and dircat dirtitle) + (let ((file (or (plist-get info :texinfo-filename) + (let ((f (plist-get info :output-file))) + (and f (concat (file-name-sans-extension f) ".info")))))) + (and file (format "@setfilename %s\n" file))) + (format "@settitle %s\n" title) + ;; Insert class-defined header. + (org-element-normalize-string + (let ((header (nth 1 (assoc (plist-get info :texinfo-class) + org-texinfo-classes))) + (coding + (catch 'coding-system + (let ((case-fold-search t) + (name (symbol-name (or org-texinfo-coding-system + buffer-file-coding-system)))) + (dolist (system org-texinfo-supported-coding-systems "UTF-8") + (when (org-string-match-p (regexp-quote system) name) + (throw 'coding-system system)))))) + (language (plist-get info :language)) + (case-fold-search nil)) + ;; Auto coding system. + (replace-regexp-in-string + "^@documentencoding \\(AUTO\\)$" + coding + (replace-regexp-in-string + "^@documentlanguage \\(AUTO\\)$" language header t nil 1) t nil 1))) + ;; Additional header options set by #+TEXINFO_HEADER. + (let ((texinfo-header (plist-get info :texinfo-header))) + (and texinfo-header (org-element-normalize-string texinfo-header))) + "@c %**end of header\n\n" + ;; Additional options set by #+TEXINFO_POST_HEADER. + (let ((texinfo-post-header (plist-get info :texinfo-post-header))) + (and texinfo-post-header + (org-element-normalize-string texinfo-post-header))) + ;; Copying. + (and copying + (format "@copying\n%s@end copying\n\n" + (org-element-normalize-string + (org-export-data copying info)))) + ;; Info directory information. Only supply if both title and + ;; category are provided. + (let ((dircat (plist-get info :texinfo-dircat)) + (dirtitle + (let ((title (plist-get info :texinfo-dirtitle))) + (and title + (string-match "^\\(?:\\* \\)?\\(.*?\\)\\(\\.\\)?$" title) + (format "* %s." (match-string 1 title)))))) + (when (and dircat dirtitle) (concat "@dircategory " dircat "\n" "@direntry\n" - "* " dirtitle "." - (make-string dirspacing ?\s) - dirdesc "\n" - "@end direntry\n")) - "\n\n" - + (let ((dirdesc + (let ((desc (plist-get info :texinfo-dirdesc))) + (cond ((not desc) nil) + ((org-string-match-p "\\.$" desc) desc) + (t (concat desc ".")))))) + (if dirdesc (format "%-23s %s" dirtitle dirdesc) dirtitle)) + "\n" + "@end direntry\n\n"))) ;; Title + "@finalout\n" "@titlepage\n" - "@title " title "\n\n" - (if subtitle - (concat "@subtitle " subtitle "\n")) - "@author " author "\n" - (if subauthor - (concat subauthor "\n")) - "\n" - "@c The following two commands start the copyright page.\n" - "@page\n" - "@vskip 0pt plus 1filll\n" - "@insertcopying\n" + (format "@title %s\n" (or (plist-get info :texinfo-printed-title) title)) + (let ((subtitle (plist-get info :subtitle))) + (and subtitle + (org-element-normalize-string + (replace-regexp-in-string "^" "@subtitle " subtitle)))) + (when (plist-get info :with-author) + (concat + ;; Primary author. + (let ((author (org-string-nw-p + (org-export-data (plist-get info :author) info))) + (email (and (plist-get info :with-email) + (org-string-nw-p + (org-export-data (plist-get info :email) info))))) + (cond ((and author email) + (format "@author %s (@email{%s})\n" author email)) + (author (format "@author %s\n" author)) + (email (format "@author @email{%s}\n" email)))) + ;; Other authors. + (let ((subauthor (plist-get info :subauthor))) + (and subauthor + (org-element-normalize-string + (replace-regexp-in-string "^" "@author " subauthor)))))) + (and copying "@page\n@vskip 0pt plus 1filll\n@insertcopying\n") "@end titlepage\n\n" - "@c Output the table of contents at the beginning.\n" - "@contents\n\n" - + ;; Table of contents. + (and (plist-get info :with-toc) "@contents\n\n") ;; Configure Top Node when not for Tex "@ifnottex\n" "@node Top\n" - "@top " title " Manual\n" - "@insertcopying\n" + (format "@top %s\n" title) + (and copying "@insertcopying\n") "@end ifnottex\n\n" - - ;; Do not output menus if they are empty - (if menu - ;; Menu - (concat "@menu\n" - menu - "\n\n" - ;; Detailed Menu - (if detail-menu - (concat "@detailmenu\n" - " --- The Detailed Node Listing ---\n" - detail-menu - "\n\n" - "@end detailmenu\n")) - "@end menu\n")) - "\n\n" - - ;; Document's body. - contents + ;; Menu. + (org-texinfo-make-menu (plist-get info :parse-tree) info 'master) "\n" + ;; Document's body. + contents "\n" ;; Creator. - (let ((creator-info (plist-get info :with-creator))) - (cond - ((not creator-info) "") - ((eq creator-info 'comment) - (format "@c %s\n" (plist-get info :creator))) - (t (concat (plist-get info :creator) "\n")))) + (case (plist-get info :with-creator) + ((nil) nil) + (comment (format "@c %s\n" (plist-get info :creator))) + (otherwise (concat (plist-get info :creator) "\n"))) ;; Document end. - "\n@bye"))) + "@bye"))) ;;; Transcode Functions -;;; Bold +;;;; Bold (defun org-texinfo-bold (bold contents info) "Transcode BOLD from Org to Texinfo. @@ -826,7 +639,7 @@ CONTENTS is the text with bold markup. INFO is a plist holding contextual information." (org-texinfo--text-markup contents 'bold)) -;;; Center Block +;;;; Center Block (defun org-texinfo-center-block (center-block contents info) "Transcode a CENTER-BLOCK element from Org to Texinfo. @@ -834,7 +647,7 @@ CONTENTS holds the contents of the block. INFO is a plist used as a communication channel." contents) -;;; Clock +;;;; Clock (defun org-texinfo-clock (clock contents info) "Transcode a CLOCK element from Org to Texinfo. @@ -851,7 +664,7 @@ information." (and time (format " (%s)" time))))) "@*")) -;;; Code +;;;; Code (defun org-texinfo-code (code contents info) "Transcode a CODE object from Org to Texinfo. @@ -859,23 +672,7 @@ CONTENTS is nil. INFO is a plist used as a communication channel." (org-texinfo--text-markup (org-element-property :value code) 'code)) -;;; Comment - -(defun org-texinfo-comment (comment contents info) - "Transcode a COMMENT object from Org to Texinfo. -CONTENTS is the text in the comment. INFO is a plist holding -contextual information." - (org-texinfo--text-markup (org-element-property :value comment) 'comment)) - -;;; Comment Block - -(defun org-texinfo-comment-block (comment-block contents info) - "Transcode a COMMENT-BLOCK object from Org to Texinfo. -CONTENTS is the text within the block. INFO is a plist holding -contextual information." - (format "@ignore\n%s@end ignore" (org-element-property :value comment-block))) - -;;; Drawer +;;;; Drawer (defun org-texinfo-drawer (drawer contents info) "Transcode a DRAWER element from Org to Texinfo. @@ -886,15 +683,15 @@ holding contextual information." name contents))) output)) -;;; Dynamic Block +;;;; Dynamic Block (defun org-texinfo-dynamic-block (dynamic-block contents info) "Transcode a DYNAMIC-BLOCK element from Org to Texinfo. CONTENTS holds the contents of the block. INFO is a plist -holding contextual information. See `org-export-data'." +holding contextual information." contents) -;;; Entity +;;;; Entity (defun org-texinfo-entity (entity contents info) "Transcode an ENTITY object from Org to Texinfo. @@ -903,7 +700,7 @@ contextual information." (let ((ent (org-element-property :latex entity))) (if (org-element-property :latex-math-p entity) (format "@math{%s}" ent) ent))) -;;; Example Block +;;;; Example Block (defun org-texinfo-example-block (example-block contents info) "Transcode an EXAMPLE-BLOCK element from Org to Texinfo. @@ -912,7 +709,7 @@ information." (format "@verbatim\n%s@end verbatim" (org-export-format-code-default example-block info))) -;;; Export Block +;;;; Export Block (defun org-texinfo-export-block (export-block contents info) "Transcode a EXPORT-BLOCK element from Org to Texinfo. @@ -920,7 +717,7 @@ CONTENTS is nil. INFO is a plist holding contextual information." (when (string= (org-element-property :type export-block) "TEXINFO") (org-remove-indentation (org-element-property :value export-block)))) -;;; Export Snippet +;;;; Export Snippet (defun org-texinfo-export-snippet (export-snippet contents info) "Transcode a EXPORT-SNIPPET object from Org to Texinfo. @@ -928,7 +725,7 @@ CONTENTS is nil. INFO is a plist holding contextual information." (when (eq (org-export-snippet-backend export-snippet) 'texinfo) (org-element-property :value export-snippet))) -;;; Fixed Width +;;;; Fixed Width (defun org-texinfo-fixed-width (fixed-width contents info) "Transcode a FIXED-WIDTH element from Org to Texinfo. @@ -938,8 +735,7 @@ CONTENTS is nil. INFO is a plist holding contextual information." (org-texinfo--sanitize-content (org-element-property :value fixed-width))))) -;;; Footnote Reference -;; +;;;; Footnote Reference (defun org-texinfo-footnote-reference (footnote contents info) "Create a footnote reference for FOOTNOTE. @@ -950,7 +746,7 @@ plist holding contextual information." (format "@footnote{%s}" (org-trim (org-export-data def info))))) -;;; Headline +;;;; Headline (defun org-texinfo-headline (headline contents info) "Transcode a HEADLINE element from Org to Texinfo. @@ -960,66 +756,29 @@ holding contextual information." (level (org-export-get-relative-level headline info)) (numberedp (org-export-numbered-headline-p headline info)) (class-sectioning (assoc class org-texinfo-classes)) - ;; Find the index type, if any + ;; Find the index type, if any. (index (org-element-property :INDEX headline)) - ;; Check if it is an appendix - (appendix (org-element-property :APPENDIX headline)) - ;; Retrieve headline text - (text (org-texinfo--sanitize-headline - (org-element-property :title headline) info)) ;; Create node info, to insert it before section formatting. - ;; Use custom menu title if present + ;; Use custom menu title if present. (node (format "@node %s\n" (org-texinfo--get-node headline info))) - ;; Menus must be generated with first child, otherwise they - ;; will not nest properly - (menu (let* ((first (org-export-first-sibling-p headline info)) - (parent (org-export-get-parent-headline headline)) - (title (org-texinfo--sanitize-headline - (org-element-property :title parent) info)) - heading listing - (tree (plist-get info :parse-tree))) - (if first - (org-element-map (plist-get info :parse-tree) 'headline - (lambda (ref) - (if (member title (org-element-property :title ref)) - (push ref heading))) - info t)) - (setq listing (org-texinfo--build-menu - (car heading) level info)) - (if listing - (setq listing (replace-regexp-in-string - "%" "%%" listing) - listing (format - "\n@menu\n%s\n@end menu\n\n" listing)) - 'nil))) ;; Section formatting will set two placeholders: one for the ;; title and the other for the contents. (section-fmt - (let ((sec (if (and (symbolp (nth 2 class-sectioning)) - (fboundp (nth 2 class-sectioning))) - (funcall (nth 2 class-sectioning) level numberedp) - (nth (1+ level) class-sectioning)))) - (cond - ;; No section available for that LEVEL. - ((not sec) nil) - ;; Section format directly returned by a function. - ((stringp sec) sec) - ;; (numbered-section . unnumbered-section) - ((not (consp (cdr sec))) + (if (org-not-nil (org-element-property :APPENDIX headline)) + "@appendix %s\n%s" + (let ((sec (if (and (symbolp (nth 2 class-sectioning)) + (fboundp (nth 2 class-sectioning))) + (funcall (nth 2 class-sectioning) level numberedp) + (nth (1+ level) class-sectioning)))) (cond - ;;If an index, always unnumbered - (index - (concat menu node (cdr sec) "\n%s")) - (appendix - (concat menu node (replace-regexp-in-string - "unnumbered" - "appendix" - (cdr sec)) "\n%s")) - ;; Otherwise number as needed. - (t - (concat menu node - (funcall - (if numberedp #'car #'cdr) sec) "\n%s"))))))) + ;; No section available for that LEVEL. + ((not sec) nil) + ;; Section format directly returned by a function. + ((stringp sec) sec) + ;; (numbered-section . unnumbered-section) + ((not (consp (cdr sec))) + (concat (if (or index (not numberedp)) (cdr sec) (car sec)) + "\n%s")))))) (todo (and (plist-get info :with-todo-keywords) (let ((todo (org-element-property :todo-keyword headline))) @@ -1029,100 +788,54 @@ holding contextual information." (org-export-get-tags headline info))) (priority (and (plist-get info :with-priority) (org-element-property :priority headline))) - ;; Create the headline text along with a no-tag version. The - ;; latter is required to remove tags from table of contents. - (full-text (org-texinfo--sanitize-content - (if (not (eq org-texinfo-format-headline-function 'ignore)) - ;; User-defined formatting function. - (funcall org-texinfo-format-headline-function - todo todo-type priority text tags) - ;; Default formatting. - (concat - (when todo - (format "@strong{%s} " todo)) - (when priority (format "@emph{#%s} " priority)) - text - (when tags - (format " :%s:" - (mapconcat 'identity tags ":"))))))) - (full-text-no-tag - (org-texinfo--sanitize-content - (if (not (eq org-texinfo-format-headline-function 'ignore)) - ;; User-defined formatting function. - (funcall org-texinfo-format-headline-function - todo todo-type priority text nil) - ;; Default formatting. - (concat - (when todo (format "@strong{%s} " todo)) - (when priority (format "@emph{#%c} " priority)) - text)))) - (pre-blanks - (make-string (org-element-property :pre-blank headline) 10))) + (text (org-export-data (org-element-property :title headline) info)) + (full-text (if (not (eq org-texinfo-format-headline-function 'ignore)) + ;; User-defined formatting function. + (funcall org-texinfo-format-headline-function + todo todo-type priority text tags) + ;; Default formatting. + (concat + (when todo + (format "@strong{%s} " todo)) + (when priority (format "@emph{#%s} " priority)) + text + (when tags + (format " :%s:" + (mapconcat 'identity tags ":")))))) + (contents (if (org-string-nw-p contents) (concat "\n" contents) ""))) (cond ;; Case 1: This is a footnote section: ignore it. ((org-element-property :footnote-section-p headline) nil) ;; Case 2: This is the `copying' section: ignore it ;; This is used elsewhere. - ((org-element-property :COPYING headline) nil) + ((org-not-nil (org-element-property :COPYING headline)) nil) ;; Case 3: An index. If it matches one of the known indexes, ;; print it as such following the contents, otherwise ;; print the contents and leave the index up to the user. (index - (format - section-fmt full-text - (concat pre-blanks contents "\n" - (if (member index '("cp" "fn" "ky" "pg" "tp" "vr")) - (concat "@printindex " index))))) + (concat node + (format + section-fmt + full-text + (concat contents + (and (member index '("cp" "fn" "ky" "pg" "tp" "vr")) + (concat "\n@printindex " index)))))) ;; Case 4: This is a deep sub-tree: export it as a list item. ;; Also export as items headlines for which no section ;; format has been found. ((or (not section-fmt) (org-export-low-level-p headline info)) ;; Build the real contents of the sub-tree. - (let ((low-level-body - (concat - ;; If the headline is the first sibling, start a list. - (when (org-export-first-sibling-p headline info) - (format "@%s\n" (if numberedp 'enumerate 'itemize))) - ;; Itemize headline - "@item\n" full-text "\n" pre-blanks contents))) - ;; If headline is not the last sibling simply return - ;; LOW-LEVEL-BODY. Otherwise, also close the list, before any - ;; blank line. - (if (not (org-export-last-sibling-p headline info)) low-level-body - (replace-regexp-in-string - "[ \t\n]*\\'" - (format "\n@end %s" (if numberedp 'enumerate 'itemize)) - low-level-body)))) + (concat (and (org-export-first-sibling-p headline info) + (format "@%s\n" (if numberedp 'enumerate 'itemize))) + "@item\n" full-text "\n" + contents + (if (org-export-last-sibling-p headline info) + (format "@end %s" (if numberedp 'enumerate 'itemize)) + "\n"))) ;; Case 5: Standard headline. Export it as a section. - (t - (cond - ((not (and tags (eq (plist-get info :with-tags) 'not-in-toc))) - ;; Regular section. Use specified format string. - (format (replace-regexp-in-string "%]" "%%]" section-fmt) full-text - (concat pre-blanks contents))) - ((string-match "\\`@\\(.*?\\){" section-fmt) - ;; If tags should be removed from table of contents, insert - ;; title without tags as an alternative heading in sectioning - ;; command. - (format (replace-match (concat (match-string 1 section-fmt) "[%s]") - nil nil section-fmt 1) - ;; Replace square brackets with parenthesis since - ;; square brackets are not supported in optional - ;; arguments. - (replace-regexp-in-string - "\\[" "(" - (replace-regexp-in-string - "\\]" ")" - full-text-no-tag)) - full-text - (concat pre-blanks contents))) - (t - ;; Impossible to add an alternative heading. Fallback to - ;; regular sectioning format string. - (format (replace-regexp-in-string "%]" "%%]" section-fmt) full-text - (concat pre-blanks contents)))))))) + (t (concat node (format section-fmt full-text contents)))))) -;;; Inline Src Block +;;;; Inline Src Block (defun org-texinfo-inline-src-block (inline-src-block contents info) "Transcode an INLINE-SRC-BLOCK element from Org to Texinfo. @@ -1132,7 +845,7 @@ contextual information." (separator (org-texinfo--find-verb-separator code))) (concat "@verb{" separator code separator "}"))) -;;; Inlinetask +;;;; Inlinetask (defun org-texinfo-inlinetask (inlinetask contents info) "Transcode an INLINETASK element from Org to Texinfo. @@ -1165,7 +878,7 @@ holding contextual information." "\n") full-title contents))))) -;;; Italic +;;;; Italic (defun org-texinfo-italic (italic contents info) "Transcode ITALIC from Org to Texinfo. @@ -1173,18 +886,18 @@ CONTENTS is the text with italic markup. INFO is a plist holding contextual information." (org-texinfo--text-markup contents 'italic)) -;;; Item +;;;; Item (defun org-texinfo-item (item contents info) "Transcode an ITEM element from Org to Texinfo. CONTENTS holds the contents of the item. INFO is a plist holding contextual information." - (let* ((tag (org-element-property :tag item)) - (desc (org-export-data tag info))) - (concat "\n@item " (if tag desc) "\n" - (and contents (org-trim contents)) "\n"))) + (format "@item%s\n%s" + (let ((tag (org-element-property :tag item))) + (if tag (concat " " (org-export-data tag info)) "")) + (or contents ""))) -;;; Keyword +;;;; Keyword (defun org-texinfo-keyword (keyword contents info) "Transcode a KEYWORD element from Org to Texinfo. @@ -1200,14 +913,14 @@ CONTENTS is nil. INFO is a plist holding contextual information." ((string= key "TINDEX") (format "@tindex %s" value)) ((string= key "VINDEX") (format "@vindex %s" value))))) -;;; Line Break +;;;; Line Break (defun org-texinfo-line-break (line-break contents info) "Transcode a LINE-BREAK object from Org to Texinfo. CONTENTS is nil. INFO is a plist holding contextual information." "@*\n") -;;; Link +;;;; Link (defun org-texinfo-link (link desc info) "Transcode a LINK object from Org to Texinfo. @@ -1225,55 +938,69 @@ INFO is a plist holding contextual information. See ((and (string= type "file") (file-name-absolute-p raw-path)) (concat "file:" raw-path)) (t raw-path))) - (email (if (string= type "mailto") - (let ((text (replace-regexp-in-string - "@" "@@" raw-path))) - (concat text (if desc (concat "," desc)))))) protocol) (cond - ;; Links pointing to a headline: Find destination and build - ;; appropriate referencing command. - ((member type '("custom-id" "id")) - (let ((destination (org-export-resolve-id-link link info))) + ((equal type "radio") + (let ((destination (org-export-resolve-radio-link link info))) + (if (not destination) desc + (format "@ref{%s,,%s}" + (org-texinfo--get-node destination info) + desc)))) + ((member type '("custom-id" "id" "fuzzy")) + (let ((destination + (if (equal type "fuzzy") + (org-export-resolve-fuzzy-link link info) + (org-export-resolve-id-link link info)))) (case (org-element-type destination) + ((nil) + (format org-texinfo-link-with-unknown-path-format + (org-texinfo--sanitize-content path))) ;; Id link points to an external file. (plain-text (if desc (format "@uref{file://%s,%s}" destination desc) (format "@uref{file://%s}" destination))) - ;; LINK points to a headline. Use the headline as the NODE target (headline (format "@ref{%s,%s}" (org-texinfo--get-node destination info) - (or desc ""))) + (cond + (desc) + ((org-export-numbered-headline-p destination info) + (org-export-data + (org-element-property :title destination) info)) + (t + (mapconcat + #'number-to-string + (org-export-get-headline-number destination info) "."))))) (otherwise - (let ((path (org-export-solidify-link-text path))) - (if (not desc) (format "@ref{%s}" path) - (format "@ref{%s,,%s}" path desc))))))) - ((member type '("info")) + (let ((topic + (or desc + (if (and (eq (org-element-type destination) 'headline) + (not (org-export-numbered-headline-p + destination info))) + (org-export-data + (org-element-property :title destination) info)) + (let ((n (org-export-get-ordinal destination info))) + (cond + ((not n) nil) + ((integerp n) n) + (t (mapconcat #'number-to-string n "."))))))) + (when topic + (format "@ref{%s,,%s}" + (org-texinfo--get-node destination info) + topic))))))) + ((equal type "info") (let* ((info-path (split-string path "[:#]")) (info-manual (car info-path)) (info-node (or (cadr info-path) "top")) (title (or desc ""))) (format "@ref{%s,%s,,%s,}" info-node title info-manual))) - ((member type '("fuzzy")) - (let ((destination (org-export-resolve-fuzzy-link link info))) - (case (org-element-type destination) - ;; Id link points to an external file. - (plain-text - (if desc (format "@uref{file://%s,%s}" destination desc) - (format "@uref{file://%s}" destination))) - ;; LINK points to a headline. Use the headline as the NODE target - (headline - (format "@ref{%s,%s}" - (org-texinfo--get-node destination info) - (or desc ""))) - (otherwise - (let ((path (org-export-solidify-link-text path))) - (if (not desc) (format "@ref{%s}" path) - (format "@ref{%s,,%s}" path desc))))))) - ;; Special case for email addresses - (email - (format "@email{%s}" email)) + ((string= type "mailto") + (format "@email{%s}" + (concat (org-texinfo--sanitize-content path) + (and desc (concat "," desc))))) + ((let ((protocol (nth 2 (assoc type org-link-protocols)))) + (and (functionp protocol) + (funcall protocol (org-link-unescape path) desc 'texinfo)))) ;; External link with a description part. ((and path desc) (format "@uref{%s,%s}" path desc)) ;; External link without a description part. @@ -1282,27 +1009,97 @@ INFO is a plist holding contextual information. See (t (format org-texinfo-link-with-unknown-path-format desc))))) -;;; Menu +;;;; Menu -(defun org-texinfo-make-menu (info level) - "Create the menu for inclusion in the texifo document. +(defun org-texinfo-make-menu (scope info &optional master) + "Create the menu for inclusion in the Texinfo document. -INFO is the parsed buffer that contains the headlines. LEVEL -determines whether to make the main menu, or the detailed menu. +SCOPE is a headline or a full parse tree. INFO is the +communication channel, as a plist. -This is only used for generating the primary menu. In-Node menus -are generated directly." - (let ((parse (plist-get info :parse-tree))) - (cond - ;; Generate the main menu - ((eq level 'main) (org-texinfo--build-menu parse 1 info)) - ;; Generate the detailed (recursive) menu - ((eq level 'detailed) - ;; Requires recursion - ;;(org-texinfo--build-detailed-menu parse top info) - (org-texinfo--build-menu parse 1 info 'detailed))))) +When optional argument MASTER is non-nil, generate a master menu, +including detailed node listing." + (let ((menu (org-texinfo--build-menu scope info))) + (when (org-string-nw-p menu) + (org-element-normalize-string + (format + "@menu\n%s@end menu" + (concat menu + (when master + (let ((detailmenu + (org-texinfo--build-menu + scope info + (let ((toc-depth (plist-get info :with-toc))) + (if (wholenump toc-depth) toc-depth + org-texinfo-max-toc-depth))))) + (when (org-string-nw-p detailmenu) + (concat "\n@detailmenu\n" + "--- The Detailed Node Listing ---\n\n" + detailmenu + "@end detailmenu\n")))))))))) -;;; Paragraph +(defun org-texinfo--build-menu (scope info &optional level) + "Build menu for entries within SCOPE. +SCOPE is a headline or a full parse tree. INFO is a plist +containing contextual information. When optional argument LEVEL +is an integer, build the menu recursively, down to this depth." + (cond + ((not level) + (org-texinfo--format-entries (org-texinfo--menu-entries scope info) info)) + ((zerop level) nil) + (t + (org-element-normalize-string + (mapconcat + (lambda (h) + (let ((entries (org-texinfo--menu-entries h info))) + (when entries + (concat + (format "%s\n\n%s\n" + (org-export-data (org-export-get-alt-title h info) info) + (org-texinfo--format-entries entries info)) + (org-texinfo--build-menu h info (1- level)))))) + (org-texinfo--menu-entries scope info) ""))))) + +(defun org-texinfo--format-entries (entries info) + "Format all direct menu entries in SCOPE, as a string. +SCOPE is either a headline or a full Org document. INFO is +a plist containing contextual information." + (org-element-normalize-string + (mapconcat + (lambda (h) + (let* ((title (org-export-data + (org-export-get-alt-title h info) info)) + (node (org-texinfo--get-node h info)) + (entry (concat "* " title ":" + (if (string= title node) ":" + (concat " " node ". ")))) + (desc (org-element-property :DESCRIPTION h))) + (if (not desc) entry + (format (format "%%-%ds %%s" org-texinfo-node-description-column) + entry desc)))) + entries "\n"))) + +(defun org-texinfo--menu-entries (scope info) + "List direct children in SCOPE needing a menu entry. +SCOPE is a headline or a full parse tree. INFO is a plist +holding contextual information." + (let* ((cache (or (plist-get info :texinfo-entries-cache) + (plist-get (plist-put info :texinfo-entries-cache + (make-hash-table :test #'eq)) + :texinfo-entries-cache))) + (cached-entries (gethash scope cache 'no-cache))) + (if (not (eq cached-entries 'no-cache)) cached-entries + (puthash scope + (org-element-map (org-element-contents scope) 'headline + (lambda (h) + (and (not (org-not-nil (org-element-property :COPYING h))) + (not (org-element-property :footnote-section-p h)) + (not (org-export-low-level-p h info)) + h)) + info nil 'headline) + cache)))) + +;;;; Paragraph (defun org-texinfo-paragraph (paragraph contents info) "Transcode a PARAGRAPH element from Org to Texinfo. @@ -1310,32 +1107,27 @@ CONTENTS is the contents of the paragraph, as a string. INFO is the plist used as a communication channel." contents) -;;; Plain List +;;;; Plain List (defun org-texinfo-plain-list (plain-list contents info) "Transcode a PLAIN-LIST element from Org to Texinfo. CONTENTS is the contents of the list. INFO is a plist holding contextual information." (let* ((attr (org-export-read-attribute :attr_texinfo plain-list)) - (indic (or (plist-get attr :indic) - org-texinfo-def-table-markup)) - (type (org-element-property :type plain-list)) + (indic (or (plist-get attr :indic) org-texinfo-def-table-markup)) (table-type (plist-get attr :table-type)) - ;; Ensure valid texinfo table type. - (table-type (if (member table-type '("ftable" "vtable")) table-type - "table")) + (type (org-element-property :type plain-list)) (list-type (cond ((eq type 'ordered) "enumerate") ((eq type 'unordered) "itemize") - ((eq type 'descriptive) table-type)))) - (format "@%s%s\n@end %s" - (if (eq type 'descriptive) - (concat list-type " " indic) - list-type) + ((member table-type '("ftable" "vtable")) table-type) + (t "table")))) + (format "@%s\n%s@end %s" + (if (eq type 'descriptive) (concat list-type " " indic) list-type) contents list-type))) -;;; Plain Text +;;;; Plain Text (defun org-texinfo-plain-text (text info) "Transcode a TEXT string from Org to Texinfo. @@ -1366,7 +1158,7 @@ contextual information." ;; Return value. output)) -;;; Planning +;;;; Planning (defun org-texinfo-planning (planning contents info) "Transcode a PLANNING element from Org to Texinfo. @@ -1402,7 +1194,7 @@ information." " ") "@*")) -;;; Property Drawer +;;;; Property Drawer (defun org-texinfo-property-drawer (property-drawer contents info) "Transcode a PROPERTY-DRAWER element from Org to Texinfo. @@ -1412,7 +1204,7 @@ information." ;; lines nonetheless. "") -;;; Quote Block +;;;; Quote Block (defun org-texinfo-quote-block (quote-block contents info) "Transcode a QUOTE-BLOCK element from Org to Texinfo. @@ -1424,7 +1216,7 @@ holding contextual information." (format " %s" title))))) (format "%s\n%s@end quotation" start-quote contents))) -;;; Quote Section +;;;; Quote Section (defun org-texinfo-quote-section (quote-section contents info) "Transcode a QUOTE-SECTION element from Org to Texinfo. @@ -1433,7 +1225,7 @@ CONTENTS is nil. INFO is a plist holding contextual information." (org-element-property :value quote-section)))) (when value (format "@verbatim\n%s@end verbatim" value)))) -;;; Radio Target +;;;; Radio Target (defun org-texinfo-radio-target (radio-target text info) "Transcode a RADIO-TARGET object from Org to Texinfo. @@ -1444,15 +1236,17 @@ contextual information." (org-element-property :value radio-target)) text)) -;;; Section +;;;; Section (defun org-texinfo-section (section contents info) "Transcode a SECTION element from Org to Texinfo. CONTENTS holds the contents of the section. INFO is a plist holding contextual information." - contents) + (concat contents + (let ((parent (org-export-get-parent-headline section))) + (and parent (org-texinfo-make-menu parent info))))) -;;; Special Block +;;;; Special Block (defun org-texinfo-special-block (special-block contents info) "Transcode a SPECIAL-BLOCK element from Org to Texinfo. @@ -1460,34 +1254,26 @@ CONTENTS holds the contents of the block. INFO is a plist used as a communication channel." contents) -;;; Src Block +;;;; Src Block (defun org-texinfo-src-block (src-block contents info) "Transcode a SRC-BLOCK element from Org to Texinfo. CONTENTS holds the contents of the item. INFO is a plist holding contextual information." - (let* ((lang (org-element-property :language src-block)) - (lisp-p (string-match-p "lisp" lang)) - (src-contents (org-texinfo--sanitize-content - (org-export-format-code-default src-block info)))) - (cond - ;; Case 1. Lisp Block - (lisp-p - (format "@lisp\n%s@end lisp" - src-contents)) - ;; Case 2. Other blocks - (t - (format "@example\n%s@end example" - src-contents))))) + (let ((lispp (org-string-match-p "lisp" + (org-element-property :language src-block))) + (code (org-texinfo--sanitize-content + (org-export-format-code-default src-block info)))) + (format (if lispp "@lisp\n%s@end lisp" "@example\n%s@end example") code))) -;;; Statistics Cookie +;;;; Statistics Cookie (defun org-texinfo-statistics-cookie (statistics-cookie contents info) "Transcode a STATISTICS-COOKIE object from Org to Texinfo. CONTENTS is nil. INFO is a plist holding contextual information." (org-element-property :value statistics-cookie)) -;;; Subscript +;;;; Subscript (defun org-texinfo-subscript (subscript contents info) "Transcode a SUBSCRIPT object from Org to Texinfo. @@ -1495,7 +1281,7 @@ CONTENTS is the contents of the object. INFO is a plist holding contextual information." (format "@math{_%s}" contents)) -;;; Superscript +;;;; Superscript (defun org-texinfo-superscript (superscript contents info) "Transcode a SUPERSCRIPT object from Org to Texinfo. @@ -1503,96 +1289,47 @@ CONTENTS is the contents of the object. INFO is a plist holding contextual information." (format "@math{^%s}" contents)) -;;; Table -;; -;; `org-texinfo-table' is the entry point for table transcoding. It -;; takes care of tables with a "verbatim" attribute. Otherwise, it -;; delegates the job to either `org-texinfo-table--table.el-table' or -;; `org-texinfo-table--org-table' functions, depending of the type of -;; the table. -;; -;; `org-texinfo-table--align-string' is a subroutine used to build -;; alignment string for Org tables. +;;;; Table (defun org-texinfo-table (table contents info) "Transcode a TABLE element from Org to Texinfo. CONTENTS is the contents of the table. INFO is a plist holding contextual information." - (cond - ;; Case 1: verbatim table. - ((or org-texinfo-tables-verbatim - (let ((attr (mapconcat 'identity - (org-element-property :attr_latex table) - " "))) - (and attr (string-match "\\" attr)))) - (format "@verbatim \n%s\n@end verbatim" - ;; Re-create table, without affiliated keywords. - (org-trim - (org-element-interpret-data - `(table nil ,@(org-element-contents table)))))) - ;; Case 2: table.el table. Convert it using appropriate tools. - ((eq (org-element-property :type table) 'table.el) - (org-texinfo-table--table.el-table table contents info)) - ;; Case 3: Standard table. - (t (org-texinfo-table--org-table table contents info)))) + (if (eq (org-element-property :type table) 'table.el) + (format "@verbatim\n%s@end verbatim" + (org-element-normalize-string + (org-element-property :value table))) + (let* ((col-width (org-export-read-attribute :attr_texinfo table :columns)) + (columns + (if col-width (format "@columnfractions %s" col-width) + (org-texinfo-table-column-widths table info)))) + (format "@multitable %s\n%s@end multitable" + columns + contents)))) (defun org-texinfo-table-column-widths (table info) "Determine the largest table cell in each column to process alignment. - TABLE is the table element to transcode. INFO is a plist used as a communication channel." - (let* ((rows (org-element-map table 'table-row 'identity info)) - (collected (loop for row in rows collect - (org-element-map row 'table-cell 'identity info))) - (number-cells (length (car collected))) - cells counts) - (loop for row in collected do - (push (mapcar (lambda (ref) - (let* ((start (org-element-property :contents-begin ref)) - (end (org-element-property :contents-end ref)) - (length (- end start))) - length)) row) cells)) - (setq cells (org-remove-if 'null cells)) - (push (loop for count from 0 to (- number-cells 1) collect - (loop for item in cells collect - (nth count item))) counts) - (mapconcat (lambda (size) - (make-string size ?a)) (mapcar (lambda (ref) - (apply 'max `(,@ref))) (car counts)) - "} {"))) + (let ((widths (make-vector (cdr (org-export-table-dimensions table info)) 0))) + (org-element-map table 'table-row + (lambda (row) + (let ((idx 0)) + (org-element-map row 'table-cell + (lambda (cell) + ;; Length of the cell in the original buffer is only an + ;; approximation of the length of the cell in the + ;; output. It can sometimes fail (e.g. it considers + ;; "/a/" being larger than "ab"). + (let ((w (- (org-element-property :contents-end cell) + (org-element-property :contents-begin cell)))) + (aset widths idx (max w (aref widths idx)))) + (incf idx)) + info))) + info) + (format "{%s}" (mapconcat (lambda (w) (make-string w ?a)) widths "} {")))) -(defun org-texinfo-table--org-table (table contents info) - "Return appropriate Texinfo code for an Org table. - -TABLE is the table type element to transcode. CONTENTS is its -contents, as a string. INFO is a plist used as a communication -channel. - -This function assumes TABLE has `org' as its `:type' attribute." - (let* ((attr (org-export-read-attribute :attr_texinfo table)) - (col-width (plist-get attr :columns)) - (columns (if col-width - (format "@columnfractions %s" - col-width) - (format "{%s}" - (org-texinfo-table-column-widths - table info))))) - ;; Prepare the final format string for the table. - (cond - ;; Longtable. - ;; Others. - (t (concat - (format "@multitable %s\n%s@end multitable" - columns - contents)))))) - -(defun org-texinfo-table--table.el-table (table contents info) - "Returns nothing. - -Rather than return an invalid table, nothing is returned." - 'nil) - -;;; Table Cell +;;;; Table Cell (defun org-texinfo-table-cell (table-cell contents info) "Transcode a TABLE-CELL element from Org to Texinfo. @@ -1609,7 +1346,7 @@ a communication channel." contents) (when (org-export-get-next-element table-cell info) "\n@tab "))) -;;; Table Row +;;;; Table Row (defun org-texinfo-table-row (table-row contents info) "Transcode a TABLE-ROW element from Org to Texinfo. @@ -1618,21 +1355,15 @@ a communication channel." ;; Rules are ignored since table separators are deduced from ;; borders of the current row. (when (eq (org-element-property :type table-row) 'standard) - (let ((rowgroup-tag - (cond - ;; Case 1: Belongs to second or subsequent rowgroup. - ((not (= 1 (org-export-table-row-group table-row info))) - "@item ") - ;; Case 2: Row is from first rowgroup. Table has >=1 rowgroups. - ((org-export-table-has-header-p - (org-export-get-parent-table table-row) info) - "@headitem ") - ;; Case 3: Row is from first and only row group. - (t "@item ")))) - (when (eq (org-element-property :type table-row) 'standard) - (concat rowgroup-tag contents "\n"))))) + (let ((rowgroup-tag + (if (and (= 1 (org-export-table-row-group table-row info)) + (org-export-table-has-header-p + (org-export-get-parent-table table-row) info)) + "@headitem " + "@item "))) + (concat rowgroup-tag contents "\n")))) -;;; Target +;;;; Target (defun org-texinfo-target (target contents info) "Transcode a TARGET object from Org to Texinfo. @@ -1641,7 +1372,7 @@ information." (format "@anchor{%s}" (org-export-solidify-link-text (org-element-property :value target)))) -;;; Timestamp +;;;; Timestamp (defun org-texinfo-timestamp (timestamp contents info) "Transcode a TIMESTAMP object from Org to Texinfo. @@ -1656,7 +1387,7 @@ information." (format org-texinfo-inactive-timestamp-format value)) (t (format org-texinfo-diary-timestamp-format value))))) -;;; Verbatim +;;;; Verbatim (defun org-texinfo-verbatim (verbatim contents info) "Transcode a VERBATIM object from Org to Texinfo. @@ -1664,26 +1395,13 @@ CONTENTS is nil. INFO is a plist used as a communication channel." (org-texinfo--text-markup (org-element-property :value verbatim) 'verbatim)) -;;; Verse Block +;;;; Verse Block (defun org-texinfo-verse-block (verse-block contents info) "Transcode a VERSE-BLOCK element from Org to Texinfo. CONTENTS is verse block contents. INFO is a plist holding contextual information." - ;; In a verse environment, add a line break to each newline - ;; character and change each white space at beginning of a line - ;; into a space of 1 em. Also change each blank line with - ;; a vertical space of 1 em. - (progn - (setq contents (replace-regexp-in-string - "^ *\\\\\\\\$" "\\\\vspace*{1em}" - (replace-regexp-in-string - "\\(\\\\\\\\\\)?[ \t]*\n" " \\\\\\\\\n" contents))) - (while (string-match "^[ \t]+" contents) - (let ((new-str (format "\\hspace*{%dem}" - (length (match-string 0 contents))))) - (setq contents (replace-match new-str nil t contents)))) - (format "\\begin{verse}\n%s\\end{verse}" contents))) + (format "@display\n%s@end display" contents)) ;;; Interactive functions @@ -1797,29 +1515,21 @@ Return INFO file name or an error if it couldn't be produced." errors) (message (format "Processing Texinfo file %s..." file)) (save-window-excursion - (cond - ;; A function is provided: Apply it. - ((functionp org-texinfo-info-process) - (funcall org-texinfo-info-process (shell-quote-argument file))) - ;; A list is provided: Replace %b, %f and %o with appropriate - ;; values in each command before applying it. Output is - ;; redirected to "*Org INFO Texinfo Output*" buffer. - ((consp org-texinfo-info-process) - (let ((outbuf (get-buffer-create "*Org INFO Texinfo Output*"))) - (mapc - (lambda (command) - (shell-command - (replace-regexp-in-string - "%b" (shell-quote-argument base-name) - (replace-regexp-in-string - "%f" (shell-quote-argument full-name) - (replace-regexp-in-string - "%o" (shell-quote-argument out-dir) command t t) t t) t t) - outbuf)) - org-texinfo-info-process) - ;; Collect standard errors from output buffer. - (setq errors (org-texinfo-collect-errors outbuf)))) - (t (error "No valid command to process to Info"))) + ;; Replace %b, %f and %o with appropriate values in each command + ;; before applying it. Output is redirected to "*Org INFO + ;; Texinfo Output*" buffer. + (let ((outbuf (get-buffer-create "*Org INFO Texinfo Output*"))) + (dolist (command org-texinfo-info-process) + (shell-command + (replace-regexp-in-string + "%b" (shell-quote-argument base-name) + (replace-regexp-in-string + "%f" (shell-quote-argument full-name) + (replace-regexp-in-string + "%o" (shell-quote-argument out-dir) command t t) t t) t t) + outbuf)) + ;; Collect standard errors from output buffer. + (setq errors (org-texinfo-collect-errors outbuf))) (let ((infofile (concat out-dir base-name ".info"))) ;; Check for process failure. Provide collected errors if ;; possible. diff --git a/lisp/org/ox.el b/lisp/org/ox.el index faa2e0541b4..1327ae409ed 100644 --- a/lisp/org/ox.el +++ b/lisp/org/ox.el @@ -814,7 +814,7 @@ This variable can be either set to `buffer' or `subtree'." (defcustom org-export-show-temporary-export-buffer t "Non-nil means show buffer after exporting to temp buffer. -When Org exports to a file, the buffer visiting that file is ever +When Org exports to a file, the buffer visiting that file is never shown, but remains buried. However, when exporting to a temporary buffer, that buffer is popped up in a second window. When this variable is nil, the buffer remains buried also in @@ -1317,6 +1317,10 @@ The back-end could then be called with, for example: ;; - category :: tree ;; - type :: list of elements and objects ;; +;; + `:input-buffer' :: Name of input buffer. +;; - category :: option +;; - type :: string +;; ;; + `:input-file' :: Full path to input file, if any. ;; - category :: option ;; - type :: string or nil @@ -1329,6 +1333,10 @@ The back-end could then be called with, for example: ;; - category :: option ;; - type :: string ;; +;; + `:output-file' :: Full path to output file, if any. +;; - category :: option +;; - type :: string or nil +;; ;; + `:parse-tree' :: Whole parse tree, available at any time during ;; transcoding. ;; - category :: option @@ -1765,17 +1773,19 @@ Assume buffer is in Org mode. Narrowing, if any, is ignored." (when (stringp value) (setq plist (plist-put plist property - (org-element-parse-secondary-string - value (org-element-restriction 'keyword)))))))))) + (or (org-element-parse-secondary-string + value (org-element-restriction 'keyword)) + ;; When TITLE keyword sets an empty + ;; string, make sure it doesn't + ;; appear as nil in the plist. + (and (eq property :title) "")))))))))) (defun org-export--get-buffer-attributes () "Return properties related to buffer attributes, as a plist." ;; Store full path of input file name, or nil. For internal use. (let ((visited-file (buffer-file-name (buffer-base-buffer)))) (list :input-file visited-file - :title (if (not visited-file) (buffer-name (buffer-base-buffer)) - (file-name-sans-extension - (file-name-nondirectory visited-file)))))) + :input-buffer (buffer-name (buffer-base-buffer))))) (defun org-export--get-global-options (&optional backend) "Return global export options as a plist. @@ -1788,23 +1798,22 @@ process." (all (append (and backend (org-export-get-all-options backend)) org-export-options-alist))) (dolist (cell all plist) - (let ((prop (car cell)) - (default-value (nth 3 cell))) - (unless (or (not default-value) (plist-member plist prop)) + (let ((prop (car cell))) + (unless (plist-member plist prop) (setq plist (plist-put plist prop - ;; Eval default value provided. If keyword is + ;; Evaluate default value provided. If keyword is ;; a member of `org-element-document-properties', ;; parse it as a secondary string before storing it. (let ((value (eval (nth 3 cell)))) - (if (not (stringp value)) value - (let ((keyword (nth 1 cell))) - (if (member keyword org-element-document-properties) - (org-element-parse-secondary-string - value (org-element-restriction 'keyword)) - value))))))))))) + (if (and (stringp value) + (member (nth 1 cell) + org-element-document-properties)) + (org-element-parse-secondary-string + value (org-element-restriction 'keyword)) + value))))))))) (defun org-export--list-bound-variables () "Return variables bound from BIND keywords in current buffer. @@ -1843,6 +1852,13 @@ an alist where associations are (VARIABLE-NAME VALUE)." ;; Return value in appropriate order of appearance. (nreverse (funcall collect-bind nil nil))))) +;; defsubst org-export-get-parent must be defined before first use, +;; was originally defined in the topology section + +(defsubst org-export-get-parent (blob) + "Return BLOB parent or nil. +BLOB is the element or object considered." + (org-element-property :parent blob)) ;;;; Tree Properties ;; @@ -2146,9 +2162,8 @@ INFO is a plist containing export directives." DATA is a parse tree, an element or an object or a secondary string. INFO is a plist holding export options. -Return transcoded string." - (let ((memo (gethash data (plist-get info :exported-data) 'no-memo))) - (if (not (eq memo 'no-memo)) memo +Return a string." + (or (gethash data (plist-get info :exported-data)) (let* ((type (org-element-type data)) (results (cond @@ -2174,9 +2189,9 @@ Return transcoded string." ;; Secondary string. ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) - ;; Element/Object without contents or, as a special case, - ;; headline with archive tag and archived trees restricted - ;; to title only. + ;; Element/Object without contents or, as a special + ;; case, headline with archive tag and archived trees + ;; restricted to title only. ((or (not (org-element-contents data)) (and (eq type 'headline) (eq (plist-get info :with-archived-trees) 'headline) @@ -2201,16 +2216,16 @@ Return transcoded string." (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data - ;; Elements directly containing objects - ;; must have their indentation normalized - ;; first. + ;; Elements directly containing + ;; objects must have their indentation + ;; normalized first. (org-element-normalize-contents data - ;; When normalizing contents of the first - ;; paragraph in an item or a footnote - ;; definition, ignore first line's - ;; indentation: there is none and it - ;; might be misleading. + ;; When normalizing contents of the + ;; first paragraph in an item or + ;; a footnote definition, ignore + ;; first line's indentation: there is + ;; none and it might be misleading. (when (eq type 'paragraph) (let ((parent (org-export-get-parent data))) (and @@ -2227,10 +2242,10 @@ Return transcoded string." (puthash data (cond - ((not results) nil) + ((not results) "") ((memq type '(org-data plain-text nil)) results) - ;; Append the same white space between elements or objects as in - ;; the original buffer, and call appropriate filters. + ;; Append the same white space between elements or objects + ;; as in the original buffer, and call appropriate filters. (t (let ((results (org-export-filter-apply-functions @@ -2240,10 +2255,10 @@ Return transcoded string." (if (memq type org-element-all-elements) (concat (org-element-normalize-string results) (make-string post-blank ?\n)) - (concat results (make-string post-blank ? )))) + (concat results (make-string post-blank ?\s)))) info))) results))) - (plist-get info :exported-data)))))) + (plist-get info :exported-data))))) (defun org-export-data-with-backend (data backend info) "Convert DATA into BACKEND format. @@ -3011,6 +3026,14 @@ Return code as a string." (org-export-install-filters (org-combine-plists info (org-export-get-environment backend subtreep ext-plist)))) + ;; Special case: provide original file name or buffer name as + ;; default value for :title property. + (unless (plist-get info :title) + (plist-put + info :title + (let ((file (plist-get info :input-file))) + (if file (file-name-sans-extension (file-name-nondirectory file)) + (plist-get info :input-buffer))))) ;; Expand export-specific set of macros: {{{author}}}, ;; {{{date}}}, {{{email}}} and {{{title}}}. It must be done ;; once regular macros have been expanded, since document @@ -5106,11 +5129,7 @@ Return the new string." ;; `org-export-get-genealogy' returns the full genealogy of a given ;; element or object, from closest parent to full parse tree. -(defsubst org-export-get-parent (blob) - "Return BLOB parent or nil. -BLOB is the element or object considered." - (org-element-property :parent blob)) - +;; defsubst org-export-get-parent must be defined before first use (defun org-export-get-genealogy (blob) "Return full genealogy relative to a given element or object. @@ -5460,8 +5479,9 @@ to `:default' encoding. If it fails, return S." (defmacro org-export-async-start (fun &rest body) "Call function FUN on the results returned by BODY evaluation. -BODY evaluation happens in an asynchronous process, from a buffer -which is an exact copy of the current one. +FUN is an anonymous function of one argument. BODY evaluation +happens in an asynchronous process, from a buffer which is an +exact copy of the current one. Use `org-export-add-to-stack' in FUN in order to register results in the stack. @@ -5638,7 +5658,8 @@ The function returns either a file name returned by POST-PROCESS, or FILE." (declare (indent 2)) (if (not (file-writable-p file)) (error "Output file not writable") - (let ((encoding (or org-export-coding-system buffer-file-coding-system))) + (let ((ext-plist (org-combine-plists `(:output-file ,file) ext-plist)) + (encoding (or org-export-coding-system buffer-file-coding-system))) (if async (org-export-async-start `(lambda (file) diff --git a/lisp/outline.el b/lisp/outline.el index c7cad31f572..bb563410dba 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -645,31 +645,35 @@ the match data is set appropriately." (defun outline-move-subtree-down (&optional arg) "Move the current subtree down past ARG headlines of the same level." (interactive "p") - (let ((movfunc (if (> arg 0) 'outline-get-next-sibling - 'outline-get-last-sibling)) - (ins-point (make-marker)) - (cnt (abs arg)) - beg end folded) - ;; Select the tree - (outline-back-to-heading) - (setq beg (point)) - (save-match-data - (save-excursion (outline-end-of-heading) - (setq folded (outline-invisible-p))) - (outline-end-of-subtree)) - (if (= (char-after) ?\n) (forward-char 1)) - (setq end (point)) - ;; Find insertion point, with error handling + (outline-back-to-heading) + (let* ((movfunc (if (> arg 0) 'outline-get-next-sibling + 'outline-get-last-sibling)) + ;; Find the end of the subtree to be moved as well as the point to + ;; move it to, adding a newline if necessary, to ensure these points + ;; are at bol on the line below the subtree. + (end-point-func (lambda () + (outline-end-of-subtree) + (if (eq (char-after) ?\n) (forward-char 1) + (if (and (eobp) (not (bolp))) (insert "\n"))) + (point))) + (beg (point)) + (folded (save-match-data + (outline-end-of-heading) + (outline-invisible-p))) + (end (save-match-data + (funcall end-point-func))) + (ins-point (make-marker)) + (cnt (abs arg))) + ;; Find insertion point, with error handling. (goto-char beg) (while (> cnt 0) (or (funcall movfunc) (progn (goto-char beg) - (error "Cannot move past superior level"))) + (user-error "Cannot move past superior level"))) (setq cnt (1- cnt))) (if (> arg 0) - ;; Moving forward - still need to move over subtree - (progn (outline-end-of-subtree) - (if (= (char-after) ?\n) (forward-char 1)))) + ;; Moving forward - still need to move over subtree. + (funcall end-point-func)) (move-marker ins-point (point)) (insert (delete-and-extract-region beg end)) (goto-char ins-point) diff --git a/lisp/paren.el b/lisp/paren.el index b6b08016ab7..0a34a6f5b5d 100644 --- a/lisp/paren.el +++ b/lisp/paren.el @@ -43,8 +43,7 @@ Valid styles are `parenthesis' (meaning show the matching paren), `expression' (meaning show the entire expression enclosed by the paren) and `mixed' (meaning show the matching paren if it is visible, and the expression otherwise)." - :type '(choice (const parenthesis) (const expression) (const mixed)) - :group 'paren-showing) + :type '(choice (const parenthesis) (const expression) (const mixed))) (defcustom show-paren-delay 0.125 "Time in seconds to delay before showing a matching paren. @@ -57,28 +56,39 @@ active, you must toggle the mode off and on again for this to take effect." (set sym val) (show-paren-mode -1) (set sym val) - (show-paren-mode 1))) - :group 'paren-showing) + (show-paren-mode 1)))) (defcustom show-paren-priority 1000 "Priority of paren highlighting overlays." - :type 'integer - :group 'paren-showing + :type 'integer :version "21.1") (defcustom show-paren-ring-bell-on-mismatch nil "If non-nil, beep if mismatched paren is detected." :type 'boolean - :group 'paren-showing :version "20.3") +(defcustom show-paren-when-point-inside-paren nil + "If non-nil, show parens when point is just inside one. +This will only be done when point isn't also just outside a paren." + :type 'boolean + :version "25.1") + +(defcustom show-paren-when-point-in-periphery nil + "If non-nil, show parens when point is in the line's periphery. +The periphery is at the beginning or end of a line or in any +whitespace there." + :type 'boolean + :version "25.1") + (define-obsolete-face-alias 'show-paren-match-face 'show-paren-match "22.1") (define-obsolete-face-alias 'show-paren-mismatch-face 'show-paren-mismatch "22.1") -(defvar show-paren-highlight-openparen t - "Non-nil turns on openparen highlighting when matching forward.") +(defcustom show-paren-highlight-openparen t + "Non-nil turns on openparen highlighting when matching forward." + :type 'boolean) (defvar show-paren--idle-timer nil) (defvar show-paren--overlay @@ -112,76 +122,113 @@ matching parenthesis is highlighted in `show-paren-style' after (delete-overlay show-paren--overlay) (delete-overlay show-paren--overlay-1))) +(defun show-paren--unescaped-p (pos) + "Determine whether the paren after POS is unescaped." + (save-excursion + (goto-char pos) + (= (logand (skip-syntax-backward "/\\") 1) 0))) + +(defun show-paren--categorize-paren (pos) + "Determine whether the character after POS has paren syntax, +and if so, return a cons (DIR . OUTSIDE), where DIR is 1 for an +open paren, -1 for a close paren, and OUTSIDE is the buffer +position of the outside of the paren. If the character isn't a +paren, or it is an escaped paren, return nil." + (cond + ((and (eq (syntax-class (syntax-after pos)) 4) + (show-paren--unescaped-p pos)) + (cons 1 pos)) + ((and (eq (syntax-class (syntax-after pos)) 5) + (show-paren--unescaped-p pos)) + (cons -1 (1+ pos))))) + +(defun show-paren--locate-near-paren () + "Locate an unescaped paren \"near\" point to show. +If one is found, return the cons (DIR . OUTSIDE), where DIR is 1 +for an open paren, -1 for a close paren, and OUTSIDE is the buffer +position of the outside of the paren. Otherwise return nil." + (let* ((ind-pos (save-excursion (back-to-indentation) (point))) + (eol-pos + (save-excursion + (end-of-line) (skip-chars-backward " \t" ind-pos) (point))) + (before (show-paren--categorize-paren (1- (point)))) + (after (show-paren--categorize-paren (point)))) + (cond + ;; Point is immediately outside a paren. + ((eq (car before) -1) before) + ((eq (car after) 1) after) + ;; Point is immediately inside a paren. + ((and show-paren-when-point-inside-paren before)) + ((and show-paren-when-point-inside-paren after)) + ;; Point is in the whitespace before the code. + ((and show-paren-when-point-in-periphery + (<= (point) ind-pos)) + (or (show-paren--categorize-paren ind-pos) + (show-paren--categorize-paren (1- eol-pos)))) + ;; Point is in the whitespace after the code. + ((and show-paren-when-point-in-periphery + (>= (point) eol-pos)) + (show-paren--categorize-paren (1- eol-pos)))))) + (defvar show-paren-data-function #'show-paren--default - "Function to find the opener/closer at point and its match. + "Function to find the opener/closer \"near\" point and its match. The function is called with no argument and should return either nil -if there's no opener/closer at point, or a list of the form +if there's no opener/closer near point, or a list of the form \(HERE-BEG HERE-END THERE-BEG THERE-END MISMATCH) -Where HERE-BEG..HERE-END is expected to be around point.") +Where HERE-BEG..HERE-END is expected to be near point.") (defun show-paren--default () - (let* ((oldpos (point)) - (dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1) - ((eq (syntax-class (syntax-after (point))) 4) 1))) - (unescaped - (when dir - ;; Verify an even number of quoting characters precede the paren. - ;; Follow the same logic as in `blink-matching-open'. - (= (if (= dir -1) 1 0) - (logand 1 (- (point) - (save-excursion - (if (= dir -1) (forward-char -1)) - (skip-syntax-backward "/\\") - (point))))))) - (here-beg (if (eq dir 1) (point) (1- (point)))) - (here-end (if (eq dir 1) (1+ (point)) (point))) - pos mismatch) + (let* ((temp (show-paren--locate-near-paren)) + (dir (car temp)) + (outside (cdr temp)) + pos mismatch here-beg here-end) ;; ;; Find the other end of the sexp. - (when unescaped - (save-excursion - (save-restriction - ;; Determine the range within which to look for a match. - (when blink-matching-paren-distance - (narrow-to-region - (max (point-min) (- (point) blink-matching-paren-distance)) - (min (point-max) (+ (point) blink-matching-paren-distance)))) - ;; Scan across one sexp within that range. - ;; Errors or nil mean there is a mismatch. - (condition-case () - (setq pos (scan-sexps (point) dir)) - (error (setq pos t mismatch t))) - ;; Move back the other way and verify we get back to the - ;; starting point. If not, these two parens don't really match. - ;; Maybe the one at point is escaped and doesn't really count, - ;; or one is inside a comment. - (when (integerp pos) - (unless (condition-case () - (eq (point) (scan-sexps pos (- dir))) - (error nil)) - (setq pos nil))) - ;; If found a "matching" paren, see if it is the right - ;; kind of paren to match the one we started at. - (if (not (integerp pos)) - (if mismatch (list here-beg here-end nil nil t)) - (let ((beg (min pos oldpos)) (end (max pos oldpos))) - (unless (eq (syntax-class (syntax-after beg)) 8) - (setq mismatch - (not (or (eq (char-before end) - ;; This can give nil. - (cdr (syntax-after beg))) - (eq (char-after beg) - ;; This can give nil. - (cdr (syntax-after (1- end)))) - ;; The cdr might hold a new paren-class - ;; info rather than a matching-char info, - ;; in which case the two CDRs should match. - (eq (cdr (syntax-after (1- end))) - (cdr (syntax-after beg))))))) - (list here-beg here-end - (if (= dir 1) (1- pos) pos) - (if (= dir 1) pos (1+ pos)) - mismatch)))))))) + (when dir + (setq here-beg (if (eq dir 1) outside (1- outside)) + here-end (if (eq dir 1) (1+ outside) outside)) + (save-restriction + ;; Determine the range within which to look for a match. + (when blink-matching-paren-distance + (narrow-to-region + (max (point-min) (- (point) blink-matching-paren-distance)) + (min (point-max) (+ (point) blink-matching-paren-distance)))) + ;; Scan across one sexp within that range. + ;; Errors or nil mean there is a mismatch. + (condition-case () + (setq pos (scan-sexps outside dir)) + (error (setq pos t mismatch t))) + ;; Move back the other way and verify we get back to the + ;; starting point. If not, these two parens don't really match. + ;; Maybe the one at point is escaped and doesn't really count, + ;; or one is inside a comment. + (when (integerp pos) + (unless (condition-case () + (eq outside (scan-sexps pos (- dir))) + (error nil)) + (setq pos nil))) + ;; If found a "matching" paren, see if it is the right + ;; kind of paren to match the one we started at. + (if (not (integerp pos)) + (if mismatch (list here-beg here-end nil nil t)) + (let ((beg (min pos outside)) (end (max pos outside))) + (unless (eq (syntax-class (syntax-after beg)) 8) + (setq mismatch + (not (or (eq (char-before end) + ;; This can give nil. + (cdr (syntax-after beg))) + (eq (char-after beg) + ;; This can give nil. + (cdr (syntax-after (1- end)))) + ;; The cdr might hold a new paren-class + ;; info rather than a matching-char info, + ;; in which case the two CDRs should match. + (eq (cdr (syntax-after (1- end))) + (cdr (syntax-after beg))))))) + (list here-beg here-end + (if (= dir 1) (1- pos) pos) + (if (= dir 1) pos (1+ pos)) + mismatch))))))) ;; Find the place to show, if there is one, ;; and show it until input arrives. @@ -215,7 +262,8 @@ Where HERE-BEG..HERE-END is expected to be around point.") ;; Otherwise, turn off any such highlighting. (if (or (not here-beg) (and (not show-paren-highlight-openparen) - (> here-end (point)) + (> here-end (point)) + (<= here-beg (point)) (integerp there-beg))) (delete-overlay show-paren--overlay-1) (move-overlay show-paren--overlay-1 @@ -234,7 +282,7 @@ Where HERE-BEG..HERE-END is expected to be around point.") (1- there-end) (1+ there-beg)))) (not (pos-visible-in-window-p closest))))) (move-overlay show-paren--overlay - (point) + (if (< there-beg here-beg) here-end here-beg) (if (< there-beg here-beg) there-beg there-end) (current-buffer)) (move-overlay show-paren--overlay diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el index bcab1f7cb5b..3d769b1fffa 100644 --- a/lisp/pcmpl-gnu.el +++ b/lisp/pcmpl-gnu.el @@ -323,8 +323,8 @@ (let ((file (pcomplete-arg 1))) (completion-table-dynamic (lambda (_string) - (pcmpl-gnu-with-file-buffer file - (mapcar #'tar-header-name tar-parse-info))))) + (pcmpl-gnu-with-file-buffer + file (mapcar #'tar-header-name tar-parse-info))))) (pcomplete-entries)) nil 'identity)))) diff --git a/lisp/play/.gitignore b/lisp/play/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/play/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/play/morse.el b/lisp/play/morse.el index 5394d3f283e..da593d778f1 100644 --- a/lisp/play/morse.el +++ b/lisp/play/morse.el @@ -146,7 +146,7 @@ "NATO phonetic alphabet. See ''International Code of Signals'' (INTERCO), United States Edition, 1969 Edition (Revised 2003) available from National -Geospatial-Intelligence Agency at http://www.nga.mil/") +Geospatial-Intelligence Agency at URL `http://www.nga.mil/'") ;;;###autoload (defun morse-region (beg end) diff --git a/lisp/printing.el b/lisp/printing.el index 39da132d64e..101c8e2a8e7 100644 --- a/lisp/printing.el +++ b/lisp/printing.el @@ -3172,7 +3172,7 @@ See `pr-ps-printer-alist'.") (defmacro pr-save-file-modes (&rest body) "Execute BODY with file permissions temporarily set to `pr-file-modes'." - (declare (obsolete with-file-modes "24.5")) + (declare (obsolete with-file-modes "25.1")) `(with-file-modes pr-file-modes ,@body)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/lisp/proced.el b/lisp/proced.el index 592c0d066c7..188b8c354c6 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -49,8 +49,6 @@ ;;; Code: -(require 'time-date) ; for `with-decoded-time-value' - (defgroup proced nil "Proced mode." :group 'processes @@ -1186,17 +1184,8 @@ Return nil otherwise." (defun proced-time-lessp (t1 t2) "Return t if time value T1 is less than time value T2. Return `equal' if T1 equals T2. Return nil otherwise." - (with-decoded-time-value ((high1 low1 micro1 pico1 type1 t1) - (high2 low2 micro2 pico2 type2 t2)) - (cond ((< high1 high2)) - ((< high2 high1) nil) - ((< low1 low2)) - ((< low2 low1) nil) - ((< micro1 micro2)) - ((< micro2 micro1) nil) - ((< pico1 pico2)) - ((< pico2 pico1) nil) - (t 'equal)))) + (or (time-less-p t1 t2) + (if (not (time-less-p t2 t1)) 'equal))) ;;; Sorting diff --git a/lisp/progmodes/.gitignore b/lisp/progmodes/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/progmodes/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el index 68b6c872d3f..0d07d573155 100644 --- a/lisp/progmodes/ada-mode.el +++ b/lisp/progmodes/ada-mode.el @@ -31,11 +31,6 @@ ;; independent from the GNU Ada compiler GNAT, distributed by Ada ;; Core Technologies. All the other files rely heavily on features ;; provided only by GNAT. -;; -;; Note: this mode will not work with Emacs 19. If you are on a VMS -;; system, where the latest version of Emacs is 19.28, you will need -;; another file, called ada-vms.el, that provides some required -;; functions. ;;; Usage: ;; Emacs should enter Ada mode automatically when you load an Ada file. diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el index 7cad848fda8..4bc37451e6e 100644 --- a/lisp/progmodes/ada-xref.el +++ b/lisp/progmodes/ada-xref.el @@ -651,12 +651,6 @@ Call `ada-require-project-file' first to ensure a project exists." (find-file (car (cdr pos))) (goto-char (car pos))))) -(defun ada-convert-file-name (name) - "Convert from NAME to a name that can be used by the compilation commands. -This is overridden on VMS to convert from VMS filenames to Unix filenames." - name) -;; FIXME: use convert-standard-filename instead - (defun ada-set-default-project-file (file) "Set FILE as the current project file." (interactive "fProject file:") @@ -1465,7 +1459,7 @@ by replacing the file extension with `.ali'." (get-file-buffer ali-file-name)) (kill-buffer (get-file-buffer ali-file-name))) - (let* ((name (ada-convert-file-name file)) + (let* ((name (convert-standard-filename file)) (body-name (or (ada-get-body-name name) name))) ;; Always recompile the body when we can. We thus temporarily switch to a diff --git a/lisp/progmodes/bat-mode.el b/lisp/progmodes/bat-mode.el index e328cfa0d8b..266c24adcca 100644 --- a/lisp/progmodes/bat-mode.el +++ b/lisp/progmodes/bat-mode.el @@ -78,11 +78,11 @@ "goto" "gtr" "if" "in" "leq" "lss" "neq" "not" "start")) (UNIX '("bash" "cat" "cp" "fgrep" "grep" "ls" "sed" "sh" "mv" "rm"))) - `(("\\<_\\(call\\|goto\\)\\_>[ \t]+%?\\([A-Za-z0-9-_\\:.]+\\)%?" + `(("\\_<\\(call\\|goto\\)\\_>[ \t]+%?\\([A-Za-z0-9-_\\:.]+\\)%?" (2 font-lock-constant-face t)) ("^:[^:].*" . 'bat-label-face) - ("\\<_\\(defined\\|set\\)\\_>[ \t]*\\(\\w+\\)" + ("\\_<\\(defined\\|set\\)\\_>[ \t]*\\(\\w+\\)" (2 font-lock-variable-name-face)) ("%\\(\\w+\\)%?" (1 font-lock-variable-name-face)) diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el index 05d796c470e..5800dc95385 100644 --- a/lisp/progmodes/cc-align.el +++ b/lisp/progmodes/cc-align.el @@ -1229,6 +1229,18 @@ Works with: Any syntactic symbol." (back-to-indentation) (vector (current-column)))) +(defun c-lineup-respect-col-0 (langelem) + "If the current line starts at column 0, return [0]. Otherwise return nil. + +This can be used for comments (in conjunction with, say, +`c-lineup-comment'), to keep comments already at column 0 +anchored there, but reindent other comments." + (save-excursion + (back-to-indentation) + (if (eq (current-column) 0) + [0] + nil))) + (defun c-snug-do-while (syntax pos) "Dynamically calculate brace hanginess for do-while statements. @@ -1333,4 +1345,8 @@ For other semicolon contexts, no determination is made." (cc-provide 'cc-align) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-align.el ends here diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el index 44d69d7d0f1..2fcd0fd1831 100644 --- a/lisp/progmodes/cc-awk.el +++ b/lisp/progmodes/cc-awk.el @@ -61,7 +61,6 @@ (cc-bytecomp-defun c-backward-token-1) (cc-bytecomp-defun c-beginning-of-statement-1) (cc-bytecomp-defun c-backward-sws) -(cc-bytecomp-defun c-forward-sws) (defvar awk-mode-syntax-table (let ((st (make-syntax-table))) @@ -1147,4 +1146,8 @@ comment at the start of cc-engine.el for more info." (cc-provide 'cc-awk) ; Changed from 'awk-mode, ACM 2002/5/21 +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; awk-mode.el ends here diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el index 19366279b6c..2db5a100050 100644 --- a/lisp/progmodes/cc-bytecomp.el +++ b/lisp/progmodes/cc-bytecomp.el @@ -65,8 +65,7 @@ ;; elsewhere in the load path. ;; ;; To suppress byte compiler warnings, use the macros -;; `cc-bytecomp-defun', `cc-bytecomp-defvar', -;; `cc-bytecomp-obsolete-fun', and `cc-bytecomp-obsolete-var'. +;; `cc-bytecomp-defun' and `cc-bytecomp-defvar'. ;; ;; This file is not used at all after the package has been byte ;; compiled. It is however necessary when running uncompiled. @@ -78,6 +77,12 @@ (defvar cc-bytecomp-original-functions nil) (defvar cc-bytecomp-original-properties nil) (defvar cc-bytecomp-loaded-files nil) + +(setq cc-bytecomp-unbound-variables nil) +(setq cc-bytecomp-original-functions nil) +(setq cc-bytecomp-original-properties nil) +(setq cc-bytecomp-loaded-files nil) + (defvar cc-bytecomp-environment-set nil) (defmacro cc-bytecomp-debug-msg (&rest args) @@ -370,33 +375,6 @@ the file. Don't use outside `eval-when-compile'." "cc-bytecomp-put: Bound property %s for %s to %s" ,propname ,symbol ,value))) -(defmacro cc-bytecomp-obsolete-var (symbol) - "Suppress warnings that the given symbol is an obsolete variable. -Don't use within `eval-when-compile'." - `(eval-when-compile - (if (get ',symbol 'byte-obsolete-variable) - (cc-bytecomp-put ',symbol 'byte-obsolete-variable nil) - ;; This avoids a superfluous compiler warning - ;; about calling `get' for effect. - t))) - -(defun cc-bytecomp-ignore-obsolete (form) - ;; Wraps a call to `byte-compile-obsolete' that suppresses the warning. - (let ((byte-compile-warnings byte-compile-warnings)) - (byte-compile-disable-warning 'obsolete) - (byte-compile-obsolete form))) - -(defmacro cc-bytecomp-obsolete-fun (symbol) - "Suppress warnings that the given symbol is an obsolete function. -Don't use within `eval-when-compile'." - `(eval-when-compile - (if (eq (get ',symbol 'byte-compile) 'byte-compile-obsolete) - (cc-bytecomp-put ',symbol 'byte-compile - 'cc-bytecomp-ignore-obsolete) - ;; This avoids a superfluous compiler warning - ;; about calling `get' for effect. - t))) - (defmacro cc-bytecomp-boundp (symbol) "Return non-nil if the given symbol is bound as a variable outside the compilation. This is the same as using `boundp' but additionally @@ -423,4 +401,8 @@ exclude any functions that have been bound during compilation with (provide 'cc-bytecomp) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-bytecomp.el ends here diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el index 4f205d62a4c..0724697f8e8 100644 --- a/lisp/progmodes/cc-cmds.el +++ b/lisp/progmodes/cc-cmds.el @@ -258,9 +258,11 @@ With universal argument, inserts the analysis as a comment on that line." "a" "") (if c-hungry-delete-key "h" "") (if (and - ;; subword might not be loaded. - (boundp 'subword-mode) - (symbol-value 'subword-mode)) + ;; (cc-)subword might not be loaded. + (boundp 'c-subword-mode) + (symbol-value 'c-subword-mode)) + ;; FIXME: subword-mode already comes with its + ;; own lighter! "w" ""))) ;; FIXME: Derived modes might want to use something else @@ -1090,7 +1092,7 @@ numeric argument is supplied, or the point is inside a literal." (interactive "*P") (let ((c-echo-syntactic-information-p nil) - final-pos close-paren-inserted found-delim case-fold-search) + final-pos found-delim case-fold-search) (self-insert-command (prefix-numeric-value arg)) (setq final-pos (point)) @@ -1155,11 +1157,12 @@ numeric argument is supplied, or the point is inside a literal." (when (and (eq (char-before) ?>) (not executing-kbd-macro) blink-paren-function) - ;; Note: Most paren blink functions, such as the standard - ;; `blink-matching-open', currently doesn't handle paren chars - ;; marked with text properties very well. Maybe we should avoid - ;; this call for the time being? - (funcall blink-paren-function))))) + ;; Currently (2014-10-19), the syntax-table text properties on < and > + ;; are only applied in code called during Emacs redisplay. We thus + ;; explicitly cause a redisplay so that these properties have been + ;; applied when `blink-paren-function' gets called. + (sit-for 0) + (funcall blink-paren-function))))) (defun c-electric-paren (arg) "Insert a parenthesis. @@ -1303,20 +1306,43 @@ keyword on the line, the keyword is not inserted inside a literal, and (declare-function subword-forward "subword" (&optional arg)) (declare-function subword-backward "subword" (&optional arg)) +(cond + ((and (fboundp 'subword-mode) (not (fboundp 'c-subword-mode))) + ;; Recent Emacsen come with their own subword support. Use that. + (define-obsolete-function-alias 'c-subword-mode 'subword-mode "24.3") + (define-obsolete-variable-alias 'c-subword-mode 'subword-mode "24.3")) + (t + ;; Autoload directive for emacsen that doesn't have an older CC Mode + ;; version in the dist. + (autoload 'c-subword-mode "cc-subword" + "Mode enabling subword movement and editing keys." t))) + ;; "nomenclature" functions + c-scope-operator. (defun c-forward-into-nomenclature (&optional arg) "Compatibility alias for `c-forward-subword'." (interactive "p") - (require 'subword) - (subword-forward arg)) -(make-obsolete 'c-forward-into-nomenclature 'subword-forward "23.2") + (if (fboundp 'subword-mode) + (progn + (require 'subword) + (subword-forward arg)) + (require 'cc-subword) + (c-forward-subword arg))) +(make-obsolete 'c-forward-into-nomenclature + (if (fboundp 'subword-mode) 'subword-forward 'c-forward-subword) + "23.2") (defun c-backward-into-nomenclature (&optional arg) "Compatibility alias for `c-backward-subword'." (interactive "p") - (require 'subword) - (subword-backward arg)) -(make-obsolete 'c-backward-into-nomenclature 'subword-backward "23.2") + (if (fboundp 'subword-mode) + (progn + (require 'subword) + (subword-backward arg)) + (require 'cc-subword) + (c-backward-subword arg))) +(make-obsolete + 'c-backward-into-nomenclature + (if (fboundp 'subword-mode) 'subword-backward 'c-backward-subword) "23.2") (defun c-scope-operator () "Insert a double colon scope operator at point. @@ -1416,12 +1442,15 @@ No indentation or other \"electric\" behavior is performed." (car (c-beginning-of-decl-1 ;; NOTE: If we're in a K&R region, this might be the start ;; of a parameter declaration, not the actual function. + ;; It might also leave us at a label or "label" like + ;; "private:". (and least-enclosing ; LIMIT for c-b-of-decl-1 (c-safe-position least-enclosing paren-state))))) ;; Has the declaration we've gone back to got braces? - (setq brace-decl-p - (save-excursion + (or (eq decl-result 'label) + (setq brace-decl-p + (save-excursion (and (c-syntactic-re-search-forward "[;{]" nil t t) (or (eq (char-before) ?\{) (and c-recognize-knr-p @@ -1429,10 +1458,11 @@ No indentation or other \"electric\" behavior is performed." ;; ';' in a K&R argdecl. In ;; that case the declaration ;; should contain a block. - (c-in-knr-argdecl)))))) + (c-in-knr-argdecl))))))) (cond - ((= (point) kluge-start) ; might be BOB or unbalanced parens. + ((or (eq decl-result 'label) ; e.g. "private:" or invalid syntax. + (= (point) kluge-start)) ; might be BOB or unbalanced parens. 'outwith-function) ((eq decl-result 'same) (if brace-decl-p @@ -1580,7 +1610,7 @@ defun." (or (not (eq this-command 'c-beginning-of-defun)) (eq last-command 'c-beginning-of-defun) - (and transient-mark-mode mark-active) + (c-region-is-active-p) (push-mark)) (c-save-buffer-state @@ -1704,7 +1734,7 @@ the open-parenthesis that starts a defun; see `beginning-of-defun'." (or (not (eq this-command 'c-end-of-defun)) (eq last-command 'c-end-of-defun) - (and transient-mark-mode mark-active) + (c-region-is-active-p) (push-mark)) (c-save-buffer-state @@ -1808,7 +1838,7 @@ with a brace block." (looking-at c-symbol-key)) (match-string-no-properties 0)) - ((looking-at "DEFUN\\_>") + ((looking-at "DEFUN\\s-*(") ;"DEFUN\\_>") think of XEmacs! ;; DEFUN ("file-name-directory", Ffile_name_directory, Sfile_name_directory, ...) ==> Ffile_name_directory ;; DEFUN(POSIX::STREAM-LOCK, stream lockp &key BLOCK SHARED START LENGTH) ==> POSIX::STREAM-LOCK (down-list 1) @@ -2001,7 +2031,7 @@ function does not require the declaration to contain a brace block." (eq last-command 'c-mark-function))) (push-mark-p (and (eq this-command 'c-mark-function) (not extend-region-p) - (not (and transient-mark-mode mark-active))))) + (not (c-region-is-active-p))))) (if push-mark-p (push-mark (point))) (if extend-region-p (progn @@ -3338,7 +3368,7 @@ Otherwise, with a prefix argument, rigidly reindent the expression starting on the current line. Otherwise reindent just the current line." (interactive - (list current-prefix-arg (use-region-p))) + (list current-prefix-arg (c-region-is-active-p))) (if region (c-indent-region (region-beginning) (region-end)) (c-indent-command arg))) @@ -4727,4 +4757,8 @@ normally bound to C-o. See `c-context-line-break' for the details." (cc-provide 'cc-cmds) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-cmds.el ends here diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el index d6134a510b2..46cb2f98621 100644 --- a/lisp/progmodes/cc-defs.el +++ b/lisp/progmodes/cc-defs.el @@ -64,15 +64,14 @@ (not (fboundp 'push))) (cc-load "cc-fix"))) -; (eval-after-load "font-lock" ; 2006-07-09. font-lock is now preloaded -; ' -(if (and (featurep 'xemacs) ; There is now (2005/12) code in GNU Emacs CVS - ; to make the call to f-l-c-k throw an error. - (not (featurep 'cc-fix)) ; only load the file once. - (let (font-lock-keywords) - (font-lock-compile-keywords '("\\<\\>")) - font-lock-keywords)) ; did the previous call foul this up? - (load "cc-fix")) ;) +(when (featurep 'xemacs) ; There is now (2005/12) code in GNU Emacs CVS + ; to make the call to f-l-c-k throw an error. + (eval-after-load "font-lock" + '(if (and (not (featurep 'cc-fix)) ; only load the file once. + (let (font-lock-keywords) + (font-lock-compile-keywords '("\\<\\>")) + font-lock-keywords)) ; did the previous call foul this up? + (load "cc-fix")))) ;; The above takes care of the delayed loading, but this is necessary ;; to ensure correct byte compilation. @@ -86,10 +85,15 @@ font-lock-keywords))) (cc-load "cc-fix"))) +;; XEmacs 21.4 doesn't have `delete-dups'. +(eval-and-compile + (if (and (not (fboundp 'delete-dups)) + (not (featurep 'cc-fix))) + (cc-load "cc-fix"))) ;;; Variables also used at compile time. -(defconst c-version "5.32.5" +(defconst c-version "5.33" "CC Mode version number.") (defconst c-version-sym (intern c-version)) @@ -169,6 +173,10 @@ This variant works around bugs in `eval-when-compile' in various (put 'cc-eval-when-compile 'lisp-indent-hook 0)) +(eval-and-compile + (defalias 'c--macroexpand-all + (if (fboundp 'macroexpand-all) + 'macroexpand-all 'cl-macroexpand-all))) ;;; Macros. @@ -327,16 +335,42 @@ to it is returned. This function does not modify the point or the mark." (t (error "Unknown buffer position requested: %s" position)))) (point)))) +(eval-and-compile + ;; Constant to decide at compilation time whether to use category + ;; properties. Currently (2010-03) they're available only on GNU Emacs. + (defconst c-use-category + (with-temp-buffer + (let ((parse-sexp-lookup-properties t) + (lookup-syntax-properties t)) + (set-syntax-table (make-syntax-table)) + (insert "<()>") + (put-text-property (point-min) (1+ (point-min)) + 'category 'c-<-as-paren-syntax) + (put-text-property (+ 3 (point-min)) (+ 4 (point-min)) + 'category 'c->-as-paren-syntax) + (goto-char (point-min)) + (forward-sexp) + (= (point) (+ 4 (point-min))))))) + +(defvar c-use-extents) + +(defmacro c-next-single-property-change (position prop &optional object limit) + ;; See the doc string for either of the defuns expanded to. + (if (and c-use-extents + (fboundp 'next-single-char-property-change)) + ;; XEmacs >= 2005-01-25 + `(next-single-char-property-change ,position ,prop ,object ,limit) + ;; Emacs and earlier XEmacs + `(next-single-property-change ,position ,prop ,object ,limit))) + (defmacro c-region-is-active-p () ;; Return t when the region is active. The determination of region ;; activeness is different in both Emacs and XEmacs. - ;; FIXME? Emacs has region-active-p since 23.1, so maybe this test - ;; should be updated. - (if (cc-bytecomp-boundp 'mark-active) - ;; Emacs. - 'mark-active - ;; XEmacs. - '(region-active-p))) + (if (cc-bytecomp-fboundp 'region-active-p) + ;; XEmacs. + '(region-active-p) + ;; Old Emacs. + 'mark-active)) (defmacro c-set-region-active (activate) ;; Activate the region if ACTIVE is non-nil, deactivate it @@ -913,6 +947,12 @@ MODE is either a mode symbol or a list of mode symbols." (cc-bytecomp-fboundp 'delete-extent) (cc-bytecomp-fboundp 'map-extents)))) +(defconst c-<-as-paren-syntax '(4 . ?>)) +(put 'c-<-as-paren-syntax 'syntax-table c-<-as-paren-syntax) + +(defconst c->-as-paren-syntax '(5 . ?<)) +(put 'c->-as-paren-syntax 'syntax-table c->-as-paren-syntax) + ;; `c-put-char-property' is complex enough in XEmacs and Emacs < 21 to ;; make it a function. (defalias 'c-put-char-property-fun @@ -1046,8 +1086,8 @@ nil; point is then left undefined." (while (and (< place ,(or limit '(point-max))) - (not (equal (get-text-property place ,property) ,value))) - (setq place (next-single-property-change + (not (equal (c-get-char-property place ,property) ,value))) + (setq place (c-next-single-property-change place ,property nil ,(or limit '(point-max))))) (when (< place ,(or limit '(point-max))) (goto-char place) @@ -1065,10 +1105,15 @@ point is then left undefined." (while (and (> place ,(or limit '(point-min))) - (not (equal (get-text-property (1- place) ,property) ,value))) - (setq place (previous-single-property-change + (not (equal (c-get-char-property (1- place) ,property) ,value))) + (setq place (,(if (and c-use-extents + (fboundp 'previous-single-char-property-change)) + ;; XEmacs > 2005-01-25. + 'previous-single-char-property-change + ;; Emacs and earlier XEmacs. + 'previous-single-property-change) place ,property nil ,(or limit '(point-min))))) - (when (> place ,(or limit '(point-max))) + (when (> place ,(or limit '(point-min))) (goto-char place) (search-backward-regexp ".") ; to set the match-data. (point)))) @@ -1085,9 +1130,9 @@ been put there by c-put-char-property. POINT remains unchanged." (and (< place to) (not (equal (get-text-property place property) value))) - (setq place (next-single-property-change place property nil to))) + (setq place (c-next-single-property-change place property nil to))) (< place to)) - (setq end-place (next-single-property-change place property nil to)) + (setq end-place (c-next-single-property-change place property nil to)) (remove-text-properties place end-place (cons property nil)) ;; Do we have to do anything with stickiness here? (setq place end-place)))) @@ -1104,7 +1149,7 @@ been put there by c-put-char-property. POINT remains unchanged." (if (equal (extent-property ext -property-) val) (delete-extent ext))) nil ,from ,to ,value nil -property-)) - ;; Gnu Emacs + ;; GNU Emacs `(c-clear-char-property-with-value-function ,from ,to ,property ,value))) ;; Macros to put overlays (Emacs) or extents (XEmacs) on buffer text. @@ -1188,42 +1233,43 @@ been put there by c-put-char-property. POINT remains unchanged." (if (< (point) start) (goto-char (point-max))))) -(defconst c-<-as-paren-syntax '(4 . ?>)) -(put 'c-<-as-paren-syntax 'syntax-table c-<-as-paren-syntax) - -(defsubst c-mark-<-as-paren (pos) +(defmacro c-mark-<-as-paren (pos) ;; Mark the "<" character at POS as a template opener using the - ;; `syntax-table' property via the `category' property. + ;; `syntax-table' property either directly (XEmacs) or via a `category' + ;; property (GNU Emacs). ;; ;; This function does a hidden buffer change. Note that we use ;; indirection through the `category' text property. This allows us to ;; toggle the property in all template brackets simultaneously and ;; cheaply. We use this, for instance, in `c-parse-state'. - (c-put-char-property pos 'category 'c-<-as-paren-syntax)) + (if c-use-category + `(c-put-char-property ,pos 'category 'c-<-as-paren-syntax) + `(c-put-char-property ,pos 'syntax-table c-<-as-paren-syntax))) -(defconst c->-as-paren-syntax '(5 . ?<)) -(put 'c->-as-paren-syntax 'syntax-table c->-as-paren-syntax) -(defsubst c-mark->-as-paren (pos) +(defmacro c-mark->-as-paren (pos) ;; Mark the ">" character at POS as an sexp list closer using the - ;; syntax-table property. + ;; `syntax-table' property either directly (XEmacs) or via a `category' + ;; property (GNU Emacs). ;; ;; This function does a hidden buffer change. Note that we use ;; indirection through the `category' text property. This allows us to ;; toggle the property in all template brackets simultaneously and ;; cheaply. We use this, for instance, in `c-parse-state'. - (c-put-char-property pos 'category 'c->-as-paren-syntax)) + (if c-use-category + `(c-put-char-property ,pos 'category 'c->-as-paren-syntax) + `(c-put-char-property ,pos 'syntax-table c->-as-paren-syntax))) -(defsubst c-unmark-<->-as-paren (pos) - ;; Unmark the "<" or "<" character at POS as an sexp list opener using - ;; the syntax-table property indirectly through the `category' text - ;; property. +(defmacro c-unmark-<->-as-paren (pos) + ;; Unmark the "<" or "<" character at POS as an sexp list opener using the + ;; `syntax-table' property either directly or indirectly through a + ;; `category' text property. ;; - ;; This function does a hidden buffer change. Note that we use + ;; This function does a hidden buffer change. Note that we try to use ;; indirection through the `category' text property. This allows us to ;; toggle the property in all template brackets simultaneously and ;; cheaply. We use this, for instance, in `c-parse-state'. - (c-clear-char-property pos 'category)) + `(c-clear-char-property ,pos ,(if c-use-category ''category ''syntax-table))) (defsubst c-suppress-<->-as-parens () ;; Suppress the syntactic effect of all marked < and > as parens. Note @@ -1304,6 +1350,124 @@ been put there by c-put-char-property. POINT remains unchanged." (widen) (c-set-cpp-delimiters ,beg ,end))))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; The following macros are to be used only in `c-parse-state' and its +;; subroutines. Their main purpose is to simplify the handling of C++/Java +;; template delimiters and CPP macros. In GNU Emacs, this is done slickly by +;; the judicious use of 'category properties. These don't exist in XEmacs. +;; +;; Note: in the following macros, there is no special handling for parentheses +;; inside CPP constructs. That is because CPPs are always syntactically +;; balanced, thanks to `c-neutralize-CPP-line' in cc-mode.el. +(defmacro c-sc-scan-lists-no-category+1+1 (from) + ;; Do a (scan-lists FROM 1 1). Any finishing position which either (i) is + ;; determined by and angle bracket; or (ii) is inside a macro whose start + ;; isn't POINT-MACRO-START doesn't count as a finishing position. + `(let ((here (point)) + (pos (scan-lists ,from 1 1))) + (while (eq (char-before pos) ?>) + (setq pos (scan-lists pos 1 1))) + pos)) + +(defmacro c-sc-scan-lists-no-category+1-1 (from) + ;; Do a (scan-lists FROM 1 -1). Any finishing position which either (i) is + ;; determined by an angle bracket; or (ii) is inside a macro whose start + ;; isn't POINT-MACRO-START doesn't count as a finishing position. + `(let ((here (point)) + (pos (scan-lists ,from 1 -1))) + (while (eq (char-before pos) ?<) + (setq pos (scan-lists pos 1 1)) + (setq pos (scan-lists pos 1 -1))) + pos)) + +(defmacro c-sc-scan-lists-no-category-1+1 (from) + ;; Do a (scan-lists FROM -1 1). Any finishing position which either (i) is + ;; determined by and angle bracket; or (ii) is inside a macro whose start + ;; isn't POINT-MACRO-START doesn't count as a finishing position. + `(let ((here (point)) + (pos (scan-lists ,from -1 1))) + (while (eq (char-after pos) ?<) + (setq pos (scan-lists pos -1 1))) + pos)) + +(defmacro c-sc-scan-lists-no-category-1-1 (from) + ;; Do a (scan-lists FROM -1 -1). Any finishing position which either (i) is + ;; determined by and angle bracket; or (ii) is inside a macro whose start + ;; isn't POINT-MACRO-START doesn't count as a finishing position. + `(let ((here (point)) + (pos (scan-lists ,from -1 -1))) + (while (eq (char-after pos) ?>) + (setq pos (scan-lists pos -1 1)) + (setq pos (scan-lists pos -1 -1))) + pos)) + +(defmacro c-sc-scan-lists (from count depth) + (if c-use-category + `(scan-lists ,from ,count ,depth) + (cond + ((and (eq count 1) (eq depth 1)) + `(c-sc-scan-lists-no-category+1+1 ,from)) + ((and (eq count 1) (eq depth -1)) + `(c-sc-scan-lists-no-category+1-1 ,from)) + ((and (eq count -1) (eq depth 1)) + `(c-sc-scan-lists-no-category-1+1 ,from)) + ((and (eq count -1) (eq depth -1)) + `(c-sc-scan-lists-no-category-1-1 ,from)) + (t (error "Invalid parameter(s) to c-sc-scan-lists"))))) + + +(defun c-sc-parse-partial-sexp-no-category (from to targetdepth stopbefore + oldstate) + ;; Do a parse-partial-sexp using the supplied arguments, disregarding + ;; template/generic delimiters < > and disregarding macros other than the + ;; one at POINT-MACRO-START. + ;; + ;; NOTE that STOPBEFORE must be nil. TARGETDEPTH should be one less than + ;; the depth in OLDSTATE. This function is thus a SPECIAL PURPOSE variation + ;; on parse-partial-sexp, designed for calling from + ;; `c-remove-stale-state-cache'. + ;; + ;; Any finishing position which is determined by an angle bracket delimiter + ;; doesn't count as a finishing position. + ;; + ;; Note there is no special handling of CPP constructs here, since these are + ;; always syntactically balanced (thanks to `c-neutralize-CPP-line'). + (let ((state + (parse-partial-sexp from to targetdepth stopbefore oldstate))) + (while + (and (< (point) to) + ;; We must have hit targetdepth. + (or (eq (char-before) ?<) + (eq (char-before) ?>))) + (setcar state + (if (memq (char-before) '(?> ?\) ?\} ?\])) + (1+ (car state)) + (1- (car state)))) + (setq state + (parse-partial-sexp (point) to targetdepth stopbefore oldstate))) + state)) + +(defmacro c-sc-parse-partial-sexp (from to &optional targetdepth stopbefore + oldstate) + (if c-use-category + `(parse-partial-sexp ,from ,to ,targetdepth ,stopbefore ,oldstate) + `(c-sc-parse-partial-sexp-no-category ,from ,to ,targetdepth ,stopbefore + ,oldstate))) + + +(defvar c-emacs-features) + +(defmacro c-looking-at-non-alphnumspace () + "Are we looking at a character which isn't alphanumeric or space?" + (if (memq 'gen-comment-delim c-emacs-features) + `(looking-at +"\\([;#]\\|\\'\\|\\s(\\|\\s)\\|\\s\"\\|\\s\\\\|\\s$\\|\\s<\\|\\s>\\|\\s!\\)") + `(or (looking-at +"\\([;#]\\|\\'\\|\\s(\\|\\s)\\|\\s\"\\|\\s\\\\|\\s$\\|\\s<\\|\\s>\\)" + (let ((prop (c-get-char-property (point) 'syntax-table))) + (eq prop '(14))))))) ; '(14) is generic comment delimiter. + + (defsubst c-intersect-lists (list alist) ;; return the element of ALIST that matches the first element found ;; in LIST. Uses assq. @@ -1419,8 +1583,8 @@ Notably, null elements in LIST are ignored." (defun c-make-keywords-re (adorn list &optional mode) "Make a regexp that matches all the strings the list. -Duplicates and nil elements in the list are removed. The resulting -regexp may contain zero or more submatch expressions. +Duplicates and nil elements in the list are removed. The +resulting regexp may contain zero or more submatch expressions. If ADORN is t there will be at least one submatch and the first surrounds the matched alternative, and the regexp will also not match @@ -1438,11 +1602,7 @@ The optional MODE specifies the language to get `c-nonsymbol-key' from when it's needed. The default is the current language taken from `c-buffer-is-cc-mode'." - (let (unique) - (dolist (elt list) - (unless (member elt unique) - (push elt unique))) - (setq list (delete nil unique))) + (setq list (delete nil (delete-dups list))) (if list (let (re) @@ -1556,6 +1716,8 @@ non-nil, a caret is prepended to invert the set." (cc-bytecomp-defvar open-paren-in-column-0-is-defun-start) +(defvar lookup-syntax-properties) ;XEmacs. + (defconst c-emacs-features (let (list) @@ -1607,6 +1769,9 @@ non-nil, a caret is prepended to invert the set." (not (end-of-defun)))) (setq list (cons 'argumentative-bod-function list)))) + ;; Record whether the `category' text property works. + (if c-use-category (setq list (cons 'category-properties list))) + (let ((buf (generate-new-buffer " test")) parse-sexp-lookup-properties parse-sexp-ignore-comments @@ -1636,13 +1801,13 @@ non-nil, a caret is prepended to invert the set." "support for the `syntax-table' text property " "is required."))) - ;; Find out if generic comment delimiters work. + ;; Find out if "\\s!" (generic comment delimiters) work. (c-safe (modify-syntax-entry ?x "!") (if (string-match "\\s!" "x") (setq list (cons 'gen-comment-delim list)))) - ;; Find out if generic string delimiters work. + ;; Find out if "\\s|" (generic string delimiters) work. (c-safe (modify-syntax-entry ?x "|") (if (string-match "\\s|" "x") @@ -1689,7 +1854,8 @@ non-nil, a caret is prepended to invert the set." (kill-buffer buf)) ;; See if `parse-partial-sexp' returns the eighth element. - (if (c-safe (>= (length (save-excursion (parse-partial-sexp (point) (point)))) + (if (c-safe (>= (length (save-excursion + (parse-partial-sexp (point) (point)))) 10)) (setq list (cons 'pps-extended-state list)) (error (concat @@ -1705,13 +1871,14 @@ might be present: '8-bit 8 bit syntax entry flags (XEmacs style). '1-bit 1 bit syntax entry flags (Emacs style). -'argumentative-bod-function beginning-of-defun passes ARG through - to a non-null beginning-of-defun-function. It is assumed - the end-of-defun does the same thing. +'argumentative-bod-function beginning-of-defun and end-of-defun pass + ARG through to beginning/end-of-defun-function. 'syntax-properties It works to override the syntax for specific characters in the buffer with the 'syntax-table property. It's always set - CC Mode no longer works in emacsen without this feature. +'category-properties Syntax routines can add a level of indirection to text + properties using the 'category property. 'gen-comment-delim Generic comment delimiters work (i.e. the syntax class `!'). 'gen-string-delim Generic string delimiters work @@ -1802,11 +1969,11 @@ system." (put mode 'c-fallback-mode base-mode)) (defvar c-lang-constants (make-vector 151 0)) -;; This obarray is a cache to keep track of the language constants -;; defined by `c-lang-defconst' and the evaluated values returned by -;; `c-lang-const'. It's mostly used at compile time but it's not +;; Obarray used as a cache to keep track of the language constants. +;; The constants stored are those defined by `c-lang-defconst' and the values +;; computed by `c-lang-const'. It's mostly used at compile time but it's not ;; stored in compiled files. -;; + ;; The obarray contains all the language constants as symbols. The ;; value cells hold the evaluated values as alists where each car is ;; the mode name symbol and the corresponding cdr is the evaluated @@ -1829,14 +1996,16 @@ system." (t ;; Being evaluated interactively. (buffer-file-name))))) - (and file (file-name-base file)))) + (and file + (file-name-sans-extension + (file-name-nondirectory file))))) (defmacro c-lang-defconst-eval-immediately (form) "Can be used inside a VAL in `c-lang-defconst' to evaluate FORM immediately, i.e. at the same time as the `c-lang-defconst' form itself is evaluated." ;; Evaluate at macro expansion time, i.e. in the - ;; `macroexpand-all' inside `c-lang-defconst'. + ;; `c--macroexpand-all' inside `c-lang-defconst'. (eval form)) (defmacro c-lang-defconst (name &rest args) @@ -1880,7 +2049,7 @@ constant. A file is identified by its base name." (let* ((sym (intern (symbol-name name) c-lang-constants)) ;; Make `c-lang-const' expand to a straightforward call to - ;; `c-get-lang-constant' in `macroexpand-all' below. + ;; `c-get-lang-constant' in `c--macroexpand-all' below. ;; ;; (The default behavior, i.e. to expand to a call inside ;; `eval-when-compile' should be equivalent, since that macro @@ -1897,7 +2066,7 @@ constant. A file is identified by its base name." pre-files) (or (symbolp name) - (error "Not a symbol: %s" name)) + (error "Not a symbol: %S" name)) (when (stringp (car-safe args)) ;; The docstring is hardly used anywhere since there's no normal @@ -1907,7 +2076,7 @@ constant. A file is identified by its base name." (setq args (cdr args))) (or args - (error "No assignments in `c-lang-defconst' for %s" name)) + (error "No assignments in `c-lang-defconst' for %S" name)) ;; Rework ARGS to an association list to make it easier to handle. ;; It's reversed at the same time to make it easier to implement @@ -1921,17 +2090,17 @@ constant. A file is identified by its base name." ((listp (car args)) (mapcar (lambda (lang) (or (symbolp lang) - (error "Not a list of symbols: %s" + (error "Not a list of symbols: %S" (car args))) (intern (concat (symbol-name lang) "-mode"))) (car args))) - (t (error "Not a symbol or a list of symbols: %s" + (t (error "Not a symbol or a list of symbols: %S" (car args))))) val) (or (cdr args) - (error "No value for %s" (car args))) + (error "No value for %S" (car args))) (setq args (cdr args) val (car args)) @@ -1943,9 +2112,9 @@ constant. A file is identified by its base name." ;; reason, but we also use this expansion handle ;; `c-lang-defconst-eval-immediately' and to register ;; dependencies on the `c-lang-const's in VAL.) - (setq val (macroexpand-all val)) + (setq val (c--macroexpand-all val)) - (setq bindings (cons (cons assigned-mode val) bindings) + (setq bindings `(cons (cons ',assigned-mode (lambda () ,val)) ,bindings) args (cdr args)))) ;; Compile in the other files that have provided source @@ -1957,7 +2126,7 @@ constant. A file is identified by its base name." (mapcar 'car (get sym 'source)))) `(eval-and-compile - (c-define-lang-constant ',name ',bindings + (c-define-lang-constant ',name ,bindings ,@(and pre-files `(',pre-files)))))) (put 'c-lang-defconst 'lisp-indent-function 1) @@ -2022,19 +2191,16 @@ language. NAME and LANG are not evaluated so they should not be quoted." (or (symbolp name) - (error "Not a symbol: %s" name)) + (error "Not a symbol: %S" name)) (or (symbolp lang) - (error "Not a symbol: %s" lang)) + (error "Not a symbol: %S" lang)) (let ((sym (intern (symbol-name name) c-lang-constants)) - mode source-files args) + (mode (when lang (intern (concat (symbol-name lang) "-mode"))))) - (when lang - (setq mode (intern (concat (symbol-name lang) "-mode"))) - (unless (get mode 'c-mode-prefix) - (error - "Unknown language %S since it got no `c-mode-prefix' property" - (symbol-name lang)))) + (or (get mode 'c-mode-prefix) (null mode) + (error "Unknown language %S: no `c-mode-prefix' property" + lang)) (if (eq c-lang-const-expansion 'immediate) ;; No need to find out the source file(s) when we evaluate @@ -2042,49 +2208,56 @@ quoted." ;; `source' property. `',(c-get-lang-constant name nil mode) - (let ((file (c-get-current-file))) - (if file (setq file (intern file))) - ;; Get the source file(s) that must be loaded to get the value - ;; of the constant. If the symbol isn't defined yet we assume - ;; that its definition will come later in this file, and thus - ;; are no file dependencies needed. - (setq source-files (nreverse - ;; Reverse to get the right load order. - (apply 'nconc - (mapcar (lambda (elem) - (if (eq file (car elem)) - nil ; Exclude our own file. - (list (car elem)))) - (get sym 'source)))))) + (let ((source-files + (let ((file (c-get-current-file))) + (if file (setq file (intern file))) + ;; Get the source file(s) that must be loaded to get the value + ;; of the constant. If the symbol isn't defined yet we assume + ;; that its definition will come later in this file, and thus + ;; are no file dependencies needed. + (nreverse + ;; Reverse to get the right load order. + (apply 'nconc + (mapcar (lambda (elem) + (if (eq file (car elem)) + nil ; Exclude our own file. + (list (car elem)))) + (get sym 'source)))))) + ;; Make some effort to do a compact call to + ;; `c-get-lang-constant' since it will be compiled in. + (args (and mode `(',mode)))) - ;; Make some effort to do a compact call to - ;; `c-get-lang-constant' since it will be compiled in. - (setq args (and mode `(',mode))) - (if (or source-files args) - (setq args (cons (and source-files `',source-files) - args))) + (if (or source-files args) + (push (and source-files `',source-files) args)) - (if (or (eq c-lang-const-expansion 'call) - (and (not c-lang-const-expansion) - (not mode)) - load-in-progress - (not (boundp 'byte-compile-dest-file)) - (not (stringp byte-compile-dest-file))) - ;; Either a straight call is requested in the context, or - ;; we're in an "uncontrolled" context and got no language, - ;; or we're not being byte compiled so the compile time - ;; stuff below is unnecessary. - `(c-get-lang-constant ',name ,@args) + (if (or (eq c-lang-const-expansion 'call) + (and (not c-lang-const-expansion) + (not mode)) + load-in-progress + (not (boundp 'byte-compile-dest-file)) + (not (stringp byte-compile-dest-file))) + ;; Either a straight call is requested in the context, or + ;; we're in an "uncontrolled" context and got no language, + ;; or we're not being byte compiled so the compile time + ;; stuff below is unnecessary. + `(c-get-lang-constant ',name ,@args) - ;; Being compiled. If the loading and compiling version is - ;; the same we use a value that is evaluated at compile time, - ;; otherwise it's evaluated at runtime. - `(if (eq c-version-sym ',c-version-sym) - (cc-eval-when-compile - (c-get-lang-constant ',name ,@args)) - (c-get-lang-constant ',name ,@args)))))) + ;; Being compiled. If the loading and compiling version is + ;; the same we use a value that is evaluated at compile time, + ;; otherwise it's evaluated at runtime. + `(if (eq c-version-sym ',c-version-sym) + (cc-eval-when-compile + (c-get-lang-constant ',name ,@args)) + (c-get-lang-constant ',name ,@args))))))) -(defvar c-lang-constants-under-evaluation nil) +(defvar c-lang-constants-under-evaluation nil + "Alist of constants in the process of being evaluated. +The `cdr' of each entry indicates how far we've looked in the list +of definitions, so that the def for var FOO in c-mode can be defined in +terms of the def for that same var FOO (which will then rely on the +fallback definition for all modes, to break the cycle).") + +(defconst c-lang--novalue "novalue") (defun c-get-lang-constant (name &optional source-files mode) ;; Used by `c-lang-const'. @@ -2150,7 +2323,7 @@ quoted." ;; mode might have an explicit entry before that. (eq (setq value (c-find-assignment-for-mode (cdr source-pos) mode nil name)) - c-lang-constants) + c-lang--novalue) ;; Try again with the fallback mode from the ;; original position. Note that ;; `c-buffer-is-cc-mode' still is the real mode if @@ -2158,22 +2331,22 @@ quoted." (eq (setq value (c-find-assignment-for-mode (setcdr source-pos backup-source-pos) fallback t name)) - c-lang-constants))) + c-lang--novalue))) ;; A simple lookup with no fallback mode. (eq (setq value (c-find-assignment-for-mode (cdr source-pos) mode t name)) - c-lang-constants)) + c-lang--novalue)) (error - "`%s' got no (prior) value in %s (might be a cyclic reference)" + "`%s' got no (prior) value in %S (might be a cyclic reference)" name mode)) (condition-case err - (setq value (eval value)) + (setq value (funcall value)) (error ;; Print a message to aid in locating the error. We don't ;; print the error itself since that will be done later by ;; some caller higher up. - (message "Eval error in the `c-lang-defconst' for `%s' in %s:" + (message "Eval error in the `c-lang-defconst' for `%S' in %s:" sym mode) (makunbound sym) (signal (car err) (cdr err)))) @@ -2181,13 +2354,13 @@ quoted." (set sym (cons (cons mode value) (symbol-value sym))) value)))) -(defun c-find-assignment-for-mode (source-pos mode match-any-lang name) +(defun c-find-assignment-for-mode (source-pos mode match-any-lang _name) ;; Find the first assignment entry that applies to MODE at or after ;; SOURCE-POS. If MATCH-ANY-LANG is non-nil, entries with `t' as ;; the language list are considered to match, otherwise they don't. ;; On return SOURCE-POS is updated to point to the next assignment ;; after the returned one. If no assignment is found, - ;; `c-lang-constants' is returned as a magic value. + ;; `c-lang--novalue' is returned as a magic value. ;; ;; SOURCE-POS is a vector that points out a specific assignment in ;; the double alist that's used in the `source' property. The first @@ -2243,7 +2416,7 @@ quoted." match-any-lang) (throw 'found (cdr assignment)))) - c-lang-constants))) + c-lang--novalue))) (defun c-lang-major-mode-is (mode) ;; `c-major-mode-is' expands to a call to this function inside @@ -2264,4 +2437,8 @@ quoted." (cc-provide 'cc-defs) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-defs.el ends here diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 7404241af9b..9a6e975dd93 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -147,18 +147,19 @@ (cc-require-when-compile 'cc-langs) (cc-require 'cc-vars) +(eval-when-compile (require 'cl)) + ;; Make declarations for all the `c-lang-defvar' variables in cc-langs. (defmacro c-declare-lang-variables () `(progn - ,@(apply 'nconc - (mapcar (lambda (init) - `(,(if (elt init 2) - `(defvar ,(car init) nil ,(elt init 2)) - `(defvar ,(car init) nil)) - (make-variable-buffer-local ',(car init)))) - (cdr c-lang-variable-inits))))) + ,@(mapcan (lambda (init) + `(,(if (elt init 2) + `(defvar ,(car init) nil ,(elt init 2)) + `(defvar ,(car init) nil)) + (make-variable-buffer-local ',(car init)))) + (cdr c-lang-variable-inits)))) (c-declare-lang-variables) @@ -248,6 +249,24 @@ (setq c-macro-cache-start-pos beg c-macro-cache-syntactic nil)))) +(defun c-macro-is-genuine-p () + ;; Check that the ostensible CPP construct at point is a real one. In + ;; particular, if point is on the first line of a narrowed buffer, make sure + ;; that the "#" isn't, say, the second character of a "##" operator. Return + ;; t when the macro is real, nil otherwise. + (let ((here (point))) + (beginning-of-line) + (prog1 + (if (and (eq (point) (point-min)) + (/= (point) 1)) + (save-restriction + (widen) + (beginning-of-line) + (and (looking-at c-anchored-cpp-prefix) + (eq (match-beginning 1) here))) + t) + (goto-char here)))) + (defun c-beginning-of-macro (&optional lim) "Go to the beginning of a preprocessor directive. Leave point at the beginning of the directive and return t if in one, @@ -278,7 +297,8 @@ comment at the start of cc-engine.el for more info." (forward-line -1)) (back-to-indentation) (if (and (<= (point) here) - (looking-at c-opt-cpp-start)) + (looking-at c-opt-cpp-start) + (c-macro-is-genuine-p)) (progn (setq c-macro-cache (cons (point) nil) c-macro-cache-start-pos here) @@ -514,7 +534,7 @@ comment at the start of cc-engine.el for more info." (while (progn (when (eq (get-text-property (point) 'c-type) value) (c-clear-char-property (point) 'c-type)) - (goto-char (next-single-property-change (point) 'c-type nil to)) + (goto-char (c-next-single-property-change (point) 'c-type nil to)) (< (point) to))))) @@ -826,7 +846,6 @@ comment at the start of cc-engine.el for more info." ;; Record this as the first token if not starting inside it. (setq tok start)) - ;; The following while loop goes back one sexp (balanced parens, ;; etc. with contents, or symbol or suchlike) each iteration. This ;; movement is accomplished with a call to c-backward-sexp approx 170 @@ -1033,7 +1052,10 @@ comment at the start of cc-engine.el for more info." ;; Just gone back over a brace block? ((and (eq (char-after) ?{) - (not (c-looking-at-inexpr-block lim nil t))) + (not (c-looking-at-inexpr-block lim nil t)) + (save-excursion + (c-backward-token-2 1 t nil) + (not (looking-at "=\\([^=]\\|$\\)")))) (save-excursion (c-forward-sexp) (point))) ;; Just gone back over some paren block? @@ -1701,7 +1723,7 @@ comment at the start of cc-engine.el for more info." ;; the cases when the marked rung is complete. ;; (`next-single-property-change' is certain to move at least one ;; step forward.) - (setq rung-pos (1- (next-single-property-change + (setq rung-pos (1- (c-next-single-property-change rung-is-marked 'c-is-sws nil rung-end-pos))) ;; Got no marked rung here. Since the simple ws might have started ;; inside a line comment or cpp directive we must set `rung-pos' as @@ -1717,7 +1739,7 @@ comment at the start of cc-engine.el for more info." ;; The following search is the main reason that `c-in-sws' ;; and `c-is-sws' aren't combined to one property. - (goto-char (next-single-property-change + (goto-char (c-next-single-property-change (point) 'c-in-sws nil (point-max))) (unless (get-text-property (point) 'c-is-sws) ;; If the `c-in-sws' region extended past the last @@ -1839,7 +1861,7 @@ comment at the start of cc-engine.el for more info." ;; possible since we can't be in the ending ws of a line comment or ;; cpp directive now. (if (setq rung-is-marked next-rung-is-marked) - (setq rung-pos (1- (next-single-property-change + (setq rung-pos (1- (c-next-single-property-change rung-is-marked 'c-is-sws nil rung-end-pos))) (setq rung-pos next-rung-pos)) (setq safe-start t))) @@ -1917,7 +1939,7 @@ comment at the start of cc-engine.el for more info." (unless (get-text-property (point) 'c-is-sws) ;; If the `c-in-sws' region extended past the first ;; `c-is-sws' char we have to go forward a bit. - (goto-char (next-single-property-change + (goto-char (c-next-single-property-change (point) 'c-is-sws))) (c-debug-sws-msg @@ -2156,7 +2178,6 @@ comment at the start of cc-engine.el for more info." ;; the middle of the desert, as long as it is not within a brace pair ;; recorded in `c-state-cache' or a paren/bracket pair. - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; We maintain a simple cache of positions which aren't in a literal, so as to ;; speed up testing for non-literality. @@ -2219,8 +2240,7 @@ comment at the start of cc-engine.el for more info." ((and (not not-in-delimiter) ; inside a comment starter (not (bobp)) (progn (backward-char) - (and (not (and (memq 'category-properties c-emacs-features) - (looking-at "\\s!"))) + (and (not (looking-at "\\s!")) (looking-at c-comment-start-regexp)))) (setq ty (if (looking-at c-block-comment-start-regexp) 'c 'c++) co-st (point)) @@ -2527,7 +2547,7 @@ comment at the start of cc-engine.el for more info." (setq pos here+) (c-safe (while - (setq ren+1 (scan-lists pos 1 1)) ; might signal + (setq ren+1 (c-sc-scan-lists pos 1 1)) ; might signal (setq lonely-rens (cons ren+1 lonely-rens) pos ren+1))))) @@ -2539,7 +2559,7 @@ comment at the start of cc-engine.el for more info." (c-safe (while (and lonely-rens ; actual values aren't used. - (setq pa (scan-lists pos -1 1))) + (setq pa (c-sc-scan-lists pos -1 1))) (setq pos pa) (setq lonely-rens (cdr lonely-rens))))) pos)) @@ -2695,8 +2715,8 @@ comment at the start of cc-engine.el for more info." (progn (c-safe (while - (and (setq ce (scan-lists bra -1 -1)) ; back past )/]/}; might signal - (setq bra (scan-lists ce -1 1)) ; back past (/[/{; might signal + (and (setq ce (c-sc-scan-lists bra -1 -1)) ; back past )/]/}; might signal + (setq bra (c-sc-scan-lists ce -1 1)) ; back past (/[/{; might signal (or (> bra here) ;(> ce here) (and (< ce here) @@ -2748,7 +2768,7 @@ comment at the start of cc-engine.el for more info." (not (c-beginning-of-macro)))) (setq c-state-cache (cons (cons (1- bra+1) - (scan-lists bra+1 1 1)) + (c-sc-scan-lists bra+1 1 1)) (if (consp (car c-state-cache)) (cdr c-state-cache) c-state-cache))) @@ -2777,7 +2797,7 @@ comment at the start of cc-engine.el for more info." paren+1 ; Pos after some opening or closing paren. paren+1s ; A list of `paren+1's; used to determine a ; good-pos. - bra+1 ce+1 ; just after L/R bra-ces. + bra+1 ; just after L bra-ce. bra+1s ; list of OLD values of bra+1. mstart) ; start of a macro. @@ -2798,9 +2818,9 @@ comment at the start of cc-engine.el for more info." ;; are no more b/b/p's to scan. (c-safe (while t - (setq pa+1 (scan-lists ren+1 1 -1) ; Into (/{/[; might signal + (setq pa+1 (c-sc-scan-lists ren+1 1 -1) ; Into (/{/[; might signal paren+1s (cons pa+1 paren+1s)) - (setq ren+1 (scan-lists pa+1 1 1)) ; Out of )/}/]; might signal + (setq ren+1 (c-sc-scan-lists pa+1 1 1)) ; Out of )/}/]; might signal (if (and (eq (char-before pa+1) ?{)) ; Check for a macro later. (setq bra+1 pa+1)) (setcar paren+1s ren+1))) @@ -2824,7 +2844,7 @@ comment at the start of cc-engine.el for more info." ;; finished - we just need to check for having found an ;; unmatched )/}/], which we ignore. Such a )/}/] can't be in a ;; macro, due the action of `c-neutralize-syntax-in-CPP'. - (c-safe (setq ren+1 (scan-lists ren+1 1 1)))))) ; acts as loop control. + (c-safe (setq ren+1 (c-sc-scan-lists ren+1 1 1)))))) ; acts as loop control. ;; Record the final, innermost, brace-pair if there is one. (c-state-push-any-brace-pair bra+1 macro-start-or-here) @@ -2927,7 +2947,7 @@ comment at the start of cc-engine.el for more info." ;; The next loop jumps forward out of a nested level of parens each ;; time round; the corresponding elements in `c-state-cache' are ;; removed. `pos' is just after the brace-pair or the open paren at - ;; (car c-state-cache). There can be no open parens/braces/brackets + ;; (car c-state-cache). There can be no open parens/braces/brackets ;; between `start-point'/`start-point-actual-macro-start' and HERE, ;; due to the interface spec to this function. (setq pos (if (and start-point-actual-macro-end @@ -2951,7 +2971,7 @@ comment at the start of cc-engine.el for more info." ;; Scan! (setq pps-state - (parse-partial-sexp + (c-sc-parse-partial-sexp (point) (if (< (point) pps-point) pps-point here) target-depth nil pps-state)) @@ -2982,9 +3002,10 @@ comment at the start of cc-engine.el for more info." ))) (if (< (point) pps-point) - (setq pps-state (parse-partial-sexp (point) pps-point - nil nil ; TARGETDEPTH, STOPBEFORE - pps-state))) + (setq pps-state (c-sc-parse-partial-sexp + (point) pps-point + nil nil ; TARGETDEPTH, STOPBEFORE + pps-state))) ;; If the last paren pair we moved out of was actually a brace pair, ;; insert it into `c-state-cache'. @@ -3105,12 +3126,15 @@ comment at the start of cc-engine.el for more info." (save-restriction (narrow-to-region here-bol (point-max)) (setq pos here-lit-start) - (c-safe (while (setq pa (scan-lists pos -1 1)) + (c-safe (while (setq pa (c-sc-scan-lists pos -1 1)) (setq pos pa)))) ; might signal nil)) ; for the cond - ((setq ren (c-safe-scan-lists pos -1 -1 too-far-back)) - ;; CASE 3: After a }/)/] before `here''s BOL. + ((save-restriction + (narrow-to-region too-far-back (point-max)) + (setq ren (c-safe (c-sc-scan-lists pos -1 -1)))) + + ;; CASE 3: After a }/)/] before `here''s BOL. (list (1+ ren) (and dropped-cons pos) nil)) ; Return value (t @@ -3293,7 +3317,7 @@ comment at the start of cc-engine.el for more info." (setq res (c-remove-stale-state-cache start-point here here-bopl)) (setq cache-pos (car res) scan-backward-pos (cadr res) - cons-separated (car (cddr res)) + cons-separated (car (cddr res)) bopl-state (cadr (cddr res))) ; will be nil if (< here-bopl ; start-point) (if (and scan-backward-pos @@ -3332,15 +3356,19 @@ comment at the start of cc-engine.el for more info." ;; of all parens in preprocessor constructs, except for any such construct ;; containing point. We can then call `c-invalidate-state-cache-1' without ;; worrying further about macros and template delimiters. - (c-with-<->-as-parens-suppressed - (if (and c-state-old-cpp-beg - (< c-state-old-cpp-beg here)) - (c-with-all-but-one-cpps-commented-out - c-state-old-cpp-beg - (min c-state-old-cpp-end here) - (c-invalidate-state-cache-1 here)) - (c-with-cpps-commented-out - (c-invalidate-state-cache-1 here))))) + (if (eval-when-compile (memq 'category-properties c-emacs-features)) + ;; Emacs + (c-with-<->-as-parens-suppressed + (if (and c-state-old-cpp-beg + (< c-state-old-cpp-beg here)) + (c-with-all-but-one-cpps-commented-out + c-state-old-cpp-beg + (min c-state-old-cpp-end here) + (c-invalidate-state-cache-1 here)) + (c-with-cpps-commented-out + (c-invalidate-state-cache-1 here)))) + ;; XEmacs + (c-invalidate-state-cache-1 here))) (defmacro c-state-maybe-marker (place marker) ;; If PLACE is non-nil, return a marker marking it, otherwise nil. @@ -3368,13 +3396,17 @@ comment at the start of cc-engine.el for more info." ;; FIXME!!! Put in a `condition-case' here to protect the integrity of the ;; subsystem. (prog1 - (c-with-<->-as-parens-suppressed - (if (and here-cpp-beg (> here-cpp-end here-cpp-beg)) - (c-with-all-but-one-cpps-commented-out - here-cpp-beg here-cpp-end - (c-parse-state-1)) - (c-with-cpps-commented-out - (c-parse-state-1)))) + (if (eval-when-compile (memq 'category-properties c-emacs-features)) + ;; Emacs + (c-with-<->-as-parens-suppressed + (if (and here-cpp-beg (> here-cpp-end here-cpp-beg)) + (c-with-all-but-one-cpps-commented-out + here-cpp-beg here-cpp-end + (c-parse-state-1)) + (c-with-cpps-commented-out + (c-parse-state-1)))) + ;; XEmacs + (c-parse-state-1)) (setq c-state-old-cpp-beg (c-state-maybe-marker here-cpp-beg c-state-old-cpp-beg-marker) c-state-old-cpp-end @@ -3389,6 +3421,7 @@ comment at the start of cc-engine.el for more info." (defvar c-parse-state-point nil) (defvar c-parse-state-state nil) +(make-variable-buffer-local 'c-parse-state-state) (defun c-record-parse-state-state () (setq c-parse-state-point (point)) (setq c-parse-state-state @@ -3396,9 +3429,9 @@ comment at the start of cc-engine.el for more info." (lambda (arg) (let ((val (symbol-value arg))) (cons arg - (if (consp val) - (copy-tree val) - val)))) + (cond ((consp val) (copy-tree val)) + ((markerp val) (copy-marker val)) + (t val))))) '(c-state-cache c-state-cache-good-pos c-state-nonlit-pos-cache @@ -3418,7 +3451,11 @@ comment at the start of cc-engine.el for more info." (concat "(setq " (mapconcat (lambda (arg) - (format "%s %s%s" (car arg) (if (atom (cdr arg)) "" "'") (cdr arg))) + (format "%s %s%s" (car arg) + (if (atom (cdr arg)) "" "'") + (if (markerp (cdr arg)) + (format "(copy-marker %s)" (marker-position (cdr arg))) + (cdr arg)))) c-parse-state-state " ") ")"))) @@ -4163,7 +4200,7 @@ comment at the start of cc-engine.el for more info." ;; Use `parse-partial-sexp' from a safe position down to the point to check ;; if it's outside comments and strings. (save-excursion - (let ((pos (point)) safe-pos state pps-end-pos) + (let ((pos (point)) safe-pos state) ;; Pick a safe position as close to the point as possible. ;; ;; FIXME: Consult `syntax-ppss' here if our cache doesn't give a good @@ -4245,16 +4282,18 @@ comment at the start of cc-engine.el for more info." ;; loops when it hasn't succeeded. (while (and - (< (skip-chars-backward skip-chars limit) 0) + (let ((pos (point))) + (while (and + (< (skip-chars-backward skip-chars limit) 0) + ;; Don't stop inside a literal. + (when (setq lit-beg (c-ssb-lit-begin)) + (goto-char lit-beg) + t))) + (< (point) pos)) (let ((pos (point)) state-2 pps-end-pos) (cond - ;; Don't stop inside a literal - ((setq lit-beg (c-ssb-lit-begin)) - (goto-char lit-beg) - t) - ((and paren-level (save-excursion (setq state-2 (parse-partial-sexp @@ -4760,7 +4799,7 @@ comment at the start of cc-engine.el for more info." (unless cfd-prop-match (save-excursion (while (progn - (goto-char (next-single-property-change + (goto-char (c-next-single-property-change (point) 'c-type nil cfd-limit)) (and (< (point) cfd-limit) (not (eq (c-get-char-property (1- (point)) 'c-type) @@ -4800,7 +4839,7 @@ comment at the start of cc-engine.el for more info." ;; Pseudo match inside a comment or string literal. Skip out ;; of comments and string literals. (while (progn - (goto-char (next-single-property-change + (goto-char (c-next-single-property-change (point) 'face nil cfd-limit)) (and (< (point) cfd-limit) (c-got-face-at (point) c-literal-faces)))) @@ -4855,14 +4894,17 @@ comment at the start of cc-engine.el for more info." ;; it should return non-nil to ensure that the next search will find them. ;; ;; Such a spot is: - ;; o The first token after bob. - ;; o The first token after the end of submatch 1 in - ;; `c-decl-prefix-or-start-re' when that submatch matches. - ;; o The start of each `c-decl-prefix-or-start-re' match when - ;; submatch 1 doesn't match. - ;; o The first token after the end of each occurrence of the - ;; `c-type' text property with the value `c-decl-end', provided - ;; `c-type-decl-end-used' is set. + ;; o The first token after bob. + ;; o The first token after the end of submatch 1 in + ;; `c-decl-prefix-or-start-re' when that submatch matches. This + ;; submatch is typically a (L or R) brace or paren, a ;, or a ,. + ;; o The start of each `c-decl-prefix-or-start-re' match when + ;; submatch 1 doesn't match. This is, for example, the keyword + ;; "class" in Pike. + ;; o The start of a previously recognized declaration; "recognized" + ;; means that the last char of the previous token has a `c-type' + ;; text property with the value `c-decl-end'; this only holds + ;; when `c-type-decl-end-used' is set. ;; ;; Only a spot that match CFD-DECL-RE and whose face is in the ;; CFD-FACE-CHECKLIST list causes CFD-FUN to be called. The face @@ -4894,7 +4936,7 @@ comment at the start of cc-engine.el for more info." ;; ;; This function might do hidden buffer changes. - (let ((cfd-start-pos (point)) + (let ((cfd-start-pos (point)) ; never changed (cfd-buffer-end (point-max)) ;; The end of the token preceding the decl spot last found ;; with `c-decl-prefix-or-start-re'. `cfd-limit' if there's @@ -4933,10 +4975,20 @@ comment at the start of cc-engine.el for more info." ;; statement or declaration, which is earlier than the first ;; returned match. + ;; This `cond' moves back over any literals or macros. It has special + ;; handling for when the region being searched is entirely within a + ;; macro. It sets `cfd-continue-pos' (unless we've reached + ;; `cfd-limit'). (cond ;; First we need to move to a syntactically relevant position. ;; Begin by backing out of comment or string literals. + ;; + ;; This arm of the cond actually triggers if we're in a literal, + ;; and cfd-limit is at most at BONL. ((and + ;; This arm of the `and' moves backwards out of a literal when + ;; the face at point is a literal face. In this case, its value + ;; is always non-nil. (when (c-got-face-at (point) c-literal-faces) ;; Try to use the faces to back up to the start of the ;; literal. FIXME: What if the point is on a declaration @@ -4965,7 +5017,7 @@ comment at the start of cc-engine.el for more info." (let ((range (c-literal-limits))) (if range (goto-char (car range))))) - (setq start-in-literal (point))) + (setq start-in-literal (point))) ; end of `and' arm. ;; The start is in a literal. If the limit is in the same ;; one we don't have to find a syntactic position etc. We @@ -4976,22 +5028,22 @@ comment at the start of cc-engine.el for more info." (save-excursion (goto-char cfd-start-pos) (while (progn - (goto-char (next-single-property-change + (goto-char (c-next-single-property-change (point) 'face nil cfd-limit)) (and (< (point) cfd-limit) (c-got-face-at (point) c-literal-faces)))) - (= (point) cfd-limit))) + (= (point) cfd-limit))) ; end of `cond' arm condition ;; Completely inside a literal. Set up variables to trig the ;; (< cfd-continue-pos cfd-start-pos) case below and it'll ;; find a suitable start position. - (setq cfd-continue-pos start-in-literal)) + (setq cfd-continue-pos start-in-literal)) ; end of `cond' arm ;; Check if the region might be completely inside a macro, to ;; optimize that like the completely-inside-literal above. ((save-excursion (and (= (forward-line 1) 0) - (bolp) ; forward-line has funny behavior at eob. + (bolp) ; forward-line has funny behavior at eob. (>= (point) cfd-limit) (progn (backward-char) (eq (char-before) ?\\)))) @@ -5001,6 +5053,8 @@ comment at the start of cc-engine.el for more info." (setq cfd-continue-pos (1- cfd-start-pos) start-in-macro t)) + ;; The default arm of the `cond' moves back over any macro we're in + ;; and over any syntactic WS. It sets `c-find-decl-syntactic-pos'. (t ;; Back out of any macro so we don't miss any declaration ;; that could follow after it. @@ -5047,10 +5101,10 @@ comment at the start of cc-engine.el for more info." (< (point) cfd-limit)) ;; Do an initial search now. In the bob case above it's ;; only done to search for a `c-decl-end' spot. - (c-find-decl-prefix-search)) + (c-find-decl-prefix-search)) ; sets cfd-continue-pos (setq c-find-decl-match-pos (and (< cfd-match-pos cfd-start-pos) - cfd-match-pos))))) + cfd-match-pos))))) ; end of `cond' ;; Advance `cfd-continue-pos' if it's before the start position. ;; The closest continue position that might have effect at or @@ -5109,7 +5163,7 @@ comment at the start of cc-engine.el for more info." ;; `cfd-match-pos' so we can continue at the start position. ;; (Note that we don't get here if the first match is below ;; it.) - (goto-char cfd-start-pos))) + (goto-char cfd-start-pos))) ; end of `cond' ;; Delete found matches if they are before our new continue ;; position, so that `c-find-decl-prefix-search' won't back up @@ -5118,7 +5172,7 @@ comment at the start of cc-engine.el for more info." (when (and cfd-re-match (< cfd-re-match cfd-continue-pos)) (setq cfd-re-match nil)) (when (and cfd-prop-match (< cfd-prop-match cfd-continue-pos)) - (setq cfd-prop-match nil))) + (setq cfd-prop-match nil))) ; end of `when' (if syntactic-pos ;; This is the normal case and we got a proper syntactic @@ -5139,9 +5193,10 @@ comment at the start of cc-engine.el for more info." ;; good start position for the search, so do it. (c-find-decl-prefix-search))) - ;; Now loop. Round what? (ACM, 2006/7/5). We already got the first match. - + ;; Now loop, one decl spot per iteration. We already have the first + ;; match in `cfd-match-pos'. (while (progn + ;; Go forward over "false matches", one per iteration. (while (and (< cfd-match-pos cfd-limit) @@ -5182,10 +5237,10 @@ comment at the start of cc-engine.el for more info." (goto-char cfd-continue-pos) t))) - (< (point) cfd-limit)) - (c-find-decl-prefix-search)) + (< (point) cfd-limit)) ; end of "false matches" condition + (c-find-decl-prefix-search)) ; end of "false matches" loop - (< (point) cfd-limit)) + (< (point) cfd-limit)) ; end of condition for "decl-spot" while (when (and (>= (point) cfd-start-pos) @@ -5213,7 +5268,7 @@ comment at the start of cc-engine.el for more info." ;; The matched token was the last thing in the macro, ;; so the whole match is bogus. (setq cfd-macro-end 0) - nil)))) + nil)))) ; end of when condition (c-debug-put-decl-spot-faces cfd-match-pos (point)) (if (funcall cfd-fun cfd-match-pos (/= cfd-macro-end 0)) @@ -5393,8 +5448,8 @@ comment at the start of cc-engine.el for more info." (c-go-list-forward)) (when (equal (c-get-char-property (1- (point)) 'syntax-table) c->-as-paren-syntax) ; should always be true. - (c-clear-char-property (1- (point)) 'category)) - (c-clear-char-property pos 'category)))) + (c-unmark-<->-as-paren (1- (point)))) + (c-unmark-<->-as-paren pos)))) (defun c-clear->-pair-props (&optional pos) ;; POS (default point) is at a > character. If it is marked with @@ -5410,8 +5465,8 @@ comment at the start of cc-engine.el for more info." (c-go-up-list-backward)) (when (equal (c-get-char-property (point) 'syntax-table) c-<-as-paren-syntax) ; should always be true. - (c-clear-char-property (point) 'category)) - (c-clear-char-property pos 'category)))) + (c-unmark-<->-as-paren (point))) + (c-unmark-<->-as-paren pos)))) (defun c-clear-<>-pair-props (&optional pos) ;; POS (default point) is at a < or > character. If it has an @@ -5500,9 +5555,10 @@ comment at the start of cc-engine.el for more info." (c-syntactic-skip-backward "^;{}" (c-determine-limit 512)) (setq new-beg (point)) - ;; Remove the syntax-table properties from each pertinent <...> pair. - ;; Firsly, the ones with the < before beg and > after beg. - (while (c-search-forward-char-property 'category 'c-<-as-paren-syntax beg) + ;; Remove the syntax-table/category properties from each pertinent <...> + ;; pair. Firsly, the ones with the < before beg and > after beg. + (while + (c-search-forward-char-property 'syntax-table c-<-as-paren-syntax beg) (if (c-clear-<-pair-props-if-match-after beg (1- (point))) (setq need-new-beg t))) @@ -5513,7 +5569,7 @@ comment at the start of cc-engine.el for more info." ;; Remove syntax-table properties from the remaining pertinent <...> ;; pairs, those with a > after end and < before end. - (while (c-search-backward-char-property 'category 'c->-as-paren-syntax end) + (while (c-search-backward-char-property 'syntax-table c->-as-paren-syntax end) (if (c-clear->-pair-props-if-match-before end) (setq need-new-end t))) @@ -5526,8 +5582,6 @@ comment at the start of cc-engine.el for more info." (when need-new-end (and (> new-end c-new-END) (setq c-new-END new-end)))))) - - (defun c-after-change-check-<>-operators (beg end) ;; This is called from `after-change-functions' when ;; c-recognize-<>-arglists' is set. It ensures that no "<" or ">" @@ -5862,7 +5916,6 @@ comment at the start of cc-engine.el for more info." ;; Recursive part of `c-forward-<>-arglist'. ;; ;; This function might do hidden buffer changes. - (let ((start (point)) res pos tmp ;; Cover this so that any recorded found type ranges are ;; automatically lost if it turns out to not be an angle @@ -5898,32 +5951,31 @@ comment at the start of cc-engine.el for more info." (while (and (progn (c-forward-syntactic-ws) - (let ((orig-record-found-types c-record-found-types)) - (when (or (and c-record-type-identifiers all-types) - (c-major-mode-is 'java-mode)) - ;; All encountered identifiers are types, so set the - ;; promote flag and parse the type. - (progn - (c-forward-syntactic-ws) - (if (looking-at "\\?") - (forward-char) - (when (looking-at c-identifier-start) - (let ((c-promote-possible-types t) - (c-record-found-types t)) - (c-forward-type)))) - - (c-forward-syntactic-ws) - - (when (or (looking-at "extends") - (looking-at "super")) - (forward-word) - (c-forward-syntactic-ws) + (when (or (and c-record-type-identifiers all-types) + (c-major-mode-is 'java-mode)) + ;; All encountered identifiers are types, so set the + ;; promote flag and parse the type. + (progn + (c-forward-syntactic-ws) + (if (looking-at "\\?") + (forward-char) + (when (looking-at c-identifier-start) (let ((c-promote-possible-types t) (c-record-found-types t)) - (c-forward-type) - (c-forward-syntactic-ws)))))) + (c-forward-type)))) - (setq pos (point)) ; e.g. first token inside the '<' + (c-forward-syntactic-ws) + + (when (or (looking-at "extends") + (looking-at "super")) + (forward-word) + (c-forward-syntactic-ws) + (let ((c-promote-possible-types t) + (c-record-found-types t)) + (c-forward-type) + (c-forward-syntactic-ws))))) + + (setq pos (point)) ; e.g. first token inside the '<' ;; Note: These regexps exploit the match order in \| so ;; that "<>" is matched by "<" rather than "[^>:-]>". @@ -5939,7 +5991,7 @@ comment at the start of cc-engine.el for more info." ;; Either an operator starting with '>' or the end of ;; the angle bracket arglist. - (if (looking-at c->-op-cont-regexp) + (if (looking-at c->-op-without->-cont-regexp) (progn (goto-char (match-end 0)) t) ; Continue the loop. @@ -5988,7 +6040,6 @@ comment at the start of cc-engine.el for more info." (c-keyword-member (c-keyword-sym (match-string 1)) 'c-<>-type-kwds))))))) - ;; It was an angle bracket arglist. (setq c-record-found-types subres) @@ -6014,7 +6065,7 @@ comment at the start of cc-engine.el for more info." (or (and (eq (char-before) ?&) (not (eq (char-after) ?&))) (eq (char-before) ?,))) - ;; Just another argument. Record the position. The + ;; Just another argument. Record the position. The ;; type check stuff that made us stop at it is at ;; the top of the loop. (setq arg-start-pos (cons (point) arg-start-pos))) @@ -6281,7 +6332,8 @@ comment at the start of cc-engine.el for more info." ;; `*-font-lock-extra-types'); ;; o - 'prefix if it's a known prefix of a type; ;; o - 'found if it's a type that matches one in `c-found-types'; - ;; o - 'maybe if it's an identifier that might be a type; or + ;; o - 'maybe if it's an identifier that might be a type; + ;; o - 'decltype if it's a decltype(variable) declaration; - or ;; o - nil if it can't be a type (the point isn't moved then). ;; ;; The point is assumed to be at the beginning of a token. @@ -6311,6 +6363,16 @@ comment at the start of cc-engine.el for more info." (setq res 'prefix))) (cond + ((looking-at c-typeof-key) ; e.g. C++'s "decltype". + (goto-char (match-end 1)) + (c-forward-syntactic-ws) + (setq res (and (eq (char-after) ?\() + (c-safe (c-forward-sexp)) + 'decltype)) + (if res + (c-forward-syntactic-ws) + (goto-char start))) + ((looking-at c-type-prefix-key) ; e.g. "struct", "class", but NOT ; "typedef". (goto-char (match-end 1)) @@ -6426,18 +6488,19 @@ comment at the start of cc-engine.el for more info." (setq res nil))))) (when res - ;; Skip trailing type modifiers. If any are found we know it's + ;; Skip trailing type modifiers. If any are found we know it's ;; a type. (when c-opt-type-modifier-key (while (looking-at c-opt-type-modifier-key) ; e.g. "const", "volatile" (goto-char (match-end 1)) (c-forward-syntactic-ws) (setq res t))) + ;; Step over any type suffix operator. Do not let the existence ;; of these alter the classification of the found type, since ;; these operators typically are allowed in normal expressions ;; too. - (when c-opt-type-suffix-key + (when c-opt-type-suffix-key ; e.g. "..." (while (looking-at c-opt-type-suffix-key) (goto-char (match-end 1)) (c-forward-syntactic-ws))) @@ -6514,7 +6577,7 @@ comment at the start of cc-engine.el for more info." (progn (c-forward-syntactic-ws) t) (if (looking-at "(") (c-go-list-forward) - t))) + t))) (defmacro c-pull-open-brace (ps) ;; Pull the next open brace from PS (which has the form of paren-state), @@ -6525,6 +6588,36 @@ comment at the start of cc-engine.el for more info." (prog1 (car ,ps) (setq ,ps (cdr ,ps))))) +(defun c-back-over-member-initializer-braces () + ;; Point is just after a closing brace/parenthesis. Try to parse this as a + ;; C++ member initializer list, going back to just after the introducing ":" + ;; and returning t. Otherwise return nil, leaving point unchanged. + (let ((here (point)) res) + (setq res + (catch 'done + (when (not (c-go-list-backward)) + (throw 'done nil)) + (c-backward-syntactic-ws) + (when (not (c-simple-skip-symbol-backward)) + (throw 'done nil)) + (c-backward-syntactic-ws) + + (while (eq (char-before) ?,) + (backward-char) + (c-backward-syntactic-ws) + (when (not (memq (char-before) '(?\) ?}))) + (throw 'done nil)) + (when (not (c-go-list-backward)) + (throw 'done nil)) + (c-backward-syntactic-ws) + (when (not (c-simple-skip-symbol-backward)) + (throw 'done nil)) + (c-backward-syntactic-ws)) + + (eq (char-before) ?:))) + (or res (goto-char here)) + res)) + (defun c-back-over-member-initializers () ;; Test whether we are in a C++ member initializer list, and if so, go back ;; to the introducing ":", returning the position of the opening paren of @@ -6649,6 +6742,13 @@ comment at the start of cc-engine.el for more info." ;; Foo::Foo (int b) : Base (b) {} ;; car ^ ^ point ;; + ;; auto foo = 5; + ;; car ^ ^ point + ;; auto cplusplus_11 (int a, char *b) -> decltype (bar): + ;; car ^ ^ point + ;; + ;; + ;; ;; The cdr of the return value is non-nil when a ;; `c-typedef-decl-kwds' specifier is found in the declaration. ;; Specifically it is a dotted pair (A . B) where B is t when a @@ -6714,6 +6814,10 @@ comment at the start of cc-engine.el for more info." ;; If `backup-at-type' is nil then the other variables have ;; undefined values. backup-at-type backup-type-start backup-id-start + ;; This stores `kwd-sym' of the symbol before the current one. + ;; This is needed to distinguish the C++11 version of "auto" from + ;; the pre C++11 meaning. + backup-kwd-sym ;; Set if we've found a specifier (apart from "typedef") that makes ;; the defined identifier(s) types. at-type-decl @@ -6722,6 +6826,10 @@ comment at the start of cc-engine.el for more info." ;; Set if we've found a specifier that can start a declaration ;; where there's no type. maybe-typeless + ;; Save the value of kwd-sym between loops of the "Check for a + ;; type" loop. Needed to distinguish a C++11 "auto" from a pre + ;; C++11 one. + prev-kwd-sym ;; If a specifier is found that also can be a type prefix, ;; these flags are set instead of those above. If we need to ;; back up an identifier, they are copied to the real flag @@ -6739,6 +6847,8 @@ comment at the start of cc-engine.el for more info." backup-if-not-cast ;; For casts, the return position. cast-end + ;; Have we got a new-style C++11 "auto"? + new-style-auto ;; Save `c-record-type-identifiers' and ;; `c-record-ref-identifiers' since ranges are recorded ;; speculatively and should be thrown away if it turns out @@ -6757,11 +6867,12 @@ comment at the start of cc-engine.el for more info." (let* ((start (point)) kwd-sym kwd-clause-end found-type) ;; Look for a specifier keyword clause. - (when (or (looking-at c-prefix-spec-kwds-re) + (when (or (looking-at c-prefix-spec-kwds-re) ;FIXME!!! includes auto (and (c-major-mode-is 'java-mode) (looking-at "@[A-Za-z0-9]+"))) - (if (looking-at c-typedef-key) - (setq at-typedef t)) + (save-match-data + (if (looking-at c-typedef-key) + (setq at-typedef t))) (setq kwd-sym (c-keyword-sym (match-string 1))) (save-excursion (c-forward-keyword-clause 1) @@ -6769,6 +6880,12 @@ comment at the start of cc-engine.el for more info." (when (setq found-type (c-forward-type t)) ; brace-block-too ;; Found a known or possible type or a prefix of a known type. + (when (and (c-major-mode-is 'c++-mode) ; C++11 style "auto"? + (eq prev-kwd-sym (c-keyword-sym "auto")) + (looking-at "[=(]")) ; FIXME!!! proper regexp. + (setq new-style-auto t) + (setq found-type nil) + (goto-char start)) ; position of foo in "auto foo" (when at-type ;; Got two identifiers with nothing but whitespace @@ -6787,6 +6904,7 @@ comment at the start of cc-engine.el for more info." (setq backup-at-type at-type backup-type-start type-start backup-id-start id-start + backup-kwd-sym kwd-sym at-type found-type type-start start id-start (point) @@ -6842,6 +6960,7 @@ comment at the start of cc-engine.el for more info." ;; specifier keyword and we know we're in a ;; declaration. (setq at-decl-or-cast t) + (setq prev-kwd-sym kwd-sym) (goto-char kwd-clause-end)))) @@ -7033,50 +7152,60 @@ comment at the start of cc-engine.el for more info." (c-forward-syntactic-ws)) - (when (and (or maybe-typeless backup-maybe-typeless) - (not got-identifier) - (not got-prefix) - at-type) + (when (or (and new-style-auto + (looking-at c-auto-ops-re)) + (and (or maybe-typeless backup-maybe-typeless) + (not got-identifier) + (not got-prefix) + at-type)) ;; Have found no identifier but `c-typeless-decl-kwds' has ;; matched so we know we're inside a declaration. The ;; preceding type must be the identifier instead. (c-fdoc-shift-type-backward)) + ;; Prepare the "-> type;" for fontification later on. + (when (and new-style-auto + (looking-at c-haskell-op-re)) + (save-excursion + (goto-char (match-end 0)) + (c-forward-syntactic-ws) + (setq type-start (point)) + (setq at-type (c-forward-type)))) + (setq at-decl-or-cast (catch 'at-decl-or-cast ;; CASE 1 - (when (> paren-depth 0) - ;; Encountered something inside parens that isn't matched by - ;; the `c-type-decl-*' regexps, so it's not a type decl - ;; expression. Try to skip out to the same paren depth to - ;; not confuse the cast check below. - (c-safe (goto-char (scan-lists (point) 1 paren-depth))) - ;; If we've found a specifier keyword then it's a - ;; declaration regardless. - (throw 'at-decl-or-cast (eq at-decl-or-cast t))) + (when (> paren-depth 0) + ;; Encountered something inside parens that isn't matched by + ;; the `c-type-decl-*' regexps, so it's not a type decl + ;; expression. Try to skip out to the same paren depth to + ;; not confuse the cast check below. + (c-safe (goto-char (scan-lists (point) 1 paren-depth))) + ;; If we've found a specifier keyword then it's a + ;; declaration regardless. + (throw 'at-decl-or-cast (eq at-decl-or-cast t))) - (setq at-decl-end - (looking-at (cond ((eq context '<>) "[,>]") - (context "[,\)]") - (t "[,;]")))) + (setq at-decl-end + (looking-at (cond ((eq context '<>) "[,>]") + (context "[,\)]") + (t "[,;]")))) - ;; Now we've collected info about various characteristics of - ;; the construct we're looking at. Below follows a decision - ;; tree based on that. It's ordered to check more certain - ;; signs before less certain ones. + ;; Now we've collected info about various characteristics of + ;; the construct we're looking at. Below follows a decision + ;; tree based on that. It's ordered to check more certain + ;; signs before less certain ones. - (if got-identifier - (progn - - ;; CASE 2 - (when (and (or at-type maybe-typeless) - (not (or got-prefix got-parens))) - ;; Got another identifier directly after the type, so it's a - ;; declaration. - (throw 'at-decl-or-cast t)) + (if got-identifier + (progn + ;; CASE 2 + (when (and (or at-type maybe-typeless) + (not (or got-prefix got-parens))) + ;; Got another identifier directly after the type, so it's a + ;; declaration. + (throw 'at-decl-or-cast t)) (when (and got-parens (not got-prefix) @@ -7098,9 +7227,9 @@ comment at the start of cc-engine.el for more info." (c-fdoc-shift-type-backward))) ;; Found no identifier. - (if backup-at-type - (progn + (if backup-at-type + (progn ;; CASE 3 (when (= (point) start) @@ -7123,250 +7252,251 @@ comment at the start of cc-engine.el for more info." (setq backup-if-not-cast t) (throw 'at-decl-or-cast t))) - ;; CASE 4 - (when (and got-suffix - (not got-prefix) - (not got-parens)) - ;; Got a plain list of identifiers followed by some suffix. - ;; If this isn't a cast then the last identifier probably is - ;; the declared one and we should back up to the previous - ;; type. - (setq backup-if-not-cast t) - (throw 'at-decl-or-cast t))) - - ;; CASE 5 - (when (eq at-type t) - ;; If the type is known we know that there can't be any - ;; identifier somewhere else, and it's only in declarations in - ;; e.g. function prototypes and in casts that the identifier may - ;; be left out. - (throw 'at-decl-or-cast t)) - - (when (= (point) start) - ;; Only got a single identifier (parsed as a type so far). - ;; CASE 6 - (if (and - ;; Check that the identifier isn't at the start of an - ;; expression. - at-decl-end - (cond - ((eq context 'decl) - ;; Inside an arglist that contains declarations. If K&R - ;; style declarations and parenthesis style initializers - ;; aren't allowed then the single identifier must be a - ;; type, else we require that it's known or found - ;; (primitive types are handled above). - (or (and (not c-recognize-knr-p) - (not c-recognize-paren-inits)) - (memq at-type '(known found)))) - ((eq context '<>) - ;; Inside a template arglist. Accept known and found - ;; types; other identifiers could just as well be - ;; constants in C++. - (memq at-type '(known found))))) - (throw 'at-decl-or-cast t) - ;; CASE 7 - ;; Can't be a valid declaration or cast, but if we've found a - ;; specifier it can't be anything else either, so treat it as - ;; an invalid/unfinished declaration or cast. - (throw 'at-decl-or-cast at-decl-or-cast)))) - - (if (and got-parens - (not got-prefix) - (not context) - (not (eq at-type t)) - (or backup-at-type - maybe-typeless - backup-maybe-typeless - (when c-recognize-typeless-decls - (or (not got-suffix) - (not (looking-at - c-after-suffixed-type-maybe-decl-key)))))) - ;; Got an empty paren pair and a preceding type that probably - ;; really is the identifier. Shift the type backwards to make - ;; the last one the identifier. This is analogous to the - ;; "backtracking" done inside the `c-type-decl-suffix-key' loop - ;; above. - ;; - ;; Exception: In addition to the conditions in that - ;; "backtracking" code, do not shift backward if we're not - ;; looking at either `c-after-suffixed-type-decl-key' or "[;,]". - ;; Since there's no preceding type, the shift would mean that - ;; the declaration is typeless. But if the regexp doesn't match - ;; then we will simply fall through in the tests below and not - ;; recognize it at all, so it's better to try it as an abstract - ;; declarator instead. - (c-fdoc-shift-type-backward) - - ;; Still no identifier. - ;; CASE 8 - (when (and got-prefix (or got-parens got-suffix)) - ;; Require `got-prefix' together with either `got-parens' or - ;; `got-suffix' to recognize it as an abstract declarator: - ;; `got-parens' only is probably an empty function call. - ;; `got-suffix' only can build an ordinary expression together - ;; with the preceding identifier which we've taken as a type. - ;; We could actually accept on `got-prefix' only, but that can - ;; easily occur temporarily while writing an expression so we - ;; avoid that case anyway. We could do a better job if we knew - ;; the point when the fontification was invoked. - (throw 'at-decl-or-cast t)) - - ;; CASE 9 - (when (and at-type - (not got-prefix) - (not got-parens) - got-suffix-after-parens - (eq (char-after got-suffix-after-parens) ?\()) - ;; Got a type, no declarator but a paren suffix. I.e. it's a - ;; normal function call after all (or perhaps a C++ style object - ;; instantiation expression). - (throw 'at-decl-or-cast nil)))) - - ;; CASE 10 - (when at-decl-or-cast - ;; By now we've located the type in the declaration that we know - ;; we're in. - (throw 'at-decl-or-cast t)) - - ;; CASE 11 - (when (and got-identifier - (not context) - (looking-at c-after-suffixed-type-decl-key) - (if (and got-parens + ;; CASE 4 + (when (and got-suffix (not got-prefix) - (not got-suffix) - (not (eq at-type t))) - ;; Shift the type backward in the case that there's a - ;; single identifier inside parens. That can only - ;; occur in K&R style function declarations so it's - ;; more likely that it really is a function call. - ;; Therefore we only do this after - ;; `c-after-suffixed-type-decl-key' has matched. - (progn (c-fdoc-shift-type-backward) t) - got-suffix-after-parens)) - ;; A declaration according to `c-after-suffixed-type-decl-key'. - (throw 'at-decl-or-cast t)) + (not got-parens)) + ;; Got a plain list of identifiers followed by some suffix. + ;; If this isn't a cast then the last identifier probably is + ;; the declared one and we should back up to the previous + ;; type. + (setq backup-if-not-cast t) + (throw 'at-decl-or-cast t))) - ;; CASE 12 - (when (and (or got-prefix (not got-parens)) - (memq at-type '(t known))) - ;; It's a declaration if a known type precedes it and it can't be a - ;; function call. - (throw 'at-decl-or-cast t)) + ;; CASE 5 + (when (eq at-type t) + ;; If the type is known we know that there can't be any + ;; identifier somewhere else, and it's only in declarations in + ;; e.g. function prototypes and in casts that the identifier may + ;; be left out. + (throw 'at-decl-or-cast t)) - ;; If we get here we can't tell if this is a type decl or a normal - ;; expression by looking at it alone. (That's under the assumption - ;; that normal expressions always can look like type decl expressions, - ;; which isn't really true but the cases where it doesn't hold are so - ;; uncommon (e.g. some placements of "const" in C++) it's not worth - ;; the effort to look for them.) + (when (= (point) start) + ;; Only got a single identifier (parsed as a type so far). + ;; CASE 6 + (if (and + ;; Check that the identifier isn't at the start of an + ;; expression. + at-decl-end + (cond + ((eq context 'decl) + ;; Inside an arglist that contains declarations. If K&R + ;; style declarations and parenthesis style initializers + ;; aren't allowed then the single identifier must be a + ;; type, else we require that it's known or found + ;; (primitive types are handled above). + (or (and (not c-recognize-knr-p) + (not c-recognize-paren-inits)) + (memq at-type '(known found)))) + ((eq context '<>) + ;; Inside a template arglist. Accept known and found + ;; types; other identifiers could just as well be + ;; constants in C++. + (memq at-type '(known found))))) + (throw 'at-decl-or-cast t) + ;; CASE 7 + ;; Can't be a valid declaration or cast, but if we've found a + ;; specifier it can't be anything else either, so treat it as + ;; an invalid/unfinished declaration or cast. + (throw 'at-decl-or-cast at-decl-or-cast)))) + + (if (and got-parens + (not got-prefix) + (not context) + (not (eq at-type t)) + (or backup-at-type + maybe-typeless + backup-maybe-typeless + (when c-recognize-typeless-decls + (or (not got-suffix) + (not (looking-at + c-after-suffixed-type-maybe-decl-key)))))) + ;; Got an empty paren pair and a preceding type that probably + ;; really is the identifier. Shift the type backwards to make + ;; the last one the identifier. This is analogous to the + ;; "backtracking" done inside the `c-type-decl-suffix-key' loop + ;; above. + ;; + ;; Exception: In addition to the conditions in that + ;; "backtracking" code, do not shift backward if we're not + ;; looking at either `c-after-suffixed-type-decl-key' or "[;,]". + ;; Since there's no preceding type, the shift would mean that + ;; the declaration is typeless. But if the regexp doesn't match + ;; then we will simply fall through in the tests below and not + ;; recognize it at all, so it's better to try it as an abstract + ;; declarator instead. + (c-fdoc-shift-type-backward) + + ;; Still no identifier. + ;; CASE 8 + (when (and got-prefix (or got-parens got-suffix)) + ;; Require `got-prefix' together with either `got-parens' or + ;; `got-suffix' to recognize it as an abstract declarator: + ;; `got-parens' only is probably an empty function call. + ;; `got-suffix' only can build an ordinary expression together + ;; with the preceding identifier which we've taken as a type. + ;; We could actually accept on `got-prefix' only, but that can + ;; easily occur temporarily while writing an expression so we + ;; avoid that case anyway. We could do a better job if we knew + ;; the point when the fontification was invoked. + (throw 'at-decl-or-cast t)) + + ;; CASE 9 + (when (and at-type + (not got-prefix) + (not got-parens) + got-suffix-after-parens + (eq (char-after got-suffix-after-parens) ?\()) + ;; Got a type, no declarator but a paren suffix. I.e. it's a + ;; normal function call after all (or perhaps a C++ style object + ;; instantiation expression). + (throw 'at-decl-or-cast nil)))) + + ;; CASE 10 + (when at-decl-or-cast + ;; By now we've located the type in the declaration that we know + ;; we're in. + (throw 'at-decl-or-cast t)) + + ;; CASE 11 + (when (and got-identifier + (not context) + (looking-at c-after-suffixed-type-decl-key) + (if (and got-parens + (not got-prefix) + (not got-suffix) + (not (eq at-type t))) + ;; Shift the type backward in the case that there's a + ;; single identifier inside parens. That can only + ;; occur in K&R style function declarations so it's + ;; more likely that it really is a function call. + ;; Therefore we only do this after + ;; `c-after-suffixed-type-decl-key' has matched. + (progn (c-fdoc-shift-type-backward) t) + got-suffix-after-parens)) + ;; A declaration according to `c-after-suffixed-type-decl-key'. + (throw 'at-decl-or-cast t)) + + ;; CASE 12 + (when (and (or got-prefix (not got-parens)) + (memq at-type '(t known))) + ;; It's a declaration if a known type precedes it and it can't be a + ;; function call. + (throw 'at-decl-or-cast t)) + + ;; If we get here we can't tell if this is a type decl or a normal + ;; expression by looking at it alone. (That's under the assumption + ;; that normal expressions always can look like type decl expressions, + ;; which isn't really true but the cases where it doesn't hold are so + ;; uncommon (e.g. some placements of "const" in C++) it's not worth + ;; the effort to look for them.) ;;; 2008-04-16: commented out the next form, to allow the function to recognize ;;; "foo (int bar)" in CC (an implicit type (in class foo) without a semicolon) ;;; as a(n almost complete) declaration, enabling it to be fontified. - ;; CASE 13 - ;; (unless (or at-decl-end (looking-at "=[^=]")) - ;; If this is a declaration it should end here or its initializer(*) - ;; should start here, so check for allowed separation tokens. Note - ;; that this rule doesn't work e.g. with a K&R arglist after a - ;; function header. - ;; - ;; *) Don't check for C++ style initializers using parens - ;; since those already have been matched as suffixes. - ;; - ;; If `at-decl-or-cast' is then we've found some other sign that - ;; it's a declaration or cast, so then it's probably an - ;; invalid/unfinished one. - ;; (throw 'at-decl-or-cast at-decl-or-cast)) + ;; CASE 13 + ;; (unless (or at-decl-end (looking-at "=[^=]")) + ;; If this is a declaration it should end here or its initializer(*) + ;; should start here, so check for allowed separation tokens. Note + ;; that this rule doesn't work e.g. with a K&R arglist after a + ;; function header. + ;; + ;; *) Don't check for C++ style initializers using parens + ;; since those already have been matched as suffixes. + ;; + ;; If `at-decl-or-cast' is then we've found some other sign that + ;; it's a declaration or cast, so then it's probably an + ;; invalid/unfinished one. + ;; (throw 'at-decl-or-cast at-decl-or-cast)) - ;; Below are tests that only should be applied when we're certain to - ;; not have parsed halfway through an expression. + ;; Below are tests that only should be applied when we're certain to + ;; not have parsed halfway through an expression. - ;; CASE 14 - (when (memq at-type '(t known)) - ;; The expression starts with a known type so treat it as a - ;; declaration. - (throw 'at-decl-or-cast t)) + ;; CASE 14 + (when (memq at-type '(t known)) + ;; The expression starts with a known type so treat it as a + ;; declaration. + (throw 'at-decl-or-cast t)) - ;; CASE 15 - (when (and (c-major-mode-is 'c++-mode) - ;; In C++ we check if the identifier is a known type, since - ;; (con|de)structors use the class name as identifier. - ;; We've always shifted over the identifier as a type and - ;; then backed up again in this case. - identifier-type - (or (memq identifier-type '(found known)) - (and (eq (char-after identifier-start) ?~) - ;; `at-type' probably won't be 'found for - ;; destructors since the "~" is then part of the - ;; type name being checked against the list of - ;; known types, so do a check without that - ;; operator. - (or (save-excursion - (goto-char (1+ identifier-start)) - (c-forward-syntactic-ws) - (c-with-syntax-table - c-identifier-syntax-table - (looking-at c-known-type-key))) - (save-excursion - (goto-char (1+ identifier-start)) - ;; We have already parsed the type earlier, - ;; so it'd be possible to cache the end - ;; position instead of redoing it here, but - ;; then we'd need to keep track of another - ;; position everywhere. - (c-check-type (point) - (progn (c-forward-type) - (point)))))))) - (throw 'at-decl-or-cast t)) + ;; CASE 15 + (when (and (c-major-mode-is 'c++-mode) + ;; In C++ we check if the identifier is a known type, since + ;; (con|de)structors use the class name as identifier. + ;; We've always shifted over the identifier as a type and + ;; then backed up again in this case. + identifier-type + (or (memq identifier-type '(found known)) + (and (eq (char-after identifier-start) ?~) + ;; `at-type' probably won't be 'found for + ;; destructors since the "~" is then part of the + ;; type name being checked against the list of + ;; known types, so do a check without that + ;; operator. + (or (save-excursion + (goto-char (1+ identifier-start)) + (c-forward-syntactic-ws) + (c-with-syntax-table + c-identifier-syntax-table + (looking-at c-known-type-key))) + (save-excursion + (goto-char (1+ identifier-start)) + ;; We have already parsed the type earlier, + ;; so it'd be possible to cache the end + ;; position instead of redoing it here, but + ;; then we'd need to keep track of another + ;; position everywhere. + (c-check-type (point) + (progn (c-forward-type) + (point)))))))) + (throw 'at-decl-or-cast t)) - (if got-identifier - (progn - ;; CASE 16 - (when (and got-prefix-before-parens - at-type - (or at-decl-end (looking-at "=[^=]")) - (not context) - (not got-suffix)) - ;; Got something like "foo * bar;". Since we're not inside an - ;; arglist it would be a meaningless expression because the - ;; result isn't used. We therefore choose to recognize it as - ;; a declaration. Do not allow a suffix since it could then - ;; be a function call. - (throw 'at-decl-or-cast t)) + (if got-identifier + (progn + ;; CASE 16 + (when (and got-prefix-before-parens + at-type + (or at-decl-end (looking-at "=[^=]")) + (not context) + (not got-suffix)) + ;; Got something like "foo * bar;". Since we're not inside an + ;; arglist it would be a meaningless expression because the + ;; result isn't used. We therefore choose to recognize it as + ;; a declaration. Do not allow a suffix since it could then + ;; be a function call. + (throw 'at-decl-or-cast t)) - ;; CASE 17 - (when (and (or got-suffix-after-parens - (looking-at "=[^=]")) - (eq at-type 'found) - (not (eq context 'arglist))) - ;; Got something like "a (*b) (c);" or "a (b) = c;". It could - ;; be an odd expression or it could be a declaration. Treat - ;; it as a declaration if "a" has been used as a type - ;; somewhere else (if it's a known type we won't get here). - (throw 'at-decl-or-cast t))) + ;; CASE 17 + (when (and (or got-suffix-after-parens + (looking-at "=[^=]")) + (eq at-type 'found) + (not (eq context 'arglist))) + ;; Got something like "a (*b) (c);" or "a (b) = c;". It could + ;; be an odd expression or it could be a declaration. Treat + ;; it as a declaration if "a" has been used as a type + ;; somewhere else (if it's a known type we won't get here). + (throw 'at-decl-or-cast t))) - ;; CASE 18 - (when (and context - (or got-prefix - (and (eq context 'decl) - (not c-recognize-paren-inits) - (or got-parens got-suffix)))) - ;; Got a type followed by an abstract declarator. If `got-prefix' - ;; is set it's something like "a *" without anything after it. If - ;; `got-parens' or `got-suffix' is set it's "a()", "a[]", "a()[]", - ;; or similar, which we accept only if the context rules out - ;; expressions. - (throw 'at-decl-or-cast t))) + ;; CASE 18 + (when (and context + (or got-prefix + (and (eq context 'decl) + (not c-recognize-paren-inits) + (or got-parens got-suffix)))) + ;; Got a type followed by an abstract declarator. If `got-prefix' + ;; is set it's something like "a *" without anything after it. If + ;; `got-parens' or `got-suffix' is set it's "a()", "a[]", "a()[]", + ;; or similar, which we accept only if the context rules out + ;; expressions. + (throw 'at-decl-or-cast t))) - ;; If we had a complete symbol table here (which rules out - ;; `c-found-types') we should return t due to the disambiguation rule - ;; (in at least C++) that anything that can be parsed as a declaration - ;; is a declaration. Now we're being more defensive and prefer to - ;; highlight things like "foo (bar);" as a declaration only if we're - ;; inside an arglist that contains declarations. - (eq context 'decl)))) + ;; If we had a complete symbol table here (which rules out + ;; `c-found-types') we should return t due to the disambiguation rule + ;; (in at least C++) that anything that can be parsed as a declaration + ;; is a declaration. Now we're being more defensive and prefer to + ;; highlight things like "foo (bar);" as a declaration only if we're + ;; inside an arglist that contains declarations. + ;; CASE 19 + (eq context 'decl)))) ;; The point is now after the type decl expression. @@ -7455,6 +7585,8 @@ comment at the start of cc-engine.el for more info." ;; interactive refontification. (c-put-c-type-property (point) 'c-decl-arg-start)) + ;; Record the type's coordinates in `c-record-type-identifiers' for + ;; later fontification. (when (and c-record-type-identifiers at-type ;; (not (eq at-type t)) ;; There seems no reason to exclude a token from ;; fontification just because it's "a known type that can't @@ -7553,10 +7685,10 @@ comment at the start of cc-engine.el for more info." (c-put-c-type-property (1- (point)) 'c-decl-end) t) - ;; It's an unfinished label. We consider the keyword enough - ;; to recognize it as a label, so that it gets fontified. - ;; Leave the point at the end of it, but don't put any - ;; `c-decl-end' marker. + ;; It's an unfinished label. We consider the keyword enough + ;; to recognize it as a label, so that it gets fontified. + ;; Leave the point at the end of it, but don't put any + ;; `c-decl-end' marker. (goto-char kwd-end) t)))) @@ -7741,69 +7873,69 @@ comment at the start of cc-engine.el for more info." ;; ;; This function might do hidden buffer changes. - (let ((start (point)) - start-char - (c-promote-possible-types t) - lim - ;; Turn off recognition of angle bracket arglists while parsing - ;; types here since the protocol reference list might then be - ;; considered part of the preceding name or superclass-name. - c-recognize-<>-arglists) + (let ((start (point)) + start-char + (c-promote-possible-types t) + lim + ;; Turn off recognition of angle bracket arglists while parsing + ;; types here since the protocol reference list might then be + ;; considered part of the preceding name or superclass-name. + c-recognize-<>-arglists) - (if (or - (when (looking-at - (eval-when-compile - (c-make-keywords-re t - (append (c-lang-const c-protection-kwds objc) - '("@end")) - 'objc-mode))) - (goto-char (match-end 1)) - t) + (if (or + (when (looking-at + (eval-when-compile + (c-make-keywords-re t + (append (c-lang-const c-protection-kwds objc) + '("@end")) + 'objc-mode))) + (goto-char (match-end 1)) + t) - (and - (looking-at - (eval-when-compile - (c-make-keywords-re t - '("@interface" "@implementation" "@protocol") - 'objc-mode))) - - ;; Handle the name of the class itself. - (progn -; (c-forward-token-2) ; 2006/1/13 This doesn't move if the token's -; at EOB. - (goto-char (match-end 0)) - (setq lim (point)) - (c-skip-ws-forward) - (c-forward-type)) - - (catch 'break - ;; Look for ": superclass-name" or "( category-name )". - (when (looking-at "[:\(]") - (setq start-char (char-after)) - (forward-char) - (c-forward-syntactic-ws) - (unless (c-forward-type) (throw 'break nil)) - (when (eq start-char ?\() - (unless (eq (char-after) ?\)) (throw 'break nil)) - (forward-char) - (c-forward-syntactic-ws))) - - ;; Look for a protocol reference list. - (if (eq (char-after) ?<) - (let ((c-recognize-<>-arglists t) - (c-parse-and-markup-<>-arglists t) - c-restricted-<>-arglists) - (c-forward-<>-arglist t)) - t)))) + (and + (looking-at + (eval-when-compile + (c-make-keywords-re t + '("@interface" "@implementation" "@protocol") + 'objc-mode))) + ;; Handle the name of the class itself. (progn - (c-backward-syntactic-ws lim) - (c-clear-c-type-property start (1- (point)) 'c-decl-end) - (c-put-c-type-property (1- (point)) 'c-decl-end) - t) + ;; (c-forward-token-2) ; 2006/1/13 This doesn't move if the token's + ;; at EOB. + (goto-char (match-end 0)) + (setq lim (point)) + (c-skip-ws-forward) + (c-forward-type)) - (c-clear-c-type-property start (point) 'c-decl-end) - nil))) + (catch 'break + ;; Look for ": superclass-name" or "( category-name )". + (when (looking-at "[:\(]") + (setq start-char (char-after)) + (forward-char) + (c-forward-syntactic-ws) + (unless (c-forward-type) (throw 'break nil)) + (when (eq start-char ?\() + (unless (eq (char-after) ?\)) (throw 'break nil)) + (forward-char) + (c-forward-syntactic-ws))) + + ;; Look for a protocol reference list. + (if (eq (char-after) ?<) + (let ((c-recognize-<>-arglists t) + (c-parse-and-markup-<>-arglists t) + c-restricted-<>-arglists) + (c-forward-<>-arglist t)) + t)))) + + (progn + (c-backward-syntactic-ws lim) + (c-clear-c-type-property start (1- (point)) 'c-decl-end) + (c-put-c-type-property (1- (point)) 'c-decl-end) + t) + + (c-clear-c-type-property start (point) 'c-decl-end) + nil))) (defun c-beginning-of-inheritance-list (&optional lim) ;; Go to the first non-whitespace after the colon that starts a @@ -7890,7 +8022,7 @@ comment at the start of cc-engine.el for more info." ;; ;; This function might do hidden buffer changes. - (let ((beg (point)) end id-start) + (let ((beg (point)) id-start) (and (eq (c-beginning-of-statement-1 lim) 'same) @@ -7980,54 +8112,54 @@ comment at the start of cc-engine.el for more info." (throw 'knr nil))) (if after-rparen - ;; We're inside a paren. Could it be our argument list....? - (if - (and - (progn - (goto-char after-rparen) - (unless (c-go-list-backward) (throw 'knr nil)) ; - ;; FIXME!!! What about macros between the parens? 2007/01/20 - (setq before-lparen (point))) + ;; We're inside a paren. Could it be our argument list....? + (if + (and + (progn + (goto-char after-rparen) + (unless (c-go-list-backward) (throw 'knr nil)) ; + ;; FIXME!!! What about macros between the parens? 2007/01/20 + (setq before-lparen (point))) - ;; It can't be the arg list if next token is ; or { - (progn (goto-char after-rparen) - (c-forward-syntactic-ws) - (not (memq (char-after) '(?\; ?\{ ?\=)))) + ;; It can't be the arg list if next token is ; or { + (progn (goto-char after-rparen) + (c-forward-syntactic-ws) + (not (memq (char-after) '(?\; ?\{ ?\=)))) - ;; Is the thing preceding the list an identifier (the - ;; function name), or a macro expansion? - (progn - (goto-char before-lparen) - (eq (c-backward-token-2) 0) - (or (eq (c-on-identifier) (point)) - (and (eq (char-after) ?\)) - (c-go-up-list-backward) - (eq (c-backward-token-2) 0) - (eq (c-on-identifier) (point))))) + ;; Is the thing preceding the list an identifier (the + ;; function name), or a macro expansion? + (progn + (goto-char before-lparen) + (eq (c-backward-token-2) 0) + (or (eq (c-on-identifier) (point)) + (and (eq (char-after) ?\)) + (c-go-up-list-backward) + (eq (c-backward-token-2) 0) + (eq (c-on-identifier) (point))))) - ;; Have we got a non-empty list of comma-separated - ;; identifiers? - (progn - (goto-char before-lparen) - (c-forward-token-2) ; to first token inside parens - (and - (c-on-identifier) - (c-forward-token-2) - (catch 'id-list - (while (eq (char-after) ?\,) - (c-forward-token-2) - (unless (c-on-identifier) (throw 'id-list nil)) - (c-forward-token-2)) - (eq (char-after) ?\)))))) + ;; Have we got a non-empty list of comma-separated + ;; identifiers? + (progn + (goto-char before-lparen) + (c-forward-token-2) ; to first token inside parens + (and + (c-on-identifier) + (c-forward-token-2) + (catch 'id-list + (while (eq (char-after) ?\,) + (c-forward-token-2) + (unless (c-on-identifier) (throw 'id-list nil)) + (c-forward-token-2)) + (eq (char-after) ?\)))))) - ;; ...Yes. We've identified the function's argument list. - (throw 'knr - (progn (goto-char after-rparen) - (c-forward-syntactic-ws) - (point))) + ;; ...Yes. We've identified the function's argument list. + (throw 'knr + (progn (goto-char after-rparen) + (c-forward-syntactic-ws) + (point))) - ;; ...No. The current parens aren't the function's arg list. - (goto-char before-lparen)) + ;; ...No. The current parens aren't the function's arg list. + (goto-char before-lparen)) (or (c-go-list-backward) ; backwards over [ .... ] (throw 'knr nil))))))))) @@ -8233,7 +8365,7 @@ comment at the start of cc-engine.el for more info." (and (progn (while ; keep going back to "[;={"s until we either find - ; no more, or get to one which isn't an "operator =" + ; no more, or get to one which isn't an "operator =" (and (c-syntactic-re-search-forward "[;={]" start t t t) (eq (char-before) ?=) c-overloadable-operators-regexp @@ -8347,10 +8479,7 @@ comment at the start of cc-engine.el for more info." (when (and c-recognize-<>-arglists (eq (char-before) ?>)) ;; Could be at the end of a template arglist. - (let ((c-parse-and-markup-<>-arglists t) - (c-disallow-comma-in-<>-arglists - (and containing-sexp - (not (eq (char-after containing-sexp) ?{))))) + (let ((c-parse-and-markup-<>-arglists t)) (while (and (c-backward-<>-arglist nil limit) (progn @@ -8374,31 +8503,44 @@ comment at the start of cc-engine.el for more info." (cond ((c-syntactic-re-search-forward c-decl-block-key open-brace t t t) (goto-char (setq kwd-start (match-beginning 0))) - (or + (and + ;; Exclude cases where we matched what would ordinarily + ;; be a block declaration keyword, except where it's not + ;; legal because it's part of a "compound keyword" like + ;; "enum class". Of course, if c-after-brace-list-key + ;; is nil, we can skip the test. + (or (equal c-after-brace-list-key "\\<\\>") + (save-match-data + (save-excursion + (not + (and + (looking-at c-after-brace-list-key) + (= (c-backward-token-2 1 t) 0) + (looking-at c-brace-list-key)))))) + (or + ;; Found a keyword that can't be a type? + (match-beginning 1) - ;; Found a keyword that can't be a type? - (match-beginning 1) + ;; Can be a type too, in which case it's the return type of a + ;; function (under the assumption that no declaration level + ;; block construct starts with a type). + (not (c-forward-type)) - ;; Can be a type too, in which case it's the return type of a - ;; function (under the assumption that no declaration level - ;; block construct starts with a type). - (not (c-forward-type)) - - ;; Jumped over a type, but it could be a declaration keyword - ;; followed by the declared identifier that we've jumped over - ;; instead (e.g. in "class Foo {"). If it indeed is a type - ;; then we should be at the declarator now, so check for a - ;; valid declarator start. - ;; - ;; Note: This doesn't cope with the case when a declared - ;; identifier is followed by e.g. '(' in a language where '(' - ;; also might be part of a declarator expression. Currently - ;; there's no such language. - (not (or (looking-at c-symbol-start) - (looking-at c-type-decl-prefix-key))))) + ;; Jumped over a type, but it could be a declaration keyword + ;; followed by the declared identifier that we've jumped over + ;; instead (e.g. in "class Foo {"). If it indeed is a type + ;; then we should be at the declarator now, so check for a + ;; valid declarator start. + ;; + ;; Note: This doesn't cope with the case when a declared + ;; identifier is followed by e.g. '(' in a language where '(' + ;; also might be part of a declarator expression. Currently + ;; there's no such language. + (not (or (looking-at c-symbol-start) + (looking-at c-type-decl-prefix-key)))))) ;; In Pike a list of modifiers may be followed by a brace - ;; to make them apply to many identifiers. Note that the + ;; to make them apply to many identifiers. Note that the ;; match data will be empty on return in this case. ((and (c-major-mode-is 'pike-mode) (progn @@ -8500,11 +8642,44 @@ comment at the start of cc-engine.el for more info." (not (looking-at "="))))) b-pos))) +(defun c-backward-colon-prefixed-type () + ;; We're at the token after what might be a type prefixed with a colon. Try + ;; moving backward over this type and the colon. On success, return t and + ;; leave point before colon; on failure, leave point unchanged. Will clobber + ;; match data. + (let ((here (point)) + (colon-pos nil)) + (save-excursion + (while + (and (eql (c-backward-token-2) 0) + (or (not (looking-at "\\s)")) + (c-go-up-list-backward)) + (cond + ((eql (char-after) ?:) + (setq colon-pos (point)) + (forward-char) + (c-forward-syntactic-ws) + (or (and (c-forward-type) + (progn (c-forward-syntactic-ws) + (eq (point) here))) + (setq colon-pos nil)) + nil) + ((eql (char-after) ?\() + t) + ((looking-at c-symbol-key) + t) + (t nil))))) + (when colon-pos + (goto-char colon-pos) + t))) + (defun c-backward-over-enum-header () ;; We're at a "{". Move back to the enum-like keyword that starts this ;; declaration and return t, otherwise don't move and return nil. (let ((here (point)) up-sexp-pos before-identifier) + (when c-recognize-post-brace-list-type-p + (c-backward-colon-prefixed-type)) (while (and (eq (c-backward-token-2) 0) @@ -8515,10 +8690,11 @@ comment at the start of cc-engine.el for more info." (not before-identifier)) (setq before-identifier t)) ((and before-identifier - (or (eq (char-after) ?,) + (or (eql (char-after) ?,) (looking-at c-postfix-decl-spec-key))) (setq before-identifier nil) t) + ((looking-at c-after-brace-list-key) t) ((looking-at c-brace-list-key) nil) ((and c-recognize-<>-arglists (eq (char-after) ?<) @@ -8556,86 +8732,86 @@ comment at the start of cc-engine.el for more info." (while (and (not bufpos) containing-sexp) (when paren-state - (if (consp (car paren-state)) - (setq lim (cdr (car paren-state)) - paren-state (cdr paren-state)) - (setq lim (car paren-state))) - (when paren-state - (setq next-containing (car paren-state) - paren-state (cdr paren-state)))) - (goto-char containing-sexp) - (if (c-looking-at-inexpr-block next-containing next-containing) - ;; We're in an in-expression block of some kind. Do not - ;; check nesting. We deliberately set the limit to the - ;; containing sexp, so that c-looking-at-inexpr-block - ;; doesn't check for an identifier before it. - (setq containing-sexp nil) - ;; see if the open brace is preceded by = or [...] in - ;; this statement, but watch out for operator= - (setq braceassignp 'dontknow) - (c-backward-token-2 1 t lim) - ;; Checks to do only on the first sexp before the brace. - (when (and c-opt-inexpr-brace-list-key - (eq (char-after) ?\[)) - ;; In Java, an initialization brace list may follow - ;; directly after "new Foo[]", so check for a "new" - ;; earlier. - (while (eq braceassignp 'dontknow) - (setq braceassignp - (cond ((/= (c-backward-token-2 1 t lim) 0) nil) - ((looking-at c-opt-inexpr-brace-list-key) t) - ((looking-at "\\sw\\|\\s_\\|[.[]") - ;; Carry on looking if this is an - ;; identifier (may contain "." in Java) - ;; or another "[]" sexp. - 'dontknow) - (t nil))))) - ;; Checks to do on all sexps before the brace, up to the - ;; beginning of the statement. + (if (consp (car paren-state)) + (setq lim (cdr (car paren-state)) + paren-state (cdr paren-state)) + (setq lim (car paren-state))) + (when paren-state + (setq next-containing (car paren-state) + paren-state (cdr paren-state)))) + (goto-char containing-sexp) + (if (c-looking-at-inexpr-block next-containing next-containing) + ;; We're in an in-expression block of some kind. Do not + ;; check nesting. We deliberately set the limit to the + ;; containing sexp, so that c-looking-at-inexpr-block + ;; doesn't check for an identifier before it. + (setq containing-sexp nil) + ;; see if the open brace is preceded by = or [...] in + ;; this statement, but watch out for operator= + (setq braceassignp 'dontknow) + (c-backward-token-2 1 t lim) + ;; Checks to do only on the first sexp before the brace. + (when (and c-opt-inexpr-brace-list-key + (eq (char-after) ?\[)) + ;; In Java, an initialization brace list may follow + ;; directly after "new Foo[]", so check for a "new" + ;; earlier. (while (eq braceassignp 'dontknow) - (cond ((eq (char-after) ?\;) - (setq braceassignp nil)) - ((and class-key - (looking-at class-key)) - (setq braceassignp nil)) - ((eq (char-after) ?=) - ;; We've seen a =, but must check earlier tokens so - ;; that it isn't something that should be ignored. - (setq braceassignp 'maybe) - (while (and (eq braceassignp 'maybe) - (zerop (c-backward-token-2 1 t lim))) - (setq braceassignp - (cond - ;; Check for operator = - ((and c-opt-op-identifier-prefix - (looking-at c-opt-op-identifier-prefix)) - nil) - ;; Check for `= in Pike. - ((and (c-major-mode-is 'pike-mode) - (or (eq (char-after) ?`) - ;; Special case for Pikes - ;; `[]=, since '[' is not in - ;; the punctuation class. - (and (eq (char-after) ?\[) - (eq (char-before) ?`)))) - nil) - ((looking-at "\\s.") 'maybe) - ;; make sure we're not in a C++ template - ;; argument assignment - ((and - (c-major-mode-is 'c++-mode) - (save-excursion - (let ((here (point)) - (pos< (progn - (skip-chars-backward "^<>") - (point)))) - (and (eq (char-before) ?<) - (not (c-crosses-statement-barrier-p - pos< here)) - (not (c-in-literal)) - )))) - nil) - (t t)))))) + (setq braceassignp + (cond ((/= (c-backward-token-2 1 t lim) 0) nil) + ((looking-at c-opt-inexpr-brace-list-key) t) + ((looking-at "\\sw\\|\\s_\\|[.[]") + ;; Carry on looking if this is an + ;; identifier (may contain "." in Java) + ;; or another "[]" sexp. + 'dontknow) + (t nil))))) + ;; Checks to do on all sexps before the brace, up to the + ;; beginning of the statement. + (while (eq braceassignp 'dontknow) + (cond ((eq (char-after) ?\;) + (setq braceassignp nil)) + ((and class-key + (looking-at class-key)) + (setq braceassignp nil)) + ((eq (char-after) ?=) + ;; We've seen a =, but must check earlier tokens so + ;; that it isn't something that should be ignored. + (setq braceassignp 'maybe) + (while (and (eq braceassignp 'maybe) + (zerop (c-backward-token-2 1 t lim))) + (setq braceassignp + (cond + ;; Check for operator = + ((and c-opt-op-identifier-prefix + (looking-at c-opt-op-identifier-prefix)) + nil) + ;; Check for `= in Pike. + ((and (c-major-mode-is 'pike-mode) + (or (eq (char-after) ?`) + ;; Special case for Pikes + ;; `[]=, since '[' is not in + ;; the punctuation class. + (and (eq (char-after) ?\[) + (eq (char-before) ?`)))) + nil) + ((looking-at "\\s.") 'maybe) + ;; make sure we're not in a C++ template + ;; argument assignment + ((and + (c-major-mode-is 'c++-mode) + (save-excursion + (let ((here (point)) + (pos< (progn + (skip-chars-backward "^<>") + (point)))) + (and (eq (char-before) ?<) + (not (c-crosses-statement-barrier-p + pos< here)) + (not (c-in-literal)) + )))) + nil) + (t t)))))) (if (and (eq braceassignp 'dontknow) (/= (c-backward-token-2 1 t lim) 0)) (setq braceassignp nil))) @@ -9158,7 +9334,7 @@ comment at the start of cc-engine.el for more info." (max (c-point 'boi paren-pos) (point)))) (t (c-add-syntax 'defun-block-intro nil)))) - (c-add-syntax 'statement-block-intro nil))) + (c-add-syntax 'statement-block-intro nil))) (if (= paren-pos boi) ;; Always done if the open brace was at boi. The @@ -9328,15 +9504,15 @@ comment at the start of cc-engine.el for more info." ;;annotations. ((and (c-major-mode-is 'java-mode) (setq placeholder (point)) - (c-beginning-of-statement-1) - (progn - (while (and (c-forward-annotation) - (< (point) placeholder)) - (c-forward-syntactic-ws)) - t) - (prog1 - (>= (point) placeholder) - (goto-char placeholder))) + (c-beginning-of-statement-1) + (progn + (while (and (c-forward-annotation) + (< (point) placeholder)) + (c-forward-syntactic-ws)) + t) + (prog1 + (>= (point) placeholder) + (goto-char placeholder))) (c-beginning-of-statement-1 containing-sexp) (c-add-syntax 'annotation-var-cont (point))) @@ -9387,7 +9563,7 @@ comment at the start of cc-engine.el for more info." ((indent-point (point)) (case-fold-search nil) open-paren-in-column-0-is-defun-start - ;; A whole ugly bunch of various temporary variables. Have + ;; A whole ugly bunch of various temporary variables. Have ;; to declare them here since it's not possible to declare ;; a variable with only the scope of a cond test and the ;; following result clauses, and most of this function is a @@ -9442,22 +9618,26 @@ comment at the start of cc-engine.el for more info." (c-keyword-sym (match-string 1))))) ;; Init some position variables. - (if c-state-cache + (if paren-state (progn (setq containing-sexp (car paren-state) paren-state (cdr paren-state)) (if (consp containing-sexp) - (progn - (setq lim (cdr containing-sexp)) - (if (cdr c-state-cache) - ;; Ignore balanced paren. The next entry - ;; can't be another one. - (setq containing-sexp (car (cdr c-state-cache)) - paren-state (cdr paren-state)) - ;; If there is no surrounding open paren then - ;; put the last balanced pair back on paren-state. - (setq paren-state (cons containing-sexp paren-state) - containing-sexp nil))) + (save-excursion + (goto-char (cdr containing-sexp)) + (if (and (c-major-mode-is 'c++-mode) + (c-back-over-member-initializer-braces)) + (c-syntactic-skip-backward "^}" nil t)) + (setq lim (point)) + (if paren-state + ;; Ignore balanced paren. The next entry + ;; can't be another one. + (setq containing-sexp (car paren-state) + paren-state (cdr paren-state)) + ;; If there is no surrounding open paren then + ;; put the last balanced pair back on paren-state. + (setq paren-state (cons containing-sexp paren-state) + containing-sexp nil))) (setq lim (1+ containing-sexp)))) (setq lim (point-min))) @@ -10271,7 +10451,6 @@ comment at the start of cc-engine.el for more info." (c-add-syntax 'topmost-intro-cont (c-point 'boi))) )) - ;; (CASE 6 has been removed.) ;; CASE 7: line is an expression, not a statement. Most @@ -10300,7 +10479,7 @@ comment at the start of cc-engine.el for more info." paren-state)) ;; CASE 7B: Looking at the opening brace of an - ;; in-expression block or brace list. C.f. cases 4, 16A + ;; in-expression block or brace list. C.f. cases 4, 16A ;; and 17E. ((and (eq char-after-ip ?{) (progn @@ -10422,7 +10601,7 @@ comment at the start of cc-engine.el for more info." ))) ;; CASE 9: we are inside a brace-list - ((and (not (c-major-mode-is 'awk-mode)) ; Maybe this isn't needed (ACM, 2002/3/29) + ((and (not (c-major-mode-is 'awk-mode)) ; Maybe this isn't needed (ACM, 2002/3/29) (setq special-brace-list (or (and c-special-brace-lists ;;;; ALWAYS NIL FOR AWK!! (save-excursion @@ -10474,7 +10653,7 @@ comment at the start of cc-engine.el for more info." (if (eq (point) (c-point 'boi)) (c-add-syntax 'brace-list-close (point)) (setq lim (c-most-enclosing-brace c-state-cache (point))) - (c-beginning-of-statement-1 lim) + (c-beginning-of-statement-1 lim nil nil t) (c-add-stmt-syntax 'brace-list-close nil t lim paren-state))) (t @@ -10636,9 +10815,9 @@ comment at the start of cc-engine.el for more info." )) ;; CASE 19: line is an expression, not a statement, and is directly - ;; contained by a template delimiter. Most likely, we are in a + ;; contained by a template delimiter. Most likely, we are in a ;; template arglist within a statement. This case is based on CASE - ;; 7. At some point in the future, we may wish to create more + ;; 7. At some point in the future, we may wish to create more ;; syntactic symbols such as `template-intro', ;; `template-cont-nonempty', etc., and distinguish between them as we ;; do for `arglist-intro' etc. (2009-12-07). @@ -10974,7 +11153,7 @@ Cannot combine absolute offsets %S and %S in `add' method" ;; ;; This function might do hidden buffer changes. (let* ((symbol (c-langelem-sym langelem)) - (match (assq symbol c-offsets-alist)) + (match (assq symbol c-offsets-alist)) (offset (cdr-safe match))) (if match (setq offset (c-evaluate-offset offset langelem symbol)) @@ -11045,4 +11224,8 @@ Cannot combine absolute offsets %S and %S in `add' method" (cc-provide 'cc-engine) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-engine.el ends here diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index bf5630da045..d39376a2f03 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -266,7 +266,7 @@ ;; This function might do hidden buffer changes. (when (c-got-face-at (point) c-literal-faces) (while (progn - (goto-char (next-single-property-change + (goto-char (c-next-single-property-change (point) 'face nil limit)) (and (< (point) limit) (c-got-face-at (point) c-literal-faces)))) @@ -366,39 +366,7 @@ (parse-sexp-lookup-properties (cc-eval-when-compile (boundp 'parse-sexp-lookup-properties)))) - - ;; (while (re-search-forward ,regexp limit t) - ;; (unless (progn - ;; (goto-char (match-beginning 0)) - ;; (c-skip-comments-and-strings limit)) - ;; (goto-char (match-end 0)) - ;; ,@(mapcar - ;; (lambda (highlight) - ;; (if (integerp (car highlight)) - ;; (progn - ;; (unless (eq (nth 2 highlight) t) - ;; (error - ;; "The override flag must currently be t in %s" - ;; highlight)) - ;; (when (nth 3 highlight) - ;; (error - ;; "The laxmatch flag may currently not be set in %s" - ;; highlight)) - ;; `(save-match-data - ;; (c-put-font-lock-face - ;; (match-beginning ,(car highlight)) - ;; (match-end ,(car highlight)) - ;; ,(elt highlight 1)))) - ;; (when (nth 3 highlight) - ;; (error "Match highlights currently not supported in %s" - ;; highlight)) - ;; `(progn - ;; ,(nth 1 highlight) - ;; (save-match-data ,(car highlight)) - ;; ,(nth 2 highlight)))) - ;; highlights))) ,(c-make-font-lock-search-form regexp highlights)) - nil))) (defun c-make-font-lock-BO-decl-search-function (regexp &rest highlights) @@ -591,8 +559,7 @@ stuff. Used on level 1 and higher." (progn (c-mark-<-as-paren beg) (c-mark->-as-paren end)) - ;; (c-clear-char-property beg 'syntax-table) - (c-clear-char-property beg 'category))) + (c-unmark-<->-as-paren beg))) nil))))))) ;; #define. @@ -716,7 +683,11 @@ stuff. Used on level 1 and higher." (let ((start (1- (point)))) (save-excursion (and (eq (elt (parse-partial-sexp start (c-point 'eol)) 8) start) - (if (integerp c-multiline-string-start-char) + (if (if (eval-when-compile (integerp ?c)) + ;; Emacs + (integerp c-multiline-string-start-char) + ;; XEmacs + (characterp c-multiline-string-start-char)) ;; There's no multiline string start char before the ;; string, so newlines aren't allowed. (not (eq (char-before start) c-multiline-string-start-char)) @@ -1037,7 +1008,8 @@ casts and declarations are fontified. Used on level 2 and higher." paren-depth id-face got-init c-last-identifier-range - (separator-prop (if types 'c-decl-type-start 'c-decl-id-start))) + (separator-prop (if types 'c-decl-type-start 'c-decl-id-start)) + brackets-after-id) ;; The following `while' fontifies a single declarator id each time round. ;; It loops only when LIST is non-nil. @@ -1110,17 +1082,21 @@ casts and declarations are fontified. Used on level 2 and higher." ;; Search syntactically to the end of the declarator (";", ;; ",", a closing paren, eob etc) or to the beginning of an ;; initializer or function prototype ("=" or "\\s\("). - ;; Note that the open paren will match array specs in - ;; square brackets, and we treat them as initializers too. - (c-syntactic-re-search-forward - "[;,]\\|\\s)\\|\\'\\|\\(=\\|\\s(\\)" limit t t)) + ;; Note that square brackets are now not also treated as + ;; initializers, since this broke when there were also + ;; initializing brace lists. + (let (found) + (while + (and (setq found (c-syntactic-re-search-forward + "[;,]\\|\\s)\\|\\'\\|\\(=\\|\\s(\\)" limit t t)) + (eq (char-before) ?\[) + (c-go-up-list-forward)) + (setq brackets-after-id t)) + found)) (setq next-pos (match-beginning 0) id-face (if (and (eq (char-after next-pos) ?\() - (let (c-last-identifier-range) - (save-excursion - (goto-char next-pos) - (c-at-toplevel-p)))) + (not brackets-after-id)) 'font-lock-function-name-face 'font-lock-variable-name-face) got-init (and (match-beginning 1) @@ -1146,7 +1122,6 @@ casts and declarations are fontified. Used on level 2 and higher." (when list ;; Jump past any initializer or function prototype to see if ;; there's a ',' to continue at. - (cond ((eq id-face 'font-lock-function-name-face) ;; Skip a parenthesized initializer (C++) or a function ;; prototype. @@ -1214,8 +1189,8 @@ casts and declarations are fontified. Used on level 2 and higher." ;; o - nil, if not in an arglist at all. This includes the ;; parenthesized condition which follows "if", "while", etc. context - ;; The position of the next token after the closing paren of - ;; the last detected cast. + ;; A list of starting positions of possible type declarations, or of + ;; the typedef preceding one, if any. last-cast-end ;; The result from `c-forward-decl-or-cast-1'. decl-or-cast @@ -1279,6 +1254,8 @@ casts and declarations are fontified. Used on level 2 and higher." c-font-lock-maybe-decl-faces (lambda (match-pos inside-macro) + ;; Note to maintainers: don't use `limit' inside this lambda form; + ;; c-find-decl-spots sometimes narrows to less than `limit'. (setq start-pos (point)) (when ;; The result of the form below is true when we don't recognize a @@ -1301,14 +1278,15 @@ casts and declarations are fontified. Used on level 2 and higher." (cond ((not (memq (char-before match-pos) '(?\( ?, ?\[ ?<))) (setq context nil c-restricted-<>-arglists nil)) - ;; A control flow expression + ;; A control flow expression or a decltype ((and (eq (char-before match-pos) ?\() (save-excursion (goto-char match-pos) (backward-char) (c-backward-token-2) (or (looking-at c-block-stmt-2-key) - (looking-at c-block-stmt-1-2-key)))) + (looking-at c-block-stmt-1-2-key) + (looking-at c-typeof-key)))) (setq context nil c-restricted-<>-arglists t)) ;; Near BOB. @@ -1486,33 +1464,38 @@ casts and declarations are fontified. Used on level 2 and higher." c-recognize-knr-p) ; Strictly speaking, bogus, but it ; speeds up lisp.h tremendously. (save-excursion - (setq bod-res (car (c-beginning-of-decl-1 decl-search-lim))) - (if (and (eq bod-res 'same) - (progn - (c-backward-syntactic-ws) - (eq (char-before) ?\}))) - (c-beginning-of-decl-1 decl-search-lim)) + (if (c-back-over-member-initializers) + t ; Can't be at a declarator + (unless (or (eobp) + (looking-at "\\s(\\|\\s)")) + (forward-char)) + (setq bod-res (car (c-beginning-of-decl-1 decl-search-lim))) + (if (and (eq bod-res 'same) + (save-excursion + (c-backward-syntactic-ws) + (eq (char-before) ?\}))) + (c-beginning-of-decl-1 decl-search-lim)) - ;; We're now putatively at the declaration. - (setq paren-state (c-parse-state)) - ;; At top level or inside a "{"? - (if (or (not (setq encl-pos - (c-most-enclosing-brace paren-state))) - (eq (char-after encl-pos) ?\{)) - (progn - (when (looking-at c-typedef-key) ; "typedef" - (setq is-typedef t) - (goto-char (match-end 0)) - (c-forward-syntactic-ws)) - ;; At a real declaration? - (if (memq (c-forward-type t) '(t known found)) - (progn - (c-font-lock-declarators limit t is-typedef) - nil) - ;; False alarm. Return t to go on to the next check. - (goto-char start-pos) - t)) - t)))))) + ;; We're now putatively at the declaration. + (setq paren-state (c-parse-state)) + ;; At top level or inside a "{"? + (if (or (not (setq encl-pos + (c-most-enclosing-brace paren-state))) + (eq (char-after encl-pos) ?\{)) + (progn + (when (looking-at c-typedef-key) ; "typedef" + (setq is-typedef t) + (goto-char (match-end 0)) + (c-forward-syntactic-ws)) + ;; At a real declaration? + (if (memq (c-forward-type t) '(t known found decltype)) + (progn + (c-font-lock-declarators (point-max) t is-typedef) + nil) + ;; False alarm. Return t to go on to the next check. + (goto-char start-pos) + t)) + t))))))) ;; It was a false alarm. Check if we're in a label (or other ;; construct with `:' except bitfield) instead. @@ -1555,9 +1538,7 @@ casts and declarations are fontified. Used on level 2 and higher." ;; Note that this function won't attempt to fontify beyond the end of the ;; current enum block, if any. (let* ((paren-state (c-parse-state)) - (encl-pos (c-most-enclosing-brace paren-state)) - (start (point)) - ) + (encl-pos (c-most-enclosing-brace paren-state))) (when (and encl-pos (eq (char-after encl-pos) ?\{) @@ -2122,7 +2103,7 @@ need for `c-font-lock-extra-types'.") ;; Got two parenthesized expressions, so we have to look ;; closer at them to decide which is the type. No need to ;; handle `c-record-ref-identifiers' since all references - ;; has already been handled by other fontification rules. + ;; have already been handled by other fontification rules. (let (expr1-res expr2-res) (goto-char expr1-pos) @@ -2157,6 +2138,9 @@ need for `c-font-lock-extra-types'.") ;; unusual than an initializer. (cond ((memq expr1-res '(t known prefix))) ((memq expr2-res '(t known prefix))) + ;; Presumably 'decltype's will be fontified elsewhere. + ((eq expr1-res 'decltype)) + ((eq expr2-res 'decltype)) ((eq expr1-res 'found) (let ((c-promote-possible-types t)) (goto-char expr1-pos) @@ -2719,4 +2703,8 @@ need for `pike-font-lock-extra-types'.") ;; 2006-07-10: awk-font-lock-keywords has been moved back to cc-awk.el. (cc-provide 'cc-fonts) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-fonts.el ends here diff --git a/lisp/progmodes/cc-guess.el b/lisp/progmodes/cc-guess.el index 5424e8d4a61..4c077444adb 100644 --- a/lisp/progmodes/cc-guess.el +++ b/lisp/progmodes/cc-guess.el @@ -519,7 +519,8 @@ is called with one argument, the guessed style." (goto-char (point-min)) (when (search-forward (concat "(" (symbol-name (car needs-markers)) - " ") nil t) + " ") + nil t) (move-end-of-line 1) (comment-dwim nil) (insert " Guessed value")) @@ -571,4 +572,9 @@ WITH-NAME is asked to the user." (cc-provide 'cc-guess) + +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-guess.el ends here diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 42b6f5964c2..31298d74e48 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -130,9 +130,7 @@ ;; This file is not always loaded. See note above. -;; Except it is always loaded - see bug#17463. -;;;(cc-external-require 'cl) -(require 'cl-lib) +(cc-external-require 'cl) ;;; Setup for the `c-lang-defvar' system. @@ -253,14 +251,14 @@ the evaluated constant value at compile time." (unless xlate (setq xlate 'identity)) (c-with-syntax-table (c-lang-const c-mode-syntax-table) - (cl-delete-duplicates - (cl-mapcan (lambda (opgroup) + (delete-duplicates + (mapcan (lambda (opgroup) (when (if (symbolp (car opgroup)) (when (funcall opgroup-filter (car opgroup)) (setq opgroup (cdr opgroup)) t) t) - (cl-mapcan (lambda (op) + (mapcan (lambda (op) (when (funcall op-filter op) (let ((res (funcall xlate op))) (if (listp res) res (list res))))) @@ -301,7 +299,8 @@ the evaluated constant value at compile time." ["Set Style..." c-set-style t] ["Show Current Style Name" (message "Style Name: %s" - c-indentation-style) t] + c-indentation-style) + t] ["Guess Style from this Buffer" c-guess-buffer-no-install t] ["Install the Last Guessed Style..." c-guess-install (and c-guess-guessed-offsets-alist @@ -319,9 +318,9 @@ the evaluated constant value at compile time." :style toggle :selected c-auto-newline] ["Hungry delete" c-toggle-hungry-state :style toggle :selected c-hungry-delete-key] - ["Subword mode" subword-mode - :style toggle :selected (and (boundp 'subword-mode) - subword-mode)]))) + ["Subword mode" c-subword-mode + :style toggle :selected (and (boundp 'c-subword-mode) + c-subword-mode)]))) ;;; Syntax tables. @@ -406,7 +405,7 @@ The syntax tables aren't stored directly since they're quite large." (and (c-lang-const c++-make-template-syntax-table) (funcall (c-lang-const c++-make-template-syntax-table)))) -(c-lang-defconst c-no-parens-syntax-table +(c-lang-defconst c-make-no-parens-syntax-table ;; A variant of the standard syntax table which is used to find matching ;; "<"s and ">"s which have been marked as parens using syntax table ;; properties. The other paren characters (e.g. "{", ")" "]") are given a @@ -414,18 +413,20 @@ The syntax tables aren't stored directly since they're quite large." ;; even when there's unbalanced other parens inside them. ;; ;; This variable is nil for languages which don't have template stuff. - t `(lambda () - (if (c-lang-const c-recognize-<>-arglists) - (let ((table (funcall ,(c-lang-const c-make-mode-syntax-table)))) - (modify-syntax-entry ?\( "." table) - (modify-syntax-entry ?\) "." table) - (modify-syntax-entry ?\[ "." table) - (modify-syntax-entry ?\] "." table) - (modify-syntax-entry ?\{ "." table) - (modify-syntax-entry ?\} "." table) - table)))) + t (if (c-lang-const c-recognize-<>-arglists) + `(lambda () + ;(if (c-lang-const c-recognize-<>-arglists) + (let ((table (funcall ,(c-lang-const c-make-mode-syntax-table)))) + (modify-syntax-entry ?\( "." table) + (modify-syntax-entry ?\) "." table) + (modify-syntax-entry ?\[ "." table) + (modify-syntax-entry ?\] "." table) + (modify-syntax-entry ?\{ "." table) + (modify-syntax-entry ?\} "." table) + table)))) (c-lang-defvar c-no-parens-syntax-table - (funcall (c-lang-const c-no-parens-syntax-table))) + (and (c-lang-const c-make-no-parens-syntax-table) + (funcall (c-lang-const c-make-no-parens-syntax-table)))) (c-lang-defconst c-identifier-syntax-modifications "A list that describes the modifications that should be done to the @@ -576,9 +577,18 @@ EOL terminated statements." (c c++ objc) t) (c-lang-defvar c-has-bitfields (c-lang-const c-has-bitfields)) +(c-lang-defconst c-modified-constant + "Regexp that matches a \"modified\" constant literal such as \"L'a'\", +a \"long character\". In particular, this recognizes forms of constant +which `c-backward-sexp' needs to be called twice to move backwards over." + t nil + (c c++ objc) "L'\\([^\\'\t\f\n\r]\\|\\\\.\\)'") +;; FIXME!!! Extend this to cover strings, if needed. 2008-04-11 +(c-lang-defvar c-modified-constant (c-lang-const c-modified-constant)) + (c-lang-defconst c-symbol-start "Regexp that matches the start of a symbol, i.e. any identifier or -keyword. It's unspecified how far it matches. Does not contain a \\| +keyword. It's unspecified how far it matches. Does not contain a \\| operator at the top level." t (concat "[" c-alpha "_]") java (concat "[" c-alpha "_@]") @@ -940,10 +950,13 @@ Note that operators like \".\" and \"->\" which in language references often are described as postfix operators are considered binary here, since CC Mode treats every identifier as an expression." - ;; There's currently no code in CC Mode that exploit all the info + ;; There's currently no code in CC Mode that exploits all the info ;; in this variable; precedence, associativity etc are present as a ;; preparation for future work. + ;; FIXME!!! C++11's "auto" operators "=" and "->" need to go in here + ;; somewhere. 2012-03-24. + t `(;; Preprocessor. ,@(when (c-lang-const c-opt-cpp-prefix) `((prefix "#" @@ -966,7 +979,8 @@ since CC Mode treats every identifier as an expression." ,@(when (c-major-mode-is 'c++-mode) ;; The following need special treatment. `((prefix "dynamic_cast" "static_cast" - "reinterpret_cast" "const_cast" "typeid"))) + "reinterpret_cast" "const_cast" "typeid" + "alignof"))) (left-assoc "." ,@(unless (c-major-mode-is 'java-mode) '("->"))) @@ -1139,7 +1153,8 @@ operators." c++ (append '("&" "<%" "%>" "<:" ":>" "%:" "%:%:") (c-lang-const c-other-op-syntax-tokens)) objc (append '("#" "##" ; Used by cpp. - "+" "-") (c-lang-const c-other-op-syntax-tokens)) + "+" "-") + (c-lang-const c-other-op-syntax-tokens)) idl (append '("#" "##") ; Used by cpp. (c-lang-const c-other-op-syntax-tokens)) pike (append '("..") @@ -1150,7 +1165,7 @@ operators." (c-lang-defconst c-all-op-syntax-tokens ;; List of all tokens in the punctuation and parenthesis syntax ;; classes. - t (cl-delete-duplicates (append (c-lang-const c-other-op-syntax-tokens) + t (delete-duplicates (append (c-lang-const c-other-op-syntax-tokens) (c-lang-const c-operator-list)) :test 'string-equal)) @@ -1217,22 +1232,41 @@ operators." (c-lang-defvar c-<-op-cont-regexp (c-lang-const c-<-op-cont-regexp)) +(c-lang-defconst c->-op-cont-tokens + ;; A list of second and subsequent characters of all multicharacter tokens + ;; that begin with ">". + t (c-filter-ops (c-lang-const c-all-op-syntax-tokens) + t + "\\`>." + (lambda (op) (substring op 1))) + java (c-filter-ops (c-lang-const c-all-op-syntax-tokens) + t + "\\`>[^>]\\|\\`>>[^>]" + (lambda (op) (substring op 1)))) + (c-lang-defconst c->-op-cont-regexp ;; Regexp matching the second and subsequent characters of all ;; multicharacter tokens that begin with ">". - t (c-make-keywords-re nil - (c-filter-ops (c-lang-const c-all-op-syntax-tokens) - t - "\\`>." - (lambda (op) (substring op 1)))) - java (c-make-keywords-re nil - (c-filter-ops (c-lang-const c-all-op-syntax-tokens) - t - "\\`>[^>]\\|\\`>>[^>]" - (lambda (op) (substring op 1))))) + t (c-make-keywords-re nil (c-lang-const c->-op-cont-tokens))) (c-lang-defvar c->-op-cont-regexp (c-lang-const c->-op-cont-regexp)) +(c-lang-defconst c->-op-without->-cont-regexp + ;; Regexp matching the second and subsequent characters of all + ;; multicharacter tokens that begin with ">" except for those beginning with + ;; ">>". + t (c-make-keywords-re nil + (set-difference + (c-lang-const c->-op-cont-tokens) + (c-filter-ops (c-lang-const c-all-op-syntax-tokens) + t + "\\`>>" + (lambda (op) (substring op 1))) + :test 'string-equal))) + +(c-lang-defvar c->-op-without->-cont-regexp + (c-lang-const c->-op-without->-cont-regexp)) + (c-lang-defconst c-stmt-delim-chars ;; The characters that should be considered to bound statements. To ;; optimize `c-crosses-statement-barrier-p' somewhat, it's assumed to @@ -1247,6 +1281,21 @@ operators." (c-lang-defvar c-stmt-delim-chars-with-comma (c-lang-const c-stmt-delim-chars-with-comma)) +(c-lang-defconst c-auto-ops + ;; Ops which signal C++11's new auto uses. + t nil + c++ '("=" "->")) +(c-lang-defconst c-auto-ops-re + t (c-make-keywords-re nil (c-lang-const c-auto-ops))) +(c-lang-defvar c-auto-ops-re (c-lang-const c-auto-ops-re)) + +(c-lang-defconst c-haskell-op + ;; Op used in the new C++11 auto function definition, indicating type. + t nil + c++ '("->")) +(c-lang-defconst c-haskell-op-re + t (c-make-keywords-re nil (c-lang-const c-haskell-op))) +(c-lang-defvar c-haskell-op-re (c-lang-const c-haskell-op-re)) ;;; Syntactic whitespace. @@ -1548,13 +1597,14 @@ properly." (c-lang-defvar c-syntactic-eol (c-lang-const c-syntactic-eol)) -;;; Defun functions +;;; Defun handling. -;; The Emacs variables beginning-of-defun-function and -;; end-of-defun-function will be set so that commands like -;; `mark-defun' and `narrow-to-defun' work right. The key sequences -;; C-M-a and C-M-e are, however, bound directly to the CC Mode -;; functions, allowing optimization for large n. +;; The Emacs variables beginning-of-defun-function and end-of-defun-function +;; will be set so that commands like `mark-defun' and `narrow-to-defun' work +;; right. In older Emacsen, the key sequences C-M-a and C-M-e are, however, +;; bound directly to the CC Mode functions, allowing optimization for large n. +;; From Emacs 23, this isn't necessary any more, since n is passed to the two +;; functions. (c-lang-defconst beginning-of-defun-function "Function to which beginning-of-defun-function will be set." t 'c-beginning-of-defun @@ -1609,7 +1659,7 @@ the appropriate place for that." '("_Bool" "_Complex" "_Imaginary") ; Conditionally defined in C99. (c-lang-const c-primitive-type-kwds)) c++ (append - '("bool" "wchar_t") + '("bool" "wchar_t" "char16_t" "char32_t") (c-lang-const c-primitive-type-kwds)) ;; Objective-C extends C, but probably not the new stuff in C99. objc (append @@ -1654,6 +1704,18 @@ of a variable declaration." t (c-make-keywords-re t (c-lang-const c-typedef-kwds))) (c-lang-defvar c-typedef-key (c-lang-const c-typedef-key)) +(c-lang-defconst c-typeof-kwds + "Keywords followed by a parenthesized expression, which stands for +the type of that expression." + t nil + c '("typeof") ; longstanding GNU C(++) extension. + c++ '("decltype" "typeof")) + +(c-lang-defconst c-typeof-key + ;; Adorned regexp matching `c-typeof-kwds'. + t (c-make-keywords-re t (c-lang-const c-typeof-kwds))) +(c-lang-defvar c-typeof-key (c-lang-const c-typeof-key)) + (c-lang-defconst c-type-prefix-kwds "Keywords where the following name - if any - is a type name, and where the keyword together with the symbol works as a type in @@ -1679,7 +1741,7 @@ but they don't build a type of themselves. Unlike the keywords on not the type face." t nil c '("const" "restrict" "volatile") - c++ '("const" "volatile" "throw") + c++ '("const" "constexpr" "noexcept" "volatile" "throw" "final" "override") objc '("const" "volatile")) (c-lang-defconst c-opt-type-modifier-key @@ -1703,7 +1765,7 @@ not the type face." (c-lang-defconst c-type-start-kwds ;; All keywords that can start a type (i.e. are either a type prefix ;; or a complete type). - t (cl-delete-duplicates (append (c-lang-const c-primitive-type-kwds) + t (delete-duplicates (append (c-lang-const c-primitive-type-kwds) (c-lang-const c-type-prefix-kwds) (c-lang-const c-type-modifier-kwds)) :test 'string-equal)) @@ -1756,6 +1818,26 @@ will be handled." t (c-make-keywords-re t (c-lang-const c-brace-list-decl-kwds))) (c-lang-defvar c-brace-list-key (c-lang-const c-brace-list-key)) +(c-lang-defconst c-after-brace-list-decl-kwds + "Keywords that might follow keywords in `c-brace-list-decl-kwds' +and precede the opening brace." + t nil + c++ '("class" "struct")) + +(c-lang-defconst c-after-brace-list-key + ;; Regexp matching keywords that can fall between a brace-list + ;; keyword and the associated brace list. + t (c-make-keywords-re t (c-lang-const c-after-brace-list-decl-kwds))) +(c-lang-defvar c-after-brace-list-key (c-lang-const c-after-brace-list-key)) + +(c-lang-defconst c-recognize-post-brace-list-type-p + "Set to t when we recognize a colon and then a type after an enum, +e.g., enum foo : int { A, B, C };" + t nil + c++ t) +(c-lang-defvar c-recognize-post-brace-list-type-p + (c-lang-const c-recognize-post-brace-list-type-p)) + (c-lang-defconst c-other-block-decl-kwds "Keywords where the following block (if any) contains another declaration level that should not be considered a class. For every @@ -1837,6 +1919,7 @@ will be handled." ;; {...}"). t (append (c-lang-const c-class-decl-kwds) (c-lang-const c-brace-list-decl-kwds)) + c++ (append (c-lang-const c-typeless-decl-kwds) '("auto")) ; C++11. ;; Note: "manages" for CORBA CIDL clashes with its presence on ;; `c-type-list-kwds' for IDL. idl (append (c-lang-const c-typeless-decl-kwds) @@ -1860,7 +1943,8 @@ If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', will be handled." t nil (c c++) '("auto" "extern" "inline" "register" "static") - c++ (append '("explicit" "friend" "mutable" "template" "using" "virtual") + c++ (append '("explicit" "friend" "mutable" "template" "thread_local" + "using" "virtual") (c-lang-const c-modifier-kwds)) objc '("auto" "bycopy" "byref" "extern" "in" "inout" "oneway" "out" "static") ;; FIXME: Some of those below ought to be on `c-other-decl-kwds' instead. @@ -1946,7 +2030,7 @@ one of `c-type-list-kwds', `c-ref-list-kwds', ;; something is a type or just some sort of macro in front of the ;; declaration. They might be ambiguous with types or type ;; prefixes. - t (cl-delete-duplicates (append (c-lang-const c-class-decl-kwds) + t (delete-duplicates (append (c-lang-const c-class-decl-kwds) (c-lang-const c-brace-list-decl-kwds) (c-lang-const c-other-block-decl-kwds) (c-lang-const c-typedef-decl-kwds) @@ -1986,7 +2070,8 @@ one of `c-type-list-kwds', `c-ref-list-kwds', t (c-make-keywords-re t (set-difference (c-lang-const c-keywords) (append (c-lang-const c-type-start-kwds) - (c-lang-const c-prefix-spec-kwds)) + (c-lang-const c-prefix-spec-kwds) + (c-lang-const c-typeof-kwds)) :test 'string-equal))) (c-lang-defvar c-not-decl-init-keywords (c-lang-const c-not-decl-init-keywords)) @@ -2139,7 +2224,7 @@ type identifiers separated by arbitrary tokens." pike '("array" "function" "int" "mapping" "multiset" "object" "program")) (c-lang-defconst c-paren-any-kwds - t (cl-delete-duplicates (append (c-lang-const c-paren-nontype-kwds) + t (delete-duplicates (append (c-lang-const c-paren-nontype-kwds) (c-lang-const c-paren-type-kwds)) :test 'string-equal)) @@ -2165,7 +2250,7 @@ assumed to be set if this isn't nil." (c-lang-defconst c-<>-sexp-kwds ;; All keywords that can be followed by an angle bracket sexp. - t (cl-delete-duplicates (append (c-lang-const c-<>-type-kwds) + t (delete-duplicates (append (c-lang-const c-<>-type-kwds) (c-lang-const c-<>-arglist-kwds)) :test 'string-equal)) @@ -2225,7 +2310,7 @@ Keywords here should also be in `c-block-stmt-1-kwds'." (c-lang-defconst c-block-stmt-kwds ;; Union of `c-block-stmt-1-kwds' and `c-block-stmt-2-kwds'. - t (cl-delete-duplicates (append (c-lang-const c-block-stmt-1-kwds) + t (delete-duplicates (append (c-lang-const c-block-stmt-1-kwds) (c-lang-const c-block-stmt-2-kwds)) :test 'string-equal)) @@ -2311,8 +2396,11 @@ This construct is \" :\"." (c-lang-defconst c-constant-kwds "Keywords for constants." t nil - (c c++) '("NULL" ;; Not a keyword, but practically works as one. + c '("NULL" ;; Not a keyword, but practically works as one. "false" "true") ; Defined in C99. + c++ (append + '("nullptr") + (c-lang-const c-constant-kwds)) objc '("nil" "Nil" "YES" "NO" "NS_DURING" "NS_HANDLER" "NS_ENDHANDLER") idl '("TRUE" "FALSE") java '("true" "false" "null") ; technically "literals", not keywords @@ -2329,7 +2417,7 @@ This construct is \" :\"." (c-lang-defconst c-expr-kwds ;; Keywords that can occur anywhere in expressions. Built from ;; `c-primary-expr-kwds' and all keyword operators in `c-operators'. - t (cl-delete-duplicates + t (delete-duplicates (append (c-lang-const c-primary-expr-kwds) (c-filter-ops (c-lang-const c-operator-list) t @@ -2433,7 +2521,7 @@ Note that Java specific rules are currently applied to tell this from (c-lang-defconst c-keywords ;; All keywords as a list. - t (cl-delete-duplicates + t (delete-duplicates (c-lang-defconst-eval-immediately `(append ,@(mapcar (lambda (kwds-lang-const) `(c-lang-const ,kwds-lang-const)) @@ -2773,7 +2861,7 @@ possible for good performance." (c-lang-defvar c-block-prefix-charset (c-lang-const c-block-prefix-charset)) (c-lang-defconst c-type-decl-prefix-key - "Regexp matching the declarator operators that might precede the + "Regexp matching any declarator operator that might precede the identifier in a declaration, e.g. the \"*\" in \"char *argv\". This regexp should match \"(\" if parentheses are valid in declarators. The end of the first submatch is taken as the end of the operator. @@ -2918,17 +3006,15 @@ is in effect or not." (when (boundp (c-mode-symbol "font-lock-extra-types")) (c-mode-var "font-lock-extra-types"))) (regexp-strings - (apply 'nconc - (mapcar (lambda (re) - (when (string-match "[][.*+?^$\\]" re) - (list re))) - extra-types))) + (delq nil (mapcar (lambda (re) + (when (string-match "[][.*+?^$\\]" re) + re)) + extra-types))) (plain-strings - (apply 'nconc - (mapcar (lambda (re) - (unless (string-match "[][.*+?^$\\]" re) - (list re))) - extra-types)))) + (delq nil (mapcar (lambda (re) + (unless (string-match "[][.*+?^$\\]" re) + re)) + extra-types)))) (concat "\\<\\(" (c-concat-separated (append (list (c-make-keywords-re nil @@ -2972,7 +3058,8 @@ identifier or one of the keywords on `c-<>-type-kwds' or expression is considered to be a type." t (or (consp (c-lang-const c-<>-type-kwds)) (consp (c-lang-const c-<>-arglist-kwds))) - java t) + java t) ; 2008-10-19. This is crude. The syntax for java + ; generics is not yet coded in CC Mode. (c-lang-defvar c-recognize-<>-arglists (c-lang-const c-recognize-<>-arglists)) (c-lang-defconst c-enums-contain-decls @@ -3184,7 +3271,7 @@ accomplish that conveniently." `(lambda () ;; This let sets up the context for `c-mode-var' and similar - ;; that could be in the result from `macroexpand-all'. + ;; that could be in the result from `c--macroexpand-all'. (let ((c-buffer-is-cc-mode ',mode) current-var source-eval) (c-make-emacs-variables-local) @@ -3194,12 +3281,12 @@ accomplish that conveniently." (setq ,@(let ((c-buffer-is-cc-mode mode) (c-lang-const-expansion 'immediate)) ;; `c-lang-const' will expand to the evaluated - ;; constant immediately in `macroexpand-all' + ;; constant immediately in `c--macroexpand-all' ;; below. - (cl-mapcan + (mapcan (lambda (init) `(current-var ',(car init) - ,(car init) ,(macroexpand-all + ,(car init) ,(c--macroexpand-all (elt init 1)))) ;; Note: The following `append' copies the ;; first argument. That list is small, so @@ -3271,4 +3358,8 @@ evaluated and should not be quoted." (cc-provide 'cc-langs) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-langs.el ends here diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el index 67425a0c82c..ae26e9b85c9 100644 --- a/lisp/progmodes/cc-menus.el +++ b/lisp/progmodes/cc-menus.el @@ -269,7 +269,7 @@ nested angle brackets constructs." "\\(" ; method name which gets captured ; into index "[" c-alpha "_]" - "[" c-alnum "_]*" + "[" c-alnum "_]*" "\\)" "[ \t\n\r]*" ;; An argument list that contains zero or more arguments. @@ -361,7 +361,7 @@ Example: p (1+ p)) (cond ;; Is CHAR part of a objc token? - ((and (not inargvar) ; Ignore if CHAR is part of an argument variable. + ((and (not inargvar) ; Ignore if CHAR is part of an argument variable. (eq 0 betweenparen) ; Ignore if CHAR is in parentheses. (or (and (<= ?a char) (<= char ?z)) (and (<= ?A char) (<= char ?Z)) @@ -521,4 +521,8 @@ Example: (cc-provide 'cc-menus) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-menus.el ends here diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 22dbcb4e846..a90dddd3399 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el @@ -108,11 +108,6 @@ ;; with your version of Emacs, you are incompatible! (cc-external-require 'easymenu) -;; Autoload directive for emacsen that doesn't have an older CC Mode -;; version in the dist. -(autoload 'subword-mode "subword" - "Mode enabling subword movement and editing keys." t) - ;; Load cc-fonts first after font-lock is loaded, since it isn't ;; necessary until font locking is requested. ; (eval-after-load "font-lock" ; 2006-07-09: font-lock is now preloaded. @@ -185,8 +180,7 @@ control). See \"cc-mode.el\" for more info." (run-hooks 'c-initialization-hook) ;; Fix obsolete variables. (if (boundp 'c-comment-continuation-stars) - (setq c-block-comment-prefix - (symbol-value 'c-comment-continuation-stars))) + (setq c-block-comment-prefix c-comment-continuation-stars)) (add-hook 'change-major-mode-hook 'c-leave-cc-mode-mode) (setq c-initialization-ok t) ;; Connect up with Emacs's electric-indent-mode, for >= Emacs 24.4 @@ -380,7 +374,7 @@ control). See \"cc-mode.el\" for more info." ;; conflicts with OOBR ;;(define-key c-mode-base-map "\C-c\C-v" 'c-version) ;; (define-key c-mode-base-map "\C-c\C-y" 'c-toggle-hungry-state) Commented out by ACM, 2005-11-22. - (define-key c-mode-base-map "\C-c\C-w" 'subword-mode) + (define-key c-mode-base-map "\C-c\C-w" 'c-subword-mode) ) ;; We don't require the outline package, but we configure it a bit anyway. @@ -472,6 +466,14 @@ preferably use the `c-mode-menu' language constant directly." (defvar c-maybe-stale-found-type nil) (make-variable-buffer-local 'c-maybe-stale-found-type) +(defvar c-just-done-before-change nil) +(make-variable-buffer-local 'c-just-done-before-change) +;; This variable is set to t by `c-before-change' and to nil by +;; `c-after-change'. It is used to detect a spurious invocation of +;; `before-change-functions' directly following on from a correct one. This +;; happens in some Emacsen, for example when `basic-save-buffer' does (insert +;; ?\n) when `require-final-newline' is non-nil. + (defun c-basic-common-init (mode default-style) "Do the necessary initialization for the syntax handling routines and the line breaking/filling code. Intended to be used by other @@ -542,10 +544,11 @@ that requires a literal mode spec at compile time." ;; Use this in Emacs 21+ to avoid meddling with the rear-nonsticky ;; property on each character. (when (boundp 'text-property-default-nonsticky) + (make-local-variable 'text-property-default-nonsticky) (mapc (lambda (tprop) (unless (assq tprop text-property-default-nonsticky) - (set (make-local-variable 'text-property-default-nonsticky) - (cons `(,tprop . t) text-property-default-nonsticky)))) + (setq text-property-default-nonsticky + (cons `(,tprop . t) text-property-default-nonsticky)))) '(syntax-table category c-type))) ;; In Emacs 21 and later it's possible to turn off the ad-hoc @@ -605,10 +608,12 @@ that requires a literal mode spec at compile time." (make-local-hook 'before-change-functions) (make-local-hook 'after-change-functions)) (add-hook 'before-change-functions 'c-before-change nil t) + (setq c-just-done-before-change nil) (add-hook 'after-change-functions 'c-after-change nil t) - (set (make-local-variable 'font-lock-extend-after-change-region-function) - 'c-extend-after-change-region)) ; Currently (2009-05) used by all - ; languages with #define (C, C++,; ObjC), and by AWK. + (when (boundp 'font-lock-extend-after-change-region-function) + (set (make-local-variable 'font-lock-extend-after-change-region-function) + 'c-extend-after-change-region))) ; Currently (2009-05) used by all + ; languages with #define (C, C++,; ObjC), and by AWK. (defun c-setup-doc-comment-style () "Initialize the variables that depend on the value of `c-doc-comment-style'." @@ -669,9 +674,11 @@ compatible with old code; callers should always specify it." (or (c-cpp-define-name) (c-defun-name)))) (let ((rfn (assq mode c-require-final-newline))) (when rfn - (and (cdr rfn) - (set (make-local-variable 'require-final-newline) - mode-require-final-newline))))) + (if (boundp 'mode-require-final-newline) + (and (cdr rfn) + (set (make-local-variable 'require-final-newline) + mode-require-final-newline)) + (set (make-local-variable 'require-final-newline) (cdr rfn)))))) (defun c-count-cfss (lv-alist) ;; LV-ALIST is an alist like `file-local-variables-alist'. Count how many @@ -948,7 +955,11 @@ Note that the style variables are always made local to the buffer." c-new-END (min (cdr new-bounds) (c-determine-+ve-limit 500 endd))) ;; Clear all old relevant properties. (c-clear-char-property-with-value c-new-BEG c-new-END 'syntax-table '(1)) - (c-clear-char-property-with-value c-new-BEG c-new-END 'category 'c-cpp-delimiter) + + ;; CPP "comment" markers: + (if (eval-when-compile (memq 'category-properties c-emacs-features));Emacs. + (c-clear-char-property-with-value + c-new-BEG c-new-END 'category 'c-cpp-delimiter)) ;; FIXME!!! What about the "<" and ">" category properties? 2009-11-16 ;; Add needed properties to each CPP construct in the region. @@ -967,8 +978,10 @@ Note that the style variables are always made local to the buffer." (setq mbeg (point)) (if (> (c-syntactic-end-of-macro) mbeg) (progn - (c-neutralize-CPP-line mbeg (point)) - (c-set-cpp-delimiters mbeg (point))) + (c-neutralize-CPP-line mbeg (point)) ; "punctuation" properties + (if (eval-when-compile + (memq 'category-properties c-emacs-features)) ;Emacs. + (c-set-cpp-delimiters mbeg (point)))) ; "comment" markers (forward-line)) ; no infinite loop with, e.g., "#//" ))))) @@ -988,64 +1001,71 @@ Note that the style variables are always made local to the buffer." ;; it/them from the cache. Don't worry about being inside a string ;; or a comment - "wrongly" removing a symbol from `c-found-types' ;; isn't critical. - (setq c-maybe-stale-found-type nil) - (save-restriction - (save-match-data - (widen) - (save-excursion - ;; Are we inserting/deleting stuff in the middle of an identifier? - (c-unfind-enclosing-token beg) - (c-unfind-enclosing-token end) - ;; Are we coalescing two tokens together, e.g. "fo o" -> "foo"? - (when (< beg end) - (c-unfind-coalesced-tokens beg end)) - ;; Are we (potentially) disrupting the syntactic context which - ;; makes a type a type? E.g. by inserting stuff after "foo" in - ;; "foo bar;", or before "foo" in "typedef foo *bar;"? - ;; - ;; We search for appropriate c-type properties "near" the change. - ;; First, find an appropriate boundary for this property search. - (let (lim - type type-pos - marked-id term-pos - (end1 - (or (and (eq (get-text-property end 'face) 'font-lock-comment-face) - (previous-single-property-change end 'face)) - end))) - (when (>= end1 beg) ; Don't hassle about changes entirely in comments. - ;; Find a limit for the search for a `c-type' property - (while - (and (/= (skip-chars-backward "^;{}") 0) - (> (point) (point-min)) - (memq (c-get-char-property (1- (point)) 'face) - '(font-lock-comment-face font-lock-string-face)))) - (setq lim (max (point-min) (1- (point)))) + (unless c-just-done-before-change ; Guard against a spurious second + ; invocation of before-change-functions. + (setq c-just-done-before-change t) + (setq c-maybe-stale-found-type nil) + (save-restriction + (save-match-data + (widen) + (save-excursion + ;; Are we inserting/deleting stuff in the middle of an identifier? + (c-unfind-enclosing-token beg) + (c-unfind-enclosing-token end) + ;; Are we coalescing two tokens together, e.g. "fo o" -> "foo"? + (when (< beg end) + (c-unfind-coalesced-tokens beg end)) + ;; Are we (potentially) disrupting the syntactic context which + ;; makes a type a type? E.g. by inserting stuff after "foo" in + ;; "foo bar;", or before "foo" in "typedef foo *bar;"? + ;; + ;; We search for appropriate c-type properties "near" the change. + ;; First, find an appropriate boundary for this property search. + (let (lim + type type-pos + marked-id term-pos + (end1 + (or (and (eq (get-text-property end 'face) + 'font-lock-comment-face) + (previous-single-property-change end 'face)) + end))) + (when (>= end1 beg) ; Don't hassle about changes entirely in comments. + ;; Find a limit for the search for a `c-type' property + (while + (and (/= (skip-chars-backward "^;{}") 0) + (> (point) (point-min)) + (memq (c-get-char-property (1- (point)) 'face) + '(font-lock-comment-face font-lock-string-face)))) + (setq lim (max (point-min) (1- (point)))) - ;; Look for the latest `c-type' property before end1 - (when (and (> end1 (point-min)) - (setq type-pos - (if (get-text-property (1- end1) 'c-type) - end1 - (previous-single-property-change end1 'c-type nil lim)))) - (setq type (get-text-property (max (1- type-pos) lim) 'c-type)) + ;; Look for the latest `c-type' property before end1 + (when (and (> end1 (point-min)) + (setq type-pos + (if (get-text-property (1- end1) 'c-type) + end1 + (previous-single-property-change end1 'c-type + nil lim)))) + (setq type (get-text-property (max (1- type-pos) lim) 'c-type)) - (when (memq type '(c-decl-id-start c-decl-type-start)) - ;; Get the identifier, if any, that the property is on. - (goto-char (1- type-pos)) - (setq marked-id - (when (looking-at "\\(\\sw\\|\\s_\\)") - (c-beginning-of-current-token) - (buffer-substring-no-properties (point) type-pos))) + (when (memq type '(c-decl-id-start c-decl-type-start)) + ;; Get the identifier, if any, that the property is on. + (goto-char (1- type-pos)) + (setq marked-id + (when (looking-at "\\(\\sw\\|\\s_\\)") + (c-beginning-of-current-token) + (buffer-substring-no-properties (point) type-pos))) - (goto-char end1) - (skip-chars-forward "^;{}") ; FIXME!!! loop for comment, maybe - (setq lim (point)) - (setq term-pos - (or (next-single-property-change end 'c-type nil lim) lim)) - (setq c-maybe-stale-found-type - (list type marked-id - type-pos term-pos - (buffer-substring-no-properties type-pos term-pos) + (goto-char end1) + (skip-chars-forward "^;{}") ;FIXME!!! loop for comment, maybe + (setq lim (point)) + (setq term-pos + (or (c-next-single-property-change end 'c-type nil lim) + lim)) + (setq c-maybe-stale-found-type + (list type marked-id + type-pos term-pos + (buffer-substring-no-properties type-pos + term-pos) (buffer-substring-no-properties beg end))))))) (if c-get-state-before-change-functions @@ -1056,7 +1076,7 @@ Note that the style variables are always made local to the buffer." ))) ;; The following must be done here rather than in `c-after-change' because ;; newly inserted parens would foul up the invalidation algorithm. - (c-invalidate-state-cache beg)) + (c-invalidate-state-cache beg))) (defvar c-in-after-change-fontification nil) (make-variable-buffer-local 'c-in-after-change-fontification) @@ -1077,6 +1097,7 @@ Note that the style variables are always made local to the buffer." ;; This calls the language variable c-before-font-lock-functions, if non nil. ;; This typically sets `syntax-table' properties. + (setq c-just-done-before-change nil) (c-save-buffer-state (case-fold-search open-paren-in-column-0-is-defun-start) ;; When `combine-after-change-calls' is used we might get calls ;; with regions outside the current narrowing. This has been @@ -1097,11 +1118,12 @@ Note that the style variables are always made local to the buffer." ;; C-y is capable of spuriously converting category properties ;; c--as-paren-syntax and c-cpp-delimiter into hard syntax-table ;; properties. Remove these when it happens. - (c-clear-char-property-with-value beg end 'syntax-table - c-<-as-paren-syntax) - (c-clear-char-property-with-value beg end 'syntax-table - c->-as-paren-syntax) - (c-clear-char-property-with-value beg end 'syntax-table nil) + (when (eval-when-compile (memq 'category-properties c-emacs-features)) + (c-clear-char-property-with-value beg end 'syntax-table + c-<-as-paren-syntax) + (c-clear-char-property-with-value beg end 'syntax-table + c->-as-paren-syntax) + (c-clear-char-property-with-value beg end 'syntax-table nil)) (c-trim-found-types beg end old-len) ; maybe we don't need all of these. (c-invalidate-sws-region-after beg end) @@ -1245,6 +1267,7 @@ This function is called from `c-common-init', once per mode initialization." (make-local-hook 'font-lock-mode-hook)) (add-hook 'font-lock-mode-hook 'c-after-font-lock-init nil t)) +;; Emacs 22 and later. (defun c-extend-after-change-region (_beg _end _old-len) "Extend the region to be fontified, if necessary." ;; Note: the parameters are ignored here. This somewhat indirect @@ -1258,6 +1281,21 @@ This function is called from `c-common-init', once per mode initialization." ;; function. (cons c-new-BEG c-new-END)) +;; Emacs < 22 and XEmacs +(defmacro c-advise-fl-for-region (function) + `(defadvice ,function (before get-awk-region activate) + ;; Make sure that any string/regexp is completely font-locked. + (when c-buffer-is-cc-mode + (save-excursion + (ad-set-arg 1 c-new-END) ; end + (ad-set-arg 0 c-new-BEG))))) ; beg + +(unless (boundp 'font-lock-extend-after-change-region-function) + (c-advise-fl-for-region font-lock-after-change-function) + (c-advise-fl-for-region jit-lock-after-change) + (c-advise-fl-for-region lazy-lock-defer-rest-after-change) + (c-advise-fl-for-region lazy-lock-defer-line-after-change)) + ;; Connect up to `electric-indent-mode' (Emacs 24.4 and later). (defun c-electric-indent-mode-hook () ;; Emacs has en/disabled `electric-indent-mode'. Propagate this through to @@ -1328,6 +1366,7 @@ This function is called from `c-common-init', once per mode initialization." ;;;###autoload (add-to-list 'auto-mode-alist '("\\.i\\'" . c-mode)) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.ii\\'" . c++-mode)) +(unless (fboundp 'prog-mode) (defalias 'prog-mode 'fundamental-mode)) ;;;###autoload (define-derived-mode c-mode prog-mode "C" @@ -1785,4 +1824,8 @@ Key bindings: (cc-provide 'cc-mode) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-mode.el ends here diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el index 337ef9212d9..793a6eac208 100644 --- a/lisp/progmodes/cc-styles.el +++ b/lisp/progmodes/cc-styles.el @@ -165,8 +165,8 @@ (c-offsets-alist . ((topmost-intro . 0) (substatement . +) (substatement-open . 0) - (case-label . +) - (access-label . -) + (case-label . +) + (access-label . -) (inclass . +) (inline-open . 0)))) ("linux" @@ -209,15 +209,15 @@ (c-offsets-alist . ((inline-open . 0) (topmost-intro-cont . +) (statement-block-intro . +) - (knr-argdecl-intro . 5) + (knr-argdecl-intro . 5) (substatement-open . +) (substatement-label . +) - (label . +) - (statement-case-open . +) - (statement-cont . +) - (arglist-intro . c-lineup-arglist-intro-after-paren) - (arglist-close . c-lineup-arglist) - (access-label . 0) + (label . +) + (statement-case-open . +) + (statement-cont . +) + (arglist-intro . c-lineup-arglist-intro-after-paren) + (arglist-close . c-lineup-arglist) + (access-label . 0) (inher-cont . c-lineup-java-inher) (func-decl-cont . c-lineup-java-throws)))) @@ -663,4 +663,8 @@ DEFAULT-STYLE has the same format as `c-default-style'." (cc-provide 'cc-styles) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-styles.el ends here diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index a8d627f94d4..635e382c755 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el @@ -271,17 +271,23 @@ nil." :group 'c) ;;;###autoload(put 'c-basic-offset 'safe-local-variable 'integerp) + (defcustom c-tab-always-indent t "*Controls the operation of the TAB key. If t, hitting TAB always just indents the current line. If nil, hitting TAB indents the current line if point is at the left margin or in the -line's indentation, otherwise it calls `c-insert-tab-function' to -insert a `real' tab character. If some other value (neither nil nor t), -then inserts a tab only within literals (comments and strings), but -always reindents the line. +line's indentation, otherwise it inserts a `real' tab character \(see +note\). If some other value (not nil or t), then tab is inserted only +within literals \(comments and strings), but the line is always +reindented. -Note: the variable `c-comment-only-line-offset' also controls the -indentation of lines containing only comments." +Note: The value of `indent-tabs-mode' will determine whether a real +tab character will be inserted, or the equivalent number of spaces. +When inserting a tab, actually the function stored in the variable +`c-insert-tab-function' is called. + +Note: indentation of lines containing only comments is also controlled +by the `c-comment-only-line-offset' variable." :type '(radio (const :tag "TAB key always indents, never inserts TAB" t) (const :tag "TAB key indents in left margin, otherwise inserts TAB" nil) @@ -535,7 +541,7 @@ variable in a mode hook." (const :format "IDL " idl-mode) (regexp :format "%v")) (cons :format "%v" (const :format "Pike " pike-mode) (regexp :format "%v")) - (cons :format "%v" + (cons :format "%v" (const :format "AWK " awk-mode) (regexp :format "%v"))) (cons :format " %v" (const :format "Other " other) (regexp :format "%v")))) @@ -920,7 +926,7 @@ Only currently supported behavior is `alignleft'." (defcustom c-special-indent-hook nil "*Hook for user defined special indentation adjustments. This hook gets called after each line is indented by the mode. It is only -called if `c-syntactic-indentation' is non-nil." +called when `c-syntactic-indentation' is non-nil." :type 'hook :group 'c) @@ -1170,7 +1176,7 @@ can always override the use of `c-default-style' by making calls to (objc-method-args-cont . c-lineup-ObjC-method-args) ;; Anchor pos: At the method start (always at boi). (objc-method-call-cont . (c-lineup-ObjC-method-call-colons - c-lineup-ObjC-method-call +)) + c-lineup-ObjC-method-call +)) ;; Anchor pos: At the open bracket. (extern-lang-open . 0) (namespace-open . 0) @@ -1689,7 +1695,8 @@ as designated in the variable `c-file-style'.") ;; It isn't possible to specify a doc-string without specifying an ;; initial value with `defvar', so the following two variables have been ;; given doc-strings by setting the property `variable-documentation' -;; directly. It's really good not to have an initial value for +;; directly. C-h v will read this documentation only for versions of GNU +;; Emacs from 22.1. It's really good not to have an initial value for ;; variables like these that always should be dynamically bound, so it's ;; worth the inconvenience. @@ -1765,4 +1772,8 @@ It treats escaped EOLs as whitespace.") (cc-provide 'cc-vars) +;;; Local Variables: +;;; indent-tabs-mode: t +;;; tab-width: 8 +;;; End: ;;; cc-vars.el ends here diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el index 7d4f6dc25b9..53d5be90cab 100644 --- a/lisp/progmodes/cfengine.el +++ b/lisp/progmodes/cfengine.el @@ -27,9 +27,6 @@ ;; Provides support for editing GNU Cfengine files, including ;; font-locking, Imenu and indentation, but with no special keybindings. -;; The CFEngine 3.x support doesn't have Imenu support but patches are -;; welcome. - ;; By default, CFEngine 3.x syntax is used. ;; You can set it up so either `cfengine2-mode' (2.x and earlier) or @@ -56,7 +53,6 @@ ;;; Code: (autoload 'json-read "json") -(autoload 'regexp-opt "regexp-opt") (defgroup cfengine () "Editing CFEngine files." @@ -815,24 +811,24 @@ bundle agent rcfiles "List of the action keywords supported by Cfengine. This includes those for cfservd as well as cfagent.") - (defconst cfengine3-defuns - (mapcar - 'symbol-name - '(bundle body)) + (defconst cfengine3-defuns '("bundle" "body") "List of the CFEngine 3.x defun headings.") - (defconst cfengine3-defuns-regex - (regexp-opt cfengine3-defuns t) + (defconst cfengine3-defuns-regex (regexp-opt cfengine3-defuns t) "Regex to match the CFEngine 3.x defuns.") + (defconst cfengine3-defun-full-re (concat "^\\s-*" cfengine3-defuns-regex + "\\s-+\\(\\(?:\\w\\|\\s_\\)+\\)" ;type + "\\s-+\\(\\(?:\\w\\|\\s_\\)+\\)" ;id + ) + "Regexp matching full defun declaration (excluding argument list).") + (defconst cfengine3-class-selector-regex "\\([[:alnum:]_().&|!:]+\\)::") (defconst cfengine3-category-regex "\\([[:alnum:]_]+\\):") - (defconst cfengine3-vartypes - (mapcar - 'symbol-name - '(string int real slist ilist rlist irange rrange counter data)) + (defconst cfengine3-vartypes '("string" "int" "real" "slist" "ilist" "rlist" + "irange" "rrange" "counter" "data") "List of the CFEngine 3.x variable types.")) (defvar cfengine2-font-lock-keywords @@ -1231,29 +1227,32 @@ Should not be necessary unless you reinstall CFEngine." (setq cfengine-mode-syntax-cache nil)) (defun cfengine3-make-syntax-cache () - "Build the CFEngine 3 syntax cache. -Calls `cfengine-cf-promises' with \"-s json\"" - (let ((syntax (cddr (assoc cfengine-cf-promises cfengine-mode-syntax-cache)))) - (if cfengine-cf-promises - (or syntax - (with-demoted-errors - (with-temp-buffer - (call-process-shell-command cfengine-cf-promises - nil ; no input - t ; current buffer - nil ; no redisplay - "-s" "json") - (goto-char (point-min)) - (setq syntax (json-read)) - (setq cfengine-mode-syntax-cache - (cons (cons cfengine-cf-promises syntax) - cfengine-mode-syntax-cache)) - (setq cfengine-mode-syntax-functions-regex - (regexp-opt (mapcar (lambda (def) - (format "%s" (car def))) - (cdr (assq 'functions syntax))) - 'symbols)))))) - cfengine3-fallback-syntax)) + "Build the CFEngine 3 syntax cache and return the syntax. +Calls `cfengine-cf-promises' with \"-s json\"." + (or (cdr (assoc cfengine-cf-promises cfengine-mode-syntax-cache)) + (let ((syntax (or (when cfengine-cf-promises + (with-demoted-errors "cfengine3-make-syntax-cache: %S" + (with-temp-buffer + (or (zerop (process-file cfengine-cf-promises + nil ; no input + t ; output + nil ; no redisplay + "-s" "json")) + (error "%s" (buffer-substring + (point-min) + (progn (goto-char (point-min)) + (line-end-position))))) + (goto-char (point-min)) + (json-read)))) + cfengine3-fallback-syntax))) + (push (cons cfengine-cf-promises syntax) + cfengine-mode-syntax-cache) + (setq cfengine-mode-syntax-functions-regex + (regexp-opt (mapcar (lambda (def) + (format "%s" (car def))) + (cdr (assq 'functions syntax))) + 'symbols)) + syntax))) (defun cfengine3-documentation-function () "Document CFengine 3 functions around point. @@ -1265,7 +1264,6 @@ Use it by enabling `eldoc-mode'." (defun cfengine3-completion-function () "Return completions for function name around or before point." - (cfengine3-make-syntax-cache) (let* ((bounds (save-excursion (let ((p (point))) (skip-syntax-backward "w_" (point-at-bol)) @@ -1306,6 +1304,26 @@ Use it by enabling `eldoc-mode'." ("=>" . ?⇒) ("::" . ?∷))) +(defun cfengine3-create-imenu-index () + "A function for `imenu-create-index-function'. +Note: defun name is separated by space such as `body +package_method opencsw' and imenu will replace spaces according +to `imenu-space-replacement' (which see)." + (goto-char (point-min)) + (let ((defuns ())) + (while (re-search-forward cfengine3-defun-full-re nil t) + (push (cons (mapconcat #'match-string '(1 2 3) " ") + (copy-marker (match-beginning 3))) + defuns)) + (nreverse defuns))) + +(defun cfengine3-current-defun () + "A function for `add-log-current-defun-function'." + (end-of-line) + (beginning-of-defun) + (and (looking-at cfengine3-defun-full-re) + (mapconcat #'match-string '(1 2 3) " "))) + ;;;###autoload (define-derived-mode cfengine3-mode prog-mode "CFE3" "Major mode for editing CFEngine3 input. @@ -1332,17 +1350,17 @@ to the action header." (when buffer-file-name (shell-quote-argument buffer-file-name))))) - (set (make-local-variable 'eldoc-documentation-function) - #'cfengine3-documentation-function) + (setq-local eldoc-documentation-function #'cfengine3-documentation-function) (add-hook 'completion-at-point-functions #'cfengine3-completion-function nil t) ;; Use defuns as the essential syntax block. - (set (make-local-variable 'beginning-of-defun-function) - #'cfengine3-beginning-of-defun) - (set (make-local-variable 'end-of-defun-function) - #'cfengine3-end-of-defun)) + (setq-local beginning-of-defun-function #'cfengine3-beginning-of-defun) + (setq-local end-of-defun-function #'cfengine3-end-of-defun) + + (setq-local imenu-create-index-function #'cfengine3-create-imenu-index) + (setq-local add-log-current-defun-function #'cfengine3-current-defun)) ;;;###autoload (define-derived-mode cfengine2-mode prog-mode "CFE2" @@ -1376,15 +1394,18 @@ to the action header." ;;;###autoload (defun cfengine-auto-mode () - "Choose between `cfengine2-mode' and `cfengine3-mode' depending -on the buffer contents" - (let ((v3 nil)) - (save-restriction - (goto-char (point-min)) - (while (not (or (eobp) v3)) - (setq v3 (looking-at (concat cfengine3-defuns-regex "\\_>"))) - (forward-line))) - (if v3 (cfengine3-mode) (cfengine2-mode)))) + "Choose `cfengine2-mode' or `cfengine3-mode' by buffer contents." + (interactive) + (if (save-excursion + (save-restriction + (widen) + (goto-char (point-min)) + (forward-comment (point-max)) + (or (eobp) + (re-search-forward + (concat "^\\s-*" cfengine3-defuns-regex "\\_>") nil t)))) + (cfengine3-mode) + (cfengine2-mode))) (defalias 'cfengine-mode 'cfengine3-mode) diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 000d7191ee7..5de2c6afa53 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -477,6 +477,8 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" ;; "^\\([^ \t\r\n(]+\\) (\\([0-9]+\\):\\([0-9]+\\)) " 1 2 3) + (guile-file "^In \\(.+\\):\n" 1) + (guile-line "^ *\\([0-9]+\\): *\\([0-9]+\\)" nil 1 2) ) "Alist of values for `compilation-error-regexp-alist'.") @@ -967,19 +969,12 @@ POS and RES.") (cons (copy-marker pos) (if prev (copy-marker prev)))) prev) ((and prev (= prev cache)) - (if cache - (set-marker (car compilation--previous-directory-cache) pos) - (setq compilation--previous-directory-cache - (cons (copy-marker pos) nil))) + (set-marker (car compilation--previous-directory-cache) pos) (cdr compilation--previous-directory-cache)) (t - (if cache - (progn - (set-marker cache pos) - (setcdr compilation--previous-directory-cache - (copy-marker prev))) - (setq compilation--previous-directory-cache - (cons (copy-marker pos) (if prev (copy-marker prev))))) + (set-marker cache pos) + (setcdr compilation--previous-directory-cache + (copy-marker prev)) prev)))) (if (markerp res) (marker-position res) res)))) @@ -1681,7 +1676,16 @@ Returns the compilation buffer created." (list command mode name-function highlight-regexp)) (set (make-local-variable 'revert-buffer-function) 'compilation-revert-buffer) - (and outwin (set-window-start outwin (point-min))) + (and outwin + ;; Forcing the window-start overrides the usual redisplay + ;; feature of bringing point into view, so setting the + ;; window-start to top of the buffer risks losing the + ;; effect of moving point to EOB below, per + ;; compilation-scroll-output, if the command is long + ;; enough to push point outside of the window. This + ;; could happen, e.g., in `rgrep'. + (not compilation-scroll-output) + (set-window-start outwin (point-min))) ;; Position point as the user will see it. (let ((desired-visible-point @@ -1980,6 +1984,12 @@ Runs `compilation-mode-hook' with `run-mode-hooks' (which see). compilation-page-delimiter) ;; (set (make-local-variable 'compilation-buffer-modtime) nil) (compilation-setup) + ;; Turn off deferred fontifications in the compilation buffer, if + ;; the user turned them on globally. This is because idle timers + ;; aren't re-run after receiving input from a subprocess, so the + ;; buffer is left unfontified after the compilation exits, until + ;; some other input event happens. + (set (make-local-variable 'jit-lock-defer-time) nil) (setq buffer-read-only t) (run-mode-hooks 'compilation-mode-hook)) @@ -2284,6 +2294,7 @@ looking for the next message." (or (compilation-buffer-p (current-buffer)) (error "Not in a compilation buffer")) (or pt (setq pt (point))) + (compilation--ensure-parse pt) (let* ((msg (get-text-property pt 'compilation-message)) ;; `loc', `msg', and `last' are used by the compilation-loop macro. (loc (and msg (compilation--message->loc msg))) @@ -2296,7 +2307,8 @@ looking for the next message." (line-beginning-position))) (unless (setq msg (get-text-property (max (1- pt) (point-min)) 'compilation-message)) - (setq pt (next-single-property-change pt 'compilation-message nil + (setq pt (compilation-next-single-property-change + pt 'compilation-message nil (line-end-position))) (or (setq msg (get-text-property pt 'compilation-message)) (setq pt (point))))) @@ -2307,7 +2319,6 @@ looking for the next message." "No more %ss yet" "Moved past last %s") (point-max)) - (compilation--ensure-parse pt) ;; Don't move "back" to message at or before point. ;; Pass an explicit (point-min) to make sure pt is non-nil. (setq pt (previous-single-property-change diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el new file mode 100644 index 00000000000..ba70f903b4b --- /dev/null +++ b/lisp/progmodes/elisp-mode.el @@ -0,0 +1,1297 @@ +;;; elisp-mode.el --- Emacs Lisp mode -*- lexical-binding:t -*- + +;; Copyright (C) 1985-1986, 1999-2014 Free Software Foundation, Inc. + +;; Maintainer: emacs-devel@gnu.org +;; Keywords: lisp, languages +;; Package: emacs + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; The major mode for editing Emacs Lisp code. +;; This mode is documented in the Emacs manual. + +;;; Code: + +(require 'lisp-mode) + +(defvar emacs-lisp-mode-abbrev-table nil) +(define-abbrev-table 'emacs-lisp-mode-abbrev-table () + "Abbrev table for Emacs Lisp mode. +It has `lisp-mode-abbrev-table' as its parent." + :parents (list lisp-mode-abbrev-table)) + +(defvar emacs-lisp-mode-syntax-table + (let ((table (make-syntax-table lisp--mode-syntax-table))) + (modify-syntax-entry ?\[ "(] " table) + (modify-syntax-entry ?\] ")[ " table) + table) + "Syntax table used in `emacs-lisp-mode'.") + +(defvar emacs-lisp-mode-map + (let ((map (make-sparse-keymap "Emacs-Lisp")) + (menu-map (make-sparse-keymap "Emacs-Lisp")) + (lint-map (make-sparse-keymap)) + (prof-map (make-sparse-keymap)) + (tracing-map (make-sparse-keymap))) + (set-keymap-parent map lisp-mode-shared-map) + (define-key map "\e\t" 'completion-at-point) + (define-key map "\e\C-x" 'eval-defun) + (define-key map "\e\C-q" 'indent-pp-sexp) + (bindings--define-key map [menu-bar emacs-lisp] + (cons "Emacs-Lisp" menu-map)) + (bindings--define-key menu-map [eldoc] + '(menu-item "Auto-Display Documentation Strings" eldoc-mode + :button (:toggle . (bound-and-true-p eldoc-mode)) + :help "Display the documentation string for the item under cursor")) + (bindings--define-key menu-map [checkdoc] + '(menu-item "Check Documentation Strings" checkdoc + :help "Check documentation strings for style requirements")) + (bindings--define-key menu-map [re-builder] + '(menu-item "Construct Regexp" re-builder + :help "Construct a regexp interactively")) + (bindings--define-key menu-map [tracing] (cons "Tracing" tracing-map)) + (bindings--define-key tracing-map [tr-a] + '(menu-item "Untrace All" untrace-all + :help "Untrace all currently traced functions")) + (bindings--define-key tracing-map [tr-uf] + '(menu-item "Untrace Function..." untrace-function + :help "Untrace function, and possibly activate all remaining advice")) + (bindings--define-key tracing-map [tr-sep] menu-bar-separator) + (bindings--define-key tracing-map [tr-q] + '(menu-item "Trace Function Quietly..." trace-function-background + :help "Trace the function with trace output going quietly to a buffer")) + (bindings--define-key tracing-map [tr-f] + '(menu-item "Trace Function..." trace-function + :help "Trace the function given as an argument")) + (bindings--define-key menu-map [profiling] (cons "Profiling" prof-map)) + (bindings--define-key prof-map [prof-restall] + '(menu-item "Remove Instrumentation for All Functions" elp-restore-all + :help "Restore the original definitions of all functions being profiled")) + (bindings--define-key prof-map [prof-restfunc] + '(menu-item "Remove Instrumentation for Function..." elp-restore-function + :help "Restore an instrumented function to its original definition")) + + (bindings--define-key prof-map [sep-rem] menu-bar-separator) + (bindings--define-key prof-map [prof-resall] + '(menu-item "Reset Counters for All Functions" elp-reset-all + :help "Reset the profiling information for all functions being profiled")) + (bindings--define-key prof-map [prof-resfunc] + '(menu-item "Reset Counters for Function..." elp-reset-function + :help "Reset the profiling information for a function")) + (bindings--define-key prof-map [prof-res] + '(menu-item "Show Profiling Results" elp-results + :help "Display current profiling results")) + (bindings--define-key prof-map [prof-pack] + '(menu-item "Instrument Package..." elp-instrument-package + :help "Instrument for profiling all function that start with a prefix")) + (bindings--define-key prof-map [prof-func] + '(menu-item "Instrument Function..." elp-instrument-function + :help "Instrument a function for profiling")) + ;; Maybe this should be in a separate submenu from the ELP stuff? + (bindings--define-key prof-map [sep-natprof] menu-bar-separator) + (bindings--define-key prof-map [prof-natprof-stop] + '(menu-item "Stop Native Profiler" profiler-stop + :help "Stop recording profiling information" + :enable (and (featurep 'profiler) + (profiler-running-p)))) + (bindings--define-key prof-map [prof-natprof-report] + '(menu-item "Show Profiler Report" profiler-report + :help "Show the current profiler report" + :enable (and (featurep 'profiler) + (profiler-running-p)))) + (bindings--define-key prof-map [prof-natprof-start] + '(menu-item "Start Native Profiler..." profiler-start + :help "Start recording profiling information")) + + (bindings--define-key menu-map [lint] (cons "Linting" lint-map)) + (bindings--define-key lint-map [lint-di] + '(menu-item "Lint Directory..." elint-directory + :help "Lint a directory")) + (bindings--define-key lint-map [lint-f] + '(menu-item "Lint File..." elint-file + :help "Lint a file")) + (bindings--define-key lint-map [lint-b] + '(menu-item "Lint Buffer" elint-current-buffer + :help "Lint the current buffer")) + (bindings--define-key lint-map [lint-d] + '(menu-item "Lint Defun" elint-defun + :help "Lint the function at point")) + (bindings--define-key menu-map [edebug-defun] + '(menu-item "Instrument Function for Debugging" edebug-defun + :help "Evaluate the top level form point is in, stepping through with Edebug" + :keys "C-u C-M-x")) + (bindings--define-key menu-map [separator-byte] menu-bar-separator) + (bindings--define-key menu-map [disas] + '(menu-item "Disassemble Byte Compiled Object..." disassemble + :help "Print disassembled code for OBJECT in a buffer")) + (bindings--define-key menu-map [byte-recompile] + '(menu-item "Byte-recompile Directory..." byte-recompile-directory + :help "Recompile every `.el' file in DIRECTORY that needs recompilation")) + (bindings--define-key menu-map [emacs-byte-compile-and-load] + '(menu-item "Byte-compile and Load" emacs-lisp-byte-compile-and-load + :help "Byte-compile the current file (if it has changed), then load compiled code")) + (bindings--define-key menu-map [byte-compile] + '(menu-item "Byte-compile This File" emacs-lisp-byte-compile + :help "Byte compile the file containing the current buffer")) + (bindings--define-key menu-map [separator-eval] menu-bar-separator) + (bindings--define-key menu-map [ielm] + '(menu-item "Interactive Expression Evaluation" ielm + :help "Interactively evaluate Emacs Lisp expressions")) + (bindings--define-key menu-map [eval-buffer] + '(menu-item "Evaluate Buffer" eval-buffer + :help "Execute the current buffer as Lisp code")) + (bindings--define-key menu-map [eval-region] + '(menu-item "Evaluate Region" eval-region + :help "Execute the region as Lisp code" + :enable mark-active)) + (bindings--define-key menu-map [eval-sexp] + '(menu-item "Evaluate Last S-expression" eval-last-sexp + :help "Evaluate sexp before point; print value in echo area")) + (bindings--define-key menu-map [separator-format] menu-bar-separator) + (bindings--define-key menu-map [comment-region] + '(menu-item "Comment Out Region" comment-region + :help "Comment or uncomment each line in the region" + :enable mark-active)) + (bindings--define-key menu-map [indent-region] + '(menu-item "Indent Region" indent-region + :help "Indent each nonblank line in the region" + :enable mark-active)) + (bindings--define-key menu-map [indent-line] + '(menu-item "Indent Line" lisp-indent-line)) + map) + "Keymap for Emacs Lisp mode. +All commands in `lisp-mode-shared-map' are inherited by this map.") + +(defun emacs-lisp-byte-compile () + "Byte compile the file containing the current buffer." + (interactive) + (if buffer-file-name + (byte-compile-file buffer-file-name) + (error "The buffer must be saved in a file first"))) + +(defun emacs-lisp-byte-compile-and-load () + "Byte-compile the current file (if it has changed), then load compiled code." + (interactive) + (or buffer-file-name + (error "The buffer must be saved in a file first")) + (require 'bytecomp) + ;; Recompile if file or buffer has changed since last compilation. + (if (and (buffer-modified-p) + (y-or-n-p (format "Save buffer %s first? " (buffer-name)))) + (save-buffer)) + (byte-recompile-file buffer-file-name nil 0 t)) + +(defun emacs-lisp-macroexpand () + "Macroexpand the form after point. +Comments in the form will be lost." + (interactive) + (let* ((start (point)) + (exp (read (current-buffer))) + ;; Compute it before, since it may signal errors. + (new (macroexpand-1 exp))) + (if (equal exp new) + (message "Not a macro call, nothing to expand") + (delete-region start (point)) + (pp new (current-buffer)) + (if (bolp) (delete-char -1)) + (indent-region start (point))))) + +(defcustom emacs-lisp-mode-hook nil + "Hook run when entering Emacs Lisp mode." + :options '(eldoc-mode imenu-add-menubar-index checkdoc-minor-mode) + :type 'hook + :group 'lisp) + +;;;###autoload +(define-derived-mode emacs-lisp-mode prog-mode "Emacs-Lisp" + "Major mode for editing Lisp code to run in Emacs. +Commands: +Delete converts tabs to spaces as it moves back. +Blank lines separate paragraphs. Semicolons start comments. + +\\{emacs-lisp-mode-map}" + :group 'lisp + (lisp-mode-variables nil nil 'elisp) + (setq imenu-case-fold-search nil) + (setq-local eldoc-documentation-function + #'elisp-eldoc-documentation-function) + (add-hook 'completion-at-point-functions + #'elisp-completion-at-point nil 'local)) + +;;; Completion at point for Elisp + +(defun elisp--local-variables-1 (vars sexp) + "Return the vars locally bound around the witness, or nil if not found." + (let (res) + (while + (unless + (setq res + (pcase sexp + (`(,(or `let `let*) ,bindings) + (let ((vars vars)) + (when (eq 'let* (car sexp)) + (dolist (binding (cdr (reverse bindings))) + (push (or (car-safe binding) binding) vars))) + (elisp--local-variables-1 + vars (car (cdr-safe (car (last bindings))))))) + (`(,(or `let `let*) ,bindings . ,body) + (let ((vars vars)) + (dolist (binding bindings) + (push (or (car-safe binding) binding) vars)) + (elisp--local-variables-1 vars (car (last body))))) + (`(lambda ,_args) + ;; FIXME: Look for the witness inside `args'. + (setq sexp nil)) + (`(lambda ,args . ,body) + (elisp--local-variables-1 + (append (remq '&optional (remq '&rest args)) vars) + (car (last body)))) + (`(condition-case ,_ ,e) (elisp--local-variables-1 vars e)) + (`(condition-case ,v ,_ . ,catches) + (elisp--local-variables-1 + (cons v vars) (cdr (car (last catches))))) + (`(quote . ,_) + ;; FIXME: Look for the witness inside sexp. + (setq sexp nil)) + ;; FIXME: Handle `cond'. + (`(,_ . ,_) + (elisp--local-variables-1 vars (car (last sexp)))) + (`elisp--witness--lisp (or vars '(nil))) + (_ nil))) + ;; We didn't find the witness in the last element so we try to + ;; backtrack to the last-but-one. + (setq sexp (ignore-errors (butlast sexp))))) + res)) + +(defun elisp--local-variables () + "Return a list of locally let-bound variables at point." + (save-excursion + (skip-syntax-backward "w_") + (let* ((ppss (syntax-ppss)) + (txt (buffer-substring-no-properties (or (car (nth 9 ppss)) (point)) + (or (nth 8 ppss) (point)))) + (closer ())) + (dolist (p (nth 9 ppss)) + (push (cdr (syntax-after p)) closer)) + (setq closer (apply #'string closer)) + (let* ((sexp (condition-case nil + (car (read-from-string + (concat txt "elisp--witness--lisp" closer))) + ((invalid-read-syntax end-of-file) nil))) + (macroexpand-advice (lambda (expander form &rest args) + (condition-case nil + (apply expander form args) + (error form)))) + (sexp + (unwind-protect + (progn + (advice-add 'macroexpand :around macroexpand-advice) + (macroexpand-all sexp)) + (advice-remove 'macroexpand macroexpand-advice))) + (vars (elisp--local-variables-1 nil sexp))) + (delq nil + (mapcar (lambda (var) + (and (symbolp var) + (not (string-match (symbol-name var) "\\`[&_]")) + ;; Eliminate uninterned vars. + (intern-soft var) + var)) + vars)))))) + +(defvar elisp--local-variables-completion-table + ;; Use `defvar' rather than `defconst' since defconst would purecopy this + ;; value, which would doubly fail: it would fail because purecopy can't + ;; handle the recursive bytecode object, and it would fail because it would + ;; move `lastpos' and `lastvars' to pure space where they'd be immutable! + (let ((lastpos nil) (lastvars nil)) + (letrec ((hookfun (lambda () + (setq lastpos nil) + (remove-hook 'post-command-hook hookfun)))) + (completion-table-dynamic + (lambda (_string) + (save-excursion + (skip-syntax-backward "_w") + (let ((newpos (cons (point) (current-buffer)))) + (unless (equal lastpos newpos) + (add-hook 'post-command-hook hookfun) + (setq lastpos newpos) + (setq lastvars + (mapcar #'symbol-name (elisp--local-variables)))))) + lastvars))))) + +(defun elisp--expect-function-p (pos) + "Return non-nil if the symbol at point is expected to be a function." + (or + (and (eq (char-before pos) ?') + (eq (char-before (1- pos)) ?#)) + (save-excursion + (let ((parent (nth 1 (syntax-ppss pos)))) + (when parent + (goto-char parent) + (and + (looking-at (concat "(\\(cl-\\)?" + (regexp-opt '("declare-function" + "function" "defadvice" + "callf" "callf2" + "defsetf")) + "[ \t\r\n]+")) + (eq (match-end 0) pos))))))) + +(defun elisp--form-quoted-p (pos) + "Return non-nil if the form at POS is not evaluated. +It can be quoted, or be inside a quoted form." + ;; FIXME: Do some macro expansion maybe. + (save-excursion + (let ((state (syntax-ppss pos))) + (or (nth 8 state) ; Code inside strings usually isn't evaluated. + ;; FIXME: The 9th element is undocumented. + (let ((nesting (cons (point) (reverse (nth 9 state)))) + res) + (while (and nesting (not res)) + (goto-char (pop nesting)) + (cond + ((or (eq (char-after) ?\[) + (progn + (skip-chars-backward " ") + (memq (char-before) '(?' ?`)))) + (setq res t)) + ((eq (char-before) ?,) + (setq nesting nil)))) + res))))) + +;; FIXME: Support for Company brings in features which straddle eldoc. +;; We should consolidate this, so that major modes can provide all that +;; data all at once: +;; - a function to extract "the reference at point" (may be more complex +;; than a mere string, to distinguish various namespaces). +;; - a function to jump to such a reference. +;; - a function to show the signature/interface of such a reference. +;; - a function to build a help-buffer about that reference. +;; FIXME: Those functions should also be used by the normal completion code in +;; the *Completions* buffer. + +(defun elisp--company-doc-buffer (str) + (let ((symbol (intern-soft str))) + ;; FIXME: we really don't want to "display-buffer and then undo it". + (save-window-excursion + ;; Make sure we don't display it in another frame, otherwise + ;; save-window-excursion won't be able to undo it. + (let ((display-buffer-overriding-action + '(nil . ((inhibit-switch-frame . t))))) + (ignore-errors + (cond + ((fboundp symbol) (describe-function symbol)) + ((boundp symbol) (describe-variable symbol)) + ((featurep symbol) (describe-package symbol)) + ((facep symbol) (describe-face symbol)) + (t (signal 'user-error nil))) + (help-buffer)))))) + +(defun elisp--company-doc-string (str) + (let* ((symbol (intern-soft str)) + (doc (if (fboundp symbol) + (documentation symbol t) + (documentation-property symbol 'variable-documentation t)))) + (and (stringp doc) + (string-match ".*$" doc) + (match-string 0 doc)))) + +(declare-function find-library-name "find-func" (library)) + +(defun elisp--company-location (str) + (let ((sym (intern-soft str))) + (cond + ((fboundp sym) (find-definition-noselect sym nil)) + ((boundp sym) (find-definition-noselect sym 'defvar)) + ((featurep sym) + (require 'find-func) + (cons (find-file-noselect (find-library-name + (symbol-name sym))) + 0)) + ((facep sym) (find-definition-noselect sym 'defface))))) + +(defun elisp-completion-at-point () + "Function used for `completion-at-point-functions' in `emacs-lisp-mode'." + (with-syntax-table emacs-lisp-mode-syntax-table + (let* ((pos (point)) + (beg (condition-case nil + (save-excursion + (backward-sexp 1) + (skip-syntax-forward "'") + (point)) + (scan-error pos))) + (end + (unless (or (eq beg (point-max)) + (member (char-syntax (char-after beg)) + '(?\s ?\" ?\( ?\)))) + (condition-case nil + (save-excursion + (goto-char beg) + (forward-sexp 1) + (skip-chars-backward "'") + (when (>= (point) pos) + (point))) + (scan-error pos)))) + ;; t if in function position. + (funpos (eq (char-before beg) ?\())) + (when (and end (or (not (nth 8 (syntax-ppss))) + (eq (char-before beg) ?`))) + (let ((table-etc + (if (not funpos) + ;; FIXME: We could look at the first element of the list and + ;; use it to provide a more specific completion table in some + ;; cases. E.g. filter out keywords that are not understood by + ;; the macro/function being called. + (cond + ((elisp--expect-function-p beg) + (list nil obarray + :predicate #'fboundp + :company-doc-buffer #'elisp--company-doc-buffer + :company-docsig #'elisp--company-doc-string + :company-location #'elisp--company-location)) + ((elisp--form-quoted-p beg) + (list nil obarray + ;; Don't include all symbols + ;; (bug#16646). + :predicate (lambda (sym) + (or (boundp sym) + (fboundp sym) + (symbol-plist sym))) + :annotation-function + (lambda (str) (if (fboundp (intern-soft str)) " ")) + :company-doc-buffer #'elisp--company-doc-buffer + :company-docsig #'elisp--company-doc-string + :company-location #'elisp--company-location)) + (t + (list nil (completion-table-merge + elisp--local-variables-completion-table + (apply-partially #'completion-table-with-predicate + obarray + #'boundp + 'strict)) + :company-doc-buffer #'elisp--company-doc-buffer + :company-docsig #'elisp--company-doc-string + :company-location #'elisp--company-location))) + ;; Looks like a funcall position. Let's double check. + (save-excursion + (goto-char (1- beg)) + (let ((parent + (condition-case nil + (progn (up-list -1) (forward-char 1) + (let ((c (char-after))) + (if (eq c ?\() ?\( + (if (memq (char-syntax c) '(?w ?_)) + (read (current-buffer)))))) + (error nil)))) + (pcase parent + ;; FIXME: Rather than hardcode special cases here, + ;; we should use something like a symbol-property. + (`declare + (list t (mapcar (lambda (x) (symbol-name (car x))) + (delete-dups + ;; FIXME: We should include some + ;; docstring with each entry. + (append + macro-declarations-alist + defun-declarations-alist))))) + ((and (or `condition-case `condition-case-unless-debug) + (guard (save-excursion + (ignore-errors + (forward-sexp 2) + (< (point) beg))))) + (list t obarray + :predicate (lambda (sym) (get sym 'error-conditions)))) + ((and ?\( + (guard (save-excursion + (goto-char (1- beg)) + (up-list -1) + (forward-symbol -1) + (looking-at "\\_")))) + (list t obarray + :predicate #'boundp + :company-doc-buffer #'elisp--company-doc-buffer + :company-docsig #'elisp--company-doc-string + :company-location #'elisp--company-location)) + (_ (list nil obarray + :predicate #'fboundp + :company-doc-buffer #'elisp--company-doc-buffer + :company-docsig #'elisp--company-doc-string + :company-location #'elisp--company-location + )))))))) + (nconc (list beg end) + (if (null (car table-etc)) + (cdr table-etc) + (cons + (if (memq (char-syntax (or (char-after end) ?\s)) + '(?\s ?>)) + (cadr table-etc) + (apply-partially 'completion-table-with-terminator + " " (cadr table-etc))) + (cddr table-etc))))))))) + +(define-obsolete-function-alias + 'lisp-completion-at-point 'elisp-completion-at-point "25.1") + +;;; Elisp Interaction mode + +(defvar lisp-interaction-mode-map + (let ((map (make-sparse-keymap)) + (menu-map (make-sparse-keymap "Lisp-Interaction"))) + (set-keymap-parent map lisp-mode-shared-map) + (define-key map "\e\C-x" 'eval-defun) + (define-key map "\e\C-q" 'indent-pp-sexp) + (define-key map "\e\t" 'completion-at-point) + (define-key map "\n" 'eval-print-last-sexp) + (bindings--define-key map [menu-bar lisp-interaction] + (cons "Lisp-Interaction" menu-map)) + (bindings--define-key menu-map [eval-defun] + '(menu-item "Evaluate Defun" eval-defun + :help "Evaluate the top-level form containing point, or after point")) + (bindings--define-key menu-map [eval-print-last-sexp] + '(menu-item "Evaluate and Print" eval-print-last-sexp + :help "Evaluate sexp before point; print value into current buffer")) + (bindings--define-key menu-map [edebug-defun-lisp-interaction] + '(menu-item "Instrument Function for Debugging" edebug-defun + :help "Evaluate the top level form point is in, stepping through with Edebug" + :keys "C-u C-M-x")) + (bindings--define-key menu-map [indent-pp-sexp] + '(menu-item "Indent or Pretty-Print" indent-pp-sexp + :help "Indent each line of the list starting just after point, or prettyprint it")) + (bindings--define-key menu-map [complete-symbol] + '(menu-item "Complete Lisp Symbol" completion-at-point + :help "Perform completion on Lisp symbol preceding point")) + map) + "Keymap for Lisp Interaction mode. +All commands in `lisp-mode-shared-map' are inherited by this map.") + +(define-derived-mode lisp-interaction-mode emacs-lisp-mode "Lisp Interaction" + "Major mode for typing and evaluating Lisp forms. +Like Lisp mode except that \\[eval-print-last-sexp] evals the Lisp expression +before point, and prints its value into the buffer, advancing point. +Note that printing is controlled by `eval-expression-print-length' +and `eval-expression-print-level'. + +Commands: +Delete converts tabs to spaces as it moves back. +Paragraphs are separated only by blank lines. +Semicolons start comments. + +\\{lisp-interaction-mode-map}" + :abbrev-table nil) + +;;; Emacs Lisp Byte-Code mode + +(eval-and-compile + (defconst emacs-list-byte-code-comment-re + (concat "\\(#\\)@\\([0-9]+\\) " + ;; Make sure it's a docstring and not a lazy-loaded byte-code. + "\\(?:[^(]\\|([^\"]\\)"))) + +(defun elisp--byte-code-comment (end &optional _point) + "Try to syntactically mark the #@NNN ....^_ docstrings in byte-code files." + (let ((ppss (syntax-ppss))) + (when (and (nth 4 ppss) + (eq (char-after (nth 8 ppss)) ?#)) + (let* ((n (save-excursion + (goto-char (nth 8 ppss)) + (when (looking-at emacs-list-byte-code-comment-re) + (string-to-number (match-string 2))))) + ;; `maxdiff' tries to make sure the loop below terminates. + (maxdiff n)) + (when n + (let* ((bchar (match-end 2)) + (b (position-bytes bchar))) + (goto-char (+ b n)) + (while (let ((diff (- (position-bytes (point)) b n))) + (unless (zerop diff) + (when (> diff maxdiff) (setq diff maxdiff)) + (forward-char (- diff)) + (setq maxdiff (if (> diff 0) diff + (max (1- maxdiff) 1))) + t)))) + (if (<= (point) end) + (put-text-property (1- (point)) (point) + 'syntax-table + (string-to-syntax "> b")) + (goto-char end))))))) + +(defun elisp-byte-code-syntax-propertize (start end) + (elisp--byte-code-comment end (point)) + (funcall + (syntax-propertize-rules + (emacs-list-byte-code-comment-re + (1 (prog1 "< b" (elisp--byte-code-comment end (point)))))) + start end)) + +;;;###autoload +(add-to-list 'auto-mode-alist '("\\.elc\\'" . elisp-byte-code-mode)) +;;;###autoload +(define-derived-mode elisp-byte-code-mode emacs-lisp-mode + "Elisp-Byte-Code" + "Major mode for *.elc files." + ;; TODO: Add way to disassemble byte-code under point. + (setq-local open-paren-in-column-0-is-defun-start nil) + (setq-local syntax-propertize-function + #'elisp-byte-code-syntax-propertize)) + + +;;; Globally accessible functionality + +(defun eval-print-last-sexp (&optional eval-last-sexp-arg-internal) + "Evaluate sexp before point; print value into current buffer. + +Normally, this function truncates long output according to the value +of the variables `eval-expression-print-length' and +`eval-expression-print-level'. With a prefix argument of zero, +however, there is no such truncation. Such a prefix argument +also causes integers to be printed in several additional formats +\(octal, hexadecimal, and character). + +If `eval-expression-debug-on-error' is non-nil, which is the default, +this command arranges for all errors to enter the debugger." + (interactive "P") + (let ((standard-output (current-buffer))) + (terpri) + (eval-last-sexp (or eval-last-sexp-arg-internal t)) + (terpri))) + + +(defun last-sexp-setup-props (beg end value alt1 alt2) + "Set up text properties for the output of `elisp--eval-last-sexp'. +BEG and END are the start and end of the output in current-buffer. +VALUE is the Lisp value printed, ALT1 and ALT2 are strings for the +alternative printed representations that can be displayed." + (let ((map (make-sparse-keymap))) + (define-key map "\C-m" 'elisp-last-sexp-toggle-display) + (define-key map [down-mouse-2] 'mouse-set-point) + (define-key map [mouse-2] 'elisp-last-sexp-toggle-display) + (add-text-properties + beg end + `(printed-value (,value ,alt1 ,alt2) + mouse-face highlight + keymap ,map + help-echo "RET, mouse-2: toggle abbreviated display" + rear-nonsticky (mouse-face keymap help-echo + printed-value))))) + + +(defun elisp-last-sexp-toggle-display (&optional _arg) + "Toggle between abbreviated and unabbreviated printed representations." + (interactive "P") + (save-restriction + (widen) + (let ((value (get-text-property (point) 'printed-value))) + (when value + (let ((beg (or (previous-single-property-change (min (point-max) (1+ (point))) + 'printed-value) + (point))) + (end (or (next-single-char-property-change (point) 'printed-value) (point))) + (standard-output (current-buffer)) + (point (point))) + (delete-region beg end) + (insert (nth 1 value)) + (or (= beg point) + (setq point (1- (point)))) + (last-sexp-setup-props beg (point) + (nth 0 value) + (nth 2 value) + (nth 1 value)) + (goto-char (min (point-max) point))))))) + +(defun prin1-char (char) ;FIXME: Move it, e.g. to simple.el. + "Return a string representing CHAR as a character rather than as an integer. +If CHAR is not a character, return nil." + (and (integerp char) + (eventp char) + (let ((c (event-basic-type char)) + (mods (event-modifiers char)) + string) + ;; Prevent ?A from turning into ?\S-a. + (if (and (memq 'shift mods) + (zerop (logand char ?\S-\^@)) + (not (let ((case-fold-search nil)) + (char-equal c (upcase c))))) + (setq c (upcase c) mods nil)) + ;; What string are we considering using? + (condition-case nil + (setq string + (concat + "?" + (mapconcat + (lambda (modif) + (cond ((eq modif 'super) "\\s-") + (t (string ?\\ (upcase (aref (symbol-name modif) 0)) ?-)))) + mods "") + (cond + ((memq c '(?\; ?\( ?\) ?\{ ?\} ?\[ ?\] ?\" ?\' ?\\)) (string ?\\ c)) + ((eq c 127) "\\C-?") + (t + (string c))))) + (error nil)) + ;; Verify the string reads a CHAR, not to some other character. + ;; If it doesn't, return nil instead. + (and string + (= (car (read-from-string string)) char) + string)))) + +(defun elisp--preceding-sexp () + "Return sexp before the point." + (let ((opoint (point)) + ignore-quotes + expr) + (save-excursion + (with-syntax-table emacs-lisp-mode-syntax-table + ;; If this sexp appears to be enclosed in `...' + ;; then ignore the surrounding quotes. + (setq ignore-quotes + (or (eq (following-char) ?\') + (eq (preceding-char) ?\'))) + (forward-sexp -1) + ;; If we were after `?\e' (or similar case), + ;; use the whole thing, not just the `e'. + (when (eq (preceding-char) ?\\) + (forward-char -1) + (when (eq (preceding-char) ??) + (forward-char -1))) + + ;; Skip over hash table read syntax. + (and (> (point) (1+ (point-min))) + (looking-back "#s" (- (point) 2)) + (forward-char -2)) + + ;; Skip over `#N='s. + (when (eq (preceding-char) ?=) + (let (labeled-p) + (save-excursion + (skip-chars-backward "0-9#=") + (setq labeled-p (looking-at "\\(#[0-9]+=\\)+"))) + (when labeled-p + (forward-sexp -1)))) + + (save-restriction + (if (and ignore-quotes (eq (following-char) ?`)) + ;; vladimir@cs.ualberta.ca 30-Jul-1997: Skip ` in `variable' so + ;; that the value is returned, not the name. + (forward-char)) + (when (looking-at ",@?") (goto-char (match-end 0))) + (narrow-to-region (point-min) opoint) + (setq expr (read (current-buffer))) + ;; If it's an (interactive ...) form, it's more useful to show how an + ;; interactive call would use it. + ;; FIXME: Is it really the right place for this? + (when (eq (car-safe expr) 'interactive) + (setq expr + `(call-interactively + (lambda (&rest args) ,expr args)))) + expr))))) +(define-obsolete-function-alias 'preceding-sexp 'elisp--preceding-sexp "25.1") + +(defun elisp--eval-last-sexp (eval-last-sexp-arg-internal) + "Evaluate sexp before point; print value in the echo area. +With argument, print output into current buffer. +With a zero prefix arg, print output with no limit on the length +and level of lists, and include additional formats for integers +\(octal, hexadecimal, and character)." + (let ((standard-output (if eval-last-sexp-arg-internal (current-buffer) t))) + ;; Setup the lexical environment if lexical-binding is enabled. + (elisp--eval-last-sexp-print-value + (eval (eval-sexp-add-defvars (elisp--preceding-sexp)) lexical-binding) + eval-last-sexp-arg-internal))) + + +(defun elisp--eval-last-sexp-print-value (value &optional eval-last-sexp-arg-internal) + (let ((unabbreviated (let ((print-length nil) (print-level nil)) + (prin1-to-string value))) + (print-length (and (not (zerop (prefix-numeric-value + eval-last-sexp-arg-internal))) + eval-expression-print-length)) + (print-level (and (not (zerop (prefix-numeric-value + eval-last-sexp-arg-internal))) + eval-expression-print-level)) + (beg (point)) + end) + (prog1 + (prin1 value) + (let ((str (eval-expression-print-format value))) + (if str (princ str))) + (setq end (point)) + (when (and (bufferp standard-output) + (or (not (null print-length)) + (not (null print-level))) + (not (string= unabbreviated + (buffer-substring-no-properties beg end)))) + (last-sexp-setup-props beg end value + unabbreviated + (buffer-substring-no-properties beg end)) + )))) + + +(defvar elisp--eval-last-sexp-fake-value (make-symbol "t")) + +(defun eval-sexp-add-defvars (exp &optional pos) + "Prepend EXP with all the `defvar's that precede it in the buffer. +POS specifies the starting position where EXP was found and defaults to point." + (setq exp (macroexpand-all exp)) ;Eager macro-expansion. + (if (not lexical-binding) + exp + (save-excursion + (unless pos (setq pos (point))) + (let ((vars ())) + (goto-char (point-min)) + (while (re-search-forward + "(def\\(?:var\\|const\\|custom\\)[ \t\n]+\\([^; '()\n\t]+\\)" + pos t) + (let ((var (intern (match-string 1)))) + (and (not (special-variable-p var)) + (save-excursion + (zerop (car (syntax-ppss (match-beginning 0))))) + (push var vars)))) + `(progn ,@(mapcar (lambda (v) `(defvar ,v)) vars) ,exp))))) + +(defun eval-last-sexp (eval-last-sexp-arg-internal) + "Evaluate sexp before point; print value in the echo area. +Interactively, with prefix argument, print output into current buffer. + +Normally, this function truncates long output according to the value +of the variables `eval-expression-print-length' and +`eval-expression-print-level'. With a prefix argument of zero, +however, there is no such truncation. Such a prefix argument +also causes integers to be printed in several additional formats +\(octal, hexadecimal, and character). + +If `eval-expression-debug-on-error' is non-nil, which is the default, +this command arranges for all errors to enter the debugger." + (interactive "P") + (if (null eval-expression-debug-on-error) + (elisp--eval-last-sexp eval-last-sexp-arg-internal) + (let ((value + (let ((debug-on-error elisp--eval-last-sexp-fake-value)) + (cons (elisp--eval-last-sexp eval-last-sexp-arg-internal) + debug-on-error)))) + (unless (eq (cdr value) elisp--eval-last-sexp-fake-value) + (setq debug-on-error (cdr value))) + (car value)))) + +(defun elisp--eval-defun-1 (form) + "Treat some expressions specially. +Reset the `defvar' and `defcustom' variables to the initial value. +\(For `defcustom', use the :set function if there is one.) +Reinitialize the face according to the `defface' specification." + ;; The code in edebug-defun should be consistent with this, but not + ;; the same, since this gets a macroexpanded form. + (cond ((not (listp form)) + form) + ((and (eq (car form) 'defvar) + (cdr-safe (cdr-safe form)) + (boundp (cadr form))) + ;; Force variable to be re-set. + `(progn (defvar ,(nth 1 form) nil ,@(nthcdr 3 form)) + (setq-default ,(nth 1 form) ,(nth 2 form)))) + ;; `defcustom' is now macroexpanded to + ;; `custom-declare-variable' with a quoted value arg. + ((and (eq (car form) 'custom-declare-variable) + (default-boundp (eval (nth 1 form) lexical-binding))) + ;; Force variable to be bound, using :set function if specified. + (let ((setfunc (memq :set form))) + (when setfunc + (setq setfunc (car-safe (cdr-safe setfunc))) + (or (functionp setfunc) (setq setfunc nil))) + (funcall (or setfunc 'set-default) + (eval (nth 1 form) lexical-binding) + ;; The second arg is an expression that evaluates to + ;; an expression. The second evaluation is the one + ;; normally performed not by normal execution but by + ;; custom-initialize-set (for example), which does not + ;; use lexical-binding. + (eval (eval (nth 2 form) lexical-binding)))) + form) + ;; `defface' is macroexpanded to `custom-declare-face'. + ((eq (car form) 'custom-declare-face) + ;; Reset the face. + (let ((face-symbol (eval (nth 1 form) lexical-binding))) + (setq face-new-frame-defaults + (assq-delete-all face-symbol face-new-frame-defaults)) + (put face-symbol 'face-defface-spec nil) + (put face-symbol 'face-override-spec nil)) + form) + ((eq (car form) 'progn) + (cons 'progn (mapcar #'elisp--eval-defun-1 (cdr form)))) + (t form))) + +(defun elisp--eval-defun () + "Evaluate defun that point is in or before. +The value is displayed in the echo area. +If the current defun is actually a call to `defvar', +then reset the variable using the initial value expression +even if the variable already has some other value. +\(Normally `defvar' does not change the variable's value +if it already has a value.\) + +Return the result of evaluation." + ;; FIXME: the print-length/level bindings should only be applied while + ;; printing, not while evaluating. + (let ((debug-on-error eval-expression-debug-on-error) + (print-length eval-expression-print-length) + (print-level eval-expression-print-level)) + (save-excursion + ;; Arrange for eval-region to "read" the (possibly) altered form. + ;; eval-region handles recording which file defines a function or + ;; variable. + (let ((standard-output t) + beg end form) + ;; Read the form from the buffer, and record where it ends. + (save-excursion + (end-of-defun) + (beginning-of-defun) + (setq beg (point)) + (setq form (read (current-buffer))) + (setq end (point))) + ;; Alter the form if necessary. + (let ((form (eval-sexp-add-defvars + (elisp--eval-defun-1 (macroexpand form))))) + (eval-region beg end standard-output + (lambda (_ignore) + ;; Skipping to the end of the specified region + ;; will make eval-region return. + (goto-char end) + form)))))) + (let ((str (eval-expression-print-format (car values)))) + (if str (princ str))) + ;; The result of evaluation has been put onto VALUES. So return it. + (car values)) + +(defun eval-defun (edebug-it) + "Evaluate the top-level form containing point, or after point. + +If the current defun is actually a call to `defvar' or `defcustom', +evaluating it this way resets the variable using its initial value +expression (using the defcustom's :set function if there is one), even +if the variable already has some other value. \(Normally `defvar' and +`defcustom' do not alter the value if there already is one.) In an +analogous way, evaluating a `defface' overrides any customizations of +the face, so that it becomes defined exactly as the `defface' expression +says. + +If `eval-expression-debug-on-error' is non-nil, which is the default, +this command arranges for all errors to enter the debugger. + +With a prefix argument, instrument the code for Edebug. + +If acting on a `defun' for FUNCTION, and the function was +instrumented, `Edebug: FUNCTION' is printed in the echo area. If not +instrumented, just FUNCTION is printed. + +If not acting on a `defun', the result of evaluation is displayed in +the echo area. This display is controlled by the variables +`eval-expression-print-length' and `eval-expression-print-level', +which see." + (interactive "P") + (cond (edebug-it + (require 'edebug) + (eval-defun (not edebug-all-defs))) + (t + (if (null eval-expression-debug-on-error) + (elisp--eval-defun) + (let (new-value value) + (let ((debug-on-error elisp--eval-last-sexp-fake-value)) + (setq value (elisp--eval-defun)) + (setq new-value debug-on-error)) + (unless (eq elisp--eval-last-sexp-fake-value new-value) + (setq debug-on-error new-value)) + value))))) + +;;; ElDoc Support + +(defvar elisp--eldoc-last-data (make-vector 3 nil) + "Bookkeeping; elements are as follows: + 0 - contains the last symbol read from the buffer. + 1 - contains the string last displayed in the echo area for variables, + or argument string for functions. + 2 - 'function if function args, 'variable if variable documentation.") + +(defun elisp-eldoc-documentation-function () + "`eldoc-documentation-function' (which see) for Emacs Lisp." + (let ((current-symbol (elisp--current-symbol)) + (current-fnsym (elisp--fnsym-in-current-sexp))) + (cond ((null current-fnsym) + nil) + ((eq current-symbol (car current-fnsym)) + (or (apply #'elisp--get-fnsym-args-string current-fnsym) + (elisp--get-var-docstring current-symbol))) + (t + (or (elisp--get-var-docstring current-symbol) + (apply #'elisp--get-fnsym-args-string current-fnsym)))))) + +(defun elisp--get-fnsym-args-string (sym &optional index) + "Return a string containing the parameter list of the function SYM. +If SYM is a subr and no arglist is obtainable from the docstring +or elsewhere, return a 1-line docstring." + (let ((argstring + (cond + ((not (and sym (symbolp sym) (fboundp sym))) nil) + ((and (eq sym (aref elisp--eldoc-last-data 0)) + (eq 'function (aref elisp--eldoc-last-data 2))) + (aref elisp--eldoc-last-data 1)) + (t + (let* ((advertised (gethash (indirect-function sym) + advertised-signature-table t)) + doc + (args + (cond + ((listp advertised) advertised) + ((setq doc (help-split-fundoc (documentation sym t) sym)) + (car doc)) + (t (help-function-arglist sym))))) + ;; Stringify, and store before highlighting, downcasing, etc. + ;; FIXME should truncate before storing. + (elisp--last-data-store sym (elisp--function-argstring args) + 'function)))))) + ;; Highlight, truncate. + (if argstring + (elisp--highlight-function-argument sym argstring index)))) + +(defun elisp--highlight-function-argument (sym args index) + "Highlight argument INDEX in ARGS list for function SYM. +In the absence of INDEX, just call `elisp--docstring-format-sym-doc'." + ;; FIXME: This should probably work on the list representation of `args' + ;; rather than its string representation. + ;; FIXME: This function is much too long, we need to split it up! + (let ((start nil) + (end 0) + (argument-face 'eldoc-highlight-function-argument) + (args-lst (mapcar (lambda (x) + (replace-regexp-in-string + "\\`[(]\\|[)]\\'" "" x)) + (split-string args)))) + ;; Find the current argument in the argument string. We need to + ;; handle `&rest' and informal `...' properly. + ;; + ;; FIXME: What to do with optional arguments, like in + ;; (defun NAME ARGLIST [DOCSTRING] BODY...) case? + ;; The problem is there is no robust way to determine if + ;; the current argument is indeed a docstring. + + ;; When `&key' is used finding position based on `index' + ;; would be wrong, so find the arg at point and determine + ;; position in ARGS based on this current arg. + (when (string-match "&key" args) + (let* (case-fold-search + key-have-value + (sym-name (symbol-name sym)) + (cur-w (current-word)) + (args-lst-ak (cdr (member "&key" args-lst))) + (limit (save-excursion + (when (re-search-backward sym-name nil t) + (match-end 0)))) + (cur-a (if (and cur-w (string-match ":\\([^ ()]*\\)" cur-w)) + (substring cur-w 1) + (save-excursion + (let (split) + (when (re-search-backward ":\\([^()\n]*\\)" limit t) + (setq split (split-string (match-string 1) " " t)) + (prog1 (car split) + (when (cdr split) + (setq key-have-value t)))))))) + ;; If `cur-a' is not one of `args-lst-ak' + ;; assume user is entering an unknown key + ;; referenced in last position in signature. + (other-key-arg (and (stringp cur-a) + args-lst-ak + (not (member (upcase cur-a) args-lst-ak)) + (upcase (car (last args-lst-ak)))))) + (unless (string= cur-w sym-name) + ;; The last keyword have already a value + ;; i.e :foo a b and cursor is at b. + ;; If signature have also `&rest' + ;; (assume it is after the `&key' section) + ;; go to the arg after `&rest'. + (if (and key-have-value + (save-excursion + (not (re-search-forward ":.*" (point-at-eol) t))) + (string-match "&rest \\([^ ()]*\\)" args)) + (setq index nil ; Skip next block based on positional args. + start (match-beginning 1) + end (match-end 1)) + ;; If `cur-a' is nil probably cursor is on a positional arg + ;; before `&key', in this case, exit this block and determine + ;; position with `index'. + (when (and cur-a ; A keyword arg (dot removed) or nil. + (or (string-match + (concat "\\_<" (upcase cur-a) "\\_>") args) + (string-match + (concat "\\_<" other-key-arg "\\_>") args))) + (setq index nil ; Skip next block based on positional args. + start (match-beginning 0) + end (match-end 0))))))) + ;; Handle now positional arguments. + (while (and index (>= index 1)) + (if (string-match "[^ ()]+" args end) + (progn + (setq start (match-beginning 0) + end (match-end 0)) + (let ((argument (match-string 0 args))) + (cond ((string= argument "&rest") + ;; All the rest arguments are the same. + (setq index 1)) + ((string= argument "&optional")) ; Skip. + ((string= argument "&allow-other-keys")) ; Skip. + ;; Back to index 0 in ARG1 ARG2 ARG2 ARG3 etc... + ;; like in `setq'. + ((or (and (string-match-p "\\.\\.\\.$" argument) + (string= argument (car (last args-lst)))) + (and (string-match-p "\\.\\.\\.$" + (substring args 1 (1- (length args)))) + (= (length (remove "..." args-lst)) 2) + (> index 1) (eq (logand index 1) 1))) + (setq index 0)) + (t + (setq index (1- index)))))) + (setq end (length args) + start (1- end) + argument-face 'font-lock-warning-face + index 0))) + (let ((doc args)) + (when start + (setq doc (copy-sequence args)) + (add-text-properties start end (list 'face argument-face) doc)) + (setq doc (elisp--docstring-format-sym-doc + sym doc (if (functionp sym) 'font-lock-function-name-face + 'font-lock-keyword-face))) + doc))) + +;; Return a string containing a brief (one-line) documentation string for +;; the variable. +(defun elisp--get-var-docstring (sym) + (cond ((not sym) nil) + ((and (eq sym (aref elisp--eldoc-last-data 0)) + (eq 'variable (aref elisp--eldoc-last-data 2))) + (aref elisp--eldoc-last-data 1)) + (t + (let ((doc (documentation-property sym 'variable-documentation t))) + (when doc + (let ((doc (elisp--docstring-format-sym-doc + sym (elisp--docstring-first-line doc) + 'font-lock-variable-name-face))) + (elisp--last-data-store sym doc 'variable))))))) + +(defun elisp--last-data-store (symbol doc type) + (aset elisp--eldoc-last-data 0 symbol) + (aset elisp--eldoc-last-data 1 doc) + (aset elisp--eldoc-last-data 2 type) + doc) + +;; Note that any leading `*' in the docstring (which indicates the variable +;; is a user option) is removed. +(defun elisp--docstring-first-line (doc) + (and (stringp doc) + (substitute-command-keys + (save-match-data + ;; Don't use "^" in the regexp below since it may match + ;; anywhere in the doc-string. + (let ((start (if (string-match "\\`\\*" doc) (match-end 0) 0))) + (cond ((string-match "\n" doc) + (substring doc start (match-beginning 0))) + ((zerop start) doc) + (t (substring doc start)))))))) + +(defvar eldoc-echo-area-use-multiline-p) + +;; If the entire line cannot fit in the echo area, the symbol name may be +;; truncated or eliminated entirely from the output to make room for the +;; description. +(defun elisp--docstring-format-sym-doc (sym doc face) + (save-match-data + (let* ((name (symbol-name sym)) + (ea-multi eldoc-echo-area-use-multiline-p) + ;; Subtract 1 from window width since emacs will not write + ;; any chars to the last column, or in later versions, will + ;; cause a wraparound and resize of the echo area. + (ea-width (1- (window-width (minibuffer-window)))) + (strip (- (+ (length name) (length ": ") (length doc)) ea-width))) + (cond ((or (<= strip 0) + (eq ea-multi t) + (and ea-multi (> (length doc) ea-width))) + (format "%s: %s" (propertize name 'face face) doc)) + ((> (length doc) ea-width) + (substring (format "%s" doc) 0 ea-width)) + ((>= strip (length name)) + (format "%s" doc)) + (t + ;; Show the end of the partial symbol name, rather + ;; than the beginning, since the former is more likely + ;; to be unique given package namespace conventions. + (setq name (substring name strip)) + (format "%s: %s" (propertize name 'face face) doc)))))) + + +;; Return a list of current function name and argument index. +(defun elisp--fnsym-in-current-sexp () + (save-excursion + (let ((argument-index (1- (elisp--beginning-of-sexp)))) + ;; If we are at the beginning of function name, this will be -1. + (when (< argument-index 0) + (setq argument-index 0)) + ;; Don't do anything if current word is inside a string. + (if (= (or (char-after (1- (point))) 0) ?\") + nil + (list (elisp--current-symbol) argument-index))))) + +;; Move to the beginning of current sexp. Return the number of nested +;; sexp the point was over or after. +(defun elisp--beginning-of-sexp () + (let ((parse-sexp-ignore-comments t) + (num-skipped-sexps 0)) + (condition-case _ + (progn + ;; First account for the case the point is directly over a + ;; beginning of a nested sexp. + (condition-case _ + (let ((p (point))) + (forward-sexp -1) + (forward-sexp 1) + (when (< (point) p) + (setq num-skipped-sexps 1))) + (error)) + (while + (let ((p (point))) + (forward-sexp -1) + (when (< (point) p) + (setq num-skipped-sexps (1+ num-skipped-sexps)))))) + (error)) + num-skipped-sexps)) + +;; returns nil unless current word is an interned symbol. +(defun elisp--current-symbol () + (let ((c (char-after (point)))) + (and c + (memq (char-syntax c) '(?w ?_)) + (intern-soft (current-word))))) + +(defun elisp--function-argstring (arglist) + "Return ARGLIST as a string enclosed by (). +ARGLIST is either a string, or a list of strings or symbols." + (let ((str (cond ((stringp arglist) arglist) + ((not (listp arglist)) nil) + (t (format "%S" (help-make-usage 'toto arglist)))))) + (if (and str (string-match "\\`([^ )]+ ?" str)) + (replace-match "(" t t str) + str))) + +(provide 'elisp-mode) +;;; elisp-mode.el ends here diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index d60534074b9..b0d4b5ac377 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -76,11 +76,10 @@ in grep buffers, so if you have globally disabled font-lock-mode, you will not get highlighting. This option sets the environment variable GREP_COLORS to specify -markers for highlighting and GREP_OPTIONS to add the --color -option in front of any explicit grep options before starting -the grep. +markers for highlighting and adds the --color option in front of +any explicit grep options before starting the grep. -When this option is `auto', grep uses `--color=auto' to highlight +When this option is `auto', grep uses `--color' to highlight matches only when it outputs to a terminal (when `grep' is the last command in the pipe), thus avoiding the use of any potentially-harmful escape sequences when standard output goes to a file or pipe. @@ -96,7 +95,7 @@ To change the default value, use Customize or call the function :type '(choice (const :tag "Do not highlight matches with grep markers" nil) (const :tag "Highlight matches with grep markers" t) (const :tag "Use --color=always" always) - (const :tag "Use --color=auto" auto) + (const :tag "Use --color" auto) (other :tag "Not Set" auto-detect)) :set 'grep-apply-setting :version "22.1" @@ -344,16 +343,11 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies ;;;###autoload (defconst grep-regexp-alist '( - ;; Rule to match column numbers is commented out since no known grep - ;; produces them - ;; ("^\\(.+?\\)\\(:[ \t]*\\)\\([1-9][0-9]*\\)\\2\\(?:\\([1-9][0-9]*\\)\\(?:-\\([1-9][0-9]*\\)\\)?\\2\\)?" - ;; 1 3 (4 . 5)) - ;; Note that we want to use as tight a regexp as we can to try and - ;; handle weird file names (with colons in them) as well as possible. - ;; E.g. we use [1-9][0-9]* rather than [0-9]+ so as to accept ":034:" - ;; in file names. - ("^\\(.+?\\)\\(:[ \t]*\\)\\([1-9][0-9]*\\)\\2" - 1 3 + ;; Use a tight regexp to handle weird file names (with colons + ;; in them) as well as possible. E.g., use [1-9][0-9]* rather + ;; than [0-9]+ so as to accept ":034:" in file names. + ("^\\(.*?[^/\n]\\):[ \t]*\\([1-9][0-9]*\\)[ \t]*:" + 1 2 ;; Calculate column positions (col . end-col) of first grep match on a line ((lambda () (when grep-highlight-matches @@ -466,10 +460,6 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." ;; `setenv' modifies `process-environment' let-bound in `compilation-start' ;; Any TERM except "dumb" allows GNU grep to use `--color=auto' (setenv "TERM" "emacs-grep") - (setenv "GREP_OPTIONS" - (concat (getenv "GREP_OPTIONS") - " --color=" (if (eq grep-highlight-matches 'always) - "always" "auto"))) ;; GREP_COLOR is used in GNU grep 2.5.1, but deprecated in later versions (setenv "GREP_COLOR" "01;31") ;; GREP_COLORS is used in GNU grep 2.5.2 and later versions @@ -566,10 +556,28 @@ This function is called from `compilation-filter-hook'." (looking-at (concat (regexp-quote hello-file) ":[0-9]+:English"))))))))) + + (when (eq grep-highlight-matches 'auto-detect) + (setq grep-highlight-matches + (with-temp-buffer + (and (grep-probe grep-program '(nil t nil "--help")) + (progn + (goto-char (point-min)) + (search-forward "--color" nil t)) + ;; Windows and DOS pipes fail `isatty' detection in Grep. + (if (memq system-type '(windows-nt ms-dos)) + 'always 'auto))))) + (unless (and grep-command grep-find-command grep-template grep-find-template) (let ((grep-options - (concat (if grep-use-null-device "-n" "-nH") + (concat (and grep-highlight-matches + (grep-probe grep-program + `(nil nil nil "--color" "x" ,null-device) + nil 1) + (if (eq grep-highlight-matches 'always) + "--color=always " "--color ")) + (if grep-use-null-device "-n" "-nH") (if (grep-probe grep-program `(nil nil nil "-e" "foo" ,null-device) nil 1) @@ -636,16 +644,6 @@ This function is called from `compilation-filter-hook'." (t (format "%s . -type f -print | \"%s\" %s" find-program xargs-program gcmd)))))))) - (when (eq grep-highlight-matches 'auto-detect) - (setq grep-highlight-matches - (with-temp-buffer - (and (grep-probe grep-program '(nil t nil "--help")) - (progn - (goto-char (point-min)) - (search-forward "--color" nil t)) - ;; Windows and DOS pipes fail `isatty' detection in Grep. - (if (memq system-type '(windows-nt ms-dos)) - 'always 'auto))))) ;; Save defaults for this host. (setq grep-host-defaults-alist diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index c6fc944bc13..a12bdd99f23 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -34,7 +34,8 @@ ;; and added a menu. Brian D. Carlstrom combined the IRIX ;; kluge with the gud-xdb-directories hack producing gud-dbx-directories. ;; Derek L. Davies added support for jdb (Java -;; debugger.) +;; debugger.) Jan Nieuwenhuizen added support for the Guile REPL (Guile +;; debugger). ;;; Code: @@ -140,7 +141,7 @@ Used to gray out relevant toolbar icons.") (display-graphic-p) (fboundp 'x-show-tip)) :visible (memq gud-minor-mode - '(gdbmi dbx sdb xdb pdb)) + '(gdbmi guiler dbx sdb xdb pdb)) :button (:toggle . gud-tooltip-mode)) ([refresh] "Refresh" . gud-refresh) ([run] menu-item "Run" gud-run @@ -170,11 +171,11 @@ Used to gray out relevant toolbar icons.") ([up] menu-item "Up Stack" gud-up :enable (not gud-running) :visible (memq gud-minor-mode - '(gdbmi gdb dbx xdb jdb pdb))) + '(gdbmi gdb guiler dbx xdb jdb pdb))) ([down] menu-item "Down Stack" gud-down :enable (not gud-running) :visible (memq gud-minor-mode - '(gdbmi gdb dbx xdb jdb pdb))) + '(gdbmi gdb guiler dbx xdb jdb pdb))) ([pp] menu-item "Print S-expression" gud-pp :enable (and (not gud-running) (bound-and-true-p gdb-active-process)) @@ -195,7 +196,7 @@ Used to gray out relevant toolbar icons.") ([finish] menu-item "Finish Function" gud-finish :enable (not gud-running) :visible (memq gud-minor-mode - '(gdbmi gdb xdb jdb pdb))) + '(gdbmi gdb guiler xdb jdb pdb))) ([stepi] menu-item "Step Instruction" gud-stepi :enable (not gud-running) :visible (memq gud-minor-mode '(gdbmi gdb dbx))) @@ -255,9 +256,8 @@ Used to gray out relevant toolbar icons.") ([menu-bar file] . undefined)))) "Map used in visited files.") -(let ((m (assq 'gud-minor-mode minor-mode-map-alist))) - (if m (setcdr m gud-minor-mode-map) - (push (cons 'gud-minor-mode gud-minor-mode-map) minor-mode-map-alist))) +(setf (alist-get 'gud-minor-mode minor-mode-map-alist) + gud-minor-mode-map) (defvar gud-mode-map ;; Will inherit from comint-mode via define-derived-mode. @@ -803,24 +803,11 @@ directory and source-file directory for your debugger." "Completion table for GDB commands. COMMAND is the prefix for which we seek completion. CONTEXT is the text before COMMAND on the line." - (let* ((start (- (point) (field-beginning))) - (complete-list + (let* ((complete-list (gud-gdb-run-command-fetch-lines (concat "complete " context command) (current-buffer) ;; From string-match above. (length context)))) - ;; `gud-gdb-run-command-fetch-lines' has some nasty side-effects on the - ;; buffer (via `gud-delete-prompt-marker'): it removes the prompt and then - ;; re-adds it later, thus messing up markers and overlays along the way. - ;; This is a problem for completion-in-region which uses an overlay to - ;; create a field. - ;; So we restore completion-in-region's field if needed. - ;; FIXME: change gud-gdb-run-command-fetch-lines so it doesn't modify the - ;; buffer at all. - (when (/= start (- (point) (field-beginning))) - (dolist (ol (overlays-at (1- (point)))) - (when (eq (overlay-get ol 'field) 'completion) - (move-overlay ol (- (point) start) (overlay-end ol))))) ;; Protect against old versions of GDB. (and complete-list (string-match "^Undefined command: \"complete\"" (car complete-list)) @@ -859,7 +846,14 @@ CONTEXT is the text before COMMAND on the line." (save-excursion (skip-chars-backward "^ " (comint-line-beginning-position)) (point)))) - (list start end + ;; FIXME: `gud-gdb-run-command-fetch-lines' has some nasty side-effects on + ;; the buffer (via `gud-delete-prompt-marker'): it removes the prompt and + ;; then re-adds it later, thus messing up markers and overlays along the + ;; way (bug#18282). + ;; We use an "insert-before" marker for `start', since it's typically right + ;; after the prompt, which works around the problem, but is a hack (and + ;; comes with other downsides, e.g. if completion adds text at `start'). + (list (copy-marker start t) end (completion-table-dynamic (apply-partially gud-gdb-completion-function (buffer-substring (comint-line-beginning-position) @@ -1704,6 +1698,83 @@ and source-file directory for your debugger." (run-hooks 'pdb-mode-hook)) ;; ====================================================================== +;; Guile REPL (guiler) functions + +;; History of argument lists passed to guiler. +(defvar gud-guiler-history nil) + +(defvar gud-guiler-lastfile nil) + +(defun gud-guiler-marker-filter (string) + (setq gud-marker-acc (if gud-marker-acc (concat gud-marker-acc string) string)) + + (let ((start 0)) + (while + (cond + ((string-match "^In \\(.*\\):" gud-marker-acc start) + (setq gud-guiler-lastfile (match-string 1 gud-marker-acc))) + ((string-match "^\\([^:\n]+\\):\\([0-9]+\\):\\([0-9]+\\):[^\n]*" + gud-marker-acc start) + (setq gud-guiler-lastfile (match-string 1 gud-marker-acc)) + (setq gud-last-frame + (cons gud-guiler-lastfile + (string-to-number (match-string 2 gud-marker-acc))))) + ((string-match "^[ ]*\\([0-9]+\\):\\([0-9]+\\) [^\n]*" + gud-marker-acc start) + (if gud-guiler-lastfile + (setq gud-last-frame + (cons gud-guiler-lastfile + (string-to-number (match-string 1 gud-marker-acc)))))) + ((string-match comint-prompt-regexp gud-marker-acc start) t) + ((string= (substring gud-marker-acc start) "") nil) + (t nil)) + (setq start (match-end 0))) + + ;; Search for the last incomplete line in this chunk + (while (string-match "\n" gud-marker-acc start) + (setq start (match-end 0))) + + ;; If we have an incomplete line, store it in gud-marker-acc. + (setq gud-marker-acc (substring gud-marker-acc (or start 0)))) + string) + + +(defcustom gud-guiler-command-name "guile" + "File name for executing the Guile debugger. +This should be an executable on your path, or an absolute file name." + :type 'string + :group 'gud) + +;;;###autoload +(defun guiler (command-line) + "Run guiler on program FILE in buffer `*gud-FILE*'. +The directory containing FILE becomes the initial working directory +and source-file directory for your debugger." + (interactive + (list (gud-query-cmdline 'guiler))) + + (gud-common-init command-line nil 'gud-guiler-marker-filter) + (setq-local gud-minor-mode 'guiler) + +;; FIXME: absolute file-names are not grokked yet by Guile's ,break-at-source +;; and relative file names only when relative to %load-path. +;; (gud-def gud-break ",break-at-source %d%f %l" "\C-b" "Set breakpoint at current line.") + (gud-def gud-break ",break-at-source %f %l" "\C-b" "Set breakpoint at current line.") +;; FIXME: remove breakpoint with file-line not yet supported by Guile +;; (gud-def gud-remove ",delete ---> %d%f:%l" "\C-d" "Remove breakpoint at current line") + (gud-def gud-step ",step" "\C-s" "Step one source line with display.") + (gud-def gud-next ",next" "\C-n" "Step one line (skip functions).") +;; (gud-def gud-cont "continue" "\C-r" "Continue with display.") + (gud-def gud-finish ",finish" "\C-f" "Finish executing current function.") + (gud-def gud-up ",up" "<" "Up one stack frame.") + (gud-def gud-down ",down" ">" "Down one stack frame.") + (gud-def gud-print "%e" "\C-p" "Evaluate Guile expression at point.") + + (setq comint-prompt-regexp "^scheme@([^>]+> ") + (setq paragraph-start comint-prompt-regexp) + (run-hooks 'guiler-mode-hook)) + +;; ====================================================================== ;; ;; JDB support. ;; @@ -3450,6 +3521,7 @@ With arg, dereference expr if ARG is positive, otherwise do not dereference." "Return a suitable command to print the expression EXPR." (pcase gud-minor-mode (`gdbmi (concat "-data-evaluate-expression \"" expr "\"")) + (`guiler expr) (`dbx (concat "print " expr)) ((or `xdb `pdb) (concat "p " expr)) (`sdb (concat expr "/")))) diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el index b1eaa6ad66c..cda421fbc86 100644 --- a/lisp/progmodes/hideif.el +++ b/lisp/progmodes/hideif.el @@ -139,7 +139,7 @@ (defcustom hide-ifdef-exclude-define-regexp nil "Ignore #define names if those names match this exclusion pattern." :type 'string - :version "24.5") + :version "25.1") (defcustom hide-ifdef-expand-reinclusion-protection t "Non-nil means don't hide an entire header file enclosed by #ifndef...#endif. @@ -161,7 +161,7 @@ be hidden. This behavior is generally undesirable. If this option is non-nil, the outermost #if is always visible." :type 'boolean - :version "24.5") + :version "25.1") (defcustom hide-ifdef-header-regexp "\\.h\\(h\\|xx\\|pp\\)?\\'" @@ -169,7 +169,7 @@ This behavior is generally undesirable. If this option is non-nil, the outermos Effective only if `hide-ifdef-expand-reinclusion-protection' is t." :type 'string :group 'hide-ifdef - :version "24.5") + :version "25.1") (defvar hide-ifdef-mode-submap ;; Set up the submap that goes after the prefix key. @@ -653,7 +653,7 @@ that form should be displayed.") (stringp id)))) (defun hif-define-operator (tokens) - "`Upgrade' hif-define xxx to '(hif-define xxx)' so it won't be subsitituted." + "`Upgrade' hif-define xxx to '(hif-define xxx)' so it won't be substituted." (let ((result nil) (tok nil)) (while (setq tok (pop tokens)) @@ -975,7 +975,7 @@ factor : '!' factor | '~' factor | '(' expr ')' | 'defined(' id ')' | (defun hif-define-macro (_parmlist _token-body) "A marker for defined macro with arguments. -This macro cannot be evaluated alone without parameters inputed." +This macro cannot be evaluated alone without parameters input." ;;TODO: input arguments at run time, use minibuffer to query all arguments (error "Argumented macro cannot be evaluated without passing any parameter")) @@ -1144,14 +1144,14 @@ preprocessing token" actual-count (length actual-parms)) (if (> formal-count actual-count) - (error "Too few parmameter for macro %S" macro-name) + (error "Too few parameters for macro %S" macro-name) (if (< formal-count actual-count) (or etc (error "Too many parameters for macro %S" macro-name)))) ;; Perform token replacement on the MACRO-BODY with the parameters (while (setq formal (pop formal-parms)) - ;; Prevent repetitive substitutation, thus cannot use `subst' + ;; Prevent repetitive substitution, thus cannot use `subst' ;; for example: ;; #define mac(a,b) (a+b) ;; #define testmac mac(b,y) @@ -1734,7 +1734,7 @@ first arg will be `hif-etc'." (or (setcdr SA expr) t) ;; Lazy evaluation, eval only if hif-lookup find it. ;; Define it anyway, even if nil it's still in list - ;; and therefore considerred defined + ;; and therefore considered defined. (push (cons (intern name) expr) hide-ifdef-env))))) ;; #undef (and name @@ -1912,7 +1912,7 @@ Return as (TOP . BOTTOM) the extent of ifdef block." (defun hide-ifdef-block (&optional arg start end) "Hide the ifdef block (true or false part) enclosing or before the cursor. -With optional prefix agument ARG, also hide the #ifdefs themselves." +With optional prefix argument ARG, also hide the #ifdefs themselves." (interactive "P\nr") (let ((hide-ifdef-lines arg)) (if mark-active diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index e66c9655df1..7502a491806 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el @@ -3713,7 +3713,7 @@ expression to enter. The lines containing S1 and S2 are reindented using `indent-region' unless the optional second argument NOINDENT is non-nil." (if (derived-mode-p 'idlwave-shell-mode) - ;; This is a gross hack to avoit template abbrev expansion + ;; This is a gross hack to avoid template abbrev expansion ;; in the shell. FIXME: This is a dirty hack. (if (and (eq this-command 'self-insert-command) (equal last-abbrev-location (point))) diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index a8f0d556ec4..c2c45aa4ef8 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -1685,7 +1685,7 @@ This performs fontification according to `js--class-styles'." "Regular expression matching variable declaration keywords.") (defconst js--indent-operator-re - (concat "[-+*/%<>=&^|?:.]\\([^-+*/]\\|$\\)\\|" + (concat "[-+*/%<>&^|?:.]\\([^-+*/]\\|$\\)\\|!?=\\|" (js--regexp-opt-symbol '("in" "instanceof"))) "Regexp matching operators that affect indentation of continued expressions.") @@ -1712,7 +1712,7 @@ This performs fontification according to `js--class-styles'." (save-excursion (backward-char) (not (looking-at "[/*]/"))) (js--looking-at-operator-p) (and (progn (backward-char) - (not (looking-at "++\\|--\\|/[/*]")))))))))) + (not (looking-at "+\\+\\|--\\|/[/*]")))))))))) (defun js--end-of-do-while-loop-p () @@ -3479,6 +3479,10 @@ If one hasn't been set, or if it's stale, prompt for a new one." '(when (fboundp 'folding-add-to-marks-list) (folding-add-to-marks-list 'js-mode "// {{{" "// }}}" ))) +;;;###autoload +(dolist (name (list "node" "nodejs" "gjs" "rhino")) + (add-to-list 'interpreter-mode-alist (cons (purecopy name) 'js-mode))) + (provide 'js) ;; js.el ends here diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el index b795b35a8ea..573acf4445d 100644 --- a/lisp/progmodes/m4-mode.el +++ b/lisp/progmodes/m4-mode.el @@ -65,14 +65,13 @@ If m4 is not in your PATH, set this to an absolute file name." (defvar m4-font-lock-keywords `( - ("\\(\\b\\(m4_\\)?dnl\\b\\|^\\#\\).*$" . font-lock-comment-face) -; ("\\(\\bdnl\\b\\|\\bm4_dnl\\b\\|^\\#\\).*$" . font-lock-comment-face) + ("\\(\\_<\\(m4_\\)?dnl\\_>\\).*$" . font-lock-comment-face) ("\\$[*#@0-9]" . font-lock-variable-name-face) ("\\\$\\\@" . font-lock-variable-name-face) ("\\\$\\\*" . font-lock-variable-name-face) ("\\b\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|gnu\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|un\\(d\\(efine\\|ivert\\)\\|ix\\)\\)\\b" . font-lock-keyword-face) ("\\b\\(m4_\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(_undefine\\|exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|undivert\\)\\)\\b" . font-lock-keyword-face)) - "Default font-lock-keywords for `m4 mode'.") + "Default `font-lock-keywords' for M4 mode.") (defcustom m4-mode-hook nil "Hook called by `m4-mode'." @@ -86,19 +85,26 @@ If m4 is not in your PATH, set this to an absolute file name." (modify-syntax-entry ?' ")`" table) (modify-syntax-entry ?# "<\n" table) (modify-syntax-entry ?\n ">#" table) - (modify-syntax-entry ?{ "_" table) - (modify-syntax-entry ?} "_" table) - ;; FIXME: This symbol syntax for underscore looks OK on its own, but it's - ;; odd that it should have the same syntax as { and } are these really - ;; valid in m4 symbols? + (modify-syntax-entry ?{ "." table) + (modify-syntax-entry ?} "." table) (modify-syntax-entry ?_ "_" table) - ;; FIXME: These three chars with word syntax look wrong. - (modify-syntax-entry ?* "w" table) - (modify-syntax-entry ?\" "w" table) - (modify-syntax-entry ?\" "w" table) + (modify-syntax-entry ?* "." table) + (modify-syntax-entry ?\" "." table) table) "Syntax table used while in `m4-mode'.") +(defun m4--quoted-p (pos) + "Return non-nil if POS is inside a quoted string." + (let ((quoted nil)) + (dolist (o (nth 9 (save-excursion (syntax-ppss pos)))) + (if (eq (char-after o) ?\`) (setq quoted t))) + quoted)) + +(defconst m4-syntax-propertize + (syntax-propertize-rules + ("#" (0 (when (m4--quoted-p (match-beginning 0)) + (string-to-syntax ".")))))) + (defvar m4-mode-map (let ((map (make-sparse-keymap)) (menu-map (make-sparse-keymap))) @@ -148,7 +154,8 @@ If m4 is not in your PATH, set this to an absolute file name." (setq-local comment-start "#") (setq-local parse-sexp-ignore-comments t) (setq-local add-log-current-defun-function #'m4-current-defun-name) - (setq font-lock-defaults '(m4-font-lock-keywords nil))) + (setq-local syntax-propertize-function m4-syntax-propertize) + (setq-local font-lock-defaults '(m4-font-lock-keywords nil))) (provide 'm4-mode) ;;stuff to play with for debugging diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el index 25b081545a3..7d963635bc0 100644 --- a/lisp/progmodes/octave.el +++ b/lisp/progmodes/octave.el @@ -45,13 +45,13 @@ (defun completion-table-with-cache (fun &optional ignore-case) ;; See eg bug#11906. (let* (last-arg last-result - (new-fun - (lambda (arg) - (if (and last-arg (string-prefix-p last-arg arg ignore-case)) - last-result - (prog1 - (setq last-result (funcall fun arg)) - (setq last-arg arg)))))) + (new-fun + (lambda (arg) + (if (and last-arg (string-prefix-p last-arg arg ignore-case)) + last-result + (prog1 + (setq last-result (funcall fun arg)) + (setq last-arg arg)))))) (completion-table-dynamic new-fun))))) (eval-when-compile (unless (fboundp 'setq-local) diff --git a/lisp/progmodes/opascal.el b/lisp/progmodes/opascal.el index fd8e249bbb9..2f3704be6fa 100644 --- a/lisp/progmodes/opascal.el +++ b/lisp/progmodes/opascal.el @@ -1397,7 +1397,7 @@ If before the indent, the point is moved to the indent." (when opascal-debug (opascal-ensure-buffer opascal-debug-buffer "*OPascal Debug Log*") (opascal-log-msg opascal-debug-buffer - (concat (format-time-string "%H:%M:%S " (current-time)) + (concat (format-time-string "%H:%M:%S ") (apply #'format (cons format-string args)) "\n")))) diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index 476a98926e2..b4a96e741b7 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el @@ -254,7 +254,7 @@ (1 (prog1 "\"" (perl-syntax-propertize-special-constructs end)))) ;; Funny things in `sub' arg-specs like `sub myfun ($)' or `sub ($)'. ;; Be careful not to match "sub { (...) ... }". - ("\\"))) + (looking-at "\\_<[_[:upper:]][[:alnum:]_]*\\_>"))) (replace-match "_") (skip-chars-forward ", \t\n"))))) diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el index 7cf53cbe45c..9d74c40525e 100644 --- a/lisp/progmodes/ps-mode.el +++ b/lisp/progmodes/ps-mode.el @@ -61,7 +61,7 @@ ;; User variables. -(make-obsolete-variable 'ps-mode-auto-indent 'electric-indent-mode "24.5") +(make-obsolete-variable 'ps-mode-auto-indent 'electric-indent-mode "25.1") (defcustom ps-mode-tab 4 "Number of spaces to use when indenting." diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index d1dd9bef4bc..35e24e14e1c 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -94,13 +94,13 @@ ;; python-shell-interpreter-args ;; "-i C:\\Python27\\Scripts\\ipython-script.py") -;; If you are experiencing missing or delayed output in your shells, -;; that's likely caused by your Operating System's pipe buffering -;; (e.g. this is known to happen running CPython 3.3.4 in Windows 7. +;; Missing or delayed output used to happen due to differences between +;; Operating Systems' pipe buffering (e.g. CPython 3.3.4 in Windows 7. ;; See URL `http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17304'). To -;; fix this, using CPython's "-u" commandline argument or setting the -;; "PYTHONUNBUFFERED" environment variable should help: See URL -;; `https://docs.python.org/3/using/cmdline.html#cmdoption-u'. +;; avoid this, the `python-shell-unbuffered' defaults to non-nil and +;; controls whether `python-shell-calculate-process-environment' +;; should set the "PYTHONUNBUFFERED" environment variable on startup: +;; See URL `https://docs.python.org/3/using/cmdline.html#cmdoption-u'. ;; The interaction relies upon having prompts for input (e.g. ">>> " ;; and "... " in standard Python shell) and output (e.g. "Out[1]: " in @@ -158,13 +158,13 @@ ;; (python-shell-exec-path . ("/path/to/env/bin/")) ;; Since the above is cumbersome and can be programmatically -;; calculated, the variable `python-shell-virtualenv-path' is +;; calculated, the variable `python-shell-virtualenv-root' is ;; provided. When this variable is set with the path of the ;; virtualenv to use, `process-environment' and `exec-path' get proper ;; values in order to run shells inside the specified virtualenv. So ;; the following will achieve the same as the previous example: -;; (setq python-shell-virtualenv-path "/path/to/env/") +;; (setq python-shell-virtualenv-root "/path/to/env/") ;; Also the `python-shell-extra-pythonpaths' variable have been ;; introduced as simple way of adding paths to the PYTHONPATH without @@ -217,11 +217,13 @@ ;; `python-imenu-format-parent-item-jump-label-function' variables for ;; changing the way labels are formatted in the tree version. -;; If you used python-mode.el you probably will miss auto-indentation -;; when inserting newlines. To achieve the same behavior you have -;; two options: +;; If you used python-mode.el you may miss auto-indentation when +;; inserting newlines. To achieve the same behavior you have two +;; options: -;; 1) Use GNU/Emacs' standard binding for `newline-and-indent': C-j. +;; 1) Enable the minor-mode `electric-indent-mode' (enabled by +;; default) and use RET. If this mode is disabled use +;; `newline-and-indent', bound to C-j. ;; 2) Add the following hook in your .emacs: @@ -457,6 +459,23 @@ The type returned can be `comment', `string' or `paren'." 'python-info-ppss-comment-or-string-p #'python-syntax-comment-or-string-p "24.3") +(defun python-docstring-at-p (pos) + "Check to see if there is a docstring at POS." + (save-excursion + (goto-char pos) + (if (looking-at-p "'''\\|\"\"\"") + (progn + (python-nav-backward-statement) + (looking-at "\\`\\|class \\|def ")) + nil))) + +(defun python-font-lock-syntactic-face-function (state) + (if (nth 3 state) + (if (python-docstring-at-p (nth 8 state)) + font-lock-doc-face + font-lock-string-face) + font-lock-comment-face)) + (defvar python-font-lock-keywords ;; Keywords `(,(rx symbol-start @@ -545,7 +564,7 @@ The type returned can be `comment', `string' or `paren'." (res nil)) (while (and (setq res (re-search-forward re limit t)) (or (python-syntax-context 'paren) - (equal (char-after (point-marker)) ?=)))) + (equal (char-after (point)) ?=)))) res)) (1 font-lock-variable-name-face nil nil)) ;; support for a, b, c = (1, 2, 3) @@ -670,7 +689,8 @@ It makes underscores and dots word constituent chars.") "Current indentation level `python-indent-line-function' is using.") (defvar python-indent-levels '(0) - "Levels of indentation available for `python-indent-line-function'.") + "Levels of indentation available for `python-indent-line-function'. +Can also be `noindent' if automatic indentation can't be used.") (defun python-indent-guess-indent-offset () "Guess and set `python-indent-offset' for the current buffer." @@ -791,7 +811,9 @@ START is the buffer position where the sexp starts." start)))) (defun python-indent-calculate-indentation () - "Calculate correct indentation offset for the current line." + "Calculate correct indentation offset for the current line. +Returns `noindent' if the indentation does not depend on Python syntax, +such as in strings." (let* ((indentation-context (python-indent-context)) (context-status (car indentation-context)) (context-start (cdr indentation-context))) @@ -841,9 +863,7 @@ START is the buffer position where the sexp starts." ;; When inside of a string, do nothing. just use the current ;; indentation. XXX: perhaps it would be a good idea to ;; invoke standard text indentation here - (`inside-string - (goto-char context-start) - (current-indentation)) + (`inside-string 'noindent) ;; After backslash we have several possibilities. (`after-backslash (cond @@ -964,15 +984,22 @@ START is the buffer position where the sexp starts." (defun python-indent-calculate-levels () "Calculate `python-indent-levels' and reset `python-indent-current-level'." - (if (not (python-info-dedenter-statement-p)) - (let* ((indentation (python-indent-calculate-indentation)) - (remainder (% indentation python-indent-offset)) - (steps (/ (- indentation remainder) python-indent-offset))) - (setq python-indent-levels (list 0)) - (dotimes (step steps) - (push (* python-indent-offset (1+ step)) python-indent-levels)) - (when (not (eq 0 remainder)) - (push (+ (* python-indent-offset steps) remainder) python-indent-levels))) + (if (or (python-info-continuation-line-p) + (not (python-info-dedenter-statement-p))) + ;; XXX: This asks for a refactor. Even if point is on a + ;; dedenter statement, it could be multiline and in that case + ;; the continuation lines should be indented with normal rules. + (let* ((indentation (python-indent-calculate-indentation))) + (if (not (numberp indentation)) + (setq python-indent-levels indentation) + (let* ((remainder (% indentation python-indent-offset)) + (steps (/ (- indentation remainder) python-indent-offset))) + (setq python-indent-levels (list 0)) + (dotimes (step steps) + (push (* python-indent-offset (1+ step)) python-indent-levels)) + (when (not (eq 0 remainder)) + (push (+ (* python-indent-offset steps) remainder) + python-indent-levels))))) (setq python-indent-levels (or (mapcar (lambda (pos) @@ -981,8 +1008,9 @@ START is the buffer position where the sexp starts." (current-indentation))) (python-info-dedenter-opening-block-positions)) (list 0)))) - (setq python-indent-current-level (1- (length python-indent-levels)) - python-indent-levels (nreverse python-indent-levels))) + (when (listp python-indent-levels) + (setq python-indent-current-level (1- (length python-indent-levels)) + python-indent-levels (nreverse python-indent-levels)))) (defun python-indent-toggle-levels () "Toggle `python-indent-current-level' over `python-indent-levels'." @@ -1010,28 +1038,30 @@ in the variable `python-indent-levels'. Afterwards it sets the variable `python-indent-current-level' correctly so offset is equal to (nth python-indent-current-level python-indent-levels)" - (or - (and (or (and (memq this-command python-indent-trigger-commands) - (eq last-command this-command)) - force-toggle) - (not (equal python-indent-levels '(0))) - (or (python-indent-toggle-levels) t)) - (python-indent-calculate-levels)) - (let* ((starting-pos (point-marker)) - (indent-ending-position - (+ (line-beginning-position) (current-indentation))) - (follow-indentation-p - (or (bolp) - (and (<= (line-beginning-position) starting-pos) - (>= indent-ending-position starting-pos)))) - (next-indent (nth python-indent-current-level python-indent-levels))) - (unless (= next-indent (current-indentation)) - (beginning-of-line) - (delete-horizontal-space) - (indent-to next-indent) - (goto-char starting-pos)) - (and follow-indentation-p (back-to-indentation))) - (python-info-dedenter-opening-block-message)) + (if (and (or (and (memq this-command python-indent-trigger-commands) + (eq last-command this-command)) + force-toggle) + (not (equal python-indent-levels '(0)))) + (if (listp python-indent-levels) + (python-indent-toggle-levels)) + (python-indent-calculate-levels)) + (if (eq python-indent-levels 'noindent) + python-indent-levels + (let* ((starting-pos (point-marker)) + (indent-ending-position + (+ (line-beginning-position) (current-indentation))) + (follow-indentation-p + (or (bolp) + (and (<= (line-beginning-position) starting-pos) + (>= indent-ending-position starting-pos)))) + (next-indent (nth python-indent-current-level python-indent-levels))) + (unless (= next-indent (current-indentation)) + (beginning-of-line) + (delete-horizontal-space) + (indent-to next-indent) + (goto-char starting-pos)) + (and follow-indentation-p (back-to-indentation))) + (python-info-dedenter-opening-block-message))) (defun python-indent-line-function () "`indent-line-function' for Python mode. @@ -1042,9 +1072,9 @@ See `python-indent-line' for details." "De-indent current line." (interactive "*") (when (and (not (python-syntax-comment-or-string-p)) - (<= (point-marker) (save-excursion + (<= (point) (save-excursion (back-to-indentation) - (point-marker))) + (point))) (> (current-column) 0)) (python-indent-line t) t)) @@ -1070,24 +1100,34 @@ Called from a program, START and END specify the region to indent." (or (bolp) (forward-line 1)) (while (< (point) end) (or (and (bolp) (eolp)) - (let (word) - (forward-line -1) - (back-to-indentation) - (setq word (current-word)) - (forward-line 1) - (when (and word - ;; Don't mess with strings, unless it's the - ;; enclosing set of quotes. - (or (not (python-syntax-context 'string)) - (eq - (syntax-after - (+ (1- (point)) - (current-indentation) - (python-syntax-count-quotes (char-after) (point)))) - (string-to-syntax "|")))) - (beginning-of-line) - (delete-horizontal-space) - (indent-to (python-indent-calculate-indentation))))) + (when (and + ;; Skip if previous line is empty or a comment. + (save-excursion + (let ((line-is-comment-p + (python-info-current-line-comment-p))) + (forward-line -1) + (not + (or (and (python-info-current-line-comment-p) + ;; Unless this line is a comment too. + (not line-is-comment-p)) + (python-info-current-line-empty-p))))) + ;; Don't mess with strings, unless it's the + ;; enclosing set of quotes. + (or (not (python-syntax-context 'string)) + (eq + (syntax-after + (+ (1- (point)) + (current-indentation) + (python-syntax-count-quotes (char-after) (point)))) + (string-to-syntax "|"))) + ;; Skip if current line is a block start, a + ;; dedenter or block ender. + (save-excursion + (back-to-indentation) + (not (looking-at + (python-rx + (or block-start dedenter block-ender)))))) + (python-indent-line))) (forward-line 1)) (move-marker end nil)))) @@ -1156,15 +1196,21 @@ the line will be re-indented automatically if needed." (save-excursion (goto-char (line-beginning-position)) (let ((indentation (python-indent-calculate-indentation))) - (when (< (current-indentation) indentation) + (when (and (numberp indentation) (< (current-indentation) indentation)) (indent-line-to indentation))))) ;; Electric colon ((and (eq ?: last-command-event) (memq ?: electric-indent-chars) (not current-prefix-arg) + ;; Trigger electric colon only at end of line (eolp) + ;; Avoid re-indenting on extra colon (not (equal ?: (char-before (1- (point))))) - (not (python-syntax-comment-or-string-p))) + (not (python-syntax-comment-or-string-p)) + ;; Never re-indent at beginning of defun + (not (save-excursion + (python-nav-beginning-of-statement) + (python-info-looking-at-beginning-of-defun)))) (python-indent-line))))) @@ -1795,7 +1841,7 @@ It should not contain a caret (^) at the beginning." :type 'string) (define-obsolete-variable-alias - 'python-shell-enable-font-lock 'python-shell-font-lock-enable "24.5") + 'python-shell-enable-font-lock 'python-shell-font-lock-enable "25.1") (defcustom python-shell-font-lock-enable t "Should syntax highlighting be enabled in the Python shell buffer? @@ -1804,6 +1850,14 @@ Restart the Python shell after changing this variable for it to take effect." :group 'python :safe 'booleanp) +(defcustom python-shell-unbuffered t + "Should shell output be unbuffered?. +When non-nil, this may prevent delayed and missing output in the +Python shell. See commentary for details." + :type 'boolean + :group 'python + :safe 'booleanp) + (defcustom python-shell-process-environment nil "List of environment variables for Python shell. This variable follows the same rules as `process-environment' @@ -1832,7 +1886,7 @@ default `exec-path'." :group 'python :safe 'listp) -(defcustom python-shell-virtualenv-path nil +(defcustom python-shell-virtualenv-root nil "Path to virtualenv root. This variable, when set to a string, makes the values stored in `python-shell-process-environment' and `python-shell-exec-path' @@ -1842,6 +1896,9 @@ virtualenv." :group 'python :safe 'stringp) +(define-obsolete-variable-alias + 'python-shell-virtualenv-path 'python-shell-virtualenv-root "25.1") + (defcustom python-shell-setup-codes '(python-shell-completion-setup-code python-ffap-setup-code python-eldoc-setup-code) @@ -1905,7 +1962,7 @@ detection and just returns nil." (let ((code-file (python-shell--save-temp-file code))) ;; Use `process-file' as it is remote-host friendly. (process-file - (executable-find python-shell-interpreter) + python-shell-interpreter code-file '(t nil) nil @@ -2058,33 +2115,47 @@ uniqueness for different types of configurations." (mapconcat #'identity python-shell-process-environment "") (mapconcat #'identity python-shell-extra-pythonpaths "") (mapconcat #'identity python-shell-exec-path "") - (or python-shell-virtualenv-path "") + (or python-shell-virtualenv-root "") (mapconcat #'identity python-shell-exec-path ""))))) -(defun python-shell-parse-command () +(defun python-shell-calculate-command () "Calculate the string used to execute the inferior Python process." - (let ((process-environment (python-shell-calculate-process-environment)) - (exec-path (python-shell-calculate-exec-path))) + (let ((exec-path (python-shell-calculate-exec-path))) + ;; `exec-path' gets tweaked so that virtualenv's specific + ;; `python-shell-interpreter' absolute path can be found by + ;; `executable-find'. (format "%s %s" - (executable-find python-shell-interpreter) + ;; FIXME: Why executable-find? + (shell-quote-argument + (executable-find python-shell-interpreter)) python-shell-interpreter-args))) +(define-obsolete-function-alias + 'python-shell-parse-command + #'python-shell-calculate-command "25.1") + +(defun python-shell-calculate-pythonpath () + "Calculate the PYTHONPATH using `python-shell-extra-pythonpaths'." + (let ((pythonpath (getenv "PYTHONPATH")) + (extra (mapconcat 'identity + python-shell-extra-pythonpaths + path-separator))) + (if pythonpath + (concat extra path-separator pythonpath) + extra))) + (defun python-shell-calculate-process-environment () - "Calculate process environment given `python-shell-virtualenv-path'." + "Calculate process environment given `python-shell-virtualenv-root'." (let ((process-environment (append python-shell-process-environment process-environment nil)) - (virtualenv (if python-shell-virtualenv-path - (directory-file-name python-shell-virtualenv-path) + (virtualenv (if python-shell-virtualenv-root + (directory-file-name python-shell-virtualenv-root) nil))) + (when python-shell-unbuffered + (setenv "PYTHONUNBUFFERED" "1")) (when python-shell-extra-pythonpaths - (setenv "PYTHONPATH" - (format "%s%s%s" - (mapconcat 'identity - python-shell-extra-pythonpaths - path-separator) - path-separator - (or (getenv "PYTHONPATH") "")))) + (setenv "PYTHONPATH" (python-shell-calculate-pythonpath))) (if (not virtualenv) process-environment (setenv "PYTHONHOME" nil) @@ -2095,13 +2166,14 @@ uniqueness for different types of configurations." process-environment)) (defun python-shell-calculate-exec-path () - "Calculate exec path given `python-shell-virtualenv-path'." - (let ((path (append python-shell-exec-path - exec-path nil))) - (if (not python-shell-virtualenv-path) + "Calculate exec path given `python-shell-virtualenv-root'." + (let ((path (append + ;; Use nil as the tail so that the list is a full copy, + ;; this is a paranoid safeguard for side-effects. + python-shell-exec-path exec-path nil))) + (if (not python-shell-virtualenv-root) path - (cons (format "%s/bin" - (directory-file-name python-shell-virtualenv-path)) + (cons (expand-file-name "bin" python-shell-virtualenv-root) path)))) (defvar python-shell--package-depth 10) @@ -2129,6 +2201,27 @@ uniqueness for different types of configurations." directory package package) (python-shell-get-process))) +(defun python-shell-accept-process-output (process &optional timeout regexp) + "Accept PROCESS output with TIMEOUT until REGEXP is found. +Optional argument TIMEOUT is the timeout argument to +`accept-process-output' calls. Optional argument REGEXP +overrides the regexp to match the end of output, defaults to +`comint-prompt-regexp.'. Returns non-nil when output was +properly captured. + +This utility is useful in situations where the output may be +received in chunks, since `accept-process-output' gives no +guarantees they will be grabbed in a single call. An example use +case for this would be the CPython shell start-up, where the +banner and the initial prompt are received separately." + (let ((regexp (or regexp comint-prompt-regexp))) + (catch 'found + (while t + (when (not (accept-process-output process timeout)) + (throw 'found nil)) + (when (looking-back regexp) + (throw 'found t)))))) + (defun python-shell-comint-end-of-output-p (output) "Return non-nil if OUTPUT is ends with input prompt." (string-match @@ -2146,7 +2239,7 @@ uniqueness for different types of configurations." (define-obsolete-function-alias 'python-comint-output-filter-function 'ansi-color-filter-apply - "24.5") + "25.1") (defun python-comint-postoutput-scroll-to-bottom (output) "Faster version of `comint-postoutput-scroll-to-bottom'. @@ -2188,7 +2281,7 @@ Signals an error if no shell buffer is available for current buffer." (when (and python-shell--font-lock-buffer (buffer-live-p python-shell--font-lock-buffer)) (kill-buffer python-shell--font-lock-buffer) - (when (eq major-mode 'inferior-python-mode) + (when (derived-mode-p 'inferior-python-mode) (setq python-shell--font-lock-buffer nil))))) (defmacro python-shell-font-lock-with-font-lock-buffer (&rest body) @@ -2205,7 +2298,7 @@ also `with-current-buffer'." (set-buffer python-shell--font-lock-buffer) (set (make-local-variable 'delay-mode-hooks) t) (let ((python-indent-guess-indent-offset nil)) - (when (not (eq major-mode 'python-mode)) + (when (not (derived-mode-p 'python-mode)) (python-mode)) ,@body)))) @@ -2357,8 +2450,8 @@ variable. (set (make-local-variable 'python-shell--prompt-calculated-input-regexp) nil) (set (make-local-variable 'python-shell--prompt-calculated-output-regexp) nil) (python-shell-prompt-set-calculated-regexps) - (setq comint-prompt-regexp python-shell--prompt-calculated-input-regexp - comint-prompt-read-only t) + (setq comint-prompt-regexp python-shell--prompt-calculated-input-regexp) + (set (make-local-variable 'comint-prompt-read-only) t) (setq mode-line-process '(":%s")) (set (make-local-variable 'comint-output-filter-functions) '(ansi-color-process-output @@ -2366,12 +2459,8 @@ variable. python-comint-postoutput-scroll-to-bottom)) (set (make-local-variable 'compilation-error-regexp-alist) python-shell-compilation-regexp-alist) - (define-key inferior-python-mode-map [remap complete-symbol] - 'completion-at-point) (add-hook 'completion-at-point-functions - 'python-shell-completion-at-point nil 'local) - (add-to-list (make-local-variable 'comint-dynamic-complete-functions) - 'python-shell-completion-at-point) + #'python-shell-completion-at-point nil 'local) (define-key inferior-python-mode-map "\t" 'python-shell-completion-complete-or-indent) (make-local-variable 'python-pdbtrack-buffers-to-kill) @@ -2380,13 +2469,8 @@ variable. (when python-shell-font-lock-enable (python-shell-font-lock-turn-on)) (compilation-shell-minor-mode 1) - ;; Ensure all the output is accepted before running any hooks. - (accept-process-output (get-buffer-process (current-buffer))) - ;; At this point, all process output should have been received, but - ;; on GNU/Linux, calling `python-shell-internal-send-string' without - ;; a running internal shell fails to grab output properly unless - ;; this `sit-for' is in place. - (sit-for 0.1 t)) + (python-shell-accept-process-output + (get-buffer-process (current-buffer)))) (defun python-shell-make-comint (cmd proc-name &optional pop internal) "Create a Python shell comint buffer. @@ -2427,16 +2511,17 @@ killed." proc-buffer-name))) ;;;###autoload -(defun run-python (cmd &optional dedicated show) +(defun run-python (&optional cmd dedicated show) "Run an inferior Python process. Input and output via buffer named after `python-shell-buffer-name'. If there is a process already running in that buffer, just switch to it. -With argument, allows you to define CMD so you can edit the -command used to call the interpreter and define DEDICATED, so a -dedicated process for the current buffer is open. When numeric -prefix arg is other than 0 or 4 do not SHOW. +Argument CMD defaults to `python-shell-calculate-command' return +value. When called interactively with `prefix-arg', it allows +the user to edit such value and choose whether the interpreter +should be DEDICATED for the current buffer. When numeric prefix +arg is other than 0 or 4 do not SHOW. Runs the hook `inferior-python-mode-hook' after `comint-mode-hook' is run. (Type \\[describe-mode] in the @@ -2444,12 +2529,13 @@ process buffer for a list of commands.)" (interactive (if current-prefix-arg (list - (read-shell-command "Run Python: " (python-shell-parse-command)) + (read-shell-command "Run Python: " (python-shell-calculate-command)) (y-or-n-p "Make dedicated process? ") (= (prefix-numeric-value current-prefix-arg) 4)) - (list (python-shell-parse-command) nil t))) + (list (python-shell-calculate-command) nil t))) (python-shell-make-comint - cmd (python-shell-get-process-name dedicated) show) + (or cmd (python-shell-calculate-command)) + (python-shell-get-process-name dedicated) show) dedicated) (defun run-python-internal () @@ -2471,13 +2557,13 @@ startup." (inferior-python-mode-hook nil)) (get-buffer-process (python-shell-make-comint - (python-shell-parse-command) + (python-shell-calculate-command) (python-shell-internal-get-process-name) nil t)))) (defun python-shell-get-buffer () "Return inferior Python buffer for current buffer. If current buffer is in `inferior-python-mode', return it." - (if (eq major-mode 'inferior-python-mode) + (if (derived-mode-p 'inferior-python-mode) (current-buffer) (let* ((dedicated-proc-name (python-shell-get-process-name t)) (dedicated-proc-buffer-name (format "*%s*" dedicated-proc-name)) @@ -2790,8 +2876,8 @@ This function takes the list of setup code to send from the python-shell-setup-codes "\n\n") "\n\nprint ('python.el: sent setup code')"))) - (python-shell-send-string code) - (accept-process-output process))) + (python-shell-send-string code process) + (python-shell-accept-process-output process))) (add-hook 'inferior-python-mode-hook #'python-shell-send-setup-code) @@ -2801,25 +2887,30 @@ This function takes the list of setup code to send from the (defcustom python-shell-completion-setup-code "try: - import readline, rlcompleter + import __builtin__ except ImportError: + # Python 3 + import builtins as __builtin__ +try: + import readline, rlcompleter +except: def __PYTHON_EL_get_completions(text): return [] else: def __PYTHON_EL_get_completions(text): + builtins = dir(__builtin__) completions = [] try: splits = text.split() is_module = splits and splits[0] in ('from', 'import') - is_ipython = getattr( - __builtins__, '__IPYTHON__', - getattr(__builtins__, '__IPYTHON__active', False)) + is_ipython = ('__IPYTHON__' in builtins or + '__IPYTHON__active' in builtins) if is_module: from IPython.core.completerlib import module_completion completions = module_completion(text.strip()) - elif is_ipython and getattr(__builtins__, '__IP', None): + elif is_ipython and '__IP' in builtins: completions = __IP.complete(text) - elif is_ipython and getattr(__builtins__, 'get_ipython', None): + elif is_ipython and 'get_ipython' in builtins: completions = get_ipython().Completer.all_completions(text) else: i = 0 @@ -2850,52 +2941,44 @@ the full statement in the case of imports." "24.4" "Completion string code must also autocomplete modules.") -(defcustom python-shell-completion-pdb-string-code - "';'.join(globals().keys() + locals().keys())" - "Python code used to get completions separated by semicolons for [i]pdb." - :type 'string - :group 'python) +(define-obsolete-variable-alias + 'python-shell-completion-pdb-string-code + 'python-shell-completion-string-code + "25.1" + "Completion string code must work for (i)pdb.") -(defun python-shell-completion-get-completions (process line input) - "Do completion at point for PROCESS. -LINE is used to detect the context on how to complete given INPUT." - (let* ((prompt - ;; Get last prompt of the inferior process buffer (this - ;; intentionally avoids using `comint-last-prompt' because - ;; of incompatibilities with Emacs 24.x). - (with-current-buffer (process-buffer process) - (save-excursion +(defun python-shell-completion-get-completions (process import input) + "Do completion at point using PROCESS for IMPORT or INPUT. +When IMPORT is non-nil takes precedence over INPUT for +completion." + (with-current-buffer (process-buffer process) + (let* ((prompt + (let ((prompt-boundaries (python-util-comint-last-prompt))) (buffer-substring-no-properties - (- (point) (length line)) - (progn - (re-search-backward "^") - (python-util-forward-comment) - (point)))))) - (completion-code - ;; Check whether a prompt matches a pdb string, an import - ;; statement or just the standard prompt and use the - ;; correct python-shell-completion-*-code string - (cond ((and (> (length python-shell-completion-pdb-string-code) 0) - (string-match - (concat "^" python-shell-prompt-pdb-regexp) prompt)) - python-shell-completion-pdb-string-code) - ((string-match - python-shell--prompt-calculated-input-regexp prompt) - python-shell-completion-string-code) - (t nil))) - (input - (if (string-match - (python-rx (+ space) (or "from" "import") space) - line) - line - input))) - (and completion-code - (> (length input) 0) - (with-current-buffer (process-buffer process) + (car prompt-boundaries) (cdr prompt-boundaries)))) + (completion-code + ;; Check whether a prompt matches a pdb string, an import + ;; statement or just the standard prompt and use the + ;; correct python-shell-completion-*-code string + (cond ((and (string-match + (concat "^" python-shell-prompt-pdb-regexp) prompt)) + ;; Since there are no guarantees the user will remain + ;; in the same context where completion code was sent + ;; (e.g. user steps into a function), safeguard + ;; resending completion setup continuously. + (concat python-shell-completion-setup-code + "\nprint (" python-shell-completion-string-code ")")) + ((string-match + python-shell--prompt-calculated-input-regexp prompt) + python-shell-completion-string-code) + (t nil))) + (subject (or import input))) + (and completion-code + (> (length input) 0) (let ((completions (python-util-strip-string (python-shell-send-string-no-output - (format completion-code input) process)))) + (format completion-code subject) process)))) (and (> (length completions) 2) (split-string completions "^'\\|^\"\\|;\\|'$\\|\"$" t))))))) @@ -2905,14 +2988,20 @@ LINE is used to detect the context on how to complete given INPUT." Optional argument PROCESS forces completions to be retrieved using that one instead of current buffer's process." (setq process (or process (get-buffer-process (current-buffer)))) - (let* ((start + (let* ((last-prompt-end (cdr (python-util-comint-last-prompt))) + (import-statement + (when (string-match-p + (rx (* space) word-start (or "from" "import") word-end space) + (buffer-substring-no-properties last-prompt-end (point))) + (buffer-substring-no-properties last-prompt-end (point)))) + (start (save-excursion (if (not (re-search-backward (python-rx (or whitespace open-paren close-paren string-delimiter)) - (cdr (python-util-comint-last-prompt)) + last-prompt-end t 1)) - (cdr (python-util-comint-last-prompt)) + last-prompt-end (forward-char (length (match-string-no-properties 0))) (point)))) (end (point))) @@ -2920,13 +3009,12 @@ using that one instead of current buffer's process." (completion-table-dynamic (apply-partially #'python-shell-completion-get-completions - process (buffer-substring-no-properties - (line-beginning-position) end)))))) + process import-statement))))) (define-obsolete-function-alias 'python-shell-completion-complete-at-point 'python-shell-completion-at-point - "24.5") + "25.1") (defun python-shell-completion-complete-or-indent () "Complete or indent depending on the context. @@ -2935,7 +3023,7 @@ If not try to complete." (interactive) (if (string-match "^[[:space:]]*$" (buffer-substring (comint-line-beginning-position) - (point-marker))) + (point))) (indent-for-tab-command) (completion-at-point))) @@ -3046,7 +3134,7 @@ inferior Python process is updated properly." (define-obsolete-function-alias 'python-completion-complete-at-point 'python-completion-at-point - "24.5") + "25.1") ;;; Fill paragraph @@ -3266,17 +3354,17 @@ JUSTIFY should be used (if applicable) as in `fill-paragraph'." (save-restriction (narrow-to-region (progn (while (python-syntax-context 'paren) - (goto-char (1- (point-marker)))) - (point-marker) + (goto-char (1- (point)))) (line-beginning-position)) (progn (when (not (python-syntax-context 'paren)) (end-of-line) (when (not (python-syntax-context 'paren)) (skip-syntax-backward "^)"))) - (while (python-syntax-context 'paren) - (goto-char (1+ (point-marker)))) - (point-marker))) + (while (and (python-syntax-context 'paren) + (not (eobp))) + (goto-char (1+ (point)))) + (point))) (let ((paragraph-start "\f\\|[ \t]*$") (paragraph-separate ",") (fill-paragraph-function)) @@ -3285,7 +3373,8 @@ JUSTIFY should be used (if applicable) as in `fill-paragraph'." (while (not (eobp)) (forward-line 1) (python-indent-line) - (goto-char (line-end-position)))) t) + (goto-char (line-end-position)))) + t) ;;; Skeletons @@ -3456,7 +3545,7 @@ The skeleton will be bound to python-skeleton-NAME." (defun python-ffap-module-path (module) "Function for `ffap-alist' to return path for MODULE." (let ((process (or - (and (eq major-mode 'inferior-python-mode) + (and (derived-mode-p 'inferior-python-mode) (get-buffer-process (current-buffer))) (python-shell-get-process)))) (if (not process) @@ -3521,7 +3610,11 @@ See `python-check-command' for the default." "def __PYDOC_get_help(obj): try: import inspect - if hasattr(obj, 'startswith'): + try: + str_type = basestring + except NameError: + str_type = str + if isinstance(obj, str_type): obj = eval(obj, globals()) doc = inspect.getdoc(obj) if not doc and callable(obj): @@ -3544,10 +3637,7 @@ See `python-check-command' for the default." doc = doc.splitlines()[0] except: doc = '' - try: - exec('print doc') - except SyntaxError: - print(doc)" + print (doc)" "Python code to setup documentation retrieval." :type 'string :group 'python) @@ -3568,9 +3658,12 @@ returns will be used. If not FORCE-PROCESS is passed what (let ((input (or force-input (python-info-current-symbol t)))) (and input - (python-shell-send-string-no-output - (format python-eldoc-string-code input) - process)))))) + ;; Prevent resizing the echo area when iPython is + ;; enabled. Bug#18794. + (python-util-strip-string + (python-shell-send-string-no-output + (format python-eldoc-string-code input) + process))))))) (defun python-eldoc-function () "`eldoc-documentation-function' for Python. @@ -4084,7 +4177,7 @@ to \"^python-\"." (cdr pair)))) (buffer-local-variables from-buffer))) -(defvar comint-last-prompt-overlay) ; Shut up, bytecompiler +(defvar comint-last-prompt-overlay) ; Shut up, byte compiler. (defun python-util-comint-last-prompt () "Return comint last prompt overlay start and end. @@ -4245,7 +4338,10 @@ Arguments START and END narrow the buffer region to work on." 'python-nav-forward-sexp) (set (make-local-variable 'font-lock-defaults) - '(python-font-lock-keywords nil nil nil nil)) + '(python-font-lock-keywords + nil nil nil nil + (font-lock-syntactic-face-function + . python-font-lock-syntactic-face-function))) (set (make-local-variable 'syntax-propertize-function) python-syntax-propertize-function) @@ -4254,8 +4350,9 @@ Arguments START and END narrow the buffer region to work on." #'python-indent-line-function) (set (make-local-variable 'indent-region-function) #'python-indent-region) ;; Because indentation is not redundant, we cannot safely reindent code. - (setq-local electric-indent-inhibit t) - (setq-local electric-indent-chars (cons ?: electric-indent-chars)) + (set (make-local-variable 'electric-indent-inhibit) t) + (set (make-local-variable 'electric-indent-chars) + (cons ?: electric-indent-chars)) ;; Add """ ... """ pairing to electric-pair-mode. (add-hook 'post-self-insert-hook @@ -4296,7 +4393,8 @@ Arguments START and END narrow the buffer region to work on." (add-to-list 'hs-special-modes-alist `(python-mode "^\\s-*\\(?:def\\|class\\)\\>" nil "#" ,(lambda (_arg) - (python-nav-end-of-defun)) nil)) + (python-nav-end-of-defun)) + nil)) (set (make-local-variable 'outline-regexp) (python-rx (* space) block-start)) diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 2f23e338f81..bf0884f3560 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -152,6 +152,7 @@ This should only be called after matching against `ruby-here-doc-beg-re'." (define-key map (kbd "M-C-p") 'ruby-beginning-of-block) (define-key map (kbd "M-C-n") 'ruby-end-of-block) (define-key map (kbd "C-c {") 'ruby-toggle-block) + (define-key map (kbd "C-c '") 'ruby-toggle-string-quotes) map) "Keymap used in Ruby mode.") @@ -164,6 +165,8 @@ This should only be called after matching against `ruby-here-doc-beg-re'." ["End of Block" ruby-end-of-block t] ["Toggle Block" ruby-toggle-block t] "--" + ["Toggle String Quotes" ruby-toggle-string-quotes t] + "--" ["Backward Sexp" ruby-backward-sexp :visible (not ruby-use-smie)] ["Backward Sexp" backward-sexp @@ -1763,6 +1766,43 @@ If the result is do-end block, it will always be multiline." (ruby-do-end-to-brace beg end))) (goto-char start)))) +(defun ruby--string-region () + "Return region for string at point." + (let ((state (syntax-ppss))) + (when (memq (nth 3 state) '(?' ?\")) + (save-excursion + (goto-char (nth 8 state)) + (forward-sexp) + (list (nth 8 state) (point)))))) + +(defun ruby-string-at-point-p () + "Check if cursor is at a string or not." + (ruby--string-region)) + +(defun ruby--inverse-string-quote (string-quote) + "Get the inverse string quoting for STRING-QUOTE." + (if (equal string-quote "\"") "'" "\"")) + +(defun ruby-toggle-string-quotes () + "Toggle string literal quoting between single and double." + (interactive) + (when (ruby-string-at-point-p) + (let* ((region (ruby--string-region)) + (min (nth 0 region)) + (max (nth 1 region)) + (string-quote (ruby--inverse-string-quote (buffer-substring-no-properties min (1+ min)))) + (content + (buffer-substring-no-properties (1+ min) (1- max)))) + (setq content + (if (equal string-quote "\"") + (replace-regexp-in-string "\\\\\"" "\"" (replace-regexp-in-string "\\([^\\\\]\\)'" "\\1\\\\'" content)) + (replace-regexp-in-string "\\\\\'" "'" (replace-regexp-in-string "\\([^\\\\]\\)\"" "\\1\\\\\"" content)))) + (let ((orig-point (point))) + (delete-region min max) + (insert + (format "%s%s%s" string-quote content string-quote)) + (goto-char orig-point))))) + (eval-and-compile (defconst ruby-percent-literal-beg-re "\\(%\\)[qQrswWxIi]?\\([[:punct:]]\\)" @@ -2206,9 +2246,10 @@ See `font-lock-syntax-table'.") (add-to-list 'auto-mode-alist (cons (purecopy (concat "\\(?:\\." "rb\\|ru\\|rake\\|thor" - "\\|jbuilder\\|gemspec\\|podspec" + "\\|jbuilder\\|rabl\\|gemspec\\|podspec" "\\|/" "\\(?:Gem\\|Rake\\|Cap\\|Thor" + "\\|Puppet\\|Berks" "\\|Vagrant\\|Guard\\|Pod\\)file" "\\)\\'")) 'ruby-mode)) diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 3b0550dccca..524749d6266 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1051,13 +1051,11 @@ Point is at the beginning of the next line." "Search for a subshell embedded in a string. Find all the unescaped \" characters within said subshell, remembering that subshells can nest." - ;; FIXME: This can (and often does) match multiple lines, yet it makes no - ;; effort to handle multiline cases correctly, so it ends up being - ;; rather flaky. (when (eq ?\" (nth 3 (syntax-ppss))) ; Check we matched an opening quote. ;; bingo we have a $( or a ` inside a "" (let (;; `state' can be: double-quote, backquote, code. (state (if (eq (char-before) ?`) 'backquote 'code)) + (startpos (point)) ;; Stacked states in the context. (states '(double-quote))) (while (and state (progn (skip-chars-forward "^'\\\\\"`$()" limit) @@ -1088,7 +1086,12 @@ subshells can nest." (`double-quote nil) (_ (setq state (pop states))))) (_ (error "Internal error in sh-font-lock-quoted-subshell"))) - (forward-char 1))))) + (forward-char 1)) + (when (< startpos (line-beginning-position)) + (put-text-property startpos (point) 'syntax-multiline t) + (add-hook 'syntax-propertize-extend-region-functions + 'syntax-propertize-multiline nil t)) + ))) (defun sh-is-quoted-p (pos) @@ -2011,12 +2014,12 @@ May return nil if the line should not be treated as continued." (and (numberp indent) (numberp initial) (<= indent initial))))) `(column . ,(+ initial sh-indentation))) - (`(:before . ,(or `"(" `"{" `"[")) + (`(:before . ,(or `"(" `"{" `"[" "while" "if" "for" "case")) (if (not (smie-rule-prev-p "&&" "||" "|")) (when (smie-rule-hanging-p) (smie-rule-parent)) (unless (smie-rule-bolp) - (smie-backward-sexp 'halfexp) + (while (equal "|" (nth 2 (smie-backward-sexp 'halfexp)))) `(column . ,(smie-indent-virtual))))) ;; FIXME: Maybe this handling of ;; should be made into ;; a smie-rule-terminator function that takes the substitute ";" as arg. diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index 13d4178116e..e8a95eccdd2 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el @@ -212,11 +212,11 @@ ;; Michael Mauger -- improved product support ;; Drew Adams -- Emacs 20 support ;; Harald Maier -- sql-send-string -;; Stefan Monnier -- font-lock corrections; +;; Stefan Monnier -- font-lock corrections; ;; code polish ;; Paul Sleigh -- MySQL keyword enhancement ;; Andrew Schein -- sql-port bug -;; Ian Bjorhovde -- db2 escape newlines +;; Ian Bjorhovde -- db2 escape newlines ;; incorrectly enabled by default ;; Roman Scherer -- Connection documentation ;; Mark Wilkinson -- file-local variables ignored @@ -282,6 +282,13 @@ file. Since that is a plaintext file, this could be dangerous." :group 'SQL :safe 'numberp) +(defcustom sql-default-directory nil + "Default directory for SQL processes." + :version "25.1" + :type '(choice (const nil) string) + :group 'SQL + :safe 'stringp) + ;; Login parameter type (define-widget 'sql-login-params 'lazy @@ -498,6 +505,18 @@ file. Since that is a plaintext file, this could be dangerous." :prompt-length 5 :syntax-alist ((?@ . "_")) :terminator ("^go" . "go")) + + (vertica + :name "Vertica" + :sqli-program sql-vertica-program + :sqli-options sql-vertica-options + :sqli-login sql-vertica-login-params + :sqli-comint-func sql-comint-vertica + :list-all ("\\d" . "\\dS") + :list-table "\\d %s" + :prompt-regexp "^\\w*=[#>] " + :prompt-length 5 + :prompt-cont-regexp "^\\w*[-(][#>] ") ) "An alist of product specific configuration settings. @@ -1221,7 +1240,9 @@ Based on `comint-mode-map'.") (define-key map (kbd "C-c C-r") 'sql-send-region) (define-key map (kbd "C-c C-s") 'sql-send-string) (define-key map (kbd "C-c C-b") 'sql-send-buffer) + (define-key map (kbd "C-c C-n") 'sql-send-line-and-next) (define-key map (kbd "C-c C-i") 'sql-product-interactive) + (define-key map (kbd "C-c C-z") 'sql-show-sqli-buffer) (define-key map (kbd "C-c C-l a") 'sql-list-all) (define-key map (kbd "C-c C-l t") 'sql-list-table) (define-key map [remap beginning-of-defun] 'sql-beginning-of-statement) @@ -1556,8 +1577,6 @@ to add functions and PL/SQL keywords.") ;; Oracle SQL*Plus Commands ;; Only recognized in they start in column 1 and the ;; abbreviation is followed by a space or the end of line. - - "\\|" (list (concat "^" (sql-regexp-abbrev "rem~ark") "\\(?:\\s-.*\\)?$") 0 'font-lock-comment-face t) @@ -1605,6 +1624,11 @@ to add functions and PL/SQL keywords.") 0 'font-lock-doc-face t) '("&?&\\(?:\\sw\\|\\s_\\)+[.]?" 0 font-lock-preprocessor-face t) + ;; Oracle PL/SQL Attributes (Declare these first to match %TYPE correctly) + (sql-font-lock-keywords-builder 'font-lock-builtin-face '("%" . "\\b") +"bulk_exceptions" "bulk_rowcount" "found" "isopen" "notfound" +"rowcount" "rowtype" "type" +) ;; Oracle Functions (sql-font-lock-keywords-builder 'font-lock-builtin-face nil "abs" "acos" "add_months" "appendchildxml" "ascii" "asciistr" "asin" @@ -1634,7 +1658,7 @@ to add functions and PL/SQL keywords.") "prediction" "prediction_bounds" "prediction_cost" "prediction_details" "prediction_probability" "prediction_set" "presentnnv" "presentv" "previous" "rank" "ratio_to_report" "rawtohex" -"rawtonhex" "ref" "reftohex" "regexp_count" "regexp_instr" +"rawtonhex" "ref" "reftohex" "regexp_count" "regexp_instr" "regexp_like" "regexp_replace" "regexp_substr" "regr_avgx" "regr_avgy" "regr_count" "regr_intercept" "regr_r2" "regr_slope" "regr_sxx" "regr_sxy" "regr_syy" "remainder" "replace" "round" "rowidtochar" "rowidtonchar" @@ -1719,7 +1743,7 @@ to add functions and PL/SQL keywords.") "password_life_time" "password_lock_time" "password_reuse_max" "password_reuse_time" "password_verify_function" "pctfree" "pctincrease" "pctthreshold" "pctused" "pctversion" "percent" -"performance" "permanent" "pfile" "physical" "pipelined" "plan" +"performance" "permanent" "pfile" "physical" "pipelined" "pivot" "plan" "post_transaction" "pragma" "prebuilt" "preserve" "primary" "private" "private_sga" "privileges" "procedure" "profile" "protection" "public" "purge" "query" "quiesce" "quota" "range" "read" "reads" "rebuild" @@ -1742,7 +1766,7 @@ to add functions and PL/SQL keywords.") "temporary" "test" "than" "then" "thread" "through" "time_zone" "timeout" "to" "trace" "transaction" "trigger" "triggers" "truncate" "trust" "type" "types" "unarchived" "under" "under_path" "undo" -"uniform" "union" "unique" "unlimited" "unlock" "unquiesce" +"uniform" "union" "unique" "unlimited" "unlock" "unpivot" "unquiesce" "unrecoverable" "until" "unusable" "unused" "update" "upgrade" "usage" "use" "using" "validate" "validation" "value" "values" "variable" "varray" "version" "view" "wait" "when" "whenever" "where" "with" @@ -1755,12 +1779,6 @@ to add functions and PL/SQL keywords.") "clob" "date" "day" "float" "interval" "local" "long" "longraw" "minute" "month" "nchar" "nclob" "number" "nvarchar2" "raw" "rowid" "second" "time" "timestamp" "urowid" "varchar2" "with" "year" "zone" -) - - ;; Oracle PL/SQL Attributes - (sql-font-lock-keywords-builder 'font-lock-builtin-face '("%" . "\\b") -"bulk_exceptions" "bulk_rowcount" "found" "isopen" "notfound" -"rowcount" "rowtype" "type" ) ;; Oracle PL/SQL Functions @@ -3050,7 +3068,7 @@ If you call it from anywhere else, it sets the global copy of (interactive) (let ((default-buffer (sql-find-sqli-buffer))) (if (null default-buffer) - (user-error "There is no suitable SQLi buffer") + (sql-product-interactive) (let ((new-buffer (read-buffer "New SQLi buffer: " default-buffer t))) (if (null (sql-buffer-live-p new-buffer)) (user-error "Buffer %s is not a working SQLi buffer" new-buffer) @@ -3059,21 +3077,20 @@ If you call it from anywhere else, it sets the global copy of (run-hooks 'sql-set-sqli-hook))))))) (defun sql-show-sqli-buffer () - "Show the name of current SQLi buffer. + "Display the current SQLi buffer. -This is the buffer SQL strings are sent to. It is stored in the -variable `sql-buffer'. See `sql-help' on how to create such a buffer." +This is the buffer SQL strings are sent to. +It is stored in the variable `sql-buffer'. +I +See also `sql-help' on how to create such a buffer." (interactive) - (if (or (null sql-buffer) - (null (buffer-live-p (get-buffer sql-buffer)))) - (user-error "%s has no SQLi buffer set" (buffer-name (current-buffer))) - (if (null (get-buffer-process sql-buffer)) - (user-error "Buffer %s has no process" sql-buffer) - (user-error "Current SQLi buffer is %s" sql-buffer)))) + (unless (and sql-buffer (buffer-live-p (get-buffer sql-buffer)) + (get-buffer-process sql-buffer)) + (sql-set-sqli-buffer)) + (display-buffer sql-buffer)) (defun sql-make-alternate-buffer-name () "Return a string that can be used to rename a SQLi buffer. - This is used to set `sql-alternate-buffer-name' within `sql-interactive-mode'. @@ -3323,7 +3340,7 @@ to avoid deleting non-prompt output." (setq oline (replace-match "" nil nil oline) sql-output-newline-count (1- sql-output-newline-count) prompt-found t))) - + ;; If we've found all the expected prompts, stop looking (if (= sql-output-newline-count 0) (setq sql-output-newline-count nil @@ -3403,6 +3420,13 @@ to avoid deleting non-prompt output." (interactive) (sql-send-region (point-min) (point-max))) +(defun sql-send-line-and-next () + "Send the current line to the SQL process and go to the next line." + (interactive) + (sql-send-region (line-beginning-position 1) (line-beginning-position 2)) + (beginning-of-line 2) + (while (forward-comment 1))) ; skip all comments and whitespace + (defun sql-send-magic-terminator (buf str terminator) "Send TERMINATOR to buffer BUF if its not present in STR." (let (comint-input-sender-no-newline pat term) @@ -3480,45 +3504,51 @@ list of SQLi command strings." (message "Executing SQL command...done")))) (defun sql-redirect-one (sqlbuf command outbuf save-prior) - (with-current-buffer sqlbuf - (let ((buf (get-buffer-create (or outbuf " *SQL-Redirect*"))) - (proc (get-buffer-process (current-buffer))) - (comint-prompt-regexp (sql-get-product-feature sql-product - :prompt-regexp)) - (start nil)) - (with-current-buffer buf - (setq-local view-no-disable-on-exit t) - (read-only-mode -1) - (unless save-prior - (erase-buffer)) - (goto-char (point-max)) - (unless (zerop (buffer-size)) - (insert "\n")) - (setq start (point))) + (when command + (with-current-buffer sqlbuf + (let ((buf (get-buffer-create (or outbuf " *SQL-Redirect*"))) + (proc (get-buffer-process (current-buffer))) + (comint-prompt-regexp (sql-get-product-feature sql-product + :prompt-regexp)) + (start nil)) + (with-current-buffer buf + (setq-local view-no-disable-on-exit t) + (read-only-mode -1) + (unless save-prior + (erase-buffer)) + (goto-char (point-max)) + (unless (zerop (buffer-size)) + (insert "\n")) + (setq start (point))) - (when sql-debug-redirect - (message ">>SQL> %S" command)) + (when sql-debug-redirect + (message ">>SQL> %S" command)) - ;; Run the command - (comint-redirect-send-command-to-process command buf proc nil t) - (while (null comint-redirect-completed) - (accept-process-output nil 1)) + ;; Run the command + (let ((inhibit-quit t) + comint-preoutput-filter-functions) + (with-local-quit + (comint-redirect-send-command-to-process command buf proc nil t) + (while (or quit-flag (null comint-redirect-completed)) + (accept-process-output nil 1))) - ;; Clean up the output results - (with-current-buffer buf - ;; Remove trailing whitespace - (goto-char (point-max)) - (when (looking-back "[ \t\f\n\r]*" start) - (delete-region (match-beginning 0) (match-end 0))) - ;; Remove echo if there was one - (goto-char start) - (when (looking-at (concat "^" (regexp-quote command) "[\\n]")) - (delete-region (match-beginning 0) (match-end 0))) - ;; Remove Ctrl-Ms - (goto-char start) - (while (re-search-forward "\r+$" nil t) - (replace-match "" t t)) - (goto-char start))))) + (if quit-flag + (comint-redirect-cleanup) + ;; Clean up the output results + (with-current-buffer buf + ;; Remove trailing whitespace + (goto-char (point-max)) + (when (looking-back "[ \t\f\n\r]*" start) + (delete-region (match-beginning 0) (match-end 0))) + ;; Remove echo if there was one + (goto-char start) + (when (looking-at (concat "^" (regexp-quote command) "[\\n]")) + (delete-region (match-beginning 0) (match-end 0))) + ;; Remove Ctrl-Ms + (goto-char start) + (while (re-search-forward "\r+$" nil t) + (replace-match "" t t)) + (goto-char start)))))))) (defun sql-redirect-value (sqlbuf command regexp &optional regexp-groups) "Execute the SQL command and return part of result. @@ -3589,7 +3619,7 @@ buffer is popped into a view window." (apply c sqlbuf outbuf enhanced arg nil)) (t (error "Unknown sql-execute item %s" c)))) (if (consp command) command (cons command nil))) - + (setq outbuf (get-buffer outbuf)) (if (zerop (buffer-size outbuf)) (kill-buffer outbuf) @@ -3597,7 +3627,11 @@ buffer is popped into a view window." (get-lru-window)))) (with-current-buffer outbuf (set-buffer-modified-p nil) - (read-only-mode +1)) + (setq-local revert-buffer-function + (lambda (_ignore-auto _noconfirm) + (sql-execute sqlbuf (buffer-name outbuf) + command enhanced arg))) + (special-mode)) (pop-to-buffer outbuf) (when one-win (shrink-window-if-larger-than-buffer))))) @@ -3755,7 +3789,9 @@ must tell Emacs. Here's how to do that in your init file: \(add-hook 'sql-mode-hook (lambda () (modify-syntax-entry ?\\\\ \".\" sql-mode-syntax-table)))" + :group 'SQL :abbrev-table sql-mode-abbrev-table + (if sql-mode-menu (easy-menu-add sql-mode-menu)); XEmacs @@ -3786,6 +3822,7 @@ must tell Emacs. Here's how to do that in your init file: ;;; SQL interactive mode (put 'sql-interactive-mode 'mode-class 'special) +(put 'sql-interactive-mode 'custom-mode-group 'SQL) (defun sql-interactive-mode () "Major mode to use a SQL interpreter interactively. @@ -3928,11 +3965,10 @@ you entered, right above the output it created. ;; People wanting a different history file for each ;; buffer/process/client/whatever can change separator and file-name ;; on the sql-interactive-mode-hook. - (setq-local comint-input-ring-separator sql-input-ring-separator) - (setq comint-input-ring-file-name sql-input-ring-file-name) - ;; Calling the hook before calling comint-read-input-ring allows users - ;; to set comint-input-ring-file-name in sql-interactive-mode-hook. - (comint-read-input-ring t)) + (let + ((comint-input-ring-separator sql-input-ring-separator) + (comint-input-ring-file-name sql-input-ring-file-name)) + (comint-read-input-ring t))) (defun sql-stop (process event) "Called when the SQL process is stopped. @@ -3942,11 +3978,15 @@ Writes the input history to a history file using This function is a sentinel watching the SQL interpreter process. Sentinels will always get the two parameters PROCESS and EVENT." - (comint-write-input-ring) - (if (and (eq (current-buffer) sql-buffer) - (not buffer-read-only)) - (insert (format "\nProcess %s %s\n" process event)) - (message "Process %s %s" process event))) + (with-current-buffer (process-buffer process) + (let + ((comint-input-ring-separator sql-input-ring-separator) + (comint-input-ring-file-name sql-input-ring-file-name)) + (comint-write-input-ring)) + + (if (not buffer-read-only) + (insert (format "\nProcess %s %s\n" process event)) + (message "Process %s %s" process event)))) @@ -4164,7 +4204,9 @@ the call to \\[sql-product-interactive] with (sql-password (default-value 'sql-password)) (sql-server (default-value 'sql-server)) (sql-database (default-value 'sql-database)) - (sql-port (default-value 'sql-port))) + (sql-port (default-value 'sql-port)) + (default-directory (or sql-default-directory + default-directory))) (funcall (sql-get-product-feature product :sqli-comint-func) product (sql-get-product-feature product :sqli-options))) @@ -5039,6 +5081,46 @@ buffer. +(defcustom sql-vertica-program "vsql" + "Command to start the Vertica client." + :version "25.1" + :type 'file + :group 'SQL) + +(defcustom sql-vertica-options '("-P" "pager=off") + "List of additional options for `sql-vertica-program'. +The default value disables the internal pager." + :version "25.1" + :type '(repeat string) + :group 'SQL) + +(defcustom sql-vertica-login-params '(user password database server) + "List of login parameters needed to connect to Vertica." + :version "25.1" + :type 'sql-login-params + :group 'SQL) + +(defun sql-comint-vertica (product options) + "Create comint buffer and connect to Vertica." + (sql-comint product + (nconc + (and (not (string= "" sql-server)) + (list "-h" sql-server)) + (and (not (string= "" sql-database)) + (list "-d" sql-database)) + (and (not (string= "" sql-password)) + (list "-w" sql-password)) + (and (not (string= "" sql-user)) + (list "-U" sql-user)) + options))) + +;;;###autoload +(defun sql-vertica (&optional buffer) + "Run vsql as an inferior process." + (interactive "P") + (sql-product-interactive 'vertica buffer)) + + (provide 'sql) ;;; sql.el ends here diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el index a8455c50064..e49037e41e7 100644 --- a/lisp/progmodes/subword.el +++ b/lisp/progmodes/subword.el @@ -88,7 +88,7 @@ ;;;###autoload (define-obsolete-function-alias - 'capitalized-words-mode 'subword-mode "24.5") + 'capitalized-words-mode 'subword-mode "25.1") ;;;###autoload (define-minor-mode subword-mode @@ -113,7 +113,7 @@ called a `subword'. Here are some examples: NSGraphicsContext => \"NS\", \"Graphics\" and \"Context\" This mode changes the definition of a word so that word commands -treat nomenclature boundaries as word bounaries. +treat nomenclature boundaries as word boundaries. \\{subword-mode-map}" :lighter " ," @@ -130,7 +130,7 @@ treat nomenclature boundaries as word bounaries. ;; N.B. These commands aren't used unless explicitly invoked; they're ;; here for compatibility. Today, subword-mode leaves motion commands ;; alone and uses `find-word-boundary-function-table' to change how -;; `forward-word' and other low-level commands detect word bounaries. +;; `forward-word' and other low-level commands detect word boundaries. ;; This way, all word-related activities, not just the images we ;; imagine here, get subword treatment. @@ -334,7 +334,7 @@ as parts of words: e.g., in `superword-mode', tab) "Assigned to `find-word-boundary-function-table' in `subword-mode' and `superword-mode'; defers to -`subword-find-word-bounary'.") +`subword-find-word-boundary'.") (defconst subword-empty-char-table (make-char-table nil) diff --git a/lisp/progmodes/vera-mode.el b/lisp/progmodes/vera-mode.el index 7cb8f457e3f..6a88c6ff0ab 100644 --- a/lisp/progmodes/vera-mode.el +++ b/lisp/progmodes/vera-mode.el @@ -684,7 +684,7 @@ Adapted from `font-lock-match-c-style-declaration-item-and-skip-to-next'." :group 'font-lock-highlighting-faces) (define-obsolete-function-alias 'vera-fontify-buffer - 'font-lock-fontify-buffer "24.5") + 'font-lock-fontify-buffer "25.1") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Indentation diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index b649959bae3..e7fcf223bc1 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -123,7 +123,7 @@ ;;; Code: ;; This variable will always hold the version number of the mode -(defconst verilog-mode-version "2014-05-31-3cd8144-vpo" +(defconst verilog-mode-version "2014-11-12-aa4b777-vpo" "Version of this Verilog mode.") (defconst verilog-mode-release-emacs t "If non-nil, this version of Verilog mode was released with Emacs itself.") @@ -1027,7 +1027,7 @@ If 'packed', then as many inputs and outputs that fit within If 'single', then a single input or output will be put onto each line." - :version "24.5" + :version "25.1" :type '(radio (const :tag "Line up Assignments and Declarations" packed) (const :tag "Line up Assignment statements" single)) :group 'verilog-mode-auto) @@ -1474,6 +1474,8 @@ If set will become buffer local.") :help "Help on AUTOINPUT - adding inputs from cells"] ["AUTOINSERTLISP" (describe-function 'verilog-auto-insert-lisp) :help "Help on AUTOINSERTLISP - insert text from a lisp function"] + ["AUTOINSERTLAST" (describe-function 'verilog-auto-insert-last) + :help "Help on AUTOINSERTLISPLAST - insert text from a lisp function"] ["AUTOINST" (describe-function 'verilog-auto-inst) :help "Help on AUTOINST - adding pins for cells"] ["AUTOINST (.*)" (describe-function 'verilog-auto-star) @@ -2265,7 +2267,11 @@ find the errors." ;; "\\(assert\\|assume\\|cover\\)\\s-+property\\>" (defconst verilog-no-indent-begin-re - "\\<\\(if\\|else\\|while\\|for\\|repeat\\|always\\|always_comb\\|always_ff\\|always_latch\\)\\>") + (eval-when-compile + (verilog-regexp-words + '("always" "always_comb" "always_ff" "always_latch" "initial" "final" ;; procedural blocks + "if" "else" ;; conditional statements + "while" "for" "foreach" "repeat" "do" "forever" )))) ;; loop statements (defconst verilog-ends-re ;; Parenthesis indicate type of keyword found @@ -2323,6 +2329,7 @@ find the errors." "endinterface" "endpackage" "endsequence" + "endproperty" "endspecify" "endtable" "endtask" @@ -2355,6 +2362,7 @@ find the errors." "\\(program\\)\\|" ; 13 "\\(sequence\\)\\|" ; 14 "\\(clocking\\)\\|" ; 15 + "\\(property\\)\\|" ; 16 "\\)\\>\\)")) (defconst verilog-end-block-re (eval-when-compile @@ -2419,7 +2427,7 @@ find the errors." "\\(\\\\)\\|" "\\(\\\\)\\|" "\\(@\\)\\|" - "\\(\\\\)\\|" + "\\(\\\\)\\|\\(\\\\)\\|" "\\(\\\\)\\|" "\\(\\\\)\\|\\(\\\\)\\|" "#")) @@ -2513,15 +2521,20 @@ find the errors." "join" "join_any" "join_none" "end" "endcase" - "endconfig" + "endchecker" "endclass" "endclocking" + "endconfig" "endfunction" "endgenerate" + "endgroup" "endmodule" "endprimitive" "endinterface" "endpackage" + "endprogram" + "endproperty" + "endsequence" "endspecify" "endtable" "endtask" ) @@ -2719,9 +2732,9 @@ find the errors." (defconst verilog-disable-fork-re "\\(disable\\|wait\\)\\s-+fork\\>") (defconst verilog-extended-case-re "\\(\\(unique0?\\s-+\\|priority\\s-+\\)?case[xz]?\\)") (defconst verilog-extended-complete-re - (concat "\\(\\(\\\\s-+\\)?virtual\\s-+\\|\\\\|\\\\)\\)" + (concat "\\(\\(\\\\s-+\\)?virtual\\s-+\\|\\\\|\\\\)\\)" "\\|\\(\\(\\\\s-+\\)*\\(\\\\|\\\\|\\\\)\\)" - "\\|\\(\\(\\\\s-+\\)?\\(\"DPI-C\"\\s-+\\)?\\(\\\\s-+\\)?\\(function\\>\\|task\\>\\)\\)" + "\\|\\(\\(\\\\s-+\\)?\\(\"DPI-C\"\\s-+\\)?\\(\\<\\(pure\\|context\\)\\>\\s-+\\)?\\([A-Za-z_][A-Za-z0-9_]*\\s-+=\\s-+\\)?\\(function\\>\\|task\\>\\)\\)" "\\|" verilog-extended-case-re )) (defconst verilog-basic-complete-re (eval-when-compile @@ -2751,10 +2764,45 @@ find the errors." "String used to mark end of excluded text.") (defconst verilog-preprocessor-re (eval-when-compile - (verilog-regexp-words - `( - "`define" "`include" "`ifdef" "`ifndef" "`if" "`endif" "`else" - )))) + (concat + ;; single words + "\\(?:" + (verilog-regexp-words + `("`__FILE__" + "`__LINE__" + "`celldefine" + "`else" + "`end_keywords" + "`endcelldefine" + "`endif" + "`nounconnected_drive" + "`resetall" + "`unconnected_drive" + "`undefineall")) + "\\)\\|\\(?:" + ;; two words: i.e. `ifdef DEFINE + "\\<\\(`elsif\\|`ifn?def\\|`undef\\|`default_nettype\\|`begin_keywords\\)\\>\\s-" + "\\)\\|\\(?:" + ;; `line number "filename" level + "\\<\\(`line\\)\\>\\s-+[0-9]+\\s-+\"[^\"]+\"\\s-+[012]" + "\\)\\|\\(?:" + ;;`include "file" or `include + "\\<\\(`include\\)\\>\\s-+\\(?:\"[^\"]+\"\\|<[^>]+>\\)" + "\\)\\|\\(?:" + ;; `pragma (no mention in IEEE 1800-2012 that pragma can span multiple lines + "\\<\\(`pragma\\)\\>\\s-+.+$" + "\\)\\|\\(?:" + ;; `timescale time_unit / time_precision + "\\<\\(`timescale\\)\\>\\s-+10\\{0,2\\}\\s-*[munpf]?s\\s-*\\/\\s-*10\\{0,2\\}\\s-*[munpf]?s" + "\\)\\|\\(?:" + ;; `define and `if can span multiple lines if line ends in '\'. NOTE: `if is not IEEE 1800-2012 + ;; from http://www.emacswiki.org/emacs/MultilineRegexp + (concat "\\<\\(`define\\|`if\\)\\>" ;; directive + "\\s-+" ;; separator + "\\(.*\\(?:\n.*\\)*?\\)" ;; definition: to tend of line, the maybe more lines (excludes any trailing \n) + "\\(?:\n\\s-*\n\\|\\'\\)") ;; blank line or EOF + "\\)" + ))) (defconst verilog-keywords '( "`case" "`default" "`define" "`else" "`endfor" "`endif" @@ -4121,9 +4169,7 @@ Uses `verilog-scan' cache." (while (and (> (marker-position e) (point)) (verilog-re-search-forward - (concat - "\\" - "\\|\\(`endif\\)\\|\\(`else\\)") + verilog-auto-end-comment-lines-re nil 'move)) (goto-char (match-beginning 0)) (let ((indent-str (verilog-indent-line))) @@ -4152,45 +4198,47 @@ Uses `verilog-scan' cache." ;; or the token before us unambiguously ends a statement, ;; then move back a token and test again. (not (or - ;; stop if beginning of buffer - (bolp) - ;; stop if we find a ; + ;; stop if beginning of buffer + (bobp) + ;; stop if we find a ; (= (preceding-char) ?\;) - ;; stop if we see a named coverpoint + ;; stop if we see a named coverpoint (looking-at "\\w+\\W*:\\W*\\(coverpoint\\|cross\\|constraint\\)") - ;; keep going if we are in the middle of a word + ;; keep going if we are in the middle of a word (not (or (looking-at "\\<") (forward-word -1))) - ;; stop if we see an assertion (perhaps labeled) + ;; stop if we see an assertion (perhaps labeled) (and (looking-at "\\(\\<\\(assert\\|assume\\|cover\\)\\>\\s-+\\\\)\\|\\(\\\\)") (progn - (setq h (point)) - (save-excursion - (verilog-backward-token) - (if (looking-at verilog-label-re) - (setq h (point)))) - (goto-char h))) - ;; stop if we see an extended complete reg, perhaps a complete one + (setq h (point)) + (save-excursion + (verilog-backward-token) + (if (looking-at verilog-label-re) + (setq h (point)))) + (goto-char h))) + ;; stop if we see an extended complete reg, perhaps a complete one (and - (looking-at verilog-complete-reg) - (let* ((p (point))) - (while (and (looking-at verilog-extended-complete-re) - (progn (setq p (point)) - (verilog-backward-token) - (/= p (point))))) - (goto-char p))) - ;; stop if we see a complete reg (previous found extended ones) + (looking-at verilog-complete-reg) + (let* ((p (point))) + (while (and (looking-at verilog-extended-complete-re) + (progn (setq p (point)) + (verilog-backward-token) + (/= p (point))))) + (goto-char p))) + ;; stop if we see a complete reg (previous found extended ones) (looking-at verilog-basic-complete-re) - ;; stop if previous token is an ender + ;; stop if previous token is an ender (save-excursion - (verilog-backward-token) - (or - (looking-at verilog-end-block-re) - (looking-at verilog-preprocessor-re))))) ;; end of test - (verilog-backward-syntactic-ws) - (verilog-backward-token)) + (verilog-backward-token) + (looking-at verilog-end-block-re)))) + (verilog-backward-syntactic-ws) + (verilog-backward-token)) ;; Now point is where the previous line ended. - (verilog-forward-syntactic-ws))) + (verilog-forward-syntactic-ws) + ;; Skip forward over any preprocessor directives, as they have wacky indentation + (if (looking-at verilog-preprocessor-re) + (progn (goto-char (match-end 0)) + (verilog-forward-syntactic-ws))))) (defun verilog-beg-of-statement-1 () "Move backward to beginning of statement." @@ -4204,13 +4252,12 @@ Uses `verilog-scan' cache." (verilog-backward-syntactic-ws) (if (or (bolp) (= (preceding-char) ?\;) - (save-excursion + (progn (verilog-backward-token) (looking-at verilog-ends-re))) (progn (goto-char pt) - (throw 'done t)) - (verilog-backward-token)))) + (throw 'done t))))) (verilog-forward-syntactic-ws))) ; ; (while (and @@ -4768,10 +4815,10 @@ primitive or interface named NAME." (cond ((match-end 5) ;; of verilog-end-block-ordered-re (setq reg "\\(\\\\)\\|\\(\\<\\(endfunction\\|task\\|\\(macro\\)?module\\|primitive\\)\\>\\)") - (setq name-re "\\w+\\s-*(")) + (setq name-re "\\w+\\(?:\n\\|\\s-\\)*[(;]")) ((match-end 6) ;; of verilog-end-block-ordered-re (setq reg "\\(\\\\)\\|\\(\\<\\(endtask\\|function\\|\\(macro\\)?module\\|primitive\\)\\>\\)") - (setq name-re "\\w+\\s-*(")) + (setq name-re "\\w+\\(?:\n\\|\\s-\\)*[(;]")) ((match-end 7) ;; of verilog-end-block-ordered-re (setq reg "\\(\\<\\(macro\\)?module\\>\\)\\|\\")) ((match-end 8) ;; of verilog-end-block-ordered-re @@ -4790,6 +4837,8 @@ primitive or interface named NAME." (setq reg "\\(\\<\\(rand\\)?sequence\\>\\)\\|\\(\\<\\(endsequence\\|primitive\\|interface\\|\\(macro\\)?module\\)\\>\\)")) ((match-end 15) ;; of verilog-end-block-ordered-re (setq reg "\\(\\\\)\\|\\")) + ((match-end 16) ;; of verilog-end-block-ordered-re + (setq reg "\\(\\\\)\\|\\")) (t (error "Problem in verilog-set-auto-endcomments"))) (let (b e) @@ -5844,7 +5893,9 @@ Set point to where line starts." (;-- any of begin|initial|while are complete statements; 'begin : foo' is also complete t (forward-word -1) - (while (= (preceding-char) ?\_) + (while (or (= (preceding-char) ?\_) + (= (preceding-char) ?\@) + (= (preceding-char) ?\.)) (forward-word -1)) (cond ((looking-at "\\") @@ -6098,14 +6149,18 @@ Return >0 for nested struct." (defun verilog-at-constraint-p () "If at the { of a constraint or coverpoint definition, return true, moving point to constraint." (if (save-excursion + (let ((p (point))) (and (equal (char-after) ?\{) (forward-list) (progn (backward-char 1) (verilog-backward-ws&directives) + (and (or (equal (char-before) ?\{) ;; empty case (equal (char-before) ?\;) - (equal (char-before) ?\}))))) + (equal (char-before) ?\})) + ;; skip what looks like bus repetition operator {#{ + (not (string-match "^{\\s-*[0-9]+\\s-*{" (buffer-substring p (point))))))))) (progn (let ( (pt (point)) (pass 0)) (verilog-backward-ws&directives) @@ -6424,6 +6479,9 @@ Only look at a few lines to determine indent level." (looking-at verilog-declaration-re)) (verilog-indent-declaration ind)) + (;-- form feeds - ignored as bug in indent-line-to in < 24.5 + (looking-at "\f")) + (;-- Everything else t (let ((val (eval (cdr (assoc type verilog-indent-alist))))) @@ -8258,7 +8316,8 @@ Return an array of [outputs inouts inputs wire reg assign const]." (setq typedefed (if typedefed (concat typedefed " " keywd) keywd))) (t (setq vec nil enum nil rvalue nil signed nil - typedefed nil multidim nil sig-paren paren + typedefed keywd ; Have a type + multidim nil sig-paren paren expect-signal 'sigs-var modport nil)))) ;; Interface with optional modport in v2k arglist? ;; Skip over parsing modport, and take the interface name as the type @@ -8888,7 +8947,6 @@ IGNORE-NEXT is true to ignore next token, fake from inside case statement." (save-excursion (let* (;;(dbg "") sigs-out-d sigs-out-i sigs-out-unk sigs-temp sigs-in) - (search-forward ")") (verilog-read-always-signals-recurse nil nil nil) (setq sigs-out-i (append sigs-out-i sigs-out-unk) sigs-out-unk nil) @@ -10650,6 +10708,7 @@ Takes SIGS list, adds MESSAGE to front and inserts each at INDENT-PT." (indent-to indent-pt) (while sigs (cond ((equal verilog-auto-arg-format 'single) + (insert space) (indent-to indent-pt) (setq space "\n")) ;; verilog-auto-arg-format 'packed @@ -11724,6 +11783,9 @@ Limitations: Typedefs must match `verilog-typedef-regexp', which is disabled by default. + Types are added to declarations if an AUTOLOGIC or + `verilog-auto-wire-type' is set to logic. + Signals matching `verilog-auto-output-ignore-regexp' are not included. An example (see `verilog-auto-inst' for what else is going on here): @@ -11816,10 +11878,18 @@ Typing \\[verilog-auto] will make this into: wire tempa = i; wire tempb = tempa; wire o = tempb; - endmodule" + endmodule + +You may also provide an optional regular expression, in which case only +signals matching the regular expression will be included. For example the +same expansion will result from only extracting outputs starting with ov: + + /*AUTOOUTPUTEVERY(\"^ov\")*/" (save-excursion ;;Point must be at insertion point (let* ((indent-pt (current-indentation)) + (params (verilog-read-auto-params 0 1)) + (regexp (nth 0 params)) (v2k (verilog-in-paren-quick)) (modi (verilog-modi-current)) (moddecls (verilog-modi-get-decls modi)) @@ -11827,6 +11897,11 @@ Typing \\[verilog-auto] will make this into: (verilog-signals-not-in (verilog-decls-get-signals moddecls) (verilog-decls-get-ports moddecls))))) + (when regexp + (setq sig-list (verilog-signals-matching-regexp + sig-list regexp))) + (setq sig-list (verilog-signals-not-matching-regexp + sig-list verilog-auto-output-ignore-regexp)) (verilog-forward-or-insert-line) (when v2k (verilog-repair-open-comma)) (when sig-list @@ -11852,6 +11927,9 @@ Limitations: Typedefs must match `verilog-typedef-regexp', which is disabled by default. + Types are added to declarations if an AUTOLOGIC or + `verilog-auto-wire-type' is set to logic. + Signals matching `verilog-auto-input-ignore-regexp' are not included. An example (see `verilog-auto-inst' for what else is going on here): @@ -11932,6 +12010,9 @@ Limitations: Typedefs must match `verilog-typedef-regexp', which is disabled by default. + Types are added to declarations if an AUTOLOGIC or + `verilog-auto-wire-type' is set to logic. + Signals matching `verilog-auto-inout-ignore-regexp' are not included. An example (see `verilog-auto-inst' for what else is going on here): @@ -12048,13 +12129,14 @@ same expansion will result from only extracting signals starting with i: /*AUTOINOUTMODULE(\"ExampMain\",\"^i\")*/ -You may also provide an optional second regular expression, in -which case only signals which have that pin direction and data -type will be included. This matches against everything before -the signal name in the declaration, for example against -\"input\" (single bit), \"output logic\" (direction and type) or -\"output [1:0]\" (direction and implicit type). You also -probably want to skip spaces in your regexp. +You may also provide an optional third argument regular +expression, in which case only signals which have that pin +direction and data type matching that regular expression will be +included. This matches against everything before the signal name +in the declaration, for example against \"input\" (single bit), +\"output logic\" (direction and type) or \"output +[1:0]\" (direction and implicit type). You also probably want to +skip spaces in your regexp. For example, the below will result in matching the output \"o\" against the previous example's module: @@ -12173,7 +12255,21 @@ You may also provide an optional regular expression, in which case only signals matching the regular expression will be included. For example the same expansion will result from only extracting signals starting with i: - /*AUTOINOUTCOMP(\"ExampMain\",\"^i\")*/" + /*AUTOINOUTCOMP(\"ExampMain\",\"^i\")*/ + +You may also provide an optional third argument regular +expression, in which case only signals which have that pin +direction and data type matching that regular expression will be +included. This matches against everything before the signal name +in the declaration, for example against \"input\" (single bit), +\"output logic\" (direction and type) or \"output +[1:0]\" (direction and implicit type). You also probably want to +skip spaces in your regexp. + +For example, the below will result in matching the output \"o\" +against the previous example's module: + + /*AUTOINOUTCOMP(\"ExampMain\",\"\",\"^output.*\")*/" (verilog-auto-inout-module t nil)) (defun verilog-auto-inout-in () @@ -12224,7 +12320,7 @@ You may also provide an optional regular expression, in which case only signals matching the regular expression will be included. For example the same expansion will result from only extracting signals starting with i: - /*AUTOINOUTCOMP(\"ExampMain\",\"^i\")*/" + /*AUTOINOUTIN(\"ExampMain\",\"^i\")*/" (verilog-auto-inout-module nil t)) (defun verilog-auto-inout-param () @@ -12417,9 +12513,13 @@ driver/monitor using AUTOINST in the testbench." (defun verilog-auto-insert-lisp () "Expand AUTOINSERTLISP statements, as part of \\[verilog-auto]. -The Lisp code provided is called, and the Lisp code calls -`insert` to insert text into the current file beginning on the -line after the AUTOINSERTLISP. +The Lisp code provided is called before other AUTOS are expanded, +and the Lisp code generally will call `insert` to insert text +into the current file beginning on the line after the +AUTOINSERTLISP. + +See also AUTOINSERTLAST and `verilog-auto-insert-last' which +executes after (as opposed to before) other AUTOs. See also AUTO_LISP, which takes a Lisp expression and evaluates it during `verilog-auto-inst' but does not insert any text. @@ -12476,9 +12576,25 @@ text: (setq verilog-scan-cache-tick nil) ;; Clear cache; inserted unknown text (verilog-delete-empty-auto-pair)))) +(defun verilog-auto-insert-last () + "Expand AUTOINSERTLAST statements, as part of \\[verilog-auto]. +The Lisp code provided is called after all other AUTOS have been +expanded, and the Lisp code generally will call `insert` to +insert text into the current file beginning on the line after the +AUTOINSERTLAST. + +Other than when called (after AUTOs are expanded), the functionality +is otherwise identical to AUTOINSERTLISP and `verilog-auto-insert-lisp' which +executes before (as opposed to after) other AUTOs. + +See `verilog-auto-insert-lisp' for examples." + (verilog-auto-insert-lisp)) + (defun verilog-auto-sense-sigs (moddecls presense-sigs) "Return list of signals for current AUTOSENSE block." - (let* ((sigss (verilog-read-always-signals)) + (let* ((sigss (save-excursion + (search-forward ")") + (verilog-read-always-signals))) (sig-list (verilog-signals-not-params (verilog-signals-not-in (verilog-alw-get-inputs sigss) (append (and (not verilog-auto-sense-include-inputs) @@ -12668,11 +12784,12 @@ Typing \\[verilog-auto] will make this into: (save-excursion (verilog-read-signals (save-excursion - (verilog-re-search-backward-quick "\\(@\\|\\\\|\\\\|\\\\)" nil t) + (verilog-re-search-backward-quick + "\\(@\\|\\<\\(begin\\|if\\|case\\|always\\(_latch\\|_ff\\|_comb\\)?\\)\\>\\)" nil t) (point)) (point))))) (save-excursion - (verilog-re-search-backward-quick "@" nil t) + (verilog-re-search-backward-quick "\\(@\\|\\<\\(always\\(_latch\\|_ff\\|_comb\\)?\\)\\>\\)" nil t) (setq sigss (verilog-read-always-signals))) (setq dly-list (verilog-alw-get-outputs-delayed sigss)) (setq sig-list (verilog-signals-not-in (append @@ -13202,6 +13319,7 @@ Using \\[describe-function], see also: `verilog-auto-inout-param' for AUTOINOUTPARAM copying params from elsewhere `verilog-auto-input' for AUTOINPUT making hierarchy inputs `verilog-auto-insert-lisp' for AUTOINSERTLISP insert code from lisp function + `verilog-auto-insert-last' for AUTOINSERTLAST insert code from lisp function `verilog-auto-inst' for AUTOINST instantiation pins `verilog-auto-star' for AUTOINST .* SystemVerilog pins `verilog-auto-inst-param' for AUTOINSTPARAM instantiation params @@ -13278,7 +13396,6 @@ Wilson Snyder (wsnyder@wsnyder.org)." (verilog-inject-arg)) ;; ;; Do user inserts first, so their code can insert AUTOs - ;; We may provide an AUTOINSERTLISPLAST if another cleanup pass is needed (verilog-auto-re-search-do "/\\*AUTOINSERTLISP(.*?)\\*/" 'verilog-auto-insert-lisp) ;; Expand instances before need the signals the instances input/output @@ -13312,11 +13429,13 @@ Wilson Snyder (wsnyder@wsnyder.org)." (verilog-auto-re-search-do "/\\*AUTOREG\\*/" 'verilog-auto-reg) (verilog-auto-re-search-do "/\\*AUTOREGINPUT\\*/" 'verilog-auto-reg-input) ;; outputevery needs AUTOOUTPUTs done first - (verilog-auto-re-search-do "/\\*AUTOOUTPUTEVERY\\*/" 'verilog-auto-output-every) + (verilog-auto-re-search-do "/\\*AUTOOUTPUTEVERY\\((.*?)\\)?\\*/" 'verilog-auto-output-every) ;; After we've created all new variables (verilog-auto-re-search-do "/\\*AUTOUNUSED\\*/" 'verilog-auto-unused) ;; Must be after all inputs outputs are generated (verilog-auto-re-search-do "/\\*AUTOARG\\*/" 'verilog-auto-arg) + ;; User inserts + (verilog-auto-re-search-do "/\\*AUTOINSERTLAST(.*?)\\*/" 'verilog-auto-insert-last) ;; Fix line numbers (comments only) (when verilog-auto-inst-template-numbers (verilog-auto-templated-rel)) @@ -13485,7 +13604,7 @@ See also `verilog-header' for an alternative format." > "`ovm_object_utils_begin(" name ")" \n > (- verilog-indent-level) " `ovm_object_utils_end" \n > _ \n - > "function new(name=\"" name "\");" \n + > "function new(string name=\"" name "\");" \n > "super.new(name);" \n > (- verilog-indent-level) "endfunction" \n > _ \n @@ -13499,7 +13618,7 @@ See also `verilog-header' for an alternative format." > "`uvm_object_utils_begin(" name ")" \n > (- verilog-indent-level) "`uvm_object_utils_end" \n > _ \n - > "function new(name=\"" name "\");" \n + > "function new(string name=\"" name "\");" \n > "super.new(name);" \n > (- verilog-indent-level) "endfunction" \n > _ \n @@ -13513,7 +13632,7 @@ See also `verilog-header' for an alternative format." > "`uvm_component_utils_begin(" name ")" \n > (- verilog-indent-level) "`uvm_component_utils_end" \n > _ \n - > "function new(name=\"\", uvm_component parent);" \n + > "function new(string name=\"\", uvm_component parent);" \n > "super.new(name, parent);" \n > (- verilog-indent-level) "endfunction" \n > _ \n diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 3d5a3980a94..4d6b3b23978 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -13,10 +13,10 @@ ;; filed in the Emacs bug reporting system against this file, a copy ;; of the bug report be sent to the maintainer's email address. -(defconst vhdl-version "3.35.2" +(defconst vhdl-version "3.36.1" "VHDL Mode version number.") -(defconst vhdl-time-stamp "2014-03-28" +(defconst vhdl-time-stamp "2014-11-27" "VHDL Mode time stamp for last update.") ;; This file is part of GNU Emacs. @@ -215,20 +215,20 @@ Overrides local variable `indent-tabs-mode'." ;; [Error] Assignment error: variable is illegal target of signal assignment ("ADVance MS" "vacom" "-work \\1" "make" "-f \\1" nil "valib \\1; vamap \\2 \\1" "./" "work/" "Makefile" "adms" - ("^\\s-+\\([0-9]+\\):\\s-+" nil 1 nil) ("Compiling file \\(.+\\)" 1) + ("^\\s-+\\([0-9]+\\):\\s-+" nil 1 nil) ("^Compiling file \\(.+\\)" 1) ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif" "PACK/\\1.vif" "BODY/\\1.vif" upcase)) ;; Aldec ;; COMP96 ERROR COMP96_0018: "Identifier expected." "test.vhd" 66 3 ("Aldec" "vcom" "-work \\1" "make" "-f \\1" nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "aldec" - (".* ERROR [^:]+: \".*\" \"\\([^ \\t\\n]+\\)\" \\([0-9]+\\) \\([0-9]+\\)" 1 2 3) ("" 0) + ("^.* ERROR [^:]+: \".*\" \"\\([^ \t\n]+\\)\" \\([0-9]+\\) \\([0-9]+\\)" 1 2 3) ("" 0) nil) ;; Cadence Leapfrog: cv -file test.vhd ;; duluth: *E,430 (test.vhd,13): identifier (POSITIV) is not declared ("Cadence Leapfrog" "cv" "-work \\1 -file" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "leapfrog" - ("duluth: \\*E,[0-9]+ (\\([^ \\t\\n]+\\),\\([0-9]+\\)):" 1 2 nil) ("" 0) + ("^duluth: \\*E,[0-9]+ (\\([^ \t\n]+\\),\\([0-9]+\\)):" 1 2 nil) ("" 0) ("\\1/entity" "\\2/\\1" "\\1/configuration" "\\1/package" "\\1/body" downcase)) ;; Cadence Affirma NC vhdl: ncvhdl test.vhd @@ -236,27 +236,29 @@ Overrides local variable `indent-tabs-mode'." ;; (PLL_400X_TOP) is not declared [10.3]. ("Cadence NC" "ncvhdl" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ncvhdl" - ("ncvhdl_p: \\*E,\\w+ (\\([^ \\t\\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) + ("^ncvhdl_p: \\*E,\\w+ (\\([^ \t\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) ("\\1/entity/pc.db" "\\2/\\1/pc.db" "\\1/configuration/pc.db" "\\1/package/pc.db" "\\1/body/pc.db" downcase)) - ;; ghdl vhdl: ghdl test.vhd + ;; ghdl vhdl + ;; ghdl -a bad_counter.vhdl + ;; bad_counter.vhdl:13:14: operator "=" is overloaded ("GHDL" "ghdl" "-i --workdir=\\1 --ieee=synopsys -fexplicit " "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ghdl" - ("ghdl_p: \\*E,\\w+ (\\([^ \\t\\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) + ("^ghdl_p: \\*E,\\w+ (\\([^ \t\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) ("\\1/entity" "\\2/\\1" "\\1/configuration" "\\1/package" "\\1/body" downcase)) ;; IBM Compiler ;; 00 COACHDL* | [CCHDL-1]: File: adder.vhd, line.column: 120.6 ("IBM Compiler" "g2tvc" "-src" "precomp" "\\1" nil "mkdir \\1" "./" "work/" "Makefile" "ibm" - ("[0-9]+ COACHDL.*: File: \\([^ \\t\\n]+\\), line.column: \\([0-9]+\\).\\([0-9]+\\)" 1 2 3) (" " 0) + ("^[0-9]+ COACHDL.*: File: \\([^ \t\n]+\\), *line.column: \\([0-9]+\\).\\([0-9]+\\)" 1 2 3) (" " 0) nil) ;; Ikos Voyager: analyze test.vhd ;; analyze test.vhd ;; E L4/C5: this library unit is inaccessible ("Ikos" "analyze" "-l \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ikos" - ("E L\\([0-9]+\\)/C\\([0-9]+\\):" nil 1 2) + ("^E L\\([0-9]+\\)/C\\([0-9]+\\):" nil 1 2) ("^analyze +\\(.+ +\\)*\\(.+\\)$" 2) nil) ;; ModelSim, Model Technology: vcom test.vhd @@ -266,14 +268,14 @@ Overrides local variable `indent-tabs-mode'." ;; ** Error: adder.vhd(190): Unknown identifier: ctl_numb ("ModelSim" "vcom" "-93 -work \\1" "make" "-f \\1" nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "modelsim" - ("\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\( *\[[0-9]+\]\\)? \\([^ \\t\\n]+\\)(\\([0-9]+\\)):" 3 4 nil) ("" 0) + ("^\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\( *\[[0-9]+\]\\)? \\([^ \t\n]+\\)(\\([0-9]+\\)):" 3 4 nil) ("" 0) ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" "\\1/_primary.dat" "\\1/body.dat" downcase)) ;; ProVHDL, Synopsys LEDA: provhdl -w work -f test.vhd ;; test.vhd:34: error message ("LEDA ProVHDL" "provhdl" "-w \\1 -f" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "provhdl" - ("\\([^ \\t\\n]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0) + ("^\\([^ \t\n:]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0) ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif" "PACK/\\1.vif" "BODY/BODY-\\1.vif" upcase)) ;; Quartus compiler @@ -284,21 +286,21 @@ Overrides local variable `indent-tabs-mode'." ;; Warning: VHDL Process Statement warning at dvi2sdi_tst.vhd(172): ... ("Quartus" "make" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "quartus" - ("\\(Error\\|Warning\\): .* \\([^ \\t\\n]+\\)(\\([0-9]+\\))" 2 3 nil) ("" 0) + ("^\\(Error\\|Warning\\): .* \\([^ \t\n]+\\)(\\([0-9]+\\))" 2 3 nil) ("" 0) nil) ;; QuickHDL, Mentor Graphics: qvhcom test.vhd ;; ERROR: test.vhd(24): near "dnd": expecting: END ;; WARNING[4]: test.vhd(30): A space is required between ... ("QuickHDL" "qvhcom" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "quickhdl" - ("\\(ERROR\\|WARNING\\)[^:]*: \\([^ \\t\\n]+\\)(\\([0-9]+\\)):" 2 3 nil) ("" 0) + ("^\\(ERROR\\|WARNING\\)[^:]*: \\([^ \t\n]+\\)(\\([0-9]+\\)):" 2 3 nil) ("" 0) ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" "\\1/_primary.dat" "\\1/body.dat" downcase)) ;; Savant: scram -publish-cc test.vhd ;; test.vhd:87: _set_passed_through_out_port(IIR_Boolean) not defined for ("Savant" "scram" "-publish-cc -design-library-name \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work._savant_lib/" "Makefile" "savant" - ("\\([^ \\t\\n]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0) + ("^\\([^ \t\n:]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0) ("\\1_entity.vhdl" "\\2_secondary_units._savant_lib/\\2_\\1.vhdl" "\\1_config.vhdl" "\\1_package.vhdl" "\\1_secondary_units._savant_lib/\\1_package_body.vhdl" downcase)) @@ -306,39 +308,39 @@ Overrides local variable `indent-tabs-mode'." ;; Error: CSVHDL0002: test.vhd: (line 97): Invalid prefix ("Simili" "vhdlp" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "simili" - ("\\(Error\\|Warning\\): \\w+: \\([^ \\t\\n]+\\): (line \\([0-9]+\\)): " 2 3 nil) ("" 0) + ("^\\(Error\\|Warning\\): \\w+: \\([^ \t\n]+\\): (line \\([0-9]+\\)): " 2 3 nil) ("" 0) ("\\1/prim.var" "\\2/_\\1.var" "\\1/prim.var" "\\1/prim.var" "\\1/_body.var" downcase)) ;; Speedwave (Innoveda): analyze -libfile vsslib.ini -src test.vhd ;; ERROR[11]::File test.vhd Line 100: Use of undeclared identifier ("Speedwave" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "speedwave" - ("^ *ERROR\[[0-9]+\]::File \\([^ \\t\\n]+\\) Line \\([0-9]+\\):" 1 2 nil) ("" 0) + ("^ *ERROR\[[0-9]+\]::File \\([^ \t\n]+\\) Line \\([0-9]+\\):" 1 2 nil) ("" 0) nil) ;; Synopsys, VHDL Analyzer (sim): vhdlan -nc test.vhd ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context. ("Synopsys" "vhdlan" "-nc -work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synopsys" - ("\\*\\*Error: vhdlan,[0-9]+ \\([^ \\t\\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0) + ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \t\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0) ("\\1.sim" "\\2__\\1.sim" "\\1.sim" "\\1.sim" "\\1__.sim" upcase)) ;; Synopsys, VHDL Analyzer (syn): vhdlan -nc -spc test.vhd ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context. ("Synopsys Design Compiler" "vhdlan" "-nc -spc -work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synopsys_dc" - ("\\*\\*Error: vhdlan,[0-9]+ \\([^ \\t\\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0) + ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \t\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0) ("\\1.syn" "\\2__\\1.syn" "\\1.syn" "\\1.syn" "\\1__.syn" upcase)) ;; Synplify: ;; @W:"test.vhd":57:8:57:9|Optimizing register bit count_x(5) to a constant 0 ("Synplify" "n/a" "n/a" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synplify" - ("@[EWN]:\"\\([^ \\t\\n]+\\)\":\\([0-9]+\\):\\([0-9]+\\):" 1 2 3) ("" 0) + ("^@[EWN]:\"\\([^ \t\n]+\\)\":\\([0-9]+\\):\\([0-9]+\\):" 1 2 3) ("" 0) nil) ;; Vantage: analyze -libfile vsslib.ini -src test.vhd ;; Compiling "test.vhd" line 1... ;; **Error: LINE 49 *** No aggregate value is valid in this context. ("Vantage" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "vantage" - ("\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) + ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) ("^ *Compiling \"\\(.+\\)\" " 1) nil) ;; VeriBest: vc vhdl test.vhd @@ -355,14 +357,14 @@ Overrides local variable `indent-tabs-mode'." ;; **Error: LINE 49 *** No aggregate value is valid in this context. ("Viewlogic" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "viewlogic" - ("\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) + ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) ("^ *Compiling \"\\(.+\\)\" " 1) nil) ;; Xilinx XST: ;; ERROR:HDLParsers:164 - "test.vhd" Line 3. parse error ("Xilinx XST" "xflow" "" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "xilinx" - ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \\t\\n]+\\)\" Line \\([0-9]+\\)\." 1 2 nil) ("" 0) + ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \t\n]+\\)\" Line \\([0-9]+\\)\." 1 2 nil) ("" 0) nil) ) "List of available VHDL compilers and their properties. @@ -487,7 +489,7 @@ Select a compiler name from the ones defined in option `vhdl-compiler-alist'." (append '(choice) (nreverse list))) :group 'vhdl-compile) -(defcustom vhdl-compile-use-local-error-regexp t +(defcustom vhdl-compile-use-local-error-regexp nil "Non-nil means use buffer-local `compilation-error-regexp-alist'. In this case, only error message regexps for VHDL compilers are active if compilation is started from a VHDL buffer. Otherwise, the error message @@ -496,6 +498,7 @@ active all the time. Note that by doing that, the predefined global regexps might result in erroneous parsing of error messages for some VHDL compilers. NOTE: Activate the new setting by restarting Emacs." + :version "25.1" ; t -> nil :type 'boolean :group 'vhdl-compile) @@ -503,7 +506,7 @@ NOTE: Activate the new setting by restarting Emacs." "List of default target names in Makefiles. Automatically generated Makefiles include three default targets to compile the entire design, clean the entire design and to create the design library. -This option allows to change the names of these targets to avoid conflicts +This option allows you to change the names of these targets to avoid conflicts with other user Makefiles." :type '(list (string :tag "Compile entire design") (string :tag "Clean entire design ") @@ -513,7 +516,7 @@ with other user Makefiles." (defcustom vhdl-makefile-generation-hook nil "Functions to run at the end of Makefile generation. -Allows to insert user specific parts into a Makefile. +Allows you to insert user specific parts into a Makefile. Example: \(lambda nil @@ -590,8 +593,8 @@ well as \"./\" and \"../\" (\"sh\" syntax). Paths can also be absolute. Environment variables (e.g. \"$EXAMPLE2\") are resolved. If no sources are specified, the default directory is taken as source directory. Otherwise, the default directory is only taken as source directory if there is a sources -entry with the empty string or \"./\". Exclude regexp allows to filter out -specific file and directory names from the list of sources (e.g. CVS +entry with the empty string or \"./\". Exclude regexp allows you to filter +out specific file and directory names from the list of sources (e.g. CVS directories). Files are compiled in the compile directory. Makefiles are also placed into @@ -606,7 +609,7 @@ overwrite the settings of the current compiler. File-specific compiler options (highest priority) overwrite project-specific options which overwrite default options (lowest priority). Lower priority -options can be inserted in higher priority options. This allows to reuse +options can be inserted in higher priority options. This allows you to reuse default options (e.g. \"-file\") in project- or file-specific options (e.g. \"-93 -file\"). @@ -671,7 +674,7 @@ browser. The current project can also be changed temporarily in the menu." (defcustom vhdl-project-file-name '("\\1.prj") "List of file names/paths for importing/exporting project setups. \"\\1\" is replaced by the project name (SPC is replaced by `_'), \"\\2\" is -replaced by the user name (allows to have user-specific project setups). +replaced by the user name (allows you to have user-specific project setups). The first entry is used as file name to import/export individual project setups. All entries are used to automatically import project setups at startup (see option `vhdl-project-auto-load'). Projects loaded from the @@ -1540,8 +1543,8 @@ Option `vhdl-align-groups' still applies within these blocks." :group 'vhdl-beautify) (defcustom vhdl-beautify-options '(t t t t t) - "List of options for beautifying code. Allows to disable individual -features of code beautification." + "List of options for beautifying code. +Allows you to disable individual features of code beautification." :type '(list (boolean :tag "Whitespace cleanup ") (boolean :tag "Single statement per line") (boolean :tag "Indentation ") @@ -2137,73 +2140,36 @@ your style, only those that are different from the default.") (require 'ps-print) (require 'speedbar))) ; for speedbar-with-writable -;; functions from obsolete assoc.el package (obsoleted in GNU Emacs 24.3) -(defun vhdl-asort (alist-symbol key) - "Move a specified key-value pair to the head of an alist. -The alist is referenced by ALIST-SYMBOL. Key-value pair to move to -head is one matching KEY. Returns the sorted list and doesn't affect -the order of any other key-value pair. Side effect sets alist to new -sorted list." - (set alist-symbol - (sort (copy-alist (symbol-value alist-symbol)) - (lambda (a _b) (equal (car a) key))))) - -(defun vhdl-anot-head-p (alist key) - "Find out if a specified key-value pair is not at the head of an alist. -The alist to check is specified by ALIST and the key-value pair is the -one matching the supplied KEY. Returns nil if ALIST is nil, or if -key-value pair is at the head of the alist. Returns t if key-value -pair is not at the head of alist. ALIST is not altered." - (not (equal (car (car alist)) key))) - (defun vhdl-aput (alist-symbol key &optional value) "Insert a key-value pair into an alist. The alist is referenced by ALIST-SYMBOL. The key-value pair is made -from KEY and optionally, VALUE. Returns the altered alist. - -If the key-value pair referenced by KEY can be found in the alist, and -VALUE is supplied non-nil, then the value of KEY will be set to VALUE. -If VALUE is not supplied, or is nil, the key-value pair will not be -modified, but will be moved to the head of the alist. If the key-value -pair cannot be found in the alist, it will be inserted into the head -of the alist (with value nil if VALUE is nil or not supplied)." - (let ((elem (list (cons key value))) - alist) - (vhdl-asort alist-symbol key) - (setq alist (symbol-value alist-symbol)) - (cond ((null alist) (set alist-symbol elem)) - ((vhdl-anot-head-p alist key) (set alist-symbol (nconc elem alist))) - (value (setcar alist (car elem)) alist) - (t alist)))) +from KEY and VALUE. If the key-value pair referenced by KEY can be +found in the alist, the value of KEY will be set to VALUE. If the +key-value pair cannot be found in the alist, it will be inserted into +the head of the alist." + (let* ((alist (symbol-value alist-symbol)) + (elem (assoc key alist))) + (if elem + (setcdr elem value) + (set alist-symbol (cons (cons key value) alist))))) (defun vhdl-adelete (alist-symbol key) "Delete a key-value pair from the alist. Alist is referenced by ALIST-SYMBOL and the key-value pair to remove -is pair matching KEY. Returns the altered alist." - (vhdl-asort alist-symbol key) - (let ((alist (symbol-value alist-symbol))) - (cond ((null alist) nil) - ((vhdl-anot-head-p alist key) alist) - (t (set alist-symbol (cdr alist)))))) - -(defun vhdl-aget (alist key &optional keynil-p) - "Return the value in ALIST that is associated with KEY. -Optional KEYNIL-P describes what to do if the value associated with -KEY is nil. If KEYNIL-P is not supplied or is nil, and the value is -nil, then KEY is returned. If KEYNIL-P is non-nil, then nil would be -returned. - -If no key-value pair matching KEY could be found in ALIST, or ALIST is -nil then nil is returned. ALIST is not altered." - (let ((copy (copy-alist alist))) - (cond ((null alist) nil) - ((progn (vhdl-asort 'copy key) - (vhdl-anot-head-p copy key)) nil) - ((cdr (car copy))) - (keynil-p nil) - ((car (car copy))) - (t nil)))) +is pair matching KEY." + (let ((alist (symbol-value alist-symbol)) alist-cdr) + (while (equal key (caar alist)) + (setq alist (cdr alist)) + (set alist-symbol alist)) + (while (setq alist-cdr (cdr alist)) + (if (equal key (caar alist-cdr)) + (setcdr alist (cdr alist-cdr)) + (setq alist alist-cdr))))) +(defun vhdl-aget (alist key) + "Return the value in ALIST that is associated with KEY. If KEY is +not found, then nil is returned." + (cdr (assoc key alist))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Compatibility @@ -4449,7 +4415,7 @@ Usage: and vice versa. Syntax-based indentation can be very slow in large files. Option - `vhdl-indent-syntax-based' allows to use faster but simpler indentation. + `vhdl-indent-syntax-based' allows you to use faster but simpler indentation. Option `vhdl-indent-comment-like-next-code-line' controls whether comment lines are indented like the preceding or like the following code @@ -4482,7 +4448,7 @@ Usage: CODE FILLING: - Code filling allows to condense code (e.g. sensitivity lists or port + Code filling allows you to condense code (e.g. sensitivity lists or port maps) by removing comments and newlines and re-wrapping so that all lines are maximally filled (block filling). `C-c C-f C-f' fills a list enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by @@ -4742,7 +4708,7 @@ Usage: Words with special syntax can be highlighted by specifying their syntax and color in option `vhdl-special-syntax-alist' and by setting - option `vhdl-highlight-special-words' to non-nil. This allows to + option `vhdl-highlight-special-words' to non-nil. This allows you to establish some naming conventions (e.g. to distinguish different kinds of signals or other objects by using name suffices) and to support them visually. @@ -12981,16 +12947,18 @@ File statistics: \"%s\"\n\ (condition-case () (let ((current-project vhdl-project)) (load-file file-name) - (when (/= (length (vhdl-aget vhdl-project-alist vhdl-project t)) 10) + (when (/= (length (vhdl-aget vhdl-project-alist vhdl-project)) 10) (vhdl-adelete 'vhdl-project-alist vhdl-project) (error "")) - (when not-make-current - (setq vhdl-project current-project)) + (if not-make-current + (setq vhdl-project current-project) + (setq vhdl-compiler + (caar (nth 4 (vhdl-aget vhdl-project-alist vhdl-project))))) (vhdl-update-mode-menu) (vhdl-speedbar-refresh) (unless not-make-current - (message "Current VHDL project: \"%s\"%s" - vhdl-project (if auto " (auto-loaded)" "")))) + (message "Current VHDL project: \"%s\"; compiler: \"%s\"%s" + vhdl-project vhdl-compiler (if auto " (auto-loaded)" "")))) (error (vhdl-warning (format "ERROR: Invalid project setup file: \"%s\"" file-name)))))) @@ -12998,7 +12966,7 @@ File statistics: \"%s\"\n\ "Duplicate setup of current project." (interactive) (let ((new-name (read-from-minibuffer "New project name: ")) - (project-entry (vhdl-aget vhdl-project-alist vhdl-project t))) + (project-entry (vhdl-aget vhdl-project-alist vhdl-project))) (setq vhdl-project-alist (append vhdl-project-alist (list (cons new-name project-entry)))) @@ -13746,11 +13714,11 @@ hierarchy otherwise.") ent-alist conf-alist pack-alist ent-inst-list file-alist tmp-list tmp-entry no-files files-exist big-files) (when (or project update) - (setq ent-alist (vhdl-aget vhdl-entity-alist key t) - conf-alist (vhdl-aget vhdl-config-alist key t) - pack-alist (vhdl-aget vhdl-package-alist key t) - ent-inst-list (car (vhdl-aget vhdl-ent-inst-alist key t)) - file-alist (vhdl-aget vhdl-file-alist key t))) + (setq ent-alist (vhdl-aget vhdl-entity-alist key) + conf-alist (vhdl-aget vhdl-config-alist key) + pack-alist (vhdl-aget vhdl-package-alist key) + ent-inst-list (car (vhdl-aget vhdl-ent-inst-alist key)) + file-alist (vhdl-aget vhdl-file-alist key))) (when (and (not is-directory) (null file-list)) (message "No such file: \"%s\"" name)) (setq files-exist file-list) @@ -13792,7 +13760,7 @@ hierarchy otherwise.") (while (re-search-forward "^[ \t]*entity[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+is\\>" nil t) (let* ((ent-name (match-string-no-properties 1)) (ent-key (downcase ent-name)) - (ent-entry (vhdl-aget ent-alist ent-key t)) + (ent-entry (vhdl-aget ent-alist ent-key)) (lib-alist (vhdl-scan-context-clause))) (if (nth 1 ent-entry) (vhdl-warning-when-idle @@ -13811,9 +13779,9 @@ hierarchy otherwise.") (arch-key (downcase arch-name)) (ent-name (match-string-no-properties 2)) (ent-key (downcase ent-name)) - (ent-entry (vhdl-aget ent-alist ent-key t)) + (ent-entry (vhdl-aget ent-alist ent-key)) (arch-alist (nth 3 ent-entry)) - (arch-entry (vhdl-aget arch-alist arch-key t)) + (arch-entry (vhdl-aget arch-alist arch-key)) (lib-arch-alist (vhdl-scan-context-clause))) (if arch-entry (vhdl-warning-when-idle @@ -13835,7 +13803,7 @@ hierarchy otherwise.") (while (re-search-forward "^[ \t]*configuration[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+of[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+is\\>" nil t) (let* ((conf-name (match-string-no-properties 1)) (conf-key (downcase conf-name)) - (conf-entry (vhdl-aget conf-alist conf-key t)) + (conf-entry (vhdl-aget conf-alist conf-key)) (ent-name (match-string-no-properties 2)) (ent-key (downcase ent-name)) (lib-alist (vhdl-scan-context-clause)) @@ -13885,7 +13853,7 @@ hierarchy otherwise.") (let* ((pack-name (match-string-no-properties 2)) (pack-key (downcase pack-name)) (is-body (match-string-no-properties 1)) - (pack-entry (vhdl-aget pack-alist pack-key t)) + (pack-entry (vhdl-aget pack-alist pack-key)) (pack-line (vhdl-current-line)) (end-of-unit (vhdl-get-end-of-unit)) comp-name func-name comp-alist func-alist lib-alist) @@ -13940,9 +13908,9 @@ hierarchy otherwise.") (ent-key (downcase ent-name)) (arch-name (match-string-no-properties 1)) (arch-key (downcase arch-name)) - (ent-entry (vhdl-aget ent-alist ent-key t)) + (ent-entry (vhdl-aget ent-alist ent-key)) (arch-alist (nth 3 ent-entry)) - (arch-entry (vhdl-aget arch-alist arch-key t)) + (arch-entry (vhdl-aget arch-alist arch-key)) (beg-of-unit (point)) (end-of-unit (vhdl-get-end-of-unit)) (inst-no 0) @@ -14077,8 +14045,8 @@ hierarchy otherwise.") ;; check whether configuration has a corresponding entity/architecture (setq tmp-list conf-alist) (while tmp-list - (if (setq tmp-entry (vhdl-aget ent-alist (nth 4 (car tmp-list)) t)) - (unless (vhdl-aget (nth 3 tmp-entry) (nth 5 (car tmp-list)) t) + (if (setq tmp-entry (vhdl-aget ent-alist (nth 4 (car tmp-list)))) + (unless (vhdl-aget (nth 3 tmp-entry) (nth 5 (car tmp-list))) (setq tmp-entry (car tmp-list)) (vhdl-warning-when-idle "Configuration of non-existing architecture: \"%s\" of \"%s(%s)\"\n in \"%s\" (line %d)" @@ -14205,15 +14173,15 @@ of PROJECT." (let* ((vhdl-project (nth 0 (car directory-alist))) (project (vhdl-project-p)) (ent-alist (vhdl-aget vhdl-entity-alist - (or project dir-name) t)) + (or project dir-name))) (conf-alist (vhdl-aget vhdl-config-alist - (or project dir-name) t)) + (or project dir-name))) (pack-alist (vhdl-aget vhdl-package-alist - (or project dir-name) t)) + (or project dir-name))) (ent-inst-list (car (vhdl-aget vhdl-ent-inst-alist - (or project dir-name) t))) - (file-alist (vhdl-aget vhdl-file-alist (or project dir-name) t)) - (file-entry (vhdl-aget file-alist file-name t)) + (or project dir-name)))) + (file-alist (vhdl-aget vhdl-file-alist (or project dir-name))) + (file-entry (vhdl-aget file-alist file-name)) (ent-list (nth 0 file-entry)) (arch-list (nth 1 file-entry)) (arch-ent-list (nth 2 file-entry)) @@ -14227,7 +14195,7 @@ of PROJECT." ;; entities (while ent-list (setq key (car ent-list) - entry (vhdl-aget ent-alist key t)) + entry (vhdl-aget ent-alist key)) (when (equal file-name (nth 1 entry)) (if (nth 3 entry) (vhdl-aput 'ent-alist key @@ -14238,9 +14206,9 @@ of PROJECT." (while arch-list (setq key (car arch-list) ent-key (car arch-ent-list) - entry (vhdl-aget ent-alist ent-key t) + entry (vhdl-aget ent-alist ent-key) arch-alist (nth 3 entry)) - (when (equal file-name (nth 1 (vhdl-aget arch-alist key t))) + (when (equal file-name (nth 1 (vhdl-aget arch-alist key))) (vhdl-adelete 'arch-alist key) (if (or (nth 1 entry) arch-alist) (vhdl-aput 'ent-alist ent-key @@ -14252,13 +14220,13 @@ of PROJECT." ;; configurations (while conf-list (setq key (car conf-list)) - (when (equal file-name (nth 1 (vhdl-aget conf-alist key t))) + (when (equal file-name (nth 1 (vhdl-aget conf-alist key))) (vhdl-adelete 'conf-alist key)) (setq conf-list (cdr conf-list))) ;; package declarations (while pack-list (setq key (car pack-list) - entry (vhdl-aget pack-alist key t)) + entry (vhdl-aget pack-alist key)) (when (equal file-name (nth 1 entry)) (if (nth 6 entry) (vhdl-aput 'pack-alist key @@ -14270,7 +14238,7 @@ of PROJECT." ;; package bodies (while pack-body-list (setq key (car pack-body-list) - entry (vhdl-aget pack-alist key t)) + entry (vhdl-aget pack-alist key)) (when (equal file-name (nth 6 entry)) (if (nth 1 entry) (vhdl-aput 'pack-alist key @@ -14321,8 +14289,8 @@ of PROJECT." &optional include-top ent-hier) "Get instantiation hierarchy beginning in architecture ARCH-KEY of entity ENT-KEY." - (let* ((ent-entry (vhdl-aget ent-alist ent-key t)) - (arch-entry (if arch-key (vhdl-aget (nth 3 ent-entry) arch-key t) + (let* ((ent-entry (vhdl-aget ent-alist ent-key)) + (arch-entry (if arch-key (vhdl-aget (nth 3 ent-entry) arch-key) (cdar (last (nth 3 ent-entry))))) (inst-alist (nth 3 arch-entry)) inst-entry inst-ent-entry inst-arch-entry inst-conf-entry comp-entry @@ -14348,17 +14316,17 @@ entity ENT-KEY." (downcase (or inst-comp-name "")))))) (setq tmp-list (cdr tmp-list))) (setq inst-conf-key (or (nth 4 (car tmp-list)) inst-conf-key)) - (setq inst-conf-entry (vhdl-aget conf-alist inst-conf-key t)) + (setq inst-conf-entry (vhdl-aget conf-alist inst-conf-key)) (when (and inst-conf-key (not inst-conf-entry)) (vhdl-warning-when-idle "Configuration not found: \"%s\"" inst-conf-key)) ;; determine entity (setq inst-ent-key (or (nth 2 (car tmp-list)) ; from configuration (nth 3 inst-conf-entry) ; from subconfiguration - (nth 3 (vhdl-aget conf-alist (nth 7 inst-entry) t)) + (nth 3 (vhdl-aget conf-alist (nth 7 inst-entry))) ; from configuration spec. (nth 5 inst-entry))) ; from direct instantiation - (setq inst-ent-entry (vhdl-aget ent-alist inst-ent-key t)) + (setq inst-ent-entry (vhdl-aget ent-alist inst-ent-key)) ;; determine architecture (setq inst-arch-key (or (nth 3 (car tmp-list)) ; from configuration @@ -14368,7 +14336,7 @@ entity ENT-KEY." ; from configuration spec. (nth 4 inst-ent-entry) ; MRA (caar (nth 3 inst-ent-entry)))) ; first alphabetically - (setq inst-arch-entry (vhdl-aget (nth 3 inst-ent-entry) inst-arch-key t)) + (setq inst-arch-entry (vhdl-aget (nth 3 inst-ent-entry) inst-arch-key)) ;; set library (setq inst-lib-key (or (nth 5 (car tmp-list)) ; from configuration @@ -14408,7 +14376,7 @@ entity ENT-KEY." (defun vhdl-get-instantiations (ent-key indent) "Get all instantiations of entity ENT-KEY." (let ((ent-alist (vhdl-aget vhdl-entity-alist - (vhdl-speedbar-line-key indent) t)) + (vhdl-speedbar-line-key indent))) arch-alist inst-alist ent-inst-list ent-entry arch-entry inst-entry) (while ent-alist @@ -14495,28 +14463,28 @@ entity ENT-KEY." (when (member 'hierarchy vhdl-speedbar-save-cache) (insert "\n;; entity and architecture cache\n" "(vhdl-aput 'vhdl-entity-alist " key " '") - (print (vhdl-aget vhdl-entity-alist cache-key t) (current-buffer)) + (print (vhdl-aget vhdl-entity-alist cache-key) (current-buffer)) (insert ")\n\n;; configuration cache\n" "(vhdl-aput 'vhdl-config-alist " key " '") - (print (vhdl-aget vhdl-config-alist cache-key t) (current-buffer)) + (print (vhdl-aget vhdl-config-alist cache-key) (current-buffer)) (insert ")\n\n;; package cache\n" "(vhdl-aput 'vhdl-package-alist " key " '") - (print (vhdl-aget vhdl-package-alist cache-key t) (current-buffer)) + (print (vhdl-aget vhdl-package-alist cache-key) (current-buffer)) (insert ")\n\n;; instantiated entities cache\n" "(vhdl-aput 'vhdl-ent-inst-alist " key " '") - (print (vhdl-aget vhdl-ent-inst-alist cache-key t) (current-buffer)) + (print (vhdl-aget vhdl-ent-inst-alist cache-key) (current-buffer)) (insert ")\n\n;; design units per file cache\n" "(vhdl-aput 'vhdl-file-alist " key " '") - (print (vhdl-aget vhdl-file-alist cache-key t) (current-buffer)) + (print (vhdl-aget vhdl-file-alist cache-key) (current-buffer)) (when project (insert ")\n\n;; source directories in project cache\n" "(vhdl-aput 'vhdl-directory-alist " key " '") - (print (vhdl-aget vhdl-directory-alist cache-key t) (current-buffer))) + (print (vhdl-aget vhdl-directory-alist cache-key) (current-buffer))) (insert ")\n")) (when (member 'display vhdl-speedbar-save-cache) (insert "\n;; shown design units cache\n" "(vhdl-aput 'vhdl-speedbar-shown-unit-alist " key " '") - (print (vhdl-aget vhdl-speedbar-shown-unit-alist cache-key t) + (print (vhdl-aget vhdl-speedbar-shown-unit-alist cache-key) (current-buffer)) (insert ")\n")) (setq vhdl-updated-project-list @@ -14784,10 +14752,10 @@ otherwise use cached data." (vhdl-scan-project-contents project)) ;; insert design hierarchy (vhdl-speedbar-insert-hierarchy - (vhdl-aget vhdl-entity-alist project t) - (vhdl-aget vhdl-config-alist project t) - (vhdl-aget vhdl-package-alist project t) - (car (vhdl-aget vhdl-ent-inst-alist project t)) indent) + (vhdl-aget vhdl-entity-alist project) + (vhdl-aget vhdl-config-alist project) + (vhdl-aget vhdl-package-alist project) + (car (vhdl-aget vhdl-ent-inst-alist project)) indent) (insert (int-to-string indent) ":\n") (put-text-property (- (point) 3) (1- (point)) 'invisible t) (put-text-property (1- (point)) (point) 'invisible nil) @@ -14802,10 +14770,10 @@ otherwise use cached data." (vhdl-scan-directory-contents directory)) ;; insert design hierarchy (vhdl-speedbar-insert-hierarchy - (vhdl-aget vhdl-entity-alist directory t) - (vhdl-aget vhdl-config-alist directory t) - (vhdl-aget vhdl-package-alist directory t) - (car (vhdl-aget vhdl-ent-inst-alist directory t)) depth) + (vhdl-aget vhdl-entity-alist directory) + (vhdl-aget vhdl-config-alist directory) + (vhdl-aget vhdl-package-alist directory) + (car (vhdl-aget vhdl-ent-inst-alist directory)) depth) ;; expand design units (vhdl-speedbar-expand-units directory) (vhdl-aput 'vhdl-directory-alist directory (list (list directory)))) @@ -14896,7 +14864,7 @@ otherwise use cached data." (defun vhdl-speedbar-expand-units (key) "Expand design units in directory/project KEY according to `vhdl-speedbar-shown-unit-alist'." - (let ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t)) + (let ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)) (vhdl-speedbar-update-current-unit nil) vhdl-updated-project-list) (vhdl-adelete 'vhdl-speedbar-shown-unit-alist key) @@ -14958,9 +14926,9 @@ otherwise use cached data." "Expand all design units in current directory/project." (interactive) (let* ((key (vhdl-speedbar-line-key)) - (ent-alist (vhdl-aget vhdl-entity-alist key t)) - (conf-alist (vhdl-aget vhdl-config-alist key t)) - (pack-alist (vhdl-aget vhdl-package-alist key t)) + (ent-alist (vhdl-aget vhdl-entity-alist key)) + (conf-alist (vhdl-aget vhdl-config-alist key)) + (pack-alist (vhdl-aget vhdl-package-alist key)) arch-alist unit-alist subunit-alist) (add-to-list 'vhdl-speedbar-shown-project-list key) (while ent-alist @@ -15012,8 +14980,8 @@ otherwise use cached data." (cond ((string-match "+" text) ; expand entity (let* ((key (vhdl-speedbar-line-key indent)) - (ent-alist (vhdl-aget vhdl-entity-alist key t)) - (ent-entry (vhdl-aget ent-alist token t)) + (ent-alist (vhdl-aget vhdl-entity-alist key)) + (ent-entry (vhdl-aget ent-alist token)) (arch-alist (nth 3 ent-entry)) (inst-alist (vhdl-get-instantiations token indent)) (subpack-alist (nth 5 ent-entry)) @@ -15023,7 +14991,7 @@ otherwise use cached data." (speedbar-change-expand-button-char ??) (speedbar-change-expand-button-char ?-) ;; add entity to `vhdl-speedbar-shown-unit-alist' - (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) + (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))) (vhdl-aput 'unit-alist token nil) (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)) (speedbar-with-writable @@ -15064,7 +15032,7 @@ otherwise use cached data." (speedbar-change-expand-button-char ?+) ;; remove entity from `vhdl-speedbar-shown-unit-alist' (let* ((key (vhdl-speedbar-line-key indent)) - (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) + (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))) (vhdl-adelete 'unit-alist token) (if unit-alist (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist) @@ -15081,21 +15049,21 @@ otherwise use cached data." (cond ((string-match "+" text) ; expand architecture (let* ((key (vhdl-speedbar-line-key (1- indent))) - (ent-alist (vhdl-aget vhdl-entity-alist key t)) - (conf-alist (vhdl-aget vhdl-config-alist key t)) + (ent-alist (vhdl-aget vhdl-entity-alist key)) + (conf-alist (vhdl-aget vhdl-config-alist key)) (hier-alist (vhdl-get-hierarchy ent-alist conf-alist (car token) (cdr token) nil nil 0 (1- indent))) - (ent-entry (vhdl-aget ent-alist (car token) t)) - (arch-entry (vhdl-aget (nth 3 ent-entry) (cdr token) t)) + (ent-entry (vhdl-aget ent-alist (car token))) + (arch-entry (vhdl-aget (nth 3 ent-entry) (cdr token))) (subpack-alist (nth 4 arch-entry)) entry) (if (not (or hier-alist subpack-alist)) (speedbar-change-expand-button-char ??) (speedbar-change-expand-button-char ?-) ;; add architecture to `vhdl-speedbar-shown-unit-alist' - (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t)) - (arch-alist (nth 0 (vhdl-aget unit-alist (car token) t)))) + (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)) + (arch-alist (nth 0 (vhdl-aget unit-alist (car token))))) (vhdl-aput 'unit-alist (car token) (list (cons (cdr token) arch-alist))) (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)) @@ -15125,8 +15093,8 @@ otherwise use cached data." (speedbar-change-expand-button-char ?+) ;; remove architecture from `vhdl-speedbar-shown-unit-alist' (let* ((key (vhdl-speedbar-line-key (1- indent))) - (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t)) - (arch-alist (nth 0 (vhdl-aget unit-alist (car token) t)))) + (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)) + (arch-alist (nth 0 (vhdl-aget unit-alist (car token))))) (vhdl-aput 'unit-alist (car token) (list (delete (cdr token) arch-alist))) (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist) (speedbar-delete-subblock indent) @@ -15141,9 +15109,9 @@ otherwise use cached data." (cond ((string-match "+" text) ; expand configuration (let* ((key (vhdl-speedbar-line-key indent)) - (conf-alist (vhdl-aget vhdl-config-alist key t)) + (conf-alist (vhdl-aget vhdl-config-alist key)) (conf-entry (vhdl-aget conf-alist token)) - (ent-alist (vhdl-aget vhdl-entity-alist key t)) + (ent-alist (vhdl-aget vhdl-entity-alist key)) (hier-alist (vhdl-get-hierarchy ent-alist conf-alist (nth 3 conf-entry) (nth 4 conf-entry) token (nth 5 conf-entry) @@ -15154,7 +15122,7 @@ otherwise use cached data." (speedbar-change-expand-button-char ??) (speedbar-change-expand-button-char ?-) ;; add configuration to `vhdl-speedbar-shown-unit-alist' - (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) + (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))) (vhdl-aput 'unit-alist token nil) (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)) (speedbar-with-writable @@ -15182,7 +15150,7 @@ otherwise use cached data." (speedbar-change-expand-button-char ?+) ;; remove configuration from `vhdl-speedbar-shown-unit-alist' (let* ((key (vhdl-speedbar-line-key indent)) - (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) + (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))) (vhdl-adelete 'unit-alist token) (if unit-alist (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist) @@ -15199,8 +15167,8 @@ otherwise use cached data." (cond ((string-match "+" text) ; expand package (let* ((key (vhdl-speedbar-line-key indent)) - (pack-alist (vhdl-aget vhdl-package-alist key t)) - (pack-entry (vhdl-aget pack-alist token t)) + (pack-alist (vhdl-aget vhdl-package-alist key)) + (pack-entry (vhdl-aget pack-alist token)) (comp-alist (nth 3 pack-entry)) (func-alist (nth 4 pack-entry)) (func-body-alist (nth 8 pack-entry)) @@ -15210,7 +15178,7 @@ otherwise use cached data." (speedbar-change-expand-button-char ??) (speedbar-change-expand-button-char ?-) ;; add package to `vhdl-speedbar-shown-unit-alist' - (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) + (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))) (vhdl-aput 'unit-alist token nil) (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)) (speedbar-with-writable @@ -15234,7 +15202,7 @@ otherwise use cached data." (while func-alist (setq func-entry (car func-alist) func-body-entry (vhdl-aget func-body-alist - (car func-entry) t)) + (car func-entry))) (when (nth 2 func-entry) (vhdl-speedbar-make-subprogram-line (nth 1 func-entry) @@ -15252,7 +15220,7 @@ otherwise use cached data." (speedbar-change-expand-button-char ?+) ;; remove package from `vhdl-speedbar-shown-unit-alist' (let* ((key (vhdl-speedbar-line-key indent)) - (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) + (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))) (vhdl-adelete 'unit-alist token) (if unit-alist (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist) @@ -15267,14 +15235,14 @@ otherwise use cached data." (defun vhdl-speedbar-insert-subpackages (subpack-alist indent dir-indent) "Insert required packages." (let* ((pack-alist (vhdl-aget vhdl-package-alist - (vhdl-speedbar-line-key dir-indent) t)) + (vhdl-speedbar-line-key dir-indent))) pack-key lib-name pack-entry) (when subpack-alist (vhdl-speedbar-make-title-line "Packages Used:" indent)) (while subpack-alist (setq pack-key (cdar subpack-alist) lib-name (caar subpack-alist)) - (setq pack-entry (vhdl-aget pack-alist pack-key t)) + (setq pack-entry (vhdl-aget pack-alist pack-key)) (vhdl-speedbar-make-subpack-line (or (nth 0 pack-entry) pack-key) lib-name (cons (nth 1 pack-entry) (nth 2 pack-entry)) @@ -15334,11 +15302,11 @@ NO-POSITION non-nil means do not re-position cursor." (while project-list (setq file-alist (append file-alist (vhdl-aget vhdl-file-alist - (car project-list) t))) + (car project-list)))) (setq project-list (cdr project-list))) (setq file-alist (vhdl-aget vhdl-file-alist - (abbreviate-file-name default-directory) t))) + (abbreviate-file-name default-directory)))) (select-frame speedbar-frame) (set-buffer speedbar-buffer) (speedbar-with-writable @@ -15346,7 +15314,7 @@ NO-POSITION non-nil means do not re-position cursor." (save-excursion ;; unhighlight last units (let* ((file-entry (vhdl-aget file-alist - speedbar-last-selected-file t))) + speedbar-last-selected-file))) (vhdl-speedbar-update-units "\\[.\\] " (nth 0 file-entry) speedbar-last-selected-file 'vhdl-speedbar-entity-face) @@ -15366,7 +15334,7 @@ NO-POSITION non-nil means do not re-position cursor." "> " (nth 6 file-entry) speedbar-last-selected-file 'vhdl-speedbar-instantiation-face)) ;; highlight current units - (let* ((file-entry (vhdl-aget file-alist file-name t))) + (let* ((file-entry (vhdl-aget file-alist file-name))) (setq pos (vhdl-speedbar-update-units "\\[.\\] " (nth 0 file-entry) @@ -15862,8 +15830,8 @@ is already shown in a buffer." (ent-alist (vhdl-aget vhdl-entity-alist (or (vhdl-project-p) - (abbreviate-file-name default-directory)) t)) - (ent-entry (vhdl-aget ent-alist ent-key t))) + (abbreviate-file-name default-directory)))) + (ent-entry (vhdl-aget ent-alist ent-key))) (setcar (cddr (cddr ent-entry)) arch-key) ; (nth 4 ent-entry) (speedbar-refresh)))) @@ -16272,7 +16240,7 @@ component instantiation." (setq constant-entry (cons constant-name (if (match-string 1) - (or (vhdl-aget generic-alist (match-string 2) t) + (or (vhdl-aget generic-alist (match-string 2)) (error "ERROR: Formal generic \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name)) (cdar generic-alist)))) (push constant-entry constant-alist) @@ -16293,7 +16261,7 @@ component instantiation." (setq signal-entry (cons signal-name (if (match-string 1) - (or (vhdl-aget port-alist (match-string 2) t) + (or (vhdl-aget port-alist (match-string 2)) (error "ERROR: Formal port \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name)) (cdar port-alist)))) (push signal-entry signal-alist) @@ -16536,7 +16504,7 @@ current project/directory." "." (file-name-extension (buffer-file-name)))) (ent-alist (vhdl-aget vhdl-entity-alist (or project - (abbreviate-file-name default-directory)) t)) + (abbreviate-file-name default-directory)))) (lazy-lock-minimum-size 0) clause-pos component-pos) (message "Generating components package \"%s\"..." pack-name) @@ -16639,7 +16607,7 @@ current project/directory." (when (equal (nth 5 inst-entry) (nth 4 (car tmp-alist))) (setq conf-key (nth 0 (car tmp-alist)))) (setq tmp-alist (cdr tmp-alist))) - (setq conf-entry (vhdl-aget conf-alist conf-key t)) + (setq conf-entry (vhdl-aget conf-alist conf-key)) ;; insert binding indication ... ;; ... with subconfiguration (if exists) (if (and vhdl-compose-configuration-use-subconfiguration conf-entry) @@ -16649,7 +16617,7 @@ current project/directory." (insert (vhdl-work-library) "." (nth 0 conf-entry)) (insert ";\n")) ;; ... with entity (if exists) - (setq ent-entry (vhdl-aget ent-alist (nth 5 inst-entry) t)) + (setq ent-entry (vhdl-aget ent-alist (nth 5 inst-entry))) (when ent-entry (indent-to (+ margin vhdl-basic-offset)) (vhdl-insert-keyword "USE ENTITY ") @@ -16661,7 +16629,7 @@ current project/directory." ;; b) from mra, or c) from first architecture (or (nth 0 (vhdl-aget (nth 3 ent-entry) (or (nth 6 inst-entry) - (nth 4 ent-entry)) t)) + (nth 4 ent-entry)))) (nth 1 (car (nth 3 ent-entry))))) (insert "(" arch-name ")")) (insert ";\n") @@ -16671,7 +16639,7 @@ current project/directory." (indent-to (+ margin vhdl-basic-offset)) (vhdl-compose-configuration-architecture (nth 0 ent-entry) arch-name ent-alist conf-alist - (nth 3 (vhdl-aget (nth 3 ent-entry) (downcase arch-name) t)))))) + (nth 3 (vhdl-aget (nth 3 ent-entry) (downcase arch-name))))))) ;; insert component configuration end (indent-to margin) (vhdl-insert-keyword "END FOR;\n") @@ -16695,10 +16663,10 @@ current project/directory." (vhdl-require-hierarchy-info) (let ((ent-alist (vhdl-aget vhdl-entity-alist (or (vhdl-project-p) - (abbreviate-file-name default-directory)) t)) + (abbreviate-file-name default-directory)))) (conf-alist (vhdl-aget vhdl-config-alist (or (vhdl-project-p) - (abbreviate-file-name default-directory)) t)) + (abbreviate-file-name default-directory)))) (from-speedbar ent-name) inst-alist conf-name conf-file-name pos) (vhdl-prepare-search-2 @@ -16714,8 +16682,8 @@ current project/directory." vhdl-compose-configuration-name (concat ent-name " " arch-name))) (setq inst-alist - (nth 3 (vhdl-aget (nth 3 (vhdl-aget ent-alist (downcase ent-name) t)) - (downcase arch-name) t)))) + (nth 3 (vhdl-aget (nth 3 (vhdl-aget ent-alist (downcase ent-name))) + (downcase arch-name))))) (message "Generating configuration \"%s\"..." conf-name) (if vhdl-compose-configuration-create-file ;; open configuration file @@ -16930,7 +16898,7 @@ do not print any file names." (interactive) (vhdl-compile-init) (let* ((project (vhdl-aget vhdl-project-alist vhdl-project)) - (compiler (or (vhdl-aget vhdl-compiler-alist vhdl-compiler nil) + (compiler (or (vhdl-aget vhdl-compiler-alist vhdl-compiler) (error "ERROR: No such compiler: \"%s\"" vhdl-compiler))) (command (nth 0 compiler)) (default-directory (vhdl-compile-directory)) @@ -16964,7 +16932,7 @@ do not print any file names." (defun vhdl-make (&optional target) "Call make command for compilation of all updated source files (requires -`Makefile'). Optional argument TARGET allows to compile the design +`Makefile'). Optional argument TARGET allows you to compile the design specified by a target." (interactive) (setq vhdl-make-target @@ -17065,9 +17033,9 @@ specified by a target." (vhdl-scan-directory-contents directory)))) (let* ((directory (abbreviate-file-name (vhdl-default-directory))) (project (vhdl-project-p)) - (ent-alist (vhdl-aget vhdl-entity-alist (or project directory) t)) - (conf-alist (vhdl-aget vhdl-config-alist (or project directory) t)) - (pack-alist (vhdl-aget vhdl-package-alist (or project directory) t)) + (ent-alist (vhdl-aget vhdl-entity-alist (or project directory))) + (conf-alist (vhdl-aget vhdl-config-alist (or project directory))) + (pack-alist (vhdl-aget vhdl-package-alist (or project directory))) (regexp-list (or (nth 12 (vhdl-aget vhdl-compiler-alist vhdl-compiler)) '("\\1.vhd" "\\2_\\1.vhd" "\\1.vhd" "\\1.vhd" "\\1_body.vhd" identity))) @@ -17397,9 +17365,9 @@ specified by a target." (setq subcomp-list (sort (vhdl-uniquify (nth 2 (car prim-list))) 'string<)) (setq unit-key (caar prim-list) - unit-name (or (nth 0 (vhdl-aget ent-alist unit-key t)) - (nth 0 (vhdl-aget conf-alist unit-key t)) - (nth 0 (vhdl-aget pack-alist unit-key t)))) + unit-name (or (nth 0 (vhdl-aget ent-alist unit-key)) + (nth 0 (vhdl-aget conf-alist unit-key)) + (nth 0 (vhdl-aget pack-alist unit-key)))) (insert "\n" unit-key) (unless (equal unit-key unit-name) (insert " \\\n" unit-name)) diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el index aa68f9fcc1a..e62ad271089 100644 --- a/lisp/progmodes/which-func.el +++ b/lisp/progmodes/which-func.el @@ -187,21 +187,20 @@ and you want to simplify them for the mode line which-func-unknown)))) ;;;###autoload (put 'which-func-current 'risky-local-variable t) -(defvar which-func-mode nil +(defvar-local which-func-mode nil "Non-nil means display current function name in mode line. This makes a difference only if `which-function-mode' is non-nil.") -(make-variable-buffer-local 'which-func-mode) -;;(put 'which-func-mode 'permanent-local t) (add-hook 'find-file-hook 'which-func-ff-hook t) (defun which-func-ff-hook () "File find hook for Which Function mode. It creates the Imenu index for the buffer, if necessary." - (setq which-func-mode - (and which-function-mode - (or (eq which-func-modes t) - (member major-mode which-func-modes)))) + (unless (local-variable-p 'which-func-mode) + (setq which-func-mode + (and which-function-mode + (or (eq which-func-modes t) + (member major-mode which-func-modes))))) (condition-case err (if (and which-func-mode @@ -259,15 +258,13 @@ in certain major modes." ;;Turn it on (progn (setq which-func-update-timer - (run-with-idle-timer idle-update-delay t 'which-func-update)) + (run-with-idle-timer idle-update-delay t #'which-func-update)) (dolist (buf (buffer-list)) (with-current-buffer buf - (setq which-func-mode - (or (eq which-func-modes t) - (member major-mode which-func-modes)))))) - ;; Turn it off - (dolist (buf (buffer-list)) - (with-current-buffer buf (setq which-func-mode nil))))) + (unless (local-variable-p 'which-func-mode) + (setq which-func-mode + (or (eq which-func-modes t) + (member major-mode which-func-modes))))))))) (defvar which-function-imenu-failed nil "Locally t in a buffer if `imenu--make-index-alist' found nothing there.") @@ -347,10 +344,11 @@ If no function name is found, return nil." (defvar ediff-window-B) (defvar ediff-window-C) +;; FIXME: Why does ediff require special support? (defun which-func-update-ediff-windows () "Update Which-Function mode display for Ediff windows. This function is meant to be called from `ediff-select-hook'." - (when (eq major-mode 'ediff-mode) + (when (and (derived-mode-p 'ediff-mode) which-function-mode) (when ediff-window-A (which-func-update-1 ediff-window-A)) (when ediff-window-B diff --git a/lisp/ps-print.el b/lisp/ps-print.el index 83f2cde4010..28682f52b0e 100644 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el @@ -3822,6 +3822,7 @@ If `ps-prefix-quote' is nil, it's set to t after generating string." (defun ps-get (alist-sym key) "Return element from association list ALIST-SYM which car is `eq' to KEY." + (declare (obsolete alist-get "25.1")) (assq key (symbol-value alist-sym))) @@ -3829,6 +3830,7 @@ If `ps-prefix-quote' is nil, it's set to t after generating string." "Store element (KEY . VALUE) into association list ALIST-SYM. If KEY already exists in ALIST-SYM, modify cdr to VALUE. It can be retrieved with `(ps-get ALIST-SYM KEY)'." + (declare (obsolete "use (setf (alist-get ..) ..) instead" "25.1")) (let ((elt: (assq key (symbol-value alist-sym)))) ; to avoid name conflict (if elt: (setcdr elt: value) @@ -3839,6 +3841,7 @@ It can be retrieved with `(ps-get ALIST-SYM KEY)'." (defun ps-del (alist-sym key) "Delete by side effect element KEY from association list ALIST-SYM." + (declare (obsolete "use (setf (alist-get k alist nil t) nil) instead" "25.1")) (let ((a:list: (symbol-value alist-sym)) ; to avoid name conflict old) (while a:list: diff --git a/lisp/rect.el b/lisp/rect.el index e536e3e372c..90c8f94f0ab 100644 --- a/lisp/rect.el +++ b/lisp/rect.el @@ -35,7 +35,7 @@ (defgroup rectangle nil "Operations on rectangles." - :version "24.5" + :version "25.1" :group 'editing) ;; FIXME: this function should be replaced by `apply-on-rectangle' @@ -113,7 +113,7 @@ Point is at the end of the segment of this line within the rectangle." (if (window-parameter nil 'rectangle--point-crutches) (setf (window-parameter nil 'rectangle--point-crutches) nil)) (if rectangle--mark-crutches (setq rectangle--mark-crutches nil))) - ;; If move-to-column over-shooted, move back one char so we're + ;; If move-to-column overshot, move back one char so we're ;; at the position where rectangle--highlight-for-redisplay ;; will add the overlay (so that the cursor can be drawn at the ;; right place). @@ -520,7 +520,7 @@ rectangle which were empty." (setq rectangle-number-line-counter (1+ rectangle-number-line-counter))) -(defun rectange--default-line-number-format (start end start-at) +(defun rectangle--default-line-number-format (start end start-at) (concat "%" (int-to-string (length (int-to-string (+ (count-lines start end) start-at)))) @@ -541,11 +541,11 @@ with a prefix argument, prompt for START-AT and FORMAT." (start-at (read-number "Number to count from: " 1))) (list start end start-at (read-string "Format string: " - (rectange--default-line-number-format + (rectangle--default-line-number-format start end start-at)))) (list (region-beginning) (region-end) 1 nil))) (unless format - (setq format (rectange--default-line-number-format start end start-at))) + (setq format (rectangle--default-line-number-format start end start-at))) (let ((rectangle-number-line-counter start-at)) (apply-on-rectangle 'rectangle-number-line-callback start end format))) diff --git a/lisp/register.el b/lisp/register.el index eb3c71afece..aacd5d093fd 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -33,6 +33,8 @@ ;;; Code: +;; FIXME: Clean up namespace usage! + (cl-defstruct (registerv (:constructor nil) (:constructor registerv--make (&optional data print-func @@ -98,16 +100,12 @@ If nil, do not show register previews, unless `help-char' (or a member of (defun get-register (register) "Return contents of Emacs register named REGISTER, or nil if none." - (cdr (assq register register-alist))) + (alist-get register register-alist)) (defun set-register (register value) "Set contents of Emacs register named REGISTER to VALUE. Returns VALUE. See the documentation of the variable `register-alist' for possible VALUEs." - (let ((aelt (assq register register-alist))) - (if aelt - (setcdr aelt value) - (push (cons register value) register-alist)) - value)) + (setf (alist-get register register-alist) value)) (defun register-describe-oneline (c) "One-line description of register C." @@ -137,7 +135,8 @@ Format of each entry is controlled by the variable `register-preview-function'." (with-current-buffer-window buffer (cons 'display-buffer-below-selected - '((window-height . fit-window-to-buffer))) + '((window-height . fit-window-to-buffer) + (preserve-size . (nil . t)))) nil (with-current-buffer standard-output (setq cursor-in-non-selected-windows nil) @@ -425,13 +424,14 @@ Interactively, reads the register using `register-read-with-preview'." "Insert contents of register REGISTER. (REGISTER is a character.) Normally puts point before and mark after the inserted text. If optional second arg is non-nil, puts mark before and point after. -Interactively, second arg is non-nil if prefix arg is supplied. +Interactively, second arg is nil if prefix arg is supplied and t +otherwise. Interactively, reads the register using `register-read-with-preview'." (interactive (progn (barf-if-buffer-read-only) (list (register-read-with-preview "Insert register: ") - current-prefix-arg))) + (not current-prefix-arg)))) (push-mark) (let ((val (get-register register))) (cond diff --git a/lisp/replace.el b/lisp/replace.el index cf88cb57b89..fa6f11b262f 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -56,8 +56,8 @@ See `query-replace-from-history-variable' and (defvar query-replace-defaults nil "Default values of FROM-STRING and TO-STRING for `query-replace'. -This is a cons cell (FROM-STRING . TO-STRING), or nil if there is -no default value.") +This is a list of cons cells (FROM-STRING . TO-STRING), or nil +if there are no default values.") (defvar query-replace-interactive nil "Non-nil means `query-replace' uses the last search string. @@ -67,6 +67,19 @@ That becomes the \"string to replace\".") to the minibuffer that reads the string to replace, or invoke replacements from Isearch by using a key sequence like `C-s C-s M-%'." "24.3") +(defcustom query-replace-from-to-separator + (propertize + (or (ignore-errors + ;; Ignore errors when attempt to autoload char-displayable-p + ;; fails while preparing to dump. + (if (char-displayable-p ?\u2192) " \u2192 " " -> ")) + " -> ") + 'face 'minibuffer-prompt) + "String that separates FROM and TO in the history of replacement pairs." + :group 'matching + :type 'sexp + :version "25.1") + (defcustom query-replace-from-history-variable 'query-replace-history "History list to use for the FROM argument of `query-replace' commands. The value of this variable should be a symbol; that symbol @@ -131,12 +144,28 @@ The return value can also be a pair (FROM . TO) indicating that the user wants to replace FROM with TO." (if query-replace-interactive (car (if regexp-flag regexp-search-ring search-ring)) + ;; Reevaluating will check char-displayable-p that is + ;; unavailable while preparing to dump. + (custom-reevaluate-setting 'query-replace-from-to-separator) (let* ((history-add-new-input nil) + (separator + (when query-replace-from-to-separator + (propertize "\0" + 'display query-replace-from-to-separator + 'separator t))) + (query-replace-from-to-history + (append + (when separator + (mapcar (lambda (from-to) + (concat (query-replace-descr (car from-to)) + separator + (query-replace-descr (cdr from-to)))) + query-replace-defaults)) + (symbol-value query-replace-from-history-variable))) + (minibuffer-allow-text-properties t) ; separator uses text-properties (prompt - (if query-replace-defaults - (format "%s (default %s -> %s): " prompt - (query-replace-descr (car query-replace-defaults)) - (query-replace-descr (cdr query-replace-defaults))) + (if (and query-replace-defaults separator) + (format "%s (default %s): " prompt (car query-replace-from-to-history)) (format "%s: " prompt))) (from ;; The save-excursion here is in case the user marks and copies @@ -144,26 +173,35 @@ wants to replace FROM with TO." ;; That should not clobber the region for the query-replace itself. (save-excursion (if regexp-flag - (read-regexp prompt nil query-replace-from-history-variable) + (read-regexp prompt nil 'query-replace-from-to-history) (read-from-minibuffer - prompt nil nil nil query-replace-from-history-variable + prompt nil nil nil 'query-replace-from-to-history (car (if regexp-flag regexp-search-ring search-ring)) t))))) (if (and (zerop (length from)) query-replace-defaults) - (cons (car query-replace-defaults) + (cons (caar query-replace-defaults) (query-replace-compile-replacement - (cdr query-replace-defaults) regexp-flag)) - (add-to-history query-replace-from-history-variable from nil t) - ;; Warn if user types \n or \t, but don't reject the input. - (and regexp-flag - (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from) - (let ((match (match-string 3 from))) - (cond - ((string= match "\\n") - (message "Note: `\\n' here doesn't match a newline; to do that, type C-q C-j instead")) - ((string= match "\\t") - (message "Note: `\\t' here doesn't match a tab; to do that, just type TAB"))) - (sit-for 2))) - from)))) + (cdar query-replace-defaults) regexp-flag)) + (let* ((to (if (and (string-match separator from) + (get-text-property (match-beginning 0) 'separator from)) + (substring-no-properties from (match-end 0)))) + (from (if to (substring-no-properties from 0 (match-beginning 0)) + (substring-no-properties from)))) + (add-to-history query-replace-from-history-variable from nil t) + ;; Warn if user types \n or \t, but don't reject the input. + (and regexp-flag + (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from) + (let ((match (match-string 3 from))) + (cond + ((string= match "\\n") + (message "Note: `\\n' here doesn't match a newline; to do that, type C-q C-j instead")) + ((string= match "\\t") + (message "Note: `\\t' here doesn't match a tab; to do that, just type TAB"))) + (sit-for 2))) + (if (not to) + from + (add-to-history query-replace-to-history-variable to nil t) + (add-to-history 'query-replace-defaults (cons from to) nil t) + (cons from (query-replace-compile-replacement to regexp-flag)))))))) (defun query-replace-compile-replacement (to regexp-flag) "Maybe convert a regexp replacement TO to Lisp. @@ -216,7 +254,7 @@ the original string if not." nil nil nil query-replace-to-history-variable from t))) (add-to-history query-replace-to-history-variable to nil t) - (setq query-replace-defaults (cons from to)) + (add-to-history 'query-replace-defaults (cons from to) nil t) to)) regexp-flag)) @@ -266,7 +304,7 @@ replace backward. Fourth and fifth arg START and END specify the region to operate on. -To customize possible responses, change the \"bindings\" in `query-replace-map'." +To customize possible responses, change the bindings in `query-replace-map'." (interactive (let ((common (query-replace-read-args @@ -421,7 +459,7 @@ for Lisp calls." "22.1")) ;; Let-bind the history var to disable the "foo -> bar" ;; default. Maybe we shouldn't disable this default, but ;; for now I'll leave it off. --Stef - (let ((query-replace-to-history-variable nil)) + (let ((query-replace-defaults nil)) (query-replace-read-from "Query replace regexp" t))) (to (list (read-from-minibuffer (format "Query replace regexp %s with eval: " diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el index 739670cb1c9..6de5ee3228e 100644 --- a/lisp/scroll-bar.el +++ b/lisp/scroll-bar.el @@ -79,7 +79,7 @@ SIDE must be the symbol `left' or `right'." (htype lines) ((frame-parameter nil 'horizontal-scroll-bars) ;; nil means it's a non-toolkit scroll bar (which is currently - ;; impossible), and its width in columns is 14 pixels rounded up. + ;; impossible), and its height in lines is 14 pixels rounded up. (ceiling (or (frame-parameter nil 'scroll-bar-height) 14) (frame-char-width))) (0)))) @@ -90,16 +90,11 @@ SIDE must be the symbol `left' or `right'." (defvar scroll-bar-mode) (defvar horizontal-scroll-bar-mode) (defvar previous-scroll-bar-mode nil) -(defvar previous-horizontal-scroll-bar-mode nil) (defvar scroll-bar-mode-explicit nil "Non-nil means `set-scroll-bar-mode' should really do something. This is nil while loading `scroll-bar.el', and t afterward.") -(defvar horizontal-scroll-bar-mode-explicit nil - "Non-nil means `set-horizontal-scroll-bar-mode' should really do something. -This is nil while loading `scroll-bar.el', and t afterward.") - (defun set-scroll-bar-mode (value) "Set the scroll bar mode to VALUE and put the new value into effect. See the `scroll-bar-mode' variable for possible values to use." @@ -112,18 +107,6 @@ See the `scroll-bar-mode' variable for possible values to use." (modify-all-frames-parameters (list (cons 'vertical-scroll-bars scroll-bar-mode))))) -(defun set-horizontal-scroll-bar-mode (value) - "Set the horizontal scroll bar mode to VALUE and put the new value into effect. -See the `horizontal-scroll-bar-mode' variable for possible values to use." - (if horizontal-scroll-bar-mode - (setq previous-horizontal-scroll-bar-mode horizontal-scroll-bar-mode)) - - (setq horizontal-scroll-bar-mode value) - - (when horizontal-scroll-bar-mode-explicit - (modify-all-frames-parameters (list (cons 'horizontal-scroll-bars - horizontal-scroll-bar-mode))))) - (defcustom scroll-bar-mode default-frame-scroll-bars "Specify whether to have vertical scroll bars, and on which side. Possible values are nil (no scroll bars), `left' (scroll bars on left) @@ -140,32 +123,14 @@ Setting the variable with a customization buffer also takes effect." :initialize 'custom-initialize-default :set (lambda (_sym val) (set-scroll-bar-mode val))) -(defcustom horizontal-scroll-bar-mode default-frame-horizontal-scroll-bars - "Specify whether to have horizontal scroll bars, and on which side. -To set this variable in a Lisp program, use `set-horizontal-scroll-bar-mode' -to make it take real effect. -Setting the variable with a customization buffer also takes effect." - :type '(choice (const :tag "none (nil)" nil) - (const t)) - :group 'frames - ;; The default value for :initialize would try to use :set - ;; when processing the file in cus-dep.el. - :initialize 'custom-initialize-default - :set (lambda (_sym val) (set-horizontal-scroll-bar-mode val))) - ;; We just set scroll-bar-mode, but that was the default. ;; If it is set again, that is for real. (setq scroll-bar-mode-explicit t) -(setq horizontal-scroll-bar-mode-explicit t) (defun get-scroll-bar-mode () (declare (gv-setter set-scroll-bar-mode)) scroll-bar-mode) -(defun get-horizontal-scroll-bar-mode () - (declare (gv-setter set-horizontal-scroll-bar-mode)) - horizontal-scroll-bar-mode) - (define-minor-mode scroll-bar-mode "Toggle vertical scroll bars on all frames (Scroll Bar mode). With a prefix argument ARG, enable Scroll Bar mode if ARG is @@ -179,6 +144,13 @@ created in the future." (if v (or previous-scroll-bar-mode default-frame-scroll-bars)))))) +(defun horizontal-scroll-bars-available-p () + "Return non-nil when horizontal scroll bars are available on this system." + (and (display-graphic-p) + (boundp 'x-toolkit-scroll-bars) + x-toolkit-scroll-bars + (not (eq (window-system) 'ns)))) + (define-minor-mode horizontal-scroll-bar-mode "Toggle horizontal scroll bars on all frames (Horizontal Scroll Bar mode). With a prefix argument ARG, enable Horizontal Scroll Bar mode if @@ -187,14 +159,26 @@ enable the mode if ARG is omitted or nil. This command applies to all frames that exist and frames to be created in the future." - :variable ((get-horizontal-scroll-bar-mode) - . (lambda (v) (set-horizontal-scroll-bar-mode - (if v (or previous-scroll-bar-mode - default-frame-horizontal-scroll-bars)))))) + :init-value nil + :global t + :group 'frames + (if (and horizontal-scroll-bar-mode + (not (horizontal-scroll-bars-available-p))) + (progn + (setq horizontal-scroll-bar-mode nil) + (message "Horizontal scroll bars are not implemented on this system")) + (dolist (frame (frame-list)) + (set-frame-parameter + frame 'horizontal-scroll-bars horizontal-scroll-bar-mode)) + ;; Handle `default-frame-alist' entry. + (setq default-frame-alist + (cons (cons 'horizontal-scroll-bars horizontal-scroll-bar-mode) + (assq-delete-all 'horizontal-scroll-bars + default-frame-alist))))) (defun toggle-scroll-bar (arg) "Toggle whether or not the selected frame has vertical scroll bars. -With arg, turn vertical scroll bars on if and only if arg is positive. +With ARG, turn vertical scroll bars on if and only if ARG is positive. The variable `scroll-bar-mode' controls which side the scroll bars are on when they are turned on; if it is nil, they go on the left." (interactive "P") @@ -212,7 +196,7 @@ when they are turned on; if it is nil, they go on the left." (defun toggle-horizontal-scroll-bar (arg) "Toggle whether or not the selected frame has horizontal scroll bars. -With arg, turn horizontal scroll bars on if and only if arg is positive." +With ARG, turn vertical scroll bars on if and only if ARG is positive." (interactive "P") (if (null arg) (setq arg @@ -223,8 +207,7 @@ With arg, turn horizontal scroll bars on if and only if arg is positive." (modify-frame-parameters (selected-frame) (list (cons 'horizontal-scroll-bars - (if (> arg 0) - (or horizontal-scroll-bar-mode default-frame-horizontal-scroll-bars)))))) + (when (> arg 0) 'bottom))))) ;;;; Buffer navigation using the scroll bar. @@ -327,8 +310,14 @@ If you click outside the slider, the window scrolls to bring the slider there." (window (nth 0 start-position)) (portion-whole (nth 2 start-position)) (unit (frame-char-width (window-frame window)))) - (set-window-hscroll - window (/ (1- (+ (car portion-whole) unit)) unit)))) + (if (eq (current-bidi-paragraph-direction (window-buffer window)) + 'left-to-right) + (set-window-hscroll + window (/ (+ (car portion-whole) (1- unit)) unit)) + (set-window-hscroll + window (/ (+ (- (cdr portion-whole) (car portion-whole)) + (1- unit)) + unit))))) (defun scroll-bar-horizontal-drag (event) "Scroll the window horizontally by dragging the scroll bar slider. @@ -406,6 +395,7 @@ EVENT should be a scroll bar click." ;;; Tookit scroll bars. (defun scroll-bar-toolkit-scroll (event) + "Handle event EVENT on vertical scroll bar." (interactive "e") (let* ((end-position (event-end event)) (window (nth 0 end-position)) @@ -447,13 +437,16 @@ EVENT should be a scroll bar click." (setq point-before-scroll before-scroll)))))) (defun scroll-bar-toolkit-horizontal-scroll (event) + "Handle event EVENT on horizontal scroll bar." (interactive "e") (let* ((end-position (event-end event)) (window (nth 0 end-position)) (part (nth 4 end-position)) - (bidi-factor (if (eq (current-bidi-paragraph-direction) 'left-to-right) - 1 - -1)) + (bidi-factor + (if (eq (current-bidi-paragraph-direction (window-buffer window)) + 'left-to-right) + 1 + -1)) before-scroll) (cond ((eq part 'end-scroll)) diff --git a/lisp/select.el b/lisp/select.el index c4d020343af..5a10756ea48 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -1,4 +1,4 @@ -;;; select.el --- lisp portion of standard selection support +;;; select.el --- lisp portion of standard selection support -*- lexical-binding:t -*- ;; Copyright (C) 1993-1994, 2001-2014 Free Software Foundation, Inc. @@ -24,6 +24,18 @@ ;; Based partially on earlier release by Lucid. +;; The functionality here is divided in two parts: +;; - Low-level: gui-get-selection, gui-set-selection, gui-selection-owner-p, +;; gui-selection-exists-p are the backend-dependent functions meant to access +;; various kinds of selections (CLIPBOARD, PRIMARY, SECONDARY). +;; - Higher-level: gui-select-text and gui-selection-value go together to +;; access the general notion of "GUI selection" for interoperation with other +;; applications. This can use either the clipboard or the primary selection, +;; or both or none according to select-enable-clipboard/primary. These are +;; the default values of interprogram-cut/paste-function. +;; Additionally, there's gui-get-primary-selection which is used to get the +;; PRIMARY selection, specifically for mouse-yank-primary. + ;;; Code: (defcustom selection-coding-system nil @@ -71,13 +83,204 @@ other programs (X Windows clients or MS Windows programs). But, if this variable is set, it is used for the next communication only. After the communication, this variable is set to nil.") -(declare-function x-get-selection-internal "xselect.c" - (selection-symbol target-type &optional time-stamp terminal)) - ;; Only declared obsolete in 23.3. (define-obsolete-function-alias 'x-selection 'x-get-selection "at least 19.34") -(defun x-get-selection (&optional type data-type) +(defcustom select-enable-clipboard t + "Non-nil means cutting and pasting uses the clipboard. +This can be in addition to, but in preference to, the primary selection, +if applicable (i.e. under X11)." + :type 'boolean + :group 'killing + ;; The GNU/Linux version changed in 24.1, the MS-Windows version did not. + :version "24.1") +(define-obsolete-variable-alias 'x-select-enable-clipboard + 'select-enable-clipboard "25.1") + +(defcustom select-enable-primary nil + "Non-nil means cutting and pasting uses the primary selection +The existence of a primary selection depends on the underlying GUI you use. +E.g. it doesn't exist under MS-Windows." + :type 'boolean + :group 'killing + :version "24.1") +(define-obsolete-variable-alias 'x-select-enable-primary + 'select-enable-primary "25.1") + +;; We keep track of the last text selected here, so we can check the +;; current selection against it, and avoid passing back our own text +;; from gui-selection-value. We track both +;; separately in case another X application only sets one of them +;; we aren't fooled by the PRIMARY or CLIPBOARD selection staying the same. + +(defvar gui--last-selected-text-clipboard nil + "The value of the CLIPBOARD selection last seen.") +(defvar gui--last-selected-text-primary nil + "The value of the PRIMARY selection last seen.") + +(defun gui-select-text (text) + "Select TEXT, a string, according to the window system. +if `select-enable-clipboard' is non-nil, copy TEXT to the system's clipboard. +If `select-enable-primary' is non-nil, put TEXT in the primary selection. + +MS-Windows does not have a \"primary\" selection." + (when select-enable-primary + (gui-set-selection 'PRIMARY text) + (setq gui--last-selected-text-primary text)) + (when select-enable-clipboard + ;; When cutting, the selection is cleared and PRIMARY + ;; set to the empty string. Prevent that, PRIMARY + ;; should not be reset by cut (Bug#16382). + (setq saved-region-selection text) + (gui-set-selection 'CLIPBOARD text) + (setq gui--last-selected-text-clipboard text))) +(define-obsolete-function-alias 'x-select-text 'gui-select-text "25.1") + +(defcustom x-select-request-type nil + "Data type request for X selection. +The value is one of the following data types, a list of them, or nil: + `COMPOUND_TEXT', `UTF8_STRING', `STRING', `TEXT' + +If the value is one of the above symbols, try only the specified type. + +If the value is a list of them, try each of them in the specified +order until succeed. + +The value nil is the same as the list (UTF8_STRING COMPOUND_TEXT STRING)." + :type '(choice (const :tag "Default" nil) + (const COMPOUND_TEXT) + (const UTF8_STRING) + (const STRING) + (const TEXT) + (set :tag "List of values" + (const COMPOUND_TEXT) + (const UTF8_STRING) + (const STRING) + (const TEXT))) + :group 'killing) + +;; Get a selection value of type TYPE by calling gui-get-selection with +;; an appropriate DATA-TYPE argument decided by `x-select-request-type'. +;; The return value is already decoded. If gui-get-selection causes an +;; error, this function return nil. + +(defun gui--selection-value-internal (type) + (let ((request-type (if (eq window-system 'x) + (or x-select-request-type + '(UTF8_STRING COMPOUND_TEXT STRING)) + 'STRING)) + text) + (with-demoted-errors "gui-get-selection: %S" + (if (consp request-type) + (while (and request-type (not text)) + (setq text (gui-get-selection type (car request-type))) + (setq request-type (cdr request-type))) + (setq text (gui-get-selection type request-type)))) + (if text + (remove-text-properties 0 (length text) '(foreign-selection nil) text)) + text)) + +(defun gui-selection-value () + (let ((clip-text + (when select-enable-clipboard + (let ((text (gui--selection-value-internal 'CLIPBOARD))) + (if (string= text "") (setq text nil)) + + ;; Check the CLIPBOARD selection for 'newness', is it different + ;; from what we remembered them to be last time we did a + ;; cut/paste operation. + (prog1 + (unless (equal text gui--last-selected-text-clipboard) + text) + (setq gui--last-selected-text-clipboard text))))) + (primary-text + (when select-enable-primary + (let ((text (gui--selection-value-internal 'PRIMARY))) + (if (string= text "") (setq text nil)) + ;; Check the PRIMARY selection for 'newness', is it different + ;; from what we remembered them to be last time we did a + ;; cut/paste operation. + (prog1 + (unless (equal text gui--last-selected-text-primary) + text) + (setq gui--last-selected-text-primary text)))))) + + ;; As we have done one selection, clear this now. + (setq next-selection-coding-system nil) + + ;; At this point we have recorded the current values for the + ;; selection from clipboard (if we are supposed to) and primary. + ;; So return the first one that has changed + ;; (which is the first non-null one). + ;; + ;; NOTE: There will be cases where more than one of these has + ;; changed and the new values differ. This indicates that + ;; something like the following has happened since the last time + ;; we looked at the selections: Application X set all the + ;; selections, then Application Y set only one of them. + ;; In this case since we don't have + ;; timestamps there is no way to know what the 'correct' value to + ;; return is. The nice thing to do would be to tell the user we + ;; saw multiple possible selections and ask the user which was the + ;; one they wanted. + (or clip-text primary-text) + )) + +(define-obsolete-function-alias 'x-selection-value 'gui-selection-value "25.1") + +(defun x-get-clipboard () + "Return text pasted to the clipboard." + (declare (obsolete gui-get-selection "25.1")) + (gui-call gui-get-selection 'CLIPBOARD 'STRING)) + +(defun gui-get-primary-selection () + "Return the PRIMARY selection, or the best emulation thereof." + (or (gui-get-selection 'PRIMARY) + (and (fboundp 'w32-get-selection-value) + (eq (framep (selected-frame)) 'w32) + ;; MS-Windows emulates PRIMARY in x-get-selection, but only + ;; within the Emacs session, so consult the clipboard if + ;; primary is not found. + (w32-get-selection-value)) + (error "No selection is available"))) +(define-obsolete-function-alias 'x-get-selection-value + 'gui-get-primary-selection "25.1") + +;;; Lower-level, backend dependent selection handling. + +(gui-method-declare gui-get-selection #'ignore + "Return selected text. +Called with 2 arguments: (SELECTION-SYMBOL TARGET-TYPE) +SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. +\(Those are literal upper-case symbol names, since that's what X expects.) +TARGET-TYPE is the type of data desired, typically `STRING'.") + +(gui-method-declare gui-set-selection #'ignore + "Method to assert a selection of type SELECTION and value VALUE. +SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. +If VALUE is nil and we own the selection SELECTION, disown it instead. +Disowning it means there is no such selection. +\(Those are literal upper-case symbol names, since that's what X expects.) +VALUE is typically a string, or a cons of two markers, but may be +anything that the functions on `selection-converter-alist' know about. + +Called with 2 args: (SELECTION VALUE).") + +(gui-method-declare gui-selection-owner-p #'ignore + "Whether the current Emacs process owns the given X Selection. +Called with one argument: (SELECTION). +The arg should be the name of the selection in question, typically one of +the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. +\(Those are literal upper-case symbol names, since that's what X expects.)") + +(gui-method-declare gui-selection-exists-p #'ignore + "Whether there is an owner for the given X Selection. +Called with one argument: (SELECTION). +The arg should be the name of the selection in question, typically one of +the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. +\(Those are literal upper-case symbol names, since that's what X expects.)") + +(defun gui-get-selection (&optional type data-type) "Return the value of an X Windows selection. The argument TYPE (default `PRIMARY') says which selection, and the argument DATA-TYPE (default `STRING') says @@ -90,40 +293,28 @@ all upper-case names. The most often used ones, in addition to DATA-TYPE is usually `STRING', but can also be one of the symbols in `selection-converter-alist', which see. This argument is -ignored on MS-Windows and MS-DOS." - (let ((data (x-get-selection-internal (or type 'PRIMARY) - (or data-type 'STRING))) - coding) +ignored on NS, MS-Windows and MS-DOS." + (let ((data (gui-call gui-get-selection (or type 'PRIMARY) + (or data-type 'STRING)))) (when (and (stringp data) (setq data-type (get-text-property 0 'foreign-selection data))) - (setq coding (or next-selection-coding-system - selection-coding-system - (cond ((eq data-type 'UTF8_STRING) - 'utf-8) - ((eq data-type 'COMPOUND_TEXT) - 'compound-text-with-extensions) - ((eq data-type 'C_STRING) - nil) - ((eq data-type 'STRING) - 'iso-8859-1) - (t - (error "Unknown selection data type: %S" type)))) - data (if coding (decode-coding-string data coding) - (string-to-multibyte data))) + (let ((coding (or next-selection-coding-system + selection-coding-system + (pcase data-type + ('UTF8_STRING 'utf-8) + ('COMPOUND_TEXT 'compound-text-with-extensions) + ('C_STRING nil) + ('STRING 'iso-8859-1) + (_ (error "Unknown selection data type: %S" + type)))))) + (setq data (if coding (decode-coding-string data coding) + (string-to-multibyte data)))) (setq next-selection-coding-system nil) (put-text-property 0 (length data) 'foreign-selection data-type data)) data)) +(define-obsolete-function-alias 'x-get-selection 'gui-get-selection "25.1") -(defun x-get-clipboard () - "Return text pasted to the clipboard." - (x-get-selection-internal 'CLIPBOARD 'STRING)) - -(declare-function x-own-selection-internal "xselect.c" - (selection-name selection-value &optional frame)) -(declare-function x-disown-selection-internal "xselect.c" - (selection &optional time terminal)) - -(defun x-set-selection (type data) +(defun gui-set-selection (type data) "Make an X selection of type TYPE and value DATA. The argument TYPE (nil means `PRIMARY') says which selection, and DATA specifies the contents. TYPE must be a symbol. \(It can also @@ -151,35 +342,32 @@ are not available to other programs." (list 'PRIMARY (read-string "Set text for pasting: ")) (list 'PRIMARY (buffer-substring (region-beginning) (region-end))))) (if (stringp type) (setq type (intern type))) - (or (x-valid-simple-selection-p data) + (or (gui--valid-simple-selection-p data) (and (vectorp data) - (let ((valid t) - (i (1- (length data)))) - (while (>= i 0) - (or (x-valid-simple-selection-p (aref data i)) - (setq valid nil)) - (setq i (1- i))) + (let ((valid t)) + (dotimes (i (length data)) + (or (gui--valid-simple-selection-p (aref data i)) + (setq valid nil))) valid)) (signal 'error (list "invalid selection" data))) (or type (setq type 'PRIMARY)) - (if data - (x-own-selection-internal type data) - (x-disown-selection-internal type)) + (gui-call gui-set-selection type data) data) +(define-obsolete-function-alias 'x-set-selection 'gui-set-selection "25.1") -(defun x-valid-simple-selection-p (data) +(defun gui--valid-simple-selection-p (data) (or (bufferp data) (and (consp data) (markerp (car data)) (markerp (cdr data)) (marker-buffer (car data)) - (buffer-name (marker-buffer (car data))) + (buffer-live-p (marker-buffer (car data))) (eq (marker-buffer (car data)) (marker-buffer (cdr data)))) (stringp data) (and (overlayp data) (overlay-buffer data) - (buffer-name (overlay-buffer data))) + (buffer-live-p (overlay-buffer data))) (symbolp data) (integerp data))) @@ -323,7 +511,7 @@ two markers or an overlay. Otherwise, it is nil." (apply 'vector all))) (defun xselect-convert-to-delete (selection _type _value) - (x-disown-selection-internal selection) + (gui-call gui-set-selection selection nil) ;; A return value of nil means that we do not know how to do this conversion, ;; and replies with an "error". A return value of NULL means that we have ;; done the conversion (and any side-effects) but have no value to return. diff --git a/lisp/ses.el b/lisp/ses.el index bfe021f5300..a653f8c174b 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -56,6 +56,7 @@ ;;; Code: (require 'unsafep) +(require 'macroexp) (eval-when-compile (require 'cl-lib)) @@ -301,7 +302,7 @@ default printer and then modify its output.") (defmacro ses--metaprogramming (exp) (declare (debug t)) (eval exp t)) (ses--metaprogramming `(progn ,@(mapcar (lambda (x) `(defvar ,(or (car-safe x) x))) ses-localvars))) - + (defun ses-set-localvars () "Set buffer-local and initialize some SES variables." (dolist (x ses-localvars) @@ -426,38 +427,11 @@ functions refer to its value." (ses-get-cell (car rowcol) (cdr rowcol))))))) -(defun ses--alist-get (key alist &optional remove) - "Get the value associated to KEY in ALIST." - (declare - (gv-expander - (lambda (do) - (macroexp-let2 macroexp-copyable-p k key - (gv-letplace (getter setter) alist - (macroexp-let2 nil p `(assq ,k ,getter) - (funcall do `(cdr ,p) - (lambda (v) - (let ((set-exp - `(if ,p (setcdr ,p ,v) - ,(funcall setter - `(cons (setq ,p (cons ,k ,v)) - ,getter))))) - (cond - ((null remove) set-exp) - ((null v) - `(if ,p ,(funcall setter `(delq ,p ,getter)))) - (t - `(cond - (,v ,set-exp) - (,p ,(funcall setter - `(delq ,p ,getter))))))))))))))) - (ignore remove) ;;Silence byte-compiler. - (cdr (assoc key alist))) - (defmacro ses--letref (vars place &rest body) (declare (indent 2) (debug (sexp form &rest body))) (gv-letplace (getter setter) place `(cl-macrolet ((,(nth 0 vars) () ',getter) - (,(nth 1 vars) (v) (funcall ,setter v))) + (,(nth 1 vars) (v) (funcall ',setter v))) ,@body))) (defmacro ses-cell-property (property-name row &optional col) @@ -467,18 +441,18 @@ When COL is omitted, CELL=ROW is a cell object. When COL is present ROW and COL are the integer coordinates of the cell of interest." (declare (debug t)) - `(ses--alist-get ,property-name - (ses-cell--properties - ,(if col `(ses-get-cell ,row ,col) row)))) + `(alist-get ,property-name + (ses-cell--properties + ,(if col `(ses-get-cell ,row ,col) row)))) (defmacro ses-cell-property-pop (property-name row &optional col) "From a CELL or a pair (ROW,COL), get and remove the property value of the corresponding cell with name PROPERTY-NAME." `(ses--letref (pget pset) - (ses--alist-get ,property-name - (ses-cell--properties - ,(if col `(ses-get-cell ,row ,col) row)) - t) + (alist-get ,property-name + (ses-cell--properties + ,(if col `(ses-get-cell ,row ,col) row)) + nil t) (prog1 (pget) (pset nil)))) (defmacro ses-cell-value (row &optional col) @@ -518,7 +492,8 @@ Safety-checking for FORMULA and PRINTER are deferred until first use." (let ((rowcol (ses-sym-rowcol sym))) (ses-formula-record formula) (ses-printer-record printer) - (unless formula (setq formula value)) + (unless (or formula (eq value '*skip*)) + (setq formula (macroexp-quote value))) (or (atom formula) (eq safe-functions t) (setq formula `(ses-safe-formula ,formula))) @@ -561,7 +536,7 @@ macro to prevent propagate-on-load viruses." ;;To save time later, we also calculate the total width of each line in the ;;print area (excluding the terminating newline) (setq ses--col-widths widths - ses--linewidth (apply '+ -1 (mapcar '1+ widths)) + ses--linewidth (apply #'+ -1 (mapcar #'1+ widths)) ses--blank-line (concat (make-string ses--linewidth ?\s) "\n")) t) @@ -573,7 +548,7 @@ them for safety. This is a macro to prevent propagate-on-load viruses." (dotimes (x ses--numcols) (aset printers x (ses-safe-printer (aref printers x)))) (setq ses--col-printers printers) - (mapc 'ses-printer-record printers) + (mapc #'ses-printer-record printers) t) (defmacro ses-default-printer (def) @@ -607,15 +582,14 @@ variables `minrow', `maxrow', `mincol', and `maxcol'." (let ((minrow (car ,min)) (maxrow (car ,max)) (mincol (cdr ,min)) - (maxcol (cdr ,max)) - row col) + (maxcol (cdr ,max))) (if (or (> minrow maxrow) (> mincol maxcol)) (error "Empty range")) (dotimes (,r (- maxrow minrow -1)) - (setq row (+ ,r minrow)) - (dotimes (,c (- maxcol mincol -1)) - (setq col (+ ,c mincol)) - ,@body)))))) + (let ((row (+ ,r minrow))) + (dotimes (,c (- maxcol mincol -1)) + (let ((col (+ ,c mincol))) + ,@body)))))))) ;;Support for coverage testing. (defmacro 1value (form) @@ -780,13 +754,12 @@ updated again." (setq ses--header-hscroll -1)) ;;Split this code off into a function to avoid coverage-testing difficulties -(defun ses-time-check (format arg) +(defmacro ses--time-check (format &rest args) "If `ses-start-time' is more than a second ago, call `message' with FORMAT -and (eval ARG) and reset `ses-start-time' to the current time." - (when (> (- (float-time) ses-start-time) 1.0) - (message format (eval arg)) - (setq ses-start-time (float-time))) - nil) +and ARGS and reset `ses-start-time' to the current time." + `(when (> (- (float-time) ses-start-time) 1.0) + (message ,format ,@args) + (setq ses-start-time (float-time)))) ;;---------------------------------------------------------------------------- @@ -802,7 +775,8 @@ cell (ROW,COL). This is undoable. The cell's data will be updated through (val ,val)) (let* ((cell (ses-get-cell row col)) (change - ,(let ((field (eval field t))) + ,(let ((field (progn (cl-assert (eq (car field) 'quote)) + (cadr field)))) (if (eq field 'value) `(ses-set-with-undo (ses-cell-symbol cell) val) ;; (let* ((slots (get 'ses-cell 'cl-struct-slots)) @@ -939,7 +913,7 @@ the old and FORCE is nil." (setq formula (ses-safe-formula (cadr formula))) (ses-set-cell row col 'formula formula)) (condition-case sig - (setq newval (eval formula)) + (setq newval (eval formula t)) (error ;; Variable `sig' can't be nil. (nconc sig (list (ses-cell-symbol cell))) @@ -1131,6 +1105,9 @@ A single cell is appropriate unless some argument is 'needrange." ((memq 'needrange args) (error "Need a range")))) +(defvar ses--row) +(defvar ses--col) + (defun ses-print-cell (row col) "Format and print the value of cell (ROW,COL) to the print area. Use the cell's printer function. If the cell's new print form is too wide, @@ -1158,10 +1135,13 @@ preceding cell has spilled over." (ses-set-cell row col 'printer (setq printer (ses-safe-printer (cadr printer))))) ;; Print the value. - (setq text (ses-call-printer (or printer - (ses-col-printer col) - ses--default-printer) - value)) + (setq text + (let ((ses--row row) + (ses--col col)) + (ses-call-printer (or printer + (ses-col-printer col) + ses--default-printer) + value))) (if (consp ses-call-printer-return) ;; Printer returned an error. (setq sig ses-call-printer-return)))) @@ -1270,13 +1250,15 @@ printer signaled one (and \"%s\" is used as the default printer), else nil." (format (car printer) value) "")) (t - (setq value (funcall - (or (and (symbolp printer) - (let ((locprn (gethash printer ses--local-printer-hashmap))) - (and locprn - (ses--locprn-compiled locprn)))) - printer) - (or value ""))) + (setq value + (funcall + (or (and (symbolp printer) + (let ((locprn (gethash printer + ses--local-printer-hashmap))) + (and locprn + (ses--locprn-compiled locprn)))) + printer) + (or value ""))) (if (stringp value) value (or (stringp (car-safe value)) @@ -1349,11 +1331,11 @@ ses--default-printer, ses--numrows, or ses--numcols." (goto-char ses--params-marker) (forward-line def)))) -(defun ses-file-format-extend-paramter-list (new-file-format) +(defun ses-file-format-extend-parameter-list (new-file-format) "Extend the global parameters list when file format is updated from 2 to 3. This happens when local printer function are added to a sheet that was created with SES version 2. This is not -undoable. Return nil when there was no change, and non nil otherwise." +undoable. Return nil when there was no change, and non nil otherwise." (save-excursion (cond ((and (= ses--file-format 2) (= 3 new-file-format)) @@ -1402,8 +1384,8 @@ Newlines in the data are escaped." (with-temp-message " " (save-excursion (while ses--deferred-write - (ses-time-check "Writing... (%d cells left)" - '(length ses--deferred-write)) + (ses--time-check "Writing... (%d cells left)" + (length ses--deferred-write)) (setq rowcol (pop ses--deferred-write) row (car rowcol) col (cdr rowcol) @@ -1693,7 +1675,7 @@ to each symbol." (let (row col) (setq ses-start-time (float-time)) (while reform - (ses-time-check "Fixing ses-ranges... (%d left)" '(length reform)) + (ses--time-check "Fixing ses-ranges... (%d left)" (length reform)) (setq row (caar reform) col (cdar reform) reform (cdr reform)) @@ -1759,7 +1741,7 @@ Does not execute cell formulas or print functions." (numberp (nth 2 params)) (> (nth 2 params) 0) (or (<= params-len 3) - (let ((numlocprn (nth 3 params))) + (let ((numlocprn (nth 3 params))) (and (integerp numlocprn) (>= numlocprn 0))))) (error "Invalid SES file")) (setq ses--file-format (car params) @@ -1790,11 +1772,11 @@ Does not execute cell formulas or print functions." (setq ses--data-marker (point-marker)) (forward-char (1- (length ses-print-data-boundary))) ;; Initialize printer and symbol lists. - (mapc 'ses-printer-record ses-standard-printer-functions) + (mapc #'ses-printer-record ses-standard-printer-functions) (setq ses--symbolic-formulas nil) - ;; Load local printer definitions. - ;; This must be loaded *BEFORE* cells and column printers because the latters + ;; Load local printer definitions. + ;; This must be loaded *BEFORE* cells and column printers because the latter ;; may call them. (save-excursion (forward-line (* ses--numrows (1+ ses--numcols))) @@ -1839,10 +1821,10 @@ Does not execute cell formulas or print functions." (eq (car-safe head-row) 'ses-header-row) (= n4 ?\n)) (error "Invalid SES global parameters")) - (1value (eval widths)) - (1value (eval def-printer)) - (1value (eval printers)) - (1value (eval head-row))) + (1value (eval widths t)) + (1value (eval def-printer t)) + (1value (eval printers t)) + (1value (eval head-row t))) ;; Should be back at global-params. (forward-char 1) (or (looking-at-p ses-initial-global-parameters-re) @@ -1861,45 +1843,42 @@ Narrows the buffer to show only the print area. Gives it `read-only' and `intangible' properties. Sets up highlighting for current cell." (interactive) (let ((end (point-min)) - (inhibit-read-only t) (inhibit-point-motion-hooks t) - (was-modified (buffer-modified-p)) pos sym) - (ses-goto-data 0 0) ; Include marker between print-area and data-area. - (set-text-properties (point) (point-max) nil) ; Delete garbage props. - (mapc 'delete-overlay (overlays-in (point-min) (point-max))) - ;; The print area is read-only (except for our special commands) and uses a - ;; special keymap. - (put-text-property (point-min) (1- (point)) 'read-only 'ses) - (put-text-property (point-min) (1- (point)) 'keymap 'ses-mode-print-map) - ;; For the beginning of the buffer, we want the read-only and keymap - ;; attributes to be inherited from the first character. - (put-text-property (point-min) (1+ (point-min)) 'front-sticky t) - ;; Create intangible properties, which also indicate which cell the text - ;; came from. - (dotimes-with-progress-reporter (row ses--numrows) "Finding cells..." - (dotimes (col ses--numcols) - (setq pos end - sym (ses-cell-symbol row col)) - ;; Include skipped cells following this one. - (while (and (< col (1- ses--numcols)) - (eq (ses-cell-value row (1+ col)) '*skip*)) - (setq end (+ end (ses-col-width col) 1) - col (1+ col))) - (setq end (save-excursion - (goto-char pos) - (move-to-column (+ (current-column) (- end pos) - (ses-col-width col))) - (if (eolp) - (+ end (ses-col-width col) 1) - (forward-char) - (point)))) - (put-text-property pos end 'intangible sym))) - ;; Adding these properties did not actually alter the text. - (unless was-modified - (restore-buffer-modified-p nil) - (buffer-disable-undo) - (buffer-enable-undo))) + (with-silent-modifications + (ses-goto-data 0 0) ; Include marker between print-area and data-area. + (set-text-properties (point) (point-max) nil) ; Delete garbage props. + (mapc #'delete-overlay (overlays-in (point-min) (point-max))) + ;; The print area is read-only (except for our special commands) and + ;; uses a special keymap. + (put-text-property (point-min) (1- (point)) 'read-only 'ses) + (put-text-property (point-min) (1- (point)) 'keymap 'ses-mode-print-map) + ;; For the beginning of the buffer, we want the read-only and keymap + ;; attributes to be inherited from the first character. + (put-text-property (point-min) (1+ (point-min)) 'front-sticky t) + ;; Create intangible properties, which also indicate which cell the text + ;; came from. + (dotimes-with-progress-reporter (row ses--numrows) "Finding cells..." + (dotimes (col ses--numcols) + (setq pos end + sym (ses-cell-symbol row col)) + (unless (eq (symbol-value sym) '*skip*) + ;; Include skipped cells following this one. + (while (and (< col (1- ses--numcols)) + (eq (ses-cell-value row (1+ col)) '*skip*)) + (setq end (+ end (ses-col-width col) 1) + ;; Beware: Modifying the iteration variable of `dotimes' + ;; may or may not affect the iteration! + col (1+ col))) + (setq end (save-excursion + (goto-char pos) + (move-to-column (+ (current-column) (- end pos) + (ses-col-width col))) + (if (eolp) + (+ end (ses-col-width col) 1) + (forward-char) + (point)))) + (put-text-property pos end 'intangible sym)))))) ;; Create the underlining overlay. It's impossible for (point) to be 2, ;; because column A must be at least 1 column wide. (setq ses--curcell-overlay (make-overlay (1+ (point-min)) (1+ (point-min)))) @@ -1919,7 +1898,7 @@ Delete overlays, remove special text properties." ;; Delete read-only, keymap, and intangible properties. (set-text-properties (point-min) (point-max) nil) ;; Delete overlay. - (mapc 'delete-overlay (overlays-in (point-min) (point-max))) + (mapc #'delete-overlay (overlays-in (point-min) (point-max))) (unless was-modified (restore-buffer-modified-p nil)))) @@ -2125,7 +2104,7 @@ Based on the current set of columns and `window-hscroll' position." (push (propertize (format " [row %d]" ses--header-row) 'display '((height (- 1)))) result)) - (setq ses--header-string (apply 'concat (nreverse result))))) + (setq ses--header-string (apply #'concat (nreverse result))))) ;;---------------------------------------------------------------------------- @@ -2177,6 +2156,14 @@ print area if NONARROW is nil." (setq ses--Dijkstra-attempt-nb (1+ ses--Dijkstra-attempt-nb) ses--Dijkstra-weight-bound (* ses--numrows ses--numcols))) +;; These functions use the variables 'row' and 'col' that are dynamically bound +;; by ses-print-cell. We define these variables at compile-time to make the +;; compiler happy. +;; (defvar row) +;; (defvar col) +;; (defvar maxrow) +;; (defvar maxcol) + (defun ses-recalculate-cell () "Recalculate and reprint the current cell or range. @@ -2204,7 +2191,7 @@ to are recalculated first." ;; First, recalculate all cells that don't refer to other cells and ;; produce a list of cells with references. (ses-dorange ses--curcell - (ses-time-check "Recalculating... %s" '(ses-cell-symbol row col)) + (ses--time-check "Recalculating... %s" (ses-cell-symbol row col)) (condition-case nil (progn ;; The t causes an error if the cell has references. If no @@ -2825,7 +2812,7 @@ SES attributes recording the contents of the cell as of the time of copying." ;;Avoid overflow situation (setq end (1- ses--data-marker))) (let* ((inhibit-point-motion-hooks t) - (x (mapconcat 'ses-copy-region-helper + (x (mapconcat #'ses-copy-region-helper (extract-rectangle beg (1- end)) "\n"))) (remove-text-properties 0 (length x) '(read-only t @@ -3130,7 +3117,7 @@ is non-nil. Newlines and tabs in the export text are escaped." (push "\t" result)) ((< row maxrow) (push "\n" result)))) - (setq result (apply 'concat (nreverse result))) + (setq result (apply #'concat (nreverse result))) (kill-new result))) @@ -3398,7 +3385,7 @@ highlighted range in the spreadsheet." (symbol-name new-name))) (force-mode-line-update))) -(defun ses-refresh-local-printer (name compiled-value) +(defun ses-refresh-local-printer (name _compiled-value) ;FIXME: unused arg? "Refresh printout for all cells which use printer NAME. NAME should be the name of a locally defined printer. Uses the value COMPILED-VALUE for this printer." @@ -3462,7 +3449,7 @@ Uses the value COMPILED-VALUE for this printer." (backward-char)) (insert printer-def-text) (when (= create-printer 1) - (ses-file-format-extend-paramter-list 3) + (ses-file-format-extend-parameter-list 3) (ses-set-parameter 'ses--numlocprn (+ ses--numlocprn create-printer)))))))))) @@ -3603,7 +3590,7 @@ Use `math-format-value' as a printer for Calc objects." (setcdr (last result 2) nil) (setq result (cdr (nreverse result)))) (unless reorient-x - (setq result (mapcar 'nreverse result))) + (setq result (mapcar #'nreverse result))) (when transpose (let ((ret (mapcar (lambda (x) (list x)) (pop result))) iter) (while result @@ -3615,7 +3602,7 @@ Use `math-format-value' as a printer for Calc objects." (cl-flet ((vectorize-*1 (clean result) - (cons clean (cons (quote 'vec) (apply 'append result)))) + (cons clean (cons (quote 'vec) (apply #'append result)))) (vectorize-*2 (clean result) (cons clean (cons (quote 'vec) @@ -3623,7 +3610,7 @@ Use `math-format-value' as a printer for Calc objects." (cons clean (cons (quote 'vec) x))) result))))) (pcase vectorize - (`nil (cons clean (apply 'append result))) + (`nil (cons clean (apply #'append result))) (`*1 (vectorize-*1 clean result)) (`*2 (vectorize-*2 clean result)) (`* (funcall (if (cdr result) @@ -3641,13 +3628,13 @@ Use `math-format-value' as a printer for Calc objects." (defun ses+ (&rest args) "Compute the sum of the arguments, ignoring blanks." - (apply '+ (apply 'ses-delete-blanks args))) + (apply #'+ (apply #'ses-delete-blanks args))) (defun ses-average (list) "Computes the sum of the numbers in LIST, divided by their length. Blanks are ignored. Result is always floating-point, even if all args are integers." - (setq list (apply 'ses-delete-blanks list)) - (/ (float (apply '+ list)) (length list))) + (setq list (apply #'ses-delete-blanks list)) + (/ (float (apply #'+ list)) (length list))) (defmacro ses-select (fromrange test torange) "Select cells in FROMRANGE that are `equal' to TEST. @@ -3656,7 +3643,7 @@ The ranges are macroexpanded but not evaluated so they should be either (ses-range BEG END) or (list ...). The TEST is evaluated." (setq fromrange (cdr (macroexpand fromrange)) torange (cdr (macroexpand torange)) - test (eval test)) + test (eval test t)) (or (= (length fromrange) (length torange)) (error "ses-select: Ranges not same length")) (let (result) @@ -3676,25 +3663,19 @@ either (ses-range BEG END) or (list ...). The TEST is evaluated." ;; Standard print functions ;;---------------------------------------------------------------------------- -;; These functions use the variables 'row' and 'col' that are dynamically bound -;; by ses-print-cell. We define these variables at compile-time to make the -;; compiler happy. -(defvar row) -(defvar col) - (defun ses-center (value &optional span fill) "Print VALUE, centered within column. FILL is the fill character for centering (default = space). SPAN indicates how many additional rightward columns to include in width (default = 0)." - (let ((printer (or (ses-col-printer col) ses--default-printer)) - (width (ses-col-width col)) + (let ((printer (or (ses-col-printer ses--col) ses--default-printer)) + (width (ses-col-width ses--col)) half) (or fill (setq fill ?\s)) (or span (setq span 0)) (setq value (ses-call-printer printer value)) (dotimes (x span) - (setq width (+ width 1 (ses-col-width (+ col span (- x)))))) + (setq width (+ width 1 (ses-col-width (+ ses--col span (- x)))))) ;; Set column width. (setq width (- width (string-width value))) (if (<= width 0) @@ -3707,11 +3688,11 @@ in width (default = 0)." "Print VALUE, centered within the span that starts in the current column and continues until the next nonblank column. FILL specifies the fill character (default = space)." - (let ((end (1+ col))) + (let ((end (1+ ses--col))) (while (and (< end ses--numcols) - (memq (ses-cell-value row end) '(nil *skip*))) + (memq (ses-cell-value ses--row end) '(nil *skip*))) (setq end (1+ end))) - (ses-center value (- end col 1) fill))) + (ses-center value (- end ses--col 1) fill))) (defun ses-dashfill (value &optional span) "Print VALUE centered using dashes. diff --git a/lisp/simple.el b/lisp/simple.el index 5da662c2124..0fcd5db45d9 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -28,6 +28,8 @@ ;;; Code: +(eval-when-compile (require 'cl-lib)) + (declare-function widget-convert "wid-edit" (type &rest args)) (declare-function shell-mode "shell" ()) @@ -374,6 +376,13 @@ Other major modes are defined by comparison with this one." ;; Making and deleting lines. +(defvar self-insert-uses-region-functions nil + "Special hook to tell if `self-insert-command' will use the region. +It must be called via `run-hook-with-args-until-success' with no arguments. +Any `post-self-insert-command' which consumes the region should +register a function on this hook so that things like `delete-selection-mode' +can refrain from consuming the region.") + (defvar hard-newline (propertize "\n" 'hard t 'rear-nonsticky '(hard)) "Propertized string representing a hard newline character.") @@ -403,6 +412,7 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'." ;; Do the rest in post-self-insert-hook, because we want to do it ;; *before* other functions on that hook. (lambda () + (cl-assert (eq ?\n (char-before))) ;; Mark the newline(s) `hard'. (if use-hard-newlines (set-hard-newline-properties @@ -421,7 +431,8 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'." ;; starts a page. (or was-page-start (move-to-left-margin nil t))))) - (if (not interactive) + (unwind-protect + (if (not interactive) ;; FIXME: For non-interactive uses, many calls actually just want ;; (insert "\n"), so maybe we should do just that, so as to avoid ;; the risk of filling or running abbrevs unexpectedly. @@ -429,12 +440,14 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'." (self-insert-command (prefix-numeric-value arg))) (unwind-protect (progn - (add-hook 'post-self-insert-hook postproc) + (add-hook 'post-self-insert-hook postproc nil t) (self-insert-command (prefix-numeric-value arg))) ;; We first used let-binding to protect the hook, but that was naive ;; since add-hook affects the symbol-default value of the variable, ;; whereas the let-binding might only protect the buffer-local value. - (remove-hook 'post-self-insert-hook postproc)))) + (remove-hook 'post-self-insert-hook postproc t))) + (cl-assert (not (member postproc post-self-insert-hook))) + (cl-assert (not (member postproc (default-value 'post-self-insert-hook)))))) nil) (defun set-hard-newline-properties (from to) @@ -1216,15 +1229,21 @@ in *Help* buffer. See also the command `describe-char'." (interactive "P") (let* ((char (following-char)) (bidi-fixer - (cond ((memq char '(?\x202a ?\x202b ?\x202d ?\x202e)) - ;; If the character is one of LRE, LRO, RLE, RLO, it - ;; will start a directional embedding, which could - ;; completely disrupt the rest of the line (e.g., RLO - ;; will display the rest of the line right-to-left). - ;; So we put an invisible PDF character after these - ;; characters, to end the embedding, which eliminates - ;; any effects on the rest of the line. + ;; If the character is one of LRE, LRO, RLE, RLO, it will + ;; start a directional embedding, which could completely + ;; disrupt the rest of the line (e.g., RLO will display the + ;; rest of the line right-to-left). So we put an invisible + ;; PDF character after these characters, to end the + ;; embedding, which eliminates any effects on the rest of + ;; the line. For RLE and RLO we also append an invisible + ;; LRM, to avoid reordering the following numerical + ;; characters. For LRI/RLI/FSI we append a PDI. + (cond ((memq char '(?\x202a ?\x202d)) (propertize (string ?\x202c) 'invisible t)) + ((memq char '(?\x202b ?\x202e)) + (propertize (string ?\x202c ?\x200e) 'invisible t)) + ((memq char '(?\x2066 ?\x2067 ?\x2068)) + (propertize (string ?\x2069) 'invisible t)) ;; Strong right-to-left characters cause reordering of ;; the following numerical characters which show the ;; codepoint, so append LRM to countermand that. @@ -1387,8 +1406,11 @@ display the result of expression evaluation." (let ((minibuffer-completing-symbol t)) (minibuffer-with-setup-hook (lambda () + ;; FIXME: call emacs-lisp-mode? + (setq-local eldoc-documentation-function + #'elisp-eldoc-documentation-function) (add-hook 'completion-at-point-functions - #'lisp-completion-at-point nil t) + #'elisp-completion-at-point nil t) (run-hooks 'eval-expression-minibuffer-setup-hook)) (read-from-minibuffer prompt initial-contents read-expression-map t @@ -1517,11 +1539,17 @@ to get different commands to edit and resubmit." (defvar extended-command-history nil) +(defvar execute-extended-command--last-typed nil) (defun read-extended-command () "Read command name to invoke in `execute-extended-command'." (minibuffer-with-setup-hook (lambda () + (add-hook 'post-self-insert-hook + (lambda () + (setq execute-extended-command--last-typed + (minibuffer-contents))) + nil 'local) (set (make-local-variable 'minibuffer-default-add-function) (lambda () ;; Get a command name at point in the original buffer @@ -1549,7 +1577,17 @@ to get different commands to edit and resubmit." ;; because "M-x" is a well-known prompt to read a command ;; and it serves as a shorthand for "Extended command: ". "M-x ") - obarray 'commandp t nil 'extended-command-history))) + (lambda (string pred action) + (let ((pred + (if (memq action '(nil t)) + ;; Exclude obsolete commands from completions. + (lambda (sym) + (and (funcall pred sym) + (or (equal string (symbol-name sym)) + (not (get sym 'byte-obsolete-info))))) + pred))) + (complete-with-action action obarray string pred))) + #'commandp t nil 'extended-command-history))) (defcustom suggest-key-bindings t "Non-nil means show the equivalent key-binding when M-x command has one. @@ -1560,19 +1598,59 @@ If the value is non-nil and not a number, we wait 2 seconds." (integer :tag "time" 2) (other :tag "on"))) -(defun execute-extended-command (prefixarg &optional command-name) +(defun execute-extended-command--shorter-1 (name length) + (cond + ((zerop length) (list "")) + ((equal name "") nil) + (t + (nconc (mapcar (lambda (s) (concat (substring name 0 1) s)) + (execute-extended-command--shorter-1 + (substring name 1) (1- length))) + (when (string-match "\\`\\(-\\)?[^-]*" name) + (execute-extended-command--shorter-1 + (substring name (match-end 0)) length)))))) + +(defun execute-extended-command--shorter (name typed) + (let ((candidates '()) + (max (length typed)) + (len 1) + binding) + (while (and (not binding) + (progn + (unless candidates + (setq len (1+ len)) + (setq candidates (execute-extended-command--shorter-1 + name len))) + ;; Don't show the help message if the binding isn't + ;; significantly shorter than the M-x command the user typed. + (< len (- max 5)))) + (let ((candidate (pop candidates))) + (when (equal name + (car-safe (completion-try-completion + candidate obarray 'commandp len))) + (setq binding candidate)))) + binding)) + +(defun execute-extended-command (prefixarg &optional command-name typed) ;; Based on Fexecute_extended_command in keyboard.c of Emacs. ;; Aaron S. Hawley 2009-08-24 "Read a command name, then read the arguments and call the command. -Interactively, to pass a prefix argument to the command you are -invoking, give a prefix argument to `execute-extended-command'. -Noninteractively, the argument PREFIXARG is the prefix argument to -give to the command you invoke." - (interactive (list current-prefix-arg (read-extended-command))) +To pass a prefix argument to the command you are +invoking, give a prefix argument to `execute-extended-command'." + (declare (interactive-only command-execute)) + ;; FIXME: Remember the actual text typed by the user before completion, + ;; so that we don't later on suggest the same shortening. + (interactive + (let ((execute-extended-command--last-typed nil)) + (list current-prefix-arg + (read-extended-command) + execute-extended-command--last-typed))) ;; Emacs<24 calling-convention was with a single `prefixarg' argument. - (if (null command-name) - (setq command-name (let ((current-prefix-arg prefixarg)) ; for prompt - (read-extended-command)))) + (unless command-name + (let ((current-prefix-arg prefixarg) ; for prompt + (execute-extended-command--last-typed nil)) + (setq command-name (read-extended-command)) + (setq typed execute-extended-command--last-typed))) (let* ((function (and (stringp command-name) (intern-soft command-name))) (binding (and suggest-key-bindings (not executing-kbd-macro) @@ -1589,19 +1667,34 @@ give to the command you invoke." (let ((prefix-arg prefixarg)) (command-execute function 'record)) ;; If enabled, show which key runs this command. - (when binding - ;; But first wait, and skip the message if there is input. - (let* ((waited - ;; If this command displayed something in the echo area; - ;; wait a few seconds, then display our suggestion message. - (sit-for (cond - ((zerop (length (current-message))) 0) - ((numberp suggest-key-bindings) suggest-key-bindings) - (t 2))))) - (when (and waited (not (consp unread-command-events))) + ;; (when binding + ;; But first wait, and skip the message if there is input. + (let* ((waited + ;; If this command displayed something in the echo area; + ;; wait a few seconds, then display our suggestion message. + ;; FIXME: Wait *after* running post-command-hook! + ;; FIXME: Don't wait if execute-extended-command--shorter won't + ;; find a better answer anyway! + (sit-for (cond + ((zerop (length (current-message))) 0) + ((numberp suggest-key-bindings) suggest-key-bindings) + (t 2))))) + (when (and waited (not (consp unread-command-events))) + (unless (or binding executing-kbd-macro (not (symbolp function)) + (<= (length (symbol-name function)) 2)) + ;; There's no binding for CMD. Let's try and find the shortest + ;; string to use in M-x. + ;; FIXME: Can be slow. Cache it maybe? + (while-no-input + (setq binding (execute-extended-command--shorter + (symbol-name function) typed)))) + (when binding (with-temp-message (format "You can run the command `%s' with %s" - function (key-description binding)) + function + (if (stringp binding) + (concat "M-x " binding " RET") + (key-description binding))) (sit-for (if (numberp suggest-key-bindings) suggest-key-bindings 2)))))))) @@ -1891,6 +1984,38 @@ With argument N, it uses the Nth previous element." (or (zerop n) (goto-history-element (+ minibuffer-history-position n)))) +(defun next-line-or-history-element (&optional arg) + "Move cursor vertically down ARG lines, or to the next history element. +When point moves over the bottom line of multi-line minibuffer, puts ARGth +next element of the minibuffer history in the minibuffer." + (interactive "^p") + (or arg (setq arg 1)) + (let ((old-point (point))) + (condition-case nil + (with-no-warnings + (next-line arg)) + (end-of-buffer + ;; Restore old position since `line-move-visual' moves point to + ;; the end of the line when it fails to go to the next line. + (goto-char old-point) + (next-history-element arg))))) + +(defun previous-line-or-history-element (&optional arg) + "Move cursor vertically up ARG lines, or to the previous history element. +When point moves over the top line of multi-line minibuffer, puts ARGth +previous element of the minibuffer history in the minibuffer." + (interactive "^p") + (or arg (setq arg 1)) + (let ((old-point (point))) + (condition-case nil + (with-no-warnings + (previous-line arg)) + (beginning-of-buffer + ;; Restore old position since `line-move-visual' moves point to + ;; the beginning of the line when it fails to go to the previous line. + (goto-char old-point) + (previous-history-element arg))))) + (defun next-complete-history-element (n) "Get next history element which completes the minibuffer before the point. The contents of the minibuffer after the point are deleted, and replaced @@ -2505,6 +2630,7 @@ marker adjustment's corresponding (TEXT . POS) element." "Test whether UNDO-ELT crosses one edge of that region START ... END. This assumes we have already decided that UNDO-ELT is not *inside* the region START...END." + (declare (obsolete nil "25.1")) (cond ((atom undo-elt) nil) ((null (car undo-elt)) ;; (nil PROPERTY VALUE BEG . END) @@ -2515,7 +2641,6 @@ is not *inside* the region START...END." ;; (BEGIN . END) (and (< (car undo-elt) end) (> (cdr undo-elt) start))))) -(make-obsolete 'undo-elt-crosses-region nil "24.5") (defun undo-adjust-elt (elt deltas) "Return adjustment of undo element ELT by the undo DELTAS @@ -2671,7 +2796,7 @@ which is defined in the `warnings' library.\n") t)) (defcustom password-word-equivalents - '("password" "passphrase" "pass phrase" + '("password" "passcode" "passphrase" "pass phrase" ; These are sorted according to the GNU en_US locale. "암호" ; ko "パスワード" ; ja @@ -2986,12 +3111,14 @@ the use of a shell (with its need to quote arguments)." ;; If will create a new buffer, query first. (if (yes-or-no-p "A command is running in the default buffer. Use a new buffer? ") (setq buffer (generate-new-buffer - (or output-buffer "*Async Shell Command*"))) + (or (and (bufferp output-buffer) (buffer-name output-buffer)) + output-buffer "*Async Shell Command*"))) (error "Shell command in progress"))) ((eq async-shell-command-buffer 'new-buffer) ;; It will create a new buffer. (setq buffer (generate-new-buffer - (or output-buffer "*Async Shell Command*")))) + (or (and (bufferp output-buffer) (buffer-name output-buffer)) + output-buffer "*Async Shell Command*")))) ((eq async-shell-command-buffer 'confirm-rename-buffer) ;; If will rename the buffer, query first. (if (yes-or-no-p "A command is running in the default buffer. Rename it? ") @@ -3619,7 +3746,7 @@ No filtering is done unless a hook says to." ;;;; Window system cut and paste hooks. -(defvar interprogram-cut-function nil +(defvar interprogram-cut-function #'gui-select-text "Function to call to make a killed region available to other programs. Most window systems provide a facility for cutting and pasting text between different programs, such as the clipboard on X and @@ -3630,7 +3757,7 @@ put in the kill ring, to make the new kill available to other programs. The function takes one argument, TEXT, which is a string containing the text which should be made available.") -(defvar interprogram-paste-function nil +(defvar interprogram-paste-function #'gui-selection-value "Function to call to get text cut from other programs. Most window systems provide a facility for cutting and pasting text between different programs, such as the clipboard on X and @@ -3748,7 +3875,7 @@ argument should still be a \"useful\" string for such uses." "Whether appending to kill ring also makes \\[undo] restore both pieces of text simultaneously." :type 'boolean :group 'killing - :version "24.5") + :version "25.1") (defun kill-append (string before-p) "Append STRING to the end of the latest kill in the kill ring. @@ -3968,7 +4095,7 @@ of this sample text; it defaults to 40." (goto-char point) ;; If user quit, deactivate the mark ;; as C-g would as a command. - (and quit-flag mark-active + (and quit-flag (region-active-p) (deactivate-mark))) (let ((len (min (abs (- mark point)) (or message-len 40)))) @@ -3999,6 +4126,144 @@ The argument is used for internal purposes; do not supply one." (setq this-command 'kill-region) (message "If the next command is a kill, it will append")) (setq last-command 'kill-region))) + +(defvar bidi-directional-controls-chars "\x202a-\x202e\x2066-\x2069" + "Character set that matches bidirectional formatting control characters.") + +(defvar bidi-directional-non-controls-chars "^\x202a-\x202e\x2066-\x2069" + "Character set that matches any character except bidirectional controls.") + +(defun squeeze-bidi-context-1 (from to category replacement) + "A subroutine of `squeeze-bidi-context'. +FROM and TO should be markers, CATEGORY and REPLACEMENT should be strings." + (let ((pt (copy-marker from)) + (limit (copy-marker to)) + (old-pt 0) + lim1) + (setq lim1 limit) + (goto-char pt) + (while (< pt limit) + (if (> pt old-pt) + (move-marker lim1 + (save-excursion + ;; L and R categories include embedding and + ;; override controls, but we don't want to + ;; replace them, because that might change + ;; the visual order. Likewise with PDF and + ;; isolate controls. + (+ pt (skip-chars-forward + bidi-directional-non-controls-chars + limit))))) + ;; Replace any run of non-RTL characters by a single LRM. + (if (null (re-search-forward category lim1 t)) + ;; No more characters of CATEGORY, we are done. + (setq pt limit) + (replace-match replacement nil t) + (move-marker pt (point))) + (setq old-pt pt) + ;; Skip directional controls, if any. + (move-marker + pt (+ pt (skip-chars-forward bidi-directional-controls-chars limit)))))) + +(defun squeeze-bidi-context (from to) + "Replace characters between FROM and TO while keeping bidi context. + +This function replaces the region of text with as few characters +as possible, while preserving the effect that region will have on +bidirectional display before and after the region." + (let ((start (set-marker (make-marker) + (if (> from 0) from (+ (point-max) from)))) + (end (set-marker (make-marker) to)) + ;; This is for when they copy text with read-only text + ;; properties. + (inhibit-read-only t)) + (if (null (marker-position end)) + (setq end (point-max-marker))) + ;; Replace each run of non-RTL characters with a single LRM. + (squeeze-bidi-context-1 start end "\\CR+" "\x200e") + ;; Replace each run of non-LTR characters with a single RLM. Note + ;; that the \cR category includes both the Arabic Letter (AL) and + ;; R characters; here we ignore the distinction between them, + ;; because that distinction only affects Arabic Number (AN) + ;; characters, which are weak and don't affect the reordering. + (squeeze-bidi-context-1 start end "\\CL+" "\x200f"))) + +(defun line-substring-with-bidi-context (start end &optional no-properties) + "Return buffer text between START and END with its bidi context. + +START and END are assumed to belong to the same physical line +of buffer text. This function prepends and appends to the text +between START and END bidi control characters that preserve the +visual order of that text when it is inserted at some other place." + (if (or (< start (point-min)) + (> end (point-max))) + (signal 'args-out-of-range (list (current-buffer) start end))) + (let ((buf (current-buffer)) + substr para-dir from to) + (save-excursion + (goto-char start) + (setq para-dir (current-bidi-paragraph-direction)) + (setq from (line-beginning-position) + to (line-end-position)) + (goto-char from) + ;; If we don't have any mixed directional characters in the + ;; entire line, we can just copy the substring without adding + ;; any context. + (if (or (looking-at-p "\\CR*$") + (looking-at-p "\\CL*$")) + (setq substr (if no-properties + (buffer-substring-no-properties start end) + (buffer-substring start end))) + (setq substr + (with-temp-buffer + (if no-properties + (insert-buffer-substring-no-properties buf from to) + (insert-buffer-substring buf from to)) + (squeeze-bidi-context 1 (1+ (- start from))) + (squeeze-bidi-context (- end to) nil) + (buffer-substring 1 (point-max))))) + + ;; Wrap the string in LRI/RLI..PDI pair to achieve 2 effects: + ;; (1) force the string to have the same base embedding + ;; direction as the paragraph direction at the source, no matter + ;; what is the paragraph direction at destination; and (2) avoid + ;; affecting the visual order of the surrounding text at + ;; destination if there are characters of different + ;; directionality there. + (concat (if (eq para-dir 'left-to-right) "\x2066" "\x2067") + substr "\x2069")))) + +(defun buffer-substring-with-bidi-context (start end &optional no-properties) + "Return portion of current buffer between START and END with bidi context. + +This function works similar to `buffer-substring', but it prepends and +appends to the text bidi directional control characters necessary to +preserve the visual appearance of the text if it is inserted at another +place. This is useful when the buffer substring includes bidirectional +text and control characters that cause non-trivial reordering on display. +If copied verbatim, such text can have a very different visual appearance, +and can also change the visual appearance of the surrounding text at the +destination of the copy. + +Optional argument NO-PROPERTIES, if non-nil, means copy the text without +the text properties." + (let (line-end substr) + (if (or (< start (point-min)) + (> end (point-max))) + (signal 'args-out-of-range (list (current-buffer) start end))) + (save-excursion + (goto-char start) + (setq line-end (min end (line-end-position))) + (while (< start end) + (setq substr + (concat substr + (if substr "\n" "") + (line-substring-with-bidi-context start line-end + no-properties))) + (forward-line 1) + (setq start (point)) + (setq line-end (min end (line-end-position)))) + substr))) ;; Yanking. @@ -4487,10 +4752,6 @@ a mistake; see the documentation of `set-mark'." (signal 'mark-inactive nil))) ;; Behind display-selections-p. -(declare-function x-selection-owner-p "xselect.c" - (&optional selection terminal)) -(declare-function x-selection-exists-p "xselect.c" - (&optional selection terminal)) (defun deactivate-mark (&optional force) "Deactivate the mark. @@ -4505,7 +4766,7 @@ If Transient Mark mode was temporarily enabled, reset the value of the variable `transient-mark-mode'; if this causes Transient Mark mode to be disabled, don't change `mark-active' to nil or run `deactivate-mark-hook'." - (when (or transient-mark-mode force) + (when (or (region-active-p) force) (when (and (if (eq select-active-regions 'only) (eq (car-safe transient-mark-mode) 'only) select-active-regions) @@ -4515,15 +4776,15 @@ run `deactivate-mark-hook'." ;; the region prior to the last command modifying the buffer. ;; Set the selection to that, or to the current region. (cond (saved-region-selection - (x-set-selection 'PRIMARY saved-region-selection) + (gui-set-selection 'PRIMARY saved-region-selection) (setq saved-region-selection nil)) ;; If another program has acquired the selection, region ;; deactivation should not clobber it (Bug#11772). ((and (/= (region-beginning) (region-end)) - (or (x-selection-owner-p 'PRIMARY) - (null (x-selection-exists-p 'PRIMARY)))) - (x-set-selection 'PRIMARY - (funcall region-extract-function nil))))) + (or (gui-call gui-selection-owner-p 'PRIMARY) + (null (gui-call gui-selection-exists-p 'PRIMARY)))) + (gui-set-selection 'PRIMARY + (funcall region-extract-function nil))))) (when mark-active (force-mode-line-update)) ;Refresh toolbar (bug#16382). (cond ((eq (car-safe transient-mark-mode) 'only) @@ -5140,7 +5401,7 @@ or the frame." 0) 0))) (if (floatp lsp) - (setq lsp (* dfh lsp))) + (setq lsp (truncate (* (frame-char-height) lsp)))) (+ dfh lsp))) (defun window-screen-lines () @@ -5152,10 +5413,9 @@ in the window, not in units of the frame's default font, and also accounts for `line-spacing', if any, defined for the window's buffer or frame. The value is a floating-point number." - (let ((canonical (window-text-height)) - (fch (frame-char-height)) + (let ((edges (window-inside-pixel-edges)) (dlh (default-line-height))) - (/ (* (float canonical) fch) dlh))) + (/ (float (- (nth 3 edges) (nth 1 edges))) dlh))) ;; Returns non-nil if partial move was done. (defun line-move-partial (arg noerror to-end) @@ -5281,7 +5541,7 @@ TRY-VSCROLL controls whether to vscroll tall lines: if either `auto-window-vscroll' or TRY-VSCROLL is nil, this function will not vscroll." (if noninteractive - (forward-line arg) + (line-move-1 arg noerror to-end) (unless (and auto-window-vscroll try-vscroll ;; Only vscroll for single line moves (= (abs arg) 1) @@ -5352,7 +5612,8 @@ If NOERROR, don't signal an error if we can't move that many lines." ((car (posn-x-y posn)) (setq temporary-goal-column (cons (/ (float (car (posn-x-y posn))) - (frame-char-width)) hscroll)))))) + (frame-char-width)) + hscroll)))))) (if target-hscroll (set-window-hscroll (selected-window) target-hscroll)) ;; vertical-motion can move more than it was asked to if it moves @@ -7571,7 +7832,9 @@ DISPLAY-FLAG non-nil means show the new buffer with `pop-to-buffer'. This is always done when called interactively. Optional third arg NORECORD non-nil means do not put this buffer at the -front of the list of recently selected ones." +front of the list of recently selected ones. + +Returns the newly created indirect buffer." (interactive (progn (if (get major-mode 'no-clone-indirect) diff --git a/lisp/speedbar.el b/lisp/speedbar.el index 55e86e7fef3..11d2d435383 100644 --- a/lisp/speedbar.el +++ b/lisp/speedbar.el @@ -2111,9 +2111,10 @@ cell of the form ( 'DIRLIST . 'FILELIST )." ;; in order to make it look nice. ;; ;; A generic list is of the form: -;; ( ("name" . marker-or-number) <-- one tag at this level -;; ("name" ("name" . mon) ("name" . mon) ) <-- one group of tags -;; ("name" mon ("name" . mon) ) <-- group w/ a position and tags +;; ( ("name" . marker-or-number) <-- one tag at this level +;; ("name" marker-or-number goto-fun . args) <-- one tag at this level +;; ("name" ("name" . mon) ("name" . mon) ) <-- one group of tags +;; ("name" mon ("name" . mon) ) <-- group w/ a position and tags (defun speedbar-generic-list-group-p (sublst) "Non-nil if SUBLST is a group. Groups may optionally contain a position." @@ -2144,6 +2145,8 @@ Groups may optionally contain a position." (and (stringp (car-safe sublst)) (or (and (number-or-marker-p (cdr-safe sublst)) (not (cdr-safe (cdr-safe sublst)))) + (ignore-errors (and (number-or-marker-p (nth 1 sublst)) + (functionp (nth 2 sublst)))) ;; For semantic/bovine items, this is needed (symbolp (car-safe (cdr-safe sublst)))) )) diff --git a/lisp/startup.el b/lisp/startup.el index 144d732272f..c04b16c43c4 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -421,21 +421,6 @@ Warning Warning!!! Pure space overflow !!!Warning Warning :type 'directory :initialize 'custom-initialize-delay) -(defvar package--builtin-versions - ;; Mostly populated by loaddefs.el via autoload-builtin-package-versions. - (purecopy `((emacs . ,(version-to-list emacs-version)))) - "Alist giving the version of each versioned builtin package. -I.e. each element of the list is of the form (NAME . VERSION) where -NAME is the package name as a symbol, and VERSION is its version -as a list.") - -(defun package--description-file (dir) - (concat (let ((subdir (file-name-nondirectory - (directory-file-name dir)))) - (if (string-match "\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)" subdir) - (match-string 1 subdir) subdir)) - "-pkg.el")) - (defun normal-top-level-add-subdirs-to-load-path () "Add all subdirectories of `default-directory' to `load-path'. More precisely, this uses only the subdirectories whose names @@ -497,7 +482,7 @@ It sets `command-line-processed', processes the command-line, reads the initialization files, etc. It is the default value of the variable `top-level'." (if command-line-processed - (message "Back to top level.") + (message internal--top-level-message) (setq command-line-processed t) ;; Look in each dir in load-path for a subdirs.el file. If we @@ -719,17 +704,17 @@ It is the default value of the variable `top-level'." (defconst tool-bar-images-pixel-height 24 "Height in pixels of images in the tool-bar.") -(defvar handle-args-function-alist '((nil . tty-handle-args)) - "Functions for processing window-system dependent command-line arguments. +(gui-method-declare handle-args-function #'tty-handle-args + "Method for processing window-system dependent command-line arguments. Window system startup files should add their own function to this -alist, which should parse the command line arguments. Those +method, which should parse the command line arguments. Those pertaining to the window system should be processed and removed from the returned command line.") -(defvar window-system-initialization-alist '((nil . ignore)) - "Alist of window-system initialization functions. -Window-system startup files should add their own initialization -function to this list. The function should take no arguments, +(gui-method-declare window-system-initialization #'ignore + "Method for window-system initialization. +Window-system startup files should add their own implementation +to this method. The function should take no arguments, and initialize the window system environment to prepare for opening the first frame (e.g. open a connection to an X server).") @@ -965,13 +950,11 @@ please check its value") ;; Process window-system specific command line parameters. (setq command-line-args (funcall - (or (cdr (assq initial-window-system handle-args-function-alist)) - (error "Unsupported window system `%s'" initial-window-system)) + (gui-method handle-args-function initial-window-system) command-line-args)) ;; Initialize the window system. (Open connection, etc.) (funcall - (or (cdr (assq initial-window-system window-system-initialization-alist)) - (error "Unsupported window system `%s'" initial-window-system))) + (gui-method window-system-initialization initial-window-system)) (put initial-window-system 'window-system-initialized t)) ;; If there was an error, print the error message and exit. (error @@ -1303,7 +1286,7 @@ the `--debug-init' option to view a complete error backtrace." (let (warned) (dolist (dir load-path) (and (not warned) - (string-match-p "/[._]emacs\\.d/?\\'" dir) + (stringp dir) (string-equal (file-name-as-directory (expand-file-name dir)) (expand-file-name user-emacs-directory)) (setq warned t) @@ -1311,9 +1294,10 @@ the `--debug-init' option to view a complete error backtrace." (format "Your `load-path' seems to contain your `.emacs.d' directory: %s\n\ This is likely to cause problems...\n\ -Consider using a subdirectory instead, e.g.: %s" dir -(expand-file-name "lisp" user-emacs-directory)) - :warning)))) +Consider using a subdirectory instead, e.g.: %s" + dir (expand-file-name + "lisp" user-emacs-directory)) + :warning)))) ;; If -batch, terminate after processing the command options. (if noninteractive (kill-emacs t)) @@ -1508,7 +1492,10 @@ Each element in the list should be a list of strings or pairs (title (with-temp-buffer (insert-file-contents (expand-file-name tut tutorial-directory) - nil 0 256) + ;; Read the entire file, to make sure any + ;; coding cookies and other local variables + ;; get acted upon. + nil) (search-forward ".") (buffer-substring (point-min) (1- (point)))))) ;; If there is a specific tutorial for the current language @@ -1797,7 +1784,7 @@ we put it on this frame." (let (chosen-frame) ;; MS-Windows needs this to have a chance to make the initial ;; frame visible. - (if (eq system-type 'windows-nt) + (if (eq (window-system) 'w32) (sit-for 0 t)) (dolist (frame (append (frame-list) (list (selected-frame)))) (if (and (frame-visible-p frame) diff --git a/lisp/subr.el b/lisp/subr.el index 9accb9d36c5..6ce02b79a0a 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -169,7 +169,8 @@ change the list." ;; So we can use `pop' in the bootstrap before `gv' can be used. (list 'prog1 place (list 'setq place (list 'cdr place))) (gv-letplace (getter setter) place - `(prog1 ,getter ,(funcall setter `(cdr ,getter))))))) + (macroexp-let2 macroexp-copyable-p x getter + `(prog1 ,x ,(funcall setter `(cdr ,x)))))))) (defmacro when (cond &rest body) "If COND yields non-nil, do BODY, else return nil. @@ -555,6 +556,15 @@ Elements of ALIST that are not conses are ignored." (setq tail tail-cdr)))) alist) +(defun alist-get (key alist &optional default remove) + "Get the value associated to KEY in ALIST. +DEFAULT is the value to return if KEY is not found in ALIST. +REMOVE, if non-nil, means that when setting this element, we should +remove the entry if the new value is `eql' to DEFAULT." + (ignore remove) ;;Silence byte-compiler. + (let ((x (assq key alist))) + (if x (cdr x) default))) + (defun remove (elt seq) "Return a copy of SEQ with all occurrences of ELT removed. SEQ must be a list, vector, or string. The comparison is done with `equal'." @@ -1156,18 +1166,20 @@ and `event-end' functions." ((null spacing) (setq spacing 0))) (cons (/ (car pair) (frame-char-width frame)) - (- (/ (cdr pair) (+ (frame-char-height frame) spacing)) - (if (null (with-current-buffer (window-buffer window) - header-line-format)) - 0 1)))))))) + (/ (cdr pair) (+ (frame-char-height frame) spacing)))))))) (defun posn-actual-col-row (position) - "Return the actual column and row in POSITION, measured in characters. -These are the actual row number in the window and character number in that row. + "Return the window row number in POSITION and character number in that row. + Return nil if POSITION does not contain the actual position; in that case -`posn-col-row' can be used to get approximate values. +\`posn-col-row' can be used to get approximate values. POSITION should be a list of the form returned by the `event-start' -and `event-end' functions." +and `event-end' functions. + +This function does not account for the width on display, like the +number of visual columns taken by a TAB or image. If you need +the coordinates of POSITION in character units, you should use +\`posn-col-row', not this function." (nth 6 position)) (defsubst posn-timestamp (position) @@ -1997,7 +2009,14 @@ some sort of escape sequence, the ambiguity is resolved via `read-key-delay'." (or (cdr (assq 'tool-bar global-map)) (lookup-key global-map [tool-bar]))) map)) - (aref (catch 'read-key (read-key-sequence-vector prompt nil t)) 0)) + (let* ((keys + (catch 'read-key (read-key-sequence-vector prompt nil t))) + (key (aref keys 0))) + (if (and (> (length keys) 1) + (memq key '(mode-line header-line + left-fringe right-fringe))) + (aref keys 1) + key))) (cancel-timer timer) (use-global-map old-global-map)))) @@ -2880,23 +2899,21 @@ COMMAND is the shell command to run. An old calling convention accepted any number of arguments after COMMAND, which were just concatenated to COMMAND. This is still supported but strongly discouraged." - ;; We used to use `exec' to replace the shell with the command, - ;; but that failed to handle (...) and semicolon, etc. + (declare (advertised-calling-convention (name buffer command) "23.1")) + ;; We used to use `exec' to replace the shell with the command, + ;; but that failed to handle (...) and semicolon, etc. (start-process name buffer shell-file-name shell-command-switch (mapconcat 'identity args " "))) -(set-advertised-calling-convention 'start-process-shell-command - '(name buffer command) "23.1") (defun start-file-process-shell-command (name buffer &rest args) "Start a program in a subprocess. Return the process object for it. Similar to `start-process-shell-command', but calls `start-file-process'." + (declare (advertised-calling-convention (name buffer command) "23.1")) (start-file-process name buffer (if (file-remote-p default-directory) "/bin/sh" shell-file-name) (if (file-remote-p default-directory) "-c" shell-command-switch) (mapconcat 'identity args " "))) -(set-advertised-calling-convention 'start-file-process-shell-command - '(name buffer command) "23.1") (defun call-process-shell-command (command &optional infile buffer display &rest args) @@ -2912,13 +2929,18 @@ STDERR-FILE may be nil (discard standard error output), t (mix it with ordinary output), or a file name string. Fourth arg DISPLAY non-nil means redisplay buffer as output is inserted. -Remaining arguments are strings passed as additional arguments for COMMAND. Wildcards and redirection are handled as usual in the shell. If BUFFER is 0, `call-process-shell-command' returns immediately with value nil. Otherwise it waits for COMMAND to terminate and returns a numeric exit status or a signal description string. -If you quit, the process is killed with SIGINT, or SIGKILL if you quit again." +If you quit, the process is killed with SIGINT, or SIGKILL if you quit again. + +An old calling convention accepted any number of arguments after DISPLAY, +which were just concatenated to COMMAND. This is still supported but strongly +discouraged." + (declare (advertised-calling-convention + (command &optional infile buffer display) "24.5")) ;; We used to use `exec' to replace the shell with the command, ;; but that failed to handle (...) and semicolon, etc. (call-process shell-file-name @@ -2930,6 +2952,8 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again." &rest args) "Process files synchronously in a separate process. Similar to `call-process-shell-command', but calls `process-file'." + (declare (advertised-calling-convention + (command &optional infile buffer display) "24.5")) (process-file (if (file-remote-p default-directory) "/bin/sh" shell-file-name) infile buffer display @@ -2938,6 +2962,14 @@ Similar to `call-process-shell-command', but calls `process-file'." ;;;; Lisp macros to do various things temporarily. +(defmacro track-mouse (&rest body) + "Evaluate BODY with mouse movement events enabled. +Within a `track-mouse' form, mouse motion generates input events that + you can read with `read-event'. +Normally, mouse motion is ignored." + (declare (debug t) (indent 0)) + `(internal--track-mouse (lambda () ,@body))) + (defmacro with-current-buffer (buffer-or-name &rest body) "Execute the forms in BODY with BUFFER-OR-NAME temporarily current. BUFFER-OR-NAME must be a buffer or the name of an existing buffer. @@ -3102,6 +3134,11 @@ buffer temporarily current, and the window that was used to display it temporarily selected. But it doesn't run `temp-buffer-show-hook' if it uses `temp-buffer-show-function'. +By default, the setup hook puts the buffer into Help mode before running BODY. +If BODY does not change the major mode, the show hook makes the buffer +read-only, and scans it for function and variable names to make them into +clickable cross-references. + See the related form `with-temp-buffer-window'." (declare (debug t)) (let ((old-dir (make-symbol "old-dir")) @@ -3850,7 +3887,9 @@ This function is called directly from the C code." ;; discard the file name regexp (mapc #'funcall (cdr a-l-element)))) ;; Complain when the user uses obsolete files. - (when (string-match-p "/obsolete/[^/]*\\'" abs-file) + (when (save-match-data + (and (string-match "/obsolete/\\([^/]*\\)\\'" abs-file) + (not (equal "loaddefs.el" (match-string 1 abs-file))))) ;; Maybe we should just use display-warning? This seems yucky... (let* ((file (file-name-nondirectory abs-file)) (msg (format "Package %s is obsolete!" @@ -4317,20 +4356,27 @@ use `called-interactively-p'." Normally, MAP is used only once, to look up the very next key. However, if the optional argument KEEP-PRED is t, MAP stays active if a key from MAP is used. KEEP-PRED can also be a -function of no arguments: if it returns non-nil, then MAP stays -active. +function of no arguments: it is called from `pre-command-hook' and +if it returns non-nil, then MAP stays active. Optional arg ON-EXIT, if non-nil, specifies a function that is called, with no arguments, after MAP is deactivated. This uses `overriding-terminal-local-map' which takes precedence over all other keymaps. As usual, if no match for a key is found in MAP, the normal key -lookup sequence then continues." - (let ((clearfun (make-symbol "clear-transient-map"))) +lookup sequence then continues. + +This returns an \"exit function\", which can be called with no argument +to deactivate this transient map, regardless of KEEP-PRED." + (let* ((clearfun (make-symbol "clear-transient-map")) + (exitfun + (lambda () + (internal-pop-keymap map 'overriding-terminal-local-map) + (remove-hook 'pre-command-hook clearfun) + (when on-exit (funcall on-exit))))) ;; Don't use letrec, because equal (in add/remove-hook) would get trapped ;; in a cycle. (fset clearfun - (suspicious-object (lambda () (with-demoted-errors "set-transient-map PCH: %S" (unless (cond @@ -4351,15 +4397,10 @@ lookup sequence then continues." (eq this-command (lookup-key map (this-command-keys-vector)))) (t (funcall keep-pred))) - (internal-pop-keymap map 'overriding-terminal-local-map) - (remove-hook 'pre-command-hook clearfun) - (when on-exit (funcall on-exit)) - ;; Comment out the fset if you want to debug the GC bug. -;;; (fset clearfun nil) -;;; (set clearfun nil) - ))))) + (funcall exitfun))))) (add-hook 'pre-command-hook clearfun) - (internal-push-keymap map 'overriding-terminal-local-map))) + (internal-push-keymap map 'overriding-terminal-local-map) + exitfun)) ;;;; Progress reporters. @@ -4467,11 +4508,10 @@ NEW-MESSAGE, if non-nil, sets a new message for the reporter." (min-value (aref parameters 1)) (max-value (aref parameters 2)) (text (aref parameters 3)) - (current-time (float-time)) (enough-time-passed ;; See if enough time has passed since the last update. (or (not update-time) - (when (>= current-time update-time) + (when (>= (float-time) update-time) ;; Calculate time for the next update (aset parameters 0 (+ update-time (aref parameters 5))))))) (cond ((and min-value max-value) @@ -4771,6 +4811,21 @@ which is higher than \"1alpha\", which is higher than \"1snapshot\". Also, \"-GIT\", \"-CVS\" and \"-NNN\" are treated as snapshot versions." (version-list-= (version-to-list v1) (version-to-list v2))) +(defvar package--builtin-versions + ;; Mostly populated by loaddefs.el via autoload-builtin-package-versions. + (purecopy `((emacs . ,(version-to-list emacs-version)))) + "Alist giving the version of each versioned builtin package. +I.e. each element of the list is of the form (NAME . VERSION) where +NAME is the package name as a symbol, and VERSION is its version +as a list.") + +(defun package--description-file (dir) + (concat (let ((subdir (file-name-nondirectory + (directory-file-name dir)))) + (if (string-match "\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)" subdir) + (match-string 1 subdir) subdir)) + "-pkg.el")) + ;;; Misc. (defconst menu-bar-separator '("--") diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index 66118d3e288..129314cbcee 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el @@ -800,8 +800,6 @@ tar-file's buffer." tarname ")")) (buffer (generate-new-buffer bufname))) - (with-current-buffer buffer - (setq buffer-undo-list t)) (with-current-buffer tar-data-buffer (let (coding) (narrow-to-region start end) @@ -829,7 +827,11 @@ tar-file's buffer." (with-current-buffer buffer (set-buffer-multibyte nil))) (widen) - (decode-coding-region start end coding buffer))) + (with-current-buffer buffer + (setq buffer-undo-list t)) + (decode-coding-region start end coding buffer) + (with-current-buffer buffer + (setq buffer-undo-list nil)))) buffer)) (defun tar-extract (&optional other-window-p) @@ -869,7 +871,6 @@ tar-file's buffer." (with-current-buffer tar-buffer default-directory)) (set-buffer-modified-p nil) - (setq buffer-undo-list t) (normal-mode) ; pick a mode. (set (make-local-variable 'tar-superior-buffer) tar-buffer) (set (make-local-variable 'tar-superior-descriptor) descriptor) diff --git a/lisp/tempo.el b/lisp/tempo.el index 9b6cd75b313..15be01dcdf9 100644 --- a/lisp/tempo.el +++ b/lisp/tempo.el @@ -611,11 +611,7 @@ function or string that is used by `\\[tempo-complete-tag]' to find a string to match the tag against. It has the same definition as the variable `tempo-match-finder'. In this version, supplying a COMPLETION-FUNCTION just sets `tempo-match-finder' locally." - (let ((old (assq tag-list tempo-local-tags))) - (if old - (setcdr old completion-function) - (setq tempo-local-tags (cons (cons tag-list completion-function) - tempo-local-tags)))) + (setf (alist-get tag-list tempo-local-tags) completion-function) (if completion-function (setq tempo-match-finder completion-function)) (tempo-invalidate-collection)) diff --git a/lisp/term.el b/lisp/term.el index 825a202c046..282dfe2ea80 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -972,6 +972,9 @@ is buffer-local." (if (and (not (featurep 'xemacs)) (display-graphic-p) overflow-newline-into-fringe + ;; Subtract 1 from the width when any fringe has zero width, + ;; not just the right fringe. Bug#18601. + (/= (frame-parameter nil 'left-fringe) 0) (/= (frame-parameter nil 'right-fringe) 0)) (window-body-width) (1- (window-body-width)))) @@ -1249,16 +1252,7 @@ without any interpretation." (run-hooks 'mouse-leave-buffer-hook) (setq this-command 'yank) (mouse-set-point click) - (term-send-raw-string - ;; From `mouse-yank-primary': - (or (if (fboundp 'x-get-selection-value) - (if (eq system-type 'windows-nt) - (or (x-get-selection 'PRIMARY) - (x-get-selection-value)) - (or (x-get-selection-value) - (x-get-selection 'PRIMARY))) - (x-get-selection 'PRIMARY)) - (error "No selection is available"))))) + (term-send-raw-string (gui-get-primary-selection)))) (defun term-paste () "Insert the last stretch of killed text at point." diff --git a/lisp/term/.gitignore b/lisp/term/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/term/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/term/common-win.el b/lisp/term/common-win.el index ba59c75c4ec..d026ee8eabe 100644 --- a/lisp/term/common-win.el +++ b/lisp/term/common-win.el @@ -24,67 +24,6 @@ ;;; Code: -(defcustom x-select-enable-clipboard t - "Non-nil means cutting and pasting uses the clipboard. -This is in addition to, but in preference to, the primary selection. - -Note that MS-Windows does not support selection types other than the -clipboard. (The primary selection that is set by Emacs is not -accessible to other programs on MS-Windows.) - -This variable is not used by the Nextstep port." - :type 'boolean - :group 'killing - ;; The GNU/Linux version changed in 24.1, the MS-Windows version did not. - :version "24.1") - -(defvar x-last-selected-text) ; w32-fns.el -(declare-function w32-set-clipboard-data "w32select.c" - (string &optional ignored)) -(defvar ns-last-selected-text) ; ns-win.el -(declare-function ns-set-pasteboard "ns-win" (string)) - -(defvar x-select-enable-primary) ; x-win.el -(defvar x-last-selected-text-primary) -(defvar x-last-selected-text-clipboard) -(defvar saved-region-selection) ; simple.el - -(defun x-select-text (text) - "Select TEXT, a string, according to the window system. - -On X, if `x-select-enable-clipboard' is non-nil, copy TEXT to the -clipboard. If `x-select-enable-primary' is non-nil, put TEXT in -the primary selection. - -On MS-Windows, make TEXT the current selection. If -`x-select-enable-clipboard' is non-nil, copy the text to the -clipboard as well. - -On Nextstep, put TEXT in the pasteboard (`x-select-enable-clipboard' -is not used)." - (cond ((eq (framep (selected-frame)) 'w32) - (if x-select-enable-clipboard - (w32-set-clipboard-data text)) - (setq x-last-selected-text text)) - ((featurep 'ns) - ;; Don't send the pasteboard too much text. - ;; It becomes slow, and if really big it causes errors. - (ns-set-pasteboard text) - (setq ns-last-selected-text text)) - (t - ;; With multi-tty, this function may be called from a tty frame. - (when (eq (framep (selected-frame)) 'x) - (when x-select-enable-primary - (x-set-selection 'PRIMARY text) - (setq x-last-selected-text-primary text)) - (when x-select-enable-clipboard - ;; When cutting, the selection is cleared and PRIMARY set to - ;; the empty string. Prevent that, PRIMARY should not be reset - ;; by cut (Bug#16382). - (setq saved-region-selection text) - (x-set-selection 'CLIPBOARD text) - (setq x-last-selected-text-clipboard text)))))) - ;;;; Function keys (defvar x-alternatives-map @@ -117,9 +56,7 @@ is not used)." (set-keymap-parent map (keymap-parent local-function-key-map)) (set-keymap-parent local-function-key-map map)) (when (featurep 'ns) - (setq interprogram-cut-function 'x-select-text - interprogram-paste-function 'x-selection-value - system-key-alist + (setq system-key-alist (list ;; These are special "keys" used to pass events from C to lisp. (cons (logior (lsh 0 16) 1) 'ns-power-off) diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index 47d953aebfb..2c8dc85c017 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@ -718,52 +718,18 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") ;;;; Pasteboard support. (declare-function ns-get-selection-internal "nsselect.m" (buffer)) -(declare-function ns-store-selection-internal "nsselect.m" (buffer string)) (define-obsolete-function-alias 'ns-get-cut-buffer-internal 'ns-get-selection-internal "24.1") (define-obsolete-function-alias 'ns-store-cut-buffer-internal - 'ns-store-selection-internal "24.1") + 'gui-set-selection "24.1") -(defun ns-get-pasteboard () - "Returns the value of the pasteboard." - (ns-get-selection-internal 'CLIPBOARD)) - -(defun ns-set-pasteboard (string) - "Store STRING into the pasteboard of the Nextstep display server." - ;; Check the data type of STRING. - (if (not (stringp string)) (error "Nonstring given to pasteboard")) - (ns-store-selection-internal 'CLIPBOARD string)) - -;; We keep track of the last text selected here, so we can check the -;; current selection against it, and avoid passing back our own text -;; from x-selection-value. -(defvar ns-last-selected-text nil) - -;; Return the value of the current Nextstep selection. For -;; compatibility with older Nextstep applications, this checks cut -;; buffer 0 before retrieving the value of the primary selection. -(defun x-selection-value () - (let (text) - ;; Consult the selection. Treat empty strings as if they were unset. - (or text (setq text (ns-get-pasteboard))) - (if (string= text "") (setq text nil)) - (cond - ((not text) nil) - ((eq text ns-last-selected-text) nil) - ((string= text ns-last-selected-text) - ;; Record the newer string, so subsequent calls can use the `eq' test. - (setq ns-last-selected-text text) - nil) - (t - (setq ns-last-selected-text text))))) - (defun ns-copy-including-secondary () (interactive) (call-interactively 'kill-ring-save) - (ns-store-selection-internal 'SECONDARY - (buffer-substring (point) (mark t)))) + (gui-set-selection 'SECONDARY (buffer-substring (point) (mark t)))) + (defun ns-paste-secondary () (interactive) (insert (ns-get-selection-internal 'SECONDARY))) @@ -959,10 +925,18 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") ;; Any display name is OK. (add-to-list 'display-format-alist '(".*" . ns)) -(add-to-list 'handle-args-function-alist '(ns . x-handle-args)) -(add-to-list 'frame-creation-function-alist '(ns . x-create-frame-with-faces)) -(add-to-list 'window-system-initialization-alist '(ns . ns-initialize-window-system)) +(gui-method-define handle-args-function ns #'x-handle-args) +(gui-method-define frame-creation-function ns #'x-create-frame-with-faces) +(gui-method-define window-system-initialization ns + #'ns-initialize-window-system) +(gui-method-define gui-set-selection ns + (lambda (selection value) + (if value (ns-own-selection-internal selection value) + (ns-disown-selection-internal selection)))) +(gui-method-define gui-selection-owner-p ns #'ns-selection-owner-p) +(gui-method-define gui-selection-exists-p ns #'ns-selection-exists-p) +(gui-method-define gui-get-selection ns #'ns-get-selection) (provide 'ns-win) diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el index f24a54fbe28..90eb14aab25 100644 --- a/lisp/term/pc-win.el +++ b/lisp/term/pc-win.el @@ -1,4 +1,4 @@ -;;; pc-win.el --- setup support for `PC windows' (whatever that is) +;;; pc-win.el --- setup support for `PC windows' (whatever that is) -*- lexical-binding:t -*- ;; Copyright (C) 1994, 1996-1997, 1999, 2001-2014 Free Software ;; Foundation, Inc. @@ -45,20 +45,20 @@ (declare-function w16-get-clipboard-data "w16select.c") (declare-function msdos-setup-keyboard "internal" (frame)) -;;; This was copied from etc/rgb.txt, except that some values were changed -;;; a bit to make them consistent with DOS console colors, and the RGB -;;; values were scaled up to 16 bits, as `tty-define-color' requires. +;; This was copied from etc/rgb.txt, except that some values were changed +;; a bit to make them consistent with DOS console colors, and the RGB +;; values were scaled up to 16 bits, as `tty-define-color' requires. ;;; -;;; The mapping between the 16 standard EGA/VGA colors and X color names -;;; was done by running a Unix version of Emacs inside an X client and a -;;; DJGPP-compiled Emacs on the same PC. The names of X colors used to -;;; define the pixel values are shown as comments to each color below. +;; The mapping between the 16 standard EGA/VGA colors and X color names +;; was done by running a Unix version of Emacs inside an X client and a +;; DJGPP-compiled Emacs on the same PC. The names of X colors used to +;; define the pixel values are shown as comments to each color below. ;;; -;;; If you want to change the RGB values, keep in mind that various pieces -;;; of Emacs think that a color whose RGB values add up to less than 0.6 of -;;; the values for WHITE (i.e. less than 117963) are ``dark'', otherwise the -;;; color is ``light''; see `frame-set-background-mode' in lisp/faces.el for -;;; an example. +;; If you want to change the RGB values, keep in mind that various pieces +;; of Emacs think that a color whose RGB values add up to less than 0.6 of +;; the values for WHITE (i.e. less than 117963) are ``dark'', otherwise the +;; color is ``light''; see `frame-set-background-mode' in lisp/faces.el for +;; an example. (defvar msdos-color-values '(("black" 0 0 0 0) ("blue" 1 0 0 52480) ; MediumBlue @@ -219,146 +219,50 @@ the operating system.") ; ;;;; Selections ; -;;; We keep track of the last text selected here, so we can check the -;;; current selection against it, and avoid passing back our own text -;;; from x-selection-value. -(defvar x-last-selected-text nil) - -(defcustom x-select-enable-clipboard t - "Non-nil means cutting and pasting uses the clipboard. -This is in addition to, but in preference to, the primary selection. - -Note that MS-Windows does not support selection types other than the -clipboard. (The primary selection that is set by Emacs is not -accessible to other programs on MS-Windows.) - -This variable is not used by the Nextstep port." - :type 'boolean - :group 'killing) - -(defun x-select-text (text) - "Select TEXT, a string, according to the window system. - -On X, if `x-select-enable-clipboard' is non-nil, copy TEXT to the -clipboard. If `x-select-enable-primary' is non-nil, put TEXT in -the primary selection. - -On MS-Windows, make TEXT the current selection. If -`x-select-enable-clipboard' is non-nil, copy the text to the -clipboard as well. - -On Nextstep, put TEXT in the pasteboard (`x-select-enable-clipboard' -is not used)." - (if x-select-enable-clipboard - (w16-set-clipboard-data text)) - (setq x-last-selected-text text)) - -(defun x-get-selection-value () +(defun w16-get-selection-value (_selection-symbol _target-type) "Return the value of the current selection. Consult the selection. Treat empty strings as if they were unset." - (if x-select-enable-clipboard - (let (text) - ;; Don't die if x-get-selection signals an error. - (with-demoted-errors "w16-get-clipboard-data:%s" - (setq text (w16-get-clipboard-data))) - (if (string= text "") (setq text nil)) - (cond - ((not text) nil) - ((eq text x-last-selected-text) nil) - ((string= text x-last-selected-text) - ;; Record the newer string, so subsequent calls can use the 'eq' test. - (setq x-last-selected-text text) - nil) - (t - (setq x-last-selected-text text)))))) + ;; Don't die if x-get-selection signals an error. + (with-demoted-errors "w16-get-clipboard-data:%s" + (w16-get-clipboard-data))) -;; x-selection-owner-p is used in simple.el. -(defun x-selection-owner-p (&optional _selection _terminal) - "Whether the current Emacs process owns the given X Selection. -The arg should be the name of the selection in question, typically one of -the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. -\(Those are literal upper-case symbol names, since that's what X expects.) -For convenience, the symbol nil is the same as `PRIMARY', -and t is the same as `SECONDARY'. +(declare-function w16-selection-exists-p "w16select.c") +;; gui-selection-owner-p is used in simple.el. +(gui-method-define gui-selection-exists-p pc #'w16-selection-exists-p) +(gui-method-define gui-selection-owner-p pc #'w16-selection-owner-p) -TERMINAL should be a terminal object or a frame specifying the X -server to query. If omitted or nil, that stands for the selected -frame's display, or the first available X display. +(defun w16-selection-owner-p (_selection) + ;; FIXME: Other systems don't obey select-enable-clipboard here. + (if select-enable-clipboard + (let ((text + ;; Don't die if w16-get-clipboard-data signals an error. + (with-demoted-errors "w16-get-clipboard-data: %S" + (w16-get-clipboard-data)))) + ;; We consider ourselves the owner of the selection + ;; if it does not exist, or exists and compares + ;; equal with the last text we've put into the + ;; Windows clipboard. + (cond + ((not text) t) + ((equal text gui--last-selected-text-clipboard) text) + (t nil))))) -On Nextstep, TERMINAL is unused. +;; gui-set-selection is used in gui-set-selection. +(declare-function w16-set-clipboard-data "w16select.c" + (string &optional ignored)) +(gui-method-define gui-set-selection pc + (lambda (selection value) + (if (not value) + (if (w16-selection-owner-p selection) + t) + ;; FIXME: Other systems don't obey + ;; gui-select-enable-clipboard here. + (with-demoted-errors "w16-set-clipboard-data: %S" + (w16-set-clipboard-data value)) + value))) -\(fn &optional SELECTION TERMINAL)" - (if x-select-enable-clipboard - (let (text) - ;; Don't die if w16-get-clipboard-data signals an error. - (ignore-errors - (setq text (w16-get-clipboard-data))) - ;; We consider ourselves the owner of the selection if it does - ;; not exist, or exists and compares equal with the last text - ;; we've put into the Windows clipboard. - (cond - ((not text) t) - ((or (eq text x-last-selected-text) - (string= text x-last-selected-text)) - text) - (t nil))))) - -;; x-own-selection-internal and x-disown-selection-internal are used -;; in select.el:x-set-selection. -(defun x-own-selection-internal (_selection value &optional _frame) - "Assert an X selection of the type SELECTION with and value VALUE. -SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. -\(Those are literal upper-case symbol names, since that's what X expects.) -VALUE is typically a string, or a cons of two markers, but may be -anything that the functions on `selection-converter-alist' know about. - -FRAME should be a frame that should own the selection. If omitted or -nil, it defaults to the selected frame. - -On Nextstep, FRAME is unused. - -\(fn SELECTION VALUE &optional FRAME)" - (ignore-errors - (x-select-text value)) - value) - -(defun x-disown-selection-internal (selection &optional _time-object _terminal) - "If we own the selection SELECTION, disown it. -Disowning it means there is no such selection. - -Sets the last-change time for the selection to TIME-OBJECT (by default -the time of the last event). - -TERMINAL should be a terminal object or a frame specifying the X -server to query. If omitted or nil, that stands for the selected -frame's display, or the first available X display. - -On Nextstep, the TIME-OBJECT and TERMINAL arguments are unused. -On MS-DOS, all this does is return non-nil if we own the selection. - -\(fn SELECTION &optional TIME-OBJECT TERMINAL)" - (if (x-selection-owner-p selection) - t)) - -;; x-get-selection-internal is used in select.el -(defun x-get-selection-internal (_selection-symbol _target-type - &optional _time-stamp _terminal) - "Return text selected from some X window. -SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. -\(Those are literal upper-case symbol names, since that's what X expects.) -TARGET-TYPE is the type of data desired, typically `STRING'. - -TIME-STAMP is the time to use in the XConvertSelection call for foreign -selections. If omitted, defaults to the time for the last event. - -TERMINAL should be a terminal object or a frame specifying the X -server to query. If omitted or nil, that stands for the selected -frame's display, or the first available X display. - -On Nextstep, TIME-STAMP and TERMINAL are unused. - -\(fn SELECTION-SYMBOL TARGET-TYPE &optional TIME-STAMP TERMINAL)" - (x-get-selection-value)) +;; gui-get-selection is used in select.el +(gui-method-define gui-get-selection pc #'w16-get-selection-value) ;; From src/fontset.c: (fset 'query-fontset 'ignore) @@ -463,20 +367,20 @@ Errors out because it is not supposed to be called, ever." (setq split-window-keep-point t) ;; Arrange for the kill and yank functions to set and check the ;; clipboard. - (setq interprogram-cut-function 'x-select-text) - (setq interprogram-paste-function 'x-get-selection-value) (menu-bar-enable-clipboard) (run-hooks 'terminal-init-msdos-hook)) ;; frame-creation-function-alist is examined by frame.el:make-frame. -(add-to-list 'frame-creation-function-alist - '(pc . msdos-create-frame-with-faces)) +(gui-method-define frame-creation-function + pc #'msdos-create-frame-with-faces) ;; window-system-initialization-alist is examined by startup.el:command-line. -(add-to-list 'window-system-initialization-alist - '(pc . msdos-initialize-window-system)) +(gui-method-define window-system-initialization + pc #'msdos-initialize-window-system) ;; We don't need anything beyond tty-handle-args for handling ;; command-line argument; see startup.el. -(add-to-list 'handle-args-function-alist '(pc . tty-handle-args)) +(gui-method-define handle-args-function pc #'tty-handle-args) + + ;; --------------------------------------------------------------------------- diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index e103562ba7a..bb9a7e481a2 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -205,13 +205,14 @@ European languages which are distributed with Windows as See the documentation of `create-fontset-from-fontset-spec' for the format.") -(defun x-win-suspend-error () - "Report an error when a suspend is attempted. -This returns an error if any Emacs frames are X frames, or always under W32." +(defun w32-win-suspend-error () + "Report an error when a suspend is attempted." (error "Suspending an Emacs running under W32 makes no sense")) (defvar dynamic-library-alist) (defvar libpng-version) ; image.c #ifdef HAVE_NTGUI +(defvar libgif-version) +(defvar libjpeg-version) ;;; Set default known names for external libraries (setq dynamic-library-alist @@ -353,7 +354,7 @@ This returns an error if any Emacs frames are X frames, or always under W32." (cons '(reverse . t) default-frame-alist))))) ;; Don't let Emacs suspend under Windows. - (add-hook 'suspend-hook 'x-win-suspend-error) + (add-hook 'suspend-hook #'w32-win-suspend-error) ;; Turn off window-splitting optimization; w32 is usually fast enough ;; that this is only annoying. @@ -371,9 +372,67 @@ This returns an error if any Emacs frames are X frames, or always under W32." (setq w32-initialized t)) (add-to-list 'display-format-alist '("\\`w32\\'" . w32)) -(add-to-list 'handle-args-function-alist '(w32 . x-handle-args)) -(add-to-list 'frame-creation-function-alist '(w32 . x-create-frame-with-faces)) -(add-to-list 'window-system-initialization-alist '(w32 . w32-initialize-window-system)) +(gui-method-define handle-args-function w32 #'x-handle-args) +(gui-method-define frame-creation-function w32 + #'x-create-frame-with-faces) +(gui-method-define window-system-initialization w32 + #'w32-initialize-window-system) + +;;;; Selections + +(declare-function w32-set-clipboard-data "w32select.c" + (string &optional ignored)) +(declare-function w32-get-clipboard-data "w32select.c") +(declare-function w32-selection-exists-p "w32select.c") + +;;; Fix interface to (X-specific) mouse.el +(defun w32--set-selection (type value) + (if (eq type 'CLIPBOARD) + (w32-set-clipboard-data value) + (put 'x-selections (or type 'PRIMARY) value))) + +(defun w32--get-selection (&optional type data-type) + (if (and (eq type 'CLIPBOARD) + (eq data-type 'STRING)) + (with-demoted-errors "w32-get-clipboard-data:%S" + (w32-get-clipboard-data)) + (get 'x-selections (or type 'PRIMARY)))) + +(defun w32--selection-owner-p (selection) + (and (memq selection '(nil PRIMARY SECONDARY)) + (get 'x-selections (or selection 'PRIMARY)))) + +(gui-method-define gui-set-selection w32 #'w32--set-selection) +(gui-method-define gui-get-selection w32 #'w32--get-selection) + +(gui-method-define gui-selection-owner-p w32 #'w32--selection-owner-p) +(gui-method-define gui-selection-exists-p w32 #'w32-selection-exists-p) + +(when (eq system-type 'windows-nt) + ;; Make copy&pasting in w32's console interact with the system's clipboard! + (gui-method-define gui-set-selection nil #'w32--set-selection) + (gui-method-define gui-get-selection nil #'w32--get-selection) + (gui-method-define gui-selection-owner-p nil #'w32--selection-owner-p) + (gui-method-define gui-selection-exists-p nil #'w32-selection-exists-p)) + +;; The "Windows" keys on newer keyboards bring up the Start menu +;; whether you want it or not - make Emacs ignore these keystrokes +;; rather than beep. +(global-set-key [lwindow] 'ignore) +(global-set-key [rwindow] 'ignore) + +(declare-function x-server-version "w32fns.c" (&optional terminal)) + +(defun w32-version () + "Return the MS-Windows version numbers. +The value is a list of three integers: the major and minor version +numbers, and the build number." + (x-server-version)) + +(defun w32-using-nt () + "Return non-nil if running on a Windows NT descendant. +That includes all Windows systems except for 9X/Me." + (getenv "SystemRoot")) (provide 'w32-win) diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index 964b9112553..a54846c7d7c 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -1,4 +1,4 @@ -;;; x-win.el --- parse relevant switches and set up for X -*-coding: iso-2022-7bit;-*- +;;; x-win.el --- parse relevant switches and set up for X -*-coding: iso-2022-7bit; lexical-binding:t -*- ;; Copyright (C) 1993-1994, 2001-2014 Free Software Foundation, Inc. @@ -1154,157 +1154,17 @@ as returned by `x-server-vendor'." ;;;; Selections -;; We keep track of the last text selected here, so we can check the -;; current selection against it, and avoid passing back our own text -;; from x-selection-value. We track both -;; separately in case another X application only sets one of them -;; we aren't fooled by the PRIMARY or CLIPBOARD selection staying the same. -(defvar x-last-selected-text-clipboard nil - "The value of the CLIPBOARD X selection last time we selected or -pasted text.") -(defvar x-last-selected-text-primary nil - "The value of the PRIMARY X selection last time we selected or -pasted text.") - -(defcustom x-select-enable-primary nil - "Non-nil means cutting and pasting uses the primary selection." - :type 'boolean - :group 'killing - :version "24.1") - -(defcustom x-select-request-type nil - "Data type request for X selection. -The value is one of the following data types, a list of them, or nil: - `COMPOUND_TEXT', `UTF8_STRING', `STRING', `TEXT' - -If the value is one of the above symbols, try only the specified type. - -If the value is a list of them, try each of them in the specified -order until succeed. - -The value nil is the same as the list (UTF8_STRING COMPOUND_TEXT STRING)." - :type '(choice (const :tag "Default" nil) - (const COMPOUND_TEXT) - (const UTF8_STRING) - (const STRING) - (const TEXT) - (set :tag "List of values" - (const COMPOUND_TEXT) - (const UTF8_STRING) - (const STRING) - (const TEXT))) - :group 'killing) - -;; Get a selection value of type TYPE by calling x-get-selection with -;; an appropriate DATA-TYPE argument decided by `x-select-request-type'. -;; The return value is already decoded. If x-get-selection causes an -;; error, this function return nil. - -(defun x-selection-value-internal (type) - (let ((request-type (or x-select-request-type - '(UTF8_STRING COMPOUND_TEXT STRING))) - text) - (if (consp request-type) - (while (and request-type (not text)) - (condition-case nil - (setq text (x-get-selection type (car request-type))) - (error nil)) - (setq request-type (cdr request-type))) - (condition-case nil - (setq text (x-get-selection type request-type)) - (error nil))) - (if text - (remove-text-properties 0 (length text) '(foreign-selection nil) text)) - text)) - -(defvar x-select-enable-clipboard) ; common-win - -;; Return the value of the current X selection. -;; Consult the selection. Treat empty strings as if they were unset. -;; If this function is called twice and finds the same text, -;; it returns nil the second time. This is so that a single -;; selection won't be added to the kill ring over and over. -(defun x-selection-value () - ;; With multi-tty, this function may be called from a tty frame. - (when (eq (framep (selected-frame)) 'x) - (let (clip-text primary-text) - (when x-select-enable-clipboard - (setq clip-text (x-selection-value-internal 'CLIPBOARD)) - (if (string= clip-text "") (setq clip-text nil)) - - ;; Check the CLIPBOARD selection for 'newness', is it different - ;; from what we remembered them to be last time we did a - ;; cut/paste operation. - (setq clip-text - (cond ;; check clipboard - ((or (not clip-text) (string= clip-text "")) - (setq x-last-selected-text-clipboard nil)) - ((eq clip-text x-last-selected-text-clipboard) nil) - ((string= clip-text x-last-selected-text-clipboard) - ;; Record the newer string, - ;; so subsequent calls can use the `eq' test. - (setq x-last-selected-text-clipboard clip-text) - nil) - (t (setq x-last-selected-text-clipboard clip-text))))) - - (when x-select-enable-primary - (setq primary-text (x-selection-value-internal 'PRIMARY)) - ;; Check the PRIMARY selection for 'newness', is it different - ;; from what we remembered them to be last time we did a - ;; cut/paste operation. - (setq primary-text - (cond ;; check primary selection - ((or (not primary-text) (string= primary-text "")) - (setq x-last-selected-text-primary nil)) - ((eq primary-text x-last-selected-text-primary) nil) - ((string= primary-text x-last-selected-text-primary) - ;; Record the newer string, - ;; so subsequent calls can use the `eq' test. - (setq x-last-selected-text-primary primary-text) - nil) - (t - (setq x-last-selected-text-primary primary-text))))) - - ;; As we have done one selection, clear this now. - (setq next-selection-coding-system nil) - - ;; At this point we have recorded the current values for the - ;; selection from clipboard (if we are supposed to) and primary. - ;; So return the first one that has changed - ;; (which is the first non-null one). - ;; - ;; NOTE: There will be cases where more than one of these has - ;; changed and the new values differ. This indicates that - ;; something like the following has happened since the last time - ;; we looked at the selections: Application X set all the - ;; selections, then Application Y set only one of them. - ;; In this case since we don't have - ;; timestamps there is no way to know what the 'correct' value to - ;; return is. The nice thing to do would be to tell the user we - ;; saw multiple possible selections and ask the user which was the - ;; one they wanted. - (or clip-text primary-text) - ))) - (define-obsolete-function-alias 'x-cut-buffer-or-selection-value 'x-selection-value "24.1") ;; Arrange for the kill and yank functions to set and check the clipboard. -(setq interprogram-cut-function 'x-select-text) -(setq interprogram-paste-function 'x-selection-value) - -;; Make paste from other applications use the decoding in x-select-request-type -;; and not just STRING. -(defun x-get-selection-value () - "Get the current value of the PRIMARY selection. -Request data types in the order specified by `x-select-request-type'." - (x-selection-value-internal 'PRIMARY)) (defun x-clipboard-yank () "Insert the clipboard contents, or the last stretch of killed text." + (declare (obsolete clipboard-yank "25.1")) (interactive "*") - (let ((clipboard-text (x-selection-value-internal 'CLIPBOARD)) - (x-select-enable-clipboard t)) + (let ((clipboard-text (gui--selection-value-internal 'CLIPBOARD)) + (select-enable-clipboard t)) (if (and clipboard-text (> (length clipboard-text) 0)) (kill-new clipboard-text)) (yank))) @@ -1327,9 +1187,9 @@ Request data types in the order specified by `x-select-request-type'." (defun x-win-suspend-error () "Report an error when a suspend is attempted. -This returns an error if any Emacs frames are X frames, or always under W32." +This returns an error if any Emacs frames are X frames." ;; Don't allow suspending if any of the frames are X frames. - (if (memq 'x (mapcar 'window-system (frame-list))) + (if (memq 'x (mapcar #'window-system (frame-list))) (error "Cannot suspend Emacs while running under X"))) (defvar x-initialized nil @@ -1463,9 +1323,17 @@ This returns an error if any Emacs frames are X frames, or always under W32." (setq x-initialized t)) (add-to-list 'display-format-alist '("\\`[^:]*:[0-9]+\\(\\.[0-9]+\\)?\\'" . x)) -(add-to-list 'handle-args-function-alist '(x . x-handle-args)) -(add-to-list 'frame-creation-function-alist '(x . x-create-frame-with-faces)) -(add-to-list 'window-system-initialization-alist '(x . x-initialize-window-system)) +(gui-method-define handle-args-function x #'x-handle-args) +(gui-method-define frame-creation-function x #'x-create-frame-with-faces) +(gui-method-define window-system-initialization x #'x-initialize-window-system) + +(gui-method-define gui-set-selection x + (lambda (selection value) + (if value (x-own-selection-internal selection value) + (x-disown-selection-internal selection)))) +(gui-method-define gui-selection-owner-p x #'x-selection-owner-p) +(gui-method-define gui-selection-exists-p x #'x-selection-exists-p) +(gui-method-define gui-get-selection x #'x-get-selection-internal) ;; Initiate drag and drop (add-hook 'after-make-frame-functions 'x-dnd-init-frame) @@ -1475,47 +1343,47 @@ This returns an error if any Emacs frames are X frames, or always under W32." (mapcar (lambda (arg) (cons (purecopy (car arg)) (purecopy (cdr arg)))) '( - ("etc/images/new" . "gtk-new") - ("etc/images/open" . "gtk-open") + ("etc/images/new" . ("document-new" "gtk-new")) + ("etc/images/open" . ("document-open" "gtk-open")) ("etc/images/diropen" . "n:system-file-manager") - ("etc/images/close" . "gtk-close") - ("etc/images/save" . "gtk-save") - ("etc/images/saveas" . "gtk-save-as") - ("etc/images/undo" . "gtk-undo") - ("etc/images/cut" . "gtk-cut") - ("etc/images/copy" . "gtk-copy") - ("etc/images/paste" . "gtk-paste") - ("etc/images/search" . "gtk-find") - ("etc/images/print" . "gtk-print") - ("etc/images/preferences" . "gtk-preferences") - ("etc/images/help" . "gtk-help") - ("etc/images/left-arrow" . "gtk-go-back") - ("etc/images/right-arrow" . "gtk-go-forward") - ("etc/images/home" . "gtk-home") - ("etc/images/jump-to" . "gtk-jump-to") + ("etc/images/close" . ("window-close" "gtk-close")) + ("etc/images/save" . ("document-save" "gtk-save")) + ("etc/images/saveas" . ("document-save-as" "gtk-save-as")) + ("etc/images/undo" . ("edit-undo" "gtk-undo")) + ("etc/images/cut" . ("edit-cut" "gtk-cut")) + ("etc/images/copy" . ("edit-copy" "gtk-copy")) + ("etc/images/paste" . ("edit-paste" "gtk-paste")) + ("etc/images/search" . ("edit-find" "gtk-find")) + ("etc/images/print" . ("document-print" "gtk-print")) + ("etc/images/preferences" . ("preferences-system" "gtk-preferences")) + ("etc/images/help" . ("help-browser" "gtk-help")) + ("etc/images/left-arrow" . ("go-previous" "gtk-go-back")) + ("etc/images/right-arrow" . ("go-next" "gtk-go-forward")) + ("etc/images/home" . ("go-home" "gtk-home")) + ("etc/images/jump-to" . ("go-jump" "gtk-jump-to")) ("etc/images/index" . "gtk-index") - ("etc/images/search" . "gtk-find") - ("etc/images/exit" . "gtk-quit") + ("etc/images/exit" . ("application-exit" "gtk-quit")) ("etc/images/cancel" . "gtk-cancel") - ("etc/images/info" . "gtk-info") + ("etc/images/info" . ("dialog-information" "gtk-info")) ("etc/images/bookmark_add" . "n:bookmark_add") ;; Used in Gnus and/or MH-E: ("etc/images/attach" . "gtk-attach") ("etc/images/connect" . "gtk-connect") ("etc/images/contact" . "gtk-contact") - ("etc/images/delete" . "gtk-delete") - ("etc/images/describe" . "gtk-properties") + ("etc/images/delete" . ("edit-delete" "gtk-delete")) + ("etc/images/describe" . ("ocument-properties" "gtk-properties")) ("etc/images/disconnect" . "gtk-disconnect") ;; ("etc/images/exit" . "gtk-exit") ("etc/images/lock-broken" . "gtk-lock_broken") ("etc/images/lock-ok" . "gtk-lock_ok") ("etc/images/lock" . "gtk-lock") ("etc/images/next-page" . "gtk-next-page") - ("etc/images/refresh" . "gtk-refresh") - ("etc/images/sort-ascending" . "gtk-sort-ascending") + ("etc/images/refresh" . ("view-refresh" "gtk-refresh")) + ("etc/images/sort-ascending" . ("view-sort-ascending" "gtk-sort-ascending")) ("etc/images/sort-column-ascending" . "gtk-sort-column-ascending") ("etc/images/sort-criteria" . "gtk-sort-criteria") - ("etc/images/sort-descending" . "gtk-sort-descending") + ("etc/images/sort-descending" . ("view-sort-descending" + "gtk-sort-descending")) ("etc/images/sort-row-ascending" . "gtk-sort-row-ascending") ("images/gnus/toggle-subscription" . "gtk-task-recurring") ("images/mail/compose" . "gtk-mail-compose") @@ -1532,8 +1400,8 @@ This returns an error if any Emacs frames are X frames, or always under W32." ("images/mail/spam" . "gtk-spam") ;; Used for GDB Graphical Interface ("images/gud/break" . "gtk-no") - ("images/gud/recstart" . "gtk-media-record") - ("images/gud/recstop" . "gtk-media-stop") + ("images/gud/recstart" . ("media-record" "gtk-media-record")) + ("images/gud/recstop" . ("media-playback-stop" "gtk-media-stop")) ;; No themed versions available: ;; mail/preview (combining stock_mail and stock_zoom) ;; mail/save (combining stock_mail, stock_save and stock_convert) @@ -1542,9 +1410,12 @@ This returns an error if any Emacs frames are X frames, or always under W32." Emacs must be compiled with the Gtk+ toolkit for this to have any effect. A value that begins with n: denotes a named icon instead of a stock icon." :version "22.2" - :type '(choice (repeat (choice symbol - (cons (string :tag "Emacs icon") - (string :tag "Stock/named"))))) + :type '(choice (repeat + (choice symbol + (cons (string :tag "Emacs icon") + (choice (group (string :tag "Named") + (string :tag "Stock")) + (string :tag "Stock/named")))))) :group 'x) (defcustom icon-map-list '(x-gtk-stock-map) diff --git a/lisp/textmodes/.gitignore b/lisp/textmodes/.gitignore deleted file mode 100644 index c531d9867f6..00000000000 --- a/lisp/textmodes/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.elc diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 1a07269c9e9..175964392e9 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -185,7 +185,7 @@ (let ((st (make-syntax-table))) ;; C-style comments. (modify-syntax-entry ?/ ". 14" st) - (modify-syntax-entry ?* ". 23" st) + (modify-syntax-entry ?* ". 23b" st) ;; Strings. (modify-syntax-entry ?\" "\"" st) (modify-syntax-entry ?\' "\"" st) @@ -210,11 +210,15 @@ "\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)") (defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)")) (defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) -(defconst css-ident-re (concat css-nmstart-re css-nmchar-re "*")) +(defconst css-ident-re ;; (concat css-nmstart-re css-nmchar-re "*") + ;; Apparently, "at rules" names can start with a dash, e.g. @-moz-keyframes. + (concat css-nmchar-re "+")) (defconst css-proprietary-nmstart-re ;; Vendor-specific properties. (concat "[-_]" (regexp-opt '("ms" "moz" "o" "khtml" "webkit")) "-")) (defconst css-name-re (concat css-nmchar-re "+")) +(defconst scss--hash-re "#\\(?:{[$-_[:alnum:]]+}\\|[[:alnum:]]+\\)") + (defface css-selector '((t :inherit font-lock-function-name-face)) "Face to use for selectors." :group 'css) @@ -224,24 +228,44 @@ (defface css-proprietary-property '((t :inherit (css-property italic))) "Face to use for vendor-specific properties.") -(defvar css-font-lock-keywords - `(("!\\s-*important" . font-lock-builtin-face) +(defun css--font-lock-keywords (&optional sassy) + `((,(concat "!\\s-*" + (regexp-opt (append (if sassy '("global")) + '("important")))) + (0 font-lock-builtin-face)) ;; Atrules keywords. IDs not in css-at-ids are valid (ignored). ;; In fact the regexp should probably be ;; (,(concat "\\(@" css-ident-re "\\)\\([ \t\n][^;{]*\\)[;{]") ;; (1 font-lock-builtin-face)) ;; Since "An at-rule consists of everything up to and including the next ;; semicolon (;) or the next block, whichever comes first." - (,(concat "@" css-ident-re) . font-lock-builtin-face) + (,(concat "@" css-ident-re) (0 font-lock-builtin-face)) ;; Selectors. ;; FIXME: attribute selectors don't work well because they may contain ;; strings which have already been highlighted as f-l-string-face and ;; thus prevent this highlighting from being applied (actually now that - ;; I use `append' this should work better). But really the part of the + ;; I use `keep' this should work better). But really the part of the ;; selector between [...] should simply not be highlighted. - (,(concat "^\\([ \t]*[^@:{}\n][^:{}]+\\(?::" (regexp-opt css-pseudo-ids t) - "\\(?:([^)]+)\\)?[^:{\n]*\\)*\\)\\(?:\n[ \t]*\\)*{") - (1 'css-selector append)) + (,(concat + "^[ \t]*\\(" + (if (not sassy) + ;; We don't allow / as first char, so as not to + ;; take a comment as the beginning of a selector. + "[^@/:{} \t\n][^:{}]+" + ;; Same as for non-sassy except we do want to allow { and } + ;; chars in selectors in the case of #{$foo} + ;; variable interpolation! + (concat "\\(?:" scss--hash-re + "\\|[^@/:{} \t\n#]\\)" + "[^:{}#]*\\(?:" scss--hash-re "[^:{}#]*\\)*")) + "\\(?::" (regexp-opt css-pseudo-ids t) + "\\(?:([^\)]+)\\)?" + (if (not sassy) + "[^:{}\n]*" + (concat "[^:{}\n#]*\\(?:" scss--hash-re "[^:{}\n#]*\\)*")) + "\\)*" + "\\)\\(?:\n[ \t]*\\)*{") + (1 'css-selector keep)) ;; In the above rule, we allow the open-brace to be on some subsequent ;; line. This will only work if we properly mark the intervening text ;; as being part of a multiline element (and even then, this only @@ -260,6 +284,8 @@ "\\)\\s-*:") (1 (if (match-end 2) 'css-proprietary-property 'css-property))))) +(defvar css-font-lock-keywords (css--font-lock-keywords)) + (defvar css-font-lock-defaults '(css-font-lock-keywords nil t)) @@ -277,6 +303,7 @@ (defun css-smie--forward-token () (cond ((and (eq (char-before) ?\}) + (scss-smie--not-interpolation-p) ;; FIXME: If the next char is not whitespace, what should we do? (or (memq (char-after) '(?\s ?\t ?\n)) (looking-at comment-start-skip))) @@ -293,7 +320,8 @@ (forward-comment (- (point))) (cond ;; FIXME: If the next char is not whitespace, what should we do? - ((and (eq (char-before) ?\}) (> pos (point))) ";") + ((and (eq (char-before) ?\}) (scss-smie--not-interpolation-p) + (> pos (point))) ";") ((memq (char-before) '(?\; ?\, ?\:)) (forward-char -1) (string (char-after))) (t (smie-default-backward-token))))) @@ -315,7 +343,6 @@ (setq-local comment-end "*/") (setq-local comment-end-skip "[ \t]*\\*+/") (setq-local parse-sexp-ignore-comments t) - (setq-local indent-line-function 'css-indent-line) (setq-local fill-paragraph-function 'css-fill-paragraph) (setq-local add-log-current-defun-function #'css-current-defun-name) (smie-setup css-smie-grammar #'css-smie-rules @@ -406,5 +433,35 @@ (if (looking-at "^[ \t]*\\([^{\r\n]*[^ {\t\r\n]\\)") (match-string-no-properties 1)))))) +;;; SCSS mode + +(defvar scss-mode-syntax-table + (let ((st (make-syntax-table css-mode-syntax-table))) + (modify-syntax-entry ?/ ". 124" st) + (modify-syntax-entry ?\n ">" st) + st)) + +(defvar scss-font-lock-keywords + (append `((,(concat "$" css-ident-re) (0 font-lock-variable-name-face))) + (css--font-lock-keywords 'sassy) + `((,(concat "@mixin[ \t]+\\(" css-ident-re "\\)[ \t]*(") + (1 font-lock-function-name-face))))) + +(defun scss-smie--not-interpolation-p () + (save-excursion + (forward-char -1) + (or (zerop (skip-chars-backward "[:alnum:]")) + (not (looking-back "#{\\$" (- (point) 3)))))) + +;;;###autoload (add-to-list 'auto-mode-alist '("\\.scss\\'" . scss-mode)) +;;;###autoload +(define-derived-mode scss-mode css-mode "SCSS" + "Major mode to edit \"Sassy CSS\" files." + (setq-local comment-start "// ") + (setq-local comment-end "") + (setq-local comment-start-skip "/[*/]+[ t]*") + (setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*+/\\)") + (setq-local font-lock-defaults '(scss-font-lock-keywords nil t))) + (provide 'css-mode) ;;; css-mode.el ends here diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 0fc6b4a9995..ab2c83b3ebc 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -2209,16 +2209,12 @@ indicates whether the dictionary has been modified when option `a' or `i' is used. Global `ispell-quit' set to start location to continue spell session." (let ((count ?0) - (line ispell-choices-win-default-height) - ;; ensure 4 context lines. - (max-lines (- (ispell-adjusted-window-height) 4)) (choices miss) (window-min-height (min window-min-height ispell-choices-win-default-height)) (command-characters '( ? ?i ?a ?A ?r ?R ?? ?x ?X ?q ?l ?u ?m )) - (dedicated (window-dedicated-p)) (skipped 0) - char num result textwin dedicated-win) + char num result textwin) ;; setup the *Choices* buffer with valid data. (with-current-buffer (get-buffer-create ispell-choices-buffer) @@ -2233,30 +2229,27 @@ Global `ispell-quit' set to start location to continue spell session." (boundp 'horizontal-scrollbar-visible-p) (set-specifier horizontal-scrollbar-visible-p nil (cons (current-buffer) nil)))) + (ispell-with-no-warnings + (and (boundp 'horizontal-scroll-bar) + (setq horizontal-scroll-bar nil))) (erase-buffer) (if guess (progn (insert "Affix rules generate and capitalize " "this word as shown below:\n\t") (while guess - (if (> (+ 4 (current-column) (length (car guess))) - (window-width)) - (progn - (insert "\n\t") - (setq line (1+ line)))) + (when (> (+ 4 (current-column) (length (car guess))) + (window-width)) + (insert "\n\t")) (insert (car guess) " ") (setq guess (cdr guess))) - (insert "\nUse option `i' to accept this spelling and put it in your private dictionary.\n") - (setq line (+ line (if choices 3 2))))) - (while (and choices - (< (if (> (+ 7 (current-column) (length (car choices)) - (if (> count ?~) 3 0)) - (window-width)) - (progn - (insert "\n") - (setq line (1+ line))) - line) - max-lines)) + (insert "\nUse option `i' to accept this spelling and put it in your private dictionary.\n"))) + (while choices + (when (> (+ 7 (current-column) + (length (car choices)) + (if (> count ?~) 3 0)) + (window-width)) + (insert "\n")) ;; not so good if there are over 20 or 30 options, but then, if ;; there are that many you don't want to scan them all anyway... (while (memq count command-characters) ; skip command characters. @@ -2271,15 +2264,10 @@ Global `ispell-quit' set to start location to continue spell session." (if (not (pos-visible-in-window-p end)) (sit-for 0)) - ;; allow temporary split of dedicated windows... - (if dedicated - (progn - (setq dedicated-win (selected-window)) - (set-window-dedicated-p dedicated-win nil))) - ;; Display choices for misspelled word. - (ispell-show-choices line end) - (select-window (setq textwin (next-window))) + (setq textwin (selected-window)) + (ispell-show-choices) + (select-window textwin) ;; highlight word, protecting current buffer status (unwind-protect @@ -2406,18 +2394,13 @@ Global `ispell-quit' set to start location to continue spell session." (or ispell-complete-word-dict ispell-alternate-dictionary)) miss (ispell-lookup-words new-word) - choices miss - line ispell-choices-win-default-height) - (while (and choices ; adjust choices window. - (< (if (> (+ 7 (current-column) - (length (car choices)) - (if (> count ?~) 3 0)) - (window-width)) - (progn - (insert "\n") - (setq line (1+ line))) - line) - max-lines)) + choices miss) + (while choices + (when (> (+ 7 (current-column) + (length (car choices)) + (if (> count ?~) 3 0)) + (window-width)) + (insert "\n")) (while (memq count command-characters) (setq count (ispell-int-char (1+ count)) skipped (1+ skipped))) @@ -2426,8 +2409,9 @@ Global `ispell-quit' set to start location to continue spell session." count (ispell-int-char (1+ count)))) (setq count (ispell-int-char (- count ?0 skipped)))) - (ispell-show-choices line end) - (select-window (next-window))))) + (setq textwin (selected-window)) + (ispell-show-choices) + (select-window textwin)))) (and (eq 'block ispell-highlight-p) (ispell-highlight-spelling-error start end nil 'block)) @@ -2487,44 +2471,19 @@ Global `ispell-quit' set to start location to continue spell session." (and ispell-highlight-p ; unhighlight (save-window-excursion (select-window textwin) - (ispell-highlight-spelling-error start end))) - (if dedicated - (set-window-dedicated-p dedicated-win t))))) + (ispell-highlight-spelling-error start end)))))) -(defun ispell-show-choices (line end) +(defun ispell-show-choices () "Show the choices in another buffer or frame." (if (and ispell-use-framepop-p (fboundp 'framepop-display-buffer)) (progn (framepop-display-buffer (get-buffer ispell-choices-buffer)) ;; (get-buffer-window ispell-choices-buffer t) (select-window (previous-window))) ; *Choices* window - ;; standard selection by splitting a small buffer out of this window. - (let ((choices-window (get-buffer-window ispell-choices-buffer))) - (if choices-window - (if (= line (ispell-adjusted-window-height choices-window)) - (select-window choices-window) - ;; *Choices* window changed size. Adjust the choices window - ;; without scrolling the spelled window when possible - (let ((window-line - (- line (ispell-adjusted-window-height choices-window))) - (visible (progn (vertical-motion -1) (point)))) - (if (< line ispell-choices-win-default-height) - (setq window-line (+ window-line - (- ispell-choices-win-default-height - line)))) - (move-to-window-line 0) - (vertical-motion window-line) - (set-window-start (selected-window) - (if (> (point) visible) visible (point))) - (goto-char end) - (select-window choices-window) - (enlarge-window window-line))) - ;; Overlay *Choices* window when it isn't showing - (ispell-overlay-window (max line ispell-choices-win-default-height))) - (switch-to-buffer ispell-choices-buffer) - (goto-char (point-min))))) + ;; Display choices above selected window. + (ispell-display-buffer (get-buffer-create ispell-choices-buffer)))) ;;;###autoload @@ -2594,10 +2553,10 @@ SPC: Accept word this time. "Type 'x C-h f ispell-help' for more help"))) (save-window-excursion (if ispell-help-in-bufferp - (progn - (ispell-overlay-window 4) - (switch-to-buffer (get-buffer-create "*Ispell Help*")) - (insert (concat help-1 "\n" help-2 "\n" help-3)) + (let ((buffer (get-buffer-create "*Ispell Help*"))) + (with-current-buffer buffer + (insert (concat help-1 "\n" help-2 "\n" help-3))) + (ispell-display-buffer buffer) (sit-for 5) (kill-buffer "*Ispell Help*")) (unwind-protect @@ -2816,49 +2775,35 @@ The variable `ispell-highlight-face' selects the face to use for highlighting." (ispell-highlight-spelling-error-overlay start end highlight)) (t (ispell-highlight-spelling-error-generic start end highlight refresh)))) -(defun ispell-adjusted-window-height (&optional window) - "Like `window-height', adjusted to correct for the effect of tall mode-lines. -The value returned is actually the nominal number of text-lines in the -window plus 1. On a terminal, this is the same value returned by -`window-height', but if the window has a mode-line is taller than a normal -text line, the returned value may be smaller than that from -`window-height'." - (cond ((fboundp 'window-text-height) - (1+ (window-text-height window))) - ((or (and (fboundp 'display-graphic-p) (display-graphic-p)) - (and (featurep 'xemacs) window-system)) - (1- (window-height window))) - (t - (window-height window)))) - -(defun ispell-overlay-window (height) - "Create a window covering the top HEIGHT lines of the current window. -Ensure that the line above point is still visible but otherwise avoid -scrolling the current window. Leave the new window selected." - (save-excursion - (let ((oldot (save-excursion (vertical-motion -1) (point))) - (top (save-excursion (move-to-window-line height) (point)))) - ;; If line above old point (line starting at oldot) would be - ;; hidden by new window, scroll it to just below new win - ;; otherwise set top line of other win so it doesn't scroll. - (if (< oldot top) (setq top oldot)) - ;; if frame is unsplittable, temporarily disable that... - (if (cdr (assq 'unsplittable (frame-parameters (selected-frame)))) - (let ((frame (selected-frame))) - (modify-frame-parameters frame '((unsplittable . nil))) - (split-window nil height) - (modify-frame-parameters frame '((unsplittable . t)))) - (split-window nil height)) - (let ((deficit (- height (ispell-adjusted-window-height)))) - (when (> deficit 0) - ;; Number of lines the window is still too short. We ensure that - ;; there are at least (1- HEIGHT) lines visible in the window. - (enlarge-window deficit) - (goto-char top) - (vertical-motion deficit) - (setq top (min (point) oldot)))) - (set-window-start (next-window) top)))) - +(defun ispell-display-buffer (buffer) + "Show BUFFER in new window above selected one. +Also position fit window to BUFFER and select it." + (let* ((unsplittable + (cdr (assq 'unsplittable (frame-parameters (selected-frame))))) + (window + (or (get-buffer-window buffer) + (and unsplittable + ;; If frame is unsplittable, temporarily disable that... + (let ((frame (selected-frame))) + (modify-frame-parameters frame '((unsplittable . nil))) + (prog1 + (condition-case nil + (split-window + nil (- ispell-choices-win-default-height) 'above) + (error nil)) + (modify-frame-parameters frame '((unsplittable . t)))))) + (and (not unsplittable) + (condition-case nil + (split-window + nil (- ispell-choices-win-default-height) 'above) + (error nil))) + (display-buffer buffer)))) + (if (not window) + (error "Couldn't make window for *Choices*") + (select-window window) + (set-window-buffer window buffer) + (set-window-point window (point-min)) + (fit-window-to-buffer window nil nil nil nil t)))) ;; Should we add a compound word match return value? (defun ispell-parse-output (output &optional accept-list shift) diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el index b97c6325bf8..3c8bc42cc10 100644 --- a/lisp/textmodes/makeinfo.el +++ b/lisp/textmodes/makeinfo.el @@ -253,11 +253,12 @@ Use the \\[next-error] command to move to the next error (setq makeinfo-output-node-name (makeinfo-current-node)) (save-excursion - (makeinfo-compile - (concat makeinfo-run-command " " makeinfo-options - " " buffer-file-name) - nil - 'makeinfo-compilation-sentinel-buffer))) + (let ((default-directory (file-name-directory buffer-file-name))) + (makeinfo-compile + (concat makeinfo-run-command " " makeinfo-options + " " (file-name-nondirectory buffer-file-name)) + nil + 'makeinfo-compilation-sentinel-buffer)))) (defun makeinfo-compilation-sentinel-buffer (proc msg) "Sentinel for `makeinfo-compile' run from `makeinfo-buffer'." diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el index a993a883b0f..e1fc8bf908e 100644 --- a/lisp/textmodes/reftex-sel.el +++ b/lisp/textmodes/reftex-sel.el @@ -103,7 +103,7 @@ This keymap can be used to configure the label selection process which is started with the command \\[reftex-reference].") ;;;###autoload -(define-derived-mode reftex-select-label-mode fundamental-mode "LSelect" +(define-derived-mode reftex-select-label-mode special-mode "LSelect" "Major mode for selecting a label in a LaTeX document. This buffer was created with RefTeX. It only has a meaningful keymap when you are in the middle of a @@ -149,7 +149,7 @@ This keymap can be used to configure the BibTeX selection process which is started with the command \\[reftex-citation].") ;;;###autoload -(define-derived-mode reftex-select-bib-mode fundamental-mode "BSelect" +(define-derived-mode reftex-select-bib-mode special-mode "BSelect" "Major mode for selecting a citation key in a LaTeX document. This buffer was created with RefTeX. It only has a meaningful keymap when you are in the middle of a @@ -296,7 +296,7 @@ During a selection process, these are the local bindings. (setq to (point)) (when font (put-text-property from to - 'face reftex-file-boundary-face)) + 'font-lock-face reftex-file-boundary-face)) (when toc-buffer (if mouse-face (put-text-property from (1- to) @@ -314,7 +314,7 @@ During a selection process, these are the local bindings. (setq to (point)) (when font (put-text-property from to - 'face reftex-section-heading-face)) + 'font-lock-face reftex-section-heading-face)) (when toc-buffer (if mouse-face (put-text-property from (1- to) @@ -353,7 +353,7 @@ During a selection process, these are the local bindings. (setq to (point)) (put-text-property (- (point) (length label)) to - 'face (if comment + 'font-lock-face (if comment 'font-lock-comment-face label-face)) (goto-char to)) @@ -383,14 +383,14 @@ During a selection process, these are the local bindings. (setq index-tag (format "<%s>" (nth 1 cell))) (and font (put-text-property 0 (length index-tag) - 'face reftex-index-tag-face index-tag)) + 'font-lock-face reftex-index-tag-face index-tag)) (insert label-indent index-tag " " (nth 7 cell)) (when font (setq to (point)) (put-text-property (- (point) (length (nth 7 cell))) to - 'face index-face) + 'font-lock-face index-face) (goto-char to)) (insert "\n") (setq to (point)) @@ -690,7 +690,7 @@ Cycle in reverse order if optional argument REVERSE is non-nil." eoe (or (next-single-property-change (point) :data) (point-max))) (setq ovl (reftex-make-overlay boe eoe)) (push (list data ovl separator) reftex-select-marked) - (reftex-overlay-put ovl 'face reftex-select-mark-face) + (reftex-overlay-put ovl 'font-lock-face reftex-select-mark-face) (reftex-overlay-put ovl 'before-string (if separator (format "*%c%d* " separator diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el index e164770fa0c..fab558ff2fb 100644 --- a/lisp/textmodes/reftex-toc.el +++ b/lisp/textmodes/reftex-toc.el @@ -129,7 +129,7 @@ (defvar reftex-toc-include-index-indicator nil) (defvar reftex-toc-max-level-indicator nil) -(define-derived-mode reftex-toc-mode fundamental-mode "TOC" +(define-derived-mode reftex-toc-mode special-mode "TOC" "Major mode for managing Table of Contents for LaTeX files. This buffer was created with RefTeX. Press `?' for a summary of important key bindings. @@ -279,7 +279,7 @@ SPC=view TAB=goto RET=goto+hide [q]uit [r]escan [l]abels [f]ollow [x]r [?]Help " (abbreviate-file-name reftex-last-toc-master))) (if (reftex-use-fonts) - (put-text-property (point-min) (point) 'face reftex-toc-header-face)) + (put-text-property (point-min) (point) 'font-lock-face reftex-toc-header-face)) (put-text-property (point-min) (point) 'intangible t) (put-text-property (point-min) (1+ (point-min)) 'xr-alist xr-alist) diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index ccbdc9595c4..31670a91860 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el @@ -2997,7 +2997,7 @@ Optional prefix argument OTHER-WINDOW goes to the label in another window. ;;;*** -;;;### (autoloads nil "reftex-sel" "reftex-sel.el" "086c2dd94aedc95620c5e972ad4c741a") +;;;### (autoloads nil "reftex-sel" "reftex-sel.el" "4ffdcf92acf13e0e93cfac51b6e0607c") ;;; Generated autoloads from reftex-sel.el (autoload 'reftex-select-label-mode "reftex-sel" "\ @@ -3050,7 +3050,7 @@ During a selection process, these are the local bindings. ;;;*** -;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "0364fac43b02eee087ee4cbe37f7f76c") +;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "30e611bd9b33af3e6a5a22cf7497de78") ;;; Generated autoloads from reftex-toc.el (autoload 'reftex-toc "reftex-toc" "\ diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el index 089f5b2d889..260e7abfff3 100644 --- a/lisp/textmodes/remember.el +++ b/lisp/textmodes/remember.el @@ -319,9 +319,7 @@ With a prefix or a visible region, use the region as INITIAL." (defsubst remember-mail-date (&optional rfc822-p) "Return a simple date. Nothing fancy." - (if rfc822-p - (format-time-string "%a, %e %b %Y %T %z" (current-time)) - (format-time-string "%a %b %e %T %Y" (current-time)))) + (format-time-string (if rfc822-p "%a, %e %b %Y %T %z" "%a %b %e %T %Y"))) (defun remember-buffer-desc () "Using the first line of the current buffer, create a short description." @@ -461,8 +459,7 @@ Used by `remember-store-in-files'." "Store remember data in a file in `remember-data-directory'. The file is named by calling `format-time-string' using `remember-directory-file-name-format' as the format string." - (let ((name (format-time-string - remember-directory-file-name-format (current-time))) + (let ((name (format-time-string remember-directory-file-name-format)) (text (buffer-string))) (with-temp-buffer (insert text) @@ -499,6 +496,8 @@ If this is nil, then `diary-file' will be used instead." :type '(choice (const :tag "diary-file" nil) file) :group 'remember) +(defvar calendar-date-style) ; calendar.el + (defun remember-diary-convert-entry (entry) "Translate MSG to an entry readable by diary." (save-match-data @@ -511,23 +510,17 @@ If this is nil, then `diary-file' will be used instead." ;; which requires calendar. (require 'calendar) (replace-match - (let ((style (if (boundp 'calendar-date-style) - calendar-date-style - ;; Don't complain about obsolescence. - (if (with-no-warnings european-calendar-style) - 'european - 'american)))) - (cond ((eq style 'european) - (concat (match-string 3 entry) "/" - (match-string 2 entry) "/" - (match-string 1 entry))) - ((eq style 'iso) - (concat (match-string 1 entry) "-" + (cond ((eq calendar-date-style 'european) + (concat (match-string 3 entry) "/" + (match-string 2 entry) "/" + (match-string 1 entry))) + ((eq calendar-date-style 'iso) + (concat (match-string 1 entry) "-" (match-string 2 entry) "-" (match-string 3 entry))) - (t (concat (match-string 2 entry) "/" - (match-string 3 entry) "/" - (match-string 1 entry))))) + (t (concat (match-string 2 entry) "/" + (match-string 3 entry) "/" + (match-string 1 entry)))) t t entry)) entry))) diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index d2f1307b6c9..fbcc0ede7aa 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el @@ -240,12 +240,21 @@ This takes effect when first loading the `sgml-mode' library.") "A table for mapping non-ASCII characters into SGML entity names. Currently, only Latin-1 characters are supported.") -;; nsgmls is a free SGML parser in the SP suite available from -;; ftp.jclark.com and otherwise packaged for GNU systems. -;; Its error messages can be parsed by next-error. -;; The -s option suppresses output. - -(defcustom sgml-validate-command "nsgmls -s" ; replaced old `sgmls' +(defcustom sgml-validate-command + ;; prefer tidy because (o)nsgmls is often built without --enable-http + ;; which makes it next to useless + (cond ((executable-find "tidy") + ;; tidy is available from http://tidy.sourceforge.net/ + "tidy --gnu-emacs yes -utf8 -e -q") + ((executable-find "nsgmls") + ;; nsgmls is a free SGML parser in the SP suite available from + ;; ftp.jclark.com, replaced old `sgmls'. + "nsgmls -s") + ((executable-find "onsgmls") + ;; onsgmls is the community version of `nsgmls' + ;; hosted on http://openjade.sourceforge.net/ + "onsgmls -s") + (t "Install (o)nsgmls, tidy, or some other SGML validator, and set `sgml-validate-command'")) "The command to validate an SGML document. The file name of current buffer file name will be appended to this, separated by a space." @@ -447,6 +456,9 @@ This function is designed for use in `fill-nobreak-predicate'. (skip-chars-backward "/?!") (eq (char-before) ?<)))) +(defvar tildify-space-string) +(defvar tildify-foreach-region-function) + ;;;###autoload (define-derived-mode sgml-mode text-mode '(sgml-xml-mode "XML" "SGML") "Major mode for editing SGML documents. @@ -468,6 +480,27 @@ Do \\[describe-key] on the following bindings to discover what they do. \\{sgml-mode-map}" (make-local-variable 'sgml-saved-validate-command) (make-local-variable 'facemenu-end-add-face) + ;; If encoding does not allow non-break space character, use reference. + ;; FIXME: Perhaps use   if possible (e.g. when we know its HTML)? + (setq-local tildify-space-string + (if (equal (decode-coding-string + (encode-coding-string " " buffer-file-coding-system) + buffer-file-coding-system) " ") + " " " ")) + ;; FIXME: Use the fact that we're parsing the document already + ;; rather than using regex-based filtering. + (setq-local tildify-foreach-region-function + (apply-partially + 'tildify-foreach-ignore-environments + `((,(eval-when-compile + (concat + "<\\(" + (regexp-opt '("pre" "dfn" "code" "samp" "kbd" "var" + "PRE" "DFN" "CODE" "SAMP" "KBD" "VAR")) + "\\)\\>[^>]*>")) + . ("")) + ("") + ("<" . ">")))) ;;(make-local-variable 'facemenu-remove-face-function) ;; A start or end tag by itself on a line separates a paragraph. ;; This is desirable because SGML discards a newline that appears diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 18843bcd15a..1993ff104f4 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -1203,9 +1203,32 @@ Entering SliTeX mode runs the hook `text-mode-hook', then the hook (setq tex-command slitex-run-command) (setq tex-start-of-header "\\\\documentstyle{slides}\\|\\\\documentclass{slides}")) +(defvar tildify-space-string) +(defvar tildify-foreach-region-function) + (defun tex-common-initialization () ;; Regexp isearch should accept newline and formfeed as whitespace. (setq-local search-whitespace-regexp "[ \t\r\n\f]+") + ;; Use tilde as hard-space character in tildify package. + (setq-local tildify-space-string "~") + ;; FIXME: Use the fact that we're parsing the document already + ;; rather than using regex-based filtering. + (setq-local tildify-foreach-region-function + (apply-partially + 'tildify-foreach-ignore-environments + `(("\\\\\\\\" . "") ; do not remove this + (,(eval-when-compile + (concat "\\\\begin{\\(" + (regexp-opt '("verbatim" "math" "displaymath" + "equation" "eqnarray" "eqnarray*")) + "\\)}")) + . ("\\\\end{" 1 "}")) + ("\\\\verb\\*?\\(.\\)" . (1)) + ("\\$\\$?" . (0)) + ("\\\\(" . "\\\\)") + ("\\\\[[]" . "\\\\[]]") + ("\\\\[a-zA-Z]+\\( +\\|{}\\)[a-zA-Z]*" . "") + ("%" . "$")))) ;; A line containing just $$ is treated as a paragraph separator. (setq-local paragraph-start "[ \t]*$\\|[\f\\\\%]\\|[ \t]*\\$\\$") ;; A line starting with $$ starts a paragraph, @@ -2573,18 +2596,28 @@ line LINE of the window, or centered if LINE is nil." (prefix-numeric-value linenum) (/ (window-height) 2))))))) +(defcustom tex-print-file-extension ".dvi" + "The TeX-compiled file extension for viewing and printing. +If you use pdflatex instead of latex, set this to \".pdf\" and modify + `tex-dvi-view-command' and `tex-dvi-print-command' appropriately." + :type 'string + :group 'tex-view + :version "25.1") + (defun tex-print (&optional alt) "Print the .dvi file made by \\[tex-region], \\[tex-buffer] or \\[tex-file]. Runs the shell command defined by `tex-dvi-print-command'. If prefix argument is provided, use the alternative command, `tex-alt-dvi-print-command'." (interactive "P") - (let ((print-file-name-dvi (tex-append tex-print-file ".dvi")) + (let ((print-file-name-dvi (tex-append tex-print-file + tex-print-file-extension)) test-name) (if (and (not (equal (current-buffer) tex-last-buffer-texed)) (buffer-file-name) ;; Check that this buffer's printed file is up to date. (file-newer-than-file-p - (setq test-name (tex-append (buffer-file-name) ".dvi")) + (setq test-name (tex-append (buffer-file-name) + tex-print-file-extension)) (buffer-file-name))) (setq print-file-name-dvi test-name)) (if (not (file-exists-p print-file-name-dvi)) diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el index e345f8a5028..839d7a96b5d 100644 --- a/lisp/textmodes/texnfo-upd.el +++ b/lisp/textmodes/texnfo-upd.el @@ -1145,24 +1145,40 @@ For example, \"unnumberedsubsec\". Return \"top\" for top node. Searches forward for a section. Hence, point must be before the section whose type will be found. Does not move point. Signal an error if the node is not the top node and a section is not found." - (let ((case-fold-search t)) - (save-excursion - (cond - ((re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" - ;; Following search limit by cph but causes a bug - ;;(line-end-position) - nil - t) - "top") - ((re-search-forward texinfo-section-types-regexp nil t) - (buffer-substring-no-properties - (progn (beginning-of-line) ; copy its name - (1+ (point))) - (progn (forward-word 1) - (point)))) - (t - (error - "texinfo-specific-section-type: Chapter or section not found")))))) + (let* ((case-fold-search t) + ;; The Texinfo manual has a second Top node inside @verbatim + ;; near the end, which dupes us into thinking we are at top + ;; level, no matter where we are when invoked. We don't + ;; really grok @verbatim, so we cheat: only consider us to be + ;; at top level if the position of the Top node we found is + ;; before any other sectioning command. + (top-pos (save-excursion + (re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" + ;; Following search limit causes a bug + ;;(line-end-position) + nil + t))) + (sec-pos (save-excursion + (re-search-forward texinfo-section-types-regexp nil t))) + sec-name) + (if sec-pos + (save-excursion + (goto-char sec-pos) + (setq sec-name (buffer-substring-no-properties + (progn (beginning-of-line) ; copy its name + (1+ (point))) + (progn (forward-word 1) + (point)))))) + (cond + ((or sec-pos top-pos) + (if (and top-pos sec-pos) + (if (< top-pos sec-pos) + "top" + sec-name) + (or sec-name "top"))) + (t + (error + "texinfo-specific-section-type: Chapter or section not found"))))) (defun texinfo-hierarchic-level () "Return the general hierarchical level of the next node in a texinfo file. diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el index 50fee2f4b84..d935ff7286e 100644 --- a/lisp/textmodes/tildify.el +++ b/lisp/textmodes/tildify.el @@ -1,10 +1,10 @@ -;;; tildify.el --- adding hard spaces into texts +;;; tildify.el --- adding hard spaces into texts -*- lexical-binding: t -*- ;; Copyright (C) 1997-2014 Free Software Foundation, Inc. ;; Author: Milan Zamazal ;; Michal Nazarewicz -;; Version: 4.5.3 +;; Version: 4.5.7 ;; Keywords: text, TeX, SGML, wp ;; This file is part of GNU Emacs. @@ -56,8 +56,21 @@ :version "21.1" :group 'wp) -(defcustom tildify-pattern-alist - '((t "\\([,:;(][ \t]*[a]\\|\\<[AIKOSUVZikosuvz]\\)\\([ \t]+\\|[ \t]*\n[ \t]*\\)\\(\\w\\|[([{\\]\\|<[a-zA-Z]\\)" 2)) +(defcustom tildify-pattern + "\\(?:[,:;(][ \t]*[a]\\|\\<[AIKOSUVZikosuvz]\\)\\([ \t]+\\|[ \t]*\n[ \t]*\\)\\(?:\\w\\|[([{\\]\\|<[a-zA-Z]\\)" + "A pattern specifying where to insert hard spaces. + +`tildify-buffer' function will replace first capturing group of the regexp with +a hard space (as defined by `tildify-space-string' variable). (Hint: \\(…\\) +non-capturing groups can be used for grouping prior to the part of the regexp +matching the white space). The pattern is matched case-sensitive regardless of +the value of `case-fold-search' setting." + :version "25.1" + :group 'tildify + :type 'string + :safe t) + +(defcustom tildify-pattern-alist () "Alist specifying where to insert hard spaces. Each alist item is of the form (MAJOR-MODE REGEXP NUMBER) or @@ -85,16 +98,26 @@ mode, the item for the mode SYMBOL is looked up in the alist instead." regexp (integer :tag "Group ")) (symbol :tag "Like other"))))) +(make-obsolete-variable 'tildify-pattern-alist 'tildify-pattern "25.1") -(defcustom tildify-string-alist - '((latex-mode . "~") - (tex-mode . latex-mode) - (plain-tex-mode . latex-mode) - (sgml-mode . " ") - (html-mode . sgml-mode) - (xml-mode . " ") ; XML does not define   use numeric reference - (nxml-mode . xml-mode) - (t . " ")) +(defcustom tildify-space-string "\u00A0" + "Representation of a hard (a.k.a. no-break) space in current major mode. + +Used by `tildify-buffer' in places where space is required but line +cannot be broken. For example \"~\" for TeX or \" \" for SGML, +HTML and XML modes. A no-break space Unicode character (\"\\u00A0\") +might be used for other modes if compatible encoding is used. + +If nil, current major mode has no way to represent a hard space." + :version "25.1" + :group 'tildify + :type '(choice (const :tag "Space character (no hard-space representation)" + " ") + (const :tag "No-break space (U+00A0)" "\u00A0") + (string :tag "Custom string")) + :safe t) + +(defcustom tildify-string-alist () "Alist specifying what is a hard space in the current major mode. Each alist item is of the form (MAJOR-MODE . STRING) or @@ -106,8 +129,7 @@ MAJOR-MODE defines major mode, for which the item applies. It can be either: alist item STRING defines the hard space, which is inserted at places defined by -`tildify-pattern-alist'. For example it can be \"~\" for TeX or \" \" -for SGML. +`tildify-pattern'. For example it can be \"~\" for TeX or \" \" for SGML. The form (MAJOR-MODE . SYMBOL) defines alias item for MAJOR-MODE. For this mode, the item for the mode SYMBOL is looked up in the alist instead." @@ -118,37 +140,34 @@ mode, the item for the mode SYMBOL is looked up in the alist instead." (choice (const :tag "No-break space (U+00A0)" "\u00A0") (string :tag "String ") (symbol :tag "Like other"))))) +(make-obsolete-variable 'tildify-string-alist + 'tildify-space-string "25.1") -(defcustom tildify-ignored-environments-alist - `((latex-mode - ("\\\\\\\\" . "") ; do not remove this - (,(eval-when-compile (concat - "\\\\begin{\\(" - (regexp-opt '("verbatim" "math" "displaymath" - "equation" "eqnarray" "eqnarray*")) - "\\)}")) - . ("\\\\end{" 1 "}")) - ("\\\\verb\\*?\\(.\\)" . (1)) - ("\\$\\$?" . (0)) - ("\\\\(" . "\\\\)") - ("\\\\[[]" . "\\\\[]]") - ("\\\\[a-zA-Z]+\\( +\\|{}\\)[a-zA-Z]*" . "") - ("%" . "$")) - (plain-tex-mode . latex-mode) - (html-mode - (,(eval-when-compile (concat - "<\\(" - (regexp-opt '("pre" "dfn" "code" "samp" "kbd" "var" - "PRE" "DFN" "CODE" "SAMP" "KBD" "VAR")) - "\\)\\>[^>]*>")) - . ("")) - ("") - ("<" . ">")) - (sgml-mode . html-mode) - (xml-mode - ("") - ("<" . ">")) - (nxml-mode . xml-mode)) +(defcustom tildify-foreach-region-function + 'tildify--deprecated-ignore-evironments + "A function calling a callback on portions of the buffer to tildify. + +The function is called from `tildify-buffer' function with three arguments: FUNC +BEG END. FUNC is a callback accepting two arguments -- REG-BEG REG-END -- +specifying a portion of buffer to operate on. + +The BEG and END arguments may be used to limit portion of the buffer being +scanned, but the `tildify-foreach-region-function' is not required to make use +of them. IT must, however, terminate as soon as FUNC returns nil. + +For example, if `tildify-buffer' function should operate on the whole buffer, +a simple pass through function could be used: + (setq-local tildify-foreach-region-function + (lambda (cb beg end) (funcall cb beg end))) +or better still: + (setq-local tildify-foreach-region-function 'funcall) +See `tildify-foreach-ignore-environments' function for other ways to use the +variable." + :version "25.1" + :group 'tildify + :type 'function) + +(defcustom tildify-ignored-environments-alist () "Alist specifying ignored structured text environments. Parts of text defined in this alist are skipped without performing hard space insertion on them. These setting allow skipping text parts like verbatim or @@ -162,13 +181,8 @@ MAJOR-MODE defines major mode, for which the item applies. It can be either: - t for default item, this applies to all major modes not defined in another alist item -BEG-REGEX is a regexp matching beginning of a text part to be skipped. -END-REGEX defines end of the corresponding text part and can be either: -- a regexp matching the end of the skipped text part -- a list of regexps and numbers, which will compose the ending regexp by - concatenating themselves, while replacing the numbers with corresponding - subexpressions of BEG-REGEX (this is used to solve cases like - \\\\verb in TeX)." +See `tildify-foreach-ignore-environments' function for description of BEG-REGEX +and END-REGEX." :group 'tildify :type '(repeat (cons :tag "Entry for major mode" @@ -186,6 +200,8 @@ END-REGEX defines end of the corresponding text part and can be either: (choice (regexp :tag "Regexp") (integer :tag "Group ")))))) (symbol :tag "Like other"))))) +(make-obsolete-variable 'tildify-ignored-environments-alist + 'tildify-foreach-region-function "25.1") ;;; *** Interactive functions *** @@ -193,7 +209,7 @@ END-REGEX defines end of the corresponding text part and can be either: ;;;###autoload (defun tildify-region (beg end &optional dont-ask) "Add hard spaces in the region between BEG and END. -See variables `tildify-pattern-alist', `tildify-string-alist', and +See variables `tildify-pattern', `tildify-space-string', and `tildify-ignored-environments-alist' for information about configuration parameters. This function performs no refilling of the changed text. @@ -201,20 +217,21 @@ If DONT-ASK is set, or called interactively with prefix argument, user won't be prompted for confirmation of each substitution." (interactive "*rP") (let (case-fold-search (count 0) (ask (not dont-ask))) - (tildify-foreach-region-outside-env beg end + (tildify--foreach-region (lambda (beg end) (let ((aux (tildify-tildify beg end ask))) (setq count (+ count (car aux))) (if (not (eq (cdr aux) 'force)) (cdr aux) (setq ask nil) - t)))) + t))) + beg end) (message "%d spaces replaced." count))) ;;;###autoload (defun tildify-buffer (&optional dont-ask) "Add hard spaces in the current buffer. -See variables `tildify-pattern-alist', `tildify-string-alist', and +See variables `tildify-pattern', `tildify-space-string', and `tildify-ignored-environments-alist' for information about configuration parameters. This function performs no refilling of the changed text. @@ -226,48 +243,84 @@ won't be prompted for confirmation of each substitution." ;;; *** Auxiliary functions *** -(defun tildify-mode-alist (mode-alist &optional mode) +(defun tildify--pick-alist-entry (mode-alist &optional mode) "Return alist item for the MODE-ALIST in the current major MODE." (let ((alist (cdr (or (assoc (or mode major-mode) mode-alist) (assoc t mode-alist))))) (if (and alist (symbolp alist)) - (tildify-mode-alist mode-alist alist) + (tildify--pick-alist-entry mode-alist alist) alist))) +(make-obsolete 'tildify--pick-alist-entry + "it should not be used in new code." "25.1") -(defun tildify-foreach-region-outside-env (beg end callback) - "Scan region from BEG to END calling CALLBACK on portions out of environments. -Call CALLBACK on each region outside of environment to ignore. -CALLBACK will only be called for regions which have intersection -with [BEG END]. It must be a function that takes two point -arguments specifying the region to operate on. Stop scanning the -region as soon as CALLBACK returns nil. Environments to ignore -are determined from `tildify-ignored-environments-alist'." - (declare (indent 2)) - (let ((pairs (tildify-mode-alist tildify-ignored-environments-alist))) - (if (not pairs) - (funcall callback beg end) - (let ((func (lambda (b e) - (let ((b (max b beg)) (e (min e end))) - (if (< b e) (funcall callback b e) t)))) - (beg-re (concat "\\(?:" - (mapconcat 'car pairs "\\)\\|\\(?:") - "\\)")) - p end-re) - (save-excursion - (save-restriction - (widen) - (goto-char (point-min)) - (while (and (< (setq p (point)) end) - (if (not (setq end-re - (tildify-find-env beg-re pairs))) - (progn (funcall func p end) nil) - (funcall func p (match-beginning 0)) - (when (< (point) end) - (setq p (point)) - (re-search-forward end-re nil t))))))))))) +(defun tildify--deprecated-ignore-evironments (callback beg end) + "Call CALLBACK on regions between BEG and END. -(defun tildify-find-env (regexp pairs) +Call CALLBACK on each region outside of environment to ignore. Stop scanning +the region as soon as CALLBACK returns nil. Environments to ignore are +defined by deprecated `tildify-ignored-environments-alist'. CALLBACK may be +called on portions of the buffer outside of [BEG END)." + (let ((pairs (tildify--pick-alist-entry tildify-ignored-environments-alist))) + (if pairs + (tildify-foreach-ignore-environments pairs callback beg end) + (funcall callback beg end)))) +(make-obsolete 'tildify--deprecated-ignore-evironments + "it should not be used in new code." "25.1") + +(defun tildify-foreach-ignore-environments (pairs callback _beg end) + "Outside of environments defined by PAIRS call CALLBACK. + +PAIRS is a list of (BEG-REGEX . END-REGEX) cons. BEG-REGEX is a regexp matching +beginning of a text part to be skipped. END-REGEX defines end of the +corresponding text part and can be either: +- a regexp matching the end of the skipped text part +- a list of regexps and numbers, which will compose the ending regexp by + concatenating themselves, while replacing the numbers with corresponding + subexpressions of BEG-REGEX (this is used to solve cases like + \\\\verb in TeX). + +CALLBACK is a function accepting two arguments -- REG-BEG and REG-END -- that +will be called for portions of the buffer outside of the environments defined by +PAIRS regexes. + +The function will return as soon as CALLBACK returns nil or point goes past END. +CALLBACK may be called on portions of the buffer outside of [BEG END); in fact +BEG argument is ignored. + +This function is meant to be used to set `tildify-foreach-region-function' +variable. For example, for an XML file one might use: + (setq-local tildify-foreach-region-function + (apply-partially 'tildify-foreach-ignore-environments + '((\"\") (\"<\" . \">\"))))" + (let ((beg-re (concat "\\(?:" (mapconcat 'car pairs "\\)\\|\\(?:") "\\)")) + p end-re) + (save-excursion + (save-restriction + (widen) + (goto-char (point-min)) + (while (and (< (setq p (point)) end) + (if (setq end-re (tildify--find-env beg-re pairs)) + (and (funcall callback p (match-beginning 0)) + (< (point) end) + (re-search-forward end-re nil t)) + (funcall callback p end) + nil))))))) + +(defun tildify--foreach-region (callback beg end) + "Call CALLBACK on portions of the buffer between BEG and END. + +Which portions to call CALLBACK on is determined by +`tildify-foreach-region-function' variable. This function merely makes sure +CALLBACK is not called with portions of the buffer outside of [BEG END)." + (let ((func (lambda (reg-beg reg-end) + (setq reg-beg (max reg-beg beg) reg-end (min reg-end end)) + (and (or (>= reg-beg reg-end) + (funcall callback reg-beg reg-end)) + (< reg-end end))))) + (funcall tildify-foreach-region-function func beg end))) + +(defun tildify--find-env (regexp pairs) "Find environment using REGEXP. Return regexp for the end of the environment found in PAIRS or nil if no environment was found." @@ -300,17 +353,21 @@ replacements done and response is one of symbols: t (all right), nil (quit), force (replace without further questions)." (save-excursion (goto-char beg) - (let* ((alist (tildify-mode-alist tildify-pattern-alist)) - (regexp (car alist)) - (match-number (cadr alist)) - (tilde (tildify-mode-alist tildify-string-alist)) - (end-marker (copy-marker end)) - answer - bad-answer - replace - quit - (message-log-max nil) - (count 0)) + (let ((regexp tildify-pattern) + (match-number 1) + (tilde (or (tildify--pick-alist-entry tildify-string-alist) + tildify-space-string)) + (end-marker (copy-marker end)) + answer + bad-answer + replace + quit + (message-log-max nil) + (count 0)) + ;; For the time being, tildify-pattern-alist overwrites tildify-pattern + (let ((alist (tildify--pick-alist-entry tildify-pattern-alist))) + (when alist + (setq regexp (car alist) match-number (cadr alist)))) (while (and (not quit) (re-search-forward regexp (marker-position end-marker) t)) (when (or (not ask) diff --git a/lisp/timezone.el b/lisp/timezone.el index 1135092b039..8ff43966f69 100644 --- a/lisp/timezone.el +++ b/lisp/timezone.el @@ -295,13 +295,9 @@ Gregorian date Sunday, December 31, 1 BC." ;; (timezone-absolute-from-gregorian 1 1 1970) (days (- date current-time-origin)) (seconds-per-day (float 86400)) - (seconds (+ seconds (* days seconds-per-day))) - (current-time-arithmetic-base (float 65536)) - (hi (floor (/ seconds current-time-arithmetic-base))) - (hibase (* hi current-time-arithmetic-base)) - (lo (floor (- seconds hibase)))) - (and (< (abs (- seconds (+ hibase lo))) 2) ;; Check for integer overflow. - (cons hi lo)))) + (day-seconds (* days seconds-per-day))) + (condition-case nil (time-add day-seconds seconds) + (range-error)))) (defun timezone-time-zone-from-absolute (date seconds) "Compute the local time zone for DATE at time SECONDS after midnight. diff --git a/lisp/tmm.el b/lisp/tmm.el index 09729755c14..8aedb780925 100644 --- a/lisp/tmm.el +++ b/lisp/tmm.el @@ -371,7 +371,6 @@ Stores a list of all the shortcuts in the free variable `tmm-short-cuts'." (unless tmm-c-prompt (error "No active menu entries")) (setq tmm-old-mb-map (tmm-define-keys t)) - ;; Get window and hide it for electric mode to get correct size (or tmm-completion-prompt (add-hook 'completion-setup-hook 'tmm-completion-delete-prompt 'append)) @@ -381,9 +380,15 @@ Stores a list of all the shortcuts in the free variable `tmm-short-cuts'." (with-current-buffer "*Completions*" (tmm-remove-inactive-mouse-face) (when tmm-completion-prompt - (let ((inhibit-read-only t)) + (let ((inhibit-read-only t) + (window (get-buffer-window "*Completions*"))) (goto-char (point-min)) - (insert tmm-completion-prompt)))) + (insert tmm-completion-prompt) + (when window + ;; Try to show everything just inserted and preserve height of + ;; *Completions* window. This should fix a behavior described + ;; in Bug#1291. + (fit-window-to-buffer window nil nil nil nil t))))) (insert tmm-c-prompt)) (defun tmm-shortcut () diff --git a/lisp/tooltip.el b/lisp/tooltip.el index 9d0954fc5dc..973e74bef3a 100644 --- a/lisp/tooltip.el +++ b/lisp/tooltip.el @@ -215,11 +215,9 @@ This might return nil if the event did not occur over a buffer." "Change the value of KEY in alist ALIST to VALUE. If there's no association for KEY in ALIST, add one, otherwise change the existing association. Value is the resulting alist." - (let ((param (assq key alist))) - (if (consp param) - (setcdr param value) - (push (cons key value) alist)) - alist)) + (declare (obsolete "use (setf (alist-get ..) ..) instead" "25.1")) + (setf (alist-get key alist) value) + alist) (declare-function x-show-tip "xfns.c" (string &optional frame parms timeout dx dy)) @@ -244,10 +242,10 @@ in echo area." (fg (face-attribute 'tooltip :foreground)) (bg (face-attribute 'tooltip :background))) (when (stringp fg) - (setq params (tooltip-set-param params 'foreground-color fg)) - (setq params (tooltip-set-param params 'border-color fg))) + (setf (alist-get 'foreground-color params) fg) + (setf (alist-get 'border-color params) fg)) (when (stringp bg) - (setq params (tooltip-set-param params 'background-color bg))) + (setf (alist-get 'background-color params) bg)) (x-show-tip (propertize text 'face 'tooltip) (selected-frame) params @@ -286,10 +284,6 @@ is based on the current syntax table." (when (> (point) start) (buffer-substring start (point))))))) -(defmacro tooltip-region-active-p () - "Value is non-nil if the region should override command actions." - `(use-region-p)) - (defun tooltip-expr-to-print (event) "Return an expression that should be printed for EVENT. If a region is active and the mouse is inside the region, print @@ -297,7 +291,7 @@ the region. Otherwise, figure out the identifier around the point where the mouse is." (with-current-buffer (tooltip-event-buffer event) (let ((point (posn-point (event-end event)))) - (if (tooltip-region-active-p) + (if (use-region-p) (when (and (<= (region-beginning) point) (<= point (region-end))) (buffer-substring (region-beginning) (region-end))) (tooltip-identifier-from-point point))))) diff --git a/lisp/tutorial.el b/lisp/tutorial.el index 8925a02a9e7..fcb840fcfed 100644 --- a/lisp/tutorial.el +++ b/lisp/tutorial.el @@ -209,10 +209,10 @@ LEFT and RIGHT are the elements to compare." (symbol-name cx))))))) (defconst tutorial--default-keys - ;; On window system, `suspend-emacs' is replaced in the default - ;; keymap + ;; On window system, `suspend-emacs' is replaced in the default keymap. (let* ((suspend-emacs 'suspend-frame) (default-keys + ;; The first few are not mentioned but are basic: `((ESC-prefix [27]) (Control-X-prefix [?\C-x]) (mode-specific-command-prefix [?\C-c]) @@ -548,7 +548,11 @@ with some explanatory links." (start (point)) (case-fold-search nil) (keybindings-regexp - (concat "[[:space:]]\\(" + ;; Accept either [:space:] or [:punct:] before the key + ;; binding because the Hebrew tutorial uses directional + ;; controls and Hebrew character maqaf, the Hebrew hyphen, + ;; immediately before the binding string. + (concat "\\(?:[[:space:]]\\|[[:punct:]]\\)\\(" (mapconcat (lambda (kdf) (regexp-quote (tutorial--key-description (nth 1 kdf)))) diff --git a/lisp/type-break.el b/lisp/type-break.el index f954e5d1c26..a3af407bf17 100644 --- a/lisp/type-break.el +++ b/lisp/type-break.el @@ -604,8 +604,7 @@ INTERVAL is the full length of an interval (defaults to TIME)." (type-break-time-warning-schedule time 'reset) (type-break-run-at-time (max 1 time) nil 'type-break-alarm) (setq type-break-time-next-break - (type-break-time-sum (or start (current-time)) - (or interval time)))) + (type-break-time-sum start (or interval time)))) (defun type-break-cancel-schedule () (type-break-cancel-time-warning-schedule) @@ -961,19 +960,11 @@ FRAC should be the inverse of the fractional value; for example, a value of (defun type-break-time-difference (a b) (round (float-time (time-subtract b a)))) -;; Return (in a new list the same in structure to that returned by -;; `current-time') the sum of the arguments. Each argument may be a time -;; list or a single integer, a number of seconds. -;; This function keeps the high and low 16 bits of the seconds properly -;; balanced so that the lower value never exceeds 16 bits. Otherwise, when -;; the result is passed to `current-time-string' it will toss some of the -;; "low" bits and format the time incorrectly. +;; Return a time value that is the sum of the time-value arguments. (defun type-break-time-sum (&rest tmlist) - (let ((sum '(0 0 0))) + (let ((sum '(0 0))) (dolist (tem tmlist) - (setq sum (time-add sum (if (integerp tem) - (list (floor tem 65536) (mod tem 65536)) - tem)))) + (setq sum (time-add sum tem))) sum)) (defun type-break-time-stamp (&optional when) diff --git a/lisp/url/.gitignore b/lisp/url/.gitignore deleted file mode 100644 index 362a9c89b75..00000000000 --- a/lisp/url/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile -auto-autoloads.el -custom-load.el -url-auto.el diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index b8e34ea65c4..4091d2eb722 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,100 @@ +2014-12-12 Lars Magne Ingebrigtsen + + * url-http.el (url-http-parse-headers): `gnutls-available-p' is + now always available. + +2014-12-11 Lars Magne Ingebrigtsen + + * url-http.el (url-http-parse-headers): Check that + `gnutls-available-p' is defined (bug#19346). + +2014-12-09 Lars Magne Ingebrigtsen + + * url-http.el (url-http-parse-headers): Pass the GnuTLS status of + the connection to the caller. + (url-http-parse-headers): When being redirected, make sure we + flush the previous certificate. + +2014-12-08 Stefan Monnier + + * url-http.el (url-http-activate-callback): Make debug more verbose. + +2014-12-05 Stefan Monnier + + * url-future.el (url-future-done-p, url-future-completed-p) + (url-future-errored-p, url-future-cancelled-p): + * url-dav.el (url-dav-http-success-p): Use define-inline. + +2014-11-23 Lars Magne Ingebrigtsen + + * url-http.el (url-http): Respect `url-request-noninteractive'. + + * url-queue.el (url-queue-start-retrieve): Fetching through + url-queue should always be noninteractive. + + * url-vars.el (url-request-noninteractive): New variable. + +2014-11-14 David Reitter + + * url-domsuf.el (url-domsuf-parse-file): Read compressed + publicsuffix file if available. + +2014-11-05 Teodor Zlatanov + + * url-http.el (url-user-agent): New variable, can be function or + string. Suggested by Vibhav Pant . + Add :version. (Bug#16498) + + (url-http-user-agent-string): Use it. + +2014-10-29 Paul Eggert + + Simplify use of current-time and friends. + * url-cache.el (url-cache-prune-cache): + Rename local var to avoid confusion. + * url-util.el (url-get-normalized-date): + Omit unnecessary call to current-time. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-07 Eli Zaretskii + + * url-http.el (url-http-create-request): Recheck zlib availability + on windows-nt each time it might be required. (Bug#18650) + +2014-09-28 Ulf Jasper + + * url-gw.el (url-open-stream): New optional parameter + `gateway-method'. If non-nil use it instead of global variable + `url-gateway-method'. + + * url/url-http.el (url-http): New optional parameter + `gateway-method', pass it to `url-http-find-free-connection'. + (url-http-find-free-connection): New optional parameter + gateway-method, pass it to `url-open-stream'. + (url-https-create-secure-wrapper): Do not modify + `url-gateway-method' but explicitly provide 'tls as gateway-method + parameter to `url-https'. + +2014-09-22 Dmitry Gutov + + * url.el (url-retrieve-internal): Clarify the docstring. + + * url-http.el (url-http): Same. (Bug#18116) + +2014-08-07 Reuben Thomas + + * url-handlers.el: Remove a comment about VMS, which we no longer + support. + +2014-08-03 Paul Eggert + + Don't mishandle dates in the year 9999 (Bug#18176). + * url-cookie.el (url-cookie-expired-p): Treat out-of-range + expiration dates as if they were far in the future. + 2014-06-26 Leo Liu * url-http.el (url-http-end-of-headers): Remove duplicate defvar. @@ -88,19 +185,19 @@ 2013-08-12 Lars Magne Ingebrigtsen - * url-http.el (url-handle-content-transfer-encoding): Renamed + * url-http.el (url-handle-content-transfer-encoding): Rename `zlib-decompress-gzipped-region' and check whether it's available, too. - (url-handle-content-transfer-encoding): Renamed - `zlib-decompress-region' again. + (url-handle-content-transfer-encoding): + Rename `zlib-decompress-region' again. 2013-08-11 Lars Magne Ingebrigtsen * url-vars.el (url-mime-encoding-string): If we have built-in gzip support, say that we accept gzipped content. - * url-http.el (url-handle-content-transfer-encoding): Support - decompressing gzipped content. + * url-http.el (url-handle-content-transfer-encoding): + Support decompressing gzipped content. 2013-07-31 Stefan Monnier diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el index 50ce38f064b..9b634bd4b0c 100644 --- a/lisp/url/url-cache.el +++ b/lisp/url/url-cache.el @@ -212,7 +212,7 @@ If `url-standalone-mode' is non-nil, cached items never expire." "Remove all expired files from the cache. `url-cache-expire-time' says how old a file has to be to be considered \"expired\"." - (let ((current-time (current-time)) + (let ((now (current-time)) (total-files 0) (deleted-files 0)) (setq directory (or directory url-cache-directory)) @@ -228,7 +228,7 @@ considered \"expired\"." (time-add (nth 5 (file-attributes file)) (seconds-to-time url-cache-expire-time)) - current-time) + now) (delete-file file) (setq deleted-files (1+ deleted-files)))))) (if (< deleted-files total-files) diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el index 55e0fb33951..f89886b95dd 100644 --- a/lisp/url/url-cookie.el +++ b/lisp/url/url-cookie.el @@ -158,7 +158,9 @@ telling Microsoft that." "Return non-nil if COOKIE is expired." (let ((exp (url-cookie-expires cookie))) (and (> (length exp) 0) - (> (float-time) (float-time (date-to-time exp)))))) + (condition-case () + (> (float-time) (float-time (date-to-time exp))) + (error nil))))) (defun url-cookie-retrieve (host &optional localpart secure) "Retrieve all cookies for a specified HOST and LOCALPART." diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el index 6adb2d978af..24b20ab81fc 100644 --- a/lisp/url/url-dav.el +++ b/lisp/url/url-dav.el @@ -479,9 +479,9 @@ names (ie: DAV:resourcetype)." " ") depth nil namespaces)) -(defmacro url-dav-http-success-p (status) +(define-inline url-dav-http-success-p (status) "Return whether STATUS was the result of a successful DAV request." - `(= (/ (or ,status 500) 100) 2)) + (inline-quote (= (/ (or ,status 500) 100) 2))) ;;; Locking support diff --git a/lisp/url/url-domsuf.el b/lisp/url/url-domsuf.el index 365cf561ae2..b7f92597e2f 100644 --- a/lisp/url/url-domsuf.el +++ b/lisp/url/url-domsuf.el @@ -32,8 +32,12 @@ (defun url-domsuf-parse-file () (with-temp-buffer - (insert-file-contents - (expand-file-name "publicsuffix.txt" data-directory)) + (with-auto-compression-mode + (insert-file-contents + (let* ((suffixfile (expand-file-name "publicsuffix.txt" data-directory)) + (compressed-file (concat suffixfile ".gz"))) + (or (and (file-readable-p compressed-file) compressed-file) + suffixfile)))) (let ((domains nil) domain exception) (while (not (eobp)) diff --git a/lisp/url/url-future.el b/lisp/url/url-future.el index 0505218326b..490e6f74c68 100644 --- a/lisp/url/url-future.el +++ b/lisp/url/url-future.el @@ -44,17 +44,17 @@ (cl-defstruct url-future callback errorback status value) -(defmacro url-future-done-p (url-future) - `(url-future-status ,url-future)) +(define-inline url-future-done-p (url-future) + (inline-quote (url-future-status ,url-future))) -(defmacro url-future-completed-p (url-future) - `(eq (url-future-status ,url-future) t)) +(define-inline url-future-completed-p (url-future) + (inline-quote (eq (url-future-status ,url-future) t))) -(defmacro url-future-errored-p (url-future) - `(eq (url-future-status ,url-future) 'error)) +(define-inline url-future-errored-p (url-future) + (inline-quote (eq (url-future-status ,url-future) 'error))) -(defmacro url-future-cancelled-p (url-future) - `(eq (url-future-status ,url-future) 'cancel)) +(define-inline url-future-cancelled-p (url-future) + (inline-quote (eq (url-future-status ,url-future) 'cancel))) (defun url-future-finish (url-future &optional status) (if (url-future-done-p url-future) diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el index b1cc8a29e3b..4a6189dcfea 100644 --- a/lisp/url/url-gw.el +++ b/lisp/url/url-gw.el @@ -203,20 +203,24 @@ linked Emacs under SunOS 4.x." proc))) ;;;###autoload -(defun url-open-stream (name buffer host service) +(defun url-open-stream (name buffer host service &optional gateway-method) "Open a stream to HOST, possibly via a gateway. Args per `open-network-stream'. Will not make a connection if `url-gateway-unplugged' is non-nil. -Might do a non-blocking connection; use `process-status' to check." +Might do a non-blocking connection; use `process-status' to check. + +Optional arg GATEWAY-METHOD specifies the gateway to be used, +overriding the value of `url-gateway-method'." (unless url-gateway-unplugged - (let ((gw-method (if (and url-gateway-local-host-regexp - (not (eq 'tls url-gateway-method)) - (not (eq 'ssl url-gateway-method)) - (string-match - url-gateway-local-host-regexp - host)) - 'native - url-gateway-method)) + (let* ((gwm (or gateway-method url-gateway-method)) + (gw-method (if (and url-gateway-local-host-regexp + (not (eq 'tls gwm)) + (not (eq 'ssl gwm)) + (string-match + url-gateway-local-host-regexp + host)) + 'native + gwm)) ;; An attempt to deal with denied connections, and attempt ;; to reconnect (cur-retries 0) diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el index 704c743bfcd..56a0986b41c 100644 --- a/lisp/url/url-handlers.el +++ b/lisp/url/url-handlers.el @@ -51,7 +51,7 @@ ;; delete-directory Finished (DAV) ;; delete-file Finished (DAV) ;; diff-latest-backup-file -;; directory-file-name unnecessary (what about VMS)? +;; directory-file-name unnecessary ;; directory-files Finished (DAV) ;; dired-call-process ;; dired-compress-file @@ -122,7 +122,7 @@ regular expression avoids conflicts with local files that look like URLs \(Gnus is particularly bad at this\)." :group 'url :type 'regexp - :version "24.5" + :version "25.1" :set (lambda (symbol value) (let ((enable url-handler-mode)) (url-handler-mode 0) diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 608a865be7b..34d325acf56 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -25,7 +25,9 @@ ;;; Code: -(eval-when-compile (require 'cl-lib)) +(eval-when-compile + (require 'cl-lib) + (require 'subr-x)) (defvar url-callback-arguments) (defvar url-callback-function) @@ -40,6 +42,7 @@ (defvar url-http-data) (defvar url-http-end-of-headers) (defvar url-http-extra-headers) +(defvar url-http-noninteractive) (defvar url-http-method) (defvar url-http-no-retry) (defvar url-http-process) @@ -132,6 +135,17 @@ request.") (507 insufficient-storage "Insufficient storage")) "The HTTP return codes and their text.") +(defcustom url-user-agent (format "User-Agent: %sURL/%s\r\n" + (if url-package-name + (concat url-package-name "/" + url-package-version " ") + "") url-version) + "User Agent used by the URL package." + :type '(choice (string :tag "A static User-Agent string") + (function :tag "Call a function to get the User-Agent string")) + :version "25.1" + :group 'url) + ;(eval-when-compile ;; These are all macros so that they are hidden from external sight ;; when the file is byte-compiled. @@ -171,7 +185,7 @@ request.") url-http-open-connections)) nil) -(defun url-http-find-free-connection (host port) +(defun url-http-find-free-connection (host port &optional gateway-method) (let ((conns (gethash (cons host port) url-http-open-connections)) (connection nil)) (while (and conns (not connection)) @@ -193,7 +207,7 @@ request.") ;; `url-open-stream' needs a buffer in which to do things ;; like authentication. But we use another buffer afterwards. (unwind-protect - (let ((proc (url-open-stream host buf host port))) + (let ((proc (url-open-stream host buf host port gateway-method))) ;; url-open-stream might return nil. (when (processp proc) ;; Drop the temp buffer link before killing the buffer. @@ -214,11 +228,9 @@ request.") (and (listp url-privacy-level) (memq 'agent url-privacy-level))) "" - (format "User-Agent: %sURL/%s\r\n" - (if url-package-name - (concat url-package-name "/" url-package-version " ") - "") - url-version))) + (if (functionp url-user-agent) + (funcall url-user-agent) + url-user-agent))) (defun url-http-create-request (&optional ref-url) "Create an HTTP request for `url-http-target-url', referred to by REF-URL." @@ -313,7 +325,14 @@ request.") (concat "From: " url-personal-mail-address "\r\n")) ;; Encodings we understand - (if url-mime-encoding-string + (if (or url-mime-encoding-string + ;; MS-Windows loads zlib dynamically, so recheck + ;; in case they made it available since + ;; initialization in url-vars.el. + (and (eq 'system-type 'windows-nt) + (fboundp 'zlib-available-p) + (zlib-available-p) + (setq url-mime-encoding-string "gzip"))) (concat "Accept-encoding: " url-mime-encoding-string "\r\n")) (if url-mime-charset-string @@ -475,7 +494,14 @@ should be shown to the user." (url-http-mark-connection-as-free (url-host url-current-object) (url-port url-current-object) url-http-process) - + ;; Pass the https certificate on to the caller. + (when (gnutls-available-p) + (let ((status (gnutls-peer-status url-http-process))) + (when (or status + (plist-get (car url-callback-arguments) :peer)) + (setcar url-callback-arguments + (plist-put (car url-callback-arguments) + :peer status))))) (if (or (not (boundp 'url-http-end-of-headers)) (not url-http-end-of-headers)) (error "Trying to parse headers in odd buffer: %s" (buffer-name))) @@ -875,7 +901,8 @@ should be shown to the user." (url-http-mark-connection-as-free (url-host url-current-object) (url-port url-current-object) url-http-process) - (url-http-debug "Activating callback in buffer (%s)" (buffer-name)) + (url-http-debug "Activating callback in buffer (%s): %S %S" + (buffer-name) url-callback-function url-callback-arguments) (apply url-callback-function url-callback-arguments)) ;; ) @@ -1167,22 +1194,28 @@ the end of the document." (when (eq process-buffer (current-buffer)) (goto-char (point-max))))) -(defun url-http (url callback cbargs &optional retry-buffer) +(defun url-http (url callback cbargs &optional retry-buffer gateway-method) "Retrieve URL via HTTP asynchronously. URL must be a parsed URL. See `url-generic-parse-url' for details. -When retrieval is completed, execute the function CALLBACK, using -the arguments listed in CBARGS. The first element in CBARGS +When retrieval is completed, execute the function CALLBACK, passing it +an updated value of CBARGS as arguments. The first element in CBARGS should be a plist describing what has happened so far during the request, as described in the docstring of `url-retrieve' (if in doubt, specify nil). Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a -previous `url-http' call, which is being re-attempted." +previous `url-http' call, which is being re-attempted. + +Optional arg GATEWAY-METHOD specifies the gateway to be used, +overriding the value of `url-gateway-method'." (cl-check-type url vector "Need a pre-parsed URL.") (let* ((host (url-host (or url-using-proxy url))) (port (url-port (or url-using-proxy url))) - (connection (url-http-find-free-connection host port)) + (nsm-noninteractive (or url-request-noninteractive + (and (boundp 'url-http-noninteractive) + url-http-noninteractive))) + (connection (url-http-find-free-connection host port gateway-method)) (buffer (or retry-buffer (generate-new-buffer (format " *http %s:%d*" host port))))) @@ -1213,6 +1246,7 @@ previous `url-http' call, which is being re-attempted." url-http-process url-http-method url-http-extra-headers + url-http-noninteractive url-http-data url-http-target-url url-http-no-retry @@ -1222,6 +1256,7 @@ previous `url-http' call, which is being re-attempted." (setq url-http-method (or url-request-method "GET") url-http-extra-headers url-request-extra-headers + url-http-noninteractive url-request-noninteractive url-http-data url-request-data url-http-process connection url-http-chunked-length nil @@ -1440,9 +1475,8 @@ p3p (defmacro url-https-create-secure-wrapper (method args) `(defun ,(intern (format (if method "url-https-%s" "url-https") method)) ,args ,(format "HTTPS wrapper around `%s' call." (or method "url-http")) - (let ((url-gateway-method 'tls)) - (,(intern (format (if method "url-http-%s" "url-http") method)) - ,@(remove '&rest (remove '&optional args)))))) + (,(intern (format (if method "url-http-%s" "url-http") method)) + ,@(remove '&rest (remove '&optional (append args (if method nil '(nil 'tls)))))))) ;;;###autoload (autoload 'url-https "url-http") (url-https-create-secure-wrapper nil (url callback cbargs)) diff --git a/lisp/url/url-queue.el b/lisp/url/url-queue.el index 87469b91032..9c4b4028741 100644 --- a/lisp/url/url-queue.el +++ b/lisp/url/url-queue.el @@ -133,10 +133,11 @@ The variable `url-queue-timeout' sets a timeout." (defun url-queue-start-retrieve (job) (setf (url-queue-buffer job) (ignore-errors - (url-retrieve (url-queue-url job) - #'url-queue-callback-function (list job) - (url-queue-silentp job) - (url-queue-inhibit-cookiesp job))))) + (let ((url-request-noninteractive t)) + (url-retrieve (url-queue-url job) + #'url-queue-callback-function (list job) + (url-queue-silentp job) + (url-queue-inhibit-cookiesp job)))))) (defun url-queue-prune-old-entries () (let (dead-jobs) diff --git a/lisp/url/url-tramp.el b/lisp/url/url-tramp.el index 83cedd1d62c..9cc17a35346 100644 --- a/lisp/url/url-tramp.el +++ b/lisp/url/url-tramp.el @@ -33,7 +33,7 @@ "List of URL protocols the work is handled by Tramp. They must also be covered by `url-handler-regexp'." :group 'url - :version "24.5" + :version "25.1" :type '(list string)) (defun url-tramp-convert-url-to-tramp (url) diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index b796e769c60..f7d2d4410d9 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el @@ -189,8 +189,7 @@ Will not do anything if `url-show-status' is nil." (defun url-get-normalized-date (&optional specified-time) "Return a 'real' date string that most HTTP servers can understand." (let ((system-time-locale "C")) - (format-time-string "%a, %d %b %Y %T GMT" - (or specified-time (current-time)) t))) + (format-time-string "%a, %d %b %Y %T GMT" specified-time t))) ;;;###autoload (defun url-eat-trailing-space (x) diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index 62b7b855533..bc23b982f82 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el @@ -209,6 +209,9 @@ document." "A list of extra headers to send with the next request. Should be an assoc list of headers/contents.") +(defvar url-request-noninteractive nil + "If non-nil, the request is done in a noninteractive context.") + (defvar url-request-method nil "The method to use for the next request.") (defvar url-mime-encoding-string (and (fboundp 'zlib-available-p) diff --git a/lisp/url/url.el b/lisp/url/url.el index 620593a9a81..4594ab6a7f7 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el @@ -170,8 +170,8 @@ URL-encoded before it's used." (defun url-retrieve-internal (url callback cbargs &optional silent inhibit-cookies) "Internal function; external interface is `url-retrieve'. -CBARGS is the list of arguments that the callback function will -receive; its first element should be a plist specifying what has +The callback function will receive an updated value of CBARGS as +arguments; its first element should be a plist specifying what has happened so far during the request, as described in the docstring of `url-retrieve' (if in doubt, specify nil). diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el index 8e44c024dc4..cd6fcaec28e 100644 --- a/lisp/vc/add-log.el +++ b/lisp/vc/add-log.el @@ -1097,12 +1097,17 @@ file were isearch was started." (ignore-errors (version< (substring b (length name)) (substring a (length name)))))))) - (files (if isearch-forward files (reverse files)))) - (find-file-noselect - (if wrap - (car files) - (cadr (member (file-name-nondirectory (buffer-file-name buffer)) - files)))))) + (files (if isearch-forward files (reverse files))) + (file (if wrap + (car files) + (cadr (member (file-name-nondirectory (buffer-file-name buffer)) + files))))) + ;; If there are no files that match the default pattern ChangeLog.[0-9], + ;; return the current buffer to force isearch wrapping to its beginning. + ;; If file is nil, multi-isearch-search-fun will signal "end of multi". + (if (file-exists-p file) + (find-file-noselect file) + (current-buffer)))) (defun change-log-fill-forward-paragraph (n) "Cut paragraphs so filling preserves open parentheses at beginning of lines." diff --git a/lisp/vc/compare-w.el b/lisp/vc/compare-w.el index 25d4cf77f53..3b8293cda24 100644 --- a/lisp/vc/compare-w.el +++ b/lisp/vc/compare-w.el @@ -140,9 +140,43 @@ out all highlighting later with the command `compare-windows-dehighlight'." (defvar compare-windows-overlays2 nil) (defvar compare-windows-sync-point nil) +(defcustom compare-windows-get-window-function 'compare-windows-get-recent-window + "Function that provides the window to compare with." + :type '(choice + (function-item :tag "Most recently used window" + compare-windows-get-recent-window) + (function-item :tag "Next window" + compare-windows-get-next-window) + (function :tag "Your function")) + :group 'compare-windows + :version "25.0") + +(defun compare-windows-get-recent-window () + "Return the most recently used window. +First try to get the most recently used window on a visible frame, +then try to get a window on an iconified frame, and finally +consider all existing frames." + (or (get-mru-window 'visible t t) + (get-mru-window 0 t t) + (get-mru-window t t t))) + +(defun compare-windows-get-next-window () + "Return the window next in the cyclic ordering of windows. +In the selected frame contains only one window, consider windows +on all visible frames." + (let ((w2 (next-window))) + (if (eq w2 (selected-window)) + (setq w2 (next-window (selected-window) nil 'visible))) + (if (eq w2 (selected-window)) + (error "No other window")) + w2)) + ;;;###autoload (defun compare-windows (ignore-whitespace) - "Compare text in current window with text in next window. + "Compare text in current window with text in another window. +The option `compare-windows-get-window-function' defines how +to get another window. + Compares the text starting at point in each window, moving over text in each one as far as they match. @@ -179,11 +213,7 @@ on third call it again advances points to the next difference and so on." 'compare-windows-sync-regexp compare-windows-sync))) (setq p1 (point) b1 (current-buffer)) - (setq w2 (next-window)) - (if (eq w2 (selected-window)) - (setq w2 (next-window (selected-window) nil 'visible))) - (if (eq w2 (selected-window)) - (error "No other window")) + (setq w2 (funcall compare-windows-get-window-function)) (setq p2 (window-point w2) b2 (window-buffer w2)) (setq opoint2 p2) @@ -212,7 +242,7 @@ on third call it again advances points to the next difference and so on." ;; optionally skip over it. (and skip-func-1 (save-excursion - (let (p1a p2a w1 w2 result1 result2) + (let (p1a p2a result1 result2) (setq result1 (funcall skip-func-1 opoint1)) (setq p1a (point)) (set-buffer b2) @@ -255,12 +285,15 @@ on third call it again advances points to the next difference and so on." (recenter (car compare-windows-recenter)) (with-selected-window w2 (recenter (cadr compare-windows-recenter)))) ;; If points are still not synchronized, then ding - (when (and (= p1 opoint1) (= p2 opoint2)) - ;; Display error message when current points in two windows - ;; are unmatched and next matching points can't be found. - (compare-windows-dehighlight) - (ding) - (message "No more matching points")))))) + (if (and (= p1 opoint1) (= p2 opoint2)) + (progn + ;; Display error message when current points in two windows + ;; are unmatched and next matching points can't be found. + (compare-windows-dehighlight) + (ding) + (message "No more matches with %s" b2)) + (message "Diff -%s,%s +%s,%s with %s" opoint2 p2 opoint1 p1 b2))) + (message "Match -%s,%s +%s,%s with %s" opoint2 p2 opoint1 p1 b2)))) ;; Move forward over whatever might be called whitespace. ;; compare-windows-whitespace is a regexp that matches whitespace. @@ -303,7 +336,7 @@ on third call it again advances points to the next difference and so on." (defun compare-windows-sync-default-function () (if (not compare-windows-sync-point) (let* ((w1 (selected-window)) - (w2 (next-window w1)) + (w2 (funcall compare-windows-get-window-function)) (b2 (window-buffer w2)) (point-max2 (with-current-buffer b2 (point-max))) (op2 (window-point w2)) diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index 4908c5f4961..f3455efb294 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el @@ -304,7 +304,7 @@ well." (defface diff-changed '((t nil)) "`diff-mode' face used to highlight changed lines." - :version "24.5" + :version "25.1" :group 'diff-mode) (define-obsolete-face-alias 'diff-changed-face 'diff-changed "22.1") (defvar diff-changed-face 'diff-changed) @@ -343,7 +343,7 @@ well." (((class color grayscale) (min-colors 88) (background dark)) :foreground "#dddddd")) "`diff-mode' face used to highlight context and other side-information." - :version "24.5" + :version "25.1" :group 'diff-mode) (define-obsolete-face-alias 'diff-context-face 'diff-context "22.1") (defvar diff-context-face 'diff-context) @@ -1220,6 +1220,9 @@ else cover the whole buffer." (?- (cl-incf minus)) (?! (cl-incf bang)) ((or ?\\ ?#) nil) + (?\n (if diff-valid-unified-empty-line + (cl-incf space) + (setq space 0 plus 0 minus 0 bang 0))) (_ (setq space 0 plus 0 minus 0 bang 0))) (cond ((looking-at diff-hunk-header-re-unified) @@ -1814,6 +1817,16 @@ With a prefix argument, try to REVERSE the hunk." (diff-hunk-status-msg line-offset (diff-xor reverse switched) t))) +(defun diff-kill-applied-hunks () + "Kill all hunks that have already been applied starting at point." + (interactive) + (while (not (eobp)) + (pcase-let ((`(,buf ,line-offset ,pos ,src ,_dst ,switched) + (diff-find-source-location nil nil))) + (if (and line-offset switched) + (diff-hunk-kill) + (diff-hunk-next))))) + (defalias 'diff-mouse-goto-source 'diff-goto-source) (defun diff-goto-source (&optional other-file event) diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el index 589ea454965..9669e2c2313 100644 --- a/lisp/vc/ediff-init.el +++ b/lisp/vc/ediff-init.el @@ -24,6 +24,8 @@ ;;; Code: +(require 'cl-lib) + ;; Start compiler pacifier (defvar ediff-metajob-name) (defvar ediff-meta-buffer) @@ -118,11 +120,8 @@ It needs to be killed when we quit the session.") (?C . ediff-buffer-C))) ;;; Macros -(defmacro ediff-odd-p (arg) - `(eq (logand ,arg 1) 1)) - -(defmacro ediff-buffer-live-p (buf) - `(and ,buf (get-buffer ,buf) (buffer-name (get-buffer ,buf)))) +(defsubst ediff-buffer-live-p (buf) + (and buf (get-buffer buf) (buffer-name (get-buffer buf)))) (defmacro ediff-get-buffer (arg) `(cond ((eq ,arg 'A) ediff-buffer-A) @@ -1456,7 +1455,7 @@ This default should work without changes." ;; The value of dif-num is always 1- the one that user sees. ;; This is why even face is used when dif-num is odd. (ediff-get-symbol-from-alist - buf-type (if (ediff-odd-p dif-num) + buf-type (if (cl-oddp dif-num) ediff-even-diff-face-alist ediff-odd-diff-face-alist) )) diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index 771281555ab..0b7b70219c0 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el @@ -1132,6 +1132,19 @@ repeating the command will highlight other two parts." (unless smerge-use-changed-face '((smerge . refine) (face . smerge-refined-added)))))) +(defun smerge-swap () + "Swap the \"Mine\" and the \"Other\" chunks. +Can be used before things like `smerge-keep-all' or `smerge-resolve' where the +ordering can have some subtle influence on the result, such as preferring the +spacing of the \"Other\" chunk." + (interactive) + (smerge-match-conflict) + (goto-char (match-beginning 3)) + (let ((txt3 (delete-and-extract-region (point) (match-end 3)))) + (insert (delete-and-extract-region (match-beginning 1) (match-end 1))) + (goto-char (match-beginning 1)) + (insert txt3))) + (defun smerge-diff (n1 n2) (smerge-match-conflict) (smerge-ensure-match n1) diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el index d3e10a63f56..e270ec401ba 100644 --- a/lisp/vc/vc-annotate.el +++ b/lisp/vc/vc-annotate.el @@ -54,7 +54,13 @@ When nil, the color range from `vc-annotate-color-map' is applied to the foreground, and the color from the option `vc-annotate-background' is applied to the background." :type 'boolean - :version "24.5" + :set (lambda (symbol value) + (set-default symbol value) + (when (boundp 'vc-annotate-color-map) + (with-demoted-errors + ;; Update the value of the dependent variable. + (custom-reevaluate-setting 'vc-annotate-color-map)))) + :version "25.1" :group 'vc) (defcustom vc-annotate-color-map @@ -247,7 +253,7 @@ cover the range from the oldest annotation to the newest." (interactive "P") (let ((newest 0.0) (oldest 999999.) ;Any CVS users at the founding of Rome? - (current (vc-annotate-convert-time (current-time))) + (current (vc-annotate-convert-time)) date) (message "Redisplaying annotation...") ;; Run through this file and find the oldest and newest dates annotated. @@ -658,11 +664,10 @@ nil if no such cell exists." (setq i (+ i 1))) tmp-cons)) ; Return the appropriate value -(defun vc-annotate-convert-time (time) - "Convert a time value to a floating-point number of days. -The argument TIME is a list as returned by `current-time' or -`encode-time', only the first two elements of that list are considered." - (/ (+ (* (float (car time)) (lsh 1 16)) (cadr time)) 24 3600)) +(defun vc-annotate-convert-time (&optional time) + "Convert optional value TIME to a floating-point number of days. +TIME defaults to the current time." + (/ (float-time time) 86400)) (defun vc-annotate-difference (&optional offset) "Return the time span in days to the next annotation. @@ -677,7 +682,7 @@ or OFFSET if present." (defun vc-default-annotate-current-time (_backend) "Return the current time, encoded as fractional days." - (vc-annotate-convert-time (current-time))) + (vc-annotate-convert-time)) (defvar vc-annotate-offset nil) diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index 4693998dfaf..de101649802 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el @@ -493,12 +493,7 @@ in the branch repository (or whose status not be determined)." (add-hook 'after-save-hook 'vc-bzr-resolve-when-done nil t) (message "There are unresolved conflicts in this file"))) -(defun vc-bzr-workfile-unchanged-p (file) - (eq 'unchanged (car (vc-bzr-status file)))) - (defun vc-bzr-working-revision (file) - ;; Together with the code in vc-state-heuristic, this makes it possible - ;; to get the initial VC state of a Bzr file even if Bzr is not installed. (let* ((rootdir (vc-bzr-root file)) (branch-format-file (expand-file-name vc-bzr-admin-branch-format-file rootdir)) @@ -580,10 +575,6 @@ in the branch repository (or whose status not be determined)." "Create a new Bzr repository." (vc-bzr-command "init" nil 0 nil)) -(defun vc-bzr-init-revision (&optional _file) - "Always return nil, as Bzr cannot register explicit versions." - nil) - (defun vc-bzr-previous-revision (_file rev) (if (string-match "\\`[0-9]+\\'" rev) (number-to-string (1- (string-to-number rev))) @@ -594,11 +585,8 @@ in the branch repository (or whose status not be determined)." (number-to-string (1+ (string-to-number rev))) (error "Don't know how to compute the next revision of %s" rev))) -(defun vc-bzr-register (files &optional rev _comment) - "Register FILES under bzr. -Signal an error unless REV is nil. -COMMENT is ignored." - (if rev (error "Can't register explicit revision with bzr")) +(defun vc-bzr-register (files &optional _comment) + "Register FILES under bzr. COMMENT is ignored." (vc-bzr-command "add" nil 0 files)) ;; Could run `bzr status' in the directory and see if it succeeds, but @@ -608,18 +596,6 @@ COMMENT is ignored." The criterion is that there is a `.bzr' directory in the same or a superior directory.") -(defun vc-bzr-could-register (file) - "Return non-nil if FILE could be registered under bzr." - (and (vc-bzr-responsible-p file) ; shortcut - (condition-case () - (with-temp-buffer - (vc-bzr-command "add" t 0 file "--dry-run") - ;; The command succeeds with no output if file is - ;; registered (in bzr 0.8). - (goto-char (point-min)) - (looking-at "added ")) - (error)))) - (defun vc-bzr-unregister (file) "Unregister FILE from bzr." (vc-bzr-command "remove" nil 0 file "--keep")) @@ -634,10 +610,8 @@ or a superior directory.") "" (replace-regexp-in-string "\n[ \t]?" " " str))))) -(defun vc-bzr-checkin (files rev comment) - "Check FILES in to bzr with log message COMMENT. -REV non-nil gets an error." - (if rev (error "Can't check in a specific revision with bzr")) +(defun vc-bzr-checkin (files comment) + "Check FILES in to bzr with log message COMMENT." (apply 'vc-bzr-command "commit" nil 0 files (cons "-m" (log-edit-extract-headers `(("Author" . ,(vc-bzr--sanitize-header "--author")) @@ -657,7 +631,7 @@ REV non-nil gets an error." (expand-file-name ".bzrignore" (vc-bzr-root file))) -(defun vc-bzr-checkout (_file &optional _editable rev) +(defun vc-bzr-checkout (_file &optional rev) (if rev (error "Operation not supported") ;; Else, there's nothing to do. nil)) @@ -722,7 +696,7 @@ If LIMIT is non-nil, show no more than this many entries." (with-current-buffer buffer (apply 'vc-bzr-command "log" buffer 'async files (append - (when shortlog '("--line")) + (if shortlog '("--line") '("--long")) ;; The extra complications here when start-revision and limit ;; are set are due to bzr log's --forward argument, which ;; could be enabled via an alias in bazaar.conf. @@ -757,7 +731,7 @@ If LIMIT is non-nil, show no more than this many entries." (defun vc-bzr-expanded-log-entry (revision) (with-temp-buffer (apply 'vc-bzr-command "log" t nil nil - (list (format "-r%s" revision))) + (list "--long" (format "-r%s" revision))) (goto-char (point-min)) (when (looking-at "^-+\n") ;; Indent the expanded log entry. @@ -793,7 +767,7 @@ If LIMIT is non-nil, show no more than this many entries." (autoload 'vc-switches "vc") -(defun vc-bzr-diff (files &optional rev1 rev2 buffer) +(defun vc-bzr-diff (files &optional rev1 rev2 buffer async) "VC bzr backend for diff." (let* ((switches (vc-switches 'bzr 'diff)) (args @@ -809,7 +783,7 @@ If LIMIT is non-nil, show no more than this many entries." (or rev2 ""))))))) ;; `bzr diff' exits with code 1 if diff is non-empty. (apply #'vc-bzr-command "diff" (or buffer "*vc-diff*") - (if vc-disable-async-diff 1 'async) files + (if async 1 'async) files args))) @@ -983,7 +957,7 @@ stream. Standard error output is discarded." (push (list new-name 'edited (vc-bzr-create-extra-fileinfo old-name)) result))) ;; do nothing for non existent files - ((memq translated '(not-found ignored))) + ((eq translated 'not-found)) (t (push (list (file-relative-name (buffer-substring-no-properties @@ -993,9 +967,9 @@ stream. Standard error output is discarded." (forward-line)) (funcall update-function result))) -(defun vc-bzr-dir-status (dir update-function) +(defun vc-bzr-dir-status-files (dir files update-function) "Return a list of conses (file . state) for DIR." - (vc-bzr-command "status" (current-buffer) 'async dir "-v" "-S") + (apply 'vc-bzr-command "status" (current-buffer) 'async dir "-v" "-S" files) (vc-run-delayed (vc-bzr-after-dir-status update-function ;; "bzr status" results are relative to @@ -1007,13 +981,6 @@ stream. Standard error output is discarded." ;; frob the results accordingly. (file-relative-name dir (vc-bzr-root dir))))) -(defun vc-bzr-dir-status-files (dir files _default-state update-function) - "Return a list of conses (file . state) for DIR." - (apply 'vc-bzr-command "status" (current-buffer) 'async dir "-v" "-S" files) - (vc-run-delayed - (vc-bzr-after-dir-status update-function - (file-relative-name dir (vc-bzr-root dir))))) - (defvar vc-bzr-shelve-map (let ((map (make-sparse-keymap))) ;; Turn off vc-dir marking @@ -1167,10 +1134,7 @@ stream. Standard error output is discarded." "Create a stash with the current tree state." (interactive) (vc-bzr-command "shelve" nil 0 nil "--all" "-m" - (let ((ct (current-time))) - (concat - (format-time-string "Snapshot on %Y-%m-%d" ct) - (format-time-string " at %H:%M" ct)))) + (format-time-string "Snapshot on %Y-%m-%d at %H:%M")) (vc-bzr-command "unshelve" nil 0 nil "--apply" "--keep") (vc-resynch-buffer (vc-bzr-root default-directory) t t)) diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el index f7684a3b82c..c1d32cea605 100644 --- a/lisp/vc/vc-cvs.el +++ b/lisp/vc/vc-cvs.el @@ -48,9 +48,9 @@ ;; If the file is not writable (despite CVSREAD being ;; undefined), this is probably because the file is being ;; "watched" by other developers. - ;; (If vc-mistrust-permissions was t, we actually shouldn't - ;; trust this, but there is no other way to learn this from - ;; CVS at the moment (version 1.9).) + ;; (We actually shouldn't trust this, but there is + ;; no other way to learn this from CVS at the + ;; moment (version 1.9).) (string-match "r-..-..-." (nth 8 attrib))) 'announce 'implicit)))))) @@ -110,7 +110,7 @@ This is only meaningful if you don't use the implicit checkout model :version "21.1" :group 'vc-cvs) -(defcustom vc-cvs-stay-local 'only-file +(defcustom vc-stay-local 'only-file "Non-nil means use local operations when possible for remote repositories. This avoids slow queries over the network and instead uses heuristics and past information to determine the current status of a file. @@ -222,7 +222,7 @@ See also variable `vc-cvs-sticky-date-format-string'." (defun vc-cvs-state (file) "CVS-specific version of `vc-state'." - (if (vc-stay-local-p file 'CVS) + (if (vc-cvs-stay-local-p file) (let ((state (vc-file-getprop file 'vc-state))) ;; If we should stay local, use the heuristic but only if ;; we don't have a more precise state already available. @@ -282,7 +282,7 @@ committed and support display of sticky tags." (autoload 'vc-switches "vc") -(defun vc-cvs-register (files &optional _rev comment) +(defun vc-cvs-register (files &optional comment) "Register FILES into the CVS version-control system. COMMENT can be used to provide an initial description of FILES. Passes either `vc-cvs-register-switches' or `vc-register-switches' @@ -321,20 +321,38 @@ its parents." (directory-file-name dir)))) (eq dir t))) -(defun vc-cvs-checkin (files rev comment) +;; vc-cvs-checkin used to take a 'rev' second argument that allowed +;; checking in onto a specified branch tip rather than the current +;; default branch, but nothing in the entire rest of VC exercised +;; this code. Removing it simplifies the backend interface for all +;; modes. +;; +;; Here's the setup code preserved in amber, in case the logic needs +;; to be broken out into a method someday; (if rev (concat "-r" rev)) +;; used to be part of the switches passed to vc-cvs-command. +;; +;; (unless (or (not rev) (vc-cvs-valid-revision-number-p rev)) +;; (if (not (vc-cvs-valid-symbolic-tag-name-p rev)) +;; (error "%s is not a valid symbolic tag name" rev) +;; ;; If the input revision is a valid symbolic tag name, we create it +;; ;; as a branch, commit and switch to it. +;; (apply 'vc-cvs-command nil 0 files "tag" "-b" (list rev)) +;; (apply 'vc-cvs-command nil 0 files "update" "-r" (list rev)) +;; (mapc (lambda (file) (vc-file-setprop file 'vc-cvs-sticky-tag rev)) +;; files))) +;; +;; The following postamble cleaned up after the branch change: +;; +;; ;; if this was an explicit check-in (does not include creation of +;; ;; a branch), remove the sticky tag. +;; (if (and rev (not (vc-cvs-valid-symbolic-tag-name-p rev))) +;; (vc-cvs-command nil 0 files "update" "-A")))) +;; files))) +;; +(defun vc-cvs-checkin (files comment) "CVS-specific version of `vc-backend-checkin'." - (unless (or (not rev) (vc-cvs-valid-revision-number-p rev)) - (if (not (vc-cvs-valid-symbolic-tag-name-p rev)) - (error "%s is not a valid symbolic tag name" rev) - ;; If the input revision is a valid symbolic tag name, we create it - ;; as a branch, commit and switch to it. - (apply 'vc-cvs-command nil 0 files "tag" "-b" (list rev)) - (apply 'vc-cvs-command nil 0 files "update" "-r" (list rev)) - (mapc (lambda (file) (vc-file-setprop file 'vc-cvs-sticky-tag rev)) - files))) (let ((status (apply 'vc-cvs-command nil 1 files - "ci" (if rev (concat "-r" rev)) - (concat "-m" comment) + "ci" (concat "-m" comment) (vc-switches 'CVS 'checkin)))) (set-buffer "*vc*") (goto-char (point-min)) @@ -365,12 +383,7 @@ its parents." ;; tell it from the permissions of the file (see ;; vc-cvs-checkout-model). (mapc (lambda (file) (vc-file-setprop file 'vc-checkout-model nil)) - files) - - ;; if this was an explicit check-in (does not include creation of - ;; a branch), remove the sticky tag. - (if (and rev (not (vc-cvs-valid-symbolic-tag-name-p rev))) - (vc-cvs-command nil 0 files "update" "-A")))) + files))) (defun vc-cvs-find-revision (file rev buffer) (apply 'vc-cvs-command @@ -382,9 +395,8 @@ its parents." "-p" (vc-switches 'CVS 'checkout))) -(defun vc-cvs-checkout (file &optional editable rev) +(defun vc-cvs-checkout (file &optional rev) "Checkout a revision of FILE into the working area. -EDITABLE non-nil means that the file should be writable. REV is the revision to check out." (message "Checking out %s..." file) ;; Change buffers to get local value of vc-checkout-switches. @@ -392,7 +404,7 @@ REV is the revision to check out." (if (and (file-exists-p file) (not rev)) ;; If no revision was specified, just make the file writable ;; if necessary (using `cvs-edit' if requested). - (and editable (not (eq (vc-cvs-checkout-model (list file)) 'implicit)) + (and (not (eq (vc-cvs-checkout-model (list file)) 'implicit)) (if vc-cvs-use-edit (vc-cvs-command nil 0 file "edit") (set-file-modes file (logior (file-modes file) 128)) @@ -400,7 +412,7 @@ REV is the revision to check out." ;; Check out a particular revision (or recreate the file). (vc-file-setprop file 'vc-working-revision nil) (apply 'vc-cvs-command nil 0 file - (and editable "-w") + "-w" "update" (when rev (unless (eq rev t) @@ -428,6 +440,35 @@ REV is the revision to check out." ;; Make the file read-only by switching off all w-bits (set-file-modes file (logand (file-modes file) 3950))))) +(defun vc-cvs-merge-file (file) + "Accept a file merge request, prompting for revisions." + (let* ((first-revision + (vc-read-revision + (concat "Merge " file + " from branch or revision " + "(default news on current branch): ") + (list file) + 'CVS)) + second-revision + status) + (cond + ((string= first-revision "") + (setq status (vc-cvs-merge-news file))) + (t + (if (not (vc-branch-p first-revision)) + (setq second-revision + (vc-read-revision + "Second revision: " + (list file) 'CVS nil + (concat (vc-branch-part first-revision) "."))) + ;; We want to merge an entire branch. Set revisions + ;; accordingly, so that vc-cvs-merge understands us. + (setq second-revision first-revision) + ;; first-revision must be the starting point of the branch + (setq first-revision (vc-branch-part first-revision))) + (setq status (vc-cvs-merge file first-revision second-revision)))) + status)) + (defun vc-cvs-merge (file first-revision &optional second-revision) "Merge changes into current working copy of FILE. The changes are between FIRST-REVISION and SECOND-REVISION." @@ -515,7 +556,7 @@ Remaining arguments are ignored." ;; It's just the catenation of the individual logs. (vc-cvs-command buffer - (if (vc-stay-local-p files 'CVS) 'async 0) + (if (vc-cvs-stay-local-p files) 'async 0) files "log") (with-current-buffer buffer (vc-run-delayed (vc-rcs-print-log-cleanup))) @@ -528,11 +569,10 @@ Remaining arguments are ignored." (autoload 'vc-version-backup-file "vc") (declare-function vc-coding-system-for-diff "vc" (file)) -(defun vc-cvs-diff (files &optional oldvers newvers buffer) +(defun vc-cvs-diff (files &optional oldvers newvers buffer async) "Get a difference report using CVS between two revisions of FILE." (let* (process-file-side-effects - (async (and (not vc-disable-async-diff) - (vc-stay-local-p files 'CVS))) + (async (and async (vc-cvs-stay-local-p files))) (invoke-cvs-diff-list nil) status) ;; Look through the file list and see if any files have backups @@ -584,7 +624,7 @@ Remaining arguments are ignored." "Execute \"cvs annotate\" on FILE, inserting the contents in BUFFER. Optional arg REVISION is a revision to annotate from." (vc-cvs-command buffer - (if (vc-stay-local-p file 'CVS) + (if (vc-cvs-stay-local-p file) 'async 0) file "annotate" (if revision (concat "-r" revision))) @@ -605,7 +645,7 @@ Optional arg REVISION is a revision to annotate from." "Return the current time, based at midnight of the current day, and encoded as fractional days." (vc-annotate-convert-time - (apply 'encode-time 0 0 0 (nthcdr 3 (decode-time (current-time)))))) + (apply 'encode-time 0 0 0 (nthcdr 3 (decode-time))))) (defun vc-cvs-annotate-time () "Return the time of the next annotation (as fraction of days) @@ -721,7 +761,7 @@ If UPDATE is non-nil, then update (resynch) any affected buffers." (defun vc-cvs-make-version-backups-p (file) "Return non-nil if version backups should be made for FILE." - (vc-stay-local-p file 'CVS)) + (vc-cvs-stay-local-p file)) (defun vc-cvs-check-headers () "Check if the current file has any headers in it." @@ -745,8 +785,34 @@ and that it passes `vc-cvs-global-switches' to it before FLAGS." (append vc-cvs-global-switches flags)))) -(defun vc-cvs-stay-local-p (file) ;Back-compatibility. - (vc-stay-local-p file 'CVS)) +(defun vc-cvs-stay-local-p (file) + "Return non-nil if VC should stay local when handling FILE. +If FILE is a list of files, return non-nil if any of them +individually should stay local." + (if (listp file) + (delq nil (mapcar (lambda (arg) (vc-cvs-stay-local-p arg)) file)) + (let* ((sym (vc-make-backend-sym 'CVS 'stay-local)) + (stay-local (if (boundp sym) (symbol-value sym) vc-stay-local))) + (if (symbolp stay-local) stay-local + (let ((dirname (if (file-directory-p file) + (directory-file-name file) + (file-name-directory file)))) + (eq 'yes + (or (vc-file-getprop dirname 'vc-cvs-stay-local-p) + (vc-file-setprop + dirname 'vc-cvs-stay-local-p + (let ((hostname (vc-cvs-repository-hostname dirname))) + (if (not hostname) + 'no + (let ((default t)) + (if (eq (car-safe stay-local) 'except) + (setq default nil stay-local (cdr stay-local))) + (when (consp stay-local) + (setq stay-local + (mapconcat 'identity stay-local "\\|"))) + (if (if (string-match stay-local hostname) + default (not default)) + 'yes 'no)))))))))))) (defun vc-cvs-repository-hostname (dirname) "Hostname of the CVS server associated to workarea DIRNAME." @@ -1003,13 +1069,14 @@ state." (if basedir result (funcall update-function result)))) -(defun vc-cvs-dir-status (dir update-function) - "Create a list of conses (file . state) for DIR." - ;; FIXME check all files in DIR instead? - (let ((local (vc-stay-local-p dir 'CVS))) - (if (and local (not (eq local 'only-file))) +(defun vc-cvs-dir-status-files (dir files update-function) + "Create a list of conses (file . state) for FILES in DIR. +Query all files in DIR if files is nil." + (let ((local (vc-cvs-stay-local-p dir))) + (if (and (not files) local (not (eq local 'only-file))) (vc-cvs-dir-status-heuristic dir update-function) - (vc-cvs-command (current-buffer) 'async dir "-f" "status") + (if (not files) (setq files (vc-expand-dirs (list dir) 'CVS))) + (vc-cvs-command (current-buffer) 'async dir "-f" "status" files) ;; Alternative implementation: use the "update" command instead of ;; the "status" command. ;; (vc-cvs-command (current-buffer) 'async @@ -1018,12 +1085,6 @@ state." (vc-run-delayed (vc-cvs-after-dir-status update-function))))) -(defun vc-cvs-dir-status-files (dir files _default-state update-function) - "Create a list of conses (file . state) for DIR." - (apply 'vc-cvs-command (current-buffer) 'async dir "-f" "status" files) - (vc-run-delayed - (vc-cvs-after-dir-status update-function))) - (defun vc-cvs-file-to-string (file) "Read the content of FILE and return it as a string." (condition-case nil diff --git a/lisp/vc/vc-dav.el b/lisp/vc/vc-dav.el index 9b67d74c779..f107764f404 100644 --- a/lisp/vc/vc-dav.el +++ b/lisp/vc/vc-dav.el @@ -77,19 +77,17 @@ See `vc-checkout-model' for a list of possible values." "Return the current workfile version of URL." "Unknown") -(defun vc-dav-register (url &optional rev comment) +(defun vc-dav-register (url &optional _comment) "Register URL in the DAV backend." ;; Do we need to do anything here? FIXME? ) -(defun vc-dav-checkin (url rev comment) - "Commit changes in URL to WebDAV. -If REV is non-nil, that should become the new revision number. -COMMENT is used as a check-in comment." +(defun vc-dav-checkin (url comment) + "Commit changes in URL to WebDAV. COMMENT is used as a check-in comment." ;; This should PUT the resource and release any locks that we hold. ) -(defun vc-dav-checkout (url &optional editable rev destfile) +(defun vc-dav-checkout (url &optional rev destfile) "Check out revision REV of URL into the working area. If EDITABLE is non-nil URL should be writable by the user and if @@ -119,7 +117,7 @@ only needs to update the status of URL within the backend. "Insert the revision log of URL into the *vc* buffer." ) -(defun vc-dav-diff (url &optional rev1 rev2) +(defun vc-dav-diff (url &optional rev1 rev2 buffer async) "Insert the diff for URL into the *vc-diff* buffer. If REV1 and REV2 are non-nil report differences from REV1 to REV2. If REV1 is nil, use the current workfile version as the older version. @@ -135,10 +133,6 @@ It should return a status of either 0 (no differences found), or ;;; Optional functions -;; Should be faster than vc-dav-state - but how? -(defun vc-dav-state-heuristic (url) - "Estimate the version control state of URL at visiting time." - (vc-dav-state url)) ;; This should use url-dav-get-properties with a depth of `1' to get ;; all the properties. @@ -146,27 +140,13 @@ It should return a status of either 0 (no differences found), or "find the version control state of all files in DIR in a fast way." ) -(defun vc-dav-workfile-unchanged-p (url) - "Return non-nil if URL is unchanged from its current workfile version." - ;; Probably impossible with webdav - ) - (defun vc-dav-responsible-p (url) "Return non-nil if DAV considers itself `responsible' for URL." ;; Check for DAV support on the web server. t) -(defun vc-dav-could-register (url) - "Return non-nil if URL could be registered under this backend." - ;; Check for DAV support on the web server. - t) - ;;; Unimplemented functions ;; -;; vc-dav-latest-on-branch-p(URL) -;; Return non-nil if the current workfile version of FILE is the -;; latest on its branch. There are no branches in webdav yet. -;; ;; vc-dav-mode-line-string(url) ;; Return a dav-specific mode line string for URL. Are there any ;; specific states that we want exposed? diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index 4368e8a0043..4955c5abf93 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el @@ -433,7 +433,8 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc." ;; previous node was in a different directory. (let* ((rd (file-relative-name entrydir)) (prev-node (ewoc-prev vc-ewoc node)) - (prev-dir (vc-dir-node-directory prev-node))) + (prev-dir (if prev-node + (vc-dir-node-directory prev-node)))) (unless (string-equal entrydir prev-dir) (ewoc-enter-before vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir)))) @@ -1015,7 +1016,7 @@ specific headers." (vc-call-backend backend 'dir-extra-headers dir) "\n")) -(defun vc-dir-refresh-files (files default-state) +(defun vc-dir-refresh-files (files) "Refresh some files in the *VC-dir* buffer." (let ((def-dir default-directory) (backend vc-dir-backend)) @@ -1033,7 +1034,7 @@ specific headers." (setq default-directory def-dir) (erase-buffer) (vc-call-backend - backend 'dir-status-files def-dir files default-state + backend 'dir-status-files def-dir files (lambda (entries &optional more-to-come) ;; ENTRIES is a list of (FILE VC_STATE EXTRA) items. ;; If MORE-TO-COME is true, then more updates will come from @@ -1098,7 +1099,7 @@ Throw an error if another update process is in progress." (setq default-directory def-dir) (erase-buffer) (vc-call-backend - backend 'dir-status def-dir + backend 'dir-status-files def-dir nil (lambda (entries &optional more-to-come) ;; ENTRIES is a list of (FILE VC_STATE EXTRA) items. ;; If MORE-TO-COME is true, then more updates will come from @@ -1111,8 +1112,7 @@ Throw an error if another update process is in progress." vc-ewoc 'vc-dir-fileinfo->needs-update))) (if remaining (vc-dir-refresh-files - (mapcar 'vc-dir-fileinfo->name remaining) - 'up-to-date) + (mapcar 'vc-dir-fileinfo->name remaining)) (setq mode-line-process nil)))))))))))) (defun vc-dir-show-fileentry (file) @@ -1126,18 +1126,18 @@ outside of VC) and one wants to do some operation on it." "Hide items that are in STATE from display. See `vc-state' for valid values of STATE. -If STATE is nil, default it to up-to-date. +If STATE is nil, hide both `up-to-date' and `ignored' items. Interactively, if `current-prefix-arg' is non-nil, set STATE to -state of item at point. Otherwise, set STATE to up-to-date." +state of item at point, if any." (interactive (list (and current-prefix-arg ;; Command is prefixed. Infer STATE from point. (let ((node (ewoc-locate vc-ewoc))) (and node (vc-dir-fileinfo->state (ewoc-data node))))))) - ;; If STATE is un-specified, use up-to-date. - (setq state (or state 'up-to-date)) - (message "Hiding items in state \"%s\"" state) + (if state + (message "Hiding items in state \"%s\"" state) + (message "Hiding up-to-date and ignored items")) (let ((crt (ewoc-nth vc-ewoc -1)) (first (ewoc-nth vc-ewoc 0))) ;; Go over from the last item to the first and remove the @@ -1158,8 +1158,10 @@ state of item at point. Otherwise, set STATE to up-to-date." ;; Next item is a directory. (vc-dir-fileinfo->directory (ewoc-data next)))) ;; Remove files in specified STATE. STATE can be a - ;; symbol or a user-name. - (equal (vc-dir-fileinfo->state data) state)) + ;; symbol, a user-name, or nil. + (if state + (equal (vc-dir-fileinfo->state data) state) + (memq (vc-dir-fileinfo->state data) '(up-to-date ignored)))) (ewoc-delete vc-ewoc crt)) (setq crt prev))))) diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el index 4fd9691d2a2..e1bf05c8916 100644 --- a/lisp/vc/vc-dispatcher.el +++ b/lisp/vc/vc-dispatcher.el @@ -429,7 +429,7 @@ If the current buffer is a Dired buffer, revert it." ;; even if the dispatcher client mode has messed with file contents (as in, ;; for example, VCS keyword expansion). -(declare-function view-mode-exit "view" (&optional return-to-alist exit-action all-win)) +(declare-function view-mode-exit "view" (&optional exit-only exit-action all-win)) (defun vc-position-context (posn) "Save a bit of the text around POSN in the current buffer. @@ -543,7 +543,7 @@ editing!" (if (file-writable-p file) (and view-mode (let ((view-old-buffer-read-only nil)) - (view-mode-exit))) + (view-mode-exit t))) (and (not view-mode) (not (eq (get major-mode 'mode-class) 'special)) (view-mode-enter)))) @@ -702,7 +702,7 @@ the buffer contents as a comment." ;; Now make sure we see the expanded headers (when log-fileset (mapc - (lambda (file) (vc-resynch-buffer file vc-keep-workfiles t)) + (lambda (file) (vc-resynch-buffer file t t)) log-fileset)) (when (vc-dispatcher-browsing) (vc-dir-move-to-goal-column)) diff --git a/lisp/vc/vc-filewise.el b/lisp/vc/vc-filewise.el new file mode 100644 index 00000000000..75ac2561e8b --- /dev/null +++ b/lisp/vc/vc-filewise.el @@ -0,0 +1,84 @@ +;;; vc-filewise.el --- common functions for file-oriented back ends. + +;; Copyright (C) 1992-1996, 1998-2014 Free Software Foundation, Inc. + +;; Author: FSF (see vc.el for full credits) +;; Maintainer: Andre Spiegel +;; Package: vc + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; Common functions for file-oriented back ends - SCCS, RCS, SRC, CVS +;; +;; The main purpose of this file is so none of this code has to live +;; in the always-resident vc-hooks. A secondary purpose is to remove +;; code specific to this class of back ends from vc.el. + +;;; Code: + +(eval-when-compile (require 'vc)) + +(defun vc-master-name (file) + "Return the master name of FILE. +If the file is not registered, or the master name is not known, return nil." + (or (vc-file-getprop file 'vc-name) + ;; force computation of the property by calling + ;; vc-BACKEND-registered explicitly + (let ((backend (vc-backend file))) + (if (and backend + (vc-filewise-registered backend file)) + (vc-file-getprop file 'vc-name))))) + +(defun vc-rename-master (oldmaster newfile templates) + "Rename OLDMASTER to be the master file for NEWFILE based on TEMPLATES." + (let* ((dir (file-name-directory (expand-file-name oldmaster))) + (newdir (or (file-name-directory newfile) "")) + (newbase (file-name-nondirectory newfile)) + (masters + ;; List of potential master files for `newfile' + (mapcar + (lambda (s) (vc-possible-master s newdir newbase)) + templates))) + (when (or (file-symlink-p oldmaster) + (file-symlink-p (file-name-directory oldmaster))) + (error "This is unsafe in the presence of symbolic links")) + (rename-file + oldmaster + (catch 'found + ;; If possible, keep the master file in the same directory. + (dolist (f masters) + (when (and f (string= (file-name-directory (expand-file-name f)) dir)) + (throw 'found f))) + ;; If not, just use the first possible place. + (dolist (f masters) + (and f (or (not (setq dir (file-name-directory f))) + (file-directory-p dir)) + (throw 'found f))) + (error "New file lacks a version control directory"))))) + +(defun vc-filewise-registered (backend file) + "Check if FILE is registered in BACKEND using vc-BACKEND-master-templates." + (let ((sym (vc-make-backend-sym backend 'master-templates))) + (unless (get backend 'vc-templates-grabbed) + (put backend 'vc-templates-grabbed t)) + (let ((result (vc-check-master-templates file (symbol-value sym)))) + (if (stringp result) + (vc-file-setprop file 'vc-name result) + nil)))) ; Not registered + +(provide 'vc-filewise) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 9c8ab3ba393..65f683c7808 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -50,32 +50,27 @@ ;; STATE-QUERYING FUNCTIONS ;; * registered (file) OK ;; * state (file) OK -;; - state-heuristic (file) NOT NEEDED +;; - dir-status-files (dir files uf) OK ;; * working-revision (file) OK -;; - latest-on-branch-p (file) NOT NEEDED ;; * checkout-model (files) OK -;; - workfile-unchanged-p (file) OK ;; - mode-line-string (file) OK ;; STATE-CHANGING FUNCTIONS ;; * create-repo () OK ;; * register (files &optional rev comment) OK -;; - init-revision (file) NOT NEEDED ;; - responsible-p (file) OK -;; - could-register (file) NOT NEEDED, DEFAULT IS GOOD ;; - receive-file (file rev) NOT NEEDED ;; - unregister (file) OK ;; * checkin (files rev comment) OK ;; * find-revision (file rev buffer) OK -;; * checkout (file &optional editable rev) OK +;; * checkout (file &optional rev) OK ;; * revert (file &optional contents-done) OK -;; - rollback (files) COULD BE SUPPORTED -;; - merge (file rev1 rev2) It would be possible to merge +;; - merge-file (file rev1 rev2) It would be possible to merge ;; changes into a single file, but ;; when committing they wouldn't ;; be identified as a merge ;; by git, so it's probably ;; not a good idea. -;; - merge-news (file) see `merge' +;; - merge-news (file) see `merge-file' ;; - steal-lock (file &optional revision) NOT NEEDED ;; HISTORY FUNCTIONS ;; * print-log (files buffer &optional shortlog start-revision limit) OK @@ -83,7 +78,7 @@ ;; - show-log-entry (revision) OK ;; - comment-history (file) ?? ;; - update-changelog (files) COULD BE SUPPORTED -;; * diff (file &optional rev1 rev2 buffer) OK +;; * diff (file &optional rev1 rev2 buffer async) OK ;; - revision-completion-table (files) OK ;; - annotate-command (file buf &optional rev) OK ;; - annotate-time () OK @@ -94,14 +89,13 @@ ;; - retrieve-tag (dir name update) OK ;; MISCELLANEOUS ;; - make-version-backups-p (file) NOT NEEDED -;; - repository-hostname (dirname) NOT NEEDED ;; - previous-revision (file rev) OK ;; - next-revision (file rev) OK ;; - check-headers () COULD BE SUPPORTED -;; - clear-headers () NOT NEEDED ;; - delete-file (file) OK ;; - rename-file (old new) OK -;; - find-file-hook () NOT NEEDED +;; - find-file-hook () OK +;; - conflicted-files OK ;;; Code: @@ -247,9 +241,6 @@ matching the resulting Git log output, and KEYWORDS is a list of str) (vc-git--rev-parse "HEAD")))) -(defun vc-git-workfile-unchanged-p (file) - (eq 'up-to-date (vc-git-state file))) - (defun vc-git-mode-line-string (file) "Return a string for `vc-mode-line' to put in the mode line for FILE." (let* ((rev (vc-working-revision file)) @@ -480,15 +471,11 @@ or an empty string if none." (vc-run-delayed (vc-git-after-dir-status-stage stage files update-function))) -(defun vc-git-dir-status (_dir update-function) +(defun vc-git-dir-status-files (_dir files update-function) "Return a list of (FILE STATE EXTRA) entries for DIR." ;; Further things that would have to be fixed later: ;; - how to handle unregistered directories ;; - how to support vc-dir on a subdir of the project tree - (vc-git-dir-status-goto-stage 'update-index nil update-function)) - -(defun vc-git-dir-status-files (_dir files _default-state update-function) - "Return a list of (FILE STATE EXTRA) entries for FILES in DIR." (vc-git-dir-status-goto-stage 'update-index files update-function)) (defvar vc-git-stash-map @@ -604,7 +591,7 @@ The car of the list is the current branch." "Create a new Git repository." (vc-git-command nil 0 nil "init")) -(defun vc-git-register (files &optional _rev _comment) +(defun vc-git-register (files &optional _comment) "Register FILES into the git version-control system." (let (flist dlist) (dolist (crt files) @@ -664,7 +651,7 @@ If toggling on, also insert its message into the buffer." "Major mode for editing Git log messages. It is based on `log-edit-mode', and has Git-specific extensions.") -(defun vc-git-checkin (files _rev comment) +(defun vc-git-checkin (files comment) (let* ((file1 (or (car files) default-directory)) (root (vc-git-root file1)) (default-directory (expand-file-name root)) @@ -708,7 +695,7 @@ It is based on `log-edit-mode', and has Git-specific extensions.") (expand-file-name ".gitignore" (vc-git-root file))) -(defun vc-git-checkout (file &optional _editable rev) +(defun vc-git-checkout (file &optional rev) (vc-git-command nil 0 file "checkout" (or rev "HEAD"))) (defun vc-git-revert (file &optional contents-done) @@ -769,6 +756,47 @@ This prompts for a branch to merge from." (with-current-buffer buffer (vc-run-delayed (vc-compilation-mode 'git))) (vc-set-async-update buffer))) +(defun vc-git-conflicted-files (directory) + "Return the list of files with conflicts in DIRECTORY." + (let* ((status + (vc-git--run-command-string directory "status" "--porcelain" "--")) + (lines (when status (split-string status "\n" 'omit-nulls))) + files) + (dolist (line lines files) + (when (string-match "\\([ MADRCU?!][ MADRCU?!]\\) \\(.+\\)\\(?: -> \\(.+\\)\\)?" + line) + (let ((state (match-string 1 line)) + (file (match-string 2 line))) + ;; See git-status(1). + (when (member state '("AU" "UD" "UA" ;; "DD" + "DU" "AA" "UU")) + (push (expand-file-name file directory) files))))))) + +(defun vc-git-resolve-when-done () + "Call \"git add\" if the conflict markers have been removed." + (save-excursion + (goto-char (point-min)) + (unless (re-search-forward "^<<<<<<< " nil t) + (vc-git-command nil 0 buffer-file-name "add") + ;; Remove the hook so that it is not called multiple times. + (remove-hook 'after-save-hook 'vc-git-resolve-when-done t)))) + +(defun vc-git-find-file-hook () + "Activate `smerge-mode' if there is a conflict." + (when (and buffer-file-name + ;; FIXME + ;; 1) the net result is to call git twice per file. + ;; 2) v-g-c-f is documented to take a directory. + ;; http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01126.html + (vc-git-conflicted-files buffer-file-name) + (save-excursion + (goto-char (point-min)) + (re-search-forward "^<<<<<<< " nil 'noerror))) + (vc-file-setprop buffer-file-name 'vc-state 'conflict) + (smerge-start-session) + (add-hook 'after-save-hook 'vc-git-resolve-when-done nil 'local) + (message "There are unresolved conflicts in this file"))) + ;;; HISTORY FUNCTIONS (autoload 'vc-setup-buffer "vc-dispatcher") @@ -842,7 +870,7 @@ If LIMIT is non-nil, show no more than this many entries." (if (not (eq vc-log-view-type 'long)) (cadr vc-git-root-log-format) "^commit *\\([0-9a-z]+\\)")) - ;; Allow expanding short log entries + ;; Allow expanding short log entries. (when (eq vc-log-view-type 'short) (setq truncate-lines t) (set (make-local-variable 'log-view-expanded-log-entry-function) @@ -899,16 +927,73 @@ or BRANCH^ (where \"^\" can be repeated)." (indent-region (point-min) (point-max) 2) (buffer-string)))) + +(defun vc-git-region-history (file buffer lfrom lto) + (vc-git-command buffer 'async nil "log" "-p" ;"--follow" ;FIXME: not supported? + (format "-L%d,%d:%s" lfrom lto (file-relative-name file)))) + +(require 'diff-mode) + +(defvar vc-git-region-history-mode-map + (let ((map (make-composed-keymap + nil (make-composed-keymap + (list diff-mode-map vc-git-log-view-mode-map))))) + map)) + +(defvar vc-git--log-view-long-font-lock-keywords nil) +(defvar font-lock-keywords) +(defvar vc-git-region-history-font-lock-keywords + `((vc-git-region-history-font-lock))) + +(defun vc-git-region-history-font-lock (limit) + (let ((in-diff (save-excursion + (beginning-of-line) + (or (looking-at "^\\(?:diff\\|commit\\)\\>") + (re-search-backward "^\\(?:diff\\|commit\\)\\>" nil t)) + (eq ?d (char-after (match-beginning 0)))))) + (while + (let ((end (save-excursion + (if (re-search-forward "\n\\(diff\\|commit\\)\\>" + limit t) + (match-beginning 1) + limit)))) + (let ((font-lock-keywords (if in-diff diff-font-lock-keywords + vc-git--log-view-long-font-lock-keywords))) + (font-lock-fontify-keywords-region (point) end)) + (goto-char end) + (prog1 (< (point) limit) + (setq in-diff (eq ?d (char-after)))))) + nil)) + +(define-derived-mode vc-git-region-history-mode + vc-git-log-view-mode "Git-Region-History" + "Major mode to browse Git's \"log -p\" output." + (setq-local vc-git--log-view-long-font-lock-keywords + log-view-font-lock-keywords) + (setq-local font-lock-defaults + (cons 'vc-git-region-history-font-lock-keywords + (cdr font-lock-defaults)))) + + (autoload 'vc-switches "vc") -(defun vc-git-diff (files &optional rev1 rev2 buffer) +(defun vc-git-diff (files &optional rev1 rev2 buffer async) "Get a difference report using Git between two revisions of FILES." (let (process-file-side-effects) - (apply #'vc-git-command (or buffer "*vc-diff*") 1 files - (if (and rev1 rev2) "diff-tree" "diff-index") - "--exit-code" - (append (vc-switches 'git 'diff) - (list "-p" (or rev1 "HEAD") rev2 "--"))))) + (if vc-git-diff-switches + (apply #'vc-git-command (or buffer "*vc-diff*") + (if async 'async 1) + files + (if (and rev1 rev2) "diff-tree" "diff-index") + "--exit-code" + (append (vc-switches 'git 'diff) + (list "-p" (or rev1 "HEAD") rev2 "--"))) + (vc-git-command (or buffer "*vc-diff*") 1 files + "difftool" "--exit-code" "--no-prompt" "-x" + (concat "diff " + (mapconcat 'identity + (vc-switches nil 'diff) " ")) + (or rev1 "HEAD") rev2 "--")))) (defun vc-git-revision-table (_files) ;; What about `files'?!? --Stef @@ -987,7 +1072,11 @@ or BRANCH^ (where \"^\" can be repeated)." (point) (1- (point-max))))))) (or (vc-git-symbolic-commit prev-rev) prev-rev)) - (vc-git--rev-parse (concat rev "^")))) + ;; We used to use "^" here, but that fails on MS-Windows if git is + ;; invoked via a batch file, in which case cmd.exe strips the "^" + ;; because it is a special character for cmd which process-file + ;; does not (and cannot) quote. + (vc-git--rev-parse (concat rev "~1")))) (defun vc-git--rev-parse (rev) (with-temp-buffer @@ -1209,16 +1298,18 @@ This command shares argument histories with \\[rgrep] and \\[grep]." "A wrapper around `vc-do-command' for use in vc-git.el. The difference to vc-do-command is that this function always invokes `vc-git-program'." - (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program - ;; http://debbugs.gnu.org/16897 - (unless (and (not (cdr-safe file-or-list)) - (let ((file (or (car-safe file-or-list) - file-or-list))) - (and file - (eq ?/ (aref file (1- (length file)))) - (equal file (vc-git-root file))))) - file-or-list) - (cons "--no-pager" flags))) + (let ((coding-system-for-read vc-git-commits-coding-system) + (coding-system-for-write vc-git-commits-coding-system)) + (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program + ;; http://debbugs.gnu.org/16897 + (unless (and (not (cdr-safe file-or-list)) + (let ((file (or (car-safe file-or-list) + file-or-list))) + (and file + (eq ?/ (aref file (1- (length file)))) + (equal file (vc-git-root file))))) + file-or-list) + (cons "--no-pager" flags)))) (defun vc-git--empty-db-p () "Check if the git db is empty (no commit done yet)." @@ -1231,6 +1322,8 @@ The difference to vc-do-command is that this function always invokes ;; directories. We enable `inhibit-null-byte-detection', otherwise ;; Tramp's eol conversion might be confused. (let ((inhibit-null-byte-detection t) + (coding-system-for-read vc-git-commits-coding-system) + (coding-system-for-write vc-git-commits-coding-system) (process-environment (cons "PAGER=" process-environment))) (apply 'process-file vc-git-program nil buffer nil command args))) diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index df61006ad51..e65009db2ef 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -43,29 +43,22 @@ ;; STATE-QUERYING FUNCTIONS ;; * registered (file) OK ;; * state (file) OK -;; - state-heuristic (file) NOT NEEDED -;; - dir-status (dir update-function) OK -;; - dir-status-files (dir files ds uf) OK +;; - dir-status-files (dir files uf) OK ;; - dir-extra-headers (dir) OK ;; - dir-printer (fileinfo) OK ;; * working-revision (file) OK -;; - latest-on-branch-p (file) ?? ;; * checkout-model (files) OK -;; - workfile-unchanged-p (file) OK ;; - mode-line-string (file) NOT NEEDED ;; STATE-CHANGING FUNCTIONS ;; * register (files &optional rev comment) OK ;; * create-repo () OK -;; - init-revision () NOT NEEDED ;; - responsible-p (file) OK -;; - could-register (file) OK ;; - receive-file (file rev) ?? PROBABLY NOT NEEDED ;; - unregister (file) OK ;; * checkin (files rev comment) OK ;; * find-revision (file rev buffer) OK -;; * checkout (file &optional editable rev) OK +;; * checkout (file &optional rev) OK ;; * revert (file &optional contents-done) OK -;; - rollback (files) ?? PROBABLY NOT NEEDED ;; - merge (file rev1 rev2) NEEDED ;; - merge-news (file) NEEDED ;; - steal-lock (file &optional revision) NOT NEEDED @@ -86,11 +79,9 @@ ;; - retrieve-tag (dir name update) OK FIXME UPDATE BUFFERS ;; MISCELLANEOUS ;; - make-version-backups-p (file) ?? -;; - repository-hostname (dirname) ?? ;; - previous-revision (file rev) OK ;; - next-revision (file rev) OK ;; - check-headers () ?? -;; - clear-headers () ?? ;; - delete-file (file) TEST IT ;; - rename-file (old new) OK ;; - find-file-hook () added for bug#10709 @@ -195,6 +186,7 @@ highlighting the Log View buffer." (defun vc-hg-state (file) "Hg-specific version of `vc-state'." + (setq file (expand-file-name file)) (let* ((status nil) (default-directory (file-name-directory file)) @@ -207,9 +199,10 @@ highlighting the Log View buffer." ;; Ignore all errors. (let ((process-environment ;; Avoid localization of messages so we - ;; can parse the output. - (append (list "TERM=dumb" "LANGUAGE=C") - process-environment))) + ;; can parse the output. Disable pager. + (append + (list "TERM=dumb" "LANGUAGE=C" "HGPLAIN=1") + process-environment))) (process-file vc-hg-program nil t nil "--config" "alias.status=status" @@ -218,19 +211,20 @@ highlighting the Log View buffer." ;; Some problem happened. E.g. We can't find an `hg' ;; executable. (error nil))))))) - (when (eq 0 status) - (when (null (string-match ".*: No such file or directory$" out)) - (let ((state (aref out 0))) - (cond - ((eq state ?=) 'up-to-date) - ((eq state ?A) 'added) - ((eq state ?M) 'edited) - ((eq state ?I) 'ignored) - ((eq state ?R) 'removed) - ((eq state ?!) 'missing) - ((eq state ??) 'unregistered) - ((eq state ?C) 'up-to-date) ;; Older mercurial versions use this. - (t 'up-to-date))))))) + (when (and (eq 0 status) + (> (length out) 0) + (null (string-match ".*: No such file or directory$" out))) + (let ((state (aref out 0))) + (cond + ((eq state ?=) 'up-to-date) + ((eq state ?A) 'added) + ((eq state ?M) 'edited) + ((eq state ?I) 'ignored) + ((eq state ?R) 'removed) + ((eq state ?!) 'missing) + ((eq state ??) 'unregistered) + ((eq state ?C) 'up-to-date) ;; Older mercurial versions use this. + (t 'up-to-date)))))) (defun vc-hg-working-revision (file) "Hg-specific version of `vc-working-revision'." @@ -319,7 +313,7 @@ If LIMIT is non-nil, show no more than this many entries." (autoload 'vc-switches "vc") -(defun vc-hg-diff (files &optional oldvers newvers buffer) +(defun vc-hg-diff (files &optional oldvers newvers buffer async) "Get a difference report using hg between two revisions of FILES." (let* ((firstfile (car files)) (working (and firstfile (vc-working-revision firstfile)))) @@ -327,7 +321,10 @@ If LIMIT is non-nil, show no more than this many entries." (setq oldvers nil)) (when (and (not oldvers) newvers) (setq oldvers working)) - (apply #'vc-hg-command (or buffer "*vc-diff*") nil files "diff" + (apply #'vc-hg-command + (or buffer "*vc-diff*") + (if async 'async nil) + files "diff" (append (vc-switches 'hg 'diff) (when oldvers @@ -399,7 +396,7 @@ Optional arg REVISION is a revision to annotate from." (and (vc-hg-command nil 0 nil "status") (vc-hg-command nil 0 nil (if branchp "bookmark" "tag") name)))) -(defun vc-hg-retrieve-tag (dir name update) +(defun vc-hg-retrieve-tag (dir name _update) "Retrieve the version tagged by NAME of all registered files at or below DIR." (let ((default-directory dir)) (vc-hg-command nil 0 nil "update" name) @@ -440,10 +437,8 @@ Optional arg REVISION is a revision to annotate from." "Rename file from OLD to NEW using `hg mv'." (vc-hg-command nil 0 new "mv" old)) -(defun vc-hg-register (files &optional _rev _comment) - "Register FILES under hg. -REV is ignored. -COMMENT is ignored." +(defun vc-hg-register (files &optional _comment) + "Register FILES under hg. COMMENT is ignored." (vc-hg-command nil 0 files "add")) (defun vc-hg-create-repo () @@ -452,24 +447,13 @@ COMMENT is ignored." (defalias 'vc-hg-responsible-p 'vc-hg-root) -;; Modeled after the similar function in vc-bzr.el -(defun vc-hg-could-register (file) - "Return non-nil if FILE could be registered under hg." - (and (vc-hg-responsible-p file) ; shortcut - (condition-case () - (with-temp-buffer - (vc-hg-command t nil file "add" "--dry-run")) - ;; The command succeeds with no output if file is - ;; registered. - (error)))) - (defun vc-hg-unregister (file) "Unregister FILE from hg." (vc-hg-command nil 0 file "forget")) (declare-function log-edit-extract-headers "log-edit" (headers string)) -(defun vc-hg-checkin (files _rev comment) +(defun vc-hg-checkin (files comment) "Hg-specific version of `vc-backend-checkin'. REV is ignored." (apply 'vc-hg-command nil 0 files @@ -491,7 +475,7 @@ REV is ignored." (vc-hg-root file))) ;; Modeled after the similar function in vc-bzr.el -(defun vc-hg-checkout (file &optional _editable rev) +(defun vc-hg-checkout (file &optional rev) "Retrieve a revision of FILE. EDITABLE is ignored. REV is the revision to check out into WORKFILE." @@ -531,10 +515,6 @@ REV is the revision to check out into WORKFILE." (message "There are unresolved conflicts in this file"))) -;; Modeled after the similar function in vc-bzr.el -(defun vc-hg-workfile-unchanged-p (file) - (eq 'up-to-date (vc-hg-state file))) - ;; Modeled after the similar function in vc-bzr.el (defun vc-hg-revert (file &optional contents-done) (unless contents-done @@ -632,15 +612,12 @@ REV is the revision to check out into WORKFILE." ;; Follows vc-exec-after. (declare-function vc-set-async-update "vc-dispatcher" (process-buffer)) -(defun vc-hg-dir-status (dir update-function) - (vc-hg-command (current-buffer) 'async dir "status" "-C") +(defun vc-hg-dir-status-files (dir files update-function) + (apply 'vc-hg-command (current-buffer) 'async dir "status" + (concat "-mardu" (if files "i")) + "-C" files) (vc-run-delayed - (vc-hg-after-dir-status update-function))) - -(defun vc-hg-dir-status-files (dir files _default-state update-function) - (apply 'vc-hg-command (current-buffer) 'async dir "status" "-C" files) - (vc-run-delayed - (vc-hg-after-dir-status update-function))) + (vc-hg-after-dir-status update-function))) (defun vc-hg-dir-extra-header (name &rest commands) (concat (propertize name 'face 'font-lock-type-face) diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el index df660d193e2..5448f38f042 100644 --- a/lisp/vc/vc-hooks.el +++ b/lisp/vc/vc-hooks.el @@ -32,6 +32,69 @@ (eval-when-compile (require 'cl-lib)) +;; Faces + +(defgroup vc-state-faces nil + "Faces used in the mode line by the VC state indicator." + :group 'vc-faces + :group 'mode-line + :version "25.1") + +(defface vc-state-base-face + '((default)) + "Base face for VC state indicator." + :group 'vc-faces + :group 'mode-line + :version "25.1") + +(defface vc-up-to-date-state + '((default :inherit vc-state-base-face)) + "Face for VC modeline state when the file is up to date." + :version "25.1" + :group 'vc-faces) + +(defface vc-needs-update-state + '((default :inherit vc-state-base-face)) + "Face for VC modeline state when the file needs update." + :version "25.1" + :group 'vc-faces) + +(defface vc-locked-state + '((default :inherit vc-state-base-face)) + "Face for VC modeline state when the file locked." + :version "25.1" + :group 'vc-faces) + +(defface vc-locally-added-state + '((default :inherit vc-state-base-face)) + "Face for VC modeline state when the file is locally added." + :version "25.1" + :group 'vc-faces) + +(defface vc-conflict-state + '((default :inherit vc-state-base-face)) + "Face for VC modeline state when the file contains merge conflicts." + :version "25.1" + :group 'vc-faces) + +(defface vc-removed-state + '((default :inherit vc-state-base-face)) + "Face for VC modeline state when the file was removed from the VC system." + :version "25.1" + :group 'vc-faces) + +(defface vc-missing-state + '((default :inherit vc-state-base-face)) + "Face for VC modeline state when the file is missing from the file system." + :version "25.1" + :group 'vc-faces) + +(defface vc-edited-state + '((default :inherit vc-state-base-face)) + "Face for VC modeline state when the file is up to date." + :version "25.1" + :group 'vc-faces) + ;; Customization Variables (the rest is in vc.el) (defcustom vc-ignore-dir-regexp @@ -44,8 +107,8 @@ interpreted as hostnames." :type 'regexp :group 'vc) -(defcustom vc-handled-backends '(RCS CVS SVN SCCS Bzr Git Hg Mtn Arch) - ;; RCS, CVS, SVN and SCCS come first because they are per-dir +(defcustom vc-handled-backends '(RCS CVS SVN SCCS SRC Bzr Git Hg Mtn) + ;; RCS, CVS, SVN, SCCS, and SRC come first because they are per-dir ;; rather than per-tree. RCS comes first because of the multibackend ;; support intended to use RCS for local commits (with a remote CVS server). "List of version control backends for which VC will be used. @@ -55,13 +118,14 @@ Removing an entry from the list prevents VC from being activated when visiting a file managed by that backend. An empty list disables VC altogether." :type '(repeat symbol) - :version "23.1" + :version "25.1" :group 'vc) ;; Note: we don't actually have a darcs back end yet. -;; Also, Meta-CVS (corresponding to MCVS) is unsupported. +;; Also, Meta-CVS (corresponding to MCVS) and Arch are unsupported. +;; The Arch back end will be retrieved and fixed if it is ever required. (defcustom vc-directory-exclusion-list (purecopy '("SCCS" "RCS" "CVS" "MCVS" - ".svn" ".git" ".hg" ".bzr" + ".src" ".svn" ".git" ".hg" ".bzr" "_MTN" "_darcs" "{arch}")) "List of directory names to be ignored when walking directory trees." :type '(repeat string) @@ -100,87 +164,6 @@ Otherwise, not displayed." :type 'boolean :group 'vc) -(defcustom vc-keep-workfiles t - "Whether to keep work files on disk after commits, on a locking VCS. -This variable has no effect on modern merging-based version -control systems." - :type 'boolean - :group 'vc) - -;; If you fix bug#11490, probably you can set this back to nil. -(defcustom vc-mistrust-permissions t - "If non-nil, don't assume permissions/ownership track version-control status. -If nil, do rely on the permissions. -See also variable `vc-consult-headers'." - :version "24.3" ; nil->t, bug#11490 - :type 'boolean - :group 'vc) - -(defun vc-mistrust-permissions (file) - "Internal access function to variable `vc-mistrust-permissions' for FILE." - (or (eq vc-mistrust-permissions 't) - (and vc-mistrust-permissions - (funcall vc-mistrust-permissions - (vc-backend-subdirectory-name file))))) - -(defcustom vc-stay-local 'only-file - "Non-nil means use local operations when possible for remote repositories. -This avoids slow queries over the network and instead uses heuristics -and past information to determine the current status of a file. - -If value is the symbol `only-file', `vc-dir' will connect to the -server, but heuristics will be used to determine the status for -all other VC operations. - -The value can also be a regular expression or list of regular -expressions to match against the host name of a repository; then VC -only stays local for hosts that match it. Alternatively, the value -can be a list of regular expressions where the first element is the -symbol `except'; then VC always stays local except for hosts matched -by these regular expressions." - :type '(choice - (const :tag "Always stay local" t) - (const :tag "Only for file operations" only-file) - (const :tag "Don't stay local" nil) - (list :format "\nExamine hostname and %v" :tag "Examine hostname ..." - (set :format "%v" :inline t (const :format "%t" :tag "don't" except)) - (regexp :format " stay local,\n%t: %v" :tag "if it matches") - (repeat :format "%v%i\n" :inline t (regexp :tag "or")))) - :version "23.1" - :group 'vc) - -(defun vc-stay-local-p (file &optional backend) - "Return non-nil if VC should stay local when handling FILE. -This uses the `repository-hostname' backend operation. -If FILE is a list of files, return non-nil if any of them -individually should stay local." - (if (listp file) - (delq nil (mapcar (lambda (arg) (vc-stay-local-p arg backend)) file)) - (setq backend (or backend (vc-backend file))) - (let* ((sym (vc-make-backend-sym backend 'stay-local)) - (stay-local (if (boundp sym) (symbol-value sym) vc-stay-local))) - (if (symbolp stay-local) stay-local - (let ((dirname (if (file-directory-p file) - (directory-file-name file) - (file-name-directory file)))) - (eq 'yes - (or (vc-file-getprop dirname 'vc-stay-local-p) - (vc-file-setprop - dirname 'vc-stay-local-p - (let ((hostname (vc-call-backend - backend 'repository-hostname dirname))) - (if (not hostname) - 'no - (let ((default t)) - (if (eq (car-safe stay-local) 'except) - (setq default nil stay-local (cdr stay-local))) - (when (consp stay-local) - (setq stay-local - (mapconcat 'identity stay-local "\\|"))) - (if (if (string-match stay-local hostname) - default (not default)) - 'yes 'no)))))))))))) - ;;; This is handled specially now. ;; Tell Emacs about this new kind of minor mode ;; (add-to-list 'minor-mode-alist '(vc-mode vc-mode)) @@ -391,19 +374,6 @@ If the argument is a list, the files must all have the same back end." "Return where the repository for the current directory is kept." (symbol-name (vc-backend file))) -(defun vc-name (file) - "Return the master name of FILE. -If the file is not registered, or the master name is not known, return nil." - ;; TODO: This should ultimately become obsolete, at least up here - ;; in vc-hooks. - (or (vc-file-getprop file 'vc-name) - ;; force computation of the property by calling - ;; vc-BACKEND-registered explicitly - (let ((backend (vc-backend file))) - (if (and backend - (vc-call-backend backend 'registered file)) - (vc-file-getprop file 'vc-name))))) - (defun vc-checkout-model (backend files) "Indicate how FILES are checked out. @@ -514,51 +484,12 @@ status of this file. Otherwise, the value returned is one of: "Quickly recompute the `state' of FILE." (vc-file-setprop file 'vc-state - (vc-call-backend backend 'state-heuristic file))) + (vc-call-backend backend 'state file))) (defsubst vc-up-to-date-p (file) "Convenience function that checks whether `vc-state' of FILE is `up-to-date'." (eq (vc-state file) 'up-to-date)) -(defun vc-default-state-heuristic (backend file) - "Default implementation of vc-BACKEND-state-heuristic. -It simply calls the real state computation function `vc-BACKEND-state' -and does not employ any heuristic at all." - (vc-call-backend backend 'state file)) - -(defun vc-workfile-unchanged-p (file) - "Return non-nil if FILE has not changed since the last checkout." - (let ((checkout-time (vc-file-getprop file 'vc-checkout-time)) - (lastmod (nth 5 (file-attributes file)))) - ;; This is a shortcut for determining when the workfile is - ;; unchanged. It can fail under some circumstances; see the - ;; discussion in bug#694. - (if (and checkout-time - ;; Tramp and Ange-FTP return this when they don't know the time. - (not (equal lastmod '(0 0)))) - (equal checkout-time lastmod) - (let ((unchanged (vc-call workfile-unchanged-p file))) - (vc-file-setprop file 'vc-checkout-time (if unchanged lastmod 0)) - unchanged)))) - -(defun vc-default-workfile-unchanged-p (backend file) - "Check if FILE is unchanged by diffing against the repository version. -Return non-nil if FILE is unchanged." - (zerop (condition-case err - ;; If the implementation supports it, let the output - ;; go to *vc*, not *vc-diff*, since this is an internal call. - (vc-call-backend backend 'diff (list file) nil nil "*vc*") - (wrong-number-of-arguments - ;; If this error came from the above call to vc-BACKEND-diff, - ;; try again without the optional buffer argument (for - ;; backward compatibility). Otherwise, resignal. - (if (or (not (eq (cadr err) - (indirect-function - (vc-find-backend-function backend 'diff)))) - (not (eq (cl-caddr err) 4))) - (signal (car err) (cdr err)) - (vc-call-backend backend 'diff (list file))))))) - (defun vc-working-revision (file &optional backend) "Return the repository version from which FILE was checked out. If FILE is not registered, this function always returns nil." @@ -584,9 +515,10 @@ If FILE is not registered, this function always returns nil." (put backend 'vc-templates-grabbed t)) (let ((result (vc-check-master-templates file (symbol-value sym)))) (if (stringp result) - (vc-file-setprop file 'vc-name result) + (vc-file-setprop file 'vc-master-name result) nil)))) ; Not registered +;;;###autoload (defun vc-possible-master (s dirname basename) (cond ((stringp s) (format s dirname basename)) @@ -800,33 +732,42 @@ This function assumes that the file is registered." (let* ((backend-name (symbol-name backend)) (state (vc-state file backend)) (state-echo nil) + (face nil) (rev (vc-working-revision file backend))) (propertize (cond ((or (eq state 'up-to-date) (eq state 'needs-update)) (setq state-echo "Up to date file") + (setq face 'vc-up-to-date-state) (concat backend-name "-" rev)) ((stringp state) (setq state-echo (concat "File locked by" state)) + (setq face 'vc-locked-state) (concat backend-name ":" state ":" rev)) ((eq state 'added) (setq state-echo "Locally added file") + (setq face 'vc-locally-added-state) (concat backend-name "@" rev)) ((eq state 'conflict) (setq state-echo "File contains conflicts after the last merge") + (setq face 'vc-conflict-state) (concat backend-name "!" rev)) ((eq state 'removed) (setq state-echo "File removed from the VC system") + (setq face 'vc-removed-state) (concat backend-name "!" rev)) ((eq state 'missing) (setq state-echo "File tracked by the VC system, but missing from the file system") + (setq face 'vc-missing-state) (concat backend-name "?" rev)) (t ;; Not just for the 'edited state, but also a fallback ;; for all other states. Think about different symbols ;; for 'needs-update and 'needs-merge. (setq state-echo "Locally modified file") + (setq face 'vc-edited-state) (concat backend-name ":" rev))) + 'face face 'help-echo (concat state-echo " under the " backend-name " version control system")))) @@ -927,7 +868,6 @@ current, and kill the buffer that visits the link." (let ((map (make-sparse-keymap))) (define-key map "a" 'vc-update-change-log) (define-key map "b" 'vc-switch-backend) - (define-key map "c" 'vc-rollback) (define-key map "d" 'vc-dir) (define-key map "g" 'vc-annotate) (define-key map "G" 'vc-ignore) @@ -946,6 +886,7 @@ current, and kill the buffer that visits the link." (define-key map "=" 'vc-diff) (define-key map "D" 'vc-root-diff) (define-key map "~" 'vc-revision-other-window) + (define-key map "[delete]" 'vc-delete-file) map)) (fset 'vc-prefix-map vc-prefix-map) (define-key ctl-x-map "v" 'vc-prefix-map) @@ -996,13 +937,6 @@ current, and kill the buffer that visits the link." '(menu-item "Insert Header" vc-insert-headers :help "Insert headers into a file for use with a version control system. ")) - (bindings--define-key map [undo] - '(menu-item "Undo Last Check-In" vc-rollback - :enable (let ((backend (if buffer-file-name - (vc-backend buffer-file-name)))) - (or (not backend) - (vc-find-backend-function backend 'rollback))) - :help "Remove the most recent changeset committed to the repository")) (bindings--define-key map [vc-revert] '(menu-item "Revert to Base Version" vc-revert :help "Revert working copies of the selected file set to their repository contents")) diff --git a/lisp/vc/vc-mtn.el b/lisp/vc/vc-mtn.el index ea071c8586a..d1736a42a3d 100644 --- a/lisp/vc/vc-mtn.el +++ b/lisp/vc/vc-mtn.el @@ -79,7 +79,8 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." (defun vc-mtn-checkout-model (_files) 'implicit) (defun vc-mtn-root (file) - (setq file (if (file-directory-p file) + (setq file (expand-file-name file) + file (if (file-directory-p file) (file-name-as-directory file) (file-name-directory file))) (or (vc-file-getprop file 'vc-mtn-root) @@ -126,10 +127,11 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." ((match-end 2) (push (list (match-string 3) 'added) result)))) (funcall update-function result))) -;; -dir-status called from vc-dir, which loads vc, which loads vc-dispatcher. +;; dir-status-files called from vc-dir, which loads vc, +;; which loads vc-dispatcher. (declare-function vc-exec-after "vc-dispatcher" (code)) -(defun vc-mtn-dir-status (dir update-function) +(defun vc-mtn-dir-status-files (dir _files update-function) (vc-mtn-command (current-buffer) 'async dir "status") (vc-run-delayed (vc-mtn-after-dir-status update-function))) @@ -154,9 +156,6 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." (re-search-forward "\\(?:Current b\\|B\\)ranch: *\\(.*\\)\n?\nChanges against parent \\(.*\\)") (match-string 1)))) -(defun vc-mtn-workfile-unchanged-p (file) - (not (eq (vc-mtn-state file) 'edited))) - ;; Mode-line rewrite code copied from vc-arch.el. (defcustom vc-mtn-mode-line-rewrite @@ -179,15 +178,14 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." (_ ?:)) branch))) -(defun vc-mtn-register (files &optional _rev _comment) +(defun vc-mtn-register (files &optional _comment) (vc-mtn-command nil 0 files "add")) (defun vc-mtn-responsible-p (file) (vc-mtn-root file)) -(defun vc-mtn-could-register (file) (vc-mtn-root file)) (declare-function log-edit-extract-headers "log-edit" (headers string)) -(defun vc-mtn-checkin (files _rev comment) +(defun vc-mtn-checkin (files comment) (apply 'vc-mtn-command nil 0 files (nconc (list "commit" "-m") (log-edit-extract-headers '(("Author" . "--author") @@ -197,16 +195,13 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." (defun vc-mtn-find-revision (file rev buffer) (vc-mtn-command buffer 0 file "cat" "-r" rev)) -;; (defun vc-mtn-checkout (file &optional editable rev) +;; (defun vc-mtn-checkout (file &optional rev) ;; ) (defun vc-mtn-revert (file &optional contents-done) (unless contents-done (vc-mtn-command nil 0 file "revert"))) -;; (defun vc-mtn-rollback (files) -;; ) - (defun vc-mtn-print-log (files buffer &optional _shortlog start-revision limit) "Print commit logs associated with FILES into specified BUFFER. _SHORTLOG is ignored. @@ -241,9 +236,11 @@ If LIMIT is non-nil, show no more than this many entries." (autoload 'vc-switches "vc") -(defun vc-mtn-diff (files &optional rev1 rev2 buffer) +(defun vc-mtn-diff (files &optional rev1 rev2 buffer async) "Get a difference report using monotone between two revisions of FILES." - (apply 'vc-mtn-command (or buffer "*vc-diff*") 1 files "diff" + (apply 'vc-mtn-command (or buffer "*vc-diff*") + (if async 'async 1) + files "diff" (append (vc-switches 'mtn 'diff) (if rev1 (list "-r" rev1)) (if rev2 (list "-r" rev2))))) diff --git a/lisp/vc/vc-rcs.el b/lisp/vc/vc-rcs.el index 6b064260f95..cb3d36f13fb 100644 --- a/lisp/vc/vc-rcs.el +++ b/lisp/vc/vc-rcs.el @@ -149,70 +149,18 @@ For a description of possible values, see `vc-check-master-templates'." 'vc-working-revision)))) (if (not (eq state 'up-to-date)) state - (if (vc-workfile-unchanged-p file) + (if (vc-rcs-workfile-unchanged-p file) 'up-to-date (if (eq (vc-rcs-checkout-model (list file)) 'locking) 'unlocked-changes 'edited)))))) -(defun vc-rcs-state-heuristic (file) - "State heuristic for RCS." - (let (vc-rcs-headers-result) - (if (and vc-consult-headers - (setq vc-rcs-headers-result - (vc-rcs-consult-headers file)) - (eq vc-rcs-headers-result 'rev-and-lock)) - (let ((state (vc-file-getprop file 'vc-state))) - ;; If the headers say that the file is not locked, the - ;; permissions can tell us whether locking is used for - ;; the file or not. - (if (and (eq state 'up-to-date) - (not (vc-mistrust-permissions file)) - (file-exists-p file)) - (cond - ((string-match ".rw..-..-." (nth 8 (file-attributes file))) - (vc-file-setprop file 'vc-checkout-model 'implicit) - (setq state - (if (vc-rcs-workfile-is-newer file) - 'edited - 'up-to-date))) - ((string-match ".r-..-..-." (nth 8 (file-attributes file))) - (vc-file-setprop file 'vc-checkout-model 'locking)))) - state) - (if (not (vc-mistrust-permissions file)) - (let* ((attributes (file-attributes file 'string)) - (owner-name (nth 2 attributes)) - (permissions (nth 8 attributes))) - (cond ((and permissions (string-match ".r-..-..-." permissions)) - (vc-file-setprop file 'vc-checkout-model 'locking) - 'up-to-date) - ((and permissions (string-match ".rw..-..-." permissions)) - (if (eq (vc-rcs-checkout-model file) 'locking) - (if (file-ownership-preserved-p file) - 'edited - owner-name) - (if (vc-rcs-workfile-is-newer file) - 'edited - 'up-to-date))) - (t - ;; Strange permissions. Fall through to - ;; expensive state computation. - (vc-rcs-state file)))) - (vc-rcs-state file))))) - (autoload 'vc-expand-dirs "vc") -(defun vc-rcs-dir-status (dir update-function) - ;; FIXME: this function should be rewritten or `vc-expand-dirs' - ;; should be changed to take a backend parameter. Using - ;; `vc-expand-dirs' is not TRTD because it returns files from - ;; multiple backends. It should also return 'unregistered files. - - ;; Doing individual vc-state calls is painful but there - ;; is no better way in RCS-land. - (let ((flist (vc-expand-dirs (list dir))) - (result nil)) - (dolist (file flist) +(defun vc-rcs-dir-status-files (dir files update-function) + (if (not files) (setq files (vc-expand-dirs (list dir) 'RCS))) + (let ((result nil)) + (dolist (file files) (let ((state (vc-state file)) (frel (file-relative-name file))) (when (and (eq (vc-backend file) 'RCS) @@ -229,6 +177,8 @@ For a description of possible values, see `vc-check-master-templates'." (vc-rcs-fetch-master-state file) (vc-file-getprop file 'vc-working-revision)))) +(autoload 'vc-master-name "vc-filewise") + (defun vc-rcs-latest-on-branch-p (file &optional version) "Return non-nil if workfile version of FILE is the latest on its branch. When VERSION is given, perform check for that version." @@ -238,15 +188,15 @@ When VERSION is given, perform check for that version." (if (vc-rcs-trunk-p version) (progn ;; Compare VERSION to the head version number. - (vc-insert-file (vc-name file) "^[0-9]") + (vc-insert-file (vc-master-name file) "^[0-9]") (vc-parse-buffer "^head[ \t\n]+\\([^;]+\\);" 1)) ;; If we are not on the trunk, we need to examine the ;; whole current branch. - (vc-insert-file (vc-name file) "^desc") + (vc-insert-file (vc-master-name file) "^desc") (vc-rcs-find-most-recent-rev (vc-branch-part version)))))) (defun vc-rcs-workfile-unchanged-p (file) - "RCS-specific implementation of `vc-workfile-unchanged-p'." + "Has FILE remained unchanged since last checkout?" ;; Try to use rcsdiff --brief. If rcsdiff does not understand that, ;; do a double take and remember the fact for the future (let* ((version (concat "-r" (vc-working-revision file))) @@ -274,18 +224,13 @@ When VERSION is given, perform check for that version." (autoload 'vc-switches "vc") -(defun vc-rcs-register (files &optional rev comment) +(defun vc-rcs-register (files &optional comment) "Register FILES into the RCS version-control system. -REV is the optional revision number for the files. COMMENT can be used -to provide an initial description for each FILES. +Automatically retrieve a read-only version of the file with keywords expanded. +COMMENT can be used to provide an initial description for each FILES. Passes either `vc-rcs-register-switches' or `vc-register-switches' -to the RCS command. - -Automatically retrieve a read-only version of the file with keywords -expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." +to the RCS command." (let (subdir name) - ;; When REV is specified, we need to force using "-t-". - (when rev (unless comment (setq comment ""))) (dolist (file files) (and (not (file-exists-p (setq subdir (expand-file-name "RCS" @@ -297,7 +242,7 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." (apply #'vc-do-command "*vc*" 0 "ci" file ;; if available, use the secure registering option (and (vc-rcs-release-p "5.6.4") "-i") - (concat (if vc-keep-workfiles "-u" "-r") rev) + "-u" (and comment (concat "-t-" comment)) (vc-switches 'RCS 'register)) ;; parse output to find master file name and workfile version @@ -309,9 +254,9 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." (match-string 1)))) ;; if we couldn't find the master name, ;; run vc-rcs-registered to get it - ;; (will be stored into the vc-name property) + ;; (will be stored into the vc-master-name property) (vc-rcs-registered file) - (vc-file-setprop file 'vc-name + (vc-file-setprop file 'vc-master-name (if (file-name-absolute-p name) name (expand-file-name @@ -334,7 +279,7 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." (defun vc-rcs-receive-file (file rev) "Implementation of receive-file for RCS." (let ((checkout-model (vc-rcs-checkout-model (list file)))) - (vc-rcs-register file rev "") + (vc-rcs-register file "") (when (eq checkout-model 'implicit) (vc-rcs-set-non-strict-locking file)) (vc-rcs-set-default-branch file (concat rev ".1")))) @@ -343,7 +288,7 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." "Unregister FILE from RCS. If this leaves the RCS subdirectory empty, ask the user whether to remove it." - (let* ((master (vc-name file)) + (let* ((master (vc-master-name file)) (dir (file-name-directory master)) (backup-info (find-backup-file-name master))) (if (not backup-info) @@ -358,27 +303,31 @@ whether to remove it." (yes-or-no-p (format "Directory %s is empty; remove it? " dir)) (delete-directory dir)))) -(defun vc-rcs-checkin (files rev comment) +;; It used to be possible to pass in a value for the variable rev, but +;; nothing in the rest of VC used this capability. Removing it makes the +;; backend interface simpler for all modes. +;; +(defun vc-rcs-checkin (files comment) "RCS-specific version of `vc-backend-checkin'." - (let ((switches (vc-switches 'RCS 'checkin))) + (let (rev (switches (vc-switches 'RCS 'checkin))) ;; Now operate on the files - (dolist (file (vc-expand-dirs files)) + (dolist (file (vc-expand-dirs files 'RCS)) (let ((old-version (vc-working-revision file)) new-version (default-branch (vc-file-getprop file 'vc-rcs-default-branch))) ;; Force branch creation if an appropriate ;; default branch has been set. - (and (not rev) - default-branch + (and default-branch (string-match (concat "^" (regexp-quote old-version) "\\.") default-branch) (setq rev default-branch) (setq switches (cons "-f" switches))) - (if (and (not rev) old-version) - (setq rev (vc-branch-part old-version))) - (apply #'vc-do-command "*vc*" 0 "ci" (vc-name file) + (if old-version + (setq rev (vc-branch-part old-version)) + (error "can't find current branch")) + (apply #'vc-do-command "*vc*" 0 "ci" (vc-master-name file) ;; if available, use the secure check-in option (and (vc-rcs-release-p "5.6.4") "-j") - (concat (if vc-keep-workfiles "-u" "-r") rev) + (concat "-u" rev) (concat "-m" comment) switches) (vc-file-setprop file 'vc-working-revision nil) @@ -407,21 +356,21 @@ whether to remove it." (if (not (vc-rcs-release-p "5.6.2")) ;; exit status of 1 is also accepted. ;; It means that the lock was removed before. - (vc-do-command "*vc*" 1 "rcs" (vc-name file) + (vc-do-command "*vc*" 1 "rcs" (vc-master-name file) (concat "-u" old-version))))))))) (defun vc-rcs-find-revision (file rev buffer) (apply #'vc-do-command - (or buffer "*vc*") 0 "co" (vc-name file) + (or buffer "*vc*") 0 "co" (vc-master-name file) "-q" ;; suppress diagnostic output (concat "-p" rev) (vc-switches 'RCS 'checkout))) -(defun vc-rcs-checkout (file &optional editable rev) +(defun vc-rcs-checkout (file &optional rev) "Retrieve a copy of a saved version of FILE. If FILE is a directory, attempt the checkout for all registered files beneath it." (if (file-directory-p file) - (mapc 'vc-rcs-checkout (vc-expand-dirs (list file))) + (mapc 'vc-rcs-checkout (vc-expand-dirs (list file) 'RCS)) (let ((file-buffer (get-file-buffer file)) switches) (message "Checking out %s..." file) @@ -444,11 +393,11 @@ attempt the checkout for all registered files beneath it." (vc-rcs-set-default-branch file nil)) ;; now do the checkout (apply #'vc-do-command - "*vc*" 0 "co" (vc-name file) + "*vc*" 0 "co" (vc-master-name file) ;; If locking is not strict, force to overwrite ;; the writable workfile. (if (eq (vc-rcs-checkout-model (list file)) 'implicit) "-f") - (if editable "-l") + "-l" (if (stringp rev) ;; a literal revision was specified (concat "-r" rev) @@ -483,56 +432,44 @@ attempt the checkout for all registered files beneath it." new-version))))) (message "Checking out %s...done" file)))))) -(defun vc-rcs-rollback (files) - "Roll back, undoing the most recent checkins of FILES. Directories are -expanded to all registered subfiles in them." - (if (not files) - (error "RCS backend doesn't support directory-level rollback")) - (dolist (file (vc-expand-dirs files)) - (let* ((discard (vc-working-revision file)) - (previous (if (vc-rcs-trunk-p discard) "" (vc-branch-part discard))) - (config (current-window-configuration)) - (done nil)) - (if (null (yes-or-no-p (format "Remove version %s from %s history? " - discard file))) - (error "Aborted")) - (message "Removing revision %s from %s." discard file) - (vc-do-command "*vc*" 0 "rcs" (vc-name file) (concat "-o" discard)) - ;; Check out the most recent remaining version. If it - ;; fails, because the whole branch got deleted, do a - ;; double-take and check out the version where the branch - ;; started. - (while (not done) - (condition-case err - (progn - (vc-do-command "*vc*" 0 "co" (vc-name file) "-f" - (concat "-u" previous)) - (setq done t)) - (error (set-buffer "*vc*") - (goto-char (point-min)) - (if (search-forward "no side branches present for" nil t) - (progn (setq previous (vc-branch-part previous)) - (vc-rcs-set-default-branch file previous) - ;; vc-do-command popped up a window with - ;; the error message. Get rid of it, by - ;; restoring the old window configuration. - (set-window-configuration config)) - ;; No, it was some other error: re-signal it. - (signal (car err) (cdr err))))))))) - (defun vc-rcs-revert (file &optional _contents-done) "Revert FILE to the version it was based on. If FILE is a directory, revert all registered files beneath it." (if (file-directory-p file) - (mapc 'vc-rcs-revert (vc-expand-dirs (list file))) - (vc-do-command "*vc*" 0 "co" (vc-name file) "-f" + (mapc 'vc-rcs-revert (vc-expand-dirs (list file) 'RCS)) + (vc-do-command "*vc*" 0 "co" (vc-master-name file) "-f" (concat (if (eq (vc-state file) 'edited) "-u" "-r") (vc-working-revision file))))) +(defun vc-rcs-merge-file (file) + "Accept a file merge request, prompting for revisions." + (let* ((first-revision + (vc-read-revision + (concat "Merge " file " from branch or revision: ") + (list file) + 'RCS)) + second-revision) + (cond + ((string= first-revision "") + (error "A starting RCS revision is required")) + (t + (if (not (vc-branch-p first-revision)) + (setq second-revision + (vc-read-revision + "Second RCS revision: " + (list file) 'RCS nil + (concat (vc-branch-part first-revision) "."))) + ;; We want to merge an entire branch. Set revisions + ;; accordingly, so that vc-rcs-merge understands us. + (setq second-revision first-revision) + ;; first-revision must be the starting point of the branch + (setq first-revision (vc-branch-part first-revision))))) + (vc-rcs-merge file first-revision second-revision))) + (defun vc-rcs-merge (file first-version &optional second-version) "Merge changes into current working copy of FILE. The changes are between FIRST-VERSION and SECOND-VERSION." - (vc-do-command "*vc*" 1 "rcsmerge" (vc-name file) + (vc-do-command "*vc*" 1 "rcsmerge" (vc-master-name file) "-kk" ; ignore keyword conflicts (concat "-r" first-version) (if second-version (concat "-r" second-version)))) @@ -542,17 +479,32 @@ The changes are between FIRST-VERSION and SECOND-VERSION." If FILE is a directory, steal the lock on all registered files beneath it. Needs RCS 5.6.2 or later for -M." (if (file-directory-p file) - (mapc 'vc-rcs-steal-lock (vc-expand-dirs (list file))) - (vc-do-command "*vc*" 0 "rcs" (vc-name file) "-M" (concat "-u" rev)) + (mapc 'vc-rcs-steal-lock (vc-expand-dirs (list file) 'RCS)) + (vc-do-command "*vc*" 0 "rcs" (vc-master-name file) "-M" (concat "-u" rev)) ;; Do a real checkout after stealing the lock, so that we see ;; expanded headers. - (vc-do-command "*vc*" 0 "co" (vc-name file) "-f" (concat "-l" rev)))) + (vc-do-command "*vc*" 0 "co" (vc-master-name file) "-f" (concat "-l" rev)) + ;; Must clear any headers here because they wouldn't + ;; show that the file is locked now. + (let* ((filename (or file buffer-file-name)) + (visited (find-buffer-visiting filename))) + (if visited + (let ((context (vc-buffer-context))) + ;; save-excursion may be able to relocate point and mark + ;; properly. If it fails, vc-restore-buffer-context + ;; will give it a second try. + (save-excursion + (vc-rcs-clear-headers)) + (vc-restore-buffer-context context)) + (set-buffer (find-file-noselect filename)) + (vc-rcs-clear-headers) + (kill-buffer filename))))) (defun vc-rcs-modify-change-comment (files rev comment) "Modify the change comments change on FILES on a specified REV. If FILE is a directory the operation is applied to all registered files beneath it." - (dolist (file (vc-expand-dirs files)) - (vc-do-command "*vc*" 0 "rcs" (vc-name file) + (dolist (file (vc-expand-dirs files 'RCS)) + (vc-do-command "*vc*" 0 "rcs" (vc-master-name file) (concat "-m" rev ":" comment)))) @@ -578,16 +530,16 @@ Remaining arguments are ignored. If FILE is a directory the operation is applied to all registered files beneath it." (vc-do-command (or buffer "*vc*") 0 "rlog" - (mapcar 'vc-name (vc-expand-dirs files))) + (mapcar 'vc-master-name (vc-expand-dirs files 'RCS))) (with-current-buffer (or buffer "*vc*") (vc-rcs-print-log-cleanup)) (when limit 'limit-unsupported)) -(defun vc-rcs-diff (files &optional oldvers newvers buffer) +(defun vc-rcs-diff (files &optional oldvers newvers buffer async) "Get a difference report using RCS between two sets of files." (apply #'vc-do-command (or buffer "*vc-diff*") - 1 ;; Always go synchronous, the repo is local - "rcsdiff" (vc-expand-dirs files) + (if async 'async 1) + "rcsdiff" (vc-expand-dirs files 'RCS) (append (list "-q" (and oldvers (concat "-r" oldvers)) (and newvers (concat "-r" newvers))) @@ -811,7 +763,7 @@ Optional arg REVISION is a revision to annotate from." "Return the current time, based at midnight of the current day, and encoded as fractional days." (vc-annotate-convert-time - (apply #'encode-time 0 0 0 (nthcdr 3 (decode-time (current-time)))))) + (apply #'encode-time 0 0 0 (nthcdr 3 (decode-time))))) (defun vc-rcs-annotate-time () "Return the time of the next annotation (as fraction of days) @@ -841,7 +793,7 @@ systime, or nil if there is none. Also, reposition point." (vc-file-tree-walk dir (lambda (f) - (vc-do-command "*vc*" 0 "rcs" (vc-name f) (concat "-n" name ":"))))))) + (vc-do-command "*vc*" 0 "rcs" (vc-master-name f) (concat "-n" name ":"))))))) ;;; @@ -961,7 +913,7 @@ Uses `rcs2log' which only works for RCS and CVS." \\(: [\t -#%-\176\240-\377]*\\)?\\$" nil t))) (defun vc-rcs-clear-headers () - "Implementation of vc-clear-headers for RCS." + "Clear RCS header value parts." (let ((case-fold-search nil)) (goto-char (point-min)) (while (re-search-forward @@ -970,11 +922,11 @@ Uses `rcs2log' which only works for RCS and CVS." nil t) (replace-match "$\\1$")))) -(autoload 'vc-rename-master "vc") +(autoload 'vc-rename-master "vc-filewise") (defun vc-rcs-rename-file (old new) ;; Just move the master file (using vc-rcs-master-templates). - (vc-rename-master (vc-name old) new vc-rcs-master-templates)) + (vc-rename-master (vc-master-name old) new vc-rcs-master-templates)) (defun vc-rcs-find-file-hook () ;; If the file is locked by some other user, make @@ -993,7 +945,7 @@ Uses `rcs2log' which only works for RCS and CVS." This likely means that FILE has been changed with respect to its master version." (let ((file-time (nth 5 (file-attributes file))) - (master-time (nth 5 (file-attributes (vc-name file))))) + (master-time (nth 5 (file-attributes (vc-master-name file))))) (or (> (nth 0 file-time) (nth 0 master-time)) (and (= (nth 0 file-time) (nth 0 master-time)) (> (nth 1 file-time) (nth 1 master-time)))))) @@ -1020,10 +972,10 @@ This function sets the properties `vc-working-revision' and `vc-checkout-model' to their correct values, based on the master file." (with-temp-buffer - (if (or (not (vc-insert-file (vc-name file) "^[0-9]")) + (if (or (not (vc-insert-file (vc-master-name file) "^[0-9]")) (progn (goto-char (point-min)) (not (looking-at "^head[ \t\n]+[^;]+;$")))) - (error "File %s is not an RCS master file" (vc-name file))) + (error "File %s is not an RCS master file" (vc-master-name file))) (let ((workfile-is-latest nil) (default-branch (vc-parse-buffer "^branch[ \t\n]+\\([^;]*\\);" 1))) (vc-file-setprop file 'vc-rcs-default-branch default-branch) @@ -1043,7 +995,7 @@ file." default-branch) (setq working-revision default-branch)) ;; else, search for the head of the default branch - (t (vc-insert-file (vc-name file) "^desc") + (t (vc-insert-file (vc-master-name file) "^desc") (setq working-revision (vc-rcs-find-most-recent-rev default-branch)) (setq workfile-is-latest t))) @@ -1096,7 +1048,7 @@ Returns: nil if no headers were found 'rev-and-lock if revision and lock info was found" (cond ((not (get-file-buffer file)) nil) - ((let (status version locking-user) + ((let (status version) (with-current-buffer (get-file-buffer file) (save-excursion (goto-char (point-min)) @@ -1122,11 +1074,11 @@ Returns: nil if no headers were found (cond ;; unlocked revision ((looking-at "\\$") - (setq locking-user 'none) + ;;(setq locking-user 'none) (setq status 'rev-and-lock)) ;; revision is locked by some user ((looking-at "\\([^ ]+\\) \\$") - (setq locking-user (match-string-no-properties 1)) + ;;(setq locking-user (match-string-no-properties 1)) (setq status 'rev-and-lock)) ;; everything else: false (nil))) @@ -1144,39 +1096,19 @@ Returns: nil if no headers were found (goto-char (point-min)) (if (re-search-forward (concat "\\$" "Locker:") nil t) (cond ((looking-at " \\([^ ]+\\) \\$") - (setq locking-user (match-string-no-properties 1)) + ;;(setq locking-user (match-string-no-properties 1)) (setq status 'rev-and-lock)) ((looking-at " *\\$") - (setq locking-user 'none) + ;;(setq locking-user 'none) (setq status 'rev-and-lock)) (t - (setq locking-user 'none) + ;;(setq locking-user 'none) (setq status 'rev-and-lock))) (setq status 'rev))) ;; else: nothing found ;; ------------------- (t nil)))) (if status (vc-file-setprop file 'vc-working-revision version)) - (and (eq status 'rev-and-lock) - (vc-file-setprop file 'vc-state - (cond - ((eq locking-user 'none) 'up-to-date) - ((string= locking-user (vc-user-login-name file)) - 'edited) - (t locking-user))) - ;; If the file has headers, we don't want to query the - ;; master file, because that would eliminate all the - ;; performance gain the headers brought us. We therefore - ;; use a heuristic now to find out whether locking is used - ;; for this file. If we trust the file permissions, and the - ;; file is not locked, then if the file is read-only we - ;; assume that locking is used for the file, otherwise - ;; locking is not used. - (not (vc-mistrust-permissions file)) - (vc-up-to-date-p file) - (if (string-match ".r-..-..-." (nth 8 (file-attributes file))) - (vc-file-setprop file 'vc-checkout-model 'locking) - (vc-file-setprop file 'vc-checkout-model 'implicit))) status)))) (defun vc-release-greater-or-equal (r1 r2) @@ -1234,7 +1166,7 @@ variable `vc-rcs-release' is set to the returned value." (set-file-modes file (logior (file-modes file) 128))) (defun vc-rcs-set-default-branch (file branch) - (vc-do-command "*vc*" 0 "rcs" (vc-name file) (concat "-b" branch)) + (vc-do-command "*vc*" 0 "rcs" (vc-master-name file) (concat "-b" branch)) (vc-file-setprop file 'vc-rcs-default-branch branch)) (defun vc-rcs-parse (&optional buffer) diff --git a/lisp/vc/vc-sccs.el b/lisp/vc/vc-sccs.el index fb7d9596822..cfd3cccf9b1 100644 --- a/lisp/vc/vc-sccs.el +++ b/lisp/vc/vc-sccs.el @@ -124,7 +124,7 @@ For a description of possible values, see `vc-check-master-templates'." (working-revision (vc-working-revision file)) (locking-user (cdr (assoc working-revision locks)))) (if (not locking-user) - (if (vc-workfile-unchanged-p file) + (if (vc-sccs-workfile-unchanged-p file) 'up-to-date 'unlocked-changes) (if (string= locking-user (vc-user-login-name file)) @@ -132,41 +132,12 @@ For a description of possible values, see `vc-check-master-templates'." locking-user))) 'up-to-date)))) -(defun vc-sccs-state-heuristic (file) - "SCCS-specific state heuristic." - (if (not (vc-mistrust-permissions file)) - ;; This implementation assumes that any file which is under version - ;; control and has -rw-r--r-- is locked by its owner. This is true - ;; for both RCS and SCCS, which keep unlocked files at -r--r--r--. - ;; We have to be careful not to exclude files with execute bits on; - ;; scripts can be under version control too. Also, we must ignore the - ;; group-read and other-read bits, since paranoid users turn them off. - (let* ((attributes (file-attributes file 'string)) - (owner-name (nth 2 attributes)) - (permissions (nth 8 attributes))) - (if (string-match ".r-..-..-." permissions) - 'up-to-date - (if (string-match ".rw..-..-." permissions) - (if (file-ownership-preserved-p file) - 'edited - owner-name) - ;; Strange permissions. - ;; Fall through to real state computation. - (vc-sccs-state file)))) - (vc-sccs-state file))) - (autoload 'vc-expand-dirs "vc") -(defun vc-sccs-dir-status (dir update-function) - ;; FIXME: this function should be rewritten, using `vc-expand-dirs' - ;; is not TRTD because it returns files from multiple backends. - ;; It should also return 'unregistered files. - - ;; Doing lots of individual VC-state calls is painful, but - ;; there is no better option in SCCS-land. - (let ((flist (vc-expand-dirs (list dir))) - (result nil)) - (dolist (file flist) +(defun vc-sccs-dir-status-files (dir files update-function) + (if (not files) (setq files (vc-expand-dirs (list dir) 'RCS))) + (let ((result nil)) + (dolist (file files) (let ((state (vc-state file)) (frel (file-relative-name file))) (when (and (eq (vc-backend file) 'SCCS) @@ -174,6 +145,8 @@ For a description of possible values, see `vc-check-master-templates'." (push (list frel state) result)))) (funcall update-function result))) +(autoload 'vc-master-name "vc-filewise") + (defun vc-sccs-working-revision (file) "SCCS-specific version of `vc-working-revision'." (with-temp-buffer @@ -181,7 +154,7 @@ For a description of possible values, see `vc-check-master-templates'." ;; To find this number, search the entire delta table, ;; rather than just the first entry, because the ;; first entry might be a deleted ("R") revision. - (vc-insert-file (vc-name file) "^\001e\n\001[^s]") + (vc-insert-file (vc-master-name file) "^\001e\n\001[^s]") (vc-parse-buffer "^\001d D \\([^ ]+\\)" 1))) ;; Cf vc-sccs-find-revision. @@ -189,13 +162,13 @@ For a description of possible values, see `vc-check-master-templates'." "Write the SCCS version of input file FILE to output file OUTFILE. Optional string REV is a revision." (with-temp-buffer - (apply 'vc-sccs-do-command t 0 "get" (vc-name file) + (apply 'vc-sccs-do-command t 0 "get" (vc-master-name file) (append '("-s" "-p" "-k") ; -k: no keyword expansion (if rev (list (concat "-r" rev))))) (write-region nil nil outfile nil 'silent))) (defun vc-sccs-workfile-unchanged-p (file) - "SCCS-specific implementation of `vc-workfile-unchanged-p'." + "Has FILE remained unchanged since last checkout?" (let ((tempfile (make-temp-file "vc-sccs"))) (unwind-protect (progn @@ -220,31 +193,26 @@ Optional string REV is a revision." (autoload 'vc-switches "vc") -(defun vc-sccs-register (files &optional rev comment) +(defun vc-sccs-register (files &optional comment) "Register FILES into the SCCS version-control system. -REV is the optional revision number for the file. COMMENT can be used -to provide an initial description of FILES. +Automatically retrieve a read-only version of the files with keywords expanded. +COMMENT can be used to provide an initial description of FILES. Passes either `vc-sccs-register-switches' or `vc-register-switches' -to the SCCS command. - -Automatically retrieve a read-only version of the files with keywords -expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." +to the SCCS command." (dolist (file files) (let* ((dirname (or (file-name-directory file) "")) (basename (file-name-nondirectory file)) (project-file (vc-sccs-search-project-dir dirname basename))) - (let ((vc-name + (let ((vc-master-name (or project-file (format (car vc-sccs-master-templates) dirname basename)))) - (apply 'vc-sccs-do-command nil 0 "admin" vc-name - (and rev (not (string= rev "")) (concat "-r" rev)) + (apply 'vc-sccs-do-command nil 0 "admin" vc-master-name "-fb" (concat "-i" (file-relative-name file)) (and comment (concat "-y" comment)) (vc-switches 'SCCS 'register))) (delete-file file) - (if vc-keep-workfiles - (vc-sccs-do-command nil 0 "get" (vc-name file)))))) + (vc-sccs-do-command nil 0 "get" (vc-master-name file))))) (defun vc-sccs-responsible-p (file) "Return non-nil if SCCS thinks it would be responsible for registering FILE." @@ -253,19 +221,17 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." (stringp (vc-sccs-search-project-dir (or (file-name-directory file) "") (file-name-nondirectory file))))) -(defun vc-sccs-checkin (files rev comment) +(defun vc-sccs-checkin (files comment) "SCCS-specific version of `vc-backend-checkin'." - (dolist (file (vc-expand-dirs files)) - (apply 'vc-sccs-do-command nil 0 "delta" (vc-name file) - (if rev (concat "-r" rev)) + (dolist (file (vc-expand-dirs files 'SCCS)) + (apply 'vc-sccs-do-command nil 0 "delta" (vc-master-name file) (concat "-y" comment) (vc-switches 'SCCS 'checkin)) - (if vc-keep-workfiles - (vc-sccs-do-command nil 0 "get" (vc-name file))))) + (vc-sccs-do-command nil 0 "get" (vc-master-name file)))) (defun vc-sccs-find-revision (file rev buffer) (apply 'vc-sccs-do-command - buffer 0 "get" (vc-name file) + buffer 0 "get" (vc-master-name file) "-s" ;; suppress diagnostic output "-p" (and rev @@ -273,13 +239,13 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." (vc-sccs-lookup-triple file rev))) (vc-switches 'SCCS 'checkout))) -(defun vc-sccs-checkout (file &optional editable rev) +(defun vc-sccs-checkout (file &optional rev) "Retrieve a copy of a saved revision of SCCS controlled FILE. If FILE is a directory, all version-controlled files beneath are checked out. EDITABLE non-nil means that the file should be writable and locked. REV is the revision to check out." (if (file-directory-p file) - (mapc 'vc-sccs-checkout (vc-expand-dirs (list file))) + (mapc 'vc-sccs-checkout (vc-expand-dirs (list file) 'SCCS)) (let ((file-buffer (get-file-buffer file)) switches) (message "Checking out %s..." file) @@ -299,35 +265,19 @@ locked. REV is the revision to check out." (and rev (or (string= rev "") (not (stringp rev))) (setq rev nil)) - (apply 'vc-sccs-do-command nil 0 "get" (vc-name file) - (if editable "-e") + (apply 'vc-sccs-do-command nil 0 "get" (vc-master-name file) + "-e" (and rev (concat "-r" (vc-sccs-lookup-triple file rev))) switches)))) (message "Checking out %s...done" file)))) -(defun vc-sccs-rollback (files) - "Roll back, undoing the most recent checkins of FILES. Directories -are expanded to all version-controlled subfiles." - (setq files (vc-expand-dirs files)) - (if (not files) - (error "SCCS backend doesn't support directory-level rollback")) - (dolist (file files) - (let ((discard (vc-working-revision file))) - (if (null (yes-or-no-p (format "Remove version %s from %s history? " - discard file))) - (error "Aborted")) - (message "Removing revision %s from %s..." discard file) - (vc-sccs-do-command nil 0 "rmdel" - (vc-name file) (concat "-r" discard)) - (vc-sccs-do-command nil 0 "get" (vc-name file) nil)))) - (defun vc-sccs-revert (file &optional _contents-done) "Revert FILE to the version it was based on. If FILE is a directory, revert all subfiles." (if (file-directory-p file) - (mapc 'vc-sccs-revert (vc-expand-dirs (list file))) - (vc-sccs-do-command nil 0 "unget" (vc-name file)) - (vc-sccs-do-command nil 0 "get" (vc-name file)) + (mapc 'vc-sccs-revert (vc-expand-dirs (list file) 'SCCS)) + (vc-sccs-do-command nil 0 "unget" (vc-master-name file)) + (vc-sccs-do-command nil 0 "get" (vc-master-name file)) ;; Checking out explicit revisions is not supported under SCCS, yet. ;; We always "revert" to the latest revision; therefore ;; vc-working-revision is cleared here so that it gets recomputed. @@ -336,16 +286,16 @@ revert all subfiles." (defun vc-sccs-steal-lock (file &optional rev) "Steal the lock on the current workfile for FILE and revision REV." (if (file-directory-p file) - (mapc 'vc-sccs-steal-lock (vc-expand-dirs (list file))) + (mapc 'vc-sccs-steal-lock (vc-expand-dirs (list file) 'SCCS)) (vc-sccs-do-command nil 0 "unget" - (vc-name file) "-n" (if rev (concat "-r" rev))) + (vc-master-name file) "-n" (if rev (concat "-r" rev))) (vc-sccs-do-command nil 0 "get" - (vc-name file) "-g" (if rev (concat "-r" rev))))) + (vc-master-name file) "-g" (if rev (concat "-r" rev))))) (defun vc-sccs-modify-change-comment (files rev comment) "Modify (actually, append to) the change comments for FILES on a specified REV." - (dolist (file (vc-expand-dirs files)) - (vc-sccs-do-command nil 0 "cdc" (vc-name file) + (dolist (file (vc-expand-dirs files 'SCCS)) + (vc-sccs-do-command nil 0 "cdc" (vc-master-name file) (concat "-y" comment) (concat "-r" rev)))) @@ -356,8 +306,8 @@ revert all subfiles." (defun vc-sccs-print-log (files buffer &optional _shortlog _start-revision-ignored limit) "Print commit log associated with FILES into specified BUFFER. Remaining arguments are ignored." - (setq files (vc-expand-dirs files)) - (vc-sccs-do-command buffer 0 "prs" (mapcar 'vc-name files)) + (setq files (vc-expand-dirs files 'SCCS)) + (vc-sccs-do-command buffer 0 "prs" (mapcar 'vc-master-name files)) (when limit 'limit-unsupported)) (autoload 'vc-setup-buffer "vc-dispatcher") @@ -366,9 +316,9 @@ Remaining arguments are ignored." (defvar w32-quote-process-args) ;; FIXME use sccsdiff if present? -(defun vc-sccs-diff (files &optional oldvers newvers buffer) +(defun vc-sccs-diff (files &optional oldvers newvers buffer _async) "Get a difference report using SCCS between two filesets." - (setq files (vc-expand-dirs files)) + (setq files (vc-expand-dirs files 'SCCS)) (setq oldvers (vc-sccs-lookup-triple (car files) oldvers)) (setq newvers (vc-sccs-lookup-triple (car files) newvers)) (or buffer (setq buffer "*vc-diff*")) @@ -472,16 +422,16 @@ Remaining arguments are ignored." (goto-char (point-min)) (re-search-forward "%[A-Z]%" nil t))) -(autoload 'vc-rename-master "vc") +(autoload 'vc-rename-master "vc-filewise") (defun vc-sccs-rename-file (old new) ;; Move the master file (using vc-rcs-master-templates). - (vc-rename-master (vc-name old) new vc-sccs-master-templates) + (vc-rename-master (vc-master-name old) new vc-sccs-master-templates) ;; Update the tag file. (with-current-buffer (find-file-noselect (expand-file-name vc-sccs-name-assoc-file - (file-name-directory (vc-name old)))) + (file-name-directory (vc-master-name old)))) (goto-char (point-min)) ;; (replace-regexp (concat ":" (regexp-quote old) "$") (concat ":" new)) (while (re-search-forward (concat ":" (regexp-quote old) "$") nil t) @@ -525,7 +475,7 @@ find any project directory." (defun vc-sccs-lock-file (file) "Generate lock file name corresponding to FILE." - (let ((master (vc-name file))) + (let ((master (vc-master-name file))) (and master (string-match "\\(.*/\\)\\(s\\.\\)\\(.*\\)" master) @@ -547,7 +497,7 @@ The result is a list of the form ((REVISION . USER) (REVISION . USER) ...)." (with-current-buffer (find-file-noselect (expand-file-name vc-sccs-name-assoc-file - (file-name-directory (vc-name file)))) + (file-name-directory (vc-master-name file)))) (goto-char (point-max)) (insert name "\t:\t" file "\t" rev "\n") (basic-save-buffer) @@ -563,7 +513,7 @@ If NAME is nil or a revision number string it's just passed through." (with-temp-buffer (vc-insert-file (expand-file-name vc-sccs-name-assoc-file - (file-name-directory (vc-name file)))) + (file-name-directory (vc-master-name file)))) (vc-parse-buffer (concat name "\t:\t" file "\t\\(.+\\)") 1)))) (provide 'vc-sccs) diff --git a/lisp/vc/vc-src.el b/lisp/vc/vc-src.el new file mode 100644 index 00000000000..50c0a7ef1b0 --- /dev/null +++ b/lisp/vc/vc-src.el @@ -0,0 +1,313 @@ +;;; vc-src.el --- support for SRC version-control -*- lexical-binding:t -*- + +;; Copyright (C) 1992-2014 Free Software Foundation, Inc. + +;; Author: FSF (see vc.el for full credits) +;; Maintainer: Eric S. Raymond +;; Package: vc + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; See vc.el. SRC requires an underlying RCS version of 4.0 or greater. + +;; FUNCTION NAME STATUS +;; BACKEND PROPERTIES +;; * revision-granularity OK +;; STATE-QUERYING FUNCTIONS +;; * registered (file) OK +;; * state (file) OK +;; - dir-status-files (dir files uf) OK +;; - dir-extra-headers (dir) NOT NEEDED +;; - dir-printer (fileinfo) ?? +;; * working-revision (file) OK +;; * checkout-model (files) OK +;; - mode-line-string (file) NOT NEEDED +;; STATE-CHANGING FUNCTIONS +;; * register (files &optional rev comment) OK +;; * create-repo () OK +;; * responsible-p (file) OK +;; - receive-file (file rev) NOT NEEDED +;; - unregister (file) NOT NEEDED +;; * checkin (files comment) OK +;; * find-revision (file rev buffer) OK +;; * checkout (file &optional rev) OK +;; * revert (file &optional contents-done) OK +;; - merge (file rev1 rev2) NOT NEEDED +;; - merge-news (file) NOT NEEDED +;; - steal-lock (file &optional revision) NOT NEEDED +;; HISTORY FUNCTIONS +;; * print-log (files buffer &optional shortlog start-revision limit) OK +;; - log-view-mode () ?? +;; - show-log-entry (revision) NOT NEEDED +;; - comment-history (file) NOT NEEDED +;; - update-changelog (files) NOT NEEDED +;; * diff (files &optional rev1 rev2 buffer) OK +;; - revision-completion-table (files) ?? +;; - annotate-command (file buf &optional rev) ?? +;; - annotate-time () ?? +;; - annotate-current-time () NOT NEEDED +;; - annotate-extract-revision-at-line () ?? +;; TAG SYSTEM +;; - create-tag (dir name branchp) ?? +;; - retrieve-tag (dir name update) ?? +;; MISCELLANEOUS +;; - make-version-backups-p (file) ?? +;; - previous-revision (file rev) ?? +;; - next-revision (file rev) ?? +;; - check-headers () ?? +;; - delete-file (file) ?? +;; * rename-file (old new) OK +;; - find-file-hook () NOT NEEDED + + +;;; Code: + +;;; +;;; Customization options +;;; + +(eval-when-compile + (require 'cl-lib) + (require 'vc)) + +(defgroup vc-src nil + "VC SRC backend." + :version "25.1" + :group 'vc) + +(defcustom vc-src-release nil + "The release number of your SRC installation, as a string. +If nil, VC itself computes this value when it is first needed." + :type '(choice (const :tag "Auto" nil) + (string :tag "Specified") + (const :tag "Unknown" unknown)) + :group 'vc-src) + +(defcustom vc-src-program "src" + "Name of the SRC executable (excluding any arguments)." + :type 'string + :group 'vc-src) + +(defcustom vc-src-diff-switches nil + "String or list of strings specifying switches for SRC diff under VC. +If nil, use the value of `vc-diff-switches'. If t, use no switches." + :type '(choice (const :tag "Unspecified" nil) + (const :tag "None" t) + (string :tag "Argument String") + (repeat :tag "Argument List" :value ("") string)) + :group 'vc-src) + +;; This needs to be autoloaded because vc-src-registered uses it (via +;; vc-default-registered), and vc-hooks needs to be able to check +;; for a registered backend without loading every backend. +;;;###autoload +(defcustom vc-src-master-templates + (purecopy '("%s.src/%s,v")) + "Where to look for SRC master files. +For a description of possible values, see `vc-check-master-templates'." + :type '(choice (const :tag "Use standard SRC file names" + '("%s.src/%s,v")) + (repeat :tag "User-specified" + (choice string + function))) + :group 'vc-src) + + +;;; Properties of the backend + +(defun vc-src-revision-granularity () 'file) +(defun vc-src-checkout-model (_files) 'implicit) + +;;; +;;; State-querying functions +;;; + +;; The autoload cookie below places vc-src-registered directly into +;; loaddefs.el, so that vc-src.el does not need to be loaded for +;; every file that is visited. +;;;###autoload +(progn +(defun vc-src-registered (f) (vc-default-registered 'src f))) + +(defun vc-src-state (file) + "SRC-specific version of `vc-state'." + (let* + ((status nil) + (default-directory (file-name-directory file)) + (out + (with-output-to-string + (with-current-buffer + standard-output + (setq status + ;; Ignore all errors. + (condition-case nil + (process-file + vc-src-program nil t nil + "status" "-a" (file-relative-name file)) + (error nil))))))) + (when (eq 0 status) + (when (null (string-match "does not exist or is unreadable" out)) + (let ((state (aref out 0))) + (cond + ;; FIXME: What to do about A and L codes? + ((eq state ?.) 'up-to-date) + ((eq state ?A) 'added) + ((eq state ?M) 'edited) + ((eq state ?I) 'ignored) + ((eq state ?R) 'removed) + ((eq state ?!) 'missing) + ((eq state ??) 'unregistered) + (t 'up-to-date))))))) + +(autoload 'vc-expand-dirs "vc") + +(defun vc-src-dir-status-files (dir files update-function) + ;; FIXME: Use one src status -a call for this + (if (not files) (setq files (vc-expand-dirs (list dir) 'RCS))) + (let ((result nil)) + (dolist (file files) + (let ((state (vc-state file)) + (frel (file-relative-name file))) + (when (and (eq (vc-backend file) 'SRC) + (not (eq state 'up-to-date))) + (push (list frel state) result)))) + (funcall update-function result))) + +(defun vc-src-command (buffer file-or-list &rest flags) + "A wrapper around `vc-do-command' for use in vc-src.el. +This function differs from vc-do-command in that it invokes `vc-src-program'." + (let (file-list) + (cond ((stringp file-or-list) + (setq file-list (list "--" file-or-list))) + (file-or-list + (setq file-list (cons "--" file-or-list)))) + (apply 'vc-do-command (or buffer "*vc*") 0 vc-src-program file-list flags))) + +(defun vc-src-working-revision (file) + "SRC-specific version of `vc-working-revision'." + (or (ignore-errors + (with-output-to-string + (vc-src-command standard-output file "list" "-f{1}" "@"))) + "0")) + +;;; +;;; State-changing functions +;;; + +(defun vc-src-create-repo () + "Create a new SRC repository." + ;; SRC is totally file-oriented, so all we have to do is make the directory. + (make-directory ".src")) + +(autoload 'vc-switches "vc") + +(defun vc-src-register (files &optional _comment) + "Register FILES under src. COMMENT is ignored." + (vc-src-command nil files "add")) + +(defun vc-src-responsible-p (file) + "Return non-nil if SRC thinks it would be responsible for registering FILE." + (file-directory-p (expand-file-name ".src" + (if (file-directory-p file) + file + (file-name-directory file))))) + +(defun vc-src-checkin (files comment) + "SRC-specific version of `vc-backend-checkin'. +REV is ignored." + (vc-src-command nil files "commit" "-m" comment)) + +(defun vc-src-find-revision (file rev buffer) + (let ((coding-system-for-read 'binary) + (coding-system-for-write 'binary)) + (if rev + (vc-src-command buffer file "cat" rev) + (vc-src-command buffer file "cat")))) + +(defun vc-src-checkout (file &optional rev) + "Retrieve a revision of FILE. +REV is the revision to check out into WORKFILE." + (if rev + (vc-src-command nil file "co" rev) + (vc-src-command nil file "co"))) + +(defun vc-src-revert (file &optional _contents-done) + "Revert FILE to the version it was based on. If FILE is a directory, +revert all registered files beneath it." + (if (file-directory-p file) + (mapc 'vc-src-revert (vc-expand-dirs (list file) 'SRC)) + (vc-src-command nil file "co"))) + +(defun vc-src-modify-change-comment (files rev comment) + "Modify the change comments change on FILES on a specified REV. If FILE is a +directory the operation is applied to all registered files beneath it." + (dolist (file (vc-expand-dirs files 'SRC)) + (vc-src-command nil file "amend" "-m" comment rev))) + +;; History functions + +(defcustom vc-src-log-switches nil + "String or list of strings specifying switches for src log under VC." + :type '(choice (const :tag "None" nil) + (string :tag "Argument String") + (repeat :tag "Argument List" :value ("") string)) + :group 'vc-src) + +(defun vc-src-print-log (files buffer &optional shortlog _start-revision limit) + "Print commit log associated with FILES into specified BUFFER. +If SHORTLOG is non-nil, use the list method. +If START-REVISION is non-nil, it is the newest revision to show. +If LIMIT is non-nil, show no more than this many entries." + ;; FIXME: Implement the range restrictions. + ;; `vc-do-command' creates the buffer, but we need it before running + ;; the command. + (vc-setup-buffer buffer) + ;; If the buffer exists from a previous invocation it might be + ;; read-only. + (let ((inhibit-read-only t)) + (with-current-buffer + buffer + (apply 'vc-src-command buffer files (if shortlog "list" "log") + (nconc + ;;(when start-revision (list (format "%s-1" start-revision))) + (when limit (list "-l" (format "%s" limit))) + vc-src-log-switches))))) + +(defun vc-src-diff (files &optional oldvers newvers buffer _async) + "Get a difference report using src between two revisions of FILES." + (let* ((firstfile (car files)) + (working (and firstfile (vc-working-revision firstfile)))) + (when (and (equal oldvers working) (not newvers)) + (setq oldvers nil)) + (when (and (not oldvers) newvers) + (setq oldvers working)) + (apply #'vc-src-command (or buffer "*vc-diff*") files "diff" + (when oldvers + (if newvers + (list (concat oldvers "-" newvers)) + (list oldvers)))))) + +;; Miscellaneous + +(defun vc-src-rename-file (old new) + "Rename file from OLD to NEW using `src mv'." + (vc-src-command nil 0 new "mv" old)) + +(provide 'vc-src) + +;;; vc-src.el ends here diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el index 85976db78bd..5c87cab2d92 100644 --- a/lisp/vc/vc-svn.el +++ b/lisp/vc/vc-svn.el @@ -135,6 +135,7 @@ If you want to force an empty list of arguments, use t." (defun vc-svn-registered (file) "Check if FILE is SVN registered." + (setq file (expand-file-name file)) (when (vc-svn-root file) (with-temp-buffer (cd (file-name-directory file)) @@ -153,34 +154,14 @@ If you want to force an empty list of arguments, use t." (let ((parsed (vc-svn-parse-status file))) (and parsed (not (memq parsed '(ignored unregistered)))))))))) -(defun vc-svn-state (file &optional localp) +(defun vc-svn-state (file) "SVN-specific version of `vc-state'." (let (process-file-side-effects) - (setq localp (or localp (vc-stay-local-p file 'SVN))) (with-temp-buffer (cd (file-name-directory file)) - (vc-svn-command t 0 file "status" (if localp "-v" "-u")) + (vc-svn-command t 0 file "status" "-v") (vc-svn-parse-status file)))) -;; NB this does not handle svn properties, which can be changed -;; without changing the file timestamp. -;; Note that unlike vc-cvs-state-heuristic, this is not called from -;; vc-svn-state. AFAICS, it is only called from vc-state-refresh via -;; vc-after-save (bug#7850). Therefore the fact that it ignores -;; properties is irrelevant. If you want to make vc-svn-state call -;; this, it should be extended to handle svn properties. -(defun vc-svn-state-heuristic (file) - "SVN-specific state heuristic." - ;; If the file has not changed since checkout, consider it `up-to-date'. - ;; Otherwise consider it `edited'. Copied from vc-cvs-state-heuristic. - (let ((checkout-time (vc-file-getprop file 'vc-checkout-time)) - (lastmod (nth 5 (file-attributes file)))) - (cond - ((equal checkout-time lastmod) 'up-to-date) - ((string= (vc-working-revision file) "0") 'added) - ((null checkout-time) 'unregistered) - (t 'edited)))) - ;; FIXME it would be better not to have the "remote" argument, ;; but to distinguish the two output formats based on content. (defun vc-svn-after-dir-status (callback &optional remote) @@ -195,7 +176,7 @@ If you want to force an empty list of arguments, use t." (?~ . edited))) (re (if remote "^\\(.\\)\\(.\\).....? \\([ *]\\) +\\(?:[-0-9]+\\)? \\(.*\\)$" ;; Subexp 3 is a dummy in this case, so the numbers match. - "^\\(.\\)\\(.\\)...\\(.\\) \\(.*\\)$")) + "^\\(.\\)\\(.\\)...\\(.\\).? \\(.*\\)$")) result) (goto-char (point-min)) (while (re-search-forward re nil t) @@ -215,29 +196,19 @@ If you want to force an empty list of arguments, use t." (setq result (cons (list filename state) result))))) (funcall callback result))) -;; -dir-status called from vc-dir, which loads vc, which loads vc-dispatcher. +;; dir-status-files called from vc-dir, which loads vc, +;; which loads vc-dispatcher. (declare-function vc-exec-after "vc-dispatcher" (code)) -(defun vc-svn-dir-status (dir callback) +(autoload 'vc-expand-dirs "vc") + +(defun vc-svn-dir-status-files (_dir files callback) "Run 'svn status' for DIR and update BUFFER via CALLBACK. CALLBACK is called as (CALLBACK RESULT BUFFER), where RESULT is a list of conses (FILE . STATE) for directory DIR." - ;; FIXME should this rather be all the files in dir? - ;; FIXME: the vc-stay-local-p logic below is disabled, it ends up - ;; calling synchronously (vc-svn-registered DIR) => calling svn status -v DIR - ;; which is VERY SLOW for big trees and it makes emacs - ;; completely unresponsive during that time. - (let* ((local (and nil (vc-stay-local-p dir 'SVN))) - (remote (or t (not local) (eq local 'only-file)))) - (vc-svn-command (current-buffer) 'async nil "status" - (if remote "-u")) - (vc-run-delayed - (vc-svn-after-dir-status callback remote)))) - -(defun vc-svn-dir-status-files (_dir files _default-state callback) - (apply 'vc-svn-command (current-buffer) 'async nil "status" files) - (vc-run-delayed - (vc-svn-after-dir-status callback))) + ;; FIXME shouldn't this rather default to all the files in dir? + (apply #'vc-svn-command (current-buffer) 'async nil "status" "-u" files) + (vc-run-delayed (vc-svn-after-dir-status callback))) (defun vc-svn-dir-extra-headers (_dir) "Generate extra status headers for a Subversion working copy." @@ -300,7 +271,7 @@ RESULT is a list of conses (FILE . STATE) for directory DIR." (autoload 'vc-switches "vc") -(defun vc-svn-register (files &optional _rev _comment) +(defun vc-svn-register (files &optional _comment) "Register FILES into the SVN version-control system. The COMMENT argument is ignored This does an add but not a commit. Passes either `vc-svn-register-switches' or `vc-register-switches' @@ -312,13 +283,8 @@ to the SVN command." (defalias 'vc-svn-responsible-p 'vc-svn-root) -(defalias 'vc-svn-could-register 'vc-svn-root - "Return non-nil if FILE could be registered in SVN. -This is only possible if SVN is responsible for FILE's directory.") - -(defun vc-svn-checkin (files rev comment &optional _extra-args-ignored) +(defun vc-svn-checkin (files comment &optional _extra-args-ignored) "SVN-specific version of `vc-backend-checkin'." - (if rev (error "Committing to a specific revision is unsupported in SVN")) (let ((status (apply 'vc-svn-command nil 1 files "ci" (nconc (list "-m" comment) (vc-switches 'SVN 'checkin))))) @@ -354,27 +320,36 @@ This is only possible if SVN is responsible for FILE's directory.") (concat "-r" rev)) (vc-switches 'SVN 'checkout)))) -(defun vc-svn-ignore (file &optional _directory _remove) +(defun vc-svn-ignore (file &optional directory remove) "Ignore FILE under Subversion. FILE is a file wildcard, relative to the root directory of DIRECTORY." - (vc-svn-command t 0 file "propedit" "svn:ignore")) + (let* ((ignores (vc-svn-ignore-completion-table directory)) + (file (file-relative-name file directory)) + (ignores (if remove + (delete file ignores) + (push file ignores)))) + (vc-svn-command nil 0 nil nil "propset" "svn:ignore" + (mapconcat #'identity ignores "\n") + (expand-file-name directory)))) -(defun vc-svn-ignore-completion-table (_file) - "Return the list of ignored files." - ) +(defun vc-svn-ignore-completion-table (directory) + "Return the list of ignored files in DIRECTORY." + (with-temp-buffer + (vc-svn-command t t nil "propget" "svn:ignore" (expand-file-name directory)) + (split-string (buffer-string)))) (defun vc-svn-find-admin-dir (file) "Return the administrative directory of FILE." (expand-file-name vc-svn-admin-directory (vc-svn-root file))) -(defun vc-svn-checkout (file &optional editable rev) +(defun vc-svn-checkout (file &optional rev) (message "Checking out %s..." file) (with-current-buffer (or (get-file-buffer file) (current-buffer)) - (vc-svn-update file editable rev (vc-switches 'SVN 'checkout))) + (vc-svn-update file rev (vc-switches 'SVN 'checkout))) (vc-mode-line file 'SVN) (message "Checking out %s...done" file)) -(defun vc-svn-update (file _editable rev switches) +(defun vc-svn-update (file rev switches) (if (and (file-exists-p file) (not rev)) ;; If no revision was specified, there's nothing to do. nil @@ -399,6 +374,29 @@ FILE is a file wildcard, relative to the root directory of DIRECTORY." (unless contents-done (vc-svn-command nil 0 file "revert"))) +(defun vc-svn-merge-file (file) + "Accept a file merge request, prompting for revisions." + (let* ((first-revision + (vc-read-revision + (concat "Merge " file + " from SVN revision " + "(default news on current branch): ") + (list file) + 'SVN)) + second-revision + status) + (cond + ((string= first-revision "") + (setq status (vc-svn-merge-news file))) + (t + (setq second-revision + (vc-read-revision + "Second SVN revision: " + (list file) 'SVN nil + first-revision)) + (setq status (vc-svn-merge file first-revision second-revision)))) + status)) + (defun vc-svn-merge (file first-version &optional second-version) "Merge changes into current working copy of FILE. The changes are between FIRST-VERSION and SECOND-VERSION." @@ -531,7 +529,6 @@ If LIMIT is non-nil, show no more than this many entries." 'vc-svn-command buffer 'async - ;; (if (and (= (length files) 1) (vc-stay-local-p file 'SVN)) 'async 0) (list file) "log" (append @@ -551,7 +548,7 @@ If LIMIT is non-nil, show no more than this many entries." (if start-revision (format "-r%s" start-revision) "-rHEAD:0")) (when limit (list "--limit" (format "%s" limit))))))))) -(defun vc-svn-diff (files &optional oldvers newvers buffer) +(defun vc-svn-diff (files &optional oldvers newvers buffer async) "Get a difference report using SVN between two revisions of fileset FILES." (and oldvers (not newvers) @@ -566,14 +563,12 @@ If LIMIT is non-nil, show no more than this many entries." ;; has a different revision, we fetch the lot, which is ;; obviously sub-optimal. (setq oldvers nil)) + (setq async (and async (or oldvers newvers))) ; Svn diffs those locally. (let* ((switches (if vc-svn-diff-switches (vc-switches 'SVN 'diff) (list (concat "--diff-cmd=" diff-command) "-x" - (mapconcat 'identity (vc-switches nil 'diff) " ")))) - (async (and (not vc-disable-async-diff) - (vc-stay-local-p files 'SVN) - (or oldvers newvers)))) ; Svn diffs those locally. + (mapconcat 'identity (vc-switches nil 'diff) " "))))) (apply 'vc-svn-command buffer (if async 'async 0) files "diff" @@ -615,7 +610,7 @@ NAME is assumed to be a URL." ;; Subversion makes backups for us, so don't bother. ;; (defun vc-svn-make-version-backups-p (file) ;; "Return non-nil if version backups should be made for FILE." -;; (vc-stay-local-p file 'SVN)) +;; nil) (defun vc-svn-check-headers () "Check if the current file has any headers in it." @@ -638,17 +633,6 @@ and that it passes `vc-svn-global-switches' to it before FLAGS." (cons vc-svn-global-switches flags) (append vc-svn-global-switches flags)))) -(defun vc-svn-repository-hostname (dirname) - (with-temp-buffer - (let (process-file-side-effects) - (vc-svn-command t t dirname "info" "--xml")) - (goto-char (point-min)) - (when (re-search-forward "\\(.*\\)" nil t) - ;; This is not a hostname but a URL. This may actually be considered - ;; as a feature since it allows vc-svn-stay-local to specify different - ;; behavior for different modules on the same server. - (match-string 1)))) - (defun vc-svn-resolve-when-done () "Call \"svn resolved\" if the conflict markers have been removed." (save-excursion diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 5491d67e700..6283dc8d782 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1,4 +1,4 @@ -;;; vc.el --- drive a version-control system from within Emacs -*- lexical-binding: t -*- +;;; vc.el --- drive a version-control system from within Emacs -*- lexical-binding:t -*- ;; Copyright (C) 1992-1998, 2000-2014 Free Software Foundation, Inc. @@ -46,15 +46,15 @@ ;; If you maintain a client of the mode or customize it in your .emacs, ;; note that some backend functions which formerly took single file arguments ;; now take a list of files. These include: register, checkin, print-log, -;; rollback, and diff. +;; and diff. ;;; Commentary: ;; This mode is fully documented in the Emacs user's manual. ;; -;; Supported version-control systems presently include CVS, RCS, GNU -;; Arch, Subversion, Bzr, Git, Mercurial, Monotone and SCCS -;; (or its free replacement, CSSC). +;; Supported version-control systems presently include CVS, RCS, SRC, +;; GNU Subversion, Bzr, Git, Mercurial, Monotone and SCCS (or its free +;; replacement, CSSC). ;; ;; If your site uses the ChangeLog convention supported by Emacs, the ;; function `log-edit-comment-to-change-log' could prove a useful checkin hook, @@ -72,7 +72,10 @@ ;; When using Subversion or a later system, anything you do outside VC ;; *through the VCS tools* should safely interlock with VC ;; operations. Under these VC does little state caching, because local -;; operations are assumed to be fast. The dividing line is +;; operations are assumed to be fast. +;; +;; The 'assumed to be fast' category includes SRC, even though it's +;; a wrapper around RCS. ;; ;; ADDING SUPPORT FOR OTHER BACKENDS ;; @@ -125,42 +128,33 @@ ;; Return the current version control state of FILE. For a list of ;; possible values, see `vc-state'. This function should do a full and ;; reliable state computation; it is usually called immediately after -;; C-x v v. If you want to use a faster heuristic when visiting a -;; file, put that into `state-heuristic' below. Note that under most -;; VCSes this won't be called at all, dir-status is used instead. +;; C-x v v. ;; -;; - state-heuristic (file) -;; -;; If provided, this function is used to estimate the version control -;; state of FILE at visiting time. It should be considerably faster -;; than the implementation of `state'. For a list of possible values, -;; see the doc string of `vc-state'. -;; -;; - dir-status (dir update-function) +;; - dir-status-files (dir files update-function) ;; ;; Produce RESULT: a list of lists of the form (FILE VC-STATE EXTRA) -;; for the files in DIR. +;; for FILES in DIR. If FILES is nil, report on all files in DIR. +;; (It is OK, though possibly inefficient, to ignore the FILES argument +;; and always report on all files in DIR.) +;; +;; If FILES is non-nil, this function should report on all requested +;; files, including up-to-date or ignored files. +;; ;; EXTRA can be used for backend specific information about FILE. ;; If a command needs to be run to compute this list, it should be ;; run asynchronously using (current-buffer) as the buffer for the -;; command. When RESULT is computed, it should be passed back by -;; doing: (funcall UPDATE-FUNCTION RESULT nil). -;; If the backend uses a process filter, hence it produces partial results, -;; they can be passed back by doing: -;; (funcall UPDATE-FUNCTION RESULT t) -;; and then do a (funcall UPDATE-FUNCTION RESULT nil) -;; when all the results have been computed. +;; command. +;; +;; When RESULT is computed, it should be passed back by doing: +;; (funcall UPDATE-FUNCTION RESULT nil). If the backend uses a +;; process filter, hence it produces partial results, they can be +;; passed back by doing: (funcall UPDATE-FUNCTION RESULT t) and then +;; do a (funcall UPDATE-FUNCTION RESULT nil) when all the results +;; have been computed. +;; ;; To provide more backend specific functionality for `vc-dir' ;; the following functions might be needed: `dir-extra-headers', -;; `dir-printer', `extra-dir-menu' and `dir-status-files'. -;; -;; - dir-status-files (dir files default-state update-function) -;; -;; This function is identical to dir-status except that it should -;; only report status for the specified FILES. Also it needs to -;; report on all requested files, including up-to-date or ignored -;; files. If not provided, the default is to consider that the files -;; are in DEFAULT-STATE. +;; `dir-printer', and `extra-dir-menu'. ;; ;; - dir-extra-headers (dir) ;; @@ -185,29 +179,11 @@ ;; head or tip revision. Should return "0" for a file added but not yet ;; committed. ;; -;; - latest-on-branch-p (file) -;; -;; Return non-nil if the working revision of FILE is the latest revision -;; on its branch (many VCSes call this the 'tip' or 'head' revision). -;; The default implementation always returns t, which means that -;; working with non-current revisions is not supported by default. -;; ;; * checkout-model (files) ;; ;; Indicate whether FILES need to be "checked out" before they can be ;; edited. See `vc-checkout-model' for a list of possible values. ;; -;; - workfile-unchanged-p (file) -;; -;; Return non-nil if FILE is unchanged from the working revision. -;; This function should do a brief comparison of FILE's contents -;; with those of the repository copy of the working revision. If -;; the backend does not have such a brief-comparison feature, the -;; default implementation of this function can be used, which -;; delegates to a full vc-BACKEND-diff. (Note that vc-BACKEND-diff -;; must not run asynchronously in this case, see variable -;; `vc-disable-async-diff'.) -;; ;; - mode-line-string (file) ;; ;; If provided, this function should return the VC-specific mode @@ -225,21 +201,16 @@ ;; it so VC mode can add files to it. For file-oriented systems, this ;; need do no more than create a subdirectory with the right name. ;; -;; * register (files &optional rev comment) +;; * register (files &optional comment) ;; -;; Register FILES in this backend. Optionally, an initial revision REV -;; and an initial description of the file, COMMENT, may be specified, -;; but it is not guaranteed that the backend will do anything with this. -;; The implementation should pass the value of vc-register-switches -;; to the backend command. (Note: in older versions of VC, this -;; command took a single file argument and not a list.) -;; The REV argument is a historical leftover and is never used. -;; -;; - init-revision (file) -;; -;; The initial revision to use when registering FILE if one is not -;; specified by the user. If not provided, the variable -;; vc-default-init-revision is used instead. +;; Register FILES in this backend. Optionally, an initial +;; description of the file, COMMENT, may be specified, but it is not +;; guaranteed that the backend will do anything with this. The +;; implementation should pass the value of vc-register-switches to +;; the backend command. (Note: in older versions of VC, this +;; command had an optional revision first argument that was +;; not used; in still older ones it took a single file argument and +;; not a list.) ;; ;; - responsible-p (file) ;; @@ -249,11 +220,6 @@ ;; like change log generation. The default implementation always ;; returns nil. ;; -;; - could-register (file) -;; -;; Return non-nil if FILE could be registered under this backend. The -;; default implementation always returns t. -;; ;; - receive-file (file rev) ;; ;; Let this backend "receive" a file that is already registered under @@ -267,12 +233,12 @@ ;; Unregister FILE from this backend. This is only needed if this ;; backend may be used as a "more local" backend for temporary editing. ;; -;; * checkin (files rev comment) +;; * checkin (files comment) ;; -;; Commit changes in FILES to this backend. REV is a historical artifact -;; and should be ignored. COMMENT is used as a check-in comment. -;; The implementation should pass the value of vc-checkin-switches to -;; the backend command. +;; Commit changes in FILES to this backend. COMMENT is used as a +;; check-in comment. The implementation should pass the value of +;; vc-checkin-switches to the backend command. The revision argument +;; of some older VC versions is no longer supported. ;; ;; * find-revision (file rev buffer) ;; @@ -281,16 +247,17 @@ ;; The implementation should pass the value of vc-checkout-switches ;; to the backend command. ;; -;; * checkout (file &optional editable rev) +;; * checkout (file &optional rev) ;; -;; Check out revision REV of FILE into the working area. If EDITABLE -;; is non-nil, FILE should be writable by the user and if locking is -;; used for FILE, a lock should also be set. If REV is non-nil, that -;; is the revision to check out (default is the working revision). -;; If REV is t, that means to check out the head of the current branch; -;; if it is the empty string, check out the head of the trunk. -;; The implementation should pass the value of vc-checkout-switches -;; to the backend command. +;; Check out revision REV of FILE into the working area. FILE +;; should be writable by the user and if locking is used for FILE, a +;; lock should also be set. If REV is non-nil, that is the revision +;; to check out (default is the working revision). If REV is t, +;; that means to check out the head of the current branch; if it is +;; the empty string, check out the head of the trunk. The +;; implementation should pass the value of vc-checkout-switches to +;; the backend command. The 'editable' argument of older VC versions +;; is gone; all files are checked out editable. ;; ;; * revert (file &optional contents-done) ;; @@ -301,19 +268,11 @@ ;; If FILE is in the `added' state it should be returned to the ;; `unregistered' state. ;; -;; - rollback (files) +;; - merge-file (file rev1 rev2) ;; -;; Remove the tip revision of each of FILES from the repository. If -;; this function is not provided, trying to cancel a revision is -;; caught as an error. (Most backends don't provide it.) (Also -;; note that older versions of this backend command were called -;; 'cancel-version' and took a single file arg, not a list of -;; files.) -;; -;; - merge (file rev1 rev2) -;; -;; Merge the changes between REV1 and REV2 into the current working file -;; (for non-distributed VCS). +;; Merge the changes between REV1 and REV2 into the current working +;; file (for non-distributed VCS). It is expected that with an +;; empty first revision this will behave like the merge-news method. ;; ;; - merge-branch () ;; @@ -402,13 +361,14 @@ ;; default implementation runs rcs2log, which handles RCS- and ;; CVS-style logs. ;; -;; * diff (files &optional rev1 rev2 buffer) +;; * diff (files &optional rev1 rev2 buffer async) ;; ;; Insert the diff for FILE into BUFFER, or the *vc-diff* buffer if -;; BUFFER is nil. If REV1 and REV2 are non-nil, report differences -;; from REV1 to REV2. If REV1 is nil, use the working revision (as -;; found in the repository) as the older revision; if REV2 is nil, -;; use the current working-copy contents as the newer revision. This +;; BUFFER is nil. If ASYNC is non-nil, run asynchronously. If REV1 +;; and REV2 are non-nil, report differences from REV1 to REV2. If +;; REV1 is nil, use the working revision (as found in the +;; repository) as the older revision; if REV2 is nil, use the +;; current working-copy contents as the newer revision. This ;; function should pass the value of (vc-switches BACKEND 'diff) to ;; the backend command. It should return a status of either 0 (no ;; differences found), or 1 (either non-empty diff or the diff is @@ -458,6 +418,15 @@ ;; If the backend supports annotating through copies and renames, ;; and displays a file name and a revision, then return a cons ;; (REVISION . FILENAME). +;; +;; - region-history (FILE BUFFER LFROM LTO) +;; +;; Insert into BUFFER the history (log comments and diffs) of the content of +;; FILE between lines LFROM and LTO. This is typically done asynchronously. +;; +;; - region-history-mode () +;; +;; Major mode to use for the output of `region-history'. ;; TAG SYSTEM ;; @@ -493,14 +462,6 @@ ;; ;; Return the root of the VC controlled hierarchy for file. ;; -;; - repository-hostname (dirname) -;; -;; Return the hostname that the backend will have to contact -;; in order to operate on a file in DIRNAME. If the return value -;; is nil, it means that the repository is local. -;; This function is used in `vc-stay-local-p' which backends can use -;; for their convenience. -;; ;; - ignore (file &optional directory) ;; ;; Ignore FILE under the VCS of DIRECTORY (default is `default-directory'). @@ -536,15 +497,6 @@ ;; ;; Return non-nil if the current buffer contains any version headers. ;; -;; - clear-headers () -;; -;; In the current buffer, reset all version headers to their unexpanded -;; form. This function should be provided if the state-querying code -;; for this backend uses the version headers to determine the state of -;; a file. This function will then be called whenever VC changes the -;; version control state in such a way that the headers would give -;; wrong information. -;; ;; - delete-file (file) ;; ;; Delete FILE and mark it as deleted in the repository. If this @@ -586,19 +538,82 @@ ;; the project that contains DIR. ;; FIXME: what should it do with non-text conflicts? +;;; Changes from the pre-25.1 API: +;; +;; - INCOMPATIBLE CHANGE: The 'editable' optional argument of +;; vc-checkout is gone. The upper level assumes that all files are +;; checked out editable. This moves closer to emulating modern +;; non-locking behavior even on very old VCSes. +;; +;; - INCOMPATIBLE CHANGE: The vc-register function and its backend +;; implementations no longer take a first optional revision +;; argument, since on no system since RCS has setting the initial +;; revision been even possible, let alone sane. +;; +;; INCOMPATIBLE CHANGE: In older versions of the API, vc-diff did +;; not take an async-mode flag as a fourth optional argument. (This +;; change eliminated a particularly ugly global.) +;; +;; - INCOMPATIBLE CHANGE: The backend operation for non-distributed +;; VCSes formerly called "merge" is now "merge-file" (to contrast +;; with merge-branch), and does its own prompting for revisions. +;; (This fixes a layer violation that produced bad behavior under +;; SVN.) +;; +;; - INCOMPATIBLE CHANGE: The old fourth 'default-state' argument of +;; vc-dir-status-files is gone; none of the back ends actually used it. +;; +;; - vc-dir-status is no longer a public method; it has been replaced +;; by vc-dir-status-files. +;; +;; - vc-state-heuristic is no longer a public method (the CVS backend +;; retains it as a private one). +;; +;; - the vc-mistrust-permissions configuration variable is gone; the +;; code no longer relies on permissions except in one corner case where +;; CVS leaves no alternative (which was not gated by this variable). The +;; only affected back ends were SCCS and RCS. +;; +;; - vc-stay-local-p and repository-hostname are no longer part +;; of the public API. The vc-stay-local configuration variable +;; remains but only affects the CVS back end. +;; +;; - The init-revision function and the default-initial-revision +;; variable are gone. These have't made sense on anything shipped +;; since RCS, and using them was a dumb stunt even on RCS. +;; +;; - workfile-unchanged-p is no longer a public back-end method. It +;; was redundant with vc-state and usually implemented with a trivial +;; call to it. A few older back ends retain versions for internal use in +;; their vc-state functions. +;; +;; - could-register is no longer a public method. Only vc-cvs ever used it +;; +;; The vc-keep-workfiles configuration variable is gone. Used only by +;; the RCS and SCCS backends, it was an invitation to shoot self in foot +;; when set to the (non-default) value nil. The original justification +;; for it (saving disk space) is long obsolete. +;; +;; - The rollback method (implemented by RCS and SCCS only) is gone. See +;; the to-do note on uncommit. +;; +;; - latest-on-branch-p is no longer a public method. It was to be used +;; for implementing rollback. RCS keeps its implementation (the only one) +;; for internal use. + + ;;; Todo: -;; - Get rid of the "master file" terminology. - -;; - Add key-binding for vc-delete-file. - ;;;; New Primitives: ;; -;; - deal with push/pull operations. +;; - uncommit: undo last checkin, leave changes in place in the workfile, +;; stash the commit comment for re-use. +;; +;; - deal with push operations. ;; ;;;; Primitives that need changing: ;; -;; - vc-update/vc-merge should deal with VC systems that don't +;; - vc-update/vc-merge should deal with VC systems that don't do ;; update/merge on a file basis, but on a whole repository basis. ;; vc-update and vc-merge assume the arguments are always files, ;; they don't deal with directories. Make sure the *vc-dir* buffer @@ -607,27 +622,44 @@ ;; ;;;; Improved branch and tag handling: ;; +;; - Make sure the *vc-dir* buffer is updated after merge-branch operations. +;; ;; - add a generic mechanism for remembering the current branch names, ;; display the branch name in the mode-line. Replace ;; vc-cvs-sticky-tag with that. ;; -;;;; Internal cleanups: +;; - Add a primitives for switching to a branch (creating it if required. ;; -;; - backends that care about vc-stay-local should try to take it into -;; account for vc-dir. Is this likely to be useful??? YES! +;; - Add the ability to list tags and branches. ;; -;; - vc-expand-dirs should take a backend parameter and only look for -;; files managed by that backend. +;;;; Unify two different versions of the amend capability ;; -;; - Another important thing: merge all the status-like backend operations. -;; We should remove dir-status, state, and dir-status-files, and -;; replace them with just `status' which takes a fileset and a continuation -;; (like dir-status) and returns a buffer in which the process(es) are run -;; (or nil if it worked synchronously). Hopefully we can define the old -;; 4 operations in term of this one. +;; - Some back ends (SCCS/RCS/SVN/SRC), have an amend capability that can +;; be invoked from log-view. +;; +;; - The git backend supports amending, but in a different +;; way (press `C-c C-e' in log-edit buffer, when making a new commit). +;; +;; - Second, `log-view-modify-change-comment' doesn't seem to support +;; modern backends at all because `log-view-extract-comment' +;; unconditionally calls `log-view-current-file'. This should be easy to +;; fix. +;; +;; - Third, doing message editing in log-view might be a natural way to go +;; about it, but editing any but the last commit (and even it, if it's +;; been pushed) is a dangerous operation in Git, which we shouldn't make +;; too easy for users to perform. +;; +;; There should be a check that the given comment is not reachable +;; from any of the "remote" refs? ;; ;;;; Other ;; +;; - asynchronous checkin and commit, so you can keep working in other +;; buffers while the repo operation happens. +;; +;; - Direct support for stash/shelve. +;; ;; - when a file is in `conflict' state, turn on smerge-mode. ;; ;; - figure out what to do with conflicts that are not caused by the @@ -673,6 +705,7 @@ (require 'vc-hooks) (require 'vc-dispatcher) +(require 'cl-lib) (declare-function diff-setup-whitespace "diff-mode" ()) @@ -701,14 +734,6 @@ (make-obsolete-variable 'vc-initial-comment "it has no effect." "23.2") -(defcustom vc-default-init-revision "1.1" - "A string used as the default revision number when a new file is registered. -This can be overridden by giving a prefix argument to \\[vc-register]. This -can also be overridden by a particular VC backend." - :type 'string - :group 'vc - :version "20.3") - (defcustom vc-checkin-switches nil "A string or list of strings specifying extra switches for checkin. These are passed to the checkin program by \\[vc-checkin]." @@ -826,13 +851,6 @@ is sensitive to blank lines." :group 'vc) -;; Variables users don't need to see - -(defvar vc-disable-async-diff nil - "VC sets this to t locally to disable some async diff operations. -Backends that offer asynchronous diffs should respect this variable -in their implementation of vc-BACKEND-diff.") - ;; File property caching (defun vc-clear-context () @@ -928,14 +946,14 @@ responsible for FILE is returned." (throw 'found backend)))) (error "No VC backend is responsible for %s" file))) -(defun vc-expand-dirs (file-or-dir-list) +(defun vc-expand-dirs (file-or-dir-list backend) "Expands directories in a file list specification. Within directories, only files already under version control are noticed." (let ((flattened '())) (dolist (node file-or-dir-list) (when (file-directory-p node) (vc-file-tree-walk - node (lambda (f) (when (vc-backend f) (push f flattened))))) + node (lambda (f) (when (eq (vc-backend f) backend) (push f flattened))))) (unless (file-directory-p node) (push node flattened))) (nreverse flattened))) @@ -973,8 +991,8 @@ Otherwise, throw an error. STATE-MODEL-ONLY-FILES if non-nil, means that the caller needs the FILESET-ONLY-FILES STATE and MODEL info. Otherwise, that part may be skipped. -BEWARE: this function may change the -current buffer." + +BEWARE: this function may change the current buffer." ;; FIXME: OBSERVER is unused. The name is not intuitive and is not ;; documented. It's set to t when called from diff and print-log. (let (backend) @@ -985,6 +1003,9 @@ current buffer." (if observer (vc-dired-deduce-fileset) (error "State changing VC operations not supported in `dired-mode'"))) + ((and (derived-mode-p 'log-view-mode) + (setq backend (vc-responsible-backend default-directory))) + (list backend default-directory)) ((setq backend (vc-backend buffer-file-name)) (if state-model-only-files (list backend (list buffer-file-name) @@ -1079,8 +1100,7 @@ For old-style locking-based version control systems, like RCS: If every file is registered and unlocked, check out (lock) the file(s) for editing. If every file is locked by you and has changes, pop up a - *vc-log* buffer to check in the changes. If the variable - `vc-keep-workfiles' is non-nil (the default), leave a + *vc-log* buffer to check in the changes. Leave a read-only copy of each changed file after checking in. If every file is locked by you and unchanged, unlock them. If every file is locked by someone else, offer to steal the lock." @@ -1111,7 +1131,7 @@ For old-style locking-based version control systems, like RCS: ((eq state 'ignored) (error "Fileset files are ignored by the version-control system")) ((or (null state) (eq state 'unregistered)) - (vc-register nil vc-fileset)) + (vc-register vc-fileset)) ;; Files are up-to-date, or need a merge and user specified a revision ((or (eq state 'up-to-date) (and verbose (eq state 'needs-update))) (cond @@ -1128,10 +1148,10 @@ For old-style locking-based version control systems, like RCS: (let ((vsym (intern-soft revision-downcase))) (dolist (file files) (vc-transfer-file file vsym))) (dolist (file files) - (vc-checkout file (eq model 'implicit) revision))))) + (vc-checkout file revision))))) ((not (eq model 'implicit)) ;; check the files out - (dolist (file files) (vc-checkout file t))) + (dolist (file files) (vc-checkout file))) (t ;; do nothing (message "Fileset is up-to-date")))) @@ -1148,7 +1168,7 @@ For old-style locking-based version control systems, like RCS: ;; state of each individual file in the fileset, it seems ;; simplest to just check if the file exists. Bug#9781. (when (and (file-exists-p file) (not (file-writable-p file))) - ;; Make the file+buffer read-write. + ;; Make the file-buffer read-write. (unless (y-or-n-p (format "%s is edited but read-only; make it writable and continue? " file)) (error "Aborted")) ;; Maybe we somehow lost permissions on the directory. @@ -1166,7 +1186,7 @@ For old-style locking-based version control systems, like RCS: ;; For files with locking, if the file does not contain ;; any changes, just let go of the lock, i.e. revert. (when (and (not (eq model 'implicit)) - (vc-workfile-unchanged-p file) + (eq state 'up-to-date) ;; If buffer is modified, that means the user just ;; said no to saving it; in that case, don't revert, ;; because the user might intend to save after @@ -1217,10 +1237,10 @@ For old-style locking-based version control systems, like RCS: (if (yes-or-no-p (format "%s is not up-to-date. Get latest revision? " (file-name-nondirectory file))) - (vc-checkout file (eq model 'implicit) t) + (vc-checkout file t) (when (and (not (eq model 'implicit)) (yes-or-no-p "Lock this revision? ")) - (vc-checkout file t))))) + (vc-checkout file))))) ;; needs-merge ((eq state 'needs-merge) (dolist (file files) @@ -1248,16 +1268,13 @@ For old-style locking-based version control systems, like RCS: "Claim lock retaining changes? "))) (progn (vc-call-backend backend 'steal-lock file) (clear-visited-file-modtime) - ;; Must clear any headers here because they wouldn't - ;; show that the file is locked now. - (vc-clear-headers file) (write-file buffer-file-name) (vc-mode-line file backend)) (if (not (yes-or-no-p "Revert to checked-in revision, instead? ")) (error "Checkout aborted") (vc-revert-buffer-internal t t) - (vc-checkout file t))))) + (vc-checkout file))))) ;; Unknown fileset state (t (error "Fileset is in an unknown state %s" state))))) @@ -1277,12 +1294,11 @@ For old-style locking-based version control systems, like RCS: (declare-function vc-dir-move-to-goal-column "vc-dir" ()) ;;;###autoload -(defun vc-register (&optional set-revision vc-fileset comment) +(defun vc-register (&optional vc-fileset comment) "Register into a version control system. If VC-FILESET is given, register the files in that fileset. Otherwise register the current file. -With prefix argument SET-REVISION, allow user to specify initial revision -level. If COMMENT is present, use that as an initial comment. +If COMMENT is present, use that as an initial comment. The version control system to use is found by cycling through the list `vc-handled-backends'. The first backend in that list which declares @@ -1314,11 +1330,7 @@ first backend that could register the file is used." (vc-buffer-sync))))) (message "Registering %s... " files) (mapc 'vc-file-clearprops files) - (vc-call-backend backend 'register files - (if set-revision - (read-string (format "Initial revision level for %s: " files)) - (vc-call-backend backend 'init-revision)) - comment) + (vc-call-backend backend 'register files comment) (mapc (lambda (file) (vc-file-setprop file 'vc-backend backend) @@ -1329,7 +1341,7 @@ first backend that could register the file is used." ;; (make-local-variable 'backup-inhibited) ;; (setq backup-inhibited t)) - (vc-resynch-buffer file vc-keep-workfiles t)) + (vc-resynch-buffer file t t)) files) (when (derived-mode-p 'vc-dir-mode) (vc-dir-move-to-goal-column)) @@ -1416,32 +1428,28 @@ Argument BACKEND is the backend you are using." (replace-match "")) (write-region (point-min) (point-max) file))) -(defun vc-checkout (file &optional writable rev) +(defun vc-checkout (file &optional rev) "Retrieve a copy of the revision REV of FILE. -If WRITABLE is non-nil, make sure the retrieved file is writable. REV defaults to the latest revision. After check-out, runs the normal hook `vc-checkout-hook'." - (and writable - (not rev) + (and (not rev) (vc-call make-version-backups-p file) (vc-up-to-date-p file) (vc-make-version-backup file)) (let ((backend (vc-backend file))) (with-vc-properties (list file) (condition-case err - (vc-call-backend backend 'checkout file writable rev) + (vc-call-backend backend 'checkout file rev) (file-error ;; Maybe the backend is not installed ;-( - (when writable + (when t (let ((buf (get-file-buffer file))) (when buf (with-current-buffer buf (read-only-mode -1))))) (signal (car err) (cdr err)))) `((vc-state . ,(if (or (eq (vc-checkout-model backend (list file)) 'implicit) - (not writable)) - (if (vc-call-backend backend 'latest-on-branch-p file) - 'up-to-date - 'needs-update) + nil) + 'up-to-date 'edited)) (vc-checkout-time . ,(nth 5 (file-attributes file)))))) (vc-resynch-buffer file t t) @@ -1488,16 +1496,11 @@ Type \\[vc-next-action] to check in changes.") ".\n") (message "Please explain why you stole the lock. Type C-c C-c when done."))) -(defun vc-checkin (files backend &optional rev comment initial-contents) - "Check in FILES. -The optional argument REV may be a string specifying the new revision -level (strongly deprecated). COMMENT is a comment -string; if omitted, a buffer is popped up to accept a comment. If -INITIAL-CONTENTS is non-nil, then COMMENT is used as the initial contents -of the log entry buffer. - -If `vc-keep-workfiles' is nil, FILE is deleted afterwards, provided -that the version control system supports this mode of operation. +(defun vc-checkin (files backend &optional comment initial-contents) + "Check in FILES. COMMENT is a comment string; if omitted, a +buffer is popped up to accept a comment. If INITIAL-CONTENTS is +non-nil, then COMMENT is used as the initial contents of the log +entry buffer. Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'." (when vc-before-checkin-hook @@ -1520,7 +1523,7 @@ Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'." ;; vc-checkin-switches, but 'the' local buffer is ;; not a well-defined concept for filesets. (progn - (vc-call-backend backend 'checkin files rev comment) + (vc-call-backend backend 'checkin files comment) (mapc 'vc-delete-automatic-version-backups files)) `((vc-state . up-to-date) (vc-checkout-time . ,(nth 5 (file-attributes file))) @@ -1684,11 +1687,10 @@ Return t if the buffer had changes, nil otherwise." ;; We regard this as "changed". ;; Diff it against /dev/null. (apply 'vc-do-command buffer - 1 "diff" file + (if async 'async 1) "diff" file (append (vc-switches nil 'diff) '("/dev/null")))))) (setq files (nreverse filtered)))) - (let ((vc-disable-async-diff (not async))) - (vc-call-backend (car vc-fileset) 'diff files rev1 rev2 buffer)) + (vc-call-backend (car vc-fileset) 'diff files rev1 rev2 buffer async) (set-buffer buffer) (diff-mode) (set (make-local-variable 'diff-vc-backend) (car vc-fileset)) @@ -1972,25 +1974,6 @@ the variable `vc-BACKEND-header'." (when (string-match (car f) buffer-file-name) (insert (format (cdr f) (car hdstrings))))))))))) -(defun vc-clear-headers (&optional file) - "Clear all version headers in the current buffer (or FILE). -The headers are reset to their non-expanded form." - (let* ((filename (or file buffer-file-name)) - (visited (find-buffer-visiting filename)) - (backend (vc-backend filename))) - (when (vc-find-backend-function backend 'clear-headers) - (if visited - (let ((context (vc-buffer-context))) - ;; save-excursion may be able to relocate point and mark - ;; properly. If it fails, vc-restore-buffer-context - ;; will give it a second try. - (save-excursion - (vc-call-backend backend 'clear-headers)) - (vc-restore-buffer-context context)) - (set-buffer (find-file-noselect filename)) - (vc-call-backend backend 'clear-headers) - (kill-buffer filename))))) - (defun vc-modify-change-comment (files rev oldcomment) "Edit the comment associated with the given files and revision." ;; Less of a kluge than it looks like; log-view mode only passes @@ -2033,42 +2016,17 @@ changes from the current branch." (vc-buffer-sync) (dolist (file files) (let* ((state (vc-state file)) - first-revision second-revision status) + status) (cond ((stringp state) ;; Locking VCses only (error "File %s is locked by %s" file state)) ((not (vc-editable-p file)) (vc-checkout file t))) - (setq first-revision - (vc-read-revision - (concat "Merge " file - " from branch or revision " - "(default news on current branch): ") - (list file) - backend)) - (cond - ((string= first-revision "") - (setq status (vc-call-backend backend 'merge-news file))) - (t - (if (not (vc-branch-p first-revision)) - (setq second-revision - (vc-read-revision - "Second revision: " - (list file) backend nil - ;; FIXME: This is CVS/RCS/SCCS specific. - (concat (vc-branch-part first-revision) "."))) - ;; We want to merge an entire branch. Set revisions - ;; accordingly, so that vc-BACKEND-merge understands us. - (setq second-revision first-revision) - ;; first-revision must be the starting point of the branch - (setq first-revision (vc-branch-part first-revision))) - (setq status (vc-call-backend backend 'merge file - first-revision second-revision)))) + (setq status (vc-call-backend backend 'merge-file file)) (vc-maybe-resolve-conflicts file status "WORKFILE" "MERGE SOURCE")))) (t (error "Sorry, merging is not implemented for %s" backend))))) - (defun vc-maybe-resolve-conflicts (file status &optional _name-A _name-B) (vc-resynch-buffer file t (not (buffer-modified-p))) (if (zerop status) (message "Merge successful") @@ -2093,8 +2051,9 @@ changes from the current branch." (let* ((backend (or (if buffer-file-name (vc-backend buffer-file-name)) (vc-responsible-backend default-directory) (error "No VC backend"))) + (root (vc-root-dir)) (files (vc-call-backend backend - 'conflicted-files default-directory))) + 'conflicted-files (or root default-directory)))) ;; Don't try and visit the current file. (if (equal (car files) buffer-file-name) (pop files)) (if (null files) @@ -2148,8 +2107,12 @@ checked out in that new branch." ;;;###autoload (defun vc-retrieve-tag (dir name) - "Descending recursively from DIR, retrieve the tag called NAME. -If NAME is empty, it refers to the latest revisions. + "For each file in or below DIR, retrieve their tagged version NAME. +NAME can name a branch, in which case this command will switch to the +named branch in the directory DIR. +Interactively, prompt for DIR only for VCS that works at file level; +otherwise use the default directory of the current buffer. +If NAME is empty, it refers to the latest revisions of the current branch. If locking is used for the files in DIR, then there must not be any locked files at or below DIR (but if NAME is empty, locked files are allowed and simply skipped)." @@ -2227,19 +2190,11 @@ earlier revisions. Show up to LIMIT entries (non-nil means unlimited)." ;; Don't switch to the output buffer before running the command, ;; so that any buffer-local settings in the vc-controlled ;; buffer can be accessed by the command. - (let ((dir-present nil) - (vc-short-log nil) + (let* ((dir-present (cl-some #'file-directory-p files)) + (shortlog (not (null (memq (if dir-present 'directory 'file) + vc-log-short-style)))) (buffer-name "*vc-change-log*") - type) - (dolist (file files) - (when (file-directory-p file) - (setq dir-present t))) - (setq vc-short-log - (not (null (if dir-present - (memq 'directory vc-log-short-style) - (memq 'file vc-log-short-style))))) - (setq type (if vc-short-log 'short 'long)) - (let ((shortlog vc-short-log)) + (type (if shortlog 'short 'long))) (vc-log-internal-common backend buffer-name files type (lambda (bk buf _type-arg files-arg) @@ -2252,7 +2207,7 @@ earlier revisions. Show up to LIMIT entries (non-nil means unlimited)." (vc-call-backend bk 'show-log-entry working-revision)) (lambda (_ignore-auto _noconfirm) (vc-print-log-internal backend files working-revision - is-start-revision limit)))))) + is-start-revision limit))))) (defvar vc-log-view-type nil "Set this to differentiate the different types of logs.") @@ -2271,15 +2226,18 @@ earlier revisions. Show up to LIMIT entries (non-nil means unlimited)." (with-current-buffer (get-buffer-create buffer-name) (set (make-local-variable 'vc-log-view-type) type)) (setq retval (funcall backend-func backend buffer-name type files)) + (with-current-buffer (get-buffer buffer-name) + (let ((inhibit-read-only t)) + ;; log-view-mode used to be called with inhibit-read-only bound + ;; to t, so let's keep doing it, just in case. + (vc-call-backend backend 'log-view-mode) + (set (make-local-variable 'log-view-vc-backend) backend) + (set (make-local-variable 'log-view-vc-fileset) files) + (set (make-local-variable 'revert-buffer-function) + rev-buff-func))) + ;; Display after setting up major-mode, so display-buffer-alist can know + ;; the major-mode. (pop-to-buffer buffer-name) - (let ((inhibit-read-only t)) - ;; log-view-mode used to be called with inhibit-read-only bound - ;; to t, so let's keep doing it, just in case. - (vc-call-backend backend 'log-view-mode) - (set (make-local-variable 'log-view-vc-backend) backend) - (set (make-local-variable 'log-view-vc-fileset) files) - (set (make-local-variable 'revert-buffer-function) - rev-buff-func)) (vc-run-delayed (let ((inhibit-read-only t)) (funcall setup-buttons-func backend files retval) @@ -2386,6 +2344,29 @@ When called interactively with a prefix argument, prompt for REMOTE-LOCATION." (vc-incoming-outgoing-internal backend remote-location "*vc-outgoing*" 'log-outgoing))) +;;;###autoload +(defun vc-region-history (from to) + "Show the history of the region FROM..TO." + (interactive "r") + (let* ((lfrom (line-number-at-pos from)) + (lto (line-number-at-pos to)) + (file buffer-file-name) + (backend (vc-backend file)) + (buf (get-buffer-create "*VC-history*"))) + (with-current-buffer buf + (setq-local vc-log-view-type 'long)) + (vc-call region-history file buf lfrom lto) + (with-current-buffer buf + (vc-call-backend backend 'region-history-mode) + (set (make-local-variable 'log-view-vc-backend) backend) + (set (make-local-variable 'log-view-vc-fileset) file) + (set (make-local-variable 'revert-buffer-function) + (lambda (_ignore-auto _noconfirm) + (with-current-buffer buf + (let ((inhibit-read-only t)) (erase-buffer))) + (vc-call region-history file buf lfrom lto)))) + (display-buffer buf))) + ;;;###autoload (defun vc-revert () "Revert working copies of the selected fileset to their repository contents. @@ -2433,58 +2414,6 @@ to the working revision (except for keyword expansion)." (vc-revert-file file) (message "Reverting %s...done" (vc-delistify files))))) -;;;###autoload -(defun vc-rollback () - "Roll back (remove) the most recent changeset committed to the repository. -This may be either a file-level or a repository-level operation, -depending on the underlying version-control system." - (interactive) - (let* ((vc-fileset (vc-deduce-fileset)) - (backend (car vc-fileset)) - (files (cadr vc-fileset)) - (granularity (vc-call-backend backend 'revision-granularity))) - (unless (vc-find-backend-function backend 'rollback) - (error "Rollback is not supported in %s" backend)) - (when (and (not (eq granularity 'repository)) (/= (length files) 1)) - (error "Rollback requires a singleton fileset or repository versioning")) - ;; FIXME: latest-on-branch-p should take the fileset. - (when (not (vc-call-backend backend 'latest-on-branch-p (car files))) - (error "Rollback is only possible at the tip revision")) - ;; If any of the files is visited by the current buffer, make - ;; sure buffer is saved. If the user says `no', abort since - ;; we cannot show the changes and ask for confirmation to - ;; discard them. - (when (or (not files) (memq (buffer-file-name) files)) - (vc-buffer-sync nil)) - (dolist (file files) - (when (buffer-modified-p (get-file-buffer file)) - (error "Please kill or save all modified buffers before rollback")) - (when (not (vc-up-to-date-p file)) - (error "Please revert all modified workfiles before rollback"))) - ;; Accumulate changes associated with the fileset - (vc-setup-buffer "*vc-diff*") - (set-buffer-modified-p nil) - (message "Finding changes...") - (let* ((tip (vc-working-revision (car files))) - ;; FIXME: `previous-revision' should take the fileset. - (previous (vc-call-backend backend 'previous-revision - (car files) tip))) - (vc-diff-internal nil vc-fileset previous tip)) - ;; Display changes - (unless (yes-or-no-p "Discard these revisions? ") - (error "Rollback canceled")) - (quit-windows-on "*vc-diff*") - ;; Do the actual reversions - (message "Rolling back %s..." (vc-delistify files)) - (with-vc-properties - files - (vc-call-backend backend 'rollback files) - `((vc-state . ,'up-to-date) - (vc-checkout-time . , (nth 5 (file-attributes file))) - (vc-working-revision . nil))) - (dolist (f files) (vc-resynch-buffer f t t)) - (message "Rolling back %s...done" (vc-delistify files)))) - ;;;###autoload (define-obsolete-function-alias 'vc-revert-buffer 'vc-revert "23.1") @@ -2518,14 +2447,14 @@ tip revision are merged into the working file." (and file (member file files)))))) (dolist (file files) (if (vc-up-to-date-p file) - (vc-checkout file nil t) + (vc-checkout file t) (vc-maybe-resolve-conflicts file (vc-call-backend backend 'merge-news file))))) ;; For a locking VCS, check out each file. ((eq (vc-checkout-model backend files) 'locking) (dolist (file files) (if (vc-up-to-date-p file) - (vc-checkout file nil t)))) + (vc-checkout file t)))) (t (error "VC update is unsupported for `%s'" backend))))) @@ -2647,7 +2576,7 @@ backend to NEW-BACKEND, and unregister FILE from the current backend. (when modified-file (vc-switch-backend file new-backend) (unless (eq (vc-checkout-model new-backend (list file)) 'implicit) - (vc-checkout file t nil)) + (vc-checkout file)) (rename-file modified-file file 'ok-if-already-exists) (vc-file-setprop file 'vc-checkout-time nil))))) (when move @@ -2658,34 +2587,7 @@ backend to NEW-BACKEND, and unregister FILE from the current backend. (when (or move edited) (vc-file-setprop file 'vc-state 'edited) (vc-mode-line file new-backend) - (vc-checkin file new-backend nil comment (stringp comment))))) - -(defun vc-rename-master (oldmaster newfile templates) - "Rename OLDMASTER to be the master file for NEWFILE based on TEMPLATES." - (let* ((dir (file-name-directory (expand-file-name oldmaster))) - (newdir (or (file-name-directory newfile) "")) - (newbase (file-name-nondirectory newfile)) - (masters - ;; List of potential master files for `newfile' - (mapcar - (lambda (s) (vc-possible-master s newdir newbase)) - templates))) - (when (or (file-symlink-p oldmaster) - (file-symlink-p (file-name-directory oldmaster))) - (error "This is unsafe in the presence of symbolic links")) - (rename-file - oldmaster - (catch 'found - ;; If possible, keep the master file in the same directory. - (dolist (f masters) - (when (and f (string= (file-name-directory (expand-file-name f)) dir)) - (throw 'found f))) - ;; If not, just use the first possible place. - (dolist (f masters) - (and f (or (not (setq dir (file-name-directory f))) - (file-directory-p dir)) - (throw 'found f))) - (error "New file lacks a version control directory"))))) + (vc-checkin file new-backend comment (stringp comment))))) ;;;###autoload (defun vc-delete-file (file) @@ -2820,19 +2722,6 @@ log entries should be gathered." The default is to return nil always." nil) -(defun vc-default-could-register (_backend _file) - "Return non-nil if BACKEND could be used to register FILE. -The default implementation returns t for all files." - t) - -(defun vc-default-latest-on-branch-p (_backend _file) - "Return non-nil if FILE is the latest on its branch. -This default implementation always returns non-nil, which means that -editing non-current revisions is not supported by default." - t) - -(defun vc-default-init-revision (_backend) vc-default-init-revision) - (defun vc-default-find-revision (backend file rev buffer) "Provide the new `find-revision' op based on the old `checkout' op. This is only for compatibility with old backends. They should be updated @@ -2927,9 +2816,9 @@ to provide the `find-revision' operation instead." (defalias 'vc-default-revision-completion-table 'ignore) (defalias 'vc-default-mark-resolved 'ignore) -(defun vc-default-dir-status-files (_backend _dir files default-state update-function) +(defun vc-default-dir-status-files (_backend _dir files update-function) (funcall update-function - (mapcar (lambda (file) (list file default-state)) files))) + (mapcar (lambda (file) (list file 'up-to-date)) files))) (defun vc-check-headers () "Check if the current file has any headers in it." diff --git a/lisp/version.el b/lisp/version.el index 68b502ce451..cab2d28db4c 100644 --- a/lisp/version.el +++ b/lisp/version.el @@ -187,8 +187,8 @@ only ask the VCS if we cannot find any information ourselves." (let ((default-directory (file-name-as-directory dir))) (and (eq 0 (condition-case nil - (call-process "git" nil '(t nil) nil "log" - "-1" "--pretty=format:%N") + (call-process "git" nil '(t nil) nil "rev-parse" + "HEAD") (error nil))) (not (zerop (buffer-size))) (replace-regexp-in-string "\n" "" (buffer-string)))))))) diff --git a/lisp/w32-common-fns.el b/lisp/w32-common-fns.el deleted file mode 100644 index d149500c327..00000000000 --- a/lisp/w32-common-fns.el +++ /dev/null @@ -1,134 +0,0 @@ -;;; w32-common-fns.el --- Lisp routines for Windows and Cygwin-w32 - -;; Copyright (C) 1994, 2001-2014 Free Software Foundation, Inc. - -;; This file is part of GNU Emacs. - -;; GNU Emacs 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 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs 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 GNU Emacs. If not, see . - -;;; Commentary: -;;; -;;; This file contains functions that are used by both native NT Emacs -;;; and Cygwin Emacs compiled to use the native Windows widget -;;; library. - -(declare-function x-server-version "w32fns.c" (&optional terminal)) - -(defun w32-version () - "Return the MS-Windows version numbers. -The value is a list of three integers: the major and minor version -numbers, and the build number." - (x-server-version)) - -(defun w32-using-nt () - "Return non-nil if running on a Windows NT descendant. -That includes all Windows systems except for 9X/Me." - (getenv "SystemRoot")) - -(declare-function w32-get-clipboard-data "w32select.c") -(declare-function w32-set-clipboard-data "w32select.c") -(declare-function x-server-version "w32fns.c" (&optional display)) - -;;; Fix interface to (X-specific) mouse.el -(defun x-set-selection (type data) - "Make an X selection of type TYPE and value DATA. -The argument TYPE (nil means `PRIMARY') says which selection, and -DATA specifies the contents. TYPE must be a symbol. \(It can also -be a string, which stands for the symbol with that name, but this -is considered obsolete.) DATA may be a string, a symbol, an -integer (or a cons of two integers or list of two integers). - -The selection may also be a cons of two markers pointing to the same buffer, -or an overlay. In these cases, the selection is considered to be the text -between the markers *at whatever time the selection is examined*. -Thus, editing done in the buffer after you specify the selection -can alter the effective value of the selection. - -The data may also be a vector of valid non-vector selection values. - -The return value is DATA. - -Interactively, this command sets the primary selection. Without -prefix argument, it reads the selection in the minibuffer. With -prefix argument, it uses the text of the region as the selection value. - -Note that on MS-Windows, primary and secondary selections set by Emacs -are not available to other programs." - (put 'x-selections (or type 'PRIMARY) data)) - -(defun x-get-selection (&optional type _data-type) - "Return the value of an X Windows selection. -The argument TYPE (default `PRIMARY') says which selection, -and the argument DATA-TYPE (default `STRING') says -how to convert the data. - -TYPE may be any symbol \(but nil stands for `PRIMARY'). However, -only a few symbols are commonly used. They conventionally have -all upper-case names. The most often used ones, in addition to -`PRIMARY', are `SECONDARY' and `CLIPBOARD'. - -DATA-TYPE is usually `STRING', but can also be one of the symbols -in `selection-converter-alist', which see. This argument is -ignored on MS-Windows and MS-DOS." - (get 'x-selections (or type 'PRIMARY))) - -;; x-selection-owner-p is used in simple.el -(defun x-selection-owner-p (&optional selection _terminal) - "" ; placeholder for doc.c - (and (memq selection '(nil PRIMARY SECONDARY)) - (get 'x-selections (or selection 'PRIMARY)))) - -;; The "Windows" keys on newer keyboards bring up the Start menu -;; whether you want it or not - make Emacs ignore these keystrokes -;; rather than beep. -(global-set-key [lwindow] 'ignore) -(global-set-key [rwindow] 'ignore) - -(defvar w32-charset-info-alist) ; w32font.c - - -;;;; Selections - -;; We keep track of the last text selected here, so we can check the -;; current selection against it, and avoid passing back our own text -;; from x-selection-value. -(defvar x-last-selected-text nil) -(defvar x-select-enable-clipboard) - -(defun x-get-selection-value () - "Return the value of the current selection. -Consult the selection. Treat empty strings as if they were unset." - (if x-select-enable-clipboard - (let (text) - ;; Don't die if x-get-selection signals an error. - (with-demoted-errors "w32-get-clipboard-data:%s" - (setq text (w32-get-clipboard-data))) - (if (string= text "") (setq text nil)) - (cond - ((not text) nil) - ((eq text x-last-selected-text) nil) - ((string= text x-last-selected-text) - ;; Record the newer string, so subsequent calls can use the 'eq' test. - (setq x-last-selected-text text) - nil) - (t - (setq x-last-selected-text text)))))) - -(defalias 'x-selection-value 'x-get-selection-value) - -;; Arrange for the kill and yank functions to set and check the clipboard. -(setq interprogram-cut-function 'x-select-text) -(setq interprogram-paste-function 'x-get-selection-value) - -(provide 'w32-common-fns) diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index fda51b1532b..2cbeb49d543 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el @@ -26,7 +26,6 @@ ;;; Code: (require 'w32-vars) -(require 'w32-common-fns) (defvar explicit-shell-file-name) diff --git a/lisp/whitespace.el b/lisp/whitespace.el index 917f0432ef2..e4577d848c5 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -266,6 +266,8 @@ ;; `whitespace-indentation' Face used to visualize 8 or more ;; SPACEs at beginning of line. ;; +;; `whitespace-big-indent' Face used to visualize big indentation. +;; ;; `whitespace-empty' Face used to visualize empty lines at ;; beginning and/or end of buffer. ;; @@ -286,6 +288,9 @@ ;; `whitespace-indentation-regexp' Specify regexp for 8 or more ;; SPACEs at beginning of line. ;; +;; `whitespace-big-indent-regexp' Specify big indentation at beginning of line +;; regexp. +;; ;; `whitespace-empty-at-bob-regexp' Specify regexp for empty lines ;; at beginning of buffer. ;; @@ -452,6 +457,10 @@ It's a list containing some or all of the following values: It has effect only if `face' (see above) is present in `whitespace-style'. + big-indent Big indentations are visualized via faces. + It has effect only if `face' (see above) + is present in `whitespace-style'. + space-after-tab::tab 8 or more SPACEs after a TAB are visualized via faces. It has effect only if `face' (see above) @@ -544,6 +553,8 @@ See also `whitespace-display-mappings' for documentation." (const :tag "(Face) NEWLINEs" newline) (const :tag "(Face) Indentation SPACEs" indentation) + (const :tag "(Face) Too much line indentation" + big-indent) (const :tag "(Face) Empty Lines At BOB And/Or EOB" empty) (const :tag "(Face) SPACEs after TAB" @@ -673,6 +684,12 @@ Used when `whitespace-style' includes the value `indentation'.") "Face used to visualize 8 or more SPACEs at beginning of line." :group 'whitespace) +(defface whitespace-big-indent + '((((class mono)) :inverse-video t :weight bold :underline t) + (t :background "red" :foreground "firebrick")) + "Face used to visualize big indentation." + :group 'whitespace) + (defvar whitespace-empty 'whitespace-empty "Symbol face used to visualize empty lines at beginning and/or end of buffer. @@ -838,6 +855,21 @@ Used when `whitespace-style' includes `space-after-tab', string) :group 'whitespace) +(defcustom whitespace-big-indent-regexp + "^\\(\\(?:\t\\{4,\\}\\| \\{32,\\}\\)[\t ]*\\)" + "Specify big indentation regexp. + +If you're using `mule' package, there may be other characters +besides \"\\t\" that should be considered TAB. + +NOTE: Enclose always by \\\\( and \\\\) the elements to highlight. + Use exactly one pair of enclosing \\\\( and \\\\). + +Used when `whitespace-style' includes `big-indent'." + :version "25.1" + :type '(regexp :tag "Detect too much indentation at the beginning of a line") + :group 'whitespace) + (defcustom whitespace-line-column 80 "Specify column beyond which the line is highlighted. @@ -1141,6 +1173,7 @@ See also `whitespace-newline' and `whitespace-display-mappings'." indentation indentation::tab indentation::space + big-indent space-after-tab space-after-tab::tab space-after-tab::space @@ -1167,6 +1200,7 @@ See also `whitespace-newline' and `whitespace-display-mappings'." (?\C-i . indentation) (?I . indentation::tab) (?i . indentation::space) + (?\C-t . big-indent) (?\C-a . space-after-tab) (?A . space-after-tab::tab) (?a . space-after-tab::space) @@ -1250,6 +1284,7 @@ Interactively, it reads one of the following chars: C-i toggle indentation SPACEs visualization (via `indent-tabs-mode') I toggle indentation SPACEs visualization i toggle indentation TABs visualization + C-t toggle big indentation visualization C-a toggle SPACEs after TAB visualization (via `indent-tabs-mode') A toggle SPACEs after TAB: SPACEs visualization a toggle SPACEs after TAB: TABs visualization @@ -1279,6 +1314,7 @@ The valid symbols are: indentation toggle indentation SPACEs visualization indentation::tab toggle indentation SPACEs visualization indentation::space toggle indentation TABs visualization + big-indent toggle big indentation visualization space-after-tab toggle SPACEs after TAB visualization space-after-tab::tab toggle SPACEs after TAB: SPACEs visualization space-after-tab::space toggle SPACEs after TAB: TABs visualization @@ -1329,6 +1365,7 @@ Interactively, it accepts one of the following chars: C-i toggle indentation SPACEs visualization (via `indent-tabs-mode') I toggle indentation SPACEs visualization i toggle indentation TABs visualization + C-t toggle big indentation visualization C-a toggle SPACEs after TAB visualization (via `indent-tabs-mode') A toggle SPACEs after TAB: SPACEs visualization a toggle SPACEs after TAB: TABs visualization @@ -1358,6 +1395,7 @@ The valid symbols are: indentation toggle indentation SPACEs visualization indentation::tab toggle indentation SPACEs visualization indentation::space toggle indentation TABs visualization + big-indent toggle big indentation visualization space-after-tab toggle SPACEs after TAB visualization space-after-tab::tab toggle SPACEs after TAB: SPACEs visualization space-after-tab::space toggle SPACEs after TAB: TABs visualization @@ -1856,6 +1894,7 @@ cleaning up these problems." [] C-i - toggle indentation SPACEs visualization (via `indent-tabs-mode') [] I - toggle indentation SPACEs visualization [] i - toggle indentation TABs visualization + [] C-t - toggle big indentation visualization [] C-a - toggle SPACEs after TAB visualization (via `indent-tabs-mode') [] A - toggle SPACEs after TAB: SPACEs visualization [] a - toggle SPACEs after TAB: TABs visualization @@ -2109,6 +2148,7 @@ resultant list will be returned." (memq 'indentation whitespace-active-style) (memq 'indentation::tab whitespace-active-style) (memq 'indentation::space whitespace-active-style) + (memq 'big-indent whitespace-active-style) (memq 'space-after-tab whitespace-active-style) (memq 'space-after-tab::tab whitespace-active-style) (memq 'space-after-tab::space whitespace-active-style) @@ -2196,6 +2236,9 @@ resultant list will be returned." ;; Show indentation SPACEs (TABs). (whitespace-indentation-regexp 'space))) 1 whitespace-indentation t))) + ,@(when (memq 'big-indent whitespace-active-style) + ;; Show big indentation. + `((,whitespace-big-indent-regexp 1 'whitespace-big-indent t))) ,@(when (memq 'empty whitespace-active-style) ;; Show empty lines at beginning of buffer. `((,#'whitespace-empty-at-bob-regexp diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 92e52bff55e..e901431bfcd 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -232,23 +232,20 @@ minibuffer." (t ;; Construct a menu of the choices ;; and then use it for prompting for a single character. - (let* ((overriding-terminal-local-map (make-sparse-keymap)) - (next-digit ?0) - map choice some-choice-enabled value) - ;; Define SPC as a prefix char to get to this menu. - (define-key overriding-terminal-local-map " " - (setq map (make-sparse-keymap title))) + (let* ((next-digit ?0) + (map (make-sparse-keymap)) + choice some-choice-enabled value) (with-current-buffer (get-buffer-create " widget-choose") (erase-buffer) (insert "Available choices:\n\n") (while items - (setq choice (car items) items (cdr items)) - (if (consp choice) - (let* ((name (car choice)) - (function (cdr choice))) - (insert (format "%c = %s\n" next-digit name)) - (define-key map (vector next-digit) function) - (setq some-choice-enabled t))) + (setq choice (pop items)) + (when (consp choice) + (let* ((name (car choice)) + (function (cdr choice))) + (insert (format "%c = %s\n" next-digit name)) + (define-key map (vector next-digit) function) + (setq some-choice-enabled t))) ;; Allocate digits to disabled alternatives ;; so that the digit of a given alternative never varies. (setq next-digit (1+ next-digit))) @@ -257,43 +254,29 @@ minibuffer." (forward-line)) (or some-choice-enabled (error "None of the choices is currently meaningful")) - (define-key map [?\C-g] 'keyboard-quit) - (define-key map [t] 'keyboard-quit) (define-key map [?\M-\C-v] 'scroll-other-window) (define-key map [?\M--] 'negative-argument) - (setcdr map (nreverse (cdr map))) - ;; Read a char with the menu, and return the result - ;; that corresponds to it. (save-window-excursion (let ((buf (get-buffer " widget-choose"))) (fit-window-to-buffer (display-buffer buf)) (let ((cursor-in-echo-area t) - keys - (char 0) (arg 1)) - (while (not (or (and (integerp char) - (>= char ?0) (< char next-digit)) - (eq value 'keyboard-quit))) - ;; Unread a SPC to lead to our new menu. - (setq unread-command-events (cons ?\s unread-command-events)) - (setq keys (read-key-sequence title)) - (setq value - (lookup-key overriding-terminal-local-map keys t) - char (aref keys 1)) - (cond ((eq value 'scroll-other-window) - (let ((minibuffer-scroll-window - (get-buffer-window buf))) - (if (> 0 arg) - (scroll-other-window-down - (window-height minibuffer-scroll-window)) - (scroll-other-window)) - (setq arg 1))) - ((eq value 'negative-argument) - (setq arg -1)) - (t - (setq arg 1))))))) - (when (eq value 'keyboard-quit) - (error "Canceled")) + (while (not value) + (setq value (lookup-key map (read-key-sequence (format "%s: " title)))) + (unless value + (user-error "Canceled")) + (when + (cond ((eq value 'scroll-other-window) + (let ((minibuffer-scroll-window + (get-buffer-window buf))) + (if (> 0 arg) + (scroll-other-window-down + (window-height minibuffer-scroll-window)) + (scroll-other-window)) + (setq arg 1))) + ((eq value 'negative-argument) + (setq arg -1))) + (setq value nil)))))) value)))) ;;; Widget text specifications. diff --git a/lisp/window.el b/lisp/window.el index 28a2be00af9..c95b0d6d418 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -108,7 +108,7 @@ Return the buffer." ;; Return the buffer. buffer))) -(defun temp-buffer-window-show (&optional buffer action) +(defun temp-buffer-window-show (buffer &optional action) "Show temporary buffer BUFFER in a window. Return the window showing BUFFER. Pass ACTION as action argument to `display-buffer'." @@ -185,19 +185,19 @@ argument replaces this)." (let ((buffer (make-symbol "buffer")) (window (make-symbol "window")) (value (make-symbol "value"))) - (macroexp-let2 nil vbuffer-or-name buffer-or-name - (macroexp-let2 nil vaction action - (macroexp-let2 nil vquit-function quit-function - `(let* ((,buffer (temp-buffer-window-setup ,vbuffer-or-name)) - (standard-output ,buffer) - ,window ,value) - (setq ,value (progn ,@body)) - (with-current-buffer ,buffer - (setq ,window (temp-buffer-window-show ,buffer ,vaction))) + (macroexp-let2* nil ((vbuffer-or-name buffer-or-name) + (vaction action) + (vquit-function quit-function)) + `(let* ((,buffer (temp-buffer-window-setup ,vbuffer-or-name)) + (standard-output ,buffer) + ,window ,value) + (setq ,value (progn ,@body)) + (with-current-buffer ,buffer + (setq ,window (temp-buffer-window-show ,buffer ,vaction))) - (if (functionp ,vquit-function) - (funcall ,vquit-function ,window ,value) - ,value))))))) + (if (functionp ,vquit-function) + (funcall ,vquit-function ,window ,value) + ,value))))) (defmacro with-current-buffer-window (buffer-or-name action quit-function &rest body) "Evaluate BODY with a buffer BUFFER-OR-NAME current and show that buffer. @@ -208,19 +208,19 @@ BODY." (let ((buffer (make-symbol "buffer")) (window (make-symbol "window")) (value (make-symbol "value"))) - (macroexp-let2 nil vbuffer-or-name buffer-or-name - (macroexp-let2 nil vaction action - (macroexp-let2 nil vquit-function quit-function - `(let* ((,buffer (temp-buffer-window-setup ,vbuffer-or-name)) - (standard-output ,buffer) - ,window ,value) - (with-current-buffer ,buffer - (setq ,value (progn ,@body)) - (setq ,window (temp-buffer-window-show ,buffer ,vaction))) + (macroexp-let2* nil ((vbuffer-or-name buffer-or-name) + (vaction action) + (vquit-function quit-function)) + `(let* ((,buffer (temp-buffer-window-setup ,vbuffer-or-name)) + (standard-output ,buffer) + ,window ,value) + (with-current-buffer ,buffer + (setq ,value (progn ,@body)) + (setq ,window (temp-buffer-window-show ,buffer ,vaction))) - (if (functionp ,vquit-function) - (funcall ,vquit-function ,window ,value) - ,value))))))) + (if (functionp ,vquit-function) + (funcall ,vquit-function ,window ,value) + ,value))))) (defmacro with-displayed-buffer-window (buffer-or-name action quit-function &rest body) "Show a buffer BUFFER-OR-NAME and evaluate BODY in that buffer. @@ -230,28 +230,34 @@ displays the buffer specified by BUFFER-OR-NAME before running BODY." (let ((buffer (make-symbol "buffer")) (window (make-symbol "window")) (value (make-symbol "value"))) - (macroexp-let2 nil vbuffer-or-name buffer-or-name - (macroexp-let2 nil vaction action - (macroexp-let2 nil vquit-function quit-function - `(let* ((,buffer (temp-buffer-window-setup ,vbuffer-or-name)) - (standard-output ,buffer) - ,window ,value) - (with-current-buffer ,buffer - (setq ,window (temp-buffer-window-show ,buffer ,vaction))) + (macroexp-let2* nil ((vbuffer-or-name buffer-or-name) + (vaction action) + (vquit-function quit-function)) + `(let* ((,buffer (temp-buffer-window-setup ,vbuffer-or-name)) + (standard-output ,buffer) + ,window ,value) + (with-current-buffer ,buffer + (setq ,window (temp-buffer-window-show ,buffer ,vaction))) - (let ((inhibit-read-only t) - (inhibit-modification-hooks t)) - (setq ,value (progn ,@body))) + (let ((inhibit-read-only t) + (inhibit-modification-hooks t)) + (setq ,value (progn ,@body))) - (set-window-point ,window (point-min)) + (set-window-point ,window (point-min)) - (when (functionp (cdr (assq 'window-height (cdr ,vaction)))) - (ignore-errors - (funcall (cdr (assq 'window-height (cdr ,vaction))) ,window))) + (when (functionp (cdr (assq 'window-height (cdr ,vaction)))) + (ignore-errors + (funcall (cdr (assq 'window-height (cdr ,vaction))) ,window))) - (if (functionp ,vquit-function) - (funcall ,vquit-function ,window ,value) - ,value))))))) + (when (consp (cdr (assq 'preserve-size (cdr ,vaction)))) + (window-preserve-size + ,window t (cadr (assq 'preserve-size (cdr ,vaction)))) + (window-preserve-size + ,window nil (cddr (assq 'preserve-size (cdr ,vaction))))) + + (if (functionp ,vquit-function) + (funcall ,vquit-function ,window ,value) + ,value))))) ;; The following two functions are like `window-next-sibling' and ;; `window-prev-sibling' but the WINDOW argument is _not_ optional (so @@ -435,6 +441,14 @@ minimum pixel width of WINDOW." (window-safe-min-pixel-width window) (window-safe-min-pixel-height window))) +(defun window-min-pixel-size (&optional window horizontal) + "Return the minimum pixel height of WINDOW. +Optional argument HORIZONTAL non-nil means return the minimum +pixel width of WINDOW." + (if horizontal + (window-min-pixel-width window) + (window-min-pixel-height window))) + (defun window-combined-p (&optional window horizontal) "Return non-nil if WINDOW has siblings in a given direction. WINDOW must be a valid window and defaults to the selected one. @@ -743,6 +757,15 @@ number of slots on that side." (integer :tag "Number" :value 3 :size 5))) :group 'windows) +(defun window--side-window-p (window) + "Return non-nil if WINDOW is a side window or the parent of one." + (or (window-parameter window 'window-side) + (and (window-child window) + (or (window-parameter + (window-child window) 'window-side) + (window-parameter + (window-last-child window) 'window-side))))) + (defun window--major-non-side-window (&optional frame) "Return the major non-side window of frame FRAME. The optional argument FRAME must be a live frame and defaults to @@ -1155,8 +1178,17 @@ dumping to it." WINDOW must be a valid window and defaults to the selected one. If HORIZONTAL is omitted or nil, return the total height of -WINDOW, in lines, like `window-total-height'. Otherwise return -the total width, in columns, like `window-total-width'. +WINDOW, in lines. If WINDOW is live, its total height includes, +in addition to the height of WINDOW's text, the heights of +WINDOW's mode and header line and a bottom divider, if any. + +If HORIZONTAL is non-nil, return the total width of WINDOW, in +columns. If WINDOW is live, its total width includes, in +addition to the width of WINDOW's text, the widths of WINDOW's +fringes, margins, scroll bars and its right divider, if any. + +If WINDOW is internal, return the respective size of the screen +areas spanned by its children. Optional argument ROUND is handled as for `window-total-height' and `window-total-width'." @@ -1197,9 +1229,73 @@ unless it has no other choice (like when deleting a neighboring window).") (make-variable-buffer-local 'window-size-fixed) -(defun window--size-ignore-p (window ignore) - "Return non-nil if IGNORE says to ignore size restrictions for WINDOW." - (if (window-valid-p ignore) (eq window ignore) ignore)) +(defun window--preservable-size (window &optional horizontal) + "Return height of WINDOW as `window-preserve-size' would preserve it. +Optional argument HORIZONTAL non-nil means to return the width of +WINDOW as `window-preserve-size' would preserve it." + (if horizontal + (window-body-width window t) + (+ (window-body-height window t) + (window-header-line-height window) + (window-mode-line-height window)))) + +(defun window-preserve-size (&optional window horizontal preserve) + "Preserve height of window WINDOW. +WINDOW must be a live window and defaults to the selected one. +Optional argument HORIZONTAL non-nil means preserve the width of +WINDOW. + +PRESERVE t means to preserve the current height/width of WINDOW's +body in frame and window resizing operations whenever possible. +The height/width of WINDOW will change only if Emacs has no other +choice. Resizing a window whose height/width is preserved never +throws an error. + +PRESERVE nil means to stop preserving the height/width of WINDOW, +lifting the respective restraint induced by a previous call of +`window-preserve-size' for WINDOW. Calling `enlarge-window', +`shrink-window', `split-window' or `fit-window-to-buffer' with +WINDOW as argument also removes the respective restraint. + +Other values of PRESERVE are reserved for future use." + (setq window (window-normalize-window window t)) + (let* ((parameter (window-parameter window 'window-preserved-size)) + (width (nth 1 parameter)) + (height (nth 2 parameter))) + (if horizontal + (set-window-parameter + window 'window-preserved-size + (list + (window-buffer window) + (and preserve (window--preservable-size window t)) + height)) + (set-window-parameter + window 'window-preserved-size + (list + (window-buffer window) + width + (and preserve (window--preservable-size window))))))) + +(defun window-preserved-size (&optional window horizontal) + "Return preserved height of window WINDOW. +WINDOW must be a live window and defaults to the selected one. +Optional argument HORIZONTAL non-nil means to return preserved +width of WINDOW." + (setq window (window-normalize-window window t)) + (let* ((parameter (window-parameter window 'window-preserved-size)) + (buffer (nth 0 parameter)) + (width (nth 1 parameter)) + (height (nth 2 parameter))) + (when (eq buffer (window-buffer window)) + (if horizontal width height)))) + +(defun window--preserve-size (window horizontal) + "Return non-nil when the height of WINDOW shall be preserved. +Optional argument HORIZONTAL non-nil means to return non-nil when +the width of WINDOW shall be preserved." + (let ((size (window-preserved-size window horizontal))) + (and (numberp size) + (= size (window--preservable-size window horizontal))))) (defun window-safe-min-size (&optional window horizontal pixelwise) "Return safe minimum size of WINDOW. @@ -1226,19 +1322,20 @@ Optional argument HORIZONTAL non-nil means return the minimum number of columns of WINDOW; otherwise return the minimum number of WINDOW's lines. -Optional argument IGNORE, if non-nil, means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE equals `safe', live -windows may get as small as `window-safe-min-height' lines and -`window-safe-min-width' columns. If IGNORE is a window, ignore -restrictions for that window only. Any other non-nil value -means ignore all of the above restrictions for all windows. - -Optional argument PIXELWISE non-nil means return the minimum pixel-size -of WINDOW." +The optional argument IGNORE has the same meaning as for +`window-resizable'. Optional argument PIXELWISE non-nil means +return the minimum pixel-size of WINDOW." (window--min-size-1 (window-normalize-window window) horizontal ignore pixelwise)) +(defun window--min-size-ignore-p (window horizontal ignore) + "Return non-nil if IGNORE says to ignore height restrictions for WINDOW. +HORIZONTAL non-nil means to return non-nil if IGNORE says to +ignore width restrictions for WINDOW." + (if (window-valid-p ignore) + (eq window ignore) + (not (memq ignore '(nil preserved))))) + (defun window--min-size-1 (window horizontal ignore pixelwise) "Internal function of `window-min-size'." (let ((sub (window-child window))) @@ -1265,8 +1362,7 @@ of WINDOW." (cond ((window-minibuffer-p window) (if pixelwise (frame-char-height (window-frame window)) 1)) - ((and (not (window--size-ignore-p window ignore)) - (window-size-fixed-p window horizontal)) + ((window-size-fixed-p window horizontal ignore) ;; The minimum size of a fixed size window is its size. (window-size window horizontal pixelwise)) ((eq ignore 'safe) @@ -1295,12 +1391,12 @@ of WINDOW." pixel-width ;; Round up to next integral of columns. (* (ceiling pixel-width char-size) char-size)) - (if (window--size-ignore-p window ignore) + (if (window--min-size-ignore-p window horizontal ignore) 0 - (window-min-pixel-width))) + (window-min-pixel-width window))) (max (ceiling pixel-width char-size) - (if (window--size-ignore-p window ignore) + (if (window--min-size-ignore-p window horizontal ignore) 0 window-min-width))))) ((let ((char-size (frame-char-size window)) @@ -1316,11 +1412,11 @@ of WINDOW." pixel-height ;; Round up to next integral of lines. (* (ceiling pixel-height char-size) char-size)) - (if (window--size-ignore-p window ignore) + (if (window--min-size-ignore-p window horizontal ignore) 0 - (window-min-pixel-height))) + (window-min-pixel-height window))) (max (ceiling pixel-height char-size) - (if (window--size-ignore-p window ignore) + (if (window--min-size-ignore-p window horizontal ignore) 0 window-min-height)))))))))) @@ -1345,26 +1441,17 @@ columns. If WINDOW cannot be shrunk by -DELTA lines or columns, return the minimum value in the range DELTA..0 by which WINDOW can be shrunk. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE equals `safe', live -windows may get as small as `window-safe-min-height' lines and -`window-safe-min-width' columns. If IGNORE is a window, ignore -restrictions for that window only. Any other non-nil value means -ignore all of the above restrictions for all windows. - -Optional argument PIXELWISE non-nil means interpret DELTA as -pixels." +The optional argument IGNORE has the same meaning as for +`window-resizable'. Optional argument PIXELWISE non-nil means +interpret DELTA as pixels." (setq window (window-normalize-window window)) (cond ((< delta 0) (max (- (window-min-size window horizontal ignore pixelwise) (window-size window horizontal pixelwise)) delta)) - ((window--size-ignore-p window ignore) - delta) ((> delta 0) - (if (window-size-fixed-p window horizontal) + (if (window-size-fixed-p window horizontal ignore) 0 delta)) (t 0))) @@ -1381,7 +1468,7 @@ doc-string of `window-sizable'." (<= (window-sizable window delta horizontal ignore pixelwise) delta))) -(defun window--size-fixed-1 (window horizontal) +(defun window--size-fixed-1 (window horizontal ignore) "Internal function for `window-size-fixed-p'." (let ((sub (window-child window))) (catch 'fixed @@ -1392,7 +1479,7 @@ doc-string of `window-sizable'." ;; windows are fixed-size. (progn (while sub - (unless (window--size-fixed-1 sub horizontal) + (unless (window--size-fixed-1 sub horizontal ignore) ;; We found a non-fixed-size child window, so ;; WINDOW's size is not fixed. (throw 'fixed nil)) @@ -1403,28 +1490,33 @@ doc-string of `window-sizable'." ;; An ortho-combination is fixed-size if at least one of its ;; child windows is fixed-size. (while sub - (when (window--size-fixed-1 sub horizontal) + (when (window--size-fixed-1 sub horizontal ignore) ;; We found a fixed-size child window, so WINDOW's size ;; is fixed. (throw 'fixed t)) (setq sub (window-right sub)))) ;; WINDOW is a live window. - (with-current-buffer (window-buffer window) - (if horizontal - (memq window-size-fixed '(width t)) - (memq window-size-fixed '(height t)))))))) + (and (or (not (windowp ignore)) (not (eq window ignore))) + (or (and (not (eq ignore 'preserved)) + (window--preserve-size window horizontal)) + (with-current-buffer (window-buffer window) + (if horizontal + (memq window-size-fixed '(width t)) + (memq window-size-fixed '(height t)))))))))) -(defun window-size-fixed-p (&optional window horizontal) +(defun window-size-fixed-p (&optional window horizontal ignore) "Return non-nil if WINDOW's height is fixed. WINDOW must be a valid window and defaults to the selected one. Optional argument HORIZONTAL non-nil means return non-nil if -WINDOW's width is fixed. +WINDOW's width is fixed. The optional argument IGNORE has the +same meaning as for `window-resizable'. If this function returns nil, this does not necessarily mean that WINDOW can be resized in the desired direction. The function `window-resizable' can tell that." - (window--size-fixed-1 - (window-normalize-window window) horizontal)) + (when (or (windowp ignore) (memq ignore '(nil preserved))) + (window--size-fixed-1 + (window-normalize-window window) horizontal ignore))) (defun window--min-delta-1 (window delta &optional horizontal ignore trail noup pixelwise) "Internal function for `window-min-delta'." @@ -1445,8 +1537,7 @@ WINDOW can be resized in the desired direction. The function ((eq sub window) (setq skip (eq trail 'before))) (skip) - ((and (not (window--size-ignore-p window ignore)) - (window-size-fixed-p sub horizontal))) + ((window-size-fixed-p sub horizontal ignore)) (t ;; We found a non-fixed-size child window. (throw 'done delta))) @@ -1475,25 +1566,18 @@ Return zero if WINDOW cannot be shrunk. Optional argument HORIZONTAL non-nil means return number of columns by which WINDOW can be shrunk. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE is a window, ignore -restrictions for that window only. If IGNORE equals `safe', -live windows may get as small as `window-safe-min-height' lines -and `window-safe-min-width' columns. Any other non-nil value -means ignore all of the above restrictions for all windows. - -Optional argument TRAIL restricts the windows that can be enlarged. -If its value is `before', only windows to the left of or above WINDOW -can be enlarged. If it is `after', only windows to the right of or -below WINDOW can be enlarged. +The optional argument IGNORE has the same meaning as for +`window-resizable'. Optional argument TRAIL restricts the +windows that can be enlarged. If its value is `before', only +windows to the left of or above WINDOW can be enlarged. If it is +`after', only windows to the right of or below WINDOW can be +enlarged. Optional argument NOUP non-nil means don't go up in the window -tree, but try to enlarge windows within WINDOW's combination only. - -Optional argument NODOWN non-nil means don't check whether WINDOW -itself (and its child windows) can be shrunk; check only whether -at least one other window can be enlarged appropriately. +tree, but try to enlarge windows within WINDOW's combination +only. Optional argument NODOWN non-nil means don't check whether +WINDOW itself (and its child windows) can be shrunk; check only +whether at least one other window can be enlarged appropriately. Optional argument PIXELWISE non-nil means return number of pixels by which WINDOW can be shrunk." @@ -1515,14 +1599,16 @@ by which WINDOW can be shrunk." (window--min-delta-1 window (- size minimum) horizontal ignore trail noup pixelwise))))) -(defun frame-windows-min-size (&optional frame horizontal pixelwise) +(defun frame-windows-min-size (&optional frame horizontal ignore pixelwise) "Return minimum number of lines of FRAME's windows. HORIZONTAL non-nil means return number of columns of FRAME's -windows. PIXELWISE non-nil means return sizes in pixels." +windows. The optional argument IGNORE has the same meaning as +for `window-resizable'. PIXELWISE non-nil means return sizes in +pixels." (setq frame (window-normalize-frame frame)) (let* ((root (frame-root-window frame)) (mini (window-next-sibling root))) - (+ (window-min-size root horizontal nil pixelwise) + (+ (window-min-size root horizontal ignore pixelwise) (if (and mini (not horizontal)) (window-min-size mini horizontal nil pixelwise) 0)))) @@ -1557,8 +1643,7 @@ windows. PIXELWISE non-nil means return sizes in pixels." ;; child window is fixed-size. (while sub (when (and (not (eq sub window)) - (not (window--size-ignore-p sub ignore)) - (window-size-fixed-p sub horizontal)) + (window-size-fixed-p sub horizontal ignore)) (throw 'fixed delta)) (setq sub (window-right sub)))) (if noup @@ -1577,32 +1662,24 @@ The return value is zero if WINDOW cannot be enlarged. Optional argument HORIZONTAL non-nil means return maximum number of columns by which WINDOW can be enlarged. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE is a window, ignore -restrictions for that window only. If IGNORE equals `safe', -live windows may get as small as `window-safe-min-height' lines -and `window-safe-min-width' columns. Any other non-nil value means -ignore all of the above restrictions for all windows. - -Optional argument TRAIL restricts the windows that can be enlarged. -If its value is `before', only windows to the left of or above WINDOW -can be enlarged. If it is `after', only windows to the right of or -below WINDOW can be enlarged. +The optional argument IGNORE has the same meaning as for +`window-resizable'. Optional argument TRAIL restricts the +windows that can be enlarged. If its value is `before', only +windows to the left of or above WINDOW can be enlarged. If it is +`after', only windows to the right of or below WINDOW can be +enlarged. Optional argument NOUP non-nil means don't go up in the window tree but try to obtain the entire space from windows within -WINDOW's combination. - -Optional argument NODOWN non-nil means do not check whether -WINDOW itself (and its child windows) can be enlarged; check -only whether other windows can be shrunk appropriately. +WINDOW's combination. Optional argument NODOWN non-nil means do +not check whether WINDOW itself (and its child windows) can be +enlarged; check only whether other windows can be shrunk +appropriately. Optional argument PIXELWISE non-nil means return number of pixels by which WINDOW can be enlarged." (setq window (window-normalize-window window)) - (if (and (not (window--size-ignore-p window ignore)) - (not nodown) (window-size-fixed-p window horizontal)) + (if (and (not nodown) (window-size-fixed-p window horizontal ignore)) ;; With IGNORE and NOWDON nil return zero if WINDOW has fixed ;; size. 0 @@ -1627,26 +1704,18 @@ columns. If WINDOW cannot be shrunk by -DELTA lines or columns, return the minimum value in the range DELTA..0 that can be used for shrinking WINDOW. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE is a window, ignore -restrictions for that window only. If IGNORE equals `safe', -live windows may get as small as `window-safe-min-height' lines -and `window-safe-min-width' columns. Any other non-nil value -means ignore all of the above restrictions for all windows. - -Optional argument TRAIL `before' means only windows to the left -of or below WINDOW can be shrunk. Optional argument TRAIL -`after' means only windows to the right of or above WINDOW can be -shrunk. +The optional argument IGNORE has the same meaning as for +`window-resizable'. Optional argument TRAIL `before' means only +windows to the left of or below WINDOW can be shrunk. Optional +argument TRAIL `after' means only windows to the right of or +above WINDOW can be shrunk. Optional argument NOUP non-nil means don't go up in the window tree but check only whether space can be obtained from (or given -to) WINDOW's siblings. - -Optional argument NODOWN non-nil means don't go down in the -window tree. This means do not check whether resizing would -violate size restrictions of WINDOW or its child windows. +to) WINDOW's siblings. Optional argument NODOWN non-nil means +don't go down in the window tree. This means do not check +whether resizing would violate size restrictions of WINDOW or its +child windows. Optional argument PIXELWISE non-nil means interpret DELTA as number of pixels." @@ -1696,13 +1765,14 @@ columns. If WINDOW cannot be shrunk by -DELTA lines or columns, return the minimum value in the range DELTA..0 that can be used for shrinking WINDOW. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE is a window, ignore -restrictions for that window only. If IGNORE equals `safe', -live windows may get as small as `window-safe-min-height' lines -and `window-safe-min-width' columns. Any other non-nil value -means ignore all of the above restrictions for all windows. +Optional argument IGNORE, if non-nil, means to ignore restraints +induced by fixed size windows or the values of the variables +`window-min-height' and `window-min-width'. The following values +have special meanings: `safe' means that in addition live windows +are allowed to get as small as `window-safe-min-height' lines and +`window-safe-min-width' columns. `preserved' means to ignore +only restrictions induced by `window-preserve-size'. If IGNORE +is a window, then ignore restrictions for that window only. Optional argument PIXELWISE non-nil means interpret DELTA as pixels." @@ -1727,9 +1797,6 @@ doc-string of `window-resizable'." (defalias 'window-height 'window-total-height) (defalias 'window-width 'window-body-width) -;; Eventually the following two should work pixelwise. - -;; See discussion in bug#4543. (defun window-full-height-p (&optional window) "Return t if WINDOW is as high as its containing frame. More precisely, return t if and only if the total height of @@ -1737,8 +1804,10 @@ WINDOW equals the total height of the root window of WINDOW's frame. WINDOW must be a valid window and defaults to the selected one." (setq window (window-normalize-window window)) - (= (window-pixel-height window) - (window-pixel-height (frame-root-window window)))) + (if (window-minibuffer-p window) + (eq window (frame-root-window (window-frame window))) + (= (window-pixel-height window) + (window-pixel-height (frame-root-window window))))) (defun window-full-width-p (&optional window) "Return t if WINDOW is as wide as its containing frame. @@ -1762,28 +1831,26 @@ optional argument PIXELWISE is passed to the functions." (window-body-height window pixelwise))) (defun window-current-scroll-bars (&optional window) - "Return the current scroll bar settings for WINDOW. + "Return the current scroll bar types for WINDOW. WINDOW must be a live window and defaults to the selected one. The return value is a cons cell (VERTICAL . HORIZONTAL) where VERTICAL specifies the current location of the vertical scroll -bars (`left', `right', or nil), and HORIZONTAL specifies the -current location of the horizontal scroll bars (`top', `bottom', -or nil). +bar (`left', `right' or nil), and HORIZONTAL specifies the +current location of the horizontal scroll bar (`bottom' or nil). Unlike `window-scroll-bars', this function reports the scroll bar type actually used, once frame defaults and `scroll-bar-mode' are taken into account." (setq window (window-normalize-window window t)) - (let ((vert (nth 2 (window-scroll-bars window))) - (hor nil)) - (when (or (eq vert t) (eq hor t)) - (let ((fcsb (frame-current-scroll-bars (window-frame window)))) - (if (eq vert t) - (setq vert (car fcsb))) - (if (eq hor t) - (setq hor (cdr fcsb))))) - (cons vert hor))) + (let ((vertical (nth 2 (window-scroll-bars window))) + (horizontal (nth 5 (window-scroll-bars window))) + (inherited (frame-current-scroll-bars (window-frame window)))) + (when (eq vertical t) + (setq vertical (car inherited))) + (when (eq horizontal t) + (setq horizontal (cdr inherited))) + (cons vertical (and horizontal 'bottom)))) (defun walk-windows (fun &optional minibuf all-frames) "Cycle through all live windows, calling FUN for each one. @@ -2404,13 +2471,14 @@ horizontally by DELTA columns. In this case a positive DELTA means enlarge WINDOW by DELTA columns. DELTA negative means WINDOW shall be shrunk by -DELTA columns. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE is a window, ignore -restrictions for that window only. If IGNORE equals `safe', -live windows may get as small as `window-safe-min-height' lines -and `window-safe-min-width' columns. Any other non-nil value -means ignore all of the above restrictions for all windows. +Optional argument IGNORE, if non-nil, means to ignore restraints +induced by fixed size windows or the values of the variables +`window-min-height' and `window-min-width'. The following values +have special meanings: `safe' means that in addition live windows +are allowed to get as small as `window-safe-min-height' lines and +`window-safe-min-width' columns. `preserved' means to ignore +only restrictions induced by `window-preserve-size'. If IGNORE +is a window, then ignore restrictions for that window only. Optional argument PIXELWISE non-nil means resize WINDOW by DELTA pixels. @@ -2441,8 +2509,12 @@ instead." ;; nil or the minibuffer window is active, resize the minibuffer ;; window. (window--resize-mini-window minibuffer-window (- delta))) - ((window--resizable-p - window delta horizontal ignore nil nil nil t) + ((or (window--resizable-p + window delta horizontal ignore nil nil nil t) + (and (not ignore) + (setq ignore 'preserved) + (window--resizable-p + window delta horizontal ignore nil nil nil t))) (window--resize-reset frame horizontal) (window--resize-this-window window delta horizontal ignore t) (if (and (not window-combination-resize) @@ -2600,13 +2672,8 @@ be a horizontally combined internal window. WINDOW, if specified, must denote a child window of PARENT that is resized by DELTA pixels. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE equals `safe', live -windows may get as small as `window-safe-min-height' lines and -`window-safe-min-width' columns. If IGNORE is a window, ignore -restrictions for that window only. Any other non-nil value means -ignore all of the above restrictions for all windows. +The optional argument IGNORE has the same meaning as for +`window-resizable'. Optional arguments TRAIL and EDGE, when non-nil, restrict the set of windows that shall be resized. If TRAIL equals `before', @@ -2677,7 +2744,7 @@ already set by this routine." ;; Ignore windows to skip and fixed-size child windows - ;; in the latter case make it a window to skip. (and (not ignore) - (window-size-fixed-p sub horizontal) + (window-size-fixed-p sub horizontal ignore) (set-window-new-normal sub 'ignore)))) ((< delta 0) ;; When shrinking store the number of lines/cols we can get @@ -2783,13 +2850,8 @@ Optional argument HORIZONTAL non-nil means resize other windows when WINDOW is resized horizontally by DELTA pixels. WINDOW itself is not resized by this function. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE equals `safe', live -windows may get as small as `window-safe-min-height' lines and -`window-safe-min-width' columns. If IGNORE is a window, ignore -restrictions for that window only. Any other non-nil value means -ignore all of the above restrictions for all windows. +The optional argument IGNORE has the same meaning as for +`window-resizable'. Optional arguments TRAIL and EDGE, when non-nil, refine the set of windows that shall be resized. If TRAIL equals `before', @@ -2816,8 +2878,7 @@ preferably only resize windows adjacent to EDGE." ;; Make sure this sibling is left alone when ;; resizing its siblings. (set-window-new-normal sub 'ignore)) - ((or (window--size-ignore-p sub ignore) - (not (window-size-fixed-p sub horizontal))) + ((not (window-size-fixed-p sub horizontal ignore)) ;; Set this-delta to t to signal that we found a sibling ;; of WINDOW whose size is not fixed. (setq this-delta t))) @@ -2887,16 +2948,9 @@ preferably only resize windows adjacent to EDGE." Optional argument HORIZONTAL non-nil means resize WINDOW horizontally by DELTA pixels. -Optional argument IGNORE non-nil means ignore restrictions -imposed by fixed size windows, `window-min-height' or -`window-min-width' settings. If IGNORE equals `safe', live -windows may get as small as `window-safe-min-height' lines and -`window-safe-min-width' columns. If IGNORE is a window, ignore -restrictions for that window only. Any other non-nil value -means ignore all of the above restrictions for all windows. - -Optional argument ADD non-nil means add DELTA to the new total -size of WINDOW. +The optional argument IGNORE has the same meaning as for +`window-resizable'. Optional argument ADD non-nil means add +DELTA to the new total size of WINDOW. Optional arguments TRAIL and EDGE, when non-nil, refine the set of windows that shall be resized. If TRAIL equals `before', @@ -3008,12 +3062,12 @@ routines." If necessary and possible, make sure that every window on frame FRAME has its minimum height. Optional argument HORIZONTAL non-nil means to make sure that every window on frame FRAME has -its minimum width. The minimumm height/width of a window is the +its minimum width. The minimum height/width of a window is the respective value returned by `window-min-size' for that window. Return t if all windows were resized appropriately. Return nil if at least one window could not be resized as requested, which -may happen when the FRAME is not large enough to accomodate it." +may happen when the FRAME is not large enough to accommodate it." (let ((value t)) (walk-window-tree (lambda (window) @@ -3042,7 +3096,7 @@ move it as far as possible in the desired direction." (let* ((frame (window-frame window)) (minibuffer-window (minibuffer-window frame)) (right window) - left this-delta min-delta max-delta) + left this-delta min-delta max-delta ignore) (unless pixelwise (setq pixelwise t) @@ -3065,12 +3119,16 @@ move it as far as possible in the desired direction." (window--resize-mini-window minibuffer-window (- delta))) ((or (not (setq left right)) (not (setq right (window-right right)))) (if horizontal - (error "No window on the right of this one") - (error "No window below this one"))) + (user-error "No window on the right of this one") + (user-error "No window below this one"))) (t ;; Set LEFT to the first resizable window on the left. This step is ;; needed to handle fixed-size windows. - (while (and left (window-size-fixed-p left horizontal)) + (while (and left + (or (window-size-fixed-p left horizontal) + (and (< delta 0) + (<= (window-size left horizontal t) + (window-min-size left horizontal nil t))))) (setq left (or (window-left left) (progn @@ -3078,13 +3136,31 @@ move it as far as possible in the desired direction." (not (window-combined-p left horizontal)))) (window-left left))))) (unless left - (if horizontal - (error "No resizable window on the left of this one") - (error "No resizable window above this one"))) + (setq ignore 'preserved) + (setq left window) + (while (and left + (or (window-size-fixed-p left horizontal 'preserved) + (<= (window-size left horizontal t) + (window-min-size left horizontal 'preserved t)))) + (setq left + (or (window-left left) + (progn + (while (and (setq left (window-parent left)) + (not (window-combined-p left horizontal)))) + (window-left left))))) + + (unless left + (if horizontal + (user-error "No resizable window on the left of this one") + (user-error "No resizable window above this one")))) ;; Set RIGHT to the first resizable window on the right. This step ;; is needed to handle fixed-size windows. - (while (and right (window-size-fixed-p right horizontal)) + (while (and right + (or (window-size-fixed-p right horizontal) + (and (> delta 0) + (<= (window-size right horizontal t) + (window-min-size right horizontal 'preserved t))))) (setq right (or (window-right right) (progn @@ -3092,9 +3168,22 @@ move it as far as possible in the desired direction." (not (window-combined-p right horizontal)))) (window-right right))))) (unless right - (if horizontal - (error "No resizable window on the right of this one") - (error "No resizable window below this one"))) + (setq ignore 'preserved) + (setq right (window-right window)) + (while (and right + (or (window-size-fixed-p right horizontal 'preserved)) + (<= (window-size right horizontal t) + (window-min-size right horizontal nil t))) + (setq right + (or (window-right right) + (progn + (while (and (setq right (window-parent right)) + (not (window-combined-p right horizontal)))) + (window-right right))))) + (unless right + (if horizontal + (user-error "No resizable window on the right of this one") + (user-error "No resizable window below this one")))) ;; LEFT and RIGHT (which might be both internal windows) are now the ;; two windows we want to resize. @@ -3102,10 +3191,10 @@ move it as far as possible in the desired direction." ((> delta 0) (setq max-delta (window--max-delta-1 - left 0 horizontal nil 'after nil pixelwise)) + left 0 horizontal ignore 'after nil pixelwise)) (setq min-delta (window--min-delta-1 - right (- delta) horizontal nil 'before nil pixelwise)) + right (- delta) horizontal ignore 'before nil pixelwise)) (when (or (< max-delta delta) (> min-delta (- delta))) ;; We can't get the whole DELTA - move as far as possible. (setq delta (min max-delta (- min-delta)))) @@ -3114,26 +3203,26 @@ move it as far as possible in the desired direction." (window--resize-reset frame horizontal) ;; Try to enlarge LEFT first. (setq this-delta (window--resizable - left delta horizontal nil 'after nil nil pixelwise)) + left delta horizontal ignore 'after nil nil pixelwise)) (unless (zerop this-delta) (window--resize-this-window - left this-delta horizontal nil t 'before + left this-delta horizontal ignore t 'before (if horizontal (+ (window-pixel-left left) (window-pixel-width left)) (+ (window-pixel-top left) (window-pixel-height left))))) ;; Shrink windows on right of LEFT. (window--resize-siblings - left delta horizontal nil 'after + left delta horizontal ignore 'after (if horizontal (window-pixel-left right) (window-pixel-top right))))) ((< delta 0) (setq max-delta (window--max-delta-1 - right 0 horizontal nil 'before nil pixelwise)) + right 0 horizontal ignore 'before nil pixelwise)) (setq min-delta (window--min-delta-1 - left delta horizontal nil 'after nil pixelwise)) + left delta horizontal ignore 'after nil pixelwise)) (when (or (< max-delta (- delta)) (> min-delta delta)) ;; We can't get the whole DELTA - move as far as possible. (setq delta (max (- max-delta) min-delta))) @@ -3143,16 +3232,16 @@ move it as far as possible in the desired direction." ;; Try to enlarge RIGHT. (setq this-delta (window--resizable - right (- delta) horizontal nil 'before nil nil pixelwise)) + right (- delta) horizontal ignore 'before nil nil pixelwise)) (unless (zerop this-delta) (window--resize-this-window - right this-delta horizontal nil t 'after + right this-delta horizontal ignore t 'after (if horizontal (window-pixel-left right) (window-pixel-top right)))) ;; Shrink windows on left of RIGHT. (window--resize-siblings - right (- delta) horizontal nil 'before + right (- delta) horizontal ignore 'before (if horizontal (+ (window-pixel-left left) (window-pixel-width left)) (+ (window-pixel-top left) (window-pixel-height left))))))) @@ -3174,6 +3263,8 @@ make selected window wider by DELTA columns. If DELTA is negative, shrink selected window by -DELTA lines or columns." (interactive "p") (let ((minibuffer-window (minibuffer-window))) + (when (window-preserved-size nil horizontal) + (window-preserve-size nil horizontal)) (cond ((zerop delta)) ((window-size-fixed-p nil horizontal) @@ -3207,6 +3298,8 @@ negative, enlarge selected window by -DELTA lines or columns. Also see the `window-min-height' variable." (interactive "p") (let ((minibuffer-window (minibuffer-window))) + (when (window-preserved-size nil horizontal) + (window-preserve-size nil horizontal)) (cond ((zerop delta)) ((window-size-fixed-p nil horizontal) @@ -4348,7 +4441,7 @@ frame. The selected window is not changed by this function." (divider-width (if horizontal (frame-right-divider-width frame) (frame-bottom-divider-width frame))) - atom-root) + atom-root ignore) (window--check frame) (catch 'done (cond @@ -4369,12 +4462,7 @@ frame. The selected window is not changed by this function." ;; side window, throw an error unless `window-combination-resize' ;; equals 'side. ((and (not (eq window-combination-resize 'side)) - (or (window-parameter window 'window-side) - (and (window-child window) - (or (window-parameter - (window-child window) 'window-side) - (window-parameter - (window-last-child window) 'window-side))))) + (window--side-window-p window)) (error "Cannot split side window or parent of side window")) ;; If `window-combination-resize' is 'side and window has a side ;; window sibling, bind `window-combination-limit' to t. @@ -4417,10 +4505,11 @@ frame. The selected window is not changed by this function." (if resize ;; When resizing try to give the new window the ;; average size of a window in its combination. - (min (- parent-pixel-size - (window-min-size parent horizontal nil t)) - (/ parent-pixel-size - (1+ (window-combinations parent horizontal)))) + (max (min (- parent-pixel-size + (window-min-size parent horizontal nil t)) + (/ parent-pixel-size + (1+ (window-combinations parent horizontal)))) + (window-min-pixel-size)) ;; Else try to give the new window half the size ;; of WINDOW (plus an eventual odd pixel). (/ old-pixel-size 2))) @@ -4449,12 +4538,20 @@ frame. The selected window is not changed by this function." (cond (resize ;; SIZE unspecified, resizing. - (unless (window-sizable-p - parent (- new-pixel-size divider-width) horizontal nil t) + (unless (or (window-sizable-p + parent (- (+ new-pixel-size divider-width)) horizontal + nil t) + (window-sizable-p + parent (- (+ new-pixel-size divider-width)) horizontal + (setq ignore 'preserved) t)) (error "Window %s too small for splitting (1)" parent))) - ((> (+ new-pixel-size divider-width - (window-min-size window horizontal nil t)) - old-pixel-size) + ((and (> (+ new-pixel-size divider-width + (window-min-size window horizontal nil t)) + old-pixel-size) + (> (+ new-pixel-size divider-width + (window-min-size + window horizontal (setq ignore 'preserved) t)) + old-pixel-size)) ;; SIZE unspecified, no resizing. (error "Window %s too small for splitting (2)" window)))) ((and (>= pixel-size 0) @@ -4467,8 +4564,12 @@ frame. The selected window is not changed by this function." (error "Window %s too small for splitting (3)" window)) (resize ;; SIZE specified, resizing. - (unless (window-sizable-p - parent (- new-pixel-size divider-width) horizontal nil t) + (unless (or (window-sizable-p + parent (- (+ new-pixel-size divider-width)) horizontal + nil t) + (window-sizable-p + parent (- (+ new-pixel-size divider-width)) horizontal + (setq ignore 'preserved) t)) ;; If we cannot resize the parent give up. (error "Window %s too small for splitting (4)" parent))) ((or (< new-pixel-size @@ -4502,7 +4603,7 @@ frame. The selected window is not changed by this function." ;; delete the one we create here. Hence we do not go up. (progn (window--resize-child-windows - parent (- new-pixel-size) horizontal) + parent (- new-pixel-size) horizontal nil ignore) (let* ((normal (- 1.0 new-normal)) (sub (window-child parent))) (while sub @@ -4512,10 +4613,8 @@ frame. The selected window is not changed by this function." ;; Get entire space from WINDOW. (set-window-new-pixel window (- old-pixel-size new-pixel-size)) -;; (set-window-new-pixel window (- old-pixel-size new-pixel-size)) -;; (set-window-new-total -;; window (- old-size new-size)) - (window--resize-this-window window (- new-pixel-size) horizontal) + (window--resize-this-window + window (- new-pixel-size) horizontal ignore) (set-window-new-normal window (- (if new-parent 1.0 (window-normal-size window horizontal)) new-normal))) @@ -4569,7 +4668,7 @@ the original point in both windows." (defun split-window-below (&optional size) "Split the selected window into two windows, one above the other. The selected window is above. The newly split-off window is -below, and displays the same buffer. Return the new window. +below and displays the same buffer. Return the new window. If optional argument SIZE is omitted or nil, both windows get the same height, or close to it. If SIZE is positive, the upper @@ -4623,7 +4722,7 @@ amount of redisplay; this is convenient on slow terminals." (defun split-window-right (&optional size) "Split the selected window into two side-by-side windows. The selected window is on the left. The newly split-off window -is on the right, and displays the same buffer. Return the new +is on the right and displays the same buffer. Return the new window. If optional argument SIZE is omitted or nil, both windows get the @@ -5121,7 +5220,7 @@ value can be also stored on disk and read back in a new session." (let ((scroll-bars (cdr (assq 'scroll-bars state)))) (set-window-scroll-bars window (car scroll-bars) (nth 2 scroll-bars) - (or (nth 3 scroll-bars) 0) (nth 5 scroll-bars))) + (nth 3 scroll-bars) (nth 5 scroll-bars))) (set-window-vscroll window (cdr (assq 'vscroll state))) ;; Adjust vertically. (if (memq window-size-fixed '(t height)) @@ -5789,7 +5888,7 @@ hold: wide as `split-width-threshold'. - When WINDOW is split evenly, the emanating windows are at least `window-min-width' or two (whichever is larger) columns wide." - (when (window-live-p window) + (when (and (window-live-p window) (not (window--side-window-p window))) (with-current-buffer (window-buffer window) (if horizontal ;; A window can be split horizontally when its width is not @@ -5957,7 +6056,8 @@ live." (let ((parameter (window-parameter window 'quit-restore)) (height (cdr (assq 'window-height alist))) (width (cdr (assq 'window-width alist))) - (size (cdr (assq 'window-size alist)))) + (size (cdr (assq 'window-size alist))) + (preserve-size (cdr (assq 'preserve-size alist)))) (cond ((or (eq type 'frame) (and (eq (car parameter) 'same) @@ -6012,7 +6112,11 @@ live." (window-combined-p window t)) (window-resize window delta t 'safe)))) ((functionp width) - (ignore-errors (funcall width window))))))) + (ignore-errors (funcall width window)))) + ;; Preserve window size if asked for. + (when (consp preserve-size) + (window-preserve-size window t (car preserve-size)) + (window-preserve-size window nil (cdr preserve-size)))))) window)) @@ -6231,6 +6335,10 @@ Recognized alist entries include: of not displaying the buffer and FUNCTION can safely return a non-window value to suppress displaying. + `preserve-size' -- Value should be either '(t . nil)' to + preserve the width of the window, '(nil . t)' to preserve its + height or '(t . t)' to preserve both. + The ACTION argument to `display-buffer' can also have a non-nil and non-list value. This means to display the buffer in a window other than the selected one, even if it is already displayed in @@ -6440,7 +6548,10 @@ again with `display-buffer-pop-up-window'." This either splits the selected window or reuses the window below the selected one." (let (window) - (or (and (not (frame-parameter nil 'unsplittable)) + (or (and (setq window (window-in-direction 'below)) + (eq buffer (window-buffer window)) + (window--display-buffer buffer window 'reuse alist)) + (and (not (frame-parameter nil 'unsplittable)) (let ((split-height-threshold 0) split-width-threshold) (setq window (window--try-to-split-window (selected-window) alist))) @@ -6453,13 +6564,26 @@ the selected one." (defun display-buffer-at-bottom (buffer alist) "Try displaying BUFFER in a window at the bottom of the selected frame. -This either splits the window at the bottom of the frame or the -frame's root window, or reuses an existing window at the bottom -of the selected frame." - (let (bottom-window window) +This either reuses such a window provided it shows BUFFER +already, splits a window at the bottom of the frame or the +frame's root window, or reuses some window at the bottom of the +selected frame." + (let (bottom-window bottom-window-shows-buffer window) (walk-window-tree - (lambda (window) (setq bottom-window window)) nil nil 'nomini) - (or (and (not (frame-parameter nil 'unsplittable)) + (lambda (window) + (cond + ((window-in-direction 'below window)) + ((and (not bottom-window-shows-buffer) + (eq buffer (window-buffer window))) + (setq bottom-window-shows-buffer t) + (setq bottom-window window)) + ((not bottom-window) + (setq bottom-window window))) + nil nil 'nomini)) + (or (and bottom-window-shows-buffer + (window--display-buffer + buffer bottom-window 'reuse alist display-buffer-mark-dedicated)) + (and (not (frame-parameter nil 'unsplittable)) (let (split-width-threshold) (setq window (window--try-to-split-window bottom-window alist))) (window--display-buffer @@ -7147,7 +7271,7 @@ FRAME." (height (+ (cdr value) (window-bottom-divider-width) - (nth 3 (window-scroll-bars))))) + (window-scroll-bar-height)))) ;; Don't change height or width when the window's size is fixed ;; in either direction or ONLY forbids it. (cond @@ -7216,7 +7340,7 @@ FRAME." (frame-text-height)) frame-resize-pixelwise))))) -(defun fit-window-to-buffer (&optional window max-height min-height max-width min-width) +(defun fit-window-to-buffer (&optional window max-height min-height max-width min-width preserve-size) "Adjust size of WINDOW to display its buffer's contents exactly. WINDOW must be a live window and defaults to the selected one. @@ -7231,7 +7355,7 @@ and header line and a bottom divider, if any. If WINDOW is part of a horizontal combination and the value of the option `fit-window-to-buffer-horizontally' is non-nil, adjust -WINDOW's height. The new width of WINDOW is calculated from the +WINDOW's width. The new width of WINDOW is calculated from the maximum length of its buffer's lines that follow the current start position of WINDOW. The optional argument MAX-WIDTH specifies a maximum width and defaults to the width of WINDOW's @@ -7240,6 +7364,9 @@ and defaults to `window-min-width'. Both MAX-WIDTH and MIN-WIDTH are specified in columns and include fringes, margins, a scrollbar and a vertical divider, if any. +If the optional argument `preserve-size' is non-nil, preserve the +size of WINDOW (see `window-preserve-size'). + Fit pixelwise if the option `window-resize-pixelwise' is non-nil. If WINDOW is its frame's root window and the option `fit-frame-to-buffer' is non-nil, call `fit-frame-to-buffer' to @@ -7281,45 +7408,48 @@ accessible position." (max (if pixelwise (* char-height window-min-height) window-min-height) - (window-min-size nil nil t pixelwise)))) + (window-min-size window nil window pixelwise)))) (max-height ;; Sanitize MAX-HEIGHT. (if (numberp max-height) (min (+ total-height (window-max-delta - window nil nil nil nil nil pixelwise)) + window nil window nil nil nil pixelwise)) (if pixelwise (* char-height max-height) max-height)) (+ total-height (window-max-delta - window nil nil nil nil nil pixelwise)))) + window nil window nil nil nil pixelwise)))) height) (cond ;; If WINDOW is vertically combined, try to resize it ;; vertically. ((and (not (eq fit-window-to-buffer-horizontally 'only)) - (not (window-size-fixed-p window)) + (not (window-size-fixed-p window 'preserved)) (window-combined-p)) ;; Vertically we always want to fit the entire buffer. ;; WINDOW'S height can't get larger than its frame's pixel ;; height. Its width remains fixed. (setq height (+ (cdr (window-text-pixel-size nil nil t nil (frame-pixel-height) t)) - (nth 3 (window-scroll-bars window)) + (window-scroll-bar-height window) (window-bottom-divider-width))) ;; Round height. (unless pixelwise (setq height (/ (+ height char-height -1) char-height))) (unless (= height total-height) + (window-preserve-size window) (window-resize-no-error window (- (max min-height (min max-height height)) total-height) - nil window pixelwise))) + nil window pixelwise) + (when preserve-size + (window-preserve-size window nil t)))) ;; If WINDOW is horizontally combined, try to resize it ;; horizontally. ((and fit-window-to-buffer-horizontally - (not (window-size-fixed-p window t)) + (not (window-size-fixed-p window t 'preserved)) (window-combined-p nil t)) (let* ((total-width (window-size window t pixelwise)) (min-width @@ -7336,22 +7466,22 @@ accessible position." (max (if pixelwise (* char-width window-min-width) window-min-width) - (window-min-size nil nil t pixelwise)))) + (window-min-size nil nil window pixelwise)))) (max-width ;; Sanitize MAX-WIDTH. (if (numberp max-width) (min (+ total-width (window-max-delta - nil t nil nil nil nil pixelwise)) + window t window nil nil nil pixelwise)) (if pixelwise (* char-width max-width) max-width)) (+ total-width (window-max-delta - nil t nil nil nil nil pixelwise)))) - ;; When fitting vertically, assume that WINDOW's start - ;; position remains unaltered. WINDOW can't get wider - ;; than its frame's pixel width, its height remains - ;; unaltered. + window t window nil nil nil pixelwise)))) + ;; When fitting horizontally, assume that WINDOW's + ;; start position remains unaltered. WINDOW can't get + ;; wider than its frame's pixel width, its height + ;; remains unaltered. (width (+ (car (window-text-pixel-size nil (window-start) (point-max) (frame-pixel-width) @@ -7360,18 +7490,21 @@ accessible position." ;; overshoots when the first line below ;; the bottom is wider than the window. (* body-height - (if pixelwise char-height 1)))) + (if pixelwise 1 char-height)))) (window-right-divider-width)))) (unless pixelwise (setq width (/ (+ width char-width -1) char-width))) (unless (= width body-width) + (window-preserve-size window t) (window-resize-no-error window (- (max min-width (min max-width (+ total-width (- width body-width)))) total-width) - t window pixelwise))))))))) + t window pixelwise) + (when preserve-size + (window-preserve-size window t t)))))))))) (defun window-safely-shrinkable-p (&optional window) "Return t if WINDOW can be shrunk without shrinking other windows. @@ -7774,7 +7907,7 @@ is active. This function is run by `mouse-autoselect-window-timer'." (defun handle-select-window (event) "Handle select-window events." - (interactive "e") + (interactive "^e") (let ((window (posn-window (event-start event)))) (unless (or (not (window-live-p window)) ;; Don't switch if we're currently in the minibuffer. diff --git a/lisp/winner.el b/lisp/winner.el index 1e32a7f4085..c202402a6e9 100644 --- a/lisp/winner.el +++ b/lisp/winner.el @@ -112,10 +112,7 @@ You may want to include buffer names such as *Help*, *Apropos*, ;; Save current configuration. ;; (Called below by `winner-save-old-configurations'). (defun winner-remember () - (let ((entry (assq (selected-frame) winner-currents))) - (if entry (setcdr entry (winner-conf)) - (push (cons (selected-frame) (winner-conf)) - winner-currents)))) + (setf (alist-get (selected-frame) winner-currents) (winner-conf))) ;; Consult `winner-currents'. (defun winner-configuration (&optional frame) diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index cad3151b244..b933936f128 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el @@ -42,13 +42,6 @@ (defvar xterm-mouse-debug-buffer nil) -;; Mouse events symbols must have an 'event-kind property with -;; the value 'mouse-click. -(dolist (event '(mouse-1 mouse-2 mouse-3 mouse-4 mouse-5)) - (let ((M-event (intern (concat "M-" (symbol-name event))))) - (put event 'event-kind 'mouse-click) - (put M-event 'event-kind 'mouse-click))) - (defun xterm-mouse-translate (_event) "Read a click and release event from XTerm." (xterm-mouse-translate-1)) @@ -69,6 +62,10 @@ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)." (vec (vector event)) (is-down (string-match "down-" (symbol-name ev-command)))) + ;; Mouse events symbols must have an 'event-kind property with + ;; the value 'mouse-click. + (when ev-command (put ev-command 'event-kind 'mouse-click)) + (cond ((null event) nil) ;Unknown/bogus byte sequence! (is-down diff --git a/lwlib/.gitignore b/lwlib/.gitignore deleted file mode 100644 index f3c7a7c5da6..00000000000 --- a/lwlib/.gitignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 11ee10edac2..6687735003a 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,14 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-09-01 Paul Eggert + + --enable-silent-rules now suppresses more chatter. + * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_) + (am__v_CC_0, am__v_CC_1): New macros, taken from Automake. + (.c.o): Use them. + 2014-07-15 Dmitry Antipov * lwlib.h (toplevel): Use unsigned int for LWLIB_ID. diff --git a/lwlib/Makefile.in b/lwlib/Makefile.in index 516b3286951..b01e69c4392 100644 --- a/lwlib/Makefile.in +++ b/lwlib/Makefile.in @@ -51,6 +51,14 @@ TOOLKIT_OBJS = $(@X_TOOLKIT_TYPE@_OBJS) OBJS = lwlib.o $(TOOLKIT_OBJS) lwlib-utils.o +# 'make' verbosity. +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ + +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = + DEPDIR = deps ## -MMD -MF $(DEPDIR)/$*.d if AUTO_DEPEND; else empty. DEPFLAGS = @DEPFLAGS@ @@ -73,7 +81,7 @@ all: liblw.a .c.o: @$(MKDEPDIR) - $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< + $(AM_V_CC)$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< liblw.a: $(OBJS) rm -f $@ diff --git a/m4/extensions.m4 b/m4/extensions.m4 index 37f55ca3d15..cf285ba273a 100644 --- a/m4/extensions.m4 +++ b/m4/extensions.m4 @@ -68,6 +68,10 @@ dnl configure.ac when using autoheader 2.62. #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif +/* Use GNU style printf and scanf. */ +#ifndef __USE_MINGW_ANSI_STDIO +# undef __USE_MINGW_ANSI_STDIO +#endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS @@ -100,6 +104,7 @@ dnl configure.ac when using autoheader 2.62. AC_DEFINE([_ALL_SOURCE]) AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) + AC_DEFINE([__USE_MINGW_ANSI_STDIO]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([_TANDEM_SOURCE]) AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4 index 240150efbc7..0edbe3c81c6 100644 --- a/m4/extern-inline.m4 +++ b/m4/extern-inline.m4 @@ -19,13 +19,28 @@ AC_DEFUN([gl_EXTERN_INLINE], 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. - Suppress the use of extern inline on problematic Apple configurations. - OS X 10.8 and earlier mishandle it; see, e.g., - . + Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) + on configurations that mistakenly use 'static inline' to implement + functions or macros in standard C headers like . For example, + if isdigit is mistakenly implemented via a static inline function, + a program containing an extern inline function that calls isdigit + may not work since the C standard prohibits extern inline functions + from calling static functions. This bug is known to occur on: + + OS X 10.8 and earlier; see: + http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html + + DragonFly; see + http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log + + FreeBSD; see: + http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html + OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see . - Perhaps Apple will fix this some day. */ -#if (defined __APPLE__ \ + Assume DragonFly and FreeBSD will be similar. */ +#if (((defined __APPLE__ && defined __MACH__) \ + || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ @@ -33,19 +48,19 @@ AC_DEFUN([gl_EXTERN_INLINE], && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) -# define _GL_EXTERN_INLINE_APPLE_BUG +# define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !(defined __SUNPRO_C && __STDC__))) \ - && !defined _GL_EXTERN_INLINE_APPLE_BUG) + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ - && !defined _GL_EXTERN_INLINE_APPLE_BUG) + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) @@ -59,6 +74,11 @@ AC_DEFUN([gl_EXTERN_INLINE], # define _GL_EXTERN_INLINE static _GL_UNUSED #endif +/* In GCC, suppress bogus "no previous prototype for 'FOO'" + and "no previous declaration for 'FOO'" diagnostics, + when FOO is an inline function in the header; see + and + . */ #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA @@ -66,10 +86,6 @@ AC_DEFUN([gl_EXTERN_INLINE], # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif - /* Suppress GCC's bogus "no previous prototype for 'FOO'" - and "no previous declaration for 'FOO'" diagnostics, - when FOO is an inline function in the header; see - . */ # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index 35f6195204e..31e5f9499e0 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 35 +# gnulib-common.m4 serial 36 dnl Copyright (C) 2007-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -319,26 +319,28 @@ m4_ifdef([AC_PROG_MKDIR_P], [ ]) # AC_C_RESTRICT -# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, -# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ -# works. -# This definition can be removed once autoconf >= 2.62 can be assumed. -# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. -m4_ifndef([AC_AUTOCONF_VERSION],[ +# This definition is copied from post-2.69 Autoconf and overrides the +# AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed +# once autoconf >= 2.70 can be assumed. It's painful to check version +# numbers, and in practice this macro is more up-to-date than Autoconf +# is, so override Autoconf unconditionally. AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do - AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [[typedef int * int_ptr; - int foo (int_ptr $ac_kw ip) { - return ip[0]; - }]], - [[int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t)]])], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[typedef int *int_ptr; + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } + ]], + [[int s[1]; + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); + ]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done @@ -348,21 +350,21 @@ AC_DEFUN([AC_C_RESTRICT], nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict -/* Work around a bug in Sun C++: it does not support _Restrict, even - though the corresponding Sun C compiler does, which causes - "#define restrict _Restrict" in the previous line. Perhaps some future - version of Sun C++ will work with _Restrict; if so, it'll probably - define __RESTRICT, just as Sun C does. */ +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict +# define __restrict__ #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac -]) -]) +])# AC_C_RESTRICT # gl_BIGENDIAN # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index 98acc069c92..39ec8ae00e6 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -146,7 +146,9 @@ AC_DEFUN([gl_EARLY], # Code from module unsetenv: # Code from module update-copyright: # Code from module utimens: + # Code from module vararrays: # Code from module verify: + # Code from module vla: # Code from module warnings: # Code from module xalloc-oversized: ]) @@ -320,7 +322,7 @@ AC_DEFUN([gl_INIT], fi gl_UNISTD_MODULE_INDICATOR([readlink]) gl_FUNC_READLINKAT - if test $HAVE_READLINKAT = 0; then + if test $HAVE_READLINKAT = 0 || test $REPLACE_READLINKAT = 1; then AC_LIBOBJ([readlinkat]) fi gl_UNISTD_MODULE_INDICATOR([readlinkat]) @@ -383,6 +385,7 @@ AC_DEFUN([gl_INIT], fi gl_STDLIB_MODULE_INDICATOR([unsetenv]) gl_UTIMENS + AC_C_VARARRAYS gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b=false gl_gnulib_enabled_dosname=false gl_gnulib_enabled_euidaccess=false @@ -916,6 +919,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/utimens.c lib/utimens.h lib/verify.h + lib/vla.h lib/xalloc-oversized.h m4/00gnulib.m4 m4/absolute-header.m4 @@ -1013,6 +1017,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/utimbuf.m4 m4/utimens.m4 m4/utimes.m4 + m4/vararrays.m4 m4/warn-on-use.m4 m4/warnings.m4 m4/wchar_t.m4 diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4 index e1cee6cf9d1..3e6dd215ced 100644 --- a/m4/manywarnings.m4 +++ b/m4/manywarnings.m4 @@ -1,4 +1,4 @@ -# manywarnings.m4 serial 6 +# manywarnings.m4 serial 7 dnl Copyright (C) 2008-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -93,6 +93,14 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC], fi # List all gcc warning categories. + # To compare this list to your installed GCC's, run this Bash command: + # + # comm -3 \ + # <(sed -n 's/^ *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \ + # <(gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort | + # grep -v -x -f <( + # awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec)) + gl_manywarn_set= for gl_manywarn_item in \ -W \ @@ -111,6 +119,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC], -Wcomments \ -Wcoverage-mismatch \ -Wcpp \ + -Wdate-time \ -Wdeprecated \ -Wdeprecated-declarations \ -Wdisabled-optimization \ @@ -150,9 +159,9 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC], -Wnarrowing \ -Wnested-externs \ -Wnonnull \ - -Wnormalized=nfc \ -Wold-style-declaration \ -Wold-style-definition \ + -Wopenmp-simd \ -Woverflow \ -Woverlength-strings \ -Woverride-init \ @@ -203,13 +212,26 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC], -Wvla \ -Wvolatile-register-var \ -Wwrite-strings \ - -fdiagnostics-show-option \ - -funit-at-a-time \ \ ; do gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item" done + # gcc --help=warnings outputs an unusual form for this option; list + # it here so that the above 'comm' command doesn't report a false match. + gl_manywarn_set="$gl_manywarn_set -Wnormalized=nfc" + + # These are needed for older GCC versions. + if test -n "$GCC"; then + case `($CC --version) 2>/dev/null` in + 'gcc (GCC) '[[0-3]].* | \ + 'gcc (GCC) '4.[[0-7]].*) + gl_manywarn_set="$gl_manywarn_set -fdiagnostics-show-option" + gl_manywarn_set="$gl_manywarn_set -funit-at-a-time" + ;; + esac + fi + # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers" diff --git a/m4/pthread_sigmask.m4 b/m4/pthread_sigmask.m4 index 2b3347f992d..5153828a969 100644 --- a/m4/pthread_sigmask.m4 +++ b/m4/pthread_sigmask.m4 @@ -1,4 +1,4 @@ -# pthread_sigmask.m4 serial 14 +# pthread_sigmask.m4 serial 15 dnl Copyright (C) 2011-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -40,7 +40,7 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK], LIBS="$gl_save_LIBS" ]) if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then - dnl pthread_sigmask is available with -lpthread. + dnl pthread_sigmask is available with -pthread or -lpthread. LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" else dnl pthread_sigmask is not available at all. @@ -86,7 +86,7 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK], AC_SUBST([LIB_PTHREAD_SIGMASK]) dnl We don't need a variable LTLIB_PTHREAD_SIGMASK, because when dnl "$gl_threads_api" = posix, $LTLIBMULTITHREAD and $LIBMULTITHREAD are the - dnl same: either both empty or both "-lpthread". + dnl same. dnl Now test for some bugs in the system function. if test $HAVE_PTHREAD_SIGMASK = 1; then @@ -98,6 +98,7 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK], dnl no effect. if test -z "$LIB_PTHREAD_SIGMASK"; then case " $LIBS " in + *' -pthread '*) ;; *' -lpthread '*) ;; *) AC_CACHE_CHECK([whether pthread_sigmask works without -lpthread], diff --git a/m4/readlinkat.m4 b/m4/readlinkat.m4 index 65c0689c114..f9ed9436af6 100644 --- a/m4/readlinkat.m4 +++ b/m4/readlinkat.m4 @@ -1,4 +1,4 @@ -# serial 3 +# serial 4 # See if we need to provide readlinkat replacement. dnl Copyright (C) 2009-2014 Free Software Foundation, Inc. @@ -15,5 +15,18 @@ AC_DEFUN([gl_FUNC_READLINKAT], AC_CHECK_FUNCS_ONCE([readlinkat]) if test $ac_cv_func_readlinkat = no; then HAVE_READLINKAT=0 + else + AC_CACHE_CHECK([whether readlinkat signature is correct], + [gl_cv_decl_readlinkat_works], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + /* Check whether original declaration has correct type. */ + ssize_t readlinkat (int, char const *, char *, size_t);]])], + [gl_cv_decl_readlinkat_works=yes], + [gl_cv_decl_readlinkat_works=no])]) + if test "$gl_cv_decl_readlink_works" != yes; then + REPLACE_READLINKAT=1 + fi fi ]) diff --git a/m4/stdalign.m4 b/m4/stdalign.m4 index 9efafe5c5b2..f60257f16ab 100644 --- a/m4/stdalign.m4 +++ b/m4/stdalign.m4 @@ -32,8 +32,12 @@ AC_DEFUN([gl_STDALIGN_H], /* Test _Alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ - || __GNUC__ || __IBMC__ || __IBMCPP__ || __ICC \ - || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER) + || (defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__) \ + || __HP_cc || __HP_aCC || __IBMC__ || __IBMCPP__ \ + || __ICC || 0x5110 <= __SUNPRO_C \ + || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; diff --git a/m4/stddef_h.m4 b/m4/stddef_h.m4 index c555e295244..9659813bda6 100644 --- a/m4/stddef_h.m4 +++ b/m4/stddef_h.m4 @@ -1,5 +1,5 @@ -dnl A placeholder for POSIX 2008 , for platforms that have issues. -# stddef_h.m4 serial 4 +dnl A placeholder for , for platforms that have issues. +# stddef_h.m4 serial 5 dnl Copyright (C) 2009-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -10,6 +10,9 @@ AC_DEFUN([gl_STDDEF_H], AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) STDDEF_H= + AC_CHECK_TYPE([max_align_t], [], [HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h], + [[#include + ]]) if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h @@ -43,5 +46,6 @@ AC_DEFUN([gl_STDDEF_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) + HAVE_MAX_ALIGN_T=1; AC_SUBST([HAVE_MAX_ALIGN_T]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 index d15913a3ca0..ef0dcc12d26 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -6,6 +6,9 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDIO_H], [ + dnl For __USE_MINGW_ANSI_STDIO + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_NEXT_HEADERS([stdio.h]) diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4 index 03b448b94f4..86aff16eb05 100644 --- a/m4/stdlib_h.m4 +++ b/m4/stdlib_h.m4 @@ -55,6 +55,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME]) GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R]) GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) + GNULIB_QSORT_R=0; AC_SUBST([GNULIB_QSORT_R]) GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM]) GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) @@ -107,6 +108,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) + REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) diff --git a/m4/unistd_h.m4 b/m4/unistd_h.m4 index 1fa197e6943..d7346a0b05b 100644 --- a/m4/unistd_h.m4 +++ b/m4/unistd_h.m4 @@ -1,4 +1,4 @@ -# unistd_h.m4 serial 67 +# unistd_h.m4 serial 68 dnl Copyright (C) 2006-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -173,9 +173,11 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) + REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) + REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) diff --git a/m4/vararrays.m4 b/m4/vararrays.m4 new file mode 100644 index 00000000000..cbda525c75e --- /dev/null +++ b/m4/vararrays.m4 @@ -0,0 +1,68 @@ +# Check for variable-length arrays. + +# serial 5 + +# From Paul Eggert + +# Copyright (C) 2001, 2009-2014 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This is a copy of AC_C_VARARRAYS from a recent development version +# of Autoconf. It replaces Autoconf's version, or for pre-2.61 autoconf +# it defines the macro that Autoconf lacks. +AC_DEFUN([AC_C_VARARRAYS], +[ + AC_CACHE_CHECK([for variable-length arrays], + ac_cv_c_vararrays, + [AC_EGREP_CPP([defined], + [#ifdef __STDC_NO_VLA__ + defined + #endif + ], + [ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[/* Test for VLA support. This test is partly inspired + from examples in the C standard. Use at least two VLA + functions to detect the GCC 3.4.3 bug described in: + http://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html + */ + #ifdef __STDC_NO_VLA__ + syntax error; + #else + extern int n; + int B[100]; + int fvla (int m, int C[m][m]); + + int + simple (int count, int all[static count]) + { + return all[count - 1]; + } + + int + fvla (int m, int C[m][m]) + { + typedef int VLA[m][m]; + VLA x; + int D[m]; + static int (*q)[m] = &B; + int (*s)[n] = q; + return C && &x[0][0] == &D[0] && &D[0] == s[0]; + } + #endif + ]])], + [ac_cv_c_vararrays=yes], + [ac_cv_c_vararrays=no])])]) + if test "$ac_cv_c_vararrays" = yes; then + dnl This is for compatibility with Autoconf 2.61-2.69. + AC_DEFINE([HAVE_C_VARARRAYS], 1, + [Define to 1 if C supports variable-length arrays.]) + elif test "$ac_cv_c_vararrays" = no; then + AC_DEFINE([__STDC_NO_VLA__], 1, + [Define to 1 if C does not support variable-length arrays, and + if the compiler does not already define this.]) + fi +]) diff --git a/make-dist b/make-dist index 8e6d77c71ba..344de9c1ef9 100755 --- a/make-dist +++ b/make-dist @@ -169,9 +169,8 @@ fi echo Version number is $version if [ $update = yes ]; then - if ! grep -q "@set EMACSVER *${version}" doc/emacs/emacsver.texi || \ - ! grep -q "tree holds version *${version}" README; then - echo "WARNING: README and/or emacsver.texi have the wrong version number" + if ! grep -q "tree holds version *${version}" README; then + echo "WARNING: README has the wrong version number" echo "Consider running M-x set-version from admin/admin.el" sleep 5 fi @@ -383,7 +382,7 @@ echo "Making links to \`lib-src'" (cd lib-src ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src ln ChangeLog Makefile.in README ../${tempdir}/lib-src - ln grep-changelog rcs2log ../${tempdir}/lib-src + ln rcs2log ../${tempdir}/lib-src ln makefile.w32-in ../${tempdir}/lib-src ln update-game-score.exe.manifest ../${tempdir}/lib-src) @@ -393,10 +392,10 @@ echo "Making links to \`m4'" echo "Making links to \`nt'" (cd nt - ln emacs-x86.manifest emacs-x64.manifest emacs.rc ../${tempdir}/nt - ln config.nt emacsclient.rc emacs-src.tags ../${tempdir}/nt + ln emacs-x86.manifest emacs-x64.manifest ../${tempdir}/nt + ln config.nt emacs-src.tags ../${tempdir}/nt ln nmake.defs gmake.defs subdirs.el [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt - ln Makefile.in gnulib.mk ../${tempdir}/nt + ln *.in gnulib.mk ../${tempdir}/nt ln mingw-cfg.site epaths.nt INSTALL.OLD ../${tempdir}/nt ln ChangeLog INSTALL README README.W32 makefile.w32-in ../${tempdir}/nt) @@ -414,7 +413,7 @@ echo "Making links to \`msdos'" (cd msdos ln ChangeLog INSTALL README emacs.ico emacs.pif ../${tempdir}/msdos ln depfiles.bat inttypes.h ../${tempdir}/msdos - ln is_exec.c sigaction.c mainmake.v2 sed*.inp ../${tempdir}/msdos) + ln mainmake.v2 sed*.inp ../${tempdir}/msdos) echo "Making links to \`nextstep'" (cd nextstep @@ -504,8 +503,9 @@ echo "Making links to \`doc/lispintro'" echo "Making links to \`doc/man'" (cd doc/man - ln ChangeLog* *.1 ../../${tempdir}/doc/man - cd ../../${tempdir}/doc/man) + ln ChangeLog* *.1 *.in ../../${tempdir}/doc/man + cd ../../${tempdir}/doc/man + rm -f emacs.1) ### It would be nice if they could all be symlinks to top-level copy, but ### you're not supposed to have any symlinks in distribution tar files. diff --git a/msdos/ChangeLog b/msdos/ChangeLog index f1d6c322bc2..efebfc3bc0e 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -1,3 +1,34 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-09-29 Eli Zaretskii + + * sed2v2.inp: Bump version to 25.0.50. + +2014-08-28 Eli Zaretskii + + * sedlibmk.inp (gl_LIBOBJS): Add execinfo.o. Reported by Juan + Manuel Guerrero . + + * sed2v2.inp [DJGPP <= 2.03]: Add a prototype for snprintf, to + avoid compilation warning from newer GCC versions that have + snprintf as a built-in. Reported by Juan Manuel Guerrero + . + +2014-08-09 Eli Zaretskii + + * INSTALL: Fix last change. + +2014-08-09 Reuben Thomas + + * is_exec.c, sigaction.c: Remove files. + * sed2v2.inp: Remove support for DJGPP 2.01. + * INSTALL: Don't mention removed files msdos/is_exec.c and + sigaction.c, and increase minimum version of DJGPP to 2.02. + * README: Remove note on legal status of removed files + is_exec.c and sigaction.c. + 2014-04-16 Eli Zaretskii * sedlisp.inp: diff --git a/msdos/INSTALL b/msdos/INSTALL index de950b89def..cba9f651b72 100644 --- a/msdos/INSTALL +++ b/msdos/INSTALL @@ -11,12 +11,13 @@ Building on plain MS-DOS is supported only if long file names are supported (e.g., with a specialized driver such as doslfn). To build and install the DJGPP port, you need to have the DJGPP ports -of GCC (the GNU C compiler), GNU Make, rm, mv, cp, and sed. See the -remarks in CONFIG.BAT for more information about locations and -versions. The Emacs FAQ (see info/efaq.info) includes pointers to -Internet sites where you can find the necessary utilities; search for -"MS-DOS". The configuration step (see below) will test for these -utilities and will refuse to continue if any of them isn't found. +of GCC (the GNU C compiler), GNU Make, rm, mv, cp, and sed, and +version 2.02 or later of DJGPP itself. See the remarks in CONFIG.BAT +for more information about locations and versions. The Emacs FAQ (see +info/efaq.info) includes pointers to Internet sites where you can find +the necessary utilities; search for "MS-DOS". The configuration step +(see below) will test for these utilities and will refuse to continue +if any of them isn't found. Bootstrapping Emacs or recompiling Lisp files in the `lisp' subdirectory using the various targets in the lisp/Makefile file @@ -28,14 +29,13 @@ are distributed in byte-compiled form as well. As for bootstrapping itself, you will only need that if you check-out development sources from the Emacs source repository. -Building the DJGPP version of Emacs is currently supported only on -systems which support long file names (e.g. Windows 9X or Windows XP). -You need to unpack Emacs distribution in a way that doesn't truncate -the original long filenames to the DOS 8.3 namespace; the easiest way -to do this is to use djtar program which comes with DJGPP, since it -will behave consistently with the rest of DJGPP tools. Do _not_ -disable the DJGPP long-file-name support (a.k.a. "LFN") while building -Emacs. +Building the DJGPP version of Emacs is supported only on systems which +support long file names (e.g. Windows 9X or Windows XP). You need to +unpack Emacs distribution in a way that doesn't truncate the original +long filenames to the DOS 8.3 namespace; the easiest way to do this is +to use djtar program which comes with DJGPP, since it will behave +consistently with the rest of DJGPP tools. Do _not_ disable the DJGPP +long-file-name support (a.k.a. "LFN") while building Emacs. (By the time you read this, you have already unpacked the Emacs distribution, but if the explanations above imply that you should have @@ -68,13 +68,7 @@ type these commands: Running "config msdos" checks for several programs that are required to configure and build Emacs; if one of those programs is not found, -CONFIG.BAT stops and prints an error message. If you have DJGPP -version 2.0 or 2.01, it will complain about a program called -DJECHO.EXE. These old versions of DJGPP shipped that program under -the name ECHO.EXE, so you can simply copy ECHO.EXE to DJECHO.EXE and -rerun CONFIG.BAT. If you have neither ECHO.EXE nor DJECHO.EXE, you -should be able to find them in your djdevNNN.zip archive (where NNN is -the DJGPP version number). +CONFIG.BAT stops and prints an error message. On Windows NT and Windows 2000/XP/Vista/7, running "config msdos" might print an error message like "VDM has been already loaded". This @@ -143,12 +137,6 @@ multitasking do not work in the DJGPP port. Synchronous subprocesses do work, so features such as compilation, grep, and Ispell run synchronously, unlike on other platforms. -Version 2.0 of djgpp has two bugs that affect Emacs. We've included -corrected versions of two files from djgpp in the msdos subdirectory: -is_exec.c and sigaction.c. To work around the bugs, compile these -files and link them into temacs. Djgpp versions 2.01 and later have -these bugs fixed, so upgrade if you can before building Emacs. - This file is part of GNU Emacs. diff --git a/msdos/README b/msdos/README index 1cc424735fd..07be34a5e26 100644 --- a/msdos/README +++ b/msdos/README @@ -24,129 +24,6 @@ reproduced here: # # ---------------------------------------------------------------------- - -NOTE ON THE LEGAL STATUS OF THE FILES IS_EXEC.C, SIGACTION.C - -As distributed with GNU Emacs, the files is_exec.c and sigaction.c are -Copyright (C) 1995 DJ Delorie, and are licensed under the terms of the -GNU General Public License version 3 (see COPYING), or (at your -option) any later version. - -Here we record the details of the legal history of these files. - -The files is_exec.c and sigaction.c were originally part of DJGPP, -distributed by DJ Delorie. The versions of these files in DJGPP -contain the following license notice: - - Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details - -The contents of the file COPYING.DJ (as available at, for example, the -URL: ) are as -follows: - --- COPYING.DJ STARTS HERE -- - -This is the file "COPYING.DJ". It does NOT apply to any sources or -binaries copyrighted by UCB Berkeley, the Free Software Foundation, or -any other agency besides DJ Delorie and others who have agreed to -allow their sources to be distributed under these terms. - - Copyright Information for sources and executables that are marked - Copyright (C) DJ Delorie - 334 North Rd - Deerfield NH 03037-1110 - -This document is Copyright (C) DJ Delorie and may be distributed -verbatim, but changing it is not allowed. - -Source code copyright DJ Delorie is distributed under the terms of the -GNU General Public License, with the following exceptions: - -* Sources used to build crt0.o, gcrt0.o, libc.a, libdbg.a, and - libemu.a are distributed under the terms of the GNU Library General - Public License, rather than the GNU GPL. - -* Any existing copyright or authorship information in any given source - file must remain intact. If you modify a source file, a notice to that - effect must be added to the authorship information in the source file. - -* Runtime binaries, as provided by DJ in DJGPP, may be distributed - without sources ONLY if the recipient is given sufficient information - to obtain a copy of djgpp themselves. This primarily applies to - go32-v2.exe, emu387.dxe, and stubedit.exe. - -* Runtime objects and libraries, as provided by DJ in DJGPP, when - linked into an application, may be distributed without sources ONLY - if the recipient is given sufficient information to obtain a copy of - djgpp themselves. This primarily applies to crt0.o and libc.a. - ------ - -Changes to source code copyright BSD, FSF, or others, by DJ Delorie -fall under the terms of the original copyright. Such files usually -have multiple copyright notices in them. - -A copy of the files "COPYING" and "COPYING.LIB" are included with this -document. If you did not receive a copy of these files, you may -obtain one from whence this document was obtained, or by writing: - - Free Software Foundation, Inc. - 51 Franklin Street, - Fifth Floor, - Boston, MA 02110-1301, - USA - --- COPYING.DJ ENDS HERE -- - -Both is_exec.c and sigaction.c are parts of DJGPP's libc.a, therefore -according to exception 1 in the above terms their "base" license is -the GNU Library General Public License [now known as the GNU Lesser -General Public License]. - -The terms of the GNU LGPL, specifically clause 3, which begins: - - 3. You may opt to apply the terms of the ordinary GNU General - Public License instead of this License to a given copy of the - Library. - -permit us to relicense the files is_exec.c and sigaction.c as used in -GNU Emacs under the terms of the GNU GPL. - -COPYING.DJ, however, lists extra exceptions 2-4 to the GNU licenses. -Items 3 and 4 are not relevant in the case of GNU Emacs, since they -can only apply to copies of DJGPP [confirmed by email from DJ Delorie -to rms at gnu.org and others, 2007/01/31]. - -Exception 2 of COPYING.DJ, when viewed as an added restriction, rather -than as an interpretation of the GPL, leads to problems. The added -requirement makes the overall license of the file incompatible with -the GNU GPL. - -As a solution to this problem, DJ Delorie has kindly granted (February -2007) GNU Emacs an exception, and permits us to license the files -is_exec.c and sigaction.c solely under the terms of the GNU GPL. This -exception applies _only_ to these files as distributed with GNU Emacs. -This solution was arrived at in an email discussion between DJ Delorie - and Richard Stallman in -January/February 2007. We record below a summary of the relevant final -email in this discussion: - - From: DJ Delorie - To: rms at gnu.org - Subject: Re: COPYING.DJ and Emacsn - - I have no problem with whatever you wish to do with those files in - emacs (as long as djgpp itself doesn't need to change). - - -Accordingly, in February 2007 we relicensed the files is_exec.c and -sigaction.c as used in GNU Emacs under the GNU GPL. - -Copies of both the GNU General Public License and GNU Lesser (Library) -Public License may be obtained from , or: -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - This file is part of GNU Emacs. diff --git a/msdos/is_exec.c b/msdos/is_exec.c deleted file mode 100644 index 16b01c59a0b..00000000000 --- a/msdos/is_exec.c +++ /dev/null @@ -1,238 +0,0 @@ -/* IS_EXEC.C - * - * Copyright (C) 1995 DJ Delorie - * Copyright (C) 1994 Eli Zaretskii - * - * (See the README file in this directory for the copyright and license - * history of this file.) - * - * This file 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 3 of the License, or - * (at your option) any later version. - * - * This file 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 file. If not, see . - * - * Commentary: - * - * Given a filename or a file handle, and the extension of the file, - * determine if the file is executable. - * First, the file extension is checked in case it uniquely identifies - * the file as either an executable or not. Failing this, the first - * two bytes of the file are tested for known signatures of executable - * files. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -extern unsigned short _djstat_flags; -unsigned short _get_magic(const char *, int); -int _is_executable(const char *, int, const char *); - -/* - * Read a MAGIC NUMBER from a given file. These are the first - * two bytes of the file, if we look at them as an unsigned short. */ - -#define _STAT_EXEC_EXT 2 /* get execute bits from file extension? */ -#define _STAT_EXEC_MAGIC 4 /* get execute bits from magic signature? */ - -unsigned short -_get_magic(const char *s, int fh) -{ - __dpmi_regs regs; - unsigned short retval; - unsigned short fpos_high = 0, fpos_low = 0; - int read_fail = 0; - - /* If given a pathname, open the file. */ - if (s) - { - int handle; - if((handle = _open(s,0)) == -1) - return 0; - regs.x.bx = handle; - } - /* Else file already open. Remember its current file position - and move to beginning of file. */ - else - { - regs.x.ax = 0x4201; /* set pointer from current position */ - regs.x.bx = fh; - regs.x.cx = regs.x.dx = 0; /* move 0 bytes (i.e., stay put) */ - __dpmi_int(0x21, ®s); - if (regs.x.flags & 1) - { - errno = __doserr_to_errno(regs.x.ax); - return 0; - } - fpos_high = regs.x.dx; /* got current position */ - fpos_low = regs.x.ax; - - regs.x.ax = 0x4200; /* set pointer from the beginning of file */ - regs.x.cx = regs.x.dx = 0; /* move to beginning of file */ - __dpmi_int(0x21, ®s); - if (regs.x.flags & 1) - { - errno = __doserr_to_errno(regs.x.ax); - return 0; - } - } - regs.x.ds = __tb_segment; - regs.x.dx = __tb_offset; - - /* Read 2 bytes from the file. */ - regs.x.ax = 0x3f00; - regs.x.cx = 2; - __dpmi_int(0x21, ®s); - - /* We can either (1) succeed, (2) read less than 2 bytes, - or (3) fail to read at all. */ - if (regs.x.ax != 2) - read_fail = (regs.x.flags & 1) ? regs.x.ax : -1; - - /* If called with filename, close the file. */ - if (s) - { - regs.x.ax = 0x3e00; - __dpmi_int(0x21, ®s); - if (regs.x.flags & 1) - errno = __doserr_to_errno(regs.x.ax); - } - /* Else leave file pointer where we found it. */ - else - { - regs.x.ax = 0x4200; /* set pointer from the beginning of file */ - regs.x.bx = fh; - regs.x.cx = fpos_high; - regs.x.dx = fpos_low; - __dpmi_int(0x21, ®s); - if (regs.x.flags & 1) - { - errno = __doserr_to_errno(regs.x.ax); - return 0; - } - } - - if (read_fail == 0) - retval = _farpeekw(_dos_ds, __tb); - else - { - /* The file couldn't be read: assume non-executable. If the file - *is* executable, but was passed as a file-handle, and the user - opened it in write-only mode, they lose... */ - retval = 0; - if (read_fail != -1) - errno = __doserr_to_errno(read_fail); - } - - return retval; -} - -/* A list of extensions which designate executable files. These - are NOT tested for the magic number. */ -static char executables[] = "|EXE|COM|BAT|BTM|DLL|VXD|"; - -/* A list of extensions which belong to files known to NEVER be - executables. These exist to minimize read()'ing files while - detecting executables by magic number. You are welcome to - add to this list, but remember: only extensions which could - NEVER be present in executables should go here. */ -static char non_executables[] = "\ -|A|A01|A02|A03|A04|A05|ADL|ARC|ARJ|ASC|ASM|AUX|AWK\ -|BAS|BIB|BGI|BMP\ -|C|CC|CFG|CGZ|CH3|CHR|CI|CLP|CMF|CPI|CPP|CXX\ -|DAT|DBF|DIZ|DOC|DVI\ -|E|EL|ELC\ -|F77|FN3\ -|GIF|GZ\ -|H|HLP|HPP|HXX\ -|ICO|IN|INC|INF|INI\ -|JPG\ -|L|LEX|LF|LIB|LOG|LST|LZH\ -|M|MAK|MAP|MF|MID|MPG\ -|O|OBJ\ -|PAK|PAS|PBM|PCD|PCX|PDS|PIC|PIF|PN3|PRJ|PS\ -|RAS|RGB|RLE\ -|S|SND|SY3\ -|TAR|TAZ|TEX|TGA|TGZ|TIF|TXH|TXI|TXT\ -|VOC\ -|WAV|WK1|WK3|WKB|WQ1|WQ3|WQ4|WQ5|WQ6|WQ!\ -|XBM\ -|Y\ -|ZIP|ZOO|"; - -int -_is_executable(const char *filename, int fhandle, const char *extension) -{ - if (!extension && filename) - { - const char *cp, *ep=0; - for (cp=filename; *cp; cp++) - { - if (*cp == '.') - ep = cp; - if (*cp == '/' || *cp == '\\' || *cp == ':') - ep = 0; - } - extension = ep; - } - if ((_djstat_flags & _STAT_EXEC_EXT) == 0 - && extension - && *extension - && strlen(extension) <= ((extension[0]=='.') ? 4 : 3)) - { - /* Search the list of extensions in executables[]. */ - char tmp_buf[6], *tp = tmp_buf; - - *tp++ = '|'; - if (*extension == '.') - extension++; - while (*extension) - *tp++ = toupper (*extension++); - *tp++ = '|'; - *tp = '\0'; - if (strstr(non_executables, tmp_buf)) - return 0; - else if (strstr(executables, tmp_buf)) - return 1; - } - - /* No extension, or extension doesn't define execute - bits unambiguously. We are in for some dirty work. - Read the first two bytes of the file and see if they - are any of the known magic numbers which designate - executable files. - Unix-like shells, which have executable shell scripts - without extensions and DON'T have "#!" as their FIRST - TWO CHARACTERS, lose here. Sorry, folks. */ - if ( (_djstat_flags & _STAT_EXEC_MAGIC) == 0 ) - { - switch (_get_magic(filename, fhandle)) - { - case 0x5a4d: /* "MZ" */ - case 0x010b: - case 0x014c: - case 0x2123: /* "#!" */ - return 1; - } - } - - return 0; -} - diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 97276d63aba..658a384a46b 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -22,10 +22,6 @@ #include \ /* In DJGPP v2.x almost everything is already defined in a system header. */\ #include \ -/* For those who still use DJGPP v2.01 */\ -#if __DJGPP__ == 2 && __DJGPP_MINOR__ == 1\ -#define NSIG 320\ -#endif /^#undef MSDOS *$/c\ #ifndef MSDOS\ @@ -70,7 +66,7 @@ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/ /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/ -/^#undef VERSION/s/^.*$/#define VERSION "24.4.50"/ +/^#undef VERSION/s/^.*$/#define VERSION "25.0.50"/ /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ @@ -131,6 +127,8 @@ s/^#undef HAVE_STRTOULL *$/#define HAVE_STRTOULL 1/ #define HAVE_SNPRINTF 1\ #else\ #undef HAVE_SNPRINTF\ +#include \ +extern int snprintf (char *__restrict, size_t, const char *__restrict, ...);\ #endif s/^#undef PENDING_OUTPUT_N_BYTES *$/#define PENDING_OUTPUT_N_BYTES fp->_ptr - fp->_base/ diff --git a/msdos/sedlibmk.inp b/msdos/sedlibmk.inp index badb30b0b65..b896eadc22d 100644 --- a/msdos/sedlibmk.inp +++ b/msdos/sedlibmk.inp @@ -315,6 +315,7 @@ am__cd = cd /^BYTESWAP_H *=/s/@[^@\n]*@/byteswap.h/ /^DIRENT_H *=/s/@[^@\n]*@// /^ERRNO_H *=/s/@[^@\n]*@// +/^EXECINFO_H *=/s/@[^@\n]*@/execinfo.h/ /^STDBOOL_H *=/s/@[^@\n]*@// /^STDALIGN_H *=/s/@[^@\n]*@/stdalign.h/ /^STDARG_H *=/s/@[^@\n]*@// @@ -333,7 +334,7 @@ am__cd = cd /am__append_[1-9][0-9]* *=.*gettext\.h/s/@[^@\n]*@/\#/ /am__append_2 *=.*verify\.h/s/@[^@\n]*@// /^@gl_GNULIB_ENABLED_tempname_TRUE@/s/@[^@\n]*@// -/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o memrchr.o sig2str.o time_r.o getloadavg.o pthread_sigmask.o mkostemp.o fpending.o fdatasync.o/ +/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o memrchr.o sig2str.o time_r.o getloadavg.o pthread_sigmask.o mkostemp.o fpending.o fdatasync.o execinfo.o/ /^am__append_[1-9][0-9]* *=/,/^[^ ]/{ s/ *inttypes\.h// s| *sys/select\.h|| diff --git a/msdos/sigaction.c b/msdos/sigaction.c deleted file mode 100644 index 44f7954fa20..00000000000 --- a/msdos/sigaction.c +++ /dev/null @@ -1,57 +0,0 @@ -/* sigaction.c - * - * Copyright (C) 1995 DJ Delorie - * - * (See the README file in this directory for the copyright and license - * history of this file.) - * - * This file 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 3 of the License, or - * (at your option) any later version. - * - * This file 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 file. If not, see . - */ -#include -#include - -int -sigaction(int _sig, const struct sigaction *_act, struct sigaction *_oact) -{ - int retval = 0; - - if (_oact) - { - void (*installed_sig)(int) = signal (_sig, SIG_IGN); - - /* FIXME */ - if (installed_sig == SIG_ERR) - { - retval = -1; - errno = EINVAL; - } - else - signal (_sig, installed_sig); - _oact->sa_handler = installed_sig; - retval = sigemptyset (&_oact->sa_mask); - _oact->sa_flags = 0; - } - if (_act) - { - if (signal (_sig, _act->sa_handler) == SIG_ERR) - { - retval = -1; - errno = EINVAL; - } - } - return 0; -} - - - diff --git a/nextstep/ChangeLog b/nextstep/ChangeLog index 45a2dbf427c..3f731a5abdb 100644 --- a/nextstep/ChangeLog +++ b/nextstep/ChangeLog @@ -1,3 +1,29 @@ +2014-12-05 Sam Steingold + + * Makefile.in (links): Use abs_top_builddir et al; link over DOC. + +2014-12-03 Sam Steingold + + * Makefile.in (links): New phony target to create a fake + installation pointing back to the source tree to run GUI Emacs + in-place (http://article.gmane.org/gmane.emacs.devel:178330). + +2014-11-22 Glenn Morris + + * templates/Info-gnustep.plist.in: Let configure set URL. + +2014-11-03 Jan Djärv + + * INSTALL: Remove univeral binary section. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-12 Paul Eggert + + * README: Mac OS X 10.6 or later now required. + 2014-06-25 Glenn Morris * Makefile.in (${ns_appbindir}): New. diff --git a/nextstep/INSTALL b/nextstep/INSTALL index 63f52efdca9..6cb0ac9401f 100644 --- a/nextstep/INSTALL +++ b/nextstep/INSTALL @@ -2,6 +2,16 @@ Copyright (C) 2008-2014 Free Software Foundation, Inc. See the end of the file for license conditions. +Requirements +------------ +Mac OS X 10.6 or later + +- or - + +GNUstep "Startup 0.23" or later +Tested on GNU/Linux, may work on other systems. + + Compilation ----------- @@ -31,13 +41,6 @@ Installation Move nextstep/Emacs.app to any desired install location. -Distributions and Universal Binaries ------------------------------------- - -Building as outlined above will create ordinary binaries running on your -architecture only. To create universal binaries, set CFLAGS to include -"-arch ppc -arch i386". - This file is part of GNU Emacs. diff --git a/nextstep/Makefile.in b/nextstep/Makefile.in index 52f321109b7..a9850e972dc 100644 --- a/nextstep/Makefile.in +++ b/nextstep/Makefile.in @@ -8,12 +8,12 @@ ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 of the License, or ## (at your option) any later version. -## +## ## GNU Emacs 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 GNU Emacs. If not, see . @@ -23,8 +23,13 @@ SHELL = @SHELL@ srcdir = @srcdir@ +abs_builddir = @abs_builddir@ +abs_top_builddir = @abs_top_builddir@ EXEEXT = @EXEEXT@ +# abs_top_srcdir may contain ".." +top_srcdir_abs = $(shell cd @top_srcdir@; pwd -P) + @SET_MAKE@ MKDIR_P = @MKDIR_P@ @@ -50,10 +55,27 @@ ${ns_appbindir}/Emacs: ${ns_appdir} ${ns_check_file} ../src/emacs${EXEEXT} | \ ${ns_appbindir} cp -f ../src/emacs${EXEEXT} $@ -.PHONY: all +.PHONY: all links all: ${ns_appdir} ${ns_appbindir}/Emacs +# create a fake installation pointing back to the source tree +# to run GUI Emacs in-place +links : ../src/emacs${EXEEXT} | ${ns_appbindir} + for d in $(shell cd ${srcdir}/${ns_appsrc}; find . -type d); do ${MKDIR_P} ${ns_appdir}/$$d; done + for f in $(shell cd ${srcdir}/${ns_appsrc}; find . -type f); do ln -s $(shell cd ${srcdir}; pwd -P)/${ns_appsrc}/$$f ${ns_appdir}/$$f; done + for d in $(shell cd ${ns_appsrc}; find . -type d); do ${MKDIR_P} ${ns_appdir}/$$d; done + for f in $(shell cd ${ns_appsrc}; find . -type f); do ln -s $(shell cd ${ns_appsrc}; pwd -P)/$$f ${ns_appdir}/$$f; done + ln -s $(top_srcdir_abs)/lisp ${ns_appdir}/Contents/Resources + ln -s $(top_srcdir_abs)/info ${ns_appdir}/Contents/Resources + ln -s $(abs_top_builddir)/src/emacs${EXEEXT} ${ns_appbindir}/Emacs + ln -s $(abs_top_builddir)/lib-src ${ns_appbindir}/bin + ln -s $(abs_top_builddir)/lib-src ${ns_appbindir}/libexec + ${MKDIR_P} ${ns_appdir}/Contents/Resources/etc + for f in $(shell cd $(top_srcdir_abs)/etc; ls); do ln -s $(top_srcdir_abs)/etc/$$f ${ns_appdir}/Contents/Resources/etc; done + ln -s $(abs_top_builddir)/etc/DOC ${ns_appdir}/Contents/Resources/etc + @echo if the next find prints something, the installation failed + find ${ns_appdir} -exec test \! -e {} \; -ls .PHONY: clean distclean bootstrap-clean maintainer-clean diff --git a/nextstep/README b/nextstep/README index fdfa15ffd9d..45b9b23ee10 100644 --- a/nextstep/README +++ b/nextstep/README @@ -1,37 +1,4 @@ -Copyright (C) 2008-2014 Free Software Foundation, Inc. -See the end of the file for license conditions. - -This directory contains the files needed to build Emacs on -Nextstep-based platforms, including GNUstep and Mac OS X. - -The Nextstep support code works on many POSIX systems (and possibly -W32) using the GNUstep libraries, and on MacOS X systems using the -Cocoa libraries. +This directory contains files needed to build Emacs on Nextstep-based +platforms, including GNUstep and Mac OS X (using the Cocoa libraries). See the INSTALL file in this directory for compilation instructions. - -Requirements ------------- -MacOS X 10.4 or later - -- or - - -GNUstep "Startup 0.23" or later -Tested on GNU/Linux, should work on other systems, perhaps with minor -build tweaking. - - -This file is part of GNU Emacs. - -GNU Emacs 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 3 of the License, or -(at your option) any later version. - -GNU Emacs 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 GNU Emacs. If not, see . diff --git a/nextstep/templates/Info-gnustep.plist.in b/nextstep/templates/Info-gnustep.plist.in index 42abc235761..679eb4fa435 100644 --- a/nextstep/templates/Info-gnustep.plist.in +++ b/nextstep/templates/Info-gnustep.plist.in @@ -132,5 +132,5 @@ }; }, ); - URL = "http://www.gnu.org/software/emacs"; + URL = "@PACKAGE_URL@"; } diff --git a/nt/.gitignore b/nt/.gitignore deleted file mode 100644 index 4e2fa24e12e..00000000000 --- a/nt/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -config.log -stamp_BLD - -oo/ -oo-spd/ diff --git a/nt/ChangeLog b/nt/ChangeLog index 9c7328e9175..1edfda0ffd2 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,66 @@ +2014-12-13 Eli Zaretskii + + * gnulib.mk (stddef.h): Sync with the latest change in lib/gnulib.mk. + +2014-11-27 Oscar Fuentes + + * inc/ms-w32.h: Define MINGW_W64. + * nt/addpm.c, nt/addsection.c, nt/preprep.c: Use it. + +2014-11-24 Glenn Morris + + * Makefile.in (../src/emacs.res): New target. + +2014-11-22 Glenn Morris + + * emacs.rc.in, emacsclient.rc.in: Rename from emacs.rc, emacsclient.rc. + Let configure generate the real files, and set the version numbers. + * Makefile.in (distclean): Delete *.rc. + (emacs.res): Update deps for nt/emacsclient.rc now being in the + build directory, not the source directory. + + * Makefile.in (emacs.res): Add dependency on icons/hand.cur. + +2014-11-18 Glenn Morris + + * Makefile.in (addpm${EXEEXT}, ddeclient${EXEEXT}) + (cmdproxy${EXEEXT}, runemacs${EXEEXT}, emacs.res): + Use automatic variables. + +2014-10-26 Dani Moncayo + + * README.W32 (Preliminaries): Don't assume that this file is at + the top level. + (Setting up Emacs): Minor rewording to be more accurate. + +2014-10-25 Eric S. Raymond + + * Neutralize language specific to a repository type. + +2014-10-22 Noam Postavsky + + * nt/cmdproxy.c (batch_file_p): New function. + (spawn): If calling a quoted batch file pass NULL for progname. + (Bug#18745) + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-09-29 Eli Zaretskii + + * makefile.w32-in (VERSION): Bump version to 25.0.50. + + * emacsclient.rc: Bump version to 25.0.50. + + * emacs.rc: Bump version to 25.0.50. + + * config.nt (VERSION): Bump version to 25.0.50. + +2014-09-01 Eli Zaretskii + + * gnulib.mk: Synchronize with lib/gnulib.mk. + 2014-06-15 Glenn Morris * Makefile.in (LDFLAGS): Explicitly set via configure. @@ -18,8 +81,7 @@ * Makefile.in (DONT_INSTALL): Now empty. (addsection${EXEEXT}): Remove target. - - * addsection.c: File removed. + * addsection.c: Remove file. 2014-05-27 Fabrice Popineau @@ -1799,7 +1861,7 @@ * config.nt (HAVE_FACES): Remove, unused. 2008-06-26 Juanma Barranquero - Eli Zaretskii + Eli Zaretskii * nmake.defs (FONT_CFLAGS): * gmake.defs (FONT_CFLAGS): Remove. @@ -1815,7 +1877,7 @@ * config.nt: Remove reference to UNEXEC_SRC. 2008-06-23 Juanma Barranquero - Eli Zaretskii + Eli Zaretskii * gmake.defs (DEBUG_FLAG, DEBUG_LINK) [!NODEBUG]: Don't hardcode -gstabs+, use DEBUG_INFO. diff --git a/nt/INSTALL b/nt/INSTALL index 8b764f7ba2a..1366d5979db 100644 --- a/nt/INSTALL +++ b/nt/INSTALL @@ -169,7 +169,7 @@ build will run on Windows 9X and newer systems). you are building from the repository: . Texinfo (needed to produce the Info manuals when building from - bzr/git, and for "make install") + the repository, and for "make install") Available from http://sourceforge.net/projects/ezwinports/files/. diff --git a/nt/INSTALL.OLD b/nt/INSTALL.OLD index 20162de8b3e..3e4ab27bd7c 100644 --- a/nt/INSTALL.OLD +++ b/nt/INSTALL.OLD @@ -126,7 +126,7 @@ http://sourceforge.net/projects/ezwinports/files/ In addition to this file, if you build a development snapshot, you - should also read INSTALL.BZR in the parent directory. + should also read INSTALL.REPO in the parent directory. * Supported development environments @@ -575,7 +575,7 @@ * Creating binary distributions Binary distributions (full and barebin distributions) can be - automatically built and packaged from source tarballs or a bzr + automatically built and packaged from source tarballs or a repository checkout. When building Emacs binary distributions, the --distfiles argument diff --git a/nt/Makefile.in b/nt/Makefile.in index be5bae536f1..56e3e82ac80 100644 --- a/nt/Makefile.in +++ b/nt/Makefile.in @@ -195,8 +195,7 @@ clean: mostlyclean -rm -f ${EXE_FILES} distclean: clean - -rm -f TAGS - -rm -f Makefile + -rm -f TAGS Makefile *.rc bootstrap-clean maintainer-clean: distclean true @@ -214,17 +213,18 @@ TAGS: ${EXE_FILES:${EXEEXT}=.c} ## Build the programs addpm${EXEEXT}: ${srcdir}/addpm.c ../src/epaths.h - $(CC) ${ALL_CFLAGS} ${srcdir}/addpm.c $(LIBS_ADDPM) -o addpm${EXEEXT} + $(CC) ${ALL_CFLAGS} $< $(LIBS_ADDPM) -o $@ ddeclient${EXEEXT}: ${srcdir}/ddeclient.c - $(CC) ${ALL_CFLAGS} ${srcdir}/ddeclient.c -o ddeclient${EXEEXT} + $(CC) ${ALL_CFLAGS} $< -o $@ cmdproxy${EXEEXT}: ${srcdir}/cmdproxy.c - $(CC) ${ALL_CFLAGS} ${srcdir}/cmdproxy.c -o cmdproxy${EXEEXT} + $(CC) ${ALL_CFLAGS} $< -o $@ runemacs${EXEEXT}: ${srcdir}/runemacs.c $(EMACSRES) - $(CC) ${ALL_CFLAGS} ${srcdir}/runemacs.c $(EMACSRES) -mwindows \ - -o runemacs${EXEEXT} + $(CC) ${ALL_CFLAGS} $^ -mwindows -o $@ -emacs.res: ${srcdir}/emacs.rc ${srcdir}/icons/emacs.ico ${srcdir}/$(EMACS_MANIFEST) - ${WINDRES} -I ${srcdir} -O coff -o emacs.res ${srcdir}/emacs.rc +## Also used in ../src/Makefile. +emacs.res ../src/emacs.res: emacs.rc ${srcdir}/icons/emacs.ico \ + ${srcdir}/icons/hand.cur ${srcdir}/$(EMACS_MANIFEST) + ${WINDRES} -I ${srcdir} -O coff -o $@ $< diff --git a/nt/README.W32 b/nt/README.W32 index c4e4cf351d4..4d59c6f0ae2 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -21,13 +21,16 @@ See the end of the file for license conditions. * Preliminaries - Along with this file should be four subdirectories (bin, libexec, - share, and var). + The binary distribution has these top-level directories: + + bin + + libexec + + share + + var * Setting up Emacs - To install Emacs, simply unpack all the files into a directory of - your choice. To complete the installation process, you can + To install Emacs, simply unpack the binary package into a directory + of your choice. To complete the installation process, you can optionally run the program addpm.exe in the bin subdirectory. This will put an icon for Emacs in the Start Menu under "Start -> Programs -> Gnu Emacs". @@ -220,7 +223,7 @@ See the end of the file for license conditions. key in HKEY_CURRENT_USER. Just delete the whole Software\GNU\Emacs key. - The Start menu entry can be removed by right-clicking on the Task bar + The Start menu entry can be removed by right-clicking on the Taskbar and selecting Properties, then using the Remove option on the Start Menu Programs page. (If you installed under an account with administrator privileges, then you need to click the Advanced button diff --git a/nt/addpm.c b/nt/addpm.c index 18057b58b49..f7cfba39d08 100644 --- a/nt/addpm.c +++ b/nt/addpm.c @@ -38,9 +38,8 @@ along with GNU Emacs. If not, see . */ #include #include -/* MinGW64 defines _W64 and barfs if _WIN32_IE is defined to anything - below 0x500. */ -#ifndef _W64 +/* MinGW64 barfs if _WIN32_IE is defined to anything below 0x500. */ +#ifndef MINGW_W64 #define _WIN32_IE 0x400 #endif /* Request C Object macros for COM interfaces. */ diff --git a/nt/cmdproxy.c b/nt/cmdproxy.c index e48ca63a257..d8f7ae3c41e 100644 --- a/nt/cmdproxy.c +++ b/nt/cmdproxy.c @@ -220,6 +220,28 @@ get_next_token (char * buf, const char ** pSrc) return o - buf; } +/* Return TRUE if PROGNAME is a batch file. */ +BOOL +batch_file_p (const char *progname) +{ + const char *exts[] = {".bat", ".cmd"}; + int n_exts = sizeof (exts) / sizeof (char *); + int i; + + const char *ext = strrchr (progname, '.'); + + if (ext) + { + for (i = 0; i < n_exts; i++) + { + if (stricmp (ext, exts[i]) == 0) + return TRUE; + } + } + + return FALSE; +} + /* Search for EXEC file in DIR. If EXEC does not have an extension, DIR is searched for EXEC with the standard extensions appended. */ int @@ -470,6 +492,13 @@ spawn (const char *progname, char *cmdline, const char *dir, int *retcode) memset (&start, 0, sizeof (start)); start.cb = sizeof (start); + /* CreateProcess handles batch files as progname specially. This + special handling fails when both the batch file and arguments are + quoted. We pass NULL as progname to avoid the special + handling. */ + if (progname != NULL && cmdline[0] == '"' && batch_file_p (progname)) + progname = NULL; + if (CreateProcess (progname, cmdline, &sec_attrs, NULL, TRUE, 0, envblock, dir, &start, &child)) { diff --git a/nt/config.nt b/nt/config.nt index 004a7381fb5..8040ecc373e 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -1576,7 +1576,7 @@ along with GNU Emacs. If not, see . */ #undef USG_SUBTTY_WORKS /* Version number of package */ -#define VERSION "24.4.50" +#define VERSION "25.0.50" /* Define to 1 if unsetenv returns void instead of int. */ #undef VOID_UNSETENV diff --git a/nt/emacs.rc b/nt/emacs.rc.in similarity index 84% rename from nt/emacs.rc rename to nt/emacs.rc.in index 2d007ba9043..d2d17b8eb1b 100644 --- a/nt/emacs.rc +++ b/nt/emacs.rc.in @@ -11,8 +11,8 @@ Emacs ICON icons/emacs.ico #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 24,4,50,0 - PRODUCTVERSION 24,4,50,0 + FILEVERSION @comma_version@ + PRODUCTVERSION @comma_version@ FILEFLAGSMASK 0x3FL #ifdef EMACSDEBUG FILEFLAGS 0x1L @@ -29,12 +29,12 @@ BEGIN BEGIN VALUE "CompanyName", "Free Software Foundation\0" VALUE "FileDescription", "GNU Emacs: The extensible self-documenting text editor\0" - VALUE "FileVersion", "24, 4, 50, 0\0" + VALUE "FileVersion", "@comma_space_version@\0" VALUE "InternalName", "Emacs\0" VALUE "LegalCopyright", "Copyright (C) 2001-2014\0" VALUE "OriginalFilename", "emacs.exe" VALUE "ProductName", "Emacs\0" - VALUE "ProductVersion", "24, 4, 50, 0\0" + VALUE "ProductVersion", "@comma_space_version@\0" VALUE "OLESelfRegister", "\0" END END diff --git a/nt/emacsclient.rc b/nt/emacsclient.rc.in similarity index 82% rename from nt/emacsclient.rc rename to nt/emacsclient.rc.in index 7e5d2e4c0f1..5c3b65d752f 100644 --- a/nt/emacsclient.rc +++ b/nt/emacsclient.rc.in @@ -5,8 +5,8 @@ Emacs ICON icons\emacs.ico #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 24,4,50,0 - PRODUCTVERSION 24,4,50,0 + FILEVERSION @comma_version@ + PRODUCTVERSION @comma_version@ FILEFLAGSMASK 0x3FL #ifdef EMACSDEBUG FILEFLAGS 0x1L @@ -23,12 +23,12 @@ BEGIN BEGIN VALUE "CompanyName", "Free Software Foundation\0" VALUE "FileDescription", "GNU EmacsClient: Client for the extensible self-documenting text editor\0" - VALUE "FileVersion", "24, 4, 50, 0\0" + VALUE "FileVersion", "@comma_space_version@\0" VALUE "InternalName", "EmacsClient\0" VALUE "LegalCopyright", "Copyright (C) 2001-2014\0" VALUE "OriginalFilename", "emacsclientw.exe" VALUE "ProductName", "EmacsClient\0" - VALUE "ProductVersion", "24, 4, 50, 0\0" + VALUE "ProductVersion", "@comma_space_version@\0" VALUE "OLESelfRegister", "\0" END END diff --git a/nt/gnulib.mk b/nt/gnulib.mk index 7c2cceb959f..273f52293cc 100644 --- a/nt/gnulib.mk +++ b/nt/gnulib.mk @@ -43,7 +43,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv utimens warnings +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=stdarg --avoid=stdbool --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt binary-io byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv update-copyright utimens vla warnings MOSTLYCLEANFILES += core *.stackdump @@ -55,6 +55,15 @@ libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) EXTRA_libgnu_a_SOURCES = +## begin gnulib module absolute-header + +# Use this preprocessor expression to decide whether #include_next works. +# Do not rely on a 'configure'-time test for this, since the expression +# might appear in an installed header, which is used by some other compiler. +HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER) + +## end gnulib module absolute-header + ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) @@ -78,6 +87,12 @@ EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt +## begin gnulib module binary-io + +libgnu_a_SOURCES += binary-io.h binary-io.c + +## end gnulib module binary-io + ## begin gnulib module byteswap BUILT_SOURCES += $(BYTESWAP_H) @@ -141,7 +156,7 @@ EXTRA_DIST += count-trailing-zeros.h libgnu_a_SOURCES += md5.c -EXTRA_DIST += md5.h +EXTRA_DIST += gl_openssl.h md5.h ## end gnulib module crypto/md5 @@ -149,7 +164,7 @@ EXTRA_DIST += md5.h libgnu_a_SOURCES += sha1.c -EXTRA_DIST += sha1.h +EXTRA_DIST += gl_openssl.h sha1.h ## end gnulib module crypto/sha1 @@ -157,7 +172,7 @@ EXTRA_DIST += sha1.h libgnu_a_SOURCES += sha256.c -EXTRA_DIST += sha256.h +EXTRA_DIST += gl_openssl.h sha256.h ## end gnulib module crypto/sha256 @@ -165,7 +180,7 @@ EXTRA_DIST += sha256.h libgnu_a_SOURCES += sha512.c -EXTRA_DIST += sha512.h +EXTRA_DIST += gl_openssl.h sha512.h ## end gnulib module crypto/sha512 @@ -335,6 +350,17 @@ EXTRA_libgnu_a_SOURCES += fsync.c ## end gnulib module fsync +## begin gnulib module getdtablesize + +if gl_GNULIB_ENABLED_getdtablesize + +endif +EXTRA_DIST += getdtablesize.c + +EXTRA_libgnu_a_SOURCES += getdtablesize.c + +## end gnulib module getdtablesize + ## begin gnulib module getgroups if gl_GNULIB_ENABLED_getgroups @@ -416,13 +442,6 @@ EXTRA_libgnu_a_SOURCES += group-member.c ## end gnulib module group-member -## begin gnulib module ignore-value - - -EXTRA_DIST += ignore-value.h - -## end gnulib module ignore-value - ## begin gnulib module intprops @@ -686,6 +705,7 @@ stddef.h: stddef.in.h $(top_builddir)/config.status -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ + -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ @@ -854,6 +874,13 @@ EXTRA_libgnu_a_SOURCES += unsetenv.c ## end gnulib module unsetenv +## begin gnulib module update-copyright + + +EXTRA_DIST += $(top_srcdir)/build-aux/update-copyright + +## end gnulib module update-copyright + ## begin gnulib module utimens libgnu_a_SOURCES += utimens.c @@ -868,6 +895,13 @@ EXTRA_DIST += verify.h ## end gnulib module verify +## begin gnulib module vla + + +EXTRA_DIST += vla.h + +## end gnulib module vla + ## begin gnulib module xalloc-oversized if gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h index edb143c68d4..e54ab87c7eb 100644 --- a/nt/inc/ms-w32.h +++ b/nt/inc/ms-w32.h @@ -26,6 +26,16 @@ along with GNU Emacs. If not, see . */ #include +/* MinGW-w64 gcc does not automotically define a macro for + differentiating it fom MinGW gcc. We need to test the presence of + __MINGW64_VERSION_MAJOR in _mingw.h: */ +#ifdef __MINGW32__ +# include <_mingw.h> +# ifdef __MINGW64_VERSION_MAJOR +# define MINGW_W64 +# endif +#endif + /* #undef const */ /* Number of chars of output in the buffer of a stdio stream. */ @@ -139,8 +149,7 @@ extern char *getenv (); versions we still support. MinGW64 defines this to a higher value in its system headers, and is not really compatible with values lower than 0x0500, so leave it alone. */ -#ifndef _W64 -# undef _WIN32_WINNT +#ifndef MINGW_W64 # define _WIN32_WINNT 0x0400 #endif @@ -167,7 +176,7 @@ extern char *getenv (); #ifdef emacs -#ifdef _W64 +#ifdef MINGW_W64 /* MinGW64 specific stuff. */ /* Make sure 'struct timespec' and 'struct timezone' are defined. */ #include @@ -370,7 +379,7 @@ typedef int sigset_t; typedef int ssize_t; #endif -#ifdef _W64 /* MinGW64 */ +#ifdef MINGW_W64 #ifndef _POSIX typedef _sigset_t sigset_t; #endif diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index 59da03434e9..0770ad986f6 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in @@ -22,7 +22,7 @@ # FIXME: This file uses DOS EOLs. Convert to Unix after 22.1 is out # (and remove or replace this comment). -VERSION = 24.4.50 +VERSION = 25.0.50 TMP_DIST_DIR = emacs-$(VERSION) diff --git a/nt/preprep.c b/nt/preprep.c index fda937df0e0..39a9b70e953 100644 --- a/nt/preprep.c +++ b/nt/preprep.c @@ -25,7 +25,7 @@ along with GNU Emacs. If not, see . #include #include #include -#if defined(__GNUC__) && !defined(_W64) +#if defined(__GNUC__) && !defined(MINGW_W64) #define _ANONYMOUS_UNION #define _ANONYMOUS_STRUCT #endif diff --git a/nt/zipdist.bat b/nt/zipdist.bat index 216949aaddd..d5359c8be5e 100644 --- a/nt/zipdist.bat +++ b/nt/zipdist.bat @@ -36,7 +36,7 @@ goto EXIT rem Build and verify the binary distribution :ZIP_DIST -7z a -bd -tZIP -mx=9 -x!.bzrignore -x!.gitignore -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory emacs-%EMACS_VER%-bin-i386.zip %TMP_DIST_DIR% +7z a -bd -tZIP -mx=9 -x!.gitignore -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory emacs-%EMACS_VER%-bin-i386.zip %TMP_DIST_DIR% 7z t emacs-%EMACS_VER%-bin-i386.zip goto EXIT diff --git a/oldXMenu/.gitignore b/oldXMenu/.gitignore deleted file mode 100644 index f3c7a7c5da6..00000000000 --- a/oldXMenu/.gitignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/oldXMenu/ChangeLog b/oldXMenu/ChangeLog index 1d98a544d25..cb873f6c4eb 100644 --- a/oldXMenu/ChangeLog +++ b/oldXMenu/ChangeLog @@ -1,3 +1,19 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-09-04 Paul Eggert + + Less chatter in 'make' output. + * Makefile.in (clean mostlyclean): Simplify, for shorter command line. + +2014-09-01 Paul Eggert + + --enable-silent-rules now suppresses more chatter. + * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_) + (am__v_CC_0, am__v_CC_1): New macros, taken from Automake. + (.c.o): Use them. + 2014-07-12 Dmitry Antipov * XMenuInt.h (XDeleteAssoc): Remove duplicated prototype to @@ -82,8 +98,8 @@ (MAX_INACT_PNUM, TILE_BUF_SIZE): Remove; unused. (x_get_resource_string): Args are readonly. (XAllocDisplayColor): colorName is readonly. - (XMenuCreate): def_env is readonly. Remove unused locals. Avoid - "else;". + (XMenuCreate): def_env is readonly. Remove unused locals. + Avoid "else;". * Destroy.c (XMenuDestroy): Return void. * Error.c (XMenuError): Remove const pointer. * EvHand.c (XMenuEventHandler): Return void. @@ -338,7 +354,7 @@ 1995-02-07 Richard Stallman - * Makefile.in (maintainer-clean): Renamed from realclean. + * Makefile.in (maintainer-clean): Rename from realclean. 1994-10-25 Richard Stallman @@ -418,8 +434,8 @@ 1993-09-27 Brian J. Fox (bfox@valhalla) - * Makefile.in (CPP, LN_S, C_SWITCH_X_SITE, CC, CFLAGS): Allow - `configure' to supply the values for these variables. + * Makefile.in (CPP, LN_S, C_SWITCH_X_SITE, CC, CFLAGS): + Allow `configure' to supply the values for these variables. 1993-09-26 Brian J. Fox (bfox@ai.mit.edu) @@ -624,7 +640,7 @@ * XDelAssoc.c, XLookAssoc.c, XCrAssoc.c, XDestAssoc.c, XMakeAssoc.c: Use Xlib.h, not Xlibint.h. - * XLookAssoc.c, XMakeAssoc.c, XCrAssoc.c (NULL): Defined. + * XLookAssoc.c, XMakeAssoc.c, XCrAssoc.c (NULL): Define. * XMakeAssoc.c, XCrAssoc.c: Include errno.h. Declare errno. * XMakeAssoc.c (_XIOErrorFunction): Declared. diff --git a/oldXMenu/Makefile.in b/oldXMenu/Makefile.in index bfa7d97912a..3e1d49d2ea3 100644 --- a/oldXMenu/Makefile.in +++ b/oldXMenu/Makefile.in @@ -93,6 +93,14 @@ OBJS = Activate.o \ all: libXMenu11.a .PHONY: all +# 'make' verbosity. +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ + +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = + DEPDIR = deps ## -MMD -MF $(DEPDIR)/$*.d if AUTO_DEPEND; else empty. DEPFLAGS = @DEPFLAGS@ @@ -107,7 +115,7 @@ ALL_CFLAGS=$(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) \ .c.o: @$(MKDEPDIR) - $(CC) -c ${ALL_CFLAGS} $< + $(AM_V_CC)$(CC) -c ${ALL_CFLAGS} $< libXMenu11.a: $(OBJS) $(EXTRA) $(RM) $@ @@ -120,7 +128,7 @@ libXMenu11.a: $(OBJS) $(EXTRA) .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean clean mostlyclean: - rm -f libXMenu11.a ${OBJS} ${EXTRA} + rm -f libXMenu11.a *.o -rm -rf ${DEPDIR} bootstrap-clean maintainer-clean distclean: clean diff --git a/src/.gdbinit b/src/.gdbinit index b91575daecb..d259aa466e3 100644 --- a/src/.gdbinit +++ b/src/.gdbinit @@ -468,18 +468,18 @@ define pgx end # GLYPHLESS_GLYPH if ($g.type == 2) - printf "GLYPHLESS[" + printf "G-LESS[" if ($g.u.glyphless.method == 0) - printf "THIN]" + printf "THIN;0x%x]", $g.u.glyphless.ch end if ($g.u.glyphless.method == 1) - printf "EMPTY]" + printf "EMPTY;0x%x]", $g.u.glyphless.ch end if ($g.u.glyphless.method == 2) - printf "ACRO]" + printf "ACRO;0x%x]", $g.u.glyphless.ch end if ($g.u.glyphless.method == 3) - printf "HEX]" + printf "HEX;0x%x]", $g.u.glyphless.ch end end # IMAGE_GLYPH @@ -498,7 +498,7 @@ define pgx printf " pos=%d", $g.charpos end # For characters, print their resolved level and bidi type - if ($g.type == 0) + if ($g.type == 0 || $g.type == 2) printf " blev=%d,btyp=", $g.resolved_level pbiditype $g.bidi_type end diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index ebacd571ddd..00000000000 --- a/src/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -buildobj.h -config.h -epaths.h -stamp_BLD -stamp-h.in - -oo/ -oo-spd/ diff --git a/src/ChangeLog b/src/ChangeLog index f3ab7f9b990..f6647826463 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,3100 @@ +2014-12-22 Jan Djärv + + * xterm.c (x_bitmap_icon): Partly revert change from 2014-03-21 which + breaks icon setting for Gtk+ except for initial frame (Bug#19403). + +2014-12-22 Paul Eggert + + Use bool for boolean in xterm.c + * frame.h, nsterm.m, w32term.c, w32term.h, xterm.c: + (x_set_window_size, x_bitmap_icon): + * nsterm.m (ns_frame_raise_lower, x_new_font): + * termhooks.h (struct terminal.toggle_invisible_pointer_hook) + (struct terminal.frame_raise_lower_hook): + * w32term.c (w32_frame_raise_lower): + * xterm.c, xterm.h (x_text_icon): + * xterm.c (x_update_window_begin, x_update_window_end) + (x_update_end, x_after_update_window_line) + (x_set_glyph_string_gc, x_draw_glyph_string_background) + (x_draw_glyph_string_foreground) + (x_draw_composite_glyph_string_foreground) + (x_alloc_lighter_color, x_draw_relief_rect) + (x_draw_glyph_string_box, x_draw_image_relief) + (x_draw_image_glyph_string, x_draw_stretch_glyph_string) + (x_draw_underwave, x_draw_glyph_string, x_show_hourglass) + (x_hide_hourglass): + (XFillRectangle) [HAVE_GTK3]: + (XTtoggle_invisible_pointer, frame_highlight, frame_unhighlight) + (x_focus_changed, x_find_modifier_meanings, note_mouse_movement) + (XTmouse_position, xt_action_hook, xt_horizontal_action_hook) + (x_send_scroll_bar_event, xm_scroll_callback) + (xg_scroll_callback, xaw_jump_callback, xaw_scroll_callback) + (x_create_toolkit_scroll_bar) + (x_create_horizontal_toolkit_scroll_bar) + (x_set_toolkit_horizontal_scroll_bar_thumb, x_scroll_bar_create) + (x_scroll_bar_set_handle, XTset_vertical_scroll_bar) + (XTset_horizontal_scroll_bar, x_scroll_bar_expose) + (x_scroll_bar_handle_click, x_scroll_bar_note_movement) + (x_scroll_bar_report_motion) + (x_horizontal_scroll_bar_report_motion, x_net_wm_state) + (handle_one_xevent, XTread_socket, x_draw_bar_cursor) + (x_draw_window_cursor, x_clear_errors) + (x_trace_wire, x_new_font, x_set_offset, wm_supports) + (set_wm_state, x_set_sticky, get_current_wm_state) + (do_ewmh_fullscreen, x_handle_net_wm_state) + (x_check_expected_move, x_sync_with_move, x_wait_for_event) + (x_set_window_size_1, XTframe_raise_lower) + (x_make_frame_visible, x_iconify_frame) + (x_timeout_atimer_activated_flag, same_x_server, x_display_ok) + (x_term_init, x_process_timeouts, x_activate_timeout_atimer) + (x_delete_terminal, x_initialize, syms_of_xterm): + Use bool for boolean. + +2014-12-20 Paul Eggert + + * composite.h (struct composition.width): Now int + instead of unsigned short, as we prefer signed integers. + + Let charset tick grow past USHRT_MAX + * charset.c, charset.h (charset_ordered_list_tick): + Now EMACS_UINT, not unsigned short. + * fontset.c (reorder_font_vector): Allow the tick to grow to the + maximum representable Emacs integer value before wrapping it around. + + Simplify unexec file mode setting + * unexaix.c, unexcoff.c, unexelf.c, unexmacosx.c: + Don't include when no longer needed. + (unexec): Create file with correct mode in the first place, + rather than overwriting the mode later and fiddling with the + global umask in the mean time. Avoid bogus usage like + 'umask (777)', which should have been 'umask (0777)'. + (mark_x): Remove. All callers removed. + +2014-12-19 Paul Eggert + + Minor cleanups for Lisp objects and symbols + * alloc.c (next_vector, set_next_vector): + * lisp.h (lisp_h_INTEGERP, make_number, XFASTINT, make_natnum): + (lisp_h_make_number) [USE_LSB_TAG]: + Use Lisp_Int0 instead of the mystery constant 0. + * alloc.c (mark_object): Always set and use po; that's simpler. + (CHECK_LIVE, CHECK_ALLOCATED_AND_LIVE): + Properly parenthesize definientia. + * bidi.c (bidi_initialize): + * buffer.c (init_buffer_once): + * nsfns.m (syms_of_nsfns): + * nsmenu.m (syms_of_nsmenu): + * nsselect.m (syms_of_nsselect): + Prefer DEFSYM to defining by hand. + * buffer.c (syms_of_buffer): Omit unneeded staticpros. + * data.c: Fix too-long line. + * lisp.h (DECLARE_GDB_SYM): New macro. + (DEFINE_GDB_SYMBOL_BEGIN): Use it. + (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END) [!MAIN_PROGRAM]: + Declare the symbol, so it's visible to everywhere lisp.h is included. + Move forward decls as far forward as they can go, + to allow future changes to use them. + +2014-12-18 Paul Eggert + + * gnutls.c: Include gnutls.h. + This to check syms_of_gnutls's API even when !HAVE_GNUTLS. + * image.c (svg_load): Fix pointer signedness. + +2014-12-18 Martin Rudalics + + * frame.c (frame_windows_min_size): New argument IGNORE. + (adjust_frame_size): When called from change_frame_size call + frame_windows_min_size with IGNORE Qt so we can ignore size + restrictions. + +2014-12-18 Eli Zaretskii + + * font.c (Ffont_info): Add more font information to the vector + returned by the function, inspired by query-font. Doc fix. + (Bug#19395) + +2014-12-18 Stefan Monnier + + * keyboard.c (input_was_pending): New var. + (read_char): Use it to make sure we only skip redisplay when we can't + keep up with the repeat rate. + +2014-12-17 Stefan Monnier + + * keyboard.c (swallow_events): Don't redisplay if there's input pending. + +2014-12-17 Ulf Jasper + + * image.c (svg_load): Watch out for nil value of current buffer's + filename. Re-enable filename thing for not-a-file case. + +2014-12-17 Ulf Jasper + + Partially disabled previous change. + + * image.c (svg_load): Temporarily disabled filename thing for + not-a-file case as it can cause crashs. + +2014-12-17 Ulf Jasper + + Fix problem with images referenced within svg files. (bug#19373) + + * image.c: Additional parameter 'filename' for + svg_load_image. Include "buffer.h". Define library function + rsvg_handle_set_base_uri for WINDOWSNT. + (init_svg_functions): Initialize rsvg_handle_set_base_uri. + (fn_rsvg_handle_set_base_uri): Define fn_rsvg_handle_set_base_uri. + (svg_load): Pass a filename to svg_load_image: either name of + actual file or of current buffer's file. + (svg_load_image): New parameter 'filename', used for setting + base_uri, necessary for loading referenced images. (bug#19373) + +2014-12-16 Paul Eggert + + * lread.c (init_obarray): Declare Qt as special. + This fixes a typo in the 2012-05-15 patch that + tried to declare Qt as special. + +2014-12-15 Stefan Monnier + + Various fixes to use bool type and constants. + * dispnew.c (update_single_window): Remove arg `force_p' since it's + always true. + * xfaces.c (clear_face_cache): Use bool for the argument type. + +2014-12-15 Paul Eggert + + Correct same_at_end when restoring window points + * fileio.c (Finsert_file_contents): Compute same_at_end character + position using the old buffer size, not the new one, since + restore_window_points wants the old size. + Fixes: debbugs:19161 + +2014-12-14 Alan Mackenzie + + New feature optionally to accelerate auto-repeated scrolling. + + * xdisp.c: Remove "static" from declaration of Qfontification_functions. + + * window.c (window_scroll): Bind fontification-functions to nil + when scrolling by whole screens and + fast-but-imprecise-scrolling is non-nil. + (syms_of_window): New DEFVAR_BOOL fast-but-imprecise-scrolling. + + * lisp.h (bool): Declare Qfontification_functions extern. + +2014-12-14 Eli Zaretskii + + Load system's default trusted Certificate Authorities if available. + * gnutls.c (gnutls_certificate_set_x509_system_trust) + [GNUTLS >= 3.0.20]: Declare for WINDOWSNT. + (init_gnutls_functions)(gnutls_certificate_set_x509_system_trust) + [GNUTLS >= 3.0.20]: Load from shared library for WINDOWSNT. + (fn_gnutls_certificate_set_x509_system_trust) [!WINDOWSNT]: + Define new macro. + (Fgnutls_boot) [GNUTLS >= 3.0.20]: + Call gnutls_certificate_set_x509_system_trust. Log an error message if + it fails. + +2014-12-13 Paul Eggert + + * alloc.c (XMALLOC_BASE_ALIGNMENT): Use max_align_t instead of + a hack involving a union. + +2014-12-13 Eli Zaretskii + + * gnutls.c (Fgnutls_available_p, syms_of_gnutls): + Move gnutls-available-p out of the HAVE_GNUTLS conditional, and define + them only once. + +2014-12-13 Teodor Zlatanov + + * emacs.c (main): Always include gnutls.h and run syms_of_gnutls. + + * gnutls.h: Always declare syms_of_gnutls. + + * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for + clarity. Let the availability check return Qnil when the GnuTLS + integration is not available, instead of erroring out. + (Bug#19346) + +2014-12-13 Eli Zaretskii + + * xdisp.c (move_it_in_display_line_to, display_line): + Don't disallow overflow-newline-into-fringe when word-wrap is in + effect. (Bug#19300) + +2014-12-11 Stefan Monnier + + * fileio.c: Better preserve window-points during revert (bug#19161). + (Qget_buffer_window_list): New var. + (get_window_points_and_markers, restore_window_points): New functions. + (Finsert_file_contents): Use them to save and restore window-points. + +2014-12-11 Dmitry Antipov + + * xterm.c (x_delete_terminal): Call emacs_close for X connection + descriptor if called from x_connection_closed and always delete + this descriptor from keyboard waiting set (Bug#19147). + +2014-12-10 Eli Zaretskii + + * bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT): New macro. + (bidi_cache_max_elts): New global variable. + (bidi_shelve_header_size): Add the sizeof bidi_cache_max_elts. + (bidi_cache_shrink, bidi_initialize): Reset bidi_cache_max_elts to + its initial value. + (bidi_cache_search): Handle overflown cache. Improve commentary. + (bidi_cache_ensure_space): Limit allocations to the current value + of bidi_cache_max_elts. Force xpalloc not to over-allocate. + If less than a full BIDI_CACHE_CHUNK is left to the limit, decrease + the increment to not exceed the limit. + (bidi_cache_iterator_state): Now returns non-zero if succeeded to + cache, zero otherwise (meaning the cache overflowed). In the + latter case, set bidi_cache_last_idx to -1. + (bidi_peek_at_next_level): Handle overflown cache. + (bidi_push_it): Increase the cache limit for iterating the new object. + (bidi_pop_it): Decrease the cache limit back to previous value. + (bidi_shelve_cache): Shelve the current value of the cache limit. + (bidi_unshelve_cache): Restore the value of cache limit. + (bidi_find_bracket_pairs): If the cache overflows while looking + for the paired bracket, give up and let bidi_resolve_neutrals + process the bracket as a simple neutral. (Bug#19322) + (bidi_find_other_level_edge): If the cache overflows, fall back on + Plan B, which effectively stops the reordering and restarts it on + the next character (after resetting the cache). + (bidi_move_to_visually_next): When the cache overflows, reset it + after processing the last cached character. + +2014-12-10 Paul Eggert + + Fix glitches in gnutls.c, mostly memory-related + * gnutls.c: Sort macro definitions by name. + (fn_gnutls_transport_set_errno): Omit unreachable definition. + (fn_gnutls_x509_crt_get_signature): Omit unused symbol. + (gnutls_hex_string): Arg is now unsigned char *, to avoid a cast. + Prefer ptrdiff_t for sizes. Check for arithmetic overflow when + calculating string length. Use make_uninit_string, to avoid + copying the string. Cast the char, not the pointer. + (gnutls_certificate_details): Use xmalloc and xfree, not malloc + and free. Work even for dates past the year 9999. Use void * + for buffers, to avoid casts. + +2014-12-09 Andy Moreton (tiny change) + + * gnutls.c (gnutls_protocol_get_name): Fix a copy/paste typo. + +2014-12-08 Lars Magne Ingebrigtsen + + * gnutls.c (Fgnutls_peer_status): Return the key exchange, cipher + and MAC algorithms. + +2014-12-08 Stefan Monnier + + * process.c: Whitespace and line-break nitpicks. + +2014-12-08 Lars Magne Ingebrigtsen + + * gnutls.c (gnutls_certificate_details): The :signature isn't + that useful, so remove it. + (gnutls_certificate_details): Clean up whitespace slightly. + (Fgnutls_peer_status): Return the Diffie-Hellman prime bits for + the connection. + (gnutls_certificate_details): Put :signature-algorithm back again, + which was removed by mistake. + (emacs_gnutls_handle_error): Fatal errors should be on level 1, so + that they are not messaged by default (bug#16253). + (Fgnutls_error_fatalp): Doc fix (bug#18210). + + * gnutls.c: Add Windows specs for gnutls_dh_get_prime_bits. + +2014-12-07 Jan Djärv + + * nsimage.m (setPixmapData): Make bmRep local so class member is not + set (Bug#19133). + +2014-12-05 Lee Duhem (tiny change) + + * eval.c (Fsignal): Remove duplicate test. + (Fautoload_do_load): Fix up docstring. + +2014-12-05 Jan Djärv + + * nsterm.m (represented_filename, represented_frame): New variables. + (ns_set_represented_filename): New function. + (sendEvent:): Set represented filename here to avoid flicker, + related to Bug#18757. + + * nsterm.h: Declare ns_set_represented_filename. + + * nsfns.m (ns_set_name_as_filename): Don't set represented filename + at once, call ns_set_represented_filename instead. + +2014-12-05 Eli Zaretskii + + * dispextern.h (enum bidi_dir_t): Force NEUTRAL_DIR to be zero. + (struct bidi_stack): Reduce size by using bit fields and by + packing sos, override, and isolate_status into a single 8-bit + byte called 'flags'. + + * bidi.c (ISOLATE_STATUS, OVERRIDE): New macros. + (bidi_push_embedding_level): Construct flags from individual + bits. Adapt to changes in prev_for_neutral and next_for_neutral + members. + (bidi_pop_embedding_level): Use ISOLATE_STATUS. Extract 'sos' + from flags. Adapt to changes in prev_for_neutral, + next_for_neutral, and last_strong members. + (bidi_line_init): Initialize flags to zero. + (bidi_resolve_explicit, bidi_resolve_weak, bidi_resolve_brackets) + (bidi_resolve_neutral): Use ISOLATE_STATUS and OVERRIDE. + +2014-12-04 Stefan Monnier + + * eval.c (backtrace_eval_unrewind): Rewind also the excursions. + (Fapply): Try and simplify the control flow. + +2014-12-03 Chris Zheng (tiny change) + + * gnutls.c (init_gnutls_functions, gnutls_certificate_details): + Use gnutls_sign_get_name directly because + gnutls_sign_algorithm_get_name is a macro on MinGW (bug#19231). + (init_gnutls_functions): Load missing gnutls_server_name_set. + +2014-12-02 Eli Zaretskii + + * bidi.c (bidi_find_first_overridden): New function. + + * xdisp.c (Fbidi_find_overridden_directionality): New function. + (syms_of_xdisp): Defsubr it. + + * dispextern.h (bidi_find_first_overridden): Add prototype. + +2014-12-02 Jan Djärv + + * nsimage.m (initFromSkipXBM:width:height:flip:length:): Set bmRep + to nil after release (Bug#9133). + +2014-11-30 Paul Eggert + + Port better to AddressSanitizer. + These changes suffice for temacs on x86-64 with GCC 4.9.2 and + -fsanitize=address. + * alloc.c (valid_pointer_p) [ADDRESS_SANITIZER]: + Return -1 or 0, as the pipe trick doesn't work. + * alloc.c (relocatable_string_data_p, mark_object, sweep_symbols): + * data.c (Ffset): + * print.c (print_object): + When a pointer-check primitive returns -1, do not assume this + means the pointer is valid or that the underlying system has failed. + It could just be that addresses are being sanitized so Emacs can't + test for pointer validity. + * lisp.h (defined_GC_CHECK_STRING_BYTES): New constant. + (USE_STACK_STRING) [GC_CHECK_STRING_BYTES]: Now false, since the + string validity checker doesn't work on stack-based strings. + +2014-11-29 Paul Eggert + + Improve clarity of USE_LSB_TAG definition. + Problem reported by Lee Duhem. Suggestion by Andreas Schwab in: + http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg02222.html + * lisp.h (USE_LSB_TAG): Define in terms of the (simpler) + VAL_MAX / 2 rather than in terms of the (more complicated) + EMACS_INT_MAX >> GCTYPEBITS, and adjust commentary to match. + +2014-11-29 Eli Zaretskii + + * xdisp.c (handle_single_display_spec): When ignoring a fringe + bitmap display, reset the ignore_overlay_strings_at_pos_p flag. + (next_element_from_buffer): When done with overlays, reset the + ignore_overlay_strings_at_pos_p flag. (Bug#19201) + +2014-11-29 Eli Zaretskii + + * w32fns.c (Fw32_shell_execute): Convert forward slashes in + DOCUMENT to backslashes, if DOCUMENT is a file. (Bug#19141) + +2014-11-29 Ulrich Müller + + * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings + for paxctl and setfattr. Fixes temacs startup failure with + grsecurity/PaX enabled Linux kernel (bug#19067). + +2014-11-27 Oscar Fuentes + + * src/w32.c, src/w32heap.c, src/w32term.c: + Use MINGW_W64 instead of _W64. + +2014-11-27 Stefan Monnier + + * frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003). + +2014-11-26 Lars Magne Ingebrigtsen + + * gnutls.c (gnutls_ip_address_p): New function. + (Fgnutls_boot): Only send SNI if the host name is not an IP address. + +2014-11-26 Toke Høiland-Jørgensen (tiny change) + + * gnutls.c (Fgnutls_boot): Send the server name over (bug#18208). + +2014-11-25 Paul Eggert + + Fix gnutls problems caught by static checking. + * gnutls.c (Fgnutls_boot): Remove unused local. + (Fgnutls_boot): Fix pointer signedness. + +2014-11-25 Lars Magne Ingebrigtsen + + * gnutls.c (gnutls_certificate_details): Don't include certain + certificate details on older gnutls versions (bug#19168). + (syms_of_gnutls): Export gnutls_peer_status_warning_describe. + (gnutls_certificate_details): Reversed check in last checkin. + +2014-11-25 Teodor Zlatanov + + * gnutls.c (Fgnutls_peer_status): Check GNUTLS_INITSTAGE, not gnutls_p. + (Fgnutls_peer_status_warning_describe): Add function to describe a + peer verification warning symbol. + (Fgnutls_peer_status): Use it. + (Fgnutls_boot): Use it. Minor logging fixes. + +2014-11-24 Lars Magne Ingebrigtsen + + * gnutls.c: Fix compilation warnings given fix --enable-gcc-warnings. + +2014-11-24 Glenn Morris + + * emacs.c (main) <--version>: Make use of PACKAGE_NAME. + + * Makefile.in (emacs.res): Use ../nt rule, rather than duplicating it. + (ntsource, WINDRES, EMACS_MANIFEST): Remove, now unused. + +2014-11-23 Lars Magne Ingebrigtsen + + * gnutls.c: Fix Windows function definition of + gnutls_x509_crt_get_fingerprint. + + * gnutls.c: Fix Windows return value for gnutls_pk_algorithm_get_name. + + * gnutls.c (Fgnutls_boot): Save certificate for later inspection. + + * process.h: Added more fields to Lisp_Process to track + certificate details. + + * gnutls.c (gnutls_hex_string, gnutls_certificate_details) + (Fgnutls_peer_status): New functions to export TLS certificate + details to Emacs Lisp. + +2014-11-23 Jan Djärv + + * gtkutil.c (gtk_adjustment_configure): Define for Gtk+ < 2.14. + (xg_set_toolkit_horizontal_scroll_bar_thumb): Remove wrong version + check for gtk_adjustment_configure (Bug#19149). + (gtk_adjustment_configure): Don't use 2.14 functions (Bug#19149). + +2014-11-22 Glenn Morris + + * Makefile.in (emacs.res): Add dependency on icons/hand.cur. Use $<. + +2014-11-22 Martin Rudalics + + Don't shrink frame when using desktop-save-mode (Bug#19048). + * w32fns.c (x_set_tool_bar_lines): Always call + x_change_tool_bar_height (Bug#19048). + (x_change_tool_bar_height): Mark frame as garbaged since + adjust_frame_size might not have done that. + * xfns.c (x_set_tool_bar_lines): Always call + x_change_tool_bar_height (Bug#19048). + (x_change_tool_bar_height): Mark frame as garbaged since + adjust_frame_size might not have done that. + +2014-11-21 Ulf Jasper + + * xml.c (parse_region): Take care of new optional parameter + 'discard-comments' of 'libxml-parse(html|xml)-region'. + (Flibxml_parse_html_region, Flibxml_parse_xml_region): + New optional parameter 'discard-comments'. + +2014-11-17 Paul Eggert + + Improve time stamp handling, and be more consistent about it. + * editfns.c (invalid_time): New function. + Use it instead of 'error ("Invalid time specification")'. + (time_add, time_subtract, time_arith, Ftime_add, Ftime_less_p) + (decode_float_time, lisp_to_timespec, lisp_time_struct): + New functions. + (make_time_tail, make_time): Remove. All uses changed to use + new functions or plain list4i. + (disassemble_lisp_time): Return effective length if successful. + Check that LOW is an integer, if it's combined with other components. + (decode_time_components): Decode into struct lisp_time, not + struct timespec, so that we can support a wide set of times + regardless of whether time_t is signed. Decode plain numbers + as seconds since the Epoch, and nil as the current time. + (lisp_time_argument, lisp_seconds_argument, Ffloat_time): + Reimplement in terms of new functions. + (Fencode_time): Just use list2i. + (syms_of_editfns): Add time-add, time-subtract, time-less-p. + * keyboard.c (decode_timer): Don't allow the new formats (floating + point or nil) in timers. + * systime.h (LO_TIME_BITS): New constant. Use it everywhere in + place of the magic number '16'. + (struct lisp_time): New type. + (decode_time_components): Use it. + (lisp_to_timespec): New decl. + +2014-11-16 Lars Magne Ingebrigtsen + + * intervals.h (INTERVAL_WRITABLE_P): Check the `inhibit-read-only' + text property. + + * callint.c (Fcall_interactively): Pass in nil as argument to + Fbarf_if_buffer_read_only. + + * fileio.c (Finsert_file_contents): Ditto. + + * insdel.c (prepare_to_modify_buffer_1): Pass start region in. + + * textprop.c (verify_interval_modification): Check buffer + readedness after the last interval. + + * buffer.c (Fbarf_if_buffer_read_only): Don't raise an error if + the text at POSITION (new optional argument) has the + `inhibit-read-only' text property set. + +2014-11-16 Eli Zaretskii + + * window.c (window_scroll_pixel_based): Avoid truncation/rounding + errors in computing the number of pixels to scroll. + Suggested by Kelly Dean . (Bug#19060) + +2014-11-16 Jan Djärv + + * nsmenu.m (update_frame_tool_bar): If tool bar changes height, + call updateFrameSize. + + * nsterm.m (setFrame:): Remove call to display (Bug#18757). + +2014-11-16 Jan Djärv + + * nsfns.m (x_set_foreground_color, x_set_background_color) + (x_set_cursor_color, Fxw_color_values): Block/unblock input, + use SET_FRAME_GARBAGED instead of redraw_frame (Bug#19036). + +2014-11-15 Jan Djärv + + * nsterm.m (ns_send_appdefined): Check for application defined + event on Cocoa (Bug#18993). + (run): Restore code before the previous 18993 fix. + +2014-11-14 David Reitter + + * nsterm.m (run): Set timeout for event loop to prevent hang. + (Bug#18993) + +2014-11-14 Paul Eggert + + * .gitignore: Add emacs-[1-9]*, to ignore files like emacs-25.0.50.1. + +2014-11-14 Dmitry Antipov + + * xfont.c (xfont_list_pattern): Do not allocate font entity object + for each candidate font but attempt to reuse it from previous improper + candidate, if any. + +2014-11-13 Paul Eggert + + Avoid undefined behavior in color table hashing. + * image.c (CT_HASH_RGB) [COLOR_TABLE_SUPPORT]: Remove, replacing with ... + (ct_hash_rgb) [COLOR_TABLE_SUPPORT]: New function. All uses changed. + This function avoids undefined behavior with signed shift overflow. + +2014-11-10 Eli Zaretskii + + * fileio.c (Finsert_file_contents): Invalidate buffer caches also + when the inserted text does not need decoding. (Bug#18982) + +2014-11-10 Jan Djärv + + * nsterm.h (EmacsScroller): judge returns bool. + + * nsterm.m (ns_set_vertical_scroll_bar): Release bar. + (ns_judge_scroll_bars): Only set removed if judge returns true. + (judge): Returns bool == condemned. Remove self from window. + (setPosition:portion:whole:): Remove raise SIGIO (Bug#18757). + +2014-11-10 Stefan Monnier + + * keyboard.c (command_loop_1): Record this-command in recent-keys. + (Frecent_keys): Rewrite. and add optional `include-cmds' arg. + +2014-11-09 Jan Djärv + + * nsterm.m (ns_set_vertical_scroll_bar) + (ns_set_horizontal_scroll_bar): Cleanup merge error. + +2014-11-09 Paul Eggert + + * xgselect.c (xg_select): Don't assume n_gfds is nonnegative + merely because tmo_in_millisec is nonnegative. The 1st call + to g_main_context_query could succeed while the 2nd one fails. + + * frame.c (Fcan_run_window_configuration_change_hook): Return a value. + +2014-11-08 Jan Djärv + + * nsterm.m (run): Only use non-system event loop if OSX version is + exactly 10.9 (Bug#18993). + (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless + needed (Bug#18757). + +2014-11-08 Michael Albinus + + * callproc.c (encode_current_directory): Support handling of file + names prepended by "/:". (Bug#18891) + +2014-11-08 Alan Mackenzie + + * syntax.c (back_comment): Fix off-by-one error (bug#18022). + +2014-11-08 Dima Kogan + + * xgselect.c (xg_select): Use g_main_context_acquire (bug#18861). + +2014-11-08 Michael Albinus + + * dired.c (Ffile_attributes): Return Qnil, if Fexpand_file_name + raises an error. (Bug#18891) + +2014-11-08 Martin Rudalics + + * frame.c (adjust_frame_size): Call x_set_window_size only if + f->can_x_set_window_size is set. + (make_frame): Initialize f->can_x_set_window_size and + f->can_run_window_configuration_change_hook. + (Fcan_run_window_configuration_change_hook): New function. + * frame.h (frame): Split `official' into `can_x_set_window_size' + and `can_run_window_configuration_change_hook'. + * nsfns.m (Fx_create_frame): Set f->can_x_set_window_size. + * w32fns.c (Fx_create_frame, x_create_tip_frame): + Set f->can_x_set_window_size. + * window.c (run_window_configuration_change_hook): + Return immediately if either f->can_x_set_window_size or + f->can_run_window_configuration_change_hook are false. + (Fset_window_configuration): Instead of f->official set + f->can_x_set_window_size. + * xfns.c (Fx_create_frame, x_create_tip_frame): + Set f->can_x_set_window_size. + +2014-11-08 Jan Djärv + + * nsterm.m (EmacsScroller.dealloc): Reinstate, removed at merge + cleanup from 2014-11-01 (Bug#18972). + +2014-11-07 Stefan Monnier + + * keyboard.c: Call gui-set-selection instead of x-set-selection. + * xdisp.c (window-scroll-functions): Improve docstring. + +2014-11-07 Paul Eggert + + Uniquify the 'size' symbol. + * frame.c (Qsize): + * w32notify.c (Qsize): Remove. + * lisp.h (Qsize): New decl. + * lread.c (Qsize): Now extern. + * w32notify.c (syms_of_w32notify): No need to defsym. + +2014-11-07 Martin Rudalics + + * dispnew.c (change_frame_size_1): Fix call of + adjust_frame_size. + * frame.c (Qsize, Qframe_position, Qframe_outer_size) + (Qframe_inner_size, Qexternal_border_size, Qtitle_height) + (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external) + (Qtool_bar_size): New constants. + (frame_inhibit_resize, adjust_frame_size): New argument to + handle case where frame_inhibit_implied_resize is a list. + (Fmake_terminal_frame, Fset_frame_height, Fset_frame_width) + (Fset_frame_size, x_set_left_fringe, x_set_right_fringe) + (x_set_right_divider_width, x_set_bottom_divider_width) + (x_set_vertical_scroll_bars, x_set_horizontal_scroll_bars) + (x_set_scroll_bar_width, x_set_scroll_bar_height): + Update callers. + (frame-inhibit-implied-resize): Rewrite doc-string. + * frame.h (frame_inhibit_resize, adjust_frame_size): + Fix external declarations. + (Qframe_position, Qframe_outer_size) + (Qframe_inner_size, Qexternal_border_size, Qtitle_height) + (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external) + (Qtool_bar_size): Extern them. + * gtkutil.c (FRAME_TOTAL_PIXEL_HEIGHT, FRAME_TOTAL_PIXEL_WIDTH) + (xg_height_or_width_changed): Remove. + (xg_frame_set_char_size): Adjust adjust_frame_size calls. + (menubar_map_cb, xg_update_frame_menubar, free_frame_menubar) + (tb_size_cb, update_frame_tool_bar, free_frame_tool_bar) + (xg_change_toolbar_position): Call adjust_frame_size directly. + * nsfns.m (x_set_internal_border_width, Fx_create_frame): + Fix calls of adjust_frame_size. + * w32fns.c (x_set_internal_border_width, x_set_menu_bar_lines) + (Fx_create_frame, x_create_tip_frame): Adjust adjust_frame_size calls. + (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that + frame can get resized when tool-bar-lines parameter changes from + or to zero. + (Fw32_frame_menu_bar_size): Return fourth value. + (Fw32_frame_rect): Block input around system calls + (Fx_frame_geometry): New function. + * w32menu.c (set_frame_menubar): Adjust adjust_frame_size call. + * w32term.c (x_new_font): Adjust adjust_frame_size call. + * widget.c (EmacsFrameSetCharSize): Adjust frame_inhibit_resize call. + * window.c (Fset_window_configuration): Adjust adjust_frame_size call. + * xfns.c (x_set_menu_bar_lines, x_set_internal_border_width) + (Fx_create_frame): Adjust adjust_frame_size calls. + (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that + frame can get resized when tool-bar-lines parameter changes from + or to zero. + (Fx_frame_geometry): New function. + * xmenu.c (update_frame_menubar): On Lucid call + adjust_frame_size with one pixel less height to avoid that + repeatedly adding/removing the menu bar grows the frame. + (free_frame_menubar): On Motif arrange to optionally preserve + the old frame height when removing the menu bar. + * xterm.c (x_new_font): Adjust adjust_frame_size call. + +2014-11-03 Eli Zaretskii + + * xdisp.c (Fdump_glyph_matrix, Fdump_frame_glyph_matrix): Doc fix. + (Fdump_frame_glyph_matrix): Don't segfault if invoked on a GUI + frame; instead, print an error message. + +2014-11-03 Jan Djärv + + * nsfns.m (ns_set_doc_edited): Check for FRAME_NS (Bug#18925). + +2014-11-02 Jan Djärv + + * nsimage.m (allocInitFromFile:): Initialize bmRep. + (dealloc): Release bmRep. + + * nsterm.h (EmacsImage): Remove imageListNext, refCount, reference, + imageListSetNext, imageListNext. + + * nsimage.m (ImageList, imageListNext, imageListSetNext:) + (reference): Remove. + (allocInitFromFile:): Remove searching ImageList and calling + reference (Bug#18918). + (dealloc): Remove handling if ImageList. + +2014-11-02 Andreas Schwab + + * process.c (catch_child_signal): Fix incorrect assertion. + +2014-11-01 Jan Djärv + + * macfont.m (macfont_draw): + * nsterm.m (ns_mouse_position, judge): Clean up merge conflict. + + * macfont.m (macfont_glyph_extents): Turn off synthetic bold + if force_integral_p (i.e. no antialias). + (macfont_draw): Check ns_antialias_text, also turn off synthetic + bold if no antialias (Bug#18876). + + * emacs.c (main): Don't chdir to $HOME on Cocoa if --chdir + was given (Bug#18846). + + * nsterm.h (ns_set_doc_edited): Declare taking no args. + + * nsfns.m (ns_set_doc_edited): Do all logic (check frames) here + instead of in xdisp.c, function now takes void. (Bug#18884). + + * xdisp.c (prepare_menu_bars): Remove HAVE_NS code. + (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884). + + * nsterm.h (EmacsScroller): Replace Lisp_Object win with + struct window* (Bug#18889). + Remove getMouseMotionPart. + (ns_output): Make icon_top/left int. + + * nsfns.m (x_icon): icon_top/left is int. + + * nsterm.m (ns_mouse_position): Remove unused code. + (initFrame:window:, dealloc): Use window instead of win. + (getMouseMotionPart:window:x:y:): Remove, unused. + (sendScrollEventAtLoc:fromEvent:): Make Lisp_Object win from window. + +2014-11-01 Eli Zaretskii + + * keyboard.c (readable_events): When FLAGS include + READABLE_EVENTS_FILTER_EVENTS, ignore BUFFER_SWITCH_EVENT events. + This avoids returning non-nil from input-pending-p when only such + events are in the queue. (Bug#18856) + +2014-11-01 Jan Djärv + + * nsselect.m (QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME) + (NXPrimaryPboard, NXSecondaryPboard): Declare static. + (Qforeign_selection): Remove. + (ns_get_local_selection): Identation fix. + (syms_of_nsselect): Remove Qforeign_selection, ns-lost-selection-hooks + + * nsselect.m (ns_get_local_selection): Remove calling of + functions in Vselection_converter_alist (Bug#18911). + (syms_of_nsselect): Remove Vselection_converter_alist. + +2014-10-31 Dmitry Antipov + + * font.c (copy_font_spec): Redesign to avoid Fcopy_alist + and unnecessary initialization. Adjust comments. + +2014-10-30 Eli Zaretskii + + * bidi.c (bidi_cache_reset_to): Invalidate bidi_cache_last_idx by + setting it to -1. + (bidi_find_bracket_pairs): Pass to bidi_cache_reset_to a relative + index, not an absolute one, as that's what the function expects. + +2014-10-30 Dmitry Antipov + + * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to realize + font on an initial frame when running as a daemon (Bug#18869). + + * fontset.c (toplevel): Adjust comment to match 2014-06-19 change. + +2014-10-30 Eli Zaretskii + + * fileio.c (Fexpand_file_name): Use make_unibyte_string, not + build_string, when importing a home directory. (Bug#18873) + + * dispnew.c (buffer_posn_from_coords): + Use WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to + account for the header-line height. (Bug#18839) + +2014-10-28 Ulf Jasper + + * xml.c (parse_region): Do not forget the first document child. + +2014-10-25 Jan Djärv + + * nsselect.m: pasteboard_changecount is new. + (ns_store_pb_change_count, ns_get_pb_change_count) + (ns_get_our_change_count_for): New functions. + (ns_string_to_pasteboard_internal): Correct comment. + type => gtype in eassert, Call ns_store_pb_change_count. + (Fns_own_selection_internal): Remove data, use value (Bug#18799). + (Fns_disown_selection_internal, Fns_selection_owner_p): + Replace Vselection_alist check, with change count check. + (Fns_get_selection): Initialize val to Qnil. Only get local + selection if change counts match (Bug#18799). + (nxatoms_of_nsselect): Initialize pasteboard_changecount. + +2014-10-25 Noam Postavsky + + * src/w32proc.c (create_child): If calling a quoted batch file, + pass NULL for exe. (Bug#18745) + +2014-10-24 Eli Zaretskii + + * bidi.c (bidi_resolve_explicit, bidi_find_bracket_pairs) + (bidi_resolve_brackets): Use end of string position rather than ZV + when iterating over a string. (Bug#18815) + +2014-10-24 Martin Rudalics + + * keyboard.c (make_lispy_position): Return coordinates also when + on scroll bars, fringes, margins or not in a window. + * xdisp.c (show_mouse_face): Don't change cursor face during + mouse tracking. + +2014-10-23 Martin Rudalics + + * frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size) + (frame_resize_pixelwise, frame_inhibit_implied_resize): + Fix doc-strings (Bug#18789). + +2014-10-23 Paul Eggert + + * Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'. + +2014-10-22 Eli Zaretskii + + Optimize redisplay of simple bracketed text. + * bidi.c (bidi_cache_reset_to): New function. + (bidi_cache_reset): Call it. + (bidi_init_it, bidi_line_init): Initialize the bracket_pairing_pos + member to -1. + (bidi_resolve_explicit): Reset bracket_pairing_pos and + bracket_enclosed_type only if bracket_pairing_pos's value is not + ZV. + (MAX_BPA_STACK): Make sure the value is signed. + (PUSH_BPA_STACK): If the BPA stack overflows, don't bail out, but + stop pushing values onto the stack. + (bidi_find_bracket_pairs): If the bracketed text is only on the + base embedding level, remove all the states cached by this + function from the cache, and return zero, so that the brackets in + this segment of text are processed as normal neutrals. + (bidi_resolve_brackets): Detect the brackets that are to be + processed as neutrals, and don't call bidi_find_bracket_pairs on + them. (Bug#18778) + +2014-10-21 Stefan Monnier + + * w32select.c (Fw32_selection_exists_p): Rename from + Fx_selection_exists_p. + (syms_of_w32select): Adjust accordingly. + + * w16select.c (Fw16_selection_exists_p): Rename from + Fx_selection_exists_p. + (syms_of_win16select): Adjust accordingly. + + * nsselect.m (ns_get_local_selection): Signal error rather than `quit'. + (Fns_own_selection_internal): Tighten scoping. + (Fns_selection_exists_p): Rename from Fx_selection_exists_p. + (Fns_get_selection): Rename from Fx_get_selection_internal. + (Fns_get_selection_internal, Fns_store_selection_internal): + Remove functions. + (syms_of_nsselect): Adjust accordingly. + +2014-10-21 Martin Rudalics + + * w32fns.c (Fw32_frame_menu_bar_size): New function. + * w32term.c (x_set_window_size): Account for wrapped menu bar + lines when setting up frame height (Bug#15174 and Bug#18720). + (w32_add_wrapped_menu_bar_lines): New variable. + +2014-10-21 Stefan Monnier + + * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we + move point. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-19 Jan Djärv + + * gtkutil.c (xg_update_menubar, xg_update_menu_item): Only call + g_object_notify for label if Gtk+ >= 2.16 (Bug#16522). + + * xterm.h (x_output): Remove net_wm_state_hidden_seen. + + * xterm.c (handle_one_xevent): Check return value from + x_handle_net_wm_state, remove net_wm_state_hidden_seen (Bug#18722). + (get_current_wm_state): Remove net_wm_state_hidden_seen setting. + + * gtkutil.c (create_dialog): Don't use gtk_dialog_get_action_area on + Gt+ >= 3.12, or gtk_misc_set_alignment on Gtk+ >= 3.14 (Bug#18674). + (make_widget_for_menu_item): Don't use gtk_misc_set_alignment on + Gtk+ >= 3.14 (Bug#18674). + (update_frame_tool_bar): Don't use gtk_misc_set_padding on + Gtk+ >= 3.14 (Bug#18674). + +2014-10-18 Paul Eggert + + * gtkutil.c: Remove no-longer-used code. + (xg_update_menubar): Remove unused local and unnecessary call to + gtk_menu_item_get_submenu. + (XG_TOOL_BAR_PROXY_BUTTON, xg_tool_bar_proxy_callback) + (xg_get_tool_bar_widgets, xg_tool_bar_proxy_help_callback) + (TOOLBAR_TOP_WIDGET): Remove; no longer used. + +2014-10-18 Jan Djärv + + * xfns.c (syms_of_xfns): Remove x-gtk-whole-detached-tool-bar. + + * xterm.h (handlebox_widget): Remove. + + * xmenu.c (set_frame_menubar): Remove GTK block that calls + xg_have_tear_offs. + + * gtkutil.h (xg_have_tear_offs): Remove declaration. + + * gtkutil.c (XG_TEXT_CANCEL, XG_TEXT_OPEN, XG_TEXT_OK): New defines + to handle Gtk versions. + (xg_get_file_with_chooser): Use them. + (xg_have_tear_offs, tearoff_remove, tearoff_activate): + Remove (create_menus): Remove teroff argument and code. + Remove call to gtk_menu_set_title. + (xg_update_menubar, xg_update_submenu): Remove tearoff code. + Adjust args to create_menus. + (xg_tool_bar_menu_proxy, xg_tool_bar_detach_callback) + (xg_tool_bar_attach_callback, TOOLBAR_TOP_WIDGET): Remove. + (xg_pack_tool_bar): Replace TOOLBAR_TOP_WIDGET, remove detach code. + (xg_make_tool_item): Remove detach code. + (xg_update_tool_bar_sizes): Replace TOOLBAR_TOP_WIDGET. + (find_icon_from_name): New function. + (update_frame_tool_bar): Remove GtkStockItem code, move to + find_icon_from_name. Let stock be a list of icon names to try. + Only use gtk_image_new_from_stock on Gtk+ < 3.10. + Replace TOOLBAR_TOP_WIDGET. + (free_frame_tool_bar, xg_change_toolbar_position ): + Replace TOOLBAR_TOP_WIDGET. + (xg_initialize): Remove tearoff code. + +2014-10-18 Eli Zaretskii + + * xterm.c (x_draw_bar_cursor, x_draw_hollow_cursor): Subtract 1 + pixel from the window's cursor glyph width, since X renders hollow + blocks 1 pixel wider than the 'width' parameter. + + * xdisp.c (get_phys_cursor_geometry): Don't subtract 1 pixel from + glyph->pixel_width; this is now done in xterm.c. + + Fix reordering of bracket characters in isolates. + * bidi.c (bidi_cache_find): Rename the argument NEUTRALS_OK to + RESOLVED_ONLY; when non-zero, return from the cache only fully + resolved states. All callers changed. + (CANONICAL_EQU): New macro. + (PUSH_BPA_STACK): Use it to push onto the BPA stack the canonical + equivalent of the paired closing bracket character. + (bidi_find_bracket_pairs): Set the bracket_pairing_pos member to + the default non-negative value, to be checked later in + bidi_resolve_brackets. Use CANONICAL_EQU to test candidate + characters against those pushed onto the BPA stack. + (bidi_record_type_for_neutral): New function. + (bidi_resolve_brackets): Record next_for_neutral and + prev_for_neutral when embedding level gets pushed. Force + resolution of bracket pairs when entering a level run that was not + yet BPA-resolved. + (bidi_resolve_neutral): Add assertions before calling + bidi_resolve_neutral_1. + (bidi_level_of_next_char): Remove the code that attempted to + resolve unresolved neutrals; that is now done by + bidi_resolve_neutral. + + * w32select.c (owner_callback): Mark with ALIGN_STACK attribute. + +2014-10-17 Eli Zaretskii + + * xterm.c (x_draw_hollow_cursor): Fix display of hollow cursor on + 1-pixel R2L characters. + Reported by Dmitry Antipov , see + http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00518.html. + +2014-10-16 Eli Zaretskii + + * bidi.c (bidi_find_bracket_pairs): Avoid a loop that does nothing + useful. + +2014-10-15 Paul Eggert + + * bidi.c (bidi_find_bracket_pairs): Initialize local var. + This pacifies GCC 4.9.1 with --enable-gcc-warnings. + It's not clear to me whether the initialization is needed, + but it can't hurt so I played it safe. + +2014-10-15 Stefan Monnier + + * lisp.mk (lisp): Add emacs-lisp/eldoc.elc. + +2014-10-15 Eli Zaretskii + + Update the bidirectional reordering engine for Unicode 6.3 and 7.0. + * bidi.c (bidi_ignore_explicit_marks_for_paragraph_level): + Remove variable. + (bidi_get_type): Return the isolate initiators and terminator types. + (bidi_isolate_fmt_char, bidi_paired_bracket_type) + (bidi_fetch_char_skip_isolates, find_first_strong_char) + (bidi_find_bracket_pairs, bidi_resolve_brackets): New functions. + (bidi_set_sos_type): Rename from bidi_set_sor_type and updated + for the new features. + (bidi_push_embedding_level, bidi_pop_embedding_level): Update to + push and pop correctly for isolates. + (bidi_remember_char): Modify to accept an additional argument + and record the bidi type according to its value. + (bidi_cache_iterator_state): Accept an additional argument to only + update an existing state. Handle the new members of struct bidi_it. + (bidi_cache_find): Arguments changed: no longer accepts a level, + instead accepts a flag telling it whether it is okay to return + unresolved neutrals. + (bidi_initialize): Initiate and staticpro the bracket-type uniprop + table. Initialize new isolate-related members. + (bidi_paragraph_init): Some code factored out into + find_first_strong_char. + (bidi_resolve_explicit_1): Function deleted, its code incorporated + into bidi_resolve_explicit. + (bidi_resolve_explicit): Support the isolate initiators and + terminator. Fix handling of embeddings and overrides according to + new UBA requirements. Record information about previously seen + characters here (moved from bidi_level_of_next_char). + (bidi_resolve_weak): Adapt to changes in struct members. + (FLAG_EMBEDDING_INSIDE, FLAG_OPPOSITE_INSIDE, MAX_BPA_STACK) + (STORE_BRACKET_CHARPOS, PUSH_BPA_STACK): New macros. + (bidi_resolve_neutral): Call bidi_resolve_brackets to handle the + paired bracket resolution. Handle isolate initiators and + terminator. + (bidi_type_of_next_char): Remove unneeded code for BN limit. + (bidi_level_of_next_char): Move the code that records information + about previous characters to bidi_resolve_explicit. Fix logic of + resolving neutrals and make sure their cache entries are updated. + Remove now unneeded special handling of PDF level. + + * dispextern.h (struct glyph): Enlarge the width of resolved_level. + (BIDI_MAXDEPTH): New macro, renamed from BIDI_MAXLEVEL and + enlarged per Unicode 6.3. + (enum bidi_bracket_type_t): New data type. + (struct bidi_saved_info): Leave only 2 type members out of 4. + Remove bytepos. + (struct bidi_stack): Add members necessary to support isolating + sequences. + (struct bidi_it): Add new members necessary to support isolating + sequences and bracket pair resolution. + + * xdisp.c (Fbidi_resolved_levels): New function. + (syms_of_xdisp): Defsubr it. + (append_glyph, append_composite_glyph, produce_image_glyph) + (append_stretch_glyph, append_glyphless_glyph): Convert aborts to + assertions. + (syms_of_xdisp) : New variable. + + * term.c (append_glyph, append_composite_glyph) + (append_glyphless_glyph): Convert aborts to assertions. + + * .gdbinit (pgx): Display the character codepoint, resolved level, + and bidi type also for glyphless glyphs. + +2014-10-15 Dmitry Antipov + + Avoid unwanted point motion in Fline_beginning_position. + * lisp.h (scan_newline_from_point): Add prototype. + * search.c (scan_newline_from_point): New function, refactored from... + * cmds.c (Fforward_line): ...adjusted user. + * editfns.c (Fline_beginning_position): Use scan_newline_from_point + and simplify the former since the latter doesn't move point. + +2014-10-14 Dmitry Antipov + + Cleanup terminal handling code. + * dispextern.h (get_named_tty): Remove prototype but... + * termhooks.h (get_named_terminal): ...resurrect it under + more meaningful name. + (get_terminal): Likewise, but with... + (decode_live_terminal): ...this name. + (decode_tty_terminal): Add prototype. + * term.c (get_tty_terminal): Remove. + (get_named_tty): Remove. + (Ftty_display_color_p, Ftty_display_color_cells, Ftty_type) + (Fcontrolling_tty_p, Fsuspend_tty, Fresume_tty): + Use decode_tty_terminal. + (Ftty_no_underline, Ftty_top_frame): Use decode_live_terminal. + * terminal.c (get_terminal): Refactor to... + (decode_terminal, decode_live_terminal): ...new functions. + (decode_tty_terminal): Replacement for get_tty_terminal. + (get_named_terminal): Likewise for get_named_tty. + * coding.c (Fset_terminal_coding_system_internal) + (Fterminal_coding_system, Fset_keyboard_coding_system_internal): + (Fkeyboard_coding_system): + * composite.c (Fcomposition_get_gstring): + * dispnew.c (Fsend_string_to_terminal): + * frame.c (Fmake_terminal_frame): + * nsfns.m (check_ns_display_info): + * w32fns.c, xfns.c (check_x_display_info): + * xselect.c (frame_for_x_selection): Use decode_live_terminal. + * keyboard.c (handle_interrupt_signal, handle_interrupt) + (Fset_quit_char): Use get_named_terminal. + (Fset_output_flow_control, Fset_input_meta_mode): + Use decode_tty_terminal. + +2014-10-13 Eli Zaretskii + + * w32term.h (ALIGN_STACK): Use _WIN64, not _W64, to distinguish + between 32-bit and 64-bit MinGW builds. (Bug#18699) + +2014-10-12 Paul Eggert + + Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666). + * process.c (accept4) [!HAVE_ACCEPT4]: New macro. + +2014-10-12 Stefan Monnier + + * frame.c (Fmouse_pixel_position): Call Vmouse_position_function + (bug#18638). + +2014-10-12 Paul Eggert + + * editfns.c (dump_tz_string): No longer const. + It might be modified. + + * nsmenu.m (clear): Assume OS X 10.6 or later. + +2014-10-12 Jan Djärv + + * unexmacosx.c: Remove include ppc/reloc.h. + (unrelocate, copy_dysymtab): Remove PPC code. + (rebase_reloc_address): Remove, only used for PPC: + + * nsterm.m: Always include macfont.h on COCOA. + (ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap) + (ns_dumpglyphs_image, ns_check_menu_open) + (applicationDidFinishLaunching) + (antialiasThresholdDidChange:) + (keyDown:, toggleFullScreen:, setPosition:portion:whole:): + Remove checks for OSX <= 10.5/10.6. + (changeFont:): Use macfont on COCOA, nsfont on GNUSTEP. + (syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on + GNUSTEP. + + * nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove. + (NS_HAVE_NSINTEGER): Remove block. + Remove >= OSX 10.6 tests. + + * nsmenu.m (NSMenuDidBeginTrackingNotification): Remove. + (x_activate_menubar, trackingNotification:): Remove check for + OSX >= 10.5. + (menuNeedsUpdate:): Remove check for OSX < 10.5. + + * nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6. + + * nsfns.m: Always include macfont.h on COCOA. + (ns_filename_from_panel, ns_directory_from_panel) + (Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog) + (Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6 + + * macfont.m: Remove >= 1050 check. + (macfont_create_family_with_symbol) + (macfont_get_glyph_for_character) + (mac_font_get_glyphs_for_variants) + (mac_ctfont_create_available_families, syms_of_macfont): + Remove code for OSX < 10.6. + (mac_font_family_group, mac_font_family_compare): Remove, only used + for OSX < 10.6. + + * macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP) + (mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6 + + * Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in + comment. + +2014-10-12 Paul Eggert + + Fix putenv race conditions with undefined behavior (Bug#8705). + Do all putenv calls before Emacs creates any threads. + Use a safer way to modify the TZ environment variable in the + presence of multiple threads. For further thread-safety, + prefer localtime_r and gmtime_r to localtime and gmtime, + and prefer struct tm's tm_gmtoff (if available) to calling + both localtime_r and gmtime_r. + * dbusbind.c (Fdbus__init_bus): Move xputenv call from here ... + (init_dbusbind): ... to this new function. + * emacs.c (main) [HAVE_DBUS]: Call it before creating threads. + * xterm.c (x_term_init): Move xputenv call from here ... + (init_xterm): ... to this new function. + * emacs.c (main) [USE_GTK]: Call it before creating threads. + * editfns.c (HAVE_TM_GMTOFF): Default to false. + (dump_tz_string): New constant. + (init_editfns): Use it. This centralizes the dump_tz stuff. + Call set_time_zone_rule here, so that its xputenv is done + before Emacs goes multithreaded. + (mktime_z) [!HAVE_TZALLOC]: New function, which is typically + thread-safe enough for Emacs. + (format_time_string, Fdecode_time, Fcurrent_time_string) + (Fcurrent_time_zone): + Prefer localtime_r and gmtime_r, which are more thread-safe, to + localtime and gmtime. Remove now-unnecessary calls to block_input. + (tm_gmtoff): New static function. + (Fdecode_time, Fcurrent_time_zone): Use it. + (Fencode_time): Use mktime_z, for better thread-safety. + (set_time_zone_rule): Now static. Rewrite to be mostly thread-safe, + i.e., not quite thread-safe but good enough for Emacs typical usage. + Do not reclaim storage that is in the environment; let it leak. + Always call tzset, since localtime_r does not. + * emacs.c (dump_tz, Fdump_emacs) [HAVE_TZSET]: Remove dump_tz stuff. + This is now done in init_editfns. + * systime.h (mktime_z, timezone_t, tzalloc, tzfree) [!HAVE_TZALLOC]: + New macros and declarations, for platforms lacking tzalloc & friends. + +2014-10-09 Paul Eggert + + * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS. + On x86 platforms this works around GCC bug 63495 + , + and more generally should fix a portability problem in Emacs. + Problem reported by Stefan Monnier in: + http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html + +2014-10-08 Leo Liu + + Enhance terpri to allow conditionally output a newline. (Bug#18652) + * keymap.c (describe_vector_princ): + * keyboard.c (Fcommand_error_default_function): Adapt to change to + Fterpri. + + * print.c (printchar_stdout_last): Declare. + (printchar): Record the last char written to stdout. + (Fterpri): Add optional argument ENSURE. + +2014-10-08 Eli Zaretskii + + * w32inevt.c (maybe_generate_resize_event): Pass non-zero as the + DELAY argument to change_frame_size, so that the frame size + changes, if any are needed, are delayed until the next redisplay. + This is to avoid a too early QUIT inside change_frame_size, when + it calls Lisp in frame_windows_min_size, in case one of the events + we've read sets the quit-flag. (Bug#18649) + + * w32fns.c (check_x_display_info): Accept terminal objects as + argument, to follow what xfns.c does. + +2014-10-07 Glenn Morris + + * Makefile.in ($(srcdir)/macuvs.h) + ($(lispsource)/international/charprop.el): Add explicit FORCE. + +2014-10-07 Eli Zaretskii + + * decompress.c (init_zlib_functions): Move the message about zlib + being unavailable from here... + (Fzlib_decompress_region): ...to here. (Bug#18650) + +2014-10-07 Dmitry Antipov + + * font.c (Ffont_get_glyphs): Use validate_subarray and fix + the case where an optional string is used. Adjust docstring. + +2014-10-06 Stefan Monnier + + * lisp.mk (lisp): Remove w32-common-fns.elc. + +2014-10-05 Paul Eggert + + * keyboard.c (Qleft, Qright): Remove duplicate definitions (Bug#9927). + These were already defined in buffer.c, and the duplicate + definitions cause problems on platforms like 'gcc -fno-common'. + Reported by Peter Dyballa in: http://bugs.gnu.org/9927#137 + +2014-10-05 Jan Djärv + + * nsterm.m (updateFrameSize:): Only call update_frame_tool_bar + if toolbar is visible. + + * nsfont.m (nsfont_draw): Use CGFloat for GNUstep newer than + 0.23 (Bug#18030). + + * nsterm.m (syms_of_nsterm): ns-use-fullscreen-animation is new. + (toggleFullScreen:): Use ns-use-fullscreen-animation for animate. + (ns_select, ns_read_socket): Use unwind_protect to decrease + apploopnr (Bug#18345). + (ns_draw_window_cursor): Adjust y for hbar cursor only if smaller than + line height (Bug#17977). + + * macfont.m: Fix indentation and import changes from macport 24.3.94. + (macfont_closest_traits_index): New function. + (macfont_closest_traits_index_p): Rename from + macfont_closest_traits_index. + (macfont_list): Use macfont_closest_traits_index_p. + +2014-10-05 K. Handa + + * coding.c (detect_coding_iso_2022): Set coding->rejected + correctly when an invalid escape sequence is found (Bug#18610). + +2014-10-04 Jan Djärv + + * gtkutil.c (create_menus): Only add tearoffs to empty menus. + (xg_update_submenu): Remove has_tearoff_p, pass 1 to create_menus + for add_tearoff_p. + +2014-10-04 Martin Rudalics + + * buffer.c (scroll_bar_width, scroll_bar_height): + Fix doc-strings. + * window.c (Fset_window_scroll_bars): Fix doc-string. + (Fwindow_scroll_bars): Have it return what the doc-string says. + +2014-10-03 Eli Zaretskii + + * xdisp.c (move_it_by_lines): Call reseat_1 after moving the + iterator backwards, to resync the bidi iterator. (Bug#18584) + +2014-10-03 Dmitry Antipov + + Consistently use min and max macros from lisp.h. + * coding.c (min, max): + * font.c (MAX): + * unexhp9k800.c (min): + * unexw32.c (min, max): Use definitions from lisp.h. + * regex.c (MAX, MIN) [!emacs]: Define own max and min as such. + Adjust users. + * gmalloc.c (min): Tiny style change. + + * fileio.c (emacs_readlinkat, Finsert_file_contents): + * w32fns.c, xfns.c (x_create_tip_frame): Use AUTO_STRING. + +2014-10-03 Paul Eggert + + Fix x-focus-frame bug with "Not an in-range integer" (Bug#18586). + * xselect.c (X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX, X_LONG_MIN) + (X_ULONG_MAX): Move these macros to xterm.h. + (x_fill_property_data): Be more generous about allowing either + signed or unsigned data of the appropriate width. + * xterm.h (x_display_set_last_user_time): New function. + All setters of last_user_time changd to use this function. + If ENABLE_CHECKING, check that the times are in range. + +2014-10-02 Eli Zaretskii + + * dispnew.c (adjust_decode_mode_spec_buffer): Use 'int' instead of + 'ssize_t'. Suggested by Paul Eggert . + +2014-10-02 Jan Djärv + + * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to + make a font_object from a tty frame (Bug#18573). + (Finternal_set_lisp_face_attribute): Add FIXME comment. + +2014-10-02 Dmitry Antipov + + * alloc.c (mark_overlay): Assume that overlay boundaries are + always markers. Add comment. + * lread.c (read_internal_start): Use convenient validate_subarray. + Adjust docstring. + (Fread_from_string): Adjust docstring. + +2014-10-02 Stefan Monnier + + * lisp.h: Fix up compilation for USE_STACK_LISP_OBJECTS=false. + + * nsselect.m (ns-own-selection-internal, ns-disown-selection-internal): + Rename from the "x-" prefix. + +2014-10-01 Stefan Monnier + + * xselect.c (selection-converter-alist): Fix docstring. + +2014-10-01 Eli Zaretskii + + * w32proc.c (sys_spawnve): Avoid modification of the CMDNAME + argument passed by the caller, when we mirror all slashes into + backslashes. + +2014-10-01 Dmitry Antipov + + * gtkutil.c (xg_set_toolkit_horizontal_scroll_bar_thumb): + Resurrect old code and fix compilation with GTK < 2.13.6. + +2014-10-01 Paul Eggert + + Use AUTO_CONS instead of SCOPED_CONS, etc. + * frame.h (AUTO_FRAME_ARG): Rename from FRAME_PARAMETER. + * lisp.h (AUTO_CONS): Rename from scoped_cons. + (AUTO_LIST1): Rename from scoped_list1. + (AUTO_LIST2): Rename from scoped_list2. + (AUTO_LIST3): Rename from scoped_list3. + (AUTO_LIST4): Rename from scoped_list4. + (AUTO_STRING): Rename from SCOPED_STRING. + * frame.h (AUTO_FRAME_ARG): + * lisp.h (AUTO_CONS, AUTO_LIST1, AUTO_LIST2, AUTO_LIST3) + (AUTO_LIST4, AUTO_STRING): + Prepend a new argument 'name'. + Declare a variable instead of yielding a value. + All uses changed. + * lisp.h (STACK_CONS, AUTO_CONS_EXPR): New internal macros. + +2014-09-30 Eli Zaretskii + + * w32fns.c (w32_createwindow): Accept an additional argument, an + array of 2 values specifying the coordinates of the frame's + top-left corner. Use these values instead of calling x_get_arg, + which can cons Lisp objects, and therefore cannot be called except + from the main thread. Remove redundant tests for the default + values. + (my_create_window): Move the calculation of the coordinates of the + frame's top-left edge here. Pass them to the input thread via the + second parameter of the WM_EMACS_CREATEWINDOW message. + See http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html + for the details. + +2014-09-30 Eli Zaretskii + + * xdisp.c (cursor_row_fully_visible_p): Update commentary. + (redisplay_window): Treat the frame's frozen_window_starts flag + the same way as the optional_new_start flag for the window: only + obey it if the glyph row showing point will be fully visible. + Likewise when the window start is in a continuation line. If, + after trying everything under the 'force_start' label, point is + still not fully visible, give up and scroll the window. + Add debugging traces. (Bug#18545) + + * window.c (Frecenter): Set the window's redisplay flag. + +2014-09-30 Eli Zaretskii + + * w32term.c (w32_read_socket): Don't use frame dimensions for + resizing if GetClientRect returned an empty (0, 0, 0, 0) + rectangle. Check the return value of GetClientRect, and don't use + the results if it didn't succeed. + + * dispnew.c (change_frame_size_1): Recompute the frame dimensions + in columns and lines after correcting the pixel dimensions in + check_frame_size. + (adjust_decode_mode_spec_buffer): Add assertion to avoid passing + negative values to xrealloc. (Bug#18528) + +2014-09-30 Paul Eggert + + * alloc.c: Remove now-unnecessary check. + Suggested by Dmitry Antipov in: + http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00891.html + + * xterm.c (x_term_init): Allocate temps on stack, not on heap. + + * frame.c (x_set_frame_parameters): Port --enable-gcc-warnings + to Ubuntu 14.04.1 x86-64. + + Simplify stack-allocated Lisp objects, and make them more portable. + The build_local_string macro was used in two ways: (1) string + literals for which scoped allocation suffices, and (2) file name + components, where it's not safe in general to assume bounded-size + ASCII data. Simplify by defining a new macro SCOPED_STRING that + allocates a block-scope string, and by using SCOPED_STRING for (1) + and build_string for (2). Furthermore, actually use stack + allocation only for objects known to have sufficient alignment. + This simpler implementation means Emacs can make + USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK != + GC_MAKE_GCPROS_NOOPS. + * lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS, + for fewer differences among implementations. + (struct Lisp_String): Now GCALIGNED. + (USE_STACK_LISP_OBJECTS): Default to true, since the + implementation no longer insists on a nonempty GCALIGNED. + But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS. + (SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed + separately. Move definiens to scoped_cons. The old definition + was incorrect when GCALIGNED was defined to be empty. + (union Aligned_String): New type. + (USE_STACK_CONS, USE_STACK_STRING): New constants, so that the + implementation ports to compilers that don't align strictly enough. + Don't worry about the union sizes; it's not worth bothering about. + (scoped_cons, scoped_list1, scoped_list3, scoped_list4): + Rewrite using USE_STACK_CONS. + (scoped_cons): Assume the use of union Aligned_Cons. + (lisp_string_size, make_local_string, build_local_string): Remove. + Unless otherwise specified, all callers of build_local_string + changed to use SCOPED_STRING. + (SCOPED_STRING): New macro. + * data.c (wrong_choice): + * menu.c (single_menu_item): + * process.c (Fformat_network_address): + Hoist use of SCOPED_STRING out of a scope, so that its returned + object lives long enough. + * fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING, + as the string might be long or might not be ASCII. + +2014-09-29 Eli Zaretskii + + * msdos.c (internal_terminal_init): Bump version to 25. + +2014-09-29 Dmitry Antipov + + Keep stack-allocated Lisp objects fast rather than versatile. + * lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such. + (SCOPED_CONS_INITIALIZER): New macro. + (scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it. + (USE_LOCAL_ALLOCA): Remove. + (local_cons, local_list1, local_list2, local_list3, local_list4): + Remove. Stack overflow checking makes them too slow. + (make_local_vector): Likewise. Also we just don't have enough + users for it. + (enum LISP_STRING_OVERHEAD): Remove. + (local_string_init, local_vector_init): Remove prototypes. + (make_local_string, build_local_string): Redesign to target short + compile-time string constants, fall back to regular string allocation + where appropriate. + (lisp_string_size): New function. + (verify_ascii) [ENABLE_CHECKING]: Add prototype. + * alloc.c (local_string_init, local_vector_init): Remove. + (verify_ascii) [ENABLE_CHECKING]: New function. + * buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c: + * fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c: + * menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c: + * xselect.c, xterm.c: All related users changed. + +2014-09-28 Ken Brown + + * sheap.c (bss_sbrk_buffer_beg): Remove redundant variable. + * gmalloc.c [CYGWIN]: Adapt to change in sheap.c. + +2014-09-27 Ken Brown + + Fix implementation of HYBRID_MALLOC on Cygwin. + * sheap.c (bss_sbrk_buffer_end): Cast to void *. + (bss_sbrk_buffer_beg): New variable. Use it... + * gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix + incorrect definition. + +2014-09-27 Stefan Monnier + + * keyboard.c (track-mouse): Rename to internal--track-mouse. + Make it into a function and change arg to be a function. + + * lisp.mk (lisp): Add elisp-mode.elc. + +2014-09-26 Paul Eggert + + * xfns.c (x_default_scroll_bar_color_parameter): + Use USE_LOCAL_ALLOCA only if USE_TOOLKIT_SCROLL_BARS, + to pacify --enable-gcc-warnings in non-scrollbar builds. + +2014-09-26 Ken Brown + + * w32term.h (ALIGN_STACK): Fix the cpp condition. + +2014-09-25 Eli Zaretskii + + * lisp.h (USE_STACK_LISP_OBJECTS): Default to false for 32-bit + MinGW builds that use GCC before 4.2. + + Default to stack objects on DOS_NT platforms as well. + * w32term.h (ALIGN_STACK) [__GNUC__]: Define to + __attribute__((force_align_arg_pointer)) for GCC 4.2 and later. + + * lisp.h (USE_STACK_LISP_OBJECTS): Remove the !DOS_NT condition. + + * w32proc.c (enum_locale_fn, enum_codepage_fn): Add the + ALIGN_STACK attribute. + + * w32fns.c (w32_monitor_enum): Add the ALIGN_STACK attribute. + + * w32uniscribe.c (add_opentype_font_name_to_list): Add the + ALIGN_STACK attribute. + + * w32font.c (add_font_name_to_list, add_font_entity_to_list) + (add_one_font_entity_to_list): Add the ALIGN_STACK attribute. + +2014-09-25 Martin Rudalics + + * frame.c (frame_inhibit_resize): + * widget.c (EmacsFrameResize): + * window.c (resize_frame_windows, Fset_window_configuration): + * xdisp.c (expose_frame): + * xfns.c (x_change_tool_bar_height): + * xmenu.c (update_frame_menubar): + * xterm.c (handle_one_xevent, x_new_font, x_set_window_size_1): + Remove code left dead after 2014-07-27 changes. + +2014-09-25 Paul Eggert + + Fix local_cons etc. to not exhaust the stack when in a loop. + Problem reported in: + http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00696.html + * buffer.c (Fother_buffer, other_buffer_safely, init_buffer): + * charset.c (load_charset_map_from_file, Ffind_charset_region) + (Ffind_charset_string): + * chartab.c (uniprop_encode_value_numeric, uniprop_table): + * data.c (wrong_range): + * editfns.c (Fpropertize, format2): + * emacs.c (init_cmdargs, decode_env_path): + * fileio.c (auto_save_error): + * fns.c (Fyes_or_no_p): + * font.c (font_style_to_value, font_parse_xlfd) + (font_parse_family_registry, font_delete_unmatched) + (font_add_log): + * fontset.c (Fset_fontset_font): + * frame.c (x_get_arg): + * keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item) + (read_char_minibuf_menu_prompt): + * keymap.c (silly_event_symbol_error, describe_vector): + * lread.c (load_warn_old_style_backquotes): + * menu.c (single_menu_item): + * minibuf.c (Fread_buffer): + * process.c (status_message, Fformat_network_address) + (server_accept_connection): + * textprop.c (copy_text_properties): + * xdisp.c (Fcurrent_bidi_paragraph_direction): + * xfns.c (x_default_scroll_bar_color_parameter): + * xfont.c (xfont_open): + * xselect.c (x_clipboard_manager_error_1): + * xterm.c (x_term_init): + Put USE_LOCAL_ALLOCA at the start of the function. + * fns.c (maybe_resize_hash_table): Use build_string instead of + build_local_string, since we'd otherwise need a conditional + USE_LOCAL_ALLOCA here, but this is just debugging output and is + not worth the bother of optimization. + * font.c (font_delete_unmatched): Remove by-hand code that + observed MAX_ALLOCA limit, since it's now done automatically. + * keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top, + since build_local_string needs its sa_alloc. + * lisp.h (lisp_word_count): New function. + (SAFE_ALLOCA_LISP): Use it. + (USE_LOCAL_ALLOCA): New macro. + (local_cons, make_local_vector, make_local_string): + Observe the MAX_ALLOCA limit. + (LISP_STRING_OVERHEAD): New constant. + (make_local_string): Use it. + +2014-09-24 Paul Eggert + + Default to stack objects on non-GNU/Linux, non-DOS_NT platforms. + * lisp.h (USE_STACK_LISP_OBJECTS): Also default to true + if !defined DOS_NT && !defined GNU_LINUX. I've tested this on AIX + and Solaris and it's likely to work on similar platforms. + + Avoid signed integer overflow when converting Time to ptrdiff_t. + * keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN): + New macros. + (position_to_Time, Time_to_position): New functions. + (gen_help_event, kbd_buffer_get_event): Use them. + * systime.h (Time) [emacs && !HAVE_X_WINDOWS]: + Go back to plain 'unsigned long', so that 'Time' is the same + for both X and non-X builds; this is less likely to cause surprise. + * termhooks.h: Remove compile-time check that Time and ptrdiff_t + are the same size; this is no longer required. + + * keyboard.c (make_lispy_event): Avoid unnecessary tests + of bit 28 and of whether an unsigned value is negative. + This simplifies the code a bit, and pacifies clang 3.4. + +2014-09-24 Eli Zaretskii + + * systime.h (Time): Define as size_t, to be consistent with 64-bit + Windows builds, where 'long' is a 32-bit type. + + * w32inevt.h (w32_console_mouse_position): Update the argument + types to use 'Time'. + + * w32term.c (w32_mouse_position) + (x_horizontal_scroll_bar_report_motion) + (x_scroll_bar_report_motion): Update the argument types to use + 'Time'. + +2014-09-24 Dmitry Antipov + + * termhooks.h (enum scroll_bar_part): Begin from 0 to allow... + (struct input_event): ...unsigned bitfields. Likewise for + `event_kind' member. Prefer unsigned for `code' and 'modifiers'. + Use `timestamp' for HELP_EVENT position. Add compile-time assert. + * keyboard.c (gen_help_event, kbd_buffer_store_help_event) + (kbd_buffer_get_event): Adjust users. + (scroll_bar_parts): Add Qnil to match scroll_bar_nowhere. + (make_scroll_bar_position): New function, refactored out of... + (make_lispy_event): ...adjusted user. + * nsterm.h (EmacsScroller): Use enum for `last_hit_part' member. + * nsterm.m (ns_mouse_position, mouseUp): + * term.c (term_mouse_position): + * w32inevt.c (w32_console_mouse_position): + * w32term.c (w32_mouse_position): + * xterm.c (XTmouse_position): Use scroll_bar_above_handle. + (x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback): + Prefer enum and explicit enum members to integers and numeric values. + + * chartab.c (uniprop_encode_value_numeric): + * font.c (font_style_to_value): Use make_local_vector. + (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA. + * keymap.c (append_key): Use scoped_list1. + + * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX + && __GNUC__ && !__clang__. Mention known problems. Adjust comment. + +2014-09-24 Paul Eggert + + Fix some slow uses and misuses of strcat. + * doc.c (get_doc_string): + * gtkutil.c (get_utf8_string): + * xsmfns.c (x_session_initialize): + Avoid recomputation of string length. + * ftfont.c (ftfont_spec_pattern): + * xfns.c (xic_create_fontsetname): + Don't assume output buffer is initially zero. + +2014-09-23 Paul Eggert + + * lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy. + All callers changed. + * xterm.c (x_term_init): Use new functionality to avoid two needs + to compute a string length. + + * dispextern.h, xdisp.c (window_box_right_offset): Now static. + +2014-09-23 Dmitry Antipov + + Use known length of a Lisp string to copy it faster. + * lisp.h (lispstrcpy): New function. Add comment. + * callproc.c (child_setup): + * dbusbind.c (xd_append_arg): + * doc.c (get_doc_string): + * font.c (Ffont_xlfd_name): + * frame.c (xrdb_get_resource): + * process.c (Fmake_network_process, network_interface_info): + * w32fns.c (Fx_open_connection): + * w32proc.c (sys_spawnve): + * xfns.c (select_visual): + * xfont.c (xfont_list): + * xsmfns.c (x_session_initialize): + * xterm.c (x_term_init): Use it. + +2014-09-23 Paul Eggert + + Fix SAFE_ALLOCA to not exhaust the stack when in a loop. + Problem reported by Dmitry Antipov in thread leading to: + http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00713.html + This patch fixes only SAFE_ALLOCA, SAFE_NALLOCA, and SAFE_ALLOCA_LISP; + the experimental local_* macros enabled by USE_LOCAL_ALLOCATORS + remain unfixed. + * callproc.c (call_process): Save and restore sa_avail. + * lisp.h (USE_SAFE_ALLOCA): Define sa_avail. + (AVAIL_ALLOCA): New macro. + (SAFE_ALLOCA, SAFE_NALLOCA, SAFE_ALLOCA_LISP): + Use it, and check against sa_avail rather than MAX_ALLOCA. + +2014-09-22 Dmitry Antipov + + On OSX, do not free font-specific data more than once (Bug#18501). + * macfont.m (macfont_close): Release and free font-specific data + only if it wasn't previously freed. + +2014-09-22 David Caldwell (tiny change) + + * unexmacosx.c (dump_it): Improve error message. + +2014-09-22 Juri Linkov + + * image.c (imagemagick_load_image): Add delay to imagemagick metadata. + (Bug#10747, bug#18334) + +2014-09-22 Eli Zaretskii + + * frame.c (Fmouse_position, Fset_mouse_position): Clarify the + units in which the position is measured. (Bug#18493) + + * xdisp.c (redisplay_internal): Force redisplay of all windows + that show a buffer whose narrowing has changed. (Bug#18490) + +2014-09-22 Eli Zaretskii + + * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor): + * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L + lines, draw the hollow-box and hbar cursors on the right side of + cursor-glyph. Thanks to martin rudalics for + testing on X. + + * xterm.c (x_draw_stretch_glyph_string): + * w32term.c (x_draw_stretch_glyph_string): Fix a thinko that + caused the block cursor to disappear on a TAB in R2L lines in + every window except the leftmost one. Reported by Martin Rudalics + . + +2014-09-22 Dmitry Antipov + + Always use matched specpdl entry to record call arguments (Bug#18473). + * lisp.h (record_in_backtrace): Adjust prototype. + * eval.c (record_in_backtrace): Return current specpdl level. + (set_backtrace_args, set_backtrace_nargs): Merge. Adjust all users. + (eval_sub, Ffuncall): Record call arguments in matched specpdl + entry and use that entry in call to backtrace_debug_on_exit. + (apply_lambda): Likewise. Get current specpdl level as 3rd arg. + (do_debug_on_call): Get current specpdl level as 2nd arg. + + Prefer ptrdiff_t to int and avoid integer overflows. + * fileio.c (make_temp_name): + * font.c (font_parse_family_registry): Avoid integer + overflow on string size calculation. + * data.c (Faset): Likewise for byte index. + +2014-09-22 Eli Zaretskii + + Fix display of R2L lines in partial-width windows. + * xdisp.c (init_iterator): Don't use it->bidi_p before it is + assigned the correct value. + (extend_face_to_end_of_line): Account for truncation and + continuation glyphs in R2L rows when one of the fringes is not + displayed. + (display_line): Don't assign negative X offset to a row if we are + going to produce a truncation glyph for it. When handling + truncated R2L rows, consider the width of the left fringe instead + of the right one. + (produce_special_glyphs): Fix bogus assignments. + +2014-09-22 Eli Zaretskii + + * fileio.c (Fexpand_file_name) [DOS_NT]: Make sure newdirlim is + always set to a valid value. Make sure the size passed to alloca + is always positive. (Bug#18516) + +2014-09-22 Dmitry Antipov + + Avoid extra call to oblookup when interning symbols. + * lisp.h (intern_driver): Add prototype. + * lread.c (intern_driver): New function. + (intern1, intern_c_string_1, Fintern): + * font.c (font_intern_prop): + * w32font.c (intern_font_name): Use it. + +2014-09-21 Paul Eggert + + Minor improvements to new stack-allocated Lisp objects. + * frame.h (FRAME_PARAMETER): + Prefer scoped_list1 to local_list1 where either would do. + * lisp.h (scoped_list4): New macro. + (local_cons, local_list1, local_list2, local_list3, local_list4) + (make_local_vector, make_local_string, build_local_string): + Prefer functions to macros where either would do. + * xdisp.c (build_desired_tool_bar_string): + Prefer scoped_list4 to local_list4 where either would do. + +2014-09-18 Dmitry Antipov + + More and more stack-allocated Lisp objects if USE_LOCAL_ALLOCATORS. + * lisp.h (local_list4) [USE_LOCAL_ALLOCATORS]: New macro. + [!USE_LOCAL_ALLOCATORS]: Fall back to regular list4. + * frame.h (FRAME_PARAMETER): New macro. + * dispnew.c (init_display): + * fontset.c (Fset_fontset_font): + * frame.c (x_default_parameter): + * xfaces.c (set_font_frame_param, Finternal_merge_in_global_face): + * xfns.c (x_default_scroll_bar_color_parameter) + (x_default_font_parameter, x_create_tip_frame): Use it. + * editfns.c (Fpropertize): Use local_cons. + * process.c (status_message): Use build_local_string. + * xfont.c (xfont_open): Use make_local_string. + * xdisp.c (build_desired_tool_bar_string): Use local_list4. + +2014-09-18 Paul Eggert + + Port USE_LOCAL_ALLOCATORS code to clang 3.4 x86-64. + * lisp.h (USE_LOCAL_ALLOCATORS): Define only if __GNUC__ && + !__clang__. This works with GCC and with clang and is safer for + compilers we don't know about. + (local_cons): Rename parameter to make capture less likely. + +2014-09-17 Samuel Bronson + + * unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927). + +2014-09-17 Paul Eggert + + Fix minor problems found by static checking. + * alloc.c, lisp.h (SAVE_TYPE_INT_OBJ, make_save_int_obj): + Remove; now unused. + * buffer.h (decode_buffer): Doc and indentation fixes. + * fns.c (Qstring_collate_lessp, Qstring_collate_equalp): Now static. + +2014-09-17 Dmitry Antipov + + Avoid clang-specific warnings. + * buffer.c (init_buffer): Shut up -Wself-assign. + * process.c (server_accept_connection): Shut up -Wunsequenced. + +2014-09-16 Daniel Colascione + + * fns.c (sxhash): For symbols, use address as hash code. + +2014-09-16 Dmitry Antipov + + If USE_LOCAL_ALLOCATORS, allocate even more Lisp objects on stack. + * charset.c (load_charset_map_from_file): Use scoped_list2 + and build_local_string. + * buffer.c (Fother_buffer, other_buffer_safely, init_buffer): + * emacs.c (init_cmdargs, decode_env_path): + * fileio.c (Fexpand_file_name): + * fns.c (maybe_resize_hash_table) [ENABLE_CHECKING]: + * frame.c (x_get_arg): + * keyboard.c (safe_run_hooks_error): + * lread.c (load_warn_old_style_backquotes): + * xdisp.c (Fcurrent_bidi_paragraph_direction): + * xfns.c (x_default_scroll_bar_color_parameter, select_visual): + * xselect.c (x_clipboard_manager_error_1) + (x_clipboard_manager_save_all): + * xterm.c (x_term_init): Use build_local_string. + + Avoid more integer overflows on string size calculations. + * category.c (Fmake_category_set): + * xdisp.c (get_overlay_arrow_glyph_row): + * w32font.c (intern_font_name): Prefer ptrdiff_t to int. + +2014-09-15 Eli Zaretskii + + * sound.c [WINDOWSNT]: Include w32common.h and mbstring.h. + (SOUND_WARNING) [WINDOWSNT]: Include in do..while and improve the + error message format. Use message_with_string to have non-ASCII + file names properly displayed. + (do_play_sound) [WINDOWSNT]: Use Unicode APIs to play sound files + when w32-unicode-filenames is non-nil, but not on Windows 9X, + where these APIs are not available even in UNICOWS.DLL. + Improve the format of error messages and include the file name in them + where appropriate. + (Fplay_sound_internal) [WINDOWSNT]: Make the MS-Windows branch + call play-sound-functions, per documentation. + + * w32.c (w32_get_long_filename, w32_get_short_filename): + Constify the input file name arguments. + + * w32.h (w32_get_long_filename, w32_get_short_filename): + Update prototypes. + +2014-09-15 Dmitry Antipov + + If USE_LOCAL_ALLOCATORS, allocate some Lisp objects on stack. + * lisp.h (local_cons, local_list1, local_list2, local_list3) + [USE_LOCAL_ALLOCATORS]: New macros. + [!USE_LOCAL_ALLOCATORS]: Fall back to regular functions. + (build_local_string): Avoid argument name expansion clash with + make_local_string. + * alloc.c (toplevel) + [USE_LOCAL_ALLOCATORS && GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS]: + Preprocessor guard to avoid impossible configuration. + * charset.c (Ffind_charset_region, Ffind_charset_string): + Use make_local_vector. + * lread.c (read1, substitute_object_recurse): Use scoped_cons. + * textprop.c (Fput_text_property, Fadd_face_text_property): + Use scoped_list2. + (copy_text_properties): Use local_cons and local_list3. + * chartab.c (uniprop_table): + * data.c (wrong_choice, wrong_range): + * doc.c (get_doc_string): + * editfns.c (format2): + * fileio.c (Fexpand_file_name, auto_save_error): + * fns.c (Fyes_or_no_p): + * font.c (font_parse_xlfd, font_parse_family_registry, font_add_log): + * fontset.c (Fset_fontset_font): + * keyboard.c (echo_add_key, echo_dash, parse_menu_item) + (read_char_minibuf_menu_prompt): + * keymap.c (silly_event_symbol_error, describe_vector): + * menu.c (single_menu_item): + * minibuf.c (Fread_buffer): + * process.c (status_message, Fformat_network_address) + (server_accept_connection): Use make_local_string and + build_local_string. Prefer compound literals where appropriate. + +2014-09-15 Daniel Colascione + + * fns.c (Fsort): Tweak sort docstring. + +2014-09-15 Eli Zaretskii + + * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of pipes. + (sys_write): When a write to a non-blocking pipe returns ENOSPC, + set errno to EAGAIN instead, to allow the caller to retry the + write after some waiting. Fixes deadlocks when Emacs exchanges a + lot of data through the pipe. (Bug#18420) + + * sound.c (Fplay_sound_internal): Encode the sound file name in + the ANSI codepage. Expand it against data-directory, as per docs, + not against the current directory. No need to make a local copy + of the file name; pass the encoded file name directly to + do_play_sound. (Bug#18463) + + * w32.c (ansi_encode_filename): If w32_get_short_filename returns + NULL, and the file name is not encodable in ANSI codepage, return + the string with "?" replacement characters, which will fail the + caller. This avoids returning a random value in that case. + +2014-09-15 Martin Rudalics + + * window.c (Fresize_mini_window_internal): Set w->total_lines + from w->pixel_height (Bug#18422). + +2014-09-15 Jan Djärv + + * nsterm.m (updateFrameSize:, initFrameFromEmacs:) + (toggleFullScreen:): Take frame_resize_pixelwise into account when + setting resize increments (Bug#18435). + +2014-09-15 Eli Zaretskii + + * xdisp.c (pos_visible_p): Properly save and restore the iterator + state around the call to line_bottom, since it can move the + iterator to another screen line. This fixes off-by-one errors in + the reported row in some rare cases. + +2014-09-14 Jan Djärv + + * callproc.c (init_callproc): Fix bug introduced at + 2014-09-07 (Bug#18474). + +2014-09-13 Dmitry Antipov + + Prefer ptrdiff_t to int and avoid integer overflows. + * fileio.c (make_temp_name): + * font.c (font_parse_family_registry): Avoid integer + overflow on string size calculation. + * data.c (Faset): Likewise for byte index. + +2014-09-12 Detlev Zundel + + * buffer.c (syms_of_buffer): DEFSYM Qchoice (Bug#18337). + +2014-09-11 Dmitry Antipov + + * lisp.h (make_local_string): Nitpick indent. + * print.c (Fprin1_to_string): Remove unused GCPROs. + + More debugging aids around GCPROs. + * lisp.h (struct gcpro) [DEBUG_GCPRO]: Add extra members. + (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7): + Minor restyle. If DEBUG_GCPRO, initialize extra fields. + + * lread.c (readevalloop_eager_expand_eval): Add GCPRO and fix + bootstrap broken if GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. + + Remove redundant GCPROs around Ffuncall and Fapply calls. + This is safe because Ffuncall protects all of its arguments by itself. + * charset.c (map_charset_for_dump): Remove redundant GCPRO. + * eval.c (Fapply, apply1, call0, call1, call2, call3, call4, call5) + (call6, call7): Likewise. Use compound literals where applicable. + (run_hook_with_args_2): Use compound literal. + +2014-09-11 Paul Eggert + + Pacify --enable-gcc-warnings when no window system is used. + These warnings found that subscript error, so they seem worthwhile. + * composite.c (char_composable_p): Simplify a bit. + * frame.c (x_set_frame_parameters): Add an IF_LINT. + * frame.c (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): + * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): + * window.c (set_window_scroll_bars): + Use USE_HORIZONTAL_SCROLL_BARS for simplicity. + * frame.h [! USE_HORIZONTAL_SCROLL_BARS]: + Ignore -Wsuggest-attribute=const. + * window.h (USE_HORIZONTAL_SCROLL_BARS): New macro. + (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Use it. + +2014-09-10 Paul Eggert + + * charset.c (Fget_unused_iso_final_char): Fix subscript error. + Use check_iso_charset_parameter instead of doing the checks by hand. + (check_iso_charset_parameter): Move up. Check parameters a bit + more carefully, and return true for 96-char sets. All callers changed. + +2014-09-10 Paul Eggert + + Simplify lisp.h by removing the __COUNTER__ business. + Problem reported by Dmitry Antipov in: + http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00220.html + * lisp.h (make_local_vector, make_local_string) + (build_local_string): Simplify by not bothering with __COUNTER__. + The __COUNTER__ business wasn't working properly, and was needed + only for hypothetical future expansion anyway. + +2014-09-10 Alp Aker + + * nsterm.m (ns_draw_fringe_bitmap): Use the same logic as other + terms to determine bitmap color. (Bug#18437) + +2014-09-10 Eli Zaretskii + + * w32.c (sys_write): Use SAFE_NALLOCA for the NL -> CRLF + translation buffer. + +2014-09-10 Paul Eggert + + * xterm.c (handle_one_xevent): Add braces to pacify gcc -Wall. + +2014-09-10 Jan Djärv + + * xterm.c (handle_one_xevent): Detect iconified by looking at + _NET_WM_STATE_HIDDEN. + +2014-09-10 Paul Eggert + + * lisp.h (DEFINE_GDB_SYMBOL_ENUM): Remove. + These can generate a constant with the correct value but the wrong + width, which doesn't work as a printf argument. All uses removed. + Problem reported by Dmitry Antipov in: + http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00213.html + (ENUMABLE): Remove; no longer needed. + (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val): + Remove; no longer needed because of the above change. + Each definiens moved to the only use. + + Improve the experimental local and scoped allocation. + * alloc.c (local_string_init, local_vector_init): + New functions, defined if USE_LOCAL_ALLOCATORS. + Mostly, these are moved here from lisp.h, as it's not + clear it's worth making them inline. + * lisp.h (USE_STACK_LISP_OBJECTS): Default to false. + (GCALIGNED): Depend on HAVE_STRUCT_ATTRIBUTE_ALIGNED and + USE_STACK_LISP_OBJECTS, not on a laundry list. + (local_string_init, local_vector_init): New decls. + (union Aligned_Cons): New type. + (scoped_cons): Use it. Give up on the char trick, as it's a too + much of a maintenance hassle; if someone wants this speedup + they'll just need to convince their compiler to align properly. + Conversely, use the speedup if struct Lisp_Cons happens to + be aligned even without a directive. Better yet, help it along + by using union Aligned_Cons rather than struct Lisp_Cons. + (pointer_valid_for_lisp_object): Remove. This check is not + necessary, since make_lisp_ptr is already doing it. All uses removed. + (local_vector_init, local_string_init): Move to alloc.c. + (build_local_vector): Remove this awkward macro, replacing with ... + (make_local_vector): New macro, which acts more like a function. + Use statement expressions and use __COUNTER__ to avoid macro + capture. Fall back on functions if these features are not supported. + (build_local_string, make_local_string): Likewise. + +2014-09-09 Dmitry Antipov + + * xterm.c (x_term_init): Consolidate duplicated code. + [USE_LUCID]: Revert 2014-04-02 change (Bug#18403). Add comment. + (x_delete_terminal): Do not close X connection fd (Bug#18403). + Add eassert and mark dpyinfo as dead only if it was alive. + + Add macros to allocate temporary Lisp objects with alloca. + Respect MAX_ALLOCA and fall back to regular GC for large objects. + * character.h (parse_str_as_multibyte): Move prototype to ... + * lisp.h (parse_str_as_multibyte): ... here. + (struct Lisp_Cons): Add GCALIGNED attribute if supported. + (scoped_cons, scoped_list2, build_local_vector, build_local_string): + New macros. + (scoped_cons_init, pointer_valid_for_lisp_object, local_vector_init) + (local_string_init): New functions. + * alloc.c (verify_alloca) [ENABLE_CHECKING]: New function. + (init_alloc_once): Call it. + + Cleanup last change and make all new stuff conditional. + * lisp.h (build_local_string): Rename to ... + (make_local_string): ... this macro. + (build_local_string, scoped_list1, scoped_list3): New macros. + (toplevel) [USE_STACK_LISP_OBJECTS]: Define all new macros + and functions as such, use regular fallbacks otherwise. + * alloc.c (verify_alloca) [USE_STACK_LISP_OBJECTS]: Define + conditionally. + +2014-09-08 Eli Zaretskii + + * dispnew.c (prepare_desired_row): When MODE_LINE_P is zero, + always make sure the marginal areas of the row are in sync with + what the window wants. (Bug#18419) + + * data.c (set_internal): Use assq_no_quit, not Fassq, to find an + existing binding of a variable, to avoid silently aborting + commands that use specbind. (Bug#18331) + +2014-09-07 Paul Eggert + + Fix bug uncovered by changing alloca to auto buffer (Bug#18410). + * coding.c (growable_destination): New function. + (produce_chars): Use it for sanity checks. Do not fiddle with + dst_end if the source and destination are both nil, as it's + the caller's responsibility to avoid overlap. + * keyboard.c (read_decoded_event_from_main_queue): + The destination must be MAX_MULTIBYTE_LENGTH times the max source + length, not 4 times, to prevent decode_coding_c_string from trying + to reallocate a destination. This removes the need for the FIXME. + + * callproc.c (exec_failed) [DOS_NT]: Define a dummy. + All callers simplified. Add a comment about exec_failed, vfork, + and alloca. + + Adjust drag-and-drop fix when window is above top (Bug#18303). + * xselect.c (x_fill_property_data): Don't let sign bit of negative + XCDR bleed into XCAR's encoded value. Improve checks for + out-of-range data while we're at it. + +2014-09-07 Jan Djärv + + * xselect.c (x_fill_property_data): Handle negative XCDR when data + is CONSP (Bug#18303). + +2014-09-07 Eli Zaretskii + + * callproc.c (child_setup) [WINDOWSNT]: Don't call exec_failed if + 'alloca' gets passed arguments larger than MAX_ALLOCA. + + * font.c (MAX): Define if not defined elsewhere. + +2014-09-07 Paul Eggert + + * keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca + here for destination buffer, to work around what appears to be a + bug in decode_coding_c_string when the source and destination are + both C strings. + + Use SAFE_ALLOCA etc. to avoid unbounded stack allocation (Bug#18410). + This follows up on the recent thread in emacs-devel on alloca; see: + http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00042.html + This patch also cleans up alloca-related glitches noted while + examining the code looking for unbounded alloca. + * alloc.c (listn): + * callproc.c (init_callproc): + Rewrite to avoid need for alloca. + * buffer.c (mouse_face_overlay_overlaps) + (report_overlay_modification): + * buffer.h (GET_OVERLAYS_AT): + * coding.c (make_subsidiaries): + * doc.c (Fsnarf_documentation): + * editfns.c (Fuser_full_name): + * fileio.c (Ffile_name_directory, Fexpand_file_name) + (search_embedded_absfilename, Fsubstitute_in_file_name): + * fns.c (Fmake_hash_table): + * font.c (font_vconcat_entity_vectors, font_update_drivers): + * fontset.c (fontset_pattern_regexp, Ffontset_info): + * frame.c (Fmake_terminal_frame, x_set_frame_parameters) + (xrdb_get_resource, x_get_resource_string): + * ftfont.c (ftfont_get_charset, ftfont_check_otf, ftfont_drive_otf): + * ftxfont.c (ftxfont_draw): + * image.c (xbm_load, xpm_load, jpeg_load_body): + * keyboard.c (echo_add_key, menu_bar_items, tool_bar_items) + + * keymap.c (Fdescribe_buffer_bindings, describe_map): + * lread.c (openp): + * menu.c (digest_single_submenu, find_and_call_menu_selection) + (find_and_return_menu_selection): + * print.c (PRINTFINISH): + * process.c (Fformat_network_address): + * scroll.c (do_scrolling, do_direct_scrolling, scrolling_1): + * search.c (search_buffer, Fmatch_data, Fregexp_quote): + * sound.c (wav_play, au_play): + * syntax.c (skip_chars): + * term.c (tty_menu_activate, tty_menu_show): + * textprop.c (get_char_property_and_overlay): + * window.c (Fset_window_configuration): + * xdisp.c (safe__call, next_overlay_change, vmessage) + (compute_overhangs_and_x, draw_glyphs, note_mouse_highlight): + * xfaces.c (face_at_buffer_position): + * xmenu.c (x_menu_show): + Use SAFE_ALLOCA etc. instead of plain alloca, since the + allocation size isn't bounded. + * callint.c (Fcall_interactively): Redo memory_full check + so that it can be done at compile-time on some platforms. + * coding.c (MAX_LOOKUP_MAX): New constant. + (get_translation_table): Use it. + * callproc.c (call_process): Use SAFE_NALLOCA instead of + SAFE_ALLOCA, to catch integer overflows on size calculation. + (exec_failed) [!DOS_NT]: New function. + (child_setup) [!DOS_NT]: Use it. + * editfns.c (Ftranspose_regions): + Hoist USE_SAFE_ALLOC + SAFE_FREE out of 'if'. + * editfns.c (check_translation): + Allocate larger buffers on the heap. + * eval.c (internal_lisp_condition_case): + Check for MAX_ALLOCA overflow. + * fns.c (sort_vector): Use SAFE_ALLOCA_LISP rather than Fmake_vector. + (Fbase64_encode_region, Fbase64_decode_region): + Avoid unnecessary calls to SAFE_FREE before 'error'. + * buffer.c (mouse_face_overlay_overlaps): + * editfns.c (Fget_pos_property, check_translation): + * eval.c (Ffuncall): + * font.c (font_unparse_xlfd, font_find_for_lface): + * ftfont.c (ftfont_drive_otf): + * keyboard.c (echo_add_key, read_decoded_event_from_main_queue) + (menu_bar_items, tool_bar_items): + * sound.c (Fplay_sound_internal): + * xdisp.c (load_overlay_strings, dump_glyph_row): + Use an ordinary auto buffer rather than alloca, since the + allocation size is fixed and small. + * ftfont.c: Include . + (matching_prefix): New function. + (get_adstyle_property): Use it, to avoid need for alloca. + * keyboard.c (echo_add_key): + * keymap.c (describe_map): Use ptrdiff_t, not int. + * keyboard.c (echo_add_key): Prefer sizeof to strlen. + * keymap.c (Fdescribe_buffer_bindings): Use SBYTES, not SCHARS, + when counting bytes. + * lisp.h (xlispstrdupa): Remove, replacing with ... + (SAFE_ALLOCA_STRING): ... new macro with different API. + This fixes a portability problem, namely, alloca result + passed to another function. All uses changed. + (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Check for MAX_ALLOCA, + not MAX_ALLOCA - 1. + * regex.c (REGEX_USE_SAFE_ALLOCA, REGEX_SAFE_FREE) + (REGEX_ALLOCATE): New macros. + (REGEX_REALLOCATE, REGEX_ALLOCATE_STACK, REGEX_REALLOCATE_STACK) + (REGEX_FREE_STACK, FREE_VARIABLES, re_match_2_internal): + Use them. + * xdisp.c (message3): Use SAFE_ALLOCA_STRING rather than doing it + by hand. + (decode_mode_spec_coding): Store directly into buf rather than + into an alloca temporary and copying the temporary to the buf. + +2014-09-06 Eli Zaretskii + + * Makefile.in (EMACS_HEAPSIZE): Remove, no longer used. (Bug#18416) + +2014-09-04 Jan D + + * xterm.c (x_term_init): Don't call x_session_initialize if running + as a daemon (Bug#18375). + + * xsmfns.c: Initialize ice_fd. + +2014-09-04 Paul Eggert + + Less chatter in 'make' output. + * Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1, AM_V_at) + (am__v_at_, am__v_at_0, am__v_at_1): New macros, taken from Automake. + ($(etc)/DOC, buildobj.h, gl-stamp): Use them. + +2014-09-03 Martin Rudalics + + * buffer.c (scroll-bar-height): Fix typo in doc-string. + * frame.c (Vdefault_frame_horizontal_scroll_bars): + Remove variable. + * nsfns.m (Fx_create_frame): + * w32fns.c (Fx_create_frame): + * xfns.c (Fx_create_frame): Default horizontal scroll bars to + nil. + +2014-09-03 Eli Zaretskii + + * dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in + the reported row in the case of a window with a header line, by + improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org + eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc. (Bug#18384) + +2014-09-03 Paul Eggert + + * eval.c (internal_lisp_condition_case): Don't overrun the stack + when configured --with-wide-int on typical 32-bit platforms. + +2014-09-03 Eli Zaretskii + + * xdisp.c (display_and_set_cursor): Call erase_phys_cursor also + when HPOS is negative, for the benefit of R2L glyph rows whose + newline overflows into the fringe. + +2014-09-03 Ken Brown + + * conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define. (Bug#18366) + +2014-09-02 Paul Eggert + + Minor cleanup of recent strlen-avoiding patch. + * fileio.c (CHECK_LENGTH): Remove. + Rewrite callers so that they don't need it. + (Fexpand_file_name) [DOS_NT]: Fix a case where directory length + variable wasn't set. + +2014-09-02 Dmitry Antipov + + * fileio.c (CHECK_LENGTH): New macro. + (Fexpand_file_name): Use it and get rid of a few more calls + to strlen and strcat. + * callproc.c (egetenv_internal): Add arg and rename from egetenv ... + * lisp.h (egetenv): ... because of a new inline function used to + avoid calls to strlen for a compile-time constants. + + * buffer.h (decode_buffer): New function. + * buffer.c (Fbuffer_name, Fbuffer_file_name, Fbuffer_base_buffer) + (Fbuffer_local_variables, Fbuffer_modified_p, Fbuffer_modified_tick) + (Fbuffer_chars_modified_tick, Fdelete_all_overlays): + * data.c (Flocal_variables_p): + * fileio.c (Fverify_visited_file_modtime): + * marker.c (live_buffer): Use it. + +2014-09-01 Dmitry Antipov + + Avoid extra calls to strlen in filesystem I/O routines. + * fileio.c (Fexpand_file_name): Avoid calls to strlen if + the length of 'newdir' is known or may be precalculated. + (file_accessible_directory_p): Prefer to pass Lisp_Object, + not 'char *', and so use precalculated length. + (Ffile_accessible_directory_p): + * callproc.c (encode_current_directory, init_callproc): + * charset.c (init_charset): + * lread.c (load_path_check, load_path_default): Adjust users. + * lisp.h (file_accessible_directory_p): Tweak prototype. + +2014-09-01 Eli Zaretskii + + * w32proc.c (w32_compare_strings): Support "C" and "POSIX" + locales. + +2014-09-01 Paul Eggert + + --enable-silent-rules now suppresses more chatter. + * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_) + (am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0) + (am__v_CCLD_1): New macros, taken from Automake. + (.c.o, .m.o, temacs$(EXEEXT)): Use them. + + Clean up extern decls a bit. + * bytecode.c: Include blockinput.h and keyboard.h rather + than rolling their APIs by hand. + * emacs.c: Include regex.h and rely on its and lisp.h's API + rather than rolling them by hand. + * lastfile.c: Include lisp.h, to check this file's API. + * lisp.h (lisp_eval_depth, my_edata, my_endbss, my_endbss_static): + New decls. + * regex.h (re_max_failures): New decl. + * unexcw.c, unexmacosx.c, unexw32.c: + Rely on lisp.h's API rather than rolling it by hand. + * vm-limit.c (__after_morecore_hook, __morecore, real_morecore): + Declare at top level, to pacify GCC -Wnested-externs. + +2014-08-31 Eli Zaretskii + + * xdisp.c (get_glyph_string_clip_rects): Don't let the width of a + clipping rectangle become negative (i.e. large positive, since + it's an unsigned data type). This can happen in R2L hscrolled + glyph rows, and caused us to draw the cursor glyph on the fringe. + For the details, see + http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00543.html. + +2014-08-31 Ken Brown + + * gmalloc.c: Don't include . Declare system malloc and + friends before defining hybrid_malloc and friends if HYBRID_MALLOC + is defined. (Bug#18368) + +2014-08-30 Paul Eggert + + Vector-sorting fixes (Bug#18361). + It's not safe to call qsort or qsort_r, since they have undefined + behavior if the user-specified predicate is not a total order. + Also, watch out for garbage-collection while sorting vectors. + * fns.c: Include . + (sort_vector_predicate) [!HAVE_QSORT_R]: Remove. + (sort_vector_compare): Remove, replacing with .... + (inorder, merge_vectors, sort_vector_inplace, sort_vector_copy): + ... these new functions. + (sort_vector): Rewrite to use the new functions. + GCPRO locals, since the predicate can invoke the GC. + Since it's in-place return void; caller changed. + (merge): Use 'inorder', for clarity. + + * sysdep.c (str_collate): Clear errno just before wcscoll(_l). + One can't hoist this out of the 'if', because intervening calls to + newlocale, twolower, etc. can change errno. + +2014-08-30 Eli Zaretskii + + * sysdep.c (str_collate) [__STDC_ISO_10646__]: Improve the + wording of the error messages. + (str_collate) [WINDOWSNT]: Signal an error if w32_compare_strings + sets errno. + + * w32proc.c (get_lcid_callback): Accept locale specifications + without the country part, as in "enu" vs "enu_USA". + (w32_compare_strings): Signal an error if a locale was specified, + but couldn't be translated into a valid LCID. + +2014-08-29 Michael Albinus + + * sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno. + +2014-08-29 Paul Eggert + + * sysdep.c (str_collate) [__STDC_ISO_10646__]: Do not look at + errno after towlower_l. errno's value is not specified after + towlower_l. Instead, assume that towlower_l returns its argument + on failure, which is portable in practice. + +2014-08-29 Eli Zaretskii + + * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): Doc fix. + + * w32proc.c (w32_compare_strings): Accept additional argument + IGNORE_CASE. Set up the flags for CompareStringW to ignore case + if requested. If w32-collate-ignore-punctuation is non-nil, add + NORM_IGNORESYMBOLS to the flags. + (LINGUISTIC_IGNORECASE): Define if not already defined. + (syms_of_ntproc) : New variable. + + * sysdep.c (str_collate) [WINDOWSNT]: Adapt to the interface + change. + +2014-08-29 Michael Albinus + + * sysdep.c (LC_CTYPE, LC_CTYPE_MASK, towlower_l): + Define substitutes for platforms that lack them. + (str_collate): Add arguments locale and ignore_case. + + * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): + Add optional arguments LOCALE and IGNORE-CASE. + + * lisp.h (str_collate): Adapt argument list. + +2014-08-29 Dmitry Antipov + + Add vectors support to Fsort. + * fns.c (sort_vector, sort_vector_compare): New functions. + (sort_list): Likewise, refactored out of ... + (Fsort): ... adjusted user. Mention vectors in docstring. + (sort_vector_predicate) [!HAVE_QSORT_R]: New variable. + * alloc.c (make_save_int_obj): New function. + * lisp.h (enum Lisp_Save_Type): New member SAVE_TYPE_INT_OBJ. + (make_save_int_obj): Add prototype. + + Fix last change to support Darwin/OSX and FreeBSD (Bug#18354). + * sysdep.c (sort_vector_compare) [DARWIN_OS || __FreeBSD__]: + Conditionally define to match system's qsort_r signature. + (sort_vector) [DARWIN_OS || __FreeBSD__]: Likewise in call to qsort_r. + +2014-08-28 Ken Brown + + Add support for HYBRID_MALLOC, allowing the use of gmalloc before + dumping and the system malloc after dumping. (Bug#18222) + + * conf_post.h (malloc, realloc, calloc, free) [HYBRID_MALLOC]: + Define as macros, expanding to hybrid_malloc, etc. + (HYBRID_GET_CURRENT_DIR_NAME): New macro. + (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Define as + macro. + * gmalloc.c: Set up the infrastructure for HYBRID_MALLOC, with a + full implementation on Cygwin. Remove Cygwin-specific code that + is no longer needed. + (malloc, realloc, calloc, free, aligned_alloc) [HYBRID_MALLOC]: + Redefine as macros expanding to gmalloc, grealloc, etc. + (DUMPED, ALLOCATED_BEFORE_DUMPING) [CYGWIN]: New macros. + (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Undefine. + (USE_PTHREAD, posix_memalign) [HYBRID_MALLOC]: Don't define. + (hybrid_malloc, hybrid_calloc, hybrid_free, hybrid_realloc) + [HYBRID_MALLOC]: + (hybrid_get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: + (hybrid_aligned_alloc) [HYBRID_MALLOC && (HAVE_ALIGNED_ALLOC || + HAVE_POSIX_MEMALIGN)]: New functions. + * alloc.c (aligned_alloc) [HYBRID_MALLOC && (ALIGNED_ALLOC || + HAVE_POSIX_MEMALIGN)]: Define as macro expanding to + hybrid_aligned_alloc; declare. + (USE_ALIGNED_ALLOC) [HYBRID_MALLOC && (ALIGNED_ALLOC || + HAVE_POSIX_MEMALIGN)]: Define. + (refill_memory_reserve) [HYBRID_MALLOC]: Do nothing. + * sysdep.c (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: + Define as macro, expanding to gget_current_dir_name, and define + the latter. + * emacs.c (main) [HYBRID_MALLOC]: Don't call memory_warnings() or + malloc_enable_thread(). Don't initialize malloc. + * lisp.h (NONPOINTER_BITS) [CYGWIN]: Define (because GNU_MALLOC is + no longer defined on Cygwin). + (refill_memory_reserve) [HYBRID_MALLOC]: Don't declare. + * sheap.c (bss_sbrk_buffer_end): New variable. + * unexcw.c (__malloc_initialized): Remove variable. + * ralloc.c: Throughout, treat HYBRID_MALLOC the same as + SYSTEM_MALLOC. + * xdisp.c (decode_mode_spec) [HYBRID_MALLOC]: Don't check + Vmemory_full. + +2014-08-28 Martin Rudalics + + * w32term.c (w32_horizontal_scroll_bar_handle_click): + In `event->y' return entire range (the size of the scroll bar minus + that of the thumb). + * xterm.c (xm_scroll_callback, xaw_jump_callback): In `whole' + return entire range (the scaled size of the scroll bar minus + that of the slider). In `portion' return the scaled position of + the slider. + (xaw_jump_callback): Restore part of code for vertical scroll + bar broken in change from 2014-07-27. + (xaw_scroll_callback): Provide incremental scrolling with + horizontal scroll bars. + +2014-08-28 Eli Zaretskii + + * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define. + + * indent.c (Fvertical_motion): Fix vertical motion up through a + display property after a newline. (Bug#18276) + + * xdisp.c (display_line): Don't assume that the call to + reseat_at_next_visible_line_start ends up at a character + immediately following the newline on the previous line. + Avoids setting the ends_at_zv_p flag on screen lines that are not at or + beyond ZV, which causes infloop in redisplay. For the details, see + http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html. + + * dispnew.c (buffer_posn_from_coords): Fix mirroring of X + coordinate for hscrolled R2L screen lines. (Bug#18277) + +2014-08-28 Paul Eggert + + * sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults + (Bug#18051). + +2014-08-27 Eli Zaretskii + + * syntax.c (scan_lists): Don't examine positions before BEGV. + (Bug#18339) + +2014-08-27 Paul Eggert + + Improve robustness of new string-collation code (Bug#18051). + * sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t) + (newlocale, wcscoll_l): Define substitutes for platforms that + lack them, so as to simplify the mainline code. + (str_collate): Simplify the code by assuming the above definitions. + Use wcscoll_l, not uselocale, as uselocale is too fragile. + For example, the old version left the Emacs in the wrong locale if + wcscoll reported an error. Use 'int', not ptrdiff_t, for the int + result. Report an error if newlocale fails. + +2014-08-27 Michael Albinus + + * lisp.h (str_collate): + * sysdep.c (str_collate): Return int. + (str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll. + +2014-08-27 Dmitry Antipov + + Fix some glitches in previous change. + * sysdep.c (stack_direction): Replace stack_grows_down + to simplify calculation of stack boundaries. + (handle_sigsegv): Check whether we really crash somewhere near + to stack boundary, and handle fatal signal as usual if not. + (init_sigsegv): Adjust accordingly. + * keyboard.c (Vtop_level_message): Rename to + Vinternal__top_level_message, as suggested by Stefan Monnier in + http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00493.html + All related users changed. + +2014-08-26 Dmitry Antipov + + Handle C stack overflow caused by too nested Lisp evaluation. + * lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare + siglongjmp point to transfer control from SIGSEGV handler. + * keyboard.c (return_to_command_loop, recover_top_level_message) + [HAVE_STACK_OVERFLOW_HANDLING]: New variables. + (regular_top_level_message): New variable. + (command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local + exit from SIGSEGV handler and adjust message displayed by Vtop_level + if appropriate. + (syms_of_keyboard): DEFVAR Vtop_level_message and initialize + new variables described above. + * sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such. + (stack_grows_down, sigsegv_stack, handle_sigsegv) + [HAVE_STACK_OVERFLOW_HANDLING]: New variables and function. + (init_sigsegv): New function. + (init_signals): Use it. + +2014-08-25 Ken Brown + + * emacs.c (main): Remove use of obsolete macro + G_SLICE_ALWAYS_MALLOC. + +2014-08-25 Eli Zaretskii + + Implement locale-sensitive string collation for MS-Windows. + * w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings): + New functions. (Bug#18051) + + * w32.h (w32_compare_strings): Add prototype. + + * w32.c : New global flag. + (globals_of_w32): Initialize it. + + * sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows. + + * fns.c (Fstring_collate_lessp, Fstring_collate_equalp) + [WINDOWSNT]: Call str_collate on MS-Windows. + +2014-08-25 Dmitry Antipov + + One more minor cleanup of font subsystem. + * font.h (struct font_driver): Convert text_extents to + return void because returned value is never actually used. + * macfont.m (macfont_text_extents): + * w32font.c (w32font_text_extents): + * xftfont.c (xftfont_text_extents): Adjust to return void + and assume that 'metrics' argument is always non-NULL. + * ftfont.c (ftfont_text_extents): + * xfont.c (xfont_text_extents): Likewise. Avoid redundant memset. + +2014-08-25 Paul Eggert + + Minor cleanups of str_collate fix (Bug#18051). + * fns.c (str_collate): Move decl from here ... + * lisp.h (str_collate): ... to here. + * sysdep.c (str_collate): Prune away some of the forest of ifdefs. + Remove unnecessary casts. Use SAFE_NALLOCA to avoid + potential problems with integer overflow. Don't assume + setlocale succeeds. Remove unnecessary test before restoring + locale via setlocale, and free the copied setlocale string + when done with it. + +2014-08-24 Michael Albinus + + * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): New DEFUNs. + + * sysdep.c (str_collate): New function. (Bug#18051) + +2014-08-23 Karol Ostrovsky (tiny change) + + * Makefile.in (emacs$(EXEEXT)): Retry deletion of bootstrap-emacs + if the initial "rm -f" fails. This is for MinGW builds, where + MS-Windows will not allow deleting the executable file of a + running program. + +2014-08-20 Eli Zaretskii + + * w32term.c (w32_scroll_bar_handle_click) + (w32_horizontal_scroll_bar_handle_click) + (x_scroll_bar_report_motion) + (x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and + SB_THUMBTRACK, use the 32-bit position information returned by + GetScrollInfo, not the 16-bit information returned in the Windows + message sent to us. + +2014-08-19 Eli Zaretskii + + * w32term.c (w32_horizontal_scroll_bar_handle_click): Fix the + second coordinate ('y') reported for dragging the horizontal + scroll bar thumb. + +2014-08-19 YAMAMOTO Mitsuharu + + * xdisp.c (erase_phys_cursor): Fix confusion between window-relative + and text area-relative x-coordinates. + +2014-08-17 Eli Zaretskii + + Avoid overwriting the reversed_p flags in the glyph matrices when + init_iterator or start_display are called. + * xdisp.c (init_iterator): Don't initialize the reversed_p flag of + the glyph row here. + (tool_bar_height, redisplay_tool_bar, try_window) + (try_window_reusing_current_matrix, try_window_id) + (get_overlay_arrow_glyph_row, display_menu_bar): Initialize the + reversed_p flag of the iterator's glyph row where the glyph row + is going to be redrawn. + +2014-08-16 Paul Eggert + + * xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local. + +2014-08-16 Martin Rudalics + + * w32term.c (w32_horizontal_scroll_bar_handle_click): In y part + of emacs_event return length from si.nPage to si.nMax. + * xdisp.c (set_horizontal_scroll_bar): For right-to-left text + interchange start and end of thumb. + +2014-08-15 Ken Brown + + * gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use + ERRORCHECK mutexes. (Bug#18222) + +2014-08-12 Martin Rudalics + + * frame.c (set_menu_bar_lines_1): Remove. + (set_menu_bar_lines): Call change_frame_size instead of + set_menu_bar_lines_1. + +2014-08-11 Jan Djärv + + * nsfns.m (Fx_create_frame): Call adjust_frame_size, + set f->official. + +2014-08-11 Glenn Morris + + * fileio.c: Revert 2013-01-31 change, which chose coding system for + writing before backing up, since it causes a more serious problem + than the one it solves. (Closes Bug#18141, reopens Bug#13522.) + (choose_write_coding_system): No longer callable from Lisp. + Move last piece back here from Fwrite_region. + (Fwrite_region, syms_of_fileio): Update for above changes. + +2014-08-11 Martin Rudalics + + * window.c (Fwindow_valid_p): Fix doc-string (Bug#18194). + (Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal) + (Fwindow_new_pixel, Fset_window_new_pixel) + (Fset_window_new_total, Fset_window_new_normal) + (Fwindow_resize_apply): Fix doc-strings (see Bug#18112). + See also: + http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html + +2014-08-11 Eli Zaretskii + + * fontset.c (Finternal_char_font): Recompute basic faces if the + frame's face cache was cleared. (Bug#18162) + +2014-08-11 Dmitry Antipov + + Fix bug with uninitialized undo list of an indirect buffer (Bug#18180). + * buffer.c (Fmake_indirect_buffer): Initialize undo list with the + base buffer's undo list. + +2014-08-10 Reuben Thomas + + Fix a couple of recent inadvertent breaks of the MSDOS port. + * msdos.c: include required menu.h + * term.c: set correct menu_show_hook on MSDOS. + +2014-08-10 Martin Rudalics + + Fix handling of menu bar line on TTY frames (Bug#18136) + (Bug#18196). + * dispnew.c (handle_window_change_signal): + * keyboard.c (Fsuspend_emacs): Call change_frame_size with + frame's menu bar lines subtracted from height. + * frame.c (frame_inhibit_resize): Inhibit resizing of TTY + frames. + (adjust_frame_size): Count in menu bar when setting FrameRows. + (make_terminal_frame): When setting up the frame's lines and + text height don't count in the menu bar. + (Fmake_terminal_frame): Call adjust_frame_size with menu bar + lines subtracted from height. + (do_switch_frame): Set tty's FrameRows to number of total lines + of frame. + (Fframe_pixel_height, Fframe_pixel_width): If no window system + is used, return total number of lines and columns. + * menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead + of FRAME_LINES. + * term.c (OUTPUT, tty_set_terminal_modes) + (tty_set_terminal_window, tty_set_scroll_region) + (tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face) + (tty_ins_del_lines, tty_menu_display, tty_menu_activate): + Use FRAME_TOTAL_LINES instead of FRAME_LINES. + (Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES. + Call change_frame_size with frame's menu bar lines subtracted + from height. + * w32console.c (w32con_clear_to_end, w32con_clear_frame) + (w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of + FRAME_LINES. + +2014-08-09 Reuben Thomas + + * alloc.c (Fmemory_info): Remove a stray brace. + + * process.c: Fix a comment typo. + + * msdos.c, dosfns.c (init_dosfns): Remove support for DJGPP < 2.02. + +2014-08-09 Jan Djärv + + * widgetprv.h (EmacsFramePart): Remove font. + + * widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs) + (resources, setup_frame_cursor_bits): Remove unused variables and + functions, esp. wrt. font (Bug#18227). + +2014-08-07 Paul Eggert + + * xterm.c (x_delete_terminal): Plug file descriptor leak (Bug#17691). + +2014-08-07 Reuben Thomas + + Refer to MS-DOS using the same name everywhere. + + * editfns.c: Fix a couple of ``MS-DOG''s missed in the previous + commit. + * xfaces.c: ditto. + +2014-08-05 Martin Rudalics + + * w32term.c (w32_redeem_scroll_bar): + * xterm.c (XTredeem_scroll_bar): Revert part of last change by + not redeeming scroll bars that have been turned off. + +2014-08-05 Dmitry Antipov + + * keyboard.c (safe_run_hooks): Follow the convenient style to bind + inhibit-quit to t and pass 2 args to safe_run_hook_funcall. See + . + (safe_run_hook_funcall): Adjust accordingly. + +2014-08-04 Martin Rudalics + + * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): + Condition correctly according to toolkit used. + * frame.c (make_initial_frame, make_terminal_frame) + (x_set_horizontal_scroll_bars, x_set_scroll_bar_height) + (Vdefault_frame_horizontal_scroll_bars): Correctly condition + assignments according to presence of toolkit scrollbars. + * window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): + Condition correctly according to toolkit used. + * window.c (set_window_scroll_bars): Set horizontal scroll bar + only if toolkit supports it. + * w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if + present. + * xterm.c (x_scroll_bar_create): Initialize horizontal slot for + non-toolkit builds. + (XTredeem_scroll_bar): Always redeem scroll bar if present. + +2014-08-04 Dmitry Antipov + + * keyboard.c (safe_run_hook_funcall): Avoid consing around + Vinhibit_quit and prefer internal_condition_case_n to pass args. + (safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly. + (safe_run_hooks): Remove comment which is not relevant any more. + +2014-08-03 Paul Eggert + + Don't let big frames overrun the stack. + * dispnew.c (mirrored_line_dance, mirror_line_dance, scrolling): + Use SAFE_NALLOCA, not alloca. + + Fix bug with clang + directory_files_internal + GC (Bug#16986). + * dired.c (directory_files_internal): Use a volatile variable + to prevent the compiler from optimizing away all copies of a local. + I wonder how many other GC-related bugs like this lurk elsewhere? + + Avoid 100% CPU utilization on ssh session exit (Bug#17691). + * xterm.h (struct x_display_info): New member 'connection'. + * xterm.c (x_term_init, x_delete_terminal): Set and use it, + so that x_delete_terminal has a file descriptor to pass to + delete_keyboard_wait_descriptor. + + Don't mishandle year-9999 dates (Bug#18176). + * editfns.c (decode_time_components): Store an invalid timespec + on overflow, instead of returning false, so that the caller can + distinguish overflow from other errors. + (lisp_time_argument, lisp_seconds_argument): If the time is out + of range, signal a time overflow instead of an invalid time spec. + * keyboard.c (decode_timer): Treat time overflow like other + timespec errors. + + Avoid undefined behavior with signed left shift. + Caught by 'gcc -fsanitize=undefined'. + * dispextern.h, scroll.c (scrolling_max_lines_saved, scrolling_1): + * dispnew.c (line_hash_code, scrolling): + * scroll.c (calculate_scrolling, calculate_direct_scrolling): + Use 'unsigned', not 'int', for line hashes. + (scrolling_max_lines_saved): Avoid mystery constants for hash sizes. + +2014-08-02 Paul Eggert + + Make compare-strings more compatible with old behavior (Bug#17903). + * fns.c (Fcompare_strings): Silently bring too-large ends into range. + +2014-08-02 Jan Djärv + + * gtkutil.c (create_dialog): Force min spacing 10 between buttons. + Don't add label between left and right buttons (Bug#18129). + +2014-08-01 Paul Eggert + + Make functions static that no longer need to be extern. + * frame.c, frame.h (set_menu_bar_lines): + * keyboard.c (Qleftmost, Qrightmost): + * xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines) + (x_set_internal_border_width): + Now static. + +2014-08-01 Eli Zaretskii + + Fix display of R2L lines when the last character fits only partially. + See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html + for the details. + * xdisp.c (extend_face_to_end_of_line): If the last glyph of an + R2L row is visible only partially, give the row a negative x + offset. + (display_line): Fix the calculation of the glyph whose pixel width + is used to decide whether the last produced glyph fits on the + line. When the last glyph fits only partially, give the row a + negative x offset. + + Fix hscroll of R2L lines that begin with a TAB or another wide glyph. + * xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the + pixel width of the first glyph that is hscrolled from display. + (display_line): In R2L glyph rows, don't give a negative offset to + row->x when the first glyph begins before first_visible_x. + + * xdisp.c (display_line): If called with iterator set up to write + to a marginal area, delay the call to handle_line_prefix until we + switch back to the text area. (Bug#18035) + + * .gdbinit (xwindow): The members total_cols, total_lines, + left_col, and top_line are C integers (and has been so for the + last 1.5 years). + +2014-08-01 Andreas Schwab + + * macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and + kbd_macro_end together with kbd_macro_buffer. (Bug#18140) + +2014-08-01 Dmitry Antipov + + * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h. + (timerfd_callback): Ignore weird events with no data. Add tight + assertions and comments. + (init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally + disable timerfd-based timer. Use TFD_NONBLOCK for timer descriptor. + +2014-08-01 Paul Eggert + + * frame.c (x_set_frame_parameters): Fix typo in previous patch. + I had confused && with ||. + 2014-07-31 Paul Eggert Simplify timerfd configuration and fix some minor glitches. @@ -140,15 +3237,15 @@ (x_set_scroll_bar_height): Add external declarations. * frame.c: (frame_inhibit_resize, frame_windows_min_size) (adjust_frame_size): New functions. - (make_frame): Initial horizontal_scroll_bars field. Use - SET_FRAME_LINES. Don't allow horizontal scroll bar in + (make_frame): Initial horizontal_scroll_bars field. + Use SET_FRAME_LINES. Don't allow horizontal scroll bar in minibuffer window. (make_initial_frame, make_terminal_frame): No horizontal scroll bar in initial and terminal frames. Use adjust_frame_size. (Fframe_total_cols): Fix doc-string. (Fframe_total_lines, Fscroll_bar_height): New Lisp functions. - (Fset_frame_height, Fset_frame_width, Fset_frame_size): Rewrite - using adjust_frame_size. + (Fset_frame_height, Fset_frame_width, Fset_frame_size): + Rewrite using adjust_frame_size. (Qscroll_bar_height, Qhorizontal_scroll_bars) (Qframe_windows_min_size): New symbols. (x_set_frame_parameters): Remove call of check_frame_size. @@ -159,8 +3256,8 @@ (x_set_internal_border_width, x_set_vertical_scroll_bars) (x_set_scroll_bar_width, x_set_right_divider_width) (x_set_bottom_divider_width): Rewrite using adjust_frame_size. - (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): New - functions. + (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): + New functions. (x_figure_window_size): Rewrite to make frame display the expected number of lines. (Vdefault_frame_scroll_bars): Rewrite doc-string. @@ -207,8 +3304,8 @@ compute_fringe_widths. * term.c (Fresume_tty): When changing the size of a tty frame do not pass height of menu bar. - (clear_tty_hooks, set_tty_hooks): Clear - horizontal_scroll_bar_hook. + (clear_tty_hooks, set_tty_hooks): + Clear horizontal_scroll_bar_hook. (init_tty): Frame has no horizontal scroll bars. * termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio, scroll_bar_before_handle, scroll_bar_horizontal_handle, @@ -217,25 +3314,25 @@ scroll_bar_to_rightmost entries. (enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT (struct terminal): Add set_horizontal_scroll_bar_hook. - * w32console.c (initialize_w32_display): Clear - horizontal_scroll_bar_hook. + * w32console.c (initialize_w32_display): + Clear horizontal_scroll_bar_hook. * w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of FRAME_X_DISPLAY. (x_clear_under_internal_border, x_set_internal_border_width): New functions. - (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize. Set - windows_or_buffers_changed when adding the menu bar. + (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize. + Set windows_or_buffers_changed when adding the menu bar. (x_set_tool_bar_lines): Rewrite using adjust_frame_size. (x_change_tool_bar_height, x_set_scroll_bar_default_height) (w32_createhscrollbar): New functions. (w32_createscrollbar): Rename to w32_createvscrollbar. (w32_createwindow): Init WND_HSCROLLBAR_INDEX. (w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by - WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR. Add - WM_EMACS_SHOWCURSOR. + WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR. + Add WM_EMACS_SHOWCURSOR. (w32_wnd_proc): Handle WM_HSCROLL case. In WM_WINDOWPOSCHANGING - case do not artificially impose WM size hints. Handle - WM_EMACS_SHOWCURSOR case. Replace WM_EMACS_CREATESCROLLBAR case + case do not artificially impose WM size hints. + Handle WM_EMACS_SHOWCURSOR case. Replace WM_EMACS_CREATESCROLLBAR case by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR cases. (my_create_tip_window): Replace WND_SCROLLBAR_INDEX by @@ -254,8 +3351,8 @@ pass height of menu bar to change_frame_size. * w32menu.c (set_frame_menubar): Rewrite using frame_inhibit_resize. - * w32term.h (struct w32_display_info): Add - horizontal_scroll_bar_cursor and cursor_display_counter. + * w32term.h (struct w32_display_info): + Add horizontal_scroll_bar_cursor and cursor_display_counter. (struct scroll_bar): Add horizontal. (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT) (HORIZONTAL_SCROLL_BAR_LEFT_RANGE) @@ -265,8 +3362,8 @@ (HORIZONTAL_SCROLL_BAR_TOP_BORDER) (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER) (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros. - (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR): Define - instead of WM_EMACS_CREATESCROLLBAR. + (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR): + Define instead of WM_EMACS_CREATESCROLLBAR. (WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of WND_SCROLLBAR_INDEX. * w32term.c (horizontal_scroll_bar_min_handle) @@ -285,18 +3382,18 @@ scrollbar cases. (my_create_scrollbar): Replace with two new functions my_create_vscrollbar and my_create_hscrollbar. - (x_scroll_bar_create): New argument "horizontal". Update - callers accordingly. + (x_scroll_bar_create): New argument "horizontal". + Update callers accordingly. (x_scroll_bar_remove, w32_condemn_scroll_bars) (w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal scroll bar case. (w32_read_socket): Handle WM_HSCROLL cae. - (x_new_font): Don't recompute fringe widths. Use - frame_inhibit_resize. Calculate new menu bar height iff we + (x_new_font): Don't recompute fringe widths. + Use frame_inhibit_resize. Calculate new menu bar height iff we build without toolkit. Always clear under internal border. (x_set_window_size): Don't check frame size or recompute - fringes. Reset fullscreen status before applying sizes. Always - resize as requested by pixelwise argument. Don't call + fringes. Reset fullscreen status before applying sizes. + Always resize as requested by pixelwise argument. Don't call do_pending_window_change. (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT. (w32_initialize_display_info): Initialize dpyinfo's @@ -322,8 +3419,8 @@ (WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR) (WINDOW_CONFIG_SCROLL_BAR_HEIGHT) (WINDOW_CONFIG_SCROLL_BAR_LINES) - (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT): New - macros. + (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT): + New macros. (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS) (WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros. (WINDOW_VERTICAL_SCROLL_BAR_TYPE) @@ -336,15 +3433,14 @@ (Fwindow_old_point, sanitize_window_sizes): New functions. (Qwindow_sanitize_window_sizes): New symbol. (window_body_height): Count in horizontal scroll bar. - (set_window_hscroll, Fscroll_left, Fscroll_right): Set - suspend_auto_hscroll slot. + (set_window_hscroll, Fscroll_left, Fscroll_right): + Set suspend_auto_hscroll slot. (Fwindow_inside_edges): Count fringes pixelwise. - (coordinates_in_window, Fcoordinates_in_window_p): Consider - horizontal scroll bar. + (coordinates_in_window, Fcoordinates_in_window_p): + Consider horizontal scroll bar. (check_frame_size, adjust_window_margins): Remove functions and corresponding calls. - (set_window_buffer): Initialize old_pointm and horizontal scroll - bars. + (set_window_buffer): Initialize old_pointm and horizontal scroll bars. (temp_output_buffer_show): Reset hscroll related fields. Initialize old_pointm. (make_parent_window): Initialize old_pointm. @@ -356,8 +3452,8 @@ (Fsplit_window_internal): Inherit horizontal scroll bar type and height. (Fdelete_window_internal): Unchain old_pointm marker. - (window_scroll_pixel_based, Fscroll_other_window): Adjust - old_pointm. + (window_scroll_pixel_based, Fscroll_other_window): + Adjust old_pointm. (Fwindow_text_width, Fwindow_text_height): New argument "pixelwise". (struct saved_window): New fields, old_pointm, hscroll_whole, @@ -412,10 +3508,10 @@ (x_frame_parm_handlers): Add x_set_scroll_bar_height, x_set_horizontal_scroll_bars, x_set_left_fringe, x_set_right_fringe. - * xmenu.c (update_frame_menubar, free_frame_menubar): Use - adjust_frame_size. - * xterm.h (struct x_display_info): Add - horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar + * xmenu.c (update_frame_menubar, free_frame_menubar): + Use adjust_frame_size. + * xterm.h (struct x_display_info): + Add horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar slots. (struct scroll_bar): Add horizontal slot. (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT) @@ -438,15 +3534,15 @@ (x_set_toolkit_horizontal_scroll_bar_thumb) (XTset_horizontal_scroll_bar, x_net_wm_state) (x_horizontal_scroll_bar_report_motion): New functions. - (xg_scroll_callback, x_scroll_bar_handle_click): Handle - horizontal scroll bars. + (xg_scroll_callback, x_scroll_bar_handle_click): + Handle horizontal scroll bars. (SCROLL_BAR_HORIZONTAL_NAME): Define. (XTset_vertical_scroll_bar): Attempt to clear areas not covered by scroll bar. - (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite. Handle - horizontal scroll bars. - (handle_one_xevent): Handle horizontal scroll bar events. Call - x_net_wm_state. + (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite. + Handle horizontal scroll bars. + (handle_one_xevent): Handle horizontal scroll bar events. + Call x_net_wm_state. (x_set_window_size_1, x_wm_set_size_hint): Don't call check_frame_size. (x_set_window_size): Don't call check_frame_size and @@ -496,8 +3592,8 @@ 2014-07-25 Eli Zaretskii - * w32term.h (current_popup_menu, menubar_in_use): Move - declarations from w32term.c. + * w32term.h (current_popup_menu, menubar_in_use): + Move declarations from w32term.c. 2014-07-25 Martin Rudalics @@ -551,8 +3647,8 @@ * xterm.c (handle_one_xevent): * gtkutil.c (xg_event_is_for_menubar): * xfns.c (x_window) [USE_X_TOOLKIT]: - * xmenu.c (set_frame_menubar, free_frame_menubar): Prefer - to use FRAME_MENUBAR_HEIGHT. + * xmenu.c (set_frame_menubar, free_frame_menubar): + Prefer to use FRAME_MENUBAR_HEIGHT. 2014-07-21 Dmitry Antipov @@ -573,12 +3669,12 @@ 2014-07-21 Eli Zaretskii - * w32select.c (setup_windows_coding_system): Apply - CODING_ANNOTATION_MASK to the common_flags member of struct + * w32select.c (setup_windows_coding_system): + Apply CODING_ANNOTATION_MASK to the common_flags member of struct coding_system. Reported by martin rudalics . - * w16select.c (Fw16_get_clipboard_data): Apply - CODING_ANNOTATION_MASK to the common_flags member of struct + * w16select.c (Fw16_get_clipboard_data): + Apply CODING_ANNOTATION_MASK to the common_flags member of struct coding_system. * xdisp.c (init_iterator): Initialize it->stop_charpos to the @@ -586,8 +3682,8 @@ (handle_invisible_prop): Record in it->stop_charpos the position where the invisible text ends. (Bug#18035) (hscroll_window_tree): Don't try hscrolling windows whose cursor - row has zero buffer position as their start position. Reported by - martin rudalics . + row has zero buffer position as their start position. + Reported by martin rudalics . * xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent infinite looping in redisplay when display lines don't have enough @@ -1027,8 +4123,8 @@ are in sync with what the window wants. (Bug#17892) - * xdisp.c (display_line, display_mode_line): Call - prepare_desired_row with additional arguments, as appropriate. + * xdisp.c (display_line, display_mode_line): + Call prepare_desired_row with additional arguments, as appropriate. * dispextern.h (prepare_desired_row): Adjust prototype. @@ -1117,7 +4213,7 @@ 2014-06-28 K. Handa - * coding.c (MAX_CHARBUF_SIZE): Renamed from CHARBUF_SIZE. + * coding.c (MAX_CHARBUF_SIZE): Rename from CHARBUF_SIZE. (MIN_CHARBUF_SIZE): New macro. (ALLOC_CONVERSION_WORK_AREA): New arg SIZE. Callers changed. @@ -1383,7 +4479,7 @@ * dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member. * font.c (font_done_for_face): - * xface.c (realize_non_ascii_face): Adjust user. + * xfaces.c (realize_non_ascii_face): Adjust user. * font.h (struct font_driver): Convert 'prepare_face' to return void because its return value is never used anyway. * xfont.c (xfont_prepare_face): Return void. @@ -1876,7 +4972,7 @@ Use mmap(2) emulation for allocating buffer text on MS-Windows. * Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from - configure. + configure, not from HEAPSIZE. (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used. * lisp.h (NONPOINTER_BITS): Modify the condition to define to zero @@ -2920,8 +6016,7 @@ * doc.c (store_function_docstring): Warn when we don't know where to put a docstring. (Fsubstitute_command_keys): Don't advertise the fact that - text-properties are dropped, since we think it's a bug that we'll fix - in 24.5. + text-properties are dropped, since we think it's a bug that we'll fix. * frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date. * xterm.c (handle_one_xevent) : Don't garbage the frame. @@ -8152,7 +11247,7 @@ * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically scoped code (bug#11258). -2013-08-28 Davor Cubranic (tiny change) +2013-08-28 Davor Cubranic (tiny change) * nsterm.m (last_window): New variable. (EV_TRAILER2): New macro. @@ -8560,7 +11655,7 @@ (imagemagick_get_animation_cache): Fix a double-free error. (imagemagick_load_image): Remove the ping_wand code, which only apparently saved time on invalid animated images, and slowed down - everything else. Optimise for the common case. + everything else. Optimize for the common case. 2013-08-16 Xue Fuqiao diff --git a/src/ChangeLog.10 b/src/ChangeLog.10 index 19adb22b869..b6646e797e3 100644 --- a/src/ChangeLog.10 +++ b/src/ChangeLog.10 @@ -3264,7 +3264,7 @@ * w32term.c (x_make_frame_visible): Use SystemParametersInfo with SPI_GETWORKAREA to find the dimensions of the screen work area, and adjust vertical position of the frame in order to avoid being - covered by the task bar. + covered by the taskbar. * w32fns.c (w32_createwindow): Use CW_USEDEFAULT instead of f->left_pos and SH_SHOW instead of f->top_pos in the call to @@ -20769,7 +20769,7 @@ * fontset.c (syms_of_fontset): Setup Vfont_encoding_alist here. - * editfns.c (Fformat): Convert an unibyte char argument that is + * editfns.c (Fformat): Convert a unibyte char argument that is formatted by "%c" to multibyte if the total result must be a multibyte string. diff --git a/src/ChangeLog.11 b/src/ChangeLog.11 index ac886d38966..100b0cbe710 100644 --- a/src/ChangeLog.11 +++ b/src/ChangeLog.11 @@ -2241,7 +2241,7 @@ * xdisp.c (try_scrolling): Avoid infloop if the first line is obscured due to a vscroll (Bug#7537). -2010-12-13 Jan Djärv +2010-12-13 Jan Djärv * nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT. @@ -4200,7 +4200,7 @@ (record_property_change, Fprimitive_undo): Adjust prototypes. 2010-09-22 Juanma Barranquero - Eli Zaretskii + Eli Zaretskii * w32.c (get_emacs_configuration_options): Fix buffer overrun. @@ -6753,7 +6753,7 @@ to standard C. 2010-07-04 Tetsurou Okazaki (tiny change) - Stefan Monnier + Stefan Monnier * lread.c (read1): Fix up last change to not mess up `c'. @@ -8069,7 +8069,7 @@ can specify the frame to use, when applicable. Adjust callers. 2010-05-07 Vincent Belaïche - Stefan Monnier + Stefan Monnier * floatfns.c (Fisnan, Fcopysign, Ffrexp, Fldexp): New functions. @@ -8697,7 +8697,7 @@ (Frename_file): Preserve selinux context when renaming by copy-file. 2010-04-21 Juanma Barranquero - Eli Zaretskii + Eli Zaretskii Don't depend on cm.c or termcap.c on Windows, use stubs. * makefile.w32-in (OBJ1): Remove cm.$(O) and termcap.$(O). @@ -16878,7 +16878,7 @@ : Reflow docstrings. 2008-08-04 Adrian Robert - Ken Raeburn + Ken Raeburn Dock menu customization, based on a patch by Ken Raeburn, plus some other fixes. @@ -17943,7 +17943,7 @@ batch-compiling for bootstrap). 2008-07-15 Chris Hall (tiny change) - YAMAMOTO Mitsuharu + YAMAMOTO Mitsuharu * frame.c (make_initial_frame): Call init_frame_faces(f) in CANNOT_DUMP case -- fix crash due to different init order. @@ -18561,7 +18561,7 @@ (USG_SHARED_LIBRARIES): Remove duplicate definition. 2008-06-26 Juanma Barranquero - Eli Zaretskii + Eli Zaretskii * makefile.w32-in (LOCAL_FLAGS): Don't include WINDOWSNT, DOS_NT and _UCHAR_T. @@ -18809,7 +18809,7 @@ the property of LFACE_FONT of LFACE (if any). 2008-06-21 Seiji Zenitani - Ryo Yoshitake + Ryo Yoshitake * xterm.c (x_set_frame_alpha): Add x_catch_errors for bug#437. @@ -19905,7 +19905,7 @@ * xterm.c (x_set_frame_alpha): Move declarations before statements. 2008-05-21 Seiji Zenitani - Ryo Yoshitake + Ryo Yoshitake * frame.c (Qalpha): Add a new frame parameter `alpha'. (Vframe_alpha_lower_limit): New variable. diff --git a/src/ChangeLog.12 b/src/ChangeLog.12 index c5ea7e7bad2..80d7460c734 100644 --- a/src/ChangeLog.12 +++ b/src/ChangeLog.12 @@ -1,6 +1,6 @@ 2013-03-11 Glenn Morris - * Version 24.3 released. + * Merge in all changes up to version 24.3 release. 2013-03-11 Paul Eggert diff --git a/src/ChangeLog.2 b/src/ChangeLog.2 index c852328d61a..f8fc9b1c813 100644 --- a/src/ChangeLog.2 +++ b/src/ChangeLog.2 @@ -2508,7 +2508,7 @@ If `suspend-emacs-hook' returns t don't suspend -- assume the hook did the equivalent of `suspending' for us (including calling suspend-resume-hook if necessary.) - Otherwise, call sys_suspend and so forth normally. + Otherwise, call sys_suspend and so forth normally. 1986-12-20 Richard M. Stallman (rms@prep) @@ -4050,7 +4050,7 @@ 1986-08-21 Richard Mlynarik (mly@prep) - * process.c (handle_process_output): + * process.c (handle_process_output): do a set-buffer back to original buffer after calling a process' filter function so that all filter functions needn't save-excursion. @@ -4221,7 +4221,7 @@ * unexec.c (write_segment): Kludgy coercions ("(int)") to get this line to compile: - nwrite = (((int) ptr + 128) & ~127) - (int) ptr; + nwrite = (((int) ptr + 128) & ~127) - (int) ptr; Also changed incorrect ~128 to ~127. * process.c: diff --git a/src/ChangeLog.5 b/src/ChangeLog.5 index dcb7f668b1e..1de7775c465 100644 --- a/src/ChangeLog.5 +++ b/src/ChangeLog.5 @@ -473,10 +473,10 @@ 1995-05-28 Morten Welinder - * s/osf1.h (COFF): Define. - * m/alpha.h (LD_SWITCH_MACHINE) [!__GNUC__]: Don't define. - (r_alloc, r_re_alloc, r_alloc_free) [REL_ALLOC, - !_MALLOC_INTERNAL, !NOT_C_CODE]: Prototype. + * s/osf1.h (COFF): Define. + * m/alpha.h (LD_SWITCH_MACHINE) [!__GNUC__]: Don't define. + (r_alloc, r_re_alloc, r_alloc_free) [REL_ALLOC, + !_MALLOC_INTERNAL, !NOT_C_CODE]: Prototype. 1995-05-28 Richard Stallman @@ -1281,18 +1281,18 @@ * ntinevt.c (nt_kdb_patch_event): Created. - * callproc.c (child_setup) [WINDOWSNT]: Removed syntax errors. + * callproc.c (child_setup) [WINDOWSNT]: Removed syntax errors. * dired.c (Ffile_attributes) [WINDOWSNT]: Removed syntax errors. * fileio.c (Fexpand_file_name) [DOS_NT]: Preserve drive letter case. Fix syntax errors. - Check drive letter when expanding ~\. + Check drive letter when expanding ~\. * sysdep.c (sys_subshell) [WINDOWSNT]: Don't invoke restore_console. * ntproc.c (win32_wait): Reap synchronous subprocesses, and place - return code in synch_process_retcode. + return code in synch_process_retcode. * s/windowsnt.h (ctime): Defined to be nt_ctime. (NULL): Defined when missing from included system files. @@ -1351,7 +1351,7 @@ (get_inode_and_device_vals): Handle directories. * fileio.c (Fexpand_file_name) [DOS_NT]: Don't strip slash from - default dirs like "C:\\" + default dirs like "C:\\" * makefile.nt (all): Use COMPAT_LIB in library list. Use DEL_TREE instead of delnode. @@ -1503,9 +1503,9 @@ 1995-04-08 Noah Friedman - * window.c (Fnext_window, Fprevious_window): If all_frames is a - frame and window is not on that frame, return the first window on - that frame. + * window.c (Fnext_window, Fprevious_window): If all_frames is a + frame and window is not on that frame, return the first window on + that frame. 1995-04-07 Richard Stallman @@ -2899,7 +2899,7 @@ 1995-01-10 Richard Stallman * emacs.c (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK, - SIGCPULIM, if they are defined. + SIGCPULIM, if they are defined. * alloc.c (DONT_COPY_FLAG): New bit flag. (mark_object, gc_sweep, compact_strings): Use it. @@ -3547,7 +3547,7 @@ 1994-11-16 Roland McGrath * xdisp.c (try_window): Don't pass window to Fget_char_property; - pass its buffer. + pass its buffer. (display_text_line): Likewise. 1994-11-16 Francesco Potortì (pot@cnuce.cnr.it) @@ -3770,7 +3770,7 @@ 1994-11-07 Roland McGrath * keyboard.c: Move decl of input_fd outside of #ifdef - HAVE_X_WINDOWS. + HAVE_X_WINDOWS. 1994-11-03 Karl Heuer @@ -3788,7 +3788,7 @@ (HAVE_MOUSE): Defined. * ntheap.c (sbrk): Allow request sizes to be different than the - page size. + page size. * makefile.nt: Changed references of m\m-windowsnt.h to m\intel386.h and of s\s-windowsnt.h to s\windowsnt.h. @@ -4087,7 +4087,7 @@ 1994-10-25 Karl Fogel (kfogel@phylo.life.uiuc.edu) - * window.c (Vtemp_buffer_show_function): Doc fix. + * window.c (Vtemp_buffer_show_function): Doc fix. 1994-10-25 Richard Stallman @@ -4780,7 +4780,7 @@ * xmenu.c: Delete HAVE_X11 conditionals. * xfaces.c (compute_base_face): Use FRAME_FOREGROUND_PIXEL, - FRAME_BACKGROUND_PIXEL, FRAME_FONT. + FRAME_BACKGROUND_PIXEL, FRAME_FONT. * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL) (FRAME_FONT): New macros. @@ -4973,59 +4973,59 @@ 1994-10-09 Jim Blandy - Cache the results of some scans, to improve performance in buffers - containing very long lines. - * region-cache.c, region-cache.h: New files. - * Makefile.in.in (obj) Add region-cache.o to the list of files. - (region-cache.o): New target. - (buffer.o, indent.o, search.o): Depend on region-cache.h. - * buffer.h (struct buffer): New members: newline_cache, - width_run_cache, width_table, and cache_long_line_scans. - * buffer.c: #include region-cache.h. - (Fget_buffer_create): Initialize new members of struct buffer. - (Fkill_buffer): Free memory occupied by caches. - (init_buffer_once): Set default value for cache_long_line_scans in - buffer_defaults, and give it a bit in buffer_local_flags. - (syms_of_buffer): Add DEFVAR_PER_BUFFER for cache_long_line_scans. - * insdel.c (prepare_to_modify_buffer): Invalidate width run and - newline caches, if they exist. - * search.c: #include "region-cache.h". - (max, min): Make these functions, not macros; we'd like to pass - them arguments that would be bad to evaluate more than once. - (newline_cache_on_off): New function. - (scan_buffer): New argument END. Call newline_cache_on_off. If - this buffer's newline cache is enabled, consult it to see if we - need to scan a region for newlines, and store information in the - cache after doing so. - (find_next_newline): Pass new arg to scan_buffer. - (find_before_next_newline): New function. - * cmds.c (Fforward_line): Call scan_buffer with new args. - (Fend_of_line): Replace call to Fforward_line and search loop with - call to find_before_next_newline. - * syntax.c (find_defun_start): Call scan_buffer with new args. - * indent.c: #include "region-cache.h". - (character_width, disptab_matches_widthtab, recompute_width_table, - width_run_cache_on_off): New functions. - (compute_motion): Call width_run_cache_on_off. If this buffer's - width run cache is enabled, consult it to see if we need to - traverse a region character-by-character; store information in the - cache after doing so. Call find_before_next_newline instead of - writing out an equivalent loop explicitly, to take advantage of - the newline cache. - Doc fixes. - * xdisp.c (redisplay_window): Invalidate width_run_cache, if the - buffer's display table doesn't match the width table the cache was - built for. - (display_text_line): Use compute_motion to skip forward to the - left edge of the window when the window is hscrolled; this is - faster than rendering all the characters into the bit bucket when - the hscroll is large. - Doc fixes. - (display_count_lines): Call scan_buffer with new args. - * disptab.h (window_display_table): Doc fix. - (buffer_display_table): New declaration. - * indent.h (disptab_matches_widthtab, recompute_width_table): New - declarations. + Cache the results of some scans, to improve performance in buffers + containing very long lines. + * region-cache.c, region-cache.h: New files. + * Makefile.in.in (obj) Add region-cache.o to the list of files. + (region-cache.o): New target. + (buffer.o, indent.o, search.o): Depend on region-cache.h. + * buffer.h (struct buffer): New members: newline_cache, + width_run_cache, width_table, and cache_long_line_scans. + * buffer.c: #include region-cache.h. + (Fget_buffer_create): Initialize new members of struct buffer. + (Fkill_buffer): Free memory occupied by caches. + (init_buffer_once): Set default value for cache_long_line_scans in + buffer_defaults, and give it a bit in buffer_local_flags. + (syms_of_buffer): Add DEFVAR_PER_BUFFER for cache_long_line_scans. + * insdel.c (prepare_to_modify_buffer): Invalidate width run and + newline caches, if they exist. + * search.c: #include "region-cache.h". + (max, min): Make these functions, not macros; we'd like to pass + them arguments that would be bad to evaluate more than once. + (newline_cache_on_off): New function. + (scan_buffer): New argument END. Call newline_cache_on_off. If + this buffer's newline cache is enabled, consult it to see if we + need to scan a region for newlines, and store information in the + cache after doing so. + (find_next_newline): Pass new arg to scan_buffer. + (find_before_next_newline): New function. + * cmds.c (Fforward_line): Call scan_buffer with new args. + (Fend_of_line): Replace call to Fforward_line and search loop with + call to find_before_next_newline. + * syntax.c (find_defun_start): Call scan_buffer with new args. + * indent.c: #include "region-cache.h". + (character_width, disptab_matches_widthtab, recompute_width_table, + width_run_cache_on_off): New functions. + (compute_motion): Call width_run_cache_on_off. If this buffer's + width run cache is enabled, consult it to see if we need to + traverse a region character-by-character; store information in the + cache after doing so. Call find_before_next_newline instead of + writing out an equivalent loop explicitly, to take advantage of + the newline cache. + Doc fixes. + * xdisp.c (redisplay_window): Invalidate width_run_cache, if the + buffer's display table doesn't match the width table the cache was + built for. + (display_text_line): Use compute_motion to skip forward to the + left edge of the window when the window is hscrolled; this is + faster than rendering all the characters into the bit bucket when + the hscroll is large. + Doc fixes. + (display_count_lines): Call scan_buffer with new args. + * disptab.h (window_display_table): Doc fix. + (buffer_display_table): New declaration. + * indent.h (disptab_matches_widthtab, recompute_width_table): New + declarations. 1994-10-08 Richard Stallman @@ -5194,13 +5194,13 @@ independence. Enable using editres for X11R5. * widget.c (EmacsFrameSetCharSize): Use lw_refigure_widget for - widget set independence. + widget set independence. * widget.h: Declare resources showGrip, allowResize, and - resizeToPreferred. + resizeToPreferred. * keyboard.c (make_lispy_event): Do not set item. Now handled in - xmenu.c by popup_get_selection. + xmenu.c by popup_get_selection. 1994-10-01 Richard Stallman @@ -5375,7 +5375,7 @@ * process.c (Fprocess_send_eof): Delete DID_REMOTE conditional. - * buffer.c (get-file-buffer): Doc fix. + * buffer.c (get-file-buffer): Doc fix. 1994-09-23 Richard Stallman @@ -5580,7 +5580,7 @@ 1994-09-19 Jim Blandy - Add a new element to display tables controlling side-by-side + Add a new element to display tables controlling side-by-side window borders. * buffer.c (syms_of_buffer): Update doc string for `buffer-display-table'. @@ -6207,7 +6207,7 @@ * Makefile.in.in (FRAME_SUPPORT): Add faces.elc. * search.c (Freplace_match): Treat caseless initial like a - lowercase initial. + lowercase initial. * keymap.c (Fdefine_key): Fix error message. (Fsingle_key_description): Likewise. @@ -6418,8 +6418,8 @@ 1994-07-23 Jim Blandy (jimb@totoro.bio.indiana.edu) - * .gdbinit: Set the breakpoint in x_error_quitter instead of - _XPrintDefaultError. + * .gdbinit: Set the breakpoint in x_error_quitter instead of + _XPrintDefaultError. 1994-07-20 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -6910,7 +6910,7 @@ 1994-06-16 Roland McGrath (roland@geech.gnu.ai.mit.edu) * unexec.c: Include and [USG5] to define - O_* macros. + O_* macros. (O_RDONLY, O_RDWR): Define if undefined. [emacs] (report_error): Use report_file_error so the user can tell what the errno code was. diff --git a/src/ChangeLog.8 b/src/ChangeLog.8 index a483a561d06..fd8ae6caa20 100644 --- a/src/ChangeLog.8 +++ b/src/ChangeLog.8 @@ -73,8 +73,8 @@ * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame dimensions changed, invalidate the mouse highlight info. - (disable_mouse_highlight, help_echo, previous_help_echo): New - variables. + (disable_mouse_highlight, help_echo, previous_help_echo): + New variables. (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face) (fast_find_position, IT_note_mode_line_highlight) (IT_note_mouse_highlight): New functions. @@ -89,8 +89,8 @@ (internal_terminal_init): Initialize mouse-highlight related members of the_only_x_display. Assign IT_frame_up_to_date to frame_up_to_date_hook. - (dos_rawgetc): If the mouse moved, update mouse highlight. If - help_echo changed value, generate a HELP_EVENT event. + (dos_rawgetc): If the mouse moved, update mouse highlight. + If help_echo changed value, generate a HELP_EVENT event. (syms_of_msdos): Staticpro help_echo and previous_help_echo. * msdos.h (struct display_info): New. @@ -116,7 +116,7 @@ * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the lowest 8 bits are single byte character code, the bits above are face ID. - (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change + (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjust for the change above. (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise. (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted. @@ -131,20 +131,20 @@ level members. Change members in union `u'. (GLYPH_EQUAL_P): Check also members face_id and padding_p. (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro. - (SET_CHAR_GLYPH): Adjusted for the change of struct glyph. + (SET_CHAR_GLYPH): Adjust for the change of struct glyph. (CHAR_GLYPH_PADDING_P): Likewise. (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte characters. - * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted - for the change of struct glyph. - (line_draw_cost): Adjusted for the change of + * dispnew.c (line_hash_code, direct_output_for_insert): + Adjust for the change of struct glyph. + (line_draw_cost): Adjust for the change of GLYPH_FROM_CHAR_GLYPH. (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P. - * term.c (encode_terminal_code): Adjusted for the change of struct + * term.c (encode_terminal_code): Adjust for the change of struct glyph and GLYPH_FROM_CHAR_GLYPH. - (write_glyphs, insert_glyphs, append_glyph): Adjusted for the + (write_glyphs, insert_glyphs, append_glyph): Adjust for the change of struct glyph. * xdisp.c: All codes adjusted for the change of struct glyph. @@ -284,8 +284,8 @@ 1999-12-15 Kenichi Handa - The following changes are for the new composition mechanism. We - have deleted `composition' charset and composite characters, + The following changes are for the new composition mechanism. + We have deleted `composition' charset and composite characters, instead introduced a special text property `composition'. * Makefile.in (INTERVAL_SRC): Include composite.h. @@ -298,7 +298,7 @@ (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC. (composite.o): New target. - * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING. + * alloc.c (Fmake_string): Adjust for the change of CHAR_STRING. * callproc.c (Fcall_process): Call code_convert_string to encode arguments. Use CODING_REQUIRE_DECODING to check if the process @@ -317,7 +317,7 @@ (Fmake_category_table): New function. (syms_of_category): Defsubr it. - * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING. + * ccl.c (CCL_WRITE_CHAR): Adjust for the change of CHAR_STRING. (ccl_driver): Delete codes for a composite character. * charset.h: In this entry, just `Modified' means that codes for a @@ -326,49 +326,49 @@ (charset_composition) (MIN_CHAR_COMPOSITION) (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR) (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID) - (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted. + (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Delete. (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT) (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR) (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P): - Modified. + Modify. (SPLIT_STRING): Call split_string, not split_non_ascii_string. (CHAR_STRING): Delete WORKBUF argument. Call char_string, not non_ascii_char_to_string. (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char. (STRING_CHAR_AND_LENGTH): Likewise. (FETCH_CHAR_ADVANCE): New macro. - (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted. + (MAX_COMPONENT_COUNT) (struct cmpchar_info): Delete. (MAX_MULTIBYTE_LENGTH): New macro. - (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted. + (MAX_LENGTH_OF_MULTI_BYTE_FORM): Delete. (find_charset_in_str): Argument adjusted. - (CHAR_LEN): Modified. + (CHAR_LEN): Modify. * charset.c: In this entry, just `Modified' means that codes for a composite character is deleted. (Qcomposition) (leading_code_composition) (charset_composition) (min_composite_char) (cmpchar_table) - (cmpchar_table_size) (n_cmpchars): Deleted. - (SPLIT_COMPOSITE_SEQ): Deleted. - (SPLIT_MULTIBYTE_SEQ): Modified. - (char_to_string): Renamed from non_ascii_char_to_string. + (cmpchar_table_size) (n_cmpchars): Delete. + (SPLIT_COMPOSITE_SEQ): Delete. + (SPLIT_MULTIBYTE_SEQ): Modify. + (char_to_string): Rename from non_ascii_char_to_string. Modified. - (string_to_char): Renamed from string_to_non_ascii_char. - (split_string): Renamed from split_non_ascii_string. + (string_to_char): Rename from string_to_non_ascii_char. + (split_string): Rename from split_non_ascii_string. (char_printable_p) (Fsplit_char) (Ffind_charset_region) (Ffind_charset_string) (char_valid_p) - (char_bytes) (Fchar_width) (strwidth): Modified. + (char_bytes) (Fchar_width) (strwidth): Modify. (find_charset_in_str): Argument CMPCHARP deleted. Modified. - (Fstring): Adjusted for the change of CHAR_STRING. Modified. + (Fstring): Adjust for the change of CHAR_STRING. Modified. (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table) (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID) (str_cmpchar_id) (cmpchar_component) (Fcmpcharp) (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p) - (Fcmpchar_cmp_count): Deleted. + (Fcmpchar_cmp_count): Delete. (Fcompose_string): Implemented by Emacs Lisp in composite.el. - (init_charset_once): Modified. - (syms_of_charset): Modified. + (init_charset_once): Modify. + (syms_of_charset): Modify. - * cmds.c (internal_self_insert): Adjusted for the change of + * cmds.c (internal_self_insert): Adjust for the change of CHAR_STRING. * coding.h (emacs_code_class_type): Delete the member @@ -377,8 +377,8 @@ (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL) (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P) (COMPOSING_WITH_RULE_P): Macros deleted. - (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New - macros. + (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): + New macros. (struct composition_data): New structure. (CODING_FINISH_INSUFFICIENT_CMP): New macro. (struct coding_system): New members composition_rule_follows, @@ -395,7 +395,7 @@ EMACS_leading_code_composition to 0x80. (detect_coding_iso2022): Handle new composition sequence. (DECODE_ISO_CHARACTER): Likewise. - (check_composing_code): Deleted. + (check_composing_code): Delete. (coding_allocate_composition_data): New function. (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END) (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START) @@ -404,7 +404,7 @@ (ENCODE_ISO_CHARACTER): Don't check composition here. (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros. (ENCODE_COMPOSITION_NO_RULE_START) - (ENCODE_COMPOSITION_WITH_RULE_START): Deleted. + (ENCODE_COMPOSITION_WITH_RULE_START): Delete. (ENCODE_COMPOSITION_END): Handle new composition sequence. (ENCODE_COMPOSITION_FAKE_START): New macro. (encode_coding_iso2022): Handle new composition sequence. @@ -414,12 +414,12 @@ coding_system. Enable composition only when the coding system has `composition' property t. (coding_free_composition_data) (coding_adjust_composition_offset) - (coding_save_composition) (coding_restore_composition): New - functions. + (coding_save_composition) (coding_restore_composition): + New functions. (code_convert_region): Call coding_save_composition for encoding and coding_allocate_composition_data for decoding. Don't skip - ASCII characters if we handle composition on encoding. Call - signal_after_change with Check_BORDER. + ASCII characters if we handle composition on encoding. + Call signal_after_change with Check_BORDER. (code_convert_string): Call coding_save_composition for encoding and coding_allocate_composition_data for decoding. Don't skip ASCII characters if we handle composition on encoding. @@ -448,9 +448,9 @@ * dispnew.c (direct_output_forward_char): Check point moving into or out of a composition. If so, give up direct method. - * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING. + * doprnt.c (doprnt1): Adjust for the change of CHAR_STRING. - * editfns.c (Fchar_to_string): Adjusted for the change of + * editfns.c (Fchar_to_string): Adjust for the change of CHAR_STRING. (general_insert_function): Likewise. (Finsert_char): Likewise. @@ -460,19 +460,19 @@ * emacs.c (main): Call syms_of_composite. - * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of + * fileio.c (Fsubstitute_in_file_name): Adjust for the change of CHAR_STRING. (Finsert_file_contents): Set Vlast_coding_system_used before calling signal_after_change. Call update_compositions if some texts are inserted.. - (Fwrite_region): Adjusted for the change of a_write and e_write. + (Fwrite_region): Adjust for the change of a_write and e_write. (a_write): Argument changed. Work based on character position, not byte position. (e_write): Argument changed. Handle new way of composition. * fns.c (Flength): The length of char-table is MAX_CHAR. - (concat): Adjusted for the change of CHAR_STRING. - (Ffillarray): Adjusted for the change of CHAR_STRING. + (concat): Adjust for the change of CHAR_STRING. + (Ffillarray): Adjust for the change of CHAR_STRING. (Fset_char_table_default): Delete codes for a composite character. (hash_put): Return hash index. @@ -492,7 +492,7 @@ (Fmove_to_column): Likewise. (compute_motion): Likewise. - * insdel.c (copy_text): Adjusted for the change of CHAR_STRING. + * insdel.c (copy_text): Adjust for the change of CHAR_STRING. (insert_char): Likewise. (insert): Call update_compositions. (insert_and_inherit): Likewise. @@ -502,7 +502,7 @@ (insert_from_string_before_markers): Likewise. (insert_from_buffer): Likewise. (replace_range): Likewise. - (count_combining_composition): Deleted. + (count_combining_composition): Delete. (count_combining_before): Delete codes for a composite character. (count_combining_after): Likewise. (del_range_1): Call update_compositions. @@ -526,16 +526,16 @@ necessary. (adjust_point_for_property): New function. - * keymap.c (push_key_description): Adjusted for the change of + * keymap.c (push_key_description): Adjust for the change of CHAR_STRING. (Ftext_char_description): Likewise. * lisp.h (QCtest, QCweakness, Qequal): Extern them. - (hash_put): Adjusted for the change of the definition. + (hash_put): Adjust for the change of the definition. (signal_after_change): Likewise. (check_point_in_composition): Extern it. - * lread.c (readchar): Adjusted for the change of CHAR_STRING. + * lread.c (readchar): Adjust for the change of CHAR_STRING. Delete a code that handles an invalid too-long multibyte sequence because we are now sure that we never encounter with such a sequence. @@ -544,14 +544,14 @@ (init_obarray): Likewise. (read1): Likewise. Adjusted for the change of CHAR_STRING. - * print.c (printchar): Adjusted for the change of CHAR_STRING. + * print.c (printchar): Adjust for the change of CHAR_STRING. * process.c: Include composite.h. (read_process_output): Call update_compositions. - * regex.c (regex_compile): Adjusted for the change of CHAR_STRING. + * regex.c (regex_compile): Adjust for the change of CHAR_STRING. - * search.c (search_buffer): Adjusted for the change of CHAR_STRING. + * search.c (search_buffer): Adjust for the change of CHAR_STRING. * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite character. @@ -570,19 +570,19 @@ (face_before_or_after_it_pos): For composition, check face of a character after the composition. (handle_composition_prop): New function. - (get_next_display_element): Adjusted for the change of + (get_next_display_element): Adjust for the change of CHAR_STRING. (set_iterator_to_next): Handle the case that it->method == next_element_from_composition. (next_element_from_composition): New function. - (message_dolog): Adjusted for the change of CHAR_STRING. + (message_dolog): Adjust for the change of CHAR_STRING. (set_message_1): Likewise. (check_point_in_composition): New function. (reconsider_clip_changes): If point moved into or out of composition, set b->clip_changed to 1 to force updating of the screen. (disp_char_vector): Delete codes for a composite character. - (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING. + (decode_mode_spec_coding): Adjust for the change of CHAR_STRING. * xfaces.c (choose_face_fontset_font): Delete codes for a composite character. @@ -592,7 +592,7 @@ * xfns.c: Include intervals.h. (syms_of_xfns): Make `display' property nonsticky by default. - * xselect.c (lisp_data_to_selection_data): Adjusted for the change + * xselect.c (lisp_data_to_selection_data): Adjust for the change for find_charset_in_str. * xterm.h (struct x_output): Change member font_baseline to @@ -618,9 +618,9 @@ (x_draw_composite_glyph_string_foreground): New function. (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp. (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH. - (struct work): Deleted. - (x_fill_composite_glyph_string): Argument changed. Mostly - rewritten for that. + (struct work): Delete. + (x_fill_composite_glyph_string): Argument changed. + Mostly rewritten for that. (x_fill_glyph_string): Don't check CHARSET_COMPOSITION. (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here. (BUILD_COMPOSITE_GLYPH_STRING): New macro. @@ -656,8 +656,8 @@ * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL) [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h. - * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved - to frame.h. + * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): + Move to frame.h. 1999-12-09 Stefan Monnier @@ -668,11 +668,11 @@ * xterm.c (#includes): Allow compilation with only Xaw. (xaw3d_arrow_scroll, xaw3d_pick_top): New variables. (xt_action_hook): Replace XAW3D by XAW. - (xaw3d_jump_callback): Renamed to xaw_jump_callback. - (xaw_jump_callback): Renamed from xaw3d_jump_callback. + (xaw3d_jump_callback): Rename to xaw_jump_callback. + (xaw_jump_callback): Rename from xaw3d_jump_callback. Determine epsilon dynamically and don't try to be too clever. - (xaw3d_scroll_callback): Renamed to xaw_scroll_callback. - (xaw_scroll_callback): Renamed from xaw3d_scroll_callback. + (xaw3d_scroll_callback): Rename to xaw_scroll_callback. + (xaw_scroll_callback): Rename from xaw3d_scroll_callback. Handle both Xaw3d with arrow-scrollbars and with Xaw-style scrollbar (using `ratio'). (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d @@ -710,9 +710,9 @@ 1999-12-07 Alexandre Oliva - * unexelf.c: Include , not on IRIX. Removed - duplicate definition of ElfW. - (find_section): Copied from unexsgi.c. + * unexelf.c: Include , not on IRIX. + Removed duplicate definition of ElfW. + (find_section): Copy from unexsgi.c. (unexec): Use find_section. Adjust whitespace. Initialize new_data2_offset based on old_data, not sbss (this fixes a bug on IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific. @@ -798,8 +798,8 @@ (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE) (FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES) (FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES) - (FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove - unused macro definitions. + (FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): + Remove unused macro definitions. * msdos.c (IT_set_frame_parameters): Don't call recompute_basic_faces, the next redisplay will, anyway. @@ -818,13 +818,13 @@ * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc. - * xfns.c (x_defined_color): Rename from defined_color. All - callers changed. - (Fxw_color_defined_p): Renamed from Fx_color_defined_p; + * xfns.c (x_defined_color): Rename from defined_color. + All callers changed. + (Fxw_color_defined_p): Rename from Fx_color_defined_p; all callers changed. - (Fxw_color_values): Renamed from Fx_color_values; all callers + (Fxw_color_values): Rename from Fx_color_values; all callers changed. - (Fxw_display_color_p): Renamed from Fx_display_color_p; all + (Fxw_display_color_p): Rename from Fx_display_color_p; all callers changed. (x_window_to_frame, x_any_window_to_frame) (x_non_menubar_window_to_frame, x_menubar_window_to_frame) @@ -834,11 +834,11 @@ * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of f->output_data.nothing. - (Fxw_color_defined_p): Renamed from Fx_color_defined_p; + (Fxw_color_defined_p): Rename from Fx_color_defined_p; all callers changed. - (Fxw_color_values): Renamed from Fx_color_values; all callers + (Fxw_color_values): Rename from Fx_color_values; all callers changed. - (Fxw_display_color_p): Renamed from Fx_display_color_p; all + (Fxw_display_color_p): Rename from Fx_display_color_p; all callers changed. * dispextern.h (tty_color_name): Add prototype. @@ -856,7 +856,7 @@ 1999-12-06 Kenichi Handa - * fileio.c (decide_coding_unwind): Renamed from + * fileio.c (decide_coding_unwind): Rename from set_auto_coding_unwind. (Finsert_file_contents): Make single unwind protect to call both Vset_auto_coding_function and Ffind_operation_coding_system. @@ -868,7 +868,7 @@ * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy operators and handle them properly. * regex.h (RE_ALL_GREEDY): New option. - (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic + (RE_UNMATCHED_RIGHT_PAREN_ORD): Move to the end where alphabetic sorting would put it. (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP) (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior. @@ -898,8 +898,8 @@ 1999-11-28 Gerd Moellmann * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE) - (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT, EMACS_TIME_LE): New - macros. + (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT, EMACS_TIME_LE): + New macros. * config.in (HAVE_SETITIMER, HAVE_UALARM): New. @@ -932,8 +932,8 @@ * puresize.h (BASE_PURESIZE): Increase to 550000. - * textprop.c (set_text_properties): New function. Like - Fset_text_properties, but with additional parameter + * textprop.c (set_text_properties): New function. + Like Fset_text_properties, but with additional parameter SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after changes. (Fset_text_properties): Use it. @@ -1018,7 +1018,7 @@ * fileio.c (strerror): Likewise. * process.c (strerror): Likewise. * emacs.c (strerror): Likewise. - (Vsystem_messages_locale): Renamed from Vmessages_locale. + (Vsystem_messages_locale): Rename from Vmessages_locale. All uses changed. (Vprevious_system_messages_locale): Likewise, from Vprevious_messages_locale. @@ -1041,7 +1041,7 @@ (FREE_RETURN_TYPE): New macro. (free): Return type is now FREE_RETURN_TYPE. - * lisp.h (synchronize_system_time_locale): Renamed from + * lisp.h (synchronize_system_time_locale): Rename from synchronize_time_locale. All uses changed. (synchronize_system_messages_locale): Likewise, from synchronize_messages_locale. @@ -1135,13 +1135,13 @@ 1999-11-10 Gerd Moellmann - * xfns.c (QCuser_data): Removed. + * xfns.c (QCuser_data): Remove. (syms_of_xfns): Initialization of QCuser_data removed. - (parse_image_spec): Don't handle :user-data specially. Allow - unknown keys. Remove parameter ALLOW_OTHER_KEYS. + (parse_image_spec): Don't handle :user-data specially. + Allow unknown keys. Remove parameter ALLOW_OTHER_KEYS. (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p) - (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call - parse_image_spec accordingly. + (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): + Call parse_image_spec accordingly. 1999-11-09 Richard M. Stallman @@ -1178,8 +1178,8 @@ * lisp.h: Add prototype for unmark_byte_stack. * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK. - (unmark_byte_stack): Renamed from relocate_byte_pcs. Use - XUNMARK. + (unmark_byte_stack): Rename from relocate_byte_pcs. + Use XUNMARK. * xdisp.c (resize_mini_window): Fix computation of needed mini-window height. @@ -1214,7 +1214,7 @@ (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New. (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New. (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten. - (HANDLE_RELOCATION): Removed. + (HANDLE_RELOCATION): Remove. (Fbyte_code): Use byte_stack structures. * filelock.c (Ffile_locked_p): Make FILENAME a required argument. @@ -1224,10 +1224,10 @@ 1999-11-04 Gerd Moellmann - * editfns.c (Fdelete_field): Renamed from Ferase_field. + * editfns.c (Fdelete_field): Rename from Ferase_field. - * minibuf.c (do_completion, Fminibuffer_complete_word): Use - Ferase_field instead of Fdelete_field. + * minibuf.c (do_completion, Fminibuffer_complete_word): + Use Ferase_field instead of Fdelete_field. 1999-11-03 Gerd Moellmann @@ -1279,7 +1279,7 @@ * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using png_get_sRGB in #ifdef. - * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor. + * dispnew.c (Finternal_show_cursor): Rename from Fshow_cursor. (syms_of_display): Use the new name. * textprop.c (verify_interval_modification): Signal text-read-only @@ -1346,7 +1346,7 @@ 1999-10-27 Richard M. Stallman - * data.c (Qad_activate_internal): Renamed from Qad_activate. + * data.c (Qad_activate_internal): Rename from Qad_activate. (Ffset): Call Qad_activate_internal. (syms_of_data): Initialize Qad_activate_internal. @@ -1493,12 +1493,12 @@ * editfns.c: Include coding.h. (emacs_strftime): Remove decl. (emacs_strftimeu): New decl. - (emacs_memftimeu): Renamed from emacs_memftime; new arg UT. + (emacs_memftimeu): Rename from emacs_memftime; new arg UT. Use emacs_strftimeu instead of emacs_strftime. (Fformat_time_string): Convert format string using Vlocale_coding_system, and convert result back. Synchronize time - locale before invoking lower level function. Invoke - emacs_memftimeu, passing ut, instead of emacs_memftime. + locale before invoking lower level function. + Invoke emacs_memftimeu, passing ut, instead of emacs_memftime. * emacs.c: Include if HAVE_SETLOCALE is defined. (Vmessages_locale, Vprevious_messages_locale, Vtime_locale) @@ -1506,7 +1506,7 @@ (main): Invoke setlocale early, so that initial error messages are localized properly. But skip locale-setting if LC_ALL is "C". Fix up locale when it's safe to do so. - (fixup_locale): Moved here from xterm.c. + (fixup_locale): Move here from xterm.c. (synchronize_locale, synchronize_time_locale) (synchronize_messages_locale): New functions. (syms_of_emacs): Accommodate above changes. @@ -1534,8 +1534,8 @@ * lread.c (file_offset, file_tell): New macros. All uses of ftell changed to file_tell. - (saved_doc_string_position, prev_saved_doc_string_position): Now - of type file_offset. + (saved_doc_string_position, prev_saved_doc_string_position): + Now of type file_offset. (init_lread): Do not fix locale here; fixup_locale now does this. * m/amdahl.h, s/usg5-4.h: @@ -1589,10 +1589,10 @@ (emacs_open, emacs_close, emacs_read, emacs_write): Always define; the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO macros are no longer used. - (emacs_open): Renamed from sys_open. Merge BSD4_1 version. - (emacs_close): Renamed from sys_close. - (emacs_read): Renamed from sys_read. - (emacs_write): Renamed from sys_write. + (emacs_open): Rename from sys_open. Merge BSD4_1 version. + (emacs_close): Rename from sys_close. + (emacs_read): Rename from sys_read. + (emacs_write): Rename from sys_write. (sys_siglist): Do not declare if HAVE_STRSIGNAL. (dup2): Do not print error on failure; the real dup2 doesn't. (strsignal): New function, defined if !HAVE_STRSIGNAL. @@ -1638,8 +1638,8 @@ 1999-10-18 Kenichi Handa * coding.c (code_convert_string): Add record_unwind_protect to - assure setting inhibit_pre_post_conversion back to zero. Take - care of the multibyteness of the working buffer. + assure setting inhibit_pre_post_conversion back to zero. + Take care of the multibyteness of the working buffer. * coding.c (inhibit_pre_post_conversion): New variable. (setup_coding_system): If inhibit_pre_post_conversion is nonzero, @@ -1666,13 +1666,13 @@ * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new ESCAPE_FROM_EDGE parameter to Ffield_beginning. - * editfns.c (text_property_eq, text_property_stickiness): Don't - use initializers for auto variables of type Lisp_Object. + * editfns.c (text_property_eq, text_property_stickiness): + Don't use initializers for auto variables of type Lisp_Object. (find_field): Likewise. Use braces around nested ifs. (Fline_end_position): Store the raw eol in a variable, so that the final expression doesn't look so ugly. (Fconstrain_to_field): Doc fix. - (preceding_pos): Renamed from `preceeding_pos'. + (preceding_pos): Rename from `preceeding_pos'. (text_property_stickiness, find_field): Call preceding_pos, not preceeding_pos. @@ -1696,8 +1696,8 @@ * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter to Fconstrain_to_field. - * minibuf.c (Fminibuffer_complete_word): Use - Ffield_beginning to find the prompt end. + * minibuf.c (Fminibuffer_complete_word): + Use Ffield_beginning to find the prompt end. 1999-10-17 Miles Bader @@ -1746,8 +1746,8 @@ 1999-10-16 Gerd Moellmann * window.c (enum save_restore_action): New. - (save_restore_orig_size): Change parameter list. Add - functionality to check for valid orig_top and orig_height members + (save_restore_orig_size): Change parameter list. + Add functionality to check for valid orig_top and orig_height members in a window tree. (grow_mini_window): Call save_restore_orig_size with new parameter list. @@ -1848,8 +1848,8 @@ (Finternal_set_lisp_face_attribute): Ditto. (Fpixmap_spec_p): Rewritten. Extend doc string. - * xmenu.c (set_frame_menubar, xmenu_show): Call - x_set_menu_resources_from_menu_face. + * xmenu.c (set_frame_menubar, xmenu_show): + Call x_set_menu_resources_from_menu_face. * dispextern.h (enum face_id): Add MENU_FACE_ID. (toplevel): Include X11/Intrinsic.h. @@ -1869,7 +1869,7 @@ 1999-09-29 Gerd Moellmann - * editfns.c (Fpropertize): Renamed from Fproperties. + * editfns.c (Fpropertize): Rename from Fproperties. 1999-09-29 Gerd Moellmann @@ -1897,8 +1897,8 @@ * textprop.c (next_single_char_property_change): New. - * xdisp.c (display_prop_end, invisible_text_between_p): Use - next_single_char_property_change. + * xdisp.c (display_prop_end, invisible_text_between_p): + Use next_single_char_property_change. 1999-09-25 Gerd Moellmann @@ -1928,7 +1928,7 @@ * xfaces.c (add_to_log): Move to xdisp.c. - * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame + * xdisp.c (add_to_log): Move from xfaces.c. Remove frame parameter. 1999-09-23 Gerd Moellmann @@ -1945,10 +1945,10 @@ (grow_mini_window, shrink_mini_window): New. (make_window, replace_window): Initialize orig_top and orig_height. - (enlarge_window): Renamed from change_window_height. Make it + (enlarge_window): Rename from change_window_height. Make it static. - (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call - enlarge_window instead of change_window_height. + (Fdisplay_buffer, Fenlage_window, Fshrink_window): + Call enlarge_window instead of change_window_height. * window.h (struct window): New members orig_top, orig_height. (toplevel): Add prototypes for grow_mini_window and @@ -2003,8 +2003,8 @@ * xdisp.c (compute_window_start_on_continuation_line): Handle case that window start is out of range. - (handle_display_prop, handle_single_display_prop): Replace - marginal area specifications like `left-margin' with `(margin + (handle_display_prop, handle_single_display_prop): + Replace marginal area specifications like `left-margin' with `(margin left-margin)'. (Qmargin): New. (syms_of_xdisp): Initialize Qmargin. @@ -2020,7 +2020,7 @@ (Fopen_network_stream, create_process): Add parentheses to conditional expressions. (create_process): Put declaration of sigchld in #if 0. - (Fopen_network_stream): Removed unused variables. + (Fopen_network_stream): Remove unused variables. (Fopen_network_stream, wait_reading_process_input) (wait_reading_process_input, send_process, send_process): Ditto. (toplevel): Add prototypes for set_waiting_for_input and @@ -2057,7 +2057,7 @@ * buffer.h: Add prototype for r_re_alloc. - * insdel.c (copy_text): Removed unused variables. + * insdel.c (copy_text): Remove unused variables. (count_combining_after, count_combining_after, insert_1_both) (insert_from_string_1, insert_from_buffer_1, check_markers): Ditto. (adjust_after_replace, replace_range): Add parentheses to logical @@ -2177,8 +2177,8 @@ * xdisp.c (resize_mini_window): Don't report changed window height if it actually hasn't changed. - * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove - unused variables. + * widget.c (set_frame_size, EmacsFrameSetCharSize): + Remove unused variables. (mark_shell_size_user_specified): Put in #if 0 because not used. (create_frame_gcs): Put in #if 0 because currently unused. (first_frame_p): Ditto. @@ -2188,7 +2188,7 @@ (free_frame_menubar, xmenu_show, xdialog_show): Remove unused variables. - * print.c (PRINTFULLP): Removed because it is no longer used and + * print.c (PRINTFULLP): Remove because it is no longer used and is misleading. (Ferror_message_string): Remove unused variables. (print_object): Cast argument of sprintf to long for `%ld' @@ -2297,7 +2297,7 @@ * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame. (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto. - (XRINGBELL): Removed. + (XRINGBELL): Remove. 1999-09-13 Dave Love @@ -2307,7 +2307,7 @@ 1999-09-13 Gerd Moellmann - * xfns.c (QCfile): Moved to xdisp.c. + * xfns.c (QCfile): Move to xdisp.c. (syms_of_xfns): Don't initialize QCfile. (check_x_frame): Change for Lisp_Object selected_frame. (check_x_display_info, x_get_resource_string): Ditto. @@ -2317,7 +2317,7 @@ * minibuf.c (choose_minibuf_frame): Don't try to set the mini-buffer window's buffer, if the buffer is invalid. - * xfns.c (QCfile): Moved to xdisp.c. + * xfns.c (QCfile): Move to xdisp.c. (syms_of_xfns): Don't initialize QCfile. * xdisp.c (QCfile): Move here from xfns.c. @@ -2401,7 +2401,7 @@ * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame. (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto. - (XRINGBELL): Removed. + (XRINGBELL): Remove. * window.c (Fminibuffer_window): Change for Lisp_Object selected_frame. @@ -2456,8 +2456,8 @@ * keyboard.c (command_loop_1): Resize mini-window to the exact size of a message displayed, if any. - * xdisp.c (resize_mini_window): Add parameter exact_p. Resize - to exact size if exact_p is non-zero. + * xdisp.c (resize_mini_window): Add parameter exact_p. + Resize to exact size if exact_p is non-zero. (display_echo_area_1): Call resize_mini_window with new parameter. (redisplay_internal): Ditto. @@ -2498,8 +2498,8 @@ (Fkill_buffer): Ditto. (Ferase_buffer): Ditto. - * buffer.h (prompt_end_charpos): Replaces - minibuffer_prompt_length. + * buffer.h (prompt_end_charpos): + Replaces minibuffer_prompt_length. * minibuf.c (read_minibuf): Return mini-buffer contents without the prompt. @@ -2582,8 +2582,8 @@ (x_load_font, x_find_ccl_program, x_term_init, x_delete_display): Likewise. - * alloc.c (make_float, make_pure_float, Fpurecopy): Use - XFLOAT_DATA. + * alloc.c (make_float, make_pure_float, Fpurecopy): + Use XFLOAT_DATA. * bytecode.c (Fbyte_code): Likewise. * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver) (fmod_float): Likewise. @@ -2614,7 +2614,7 @@ 1999-09-10 Keisuke Nishida * print.c: Support print-circle and related features. - (Vprint_gensym_alist): Removed. + (Vprint_gensym_alist): Remove. (Vprint_circle, Vprint_continuous_numbering, print_number_index) (Vprint_number_table): New variables. (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros. @@ -2703,8 +2703,8 @@ 1999-09-07 Gerd Moellmann - * xfns.c (x_set_foreground_color): Call - update_face_from_frame_parameter. + * xfns.c (x_set_foreground_color): + Call update_face_from_frame_parameter. (x_set_background_color): Ditto. (x_set_mouse_color): Ditto. (x_set_cursor_color): Ditto. @@ -2926,7 +2926,7 @@ (Fset_window_start): Ditto. * xdisp.c (Vresize_mini_config, resize_mini_frame) - (resize_mini_initial_height): Removed. + (resize_mini_initial_height): Remove. (syms_of_xdisp): Remove references to these variables. (resize_mini_window): Don't save window configuration, freeze window starts instead. Enlarge window until displaying an empty @@ -2952,16 +2952,16 @@ * xterm.c (x_scroll_bar_create): Don't clear under scroll bar here. - (XTset_vertical_scroll_bar): Clarify position computations. Clear - under newly created scroll bar. Put toolkit scroll bars in the + (XTset_vertical_scroll_bar): Clarify position computations. + Clear under newly created scroll bar. Put toolkit scroll bars in the middle of the area reserved for the scroll bar. 1999-09-03 Kenichi Handa The following changes are for the new handling of multibyte sequence. Now, except for a composite character, no multibyte - character in string/buffer has trailing garbage bytes. For - instance, the length of string "\201\300\300" is now 2, the first + character in string/buffer has trailing garbage bytes. + For instance, the length of string "\201\300\300" is now 2, the first character is Latin-1 A-grave, the second is raw \300. * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2 @@ -2972,7 +2972,7 @@ (PARSE_CHARACTER_SEQ): New macro. (PARSE_MULTIBYTE_SEQ): New macro. (CHAR_PRINTABLE_P): New macro. - (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char. + (STRING_CHAR): Adjust for the change of string_to_non_ascii_char. (STRING_CHAR_AND_LENGTH): Likewise. (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH. (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ. @@ -3016,8 +3016,8 @@ * insdel.c (count_combining_composition): New function. (count_combining_before): Adjust the way to check byte-combining - possibility for the new handling of multibyte sequence. Call - count_combining_composition for a composite character. + possibility for the new handling of multibyte sequence. + Call count_combining_composition for a composite character. (count_combining_after): Likewise. * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH. @@ -3093,8 +3093,8 @@ (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. - * window.c (coordinates_in_window): Use - FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. + * window.c (coordinates_in_window): + Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once instead of twice. @@ -3105,14 +3105,14 @@ * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. - * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract - FRAME_FLAGS_AREA_COLS once. - (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add - FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. + * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): + Subtract FRAME_FLAGS_AREA_COLS once. + (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): + Add FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. 1999-08-30 Gerd Moellmann - * s/freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers + * s/freebsd.h (C_SWITCH_SYSTEM): Add to let configure find headers in /usr/X11R6/include which are checked for with AC_CHECK_HEADER. 1999-08-30 Gerd Moellmann @@ -3139,8 +3139,8 @@ 1999-08-28 Ken Raeburn - * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change - names of structure elements if HIDE_LISP_IMPLEMENTATION is + * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): + Change names of structure elements if HIDE_LISP_IMPLEMENTATION is defined, to help detect code that uses knowledge of the Lisp internals that it shouldn't have. (XFLOAT_DATA): New macro. @@ -3226,8 +3226,8 @@ 1999-08-22 Gerd Moellmann - * xdisp.c (unwind_with_echo_area_buffer): Use - set_buffer_internal_1 instead of set_buffer_internal. + * xdisp.c (unwind_with_echo_area_buffer): + Use set_buffer_internal_1 instead of set_buffer_internal. (with_echo_area_buffer): Ditto. * buffer.c (set_buffer_internal): Set windows_or_buffers_changed @@ -3255,8 +3255,8 @@ (mark_window_display_accurate, redisplay_internal): Set current matrix' buffer, begv, zv. - * window.c (Fset_window_hscroll): Set - prevent_redisplay_optimizations_p instead of clip_changed. + * window.c (Fset_window_hscroll): + Set prevent_redisplay_optimizations_p instead of clip_changed. (Fset_window_hscroll): Ditto. (temp_output_buffer_show): Ditto. (Fset_window_vscroll): Ditto. @@ -3273,7 +3273,7 @@ unchanged_modified, overlay_unchanged_modified. * window.h (beg_unchanged, end_unchanged, unchanged_modified) - (overlay_unchanged_modified): Removed. + (overlay_unchanged_modified): Remove. (with_echo_area_unwind_data): Don't save beg/end_unchanged. (unwind_with_echo_area_buffer): Don't restore them. (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed. @@ -3310,8 +3310,8 @@ * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table. - * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak. - (Qkey_value_weak): Removed. + * fns.c (Qkey, Qvalue): Rename from Qkey_weak, and Qvalue_weak. + (Qkey_value_weak): Remove. (make_hash_table): Use nil, `key', `value', t for weakness. (Fmake_hash_table): Ditto. (copy_hash_table): New. @@ -3336,7 +3336,7 @@ * fns.c (hash_lookup): Test with EQ before calling key comparison function. (hash_remove): Ditto. - (cmpfn_eq): Removed. + (cmpfn_eq): Remove. (cmpfn_eql): Don't test with EQ. (cmpfn_equal): Ditto. (make_hash_table): Set comparison function for `eq' to null. @@ -3344,7 +3344,7 @@ * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h: Remove conditional compilation on NO_PROMPT_IN_BUFFER. - * dispextern.h (NO_PROMPT_IN_BUFFER): Removed. + * dispextern.h (NO_PROMPT_IN_BUFFER): Remove. * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c, xterm.c: Call change_frame_size and do_pending_window_change with @@ -3369,8 +3369,8 @@ NO_PROMPT_IN_BUFFER. * minibuf.c (Fminibuffer_prompt_end): New. - (syms_of_minibuf): Defsubr it. Remove - minibuffer-prompt-in-buffer. + (syms_of_minibuf): Defsubr it. + Remove minibuffer-prompt-in-buffer. (Fminibuffer_prompt_width): Return 0 if not in mini-buffer. Extend documentation. @@ -3381,7 +3381,7 @@ 1999-08-21 Gerd Moellmann - * xdisp.c (minibuffer_scroll_overlap): Removed because not used + * xdisp.c (minibuffer_scroll_overlap): Remove because not used anywhere. (unwind_redisplay): Return nil. (clear_garbaged_frames): New. @@ -3400,7 +3400,7 @@ * xdisp.c (echo_area_glyphs, echo_area_message) (echo_area_glyphs_length, previous_echo_glyphs) (previous_echo_area_message, previous_echo_area_glyphs_length): - Removed. + Remove. (Vmessage_stack, echo_area_buffer, echo_buffer) (display_last_displayed_message_p, Vwith_echo_area_save_vector): New. (message2_nolog): Use set_message and clear_message. @@ -3426,7 +3426,7 @@ Remove initialization of removed variables. (init_xdisp): Remove references to removed variables. - * dispnew.c (adjust_frame_message_buffer): Removed references + * dispnew.c (adjust_frame_message_buffer): Remove references to echo_area_glyphs and previous_echo_glyphs. (direct_output_for_insert): Check for mini-window displaying echo area message differently. @@ -3440,7 +3440,7 @@ longer used in that way. (PRINTDECLARE): Add multibyte. (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently. - (printbufidx): Removed. + (printbufidx): Remove. (printchar, strout): Rewritten. * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to @@ -3493,8 +3493,8 @@ 1999-08-19 Gerd Moellmann - * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear - under scroll bar with width FRAME_SCROLL_BAR_COLS. + * xterm.c (XTset_vertical_scroll_bar): Fix previous change. + Clear under scroll bar with width FRAME_SCROLL_BAR_COLS. 1999-08-18 Dave Love @@ -3511,8 +3511,8 @@ * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for FRAME_X_WINDOW (f) being null at the of the function. If widgets - cannot be created we will already have crashed earlier. Call - lw_set_main_areas with a null menu-bar widget, so that we have + cannot be created we will already have crashed earlier. + Call lw_set_main_areas with a null menu-bar widget, so that we have a reasonable default. (Fx_create_frame): Rearranged so that Lisp errors during frame initialization cause less damage. Initialize menu bar widget @@ -3526,8 +3526,8 @@ 1999-08-17 Gerd Moellmann * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area' - and `right-bitmap-area' if position is in the bitmap areas. This - avoids an error when clicking on the bitmap areas. Instead, they + and `right-bitmap-area' if position is in the bitmap areas. + This avoids an error when clicking on the bitmap areas. Instead, they are currently treated like clicks inside the window. (coordinates_in_window): Return 5 and 6 for bitmap areas. (Qleft_bitmap_area, Qright_bitmap_area): New. @@ -3553,14 +3553,14 @@ * dispextern.h (struct it): Remove member show_trailing_whitespace_p. - * dispnew.c (direct_output_for_insert): Use - Vshow_trailing_whitespace instead of former iterator member + * dispnew.c (direct_output_for_insert): + Use Vshow_trailing_whitespace instead of former iterator member show_trailing_whitespace_p. (direct_output_forward_char): Don't do it if highlighting trailing whitespace. - * xdisp.c (Qshow_trailing_whitespace): Removed. - (Vshow_trailing_whitespace): Added. + * xdisp.c (Qshow_trailing_whitespace): Remove. + (Vshow_trailing_whitespace): Add. (init_iterator): Remove initialization code for show_trailing_whitespace_p. (redisplay_internal): Don't try cursor movement in this_line @@ -3578,7 +3578,7 @@ * window.c (Fpos_visible_in_window_p): Rewritten. - * xfaces.c (add_to_log): Renamed from display_message. + * xfaces.c (add_to_log): Rename from display_message. Don't display messages in echo area. * xterm.c (x_draw_glyph_string_box): Use the background width @@ -3650,7 +3650,7 @@ 1999-08-13 Gerd Moellmann - * window.c (MINSIZE): Removed. + * window.c (MINSIZE): Remove. (window_min_size): New. (set_window_height): Use window_min_size. (change_window_height): Ditto. @@ -3819,8 +3819,8 @@ * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New. - * dispextern.h (struct redisplay_interface): Add - fix_overlapping_area. + * dispextern.h (struct redisplay_interface): + Add fix_overlapping_area. * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p. @@ -3869,7 +3869,7 @@ 1999-08-03 Tom Breton - * lread.c (read1): Added circular reading code to #N=. + * lread.c (read1): Add circular reading code to #N=. (SUBSTITUTE): New macro. (seen_list): New variable. (substitute_object_in_subtree): New function. @@ -4068,7 +4068,7 @@ * ccl.c (ccl_driver) : Now CCL program ID to call may be stored in the following CCL code. Adjusted for the change of Vccl_program_table. - (resolve_symbol_ccl_program): Adjusted for the new style of + (resolve_symbol_ccl_program): Adjust for the new style of embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt is resolving failed. (ccl_get_compiled_code): New function. @@ -4078,7 +4078,7 @@ (Fccl_execute): Get compiled CCL code by just calling setup_ccl_program. (Fccl_execute_on_string): Likewise. - (Fregister_ccl_program): Adjusted for the change of + (Fregister_ccl_program): Adjust for the change of Vccl_program_table. * coding.c (setup_coding_system): Get compiled CCL code by just @@ -4125,7 +4125,7 @@ * xrdb.c (x_load_resources): Set double-click time defaults for Motif list boxes from double-click-time. - * fns.c (Vhash_table_tests): Removed. + * fns.c (Vhash_table_tests): Remove. (Qhash_table_test): New. (syms_of_fns): Initialize Qhash_table_test. (Fmake_hash_table): Look up user-defined tests in symbol prop @@ -4152,7 +4152,7 @@ 1999-07-16 Gerd Moellmann - * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P + * frame.h (FRAME_WINDOW_REDISPLAY_P): Remove. Use FRAME_WINDOW_P instead. * fns.c (cmpfn_eq): Add hash code parameters. @@ -4162,7 +4162,7 @@ 1999-07-15 Gerd Moellmann - * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8. + * lisp.h (DEFAULT_REHASH_THRESHOLD): Change to 0.8. * fns.c (maybe_resize_hash_table): Correct computation of index vector size. @@ -4175,19 +4175,19 @@ (survives_gc_p): Make it externally visible. (mark_object): Ditto. - * fns.c (remove_hash_entry): Removed. + * fns.c (remove_hash_entry): Remove. (sweep_weak_hash_tables): New. * print.c (print): Print more information about hash tables. - * xfns.c (image_spec_hash): Removed. + * xfns.c (image_spec_hash): Remove. (lookup_image): Use sxhash instead of image_spec_hash. - (image_spec_equal_p): Removed. + (image_spec_equal_p): Remove. (lookup_image): Use Fequal instead of image_spec_equal_p. 1999-07-14 Gerd Moellmann - * lisp.h (P_): Moved to top of file. + * lisp.h (P_): Move to top of file. * fns.c (make_hash_table): Set new members. @@ -4197,8 +4197,8 @@ * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function, user_hash_function, cmpfn, and hashfn. - * fns.c (build_hash): Removed. - (hash_test): Removed. + * fns.c (build_hash): Remove. + (hash_test): Remove. (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New. (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New. @@ -4261,7 +4261,7 @@ properties. (handle_single_display_prop): Handle some display property forms for terminal frames. - (Qimage): Moved here from xfns.c. + (Qimage): Move here from xfns.c. * dispextern.h (struct it): New field string_from_display_prop_p. @@ -4331,8 +4331,8 @@ 1999-07-05 Gerd Moellmann - * term.c (TS_cursor_visible): Renamed from TS_visual_mode. - (TS_cursor_normal): Renamed from TS_end_visual_mode. + * term.c (TS_cursor_visible): Rename from TS_visual_mode. + (TS_cursor_normal): Rename from TS_end_visual_mode. (TS_cursor_invisible): New. (term_init): Initialize TS_cursor_invisible. (tty_hide_cursor): New. @@ -4364,7 +4364,7 @@ 1999-07-02 Gerd Moellmann - * dispextern.h (HSCROLL_WINDOWS): Removed. + * dispextern.h (HSCROLL_WINDOWS): Remove. * xdisp.c (mark_window_display_accurate): Don't set w->region_showing. @@ -4378,12 +4378,12 @@ up when cursor is partially visible, make it fully visible. (mark_window_display_accurate): Some cleanup. Record window's last cursor information. - (debug_method_add): Improved. + (debug_method_add): Improve. (redisplay_internal): Record last cursor info only if not consider_all_windows_p. * dispnew.c (update_window): Update top line after scrolling. - (blank_row): Renamed from make_empty_enabled_row. + (blank_row): Rename from make_empty_enabled_row. (increment_glyph_row_buffer_positions): Increment positions in buffers, only. @@ -4406,7 +4406,7 @@ * dispextern.h (struct glyph_matrix): Add member window_vscroll. * xdisp.c (debug_method_add): New. - (debug_redisplay_method): Removed. + (debug_redisplay_method): Remove. (try_window_reusing_current_matrix): Handle case where old window start is the same as new window start. @@ -4550,8 +4550,8 @@ (CURRENT_TOP_LINE_HEIGHT): New. (DESIRED_TOP_LINE_HEIGHT): New. (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New. - (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces - WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT. + (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): + Replaces WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT. (WINDOW_DISPLAY_TEXT_HEIGHT): New. * xterm.c (x_after_update_window_line): Don't draw bitmaps for top @@ -4562,8 +4562,8 @@ x_frame_mode_line_height. (x_get_glyph_string_clip_rect): Take top line into account. (x_clear_end_of_line): Ditto. - (note_mode_line_highlight): Add parameter mode_line_p. Handle - top lines. + (note_mode_line_highlight): Add parameter mode_line_p. + Handle top lines. (note_mouse_highlight): Call note_mode_line_highlight for top lines. (x_erase_phys_cursor): Take top line into account. @@ -4578,12 +4578,12 @@ * xterm.c (x_frame_mode_line_height): Add parameter face_id. - * term.c (estimate_mode_line_height): Renamed from + * term.c (estimate_mode_line_height): Rename from frame_mode_line_height. Add parameter face_id. - (estimate_mode_line_height_hook): Renamed from + (estimate_mode_line_height_hook): Rename from frame_mode_line_height_hook. - (produce_special_glyphs_hook): Removed. - (produce_glyphs_hook): Removed. + (produce_special_glyphs_hook): Remove. + (produce_glyphs_hook): Remove. 1999-06-23 Gerd Moellmann @@ -4604,7 +4604,7 @@ * buffer.h: Add top_line_format. - * xdisp.c (overlay_arrow_changed_p): Removed because not used. + * xdisp.c (overlay_arrow_changed_p): Remove because not used. 1999-06-17 Dave Love @@ -4629,8 +4629,8 @@ * Makefile.in (LIBGIF): Use libungif. - * xdisp.c (compute_window_start_on_continuation_line): Don't - do it if line start is too far away from window start. + * xdisp.c (compute_window_start_on_continuation_line): + Don't do it if line start is too far away from window start. 1999-06-14 Gerd Moellmann @@ -4714,8 +4714,8 @@ * xfaces.c (SCALABLE_FONTS): Define this to enable scalable font support. (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New. - (x_face_list_fonts): Add parameter scalable_fonts_p. Handle - scalable fonts depending on the setting of SCALABLE_FONTS. + (x_face_list_fonts): Add parameter scalable_fonts_p. + Handle scalable fonts depending on the setting of SCALABLE_FONTS. (first_font_matching): List more than one font to find the first non-scalable matching font. (sorted_font_list): Let x_face_list_fonts return scalable fonts @@ -4730,8 +4730,8 @@ 1999-05-26 Gerd Moellmann - * xfns.c (png_load): Let PNG lib handle gamma. Construct - mask only if image contains simple transparency information. + * xfns.c (png_load): Let PNG lib handle gamma. + Construct mask only if image contains simple transparency information. Otherwise, combine image with frame background color. * configure.in (--with-png, HAVE_PNG): New. @@ -4829,7 +4829,7 @@ 1999-03-29 Gerd Moellmann - * xfaces.c (Qraised, Qsunken, QCshadow): Removed. + * xfaces.c (Qraised, Qsunken, QCshadow): Remove. (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New. Use these symbols for the box face attribute instead of the removed ones. @@ -4852,7 +4852,7 @@ * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p. (first_font_matching): New. (set_lface_from_font_name): Use it if font name is a pattern. - (font_field_wildcard_p): Removed. + (font_field_wildcard_p): Remove. * dispnew.c (shift_glyph_matrix): Add `window' parameter. Recompute visible height of rows. @@ -4881,12 +4881,12 @@ (update_window_line): Call after_update_window_line_hook if visible row height has changed. - * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed. + * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Remove. (struct glyph_row): New member visible_height. * xfaces.c (font_field_wildcard_p): New. - (set_lface_from_font_name): Remove parameter force_p. Accept - font names containing wildcards. + (set_lface_from_font_name): Remove parameter force_p. + Accept font names containing wildcards. 1999-03-04 Gerd Moellmann @@ -4906,7 +4906,7 @@ * dispextern.h (struct face): Add use_box_color_for_shadows_p. * xterm.c (x_draw_box_rect): New. - (x_draw_glyph_string_box): Renamed from + (x_draw_glyph_string_box): Rename from x_draw_glyph_string_relief. Call x_draw_box_rect. * xfns.c (QCrelief): New. @@ -4914,20 +4914,20 @@ * dispextern.h (struct glyph): Rename left_shadow_p to left_box_line_p, right_shadow_p to right_box_line_p. - (MAX_RELIEF_THICKNESS): Removed. + (MAX_RELIEF_THICKNESS): Remove. (struct it): Rename members having `relief' in their names to contain `box' instead. * xfaces.c (realize_x_face): Handle new box attribute values. - (QCrelief, Qbox): Removed. + (QCrelief, Qbox): Remove. (QCshadow, QCcolor, Qraised, Qsunken): New. (syms_of_xfaces): Initialize new symbols. 1999-03-02 Gerd Moellmann - * dispextern.h (LFACE_RELIEF_INDEX): Removed. + * dispextern.h (LFACE_RELIEF_INDEX): Remove. - * xfaces.c (LFACE_RELIEF): Removed. + * xfaces.c (LFACE_RELIEF): Remove. (merge_face_vector_with_property): Remove handling of `:relief'. (Finternal_set_lisp_face_attribute): Ditto. (Finternal_set_lisp_face_attribute_from_resource): Ditto. @@ -4946,7 +4946,7 @@ * xterm.c (x_draw_glyph_string): Draw underline, overline, strike-through, and boxes. - (x_draw_glyph_string_underline): Removed. + (x_draw_glyph_string_underline): Remove. * xfaces.c (QCoverline, QCstrike_through, QCbox): New. (Qoverline, Qstrike_through, Qbox): New. @@ -5019,7 +5019,7 @@ 1999-01-03 Masatake Yamato * dispextern.h (UNDERLINE_COLOR): Defined. - (struct face): Added two new members. + (struct face): Add two new members. underline_color, underline_defaulted_p. * xfaces.c (merge_face_vector_with_property): @@ -5032,7 +5032,7 @@ 1999-02-12 Gerd Moellmann - * xfns.c (Fx_image_header): Removed. + * xfns.c (Fx_image_header): Remove. 1999-02-07 Gerd Moellmann @@ -5073,16 +5073,16 @@ * xdisp.c (handle_single_display_prop): New. (handle_display_prop): Call it. - (handle_raise_prop): Removed. - (handle_height_prop): Removed. - (handle_space_width_prop): Removed. + (handle_raise_prop): Remove. + (handle_height_prop): Remove. + (handle_space_width_prop): Remove. (handle_face_prop): Remove handling of raised text. (handle_display_prop): Do it here. * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX. - (RAISE_PROP_IDX): Removed. - (HEIGHT_PROP_IDX): Removed. - (SPACE_WIDTH_PROP_IDX): Removed. + (RAISE_PROP_IDX): Remove. + (HEIGHT_PROP_IDX): Remove. + (SPACE_WIDTH_PROP_IDX): Remove. * xdisp.c (Qdisplay): Replaces Qglyph. (handle_display_prop): Formerly handle_glyph_prop. @@ -5090,8 +5090,8 @@ 1999-01-11 Gerd Moellmann * xdisp.c (reseat_to_string): Set position in display vector to -1. - (handle_stop): Set position in display vector to -1. Don't - check overlay strings when set up to deliver characters from a + (handle_stop): Set position in display vector to -1. + Don't check overlay strings when set up to deliver characters from a display vector. (set_iterator_to_next): At the end of a run of characters from a display vector, check whether the display vector display replaces @@ -5124,7 +5124,7 @@ * buffer.h (struct buffer): indicate_empty_lines renamed from indicate_zv_lines. - * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines. + * buffer.c (indicate-empty-lines): Rename from indicate_zv_lines. (default-indicate-zv-lines): Likewise. * dispextern.h (struct glyph_row): Rename indicate_zv_line_p @@ -5139,7 +5139,7 @@ and `N-'. * xfns.c (xbm_scan): New. - (xbm_read_hexint): Removed. + (xbm_read_hexint): Remove. (xbm_read_bitmap_file_data): Use xbm_scan. * fileio.c (Finsert_file_contents): Prevent redisplay optimizations. @@ -5155,8 +5155,8 @@ * xfaces.c (face_with_height): New. - * xdisp.c (eval_handler): Renamed from eval_mode_handler. - (eval_form): Renamed from eval_mode_element. + * xdisp.c (eval_handler): Rename from eval_mode_handler. + (eval_form): Rename from eval_mode_element. (handle_face_prop): Use it. (Qheight): Replaces Qsmaller. (handle_height_prop): Replaces handle_smaller_prop. @@ -5183,7 +5183,7 @@ 1998-11-28 Gerd Moellmann - * config.in (PROTO): Removed. + * config.in (PROTO): Remove. * xterm.h: Change PROTO to P_. @@ -5225,7 +5225,7 @@ * xterm.c (x_scroll_bar_move): Clear to the left and right of toolkit scroll bars differently. - (x_scroll_bar_move): Removed. + (x_scroll_bar_move): Remove. (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here. * dispextern.h: Make it compilable --with-x=no. @@ -5256,8 +5256,8 @@ 1998-11-23 Gerd Moellmann - * xdisp.c (restore_overlay_strings): Removed. - (restore_dpvec): Removed. + * xdisp.c (restore_overlay_strings): Remove. + (restore_dpvec): Remove. (init_from_display_pos): Inline both functions above. * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New. @@ -5270,7 +5270,7 @@ (gif_format): Ditto. (gs_format): Ditto. - * xdisp.c (set_window_cursor): Removed. + * xdisp.c (set_window_cursor): Remove. (redisplay_internal): Case cursor motion in cursor line of selected window; use set_cursor_from_row. @@ -5641,7 +5641,7 @@ * xdisp.c (redisplay_window): Always resize toolbar window if auto_resize_toolbar_p is non-zero. - (auto_resize_toolbar_p): Renamed from auto_resize_toolbar. + (auto_resize_toolbar_p): Rename from auto_resize_toolbar. (window_box): New. (window_box_height): New. (window_box_width): New. @@ -5735,12 +5735,12 @@ * xfns.c (x_laplace): New. (x_laplace_read_row): New. (x_laplace_write_row): New. - (lookup_image): Handle common image attributes here. New - attribute `:algorithm'. + (lookup_image): Handle common image attributes here. + New attribute `:algorithm'. * xfaces.c (clear_face_cache): Call clear_image_cache. - * xterm.c (x_inverted_image_mask): Removed. + * xterm.c (x_inverted_image_mask): Remove. (x_draw_image_foreground_1): New. (x_draw_image_glyph_string): Draw images with mask to a temporary pixmap to reduce flickering. @@ -5755,7 +5755,7 @@ * xfns.c (cache_image): Correct call to xrealloc. - * dispnew.c (Fset_toolbar_height): Removed. + * dispnew.c (Fset_toolbar_height): Remove. * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of FRAME_MENU_BAR_LINES. @@ -5838,8 +5838,8 @@ (clear_image_cache): Additional parameter force_p. (Fclear_image_cache): New. (x_find_image_file): New. - (xbm_load): Handle `:margin' and `:relief'. Use - x_find_image_file. + (xbm_load): Handle `:margin' and `:relief'. + Use x_find_image_file. (xpm_load): Likewise. (pbm_load): Likewise. (jpeg_load): Likewise. @@ -5939,8 +5939,8 @@ * frame.h (struct frame): Add toolbar-related members toolbar_window, desired_toolbar_items, current_toolbar_items, desired_toolbar_string, current_toolbar_string, - n_desired_toolbar_items, n_current_toolbar_items. Add - window_height. + n_desired_toolbar_items, n_current_toolbar_items. + Add window_height. * xterm.c (x_after_update_window_line): Don't draw bitmap areas for pseudo-windows. @@ -6024,17 +6024,17 @@ 1998-09-06 Gerd Moellmann - * lisp.h (HAVE_FACES): Removed. + * lisp.h (HAVE_FACES): Remove. - * dispextern.h (HAVE_FACES): Removed. + * dispextern.h (HAVE_FACES): Remove. - * config.in (HAVE_FACES): Removed. + * config.in (HAVE_FACES): Remove. - * dispnew.c (HAVE_FACES): Removed. + * dispnew.c (HAVE_FACES): Remove. - * xdisp.c (HAVE_FACES): Removed. + * xdisp.c (HAVE_FACES): Remove. - * xfaces.c (HAVE_FACES): Removed. + * xfaces.c (HAVE_FACES): Remove. 1998-09-05 Gerd Moellmann @@ -6042,8 +6042,8 @@ free realized faces. * xfaces.c (free_all_realized_faces): Make it externally visible. - (Finternal_set_lisp_face_attribute): Increment - windows_or_buffers_changed. + (Finternal_set_lisp_face_attribute): + Increment windows_or_buffers_changed. * dispnew.c (direct_output_for_insert): Give up if face_change_count is non-zero. @@ -6076,9 +6076,9 @@ * term.c (OUTPUT_IF): Make replacement text have statement form. (OUTPUT1_IF): Ditto. - (TS_italic_mode, TS_end_italic_mode): Removed. - (TS_bold_mode): Removed. - (TS_underscore_mode, TS_end_underscore_mode): Removed. + (TS_italic_mode, TS_end_italic_mode): Remove. + (TS_bold_mode): Remove. + (TS_underscore_mode, TS_end_underscore_mode): Remove. (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New. (TS_enter_reverse_mode): New. (TS_enter_underline_mode, TS_exit_underline_mode): New. @@ -6187,8 +6187,8 @@ * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths. - * dispnew.c (allocate_matrices_for_window_redisplay): Compute - total pixel width of window differently. + * dispnew.c (allocate_matrices_for_window_redisplay): + Compute total pixel width of window differently. * xdisp.c (init_iterator): Compute width of mode line differently. @@ -6209,7 +6209,7 @@ (update_window_tree): Parameter no_scrolling_p removed. (update_single_window): Ditto. - * xterm.c (x_get_char_font_and_encoding): Renamed to + * xterm.c (x_get_char_font_and_encoding): Rename to x_get_char_face_and_encoding. * dispnew.c (update_text_area): Don't call get_glyph_overhangs @@ -6254,8 +6254,8 @@ * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE. - * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use - face_default_registry instead. + * xfaces.c (Vx_unibyte_registry_and_encoding): Remove. + Use face_default_registry instead. * syntax.c (scan_sexps_forward): Set up syntax table before jumping to initial state label. @@ -6372,13 +6372,13 @@ (struct iterator_stack_entry): Add multibyte_p. * xdisp.c (string_pos): Use string_char_to_byte. - (char_charset): Removed. + (char_charset): Remove. 1998-08-03 Gerd Moellmann * xterm.c (x_draw_image_glyph_string_foreground): Draw a rectangle for a block cursor over an image without a mask. - (x_stretch_block_cursor): Added. Non-zero means don't draw + (x_stretch_block_cursor): Add. Non-zero means don't draw a block cursor over a stretch as wide as that stretch. (x_draw_stretch_glyph_string): Use it. (x_draw_hollow_cursor): Ditto. @@ -6389,7 +6389,7 @@ * xdisp.c (char_charset): Return charset of a character, depending on whether or not multi-byte characters are enabled. - * xfaces.c (Fset_face_charset_registry): Removed. + * xfaces.c (Fset_face_charset_registry): Remove. (x_charset_registry): Determine registry from charset plist. 1998-08-02 Gerd Moellmann @@ -6401,7 +6401,7 @@ redisplay interface. * keyboard.c (detect_input_pending_run_timers): Likewise. - * dispextern.h (produce_*glyphs_hook): Removed. + * dispextern.h (produce_*glyphs_hook): Remove. * term.c (produce_*glyphs): Ditto. (cursor_to): Remove pixel position parameters. @@ -6457,7 +6457,7 @@ * xterm.c (x_flush): Flush X output buffer. (XTflash): Use it. - * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol. + * xfaces.c (lface_from_face_name): Rename from lface_from_symbol. Allow strings as face names. * xfns.c (forall_images_in_image_cache): Check that frame is @@ -6493,7 +6493,7 @@ (Finternal_lisp_face_attribute_values): Ditto. (syms_of_xfaces): Define the symbol `:reverse-video'. - * xdisp.c (get_glyph_property): Renamed from + * xdisp.c (get_glyph_property): Rename from fill_iterator_from_glyph_property. (next_element_from_buffer): Handle case that no `glyph' property was found correctly. @@ -6501,28 +6501,28 @@ 1998-07-29 Gerd Moellmann - * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take - additional window argument. + * dispnew.c (Fshow_cursor): Rename from blink_cursor. + Take additional window argument. - * xdisp.c (reseat_at_previous_visible_line_start): Renamed from + * xdisp.c (reseat_at_previous_visible_line_start): Rename from set_iterator_to_previous_visible_line_start. (reseat_at_next_visible_line_start): Likewise. - (compute_stop_pos): Renamed from set_iterator_stop_pos. - (face_before_or_after_it_pos): Renamed from get_face_at_it_pos. - (compute_face_in_buffer): Renamed from + (compute_stop_pos): Rename from set_iterator_stop_pos. + (face_before_or_after_it_pos): Rename from get_face_at_it_pos. + (compute_face_in_buffer): Rename from compute_face_at_iterator_position. - (compute_face_in_string): Renamed from + (compute_face_in_string): Rename from compute_face_at_iterator_string_position. - (get_space_width): Renamed from get_iterator_space_width. - (next_overlay_string): Renamed from + (get_space_width): Rename from get_iterator_space_width. + (next_overlay_string): Rename from set_iterator_to_next_overlay_string. - (get_overlay_strings): Renamed from + (get_overlay_strings): Rename from get_overlay_strings_at_iterator_position. - (restore_overlay_strings): Renamed from + (restore_overlay_strings): Rename from setup_overlay_strings_from_glyph_pos. - (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos. - (init_from_display_pos): Renamed from init_iterator_from_glyph_pos. - (init_to_row_start): Renamed from init_iterator_to_row_start. + (restore_dpvec): Rename from setup_iterator_dpvec_from_glyph_pos. + (init_from_display_pos): Rename from init_iterator_from_glyph_pos. + (init_to_row_start): Rename from init_iterator_to_row_start. (init_to_row_end): Formerly init_iterator_to_next_row_start. * xterm.c: Merge with 20.2.97. @@ -6532,26 +6532,26 @@ simple charpos. * xdisp.c (this_line_start_pos): Use struct text_pos. - (this_line_end_pos): Renamed from .*endpos; use struct text_pos. - (enum move_it_result): Renamed from move_iterator_result. + (this_line_end_pos): Rename from .*endpos; use struct text_pos. + (enum move_it_result): Rename from move_iterator_result. (string_pos_nchars_ahead): Compute text_pos in a string from a known text_pos plus a character delta. (string_pos): Compute text_pos in string from charpos. (c_string_pos): Likewise for a C string. (number_of_chars): Return number of characters in a possibly multi-byte C string. - (check_it): Renamed from check_iterator. Check that charpos and + (check_it): Rename from check_iterator. Check that charpos and bytepos are in sync. - (push_it): Renamed from save_iterator_settings. - (pop_it): Renamed from restore_iterator_settings. - (move_it_.*): Renamed from move_iterator_.*. + (push_it): Rename from save_iterator_settings. + (pop_it): Rename from restore_iterator_settings. + (move_it_.*): Rename from move_iterator_.*. (charset_at_position): Take charpos/bytepos into account. (back_to_previous_line_start): Set iterator to previous line start. (forward_to_next_line_start): Set iterator to next line start. - (back_to_previous_visible_line_start): Renamed from + (back_to_previous_visible_line_start): Rename from move_iterator_previous_visible_line_start. (set_iterator_to_next_visible_line_start): Handle charpos/bytepos. - (get_face_at_it_pos): Renamed from get_face_from_cursor_pos. + (get_face_at_it_pos): Rename from get_face_from_cursor_pos. Handle charpos/bytepos. (compute_face_at_iterator_position): Handle charpos/bytepos. (compute_face_at_iterator_string_position): Likewise. @@ -6593,7 +6593,7 @@ (copy_glyph_row_contents): Ditto. (check_matrix_invariants): Add additional checks for charpos/ bytepos consistency. - (direct_output_for_insert): Changed for charpos/bytepos. + (direct_output_for_insert): Change for charpos/bytepos. (buffer_posn_from_coords): Likewise. Put code dealing with `direction-reversed' in #if 0. @@ -6630,10 +6630,10 @@ (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker. (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos. (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality. - (struct display_pos): Renamed from glyph_pos. Use struct text_pos + (struct display_pos): Rename from glyph_pos. Use struct text_pos for buffer and string positions. (struct glyph): Use text_pos. - (struct it): Renamed from display_iterator. Use text_pos. + (struct it): Rename from display_iterator. Use text_pos. 1998-07-23 Gerd Moellmann @@ -6650,7 +6650,7 @@ * xfns.c (prepare_image_for_display): Don't set loading_failed_p flag of images. - * dispextern.h (struct image): Removed member loading_failed_p. + * dispextern.h (struct image): Remove member loading_failed_p. It's probably better to have the chance to try to load an image again. @@ -6703,28 +6703,28 @@ * xfns.c (tiff_image_p, tiff_load): Support TIFF images via libtiff34. - * configure.in (--with-tiff, HAVE_TIFF): Added. + * configure.in (--with-tiff, HAVE_TIFF): Add. - * config.in (HAVE_TIFF): Added. + * config.in (HAVE_TIFF): Add. - * Makefile.in (LIBTIFF): Added. + * Makefile.in (LIBTIFF): Add. * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images. - * Makefile.in (LIBJPEG): Added. + * Makefile.in (LIBJPEG): Add. * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER, RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with jpeglib.h. - * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems + * configure.in (HAVE_JPEG, --with-jpeg): Add. On systems where the library is installed in /usr/local/lib, e.g. FreeBSD, configure must be run with `--x-includes=/usr/X11R6/include: /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'. 1998-07-18 Gerd Moellmann - * config.in (HAVE_JPEG): Added. + * config.in (HAVE_JPEG): Add. * xfns.c (ct_init): Initialize color table used to map RGB colors from images to X pixel colors. @@ -6837,20 +6837,20 @@ (redisplay_window): Case cursor movement. Don't try it if last_cursor.vpos is out of range. - * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This - way, the display optimization for the line containing the cursor + * xdisp.c (set_cursor_from_row): Set this_line_.* variables. + This way, the display optimization for the line containing the cursor is used more frequently, esp. when we have a blinking cursor. (display_line): Don't set this_line_.* variables. - * xterm.c (x_redraw_cursor): Removed. + * xterm.c (x_redraw_cursor): Remove. (x_display_and_set_cursor): Set cursor type depending on cursor_off_p flag of window. - * dispnew.c (redraw_cursor_hook): Removed. + * dispnew.c (redraw_cursor_hook): Remove. (Fblink_cursor): Additional parameter on_p to set the cursor_off_p member of the selected window. - * xfaces.c (Fface_font): Added for compatibility with 20.2. + * xfaces.c (Fface_font): Add for compatibility with 20.2. * xterm.c (x_y_to_hpos_vpos): Return null if not over text. Return glyph area under x/y. @@ -6880,8 +6880,8 @@ 1998-06-29 Gerd Moellmann - * xfaces.c (Finternal_make_lisp_face): Increment - lface_id_to_name_size when lface_id_to_name is reallocated. + * xfaces.c (Finternal_make_lisp_face): + Increment lface_id_to_name_size when lface_id_to_name is reallocated. 1998-06-27 Gerd Moellmann @@ -6892,12 +6892,12 @@ 1998-05-09 Gerd Moellmann - * xdisp.c (set_iterator_to_next_visible_line_start): Don't - do anything if iterator is at ZV because scan_buffer doesn't + * xdisp.c (set_iterator_to_next_visible_line_start): + Don't do anything if iterator is at ZV because scan_buffer doesn't work otherwise. * xterm.c (x_encode_char): Inline it. - (x_get_char_font_and_encoding): Simplified. + (x_get_char_font_and_encoding): Simplify. (x_per_char_metric): Inline it. * xterm.c (x_draw_glyph_string_relief): Use clipping. @@ -6926,15 +6926,15 @@ * xdisp.c (display_line): Compute row height from glyphs in marginal areas. - * xterm.c (x_draw_image_glyph_string_background): Draw - background of an image glyph string. + * xterm.c (x_draw_image_glyph_string_background): + Draw background of an image glyph string. (x_draw_glyph_string_bg_rect): Draw a rectangular region of the background of a glyph string. (x_draw_image_glyph_string_foreground): Draw the foreground of an image glyph string. (x_inverted_image_mask): Return the inverted mask of an image. - * xfns.c (x_draw_image): Removed. + * xfns.c (x_draw_image): Remove. * dispextern.h (struct image_type): Remove drawing function. @@ -6966,8 +6966,8 @@ image drawing function. * xdisp.c (fill_iterator_from_glyph_property): Use position of - first character with `glyph' property as image position. Set - iterator back to that position as long as the image hasn't been + first character with `glyph' property as image position. + Set iterator back to that position as long as the image hasn't been consumed with set_iterator_to_next. (set_cursor_from_row): Accept when glyph with given position is not found in the row. Set cursor x to end of line in that case, @@ -6993,7 +6993,7 @@ * dispextern.h (struct glyph_row): Use unsigned hash value. - * xdisp.c (display_line): Simplified and made faster by setting + * xdisp.c (display_line): Simplify and made faster by setting the cursor with set_cursor_from_row. (set_cursor_from_row): Handle rows of desired matrix. @@ -7001,8 +7001,8 @@ * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs with type != CHAR_GLYPH. - (fill_iterator_from_glyph_property): Return void. Set - method to next_element_from_image. + (fill_iterator_from_glyph_property): Return void. + Set method to next_element_from_image. (next_element_from_image): Dummy function for delivering a single image id. (set_iterator_to_next): Add method next_element_from_image. @@ -7037,7 +7037,7 @@ * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB. - * xdisp.c (fill_iterator_from_glyph_property): Renamed from + * xdisp.c (fill_iterator_from_glyph_property): Rename from setup_iterator_from_glyph_property. Don't do it for terminal frames. @@ -7073,12 +7073,12 @@ * config.in: Add HAVE_XPM. - * xfns.c (xbm_draw): Removed. + * xfns.c (xbm_draw): Remove. (x_draw_image): Default implementation for drawing images. (xbm_keyword_index): Remove XBM_DEPTH. (xbm_format): Remove `:depth'. - (xbm_image_spec_from_file): Removed to reduce consing. - (xbm_load_image_from_file): Added for the same reason. + (xbm_image_spec_from_file): Remove to reduce consing. + (xbm_load_image_from_file): Add for the same reason. * xterm.c (x_fill_image_glyph_string): Don't set ybase of glyph string. @@ -7148,8 +7148,8 @@ * widget.c (widget_store_internal_border): Return void. - * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return - void. + * xfns.c (x_destroy_bitmap): Use xfree instead of free. + Return void. (init_x_parm_symbols): Return void. (x_report_frame_params): Ditto. (x_set_border_pixel): Ditto. @@ -7220,7 +7220,7 @@ * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these macros. - * xterm.c (x_font_min_bounds): Moved here from xfaces.c. + * xterm.c (x_font_min_bounds): Move here from xfaces.c. (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c. (x_load_font): Use x_compute_min_char_bounds. @@ -7238,7 +7238,7 @@ for characters < 0177 in default face. Prepare face for display before returning it. (x_produce_glyphs): Use it->charset. - (x_get_char_font_and_encoding): Simplified. + (x_get_char_font_and_encoding): Simplify. (x_encode_char): Remove parameter `font'. * xfaces.c (choose_face_font): If registry from charset symbol @@ -7309,8 +7309,8 @@ * dispextern.h (FACE_FOR_CHARSET): Replacement for function lookup_face_for_charset. - * xfaces.c (free_font_names): Renamed from free_split_font_names. - (free_all_realized_faces): Renamed from remove_all_realized_faces. + * xfaces.c (free_font_names): Rename from free_split_font_names. + (free_all_realized_faces): Rename from remove_all_realized_faces. 1998-04-25 Gerd Moellmann @@ -7329,8 +7329,8 @@ 1998-04-24 Gerd Moellmann - * dispextern.h (struct face): Member - fontset_chosen_for_realization_p removed. + * dispextern.h (struct face): + Member fontset_chosen_for_realization_p removed. * xfaces.c (cache_face): If face->fontset >= 0, add face to the end of the collision list, so that we find more specific faces @@ -7365,8 +7365,8 @@ (xlfd_point_size): Return -1 if resolution or point size of font unknown. - * xfaces.c (free_font): Removed. - (load_face_font_or_fontset): Renamed from load_font. + * xfaces.c (free_font): Remove. + (load_face_font_or_fontset): Rename from load_font. (load_face_font_or_fontset): Use message2 instead of signaling. (load_color): Likewise. (load_pixmap): Likewise. @@ -7408,8 +7408,8 @@ to -1 so that it will compute the right face for the truncation glyphs. - * xfaces.c (realize_face): Set - face->fontset_chosen_for_realization_p. + * xfaces.c (realize_face): + Set face->fontset_chosen_for_realization_p. (lookup_face_for_charset): If fontset wasn't specified originally and new charset != CHARSET_COMPOSITION, get a new face for that charset. @@ -7461,9 +7461,9 @@ (lface_hash): Add weight, slant, swidth and relief to hash value. (lface_equal_p): Make it faster. (lface_from_symbol): Use assq_no_quit. - (Fnote_default_face_changed): Removed. + (Fnote_default_face_changed): Remove. (cmp_font_names): Use strcmp instead of xstricmp. - (face_charset_registries): Removed. + (face_charset_registries): Remove. 1998-04-20 Gerd Moellmann @@ -7487,8 +7487,8 @@ * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold and :italic for compatibility. - (Finternal_set_lisp_face_attribute_from_resource): Handle - :bold and :italic. Handle boolean resource values for + (Finternal_set_lisp_face_attribute_from_resource): + Handle :bold and :italic. Handle boolean resource values for :underline and :italic. * xfns.c (display_x_get_resource): Make it externally visible. @@ -7500,7 +7500,7 @@ definitions. (Finternal_lisp_face_equal_p): Additional frame argument. (merge_lisp_face_vector_with_property): Ditto. - (Frealize_basic_faces): Removed. + (Frealize_basic_faces): Remove. (Finternal_get_lisp_face_attribute): Additional frame argument. (Finternal_lisp_face_p): Ditto. (load_color) [MSDOS]: Removed because it isn't clear how @@ -7531,8 +7531,8 @@ * xdisp.c (redisplay_internal, echo_area-display): If realized faces have been cleared, call recompute_basic_faces. - * xfaces.c (recompute_basic_faces): Free realized faces. Reset - face_attributes_changed_p. + * xfaces.c (recompute_basic_faces): Free realized faces. + Reset face_attributes_changed_p. (remove_all_realized_faces): Remove all realized faces on all frames. (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces. @@ -7541,7 +7541,7 @@ changed since the last redisplay, recompute basic faces. (echo_area_display): Ditto. - * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache. + * xfaces.c (clear_face_gcs): Rename from clear_realized_face_cache. * xfaces.c (min_char_bounds): If face cache not yet present, don't try to get font dimensions from faces. @@ -7549,11 +7549,11 @@ * xterm.c (x_frame_mode_line_height): If face cache not present set, return default height. - * alloc.c (mark_face_cache): Check for null faces. Correct - index bug. + * alloc.c (mark_face_cache): Check for null faces. + Correct index bug. - * dispextern.h (struct face): Renamed from struct rface. Member - underline renamed underline_p. Make it a bit-field. + * dispextern.h (struct face): Rename from struct rface. + Member underline renamed underline_p. Make it a bit-field. * xfaces.c (init_frame_faces): Allocate face cache. (free_frame_faces): Free face cache. @@ -7562,7 +7562,7 @@ * frame.c (make_frame): Initialze face cache with null. - * xfaces.c (same_size_fonts): Removed. + * xfaces.c (same_size_fonts): Remove. * xterm.c (x_set_glyph_string_gc): Add post-condition s->gc != 0. @@ -7584,56 +7584,56 @@ * xfaces.c (syms_of_xfaces): Correct calls to defsubr. - * xfns.c (Fx_face_fixed_p): Removed. - (Fx_list_fonts): Moved to xfaces.c. + * xfns.c (Fx_face_fixed_p): Remove. + (Fx_list_fonts): Move to xfaces.c. - * xfaces.c (compute_face_at_buffer_pos): Renamed to + * xfaces.c (compute_face_at_buffer_pos): Rename to face_at_buffer_position. Parameter charset removed; always compute face for CHARSET_ASCII. - (face_at_string_position): Renamed from + (face_at_string_position): Rename from compute_face_at_string_pos. Parameter charset removed; always compute for CHARSET_ASCII. (lookup_face_for_charset): Take frame parameter instead of face_cache. (lookup_face): Ditto. - (compute_char_face): Renamed from compute_glyph_face. + (compute_char_face): Rename from compute_glyph_face. * xdisp.c (init_iterator): Initialize charset member. (reseat_iterator_to_string): Ditto. (get_charset_at_buffer_position): Determine charset at buffer position in current_buffer. (reseat_iterator): Call above function. - (compute_face_at_iterator_position): Call - compute_face_at_buffer_pos. - (compute_face_at_iterator_string_position): Call - compute_face_at_string_pos. - (get_face_from_id): Removed. + (compute_face_at_iterator_position): + Call compute_face_at_buffer_pos. + (compute_face_at_iterator_string_position): + Call compute_face_at_string_pos. + (get_face_from_id): Remove. (get_face_from_cursor_pos): Call compute_face_at_buffer_pos. Call get_charset_at_buffer_position. (reseat_iterator): Determine face if charset at pos differs from iterator's charset. - (reseat_iterator_to_glyph_pos): Removed. + (reseat_iterator_to_glyph_pos): Remove. * xfaces.c (compute_face_at_bufpos): Remove parameter charset. Determine charset from buffer position. - (compute_string_char_face): Renamed to compute_face_at_string_pos. - (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos. + (compute_string_char_face): Rename to compute_face_at_string_pos. + (compute_face_at_bufpos): Rename to compute_face_at_buffer_pos. * dispextern.h (struct display_iterator): Add member charset. 1998-04-15 Gerd Moellmann - * xfaces.c (compute_char_face): Removed. + * xfaces.c (compute_char_face): Remove. * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face with new parameter list. - * xfaces.c (region_face): Removed. - (allocate_face): Removed. + * xfaces.c (region_face): Remove. + (allocate_face): Remove. (copy_face): Ditto. - (face_eql): Removed. - (intern_face): Removed. - (clear_face_cache): Removed. + (face_eql): Remove. + (intern_face): Remove. + (clear_face_cache): Remove. (load_font): Ditto. (unload_font): Ditto. (load_color): Ditto. @@ -7644,9 +7644,9 @@ (merge_faces): Ditto. (compute_base_face): Ditto. (merge_face_list): Ditto. - (Fmake_face_internal): Removed. + (Fmake_face_internal): Remove. (Fset_face_attribute_internal): Ditto. - (face_name_id_number): Removed. + (face_name_id_number): Remove. (Fframe_face_alist): Ditto. (Fset_frame_face_alist): Ditto. (Finternal_next_face_id): Ditto. @@ -7693,7 +7693,7 @@ * fontset.h: Add external declarations for Vfontset_alias_alist and Vglobal_fontset_alist. - * xfaces.c (merge_lisp_face_vector_with_property): Simplified. + * xfaces.c (merge_lisp_face_vector_with_property): Simplify. (realize_default_face): If frame parameters contain an artificial font name naming a fontset, set the family of the default face to the fontset name given by the registry. @@ -7741,11 +7741,11 @@ * xdisp.c (set_cursor_from_row): If PT is not found in the row, display the cursor at the start of the row. - * dispnew.c (direct_output_forward_char): Call - set_cursor_from_row. + * dispnew.c (direct_output_forward_char): + Call set_cursor_from_row. - * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If - position is not in an overlay string, set iterator's position and + * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): + If position is not in an overlay string, set iterator's position and method explicitly so. (set_cursor_from_row): Correct cursor position calculation. Make it externally visible. @@ -7907,7 +7907,7 @@ * dispnew.c: Make compilable with -Wall. * term.c: Ditto. - * charset.h (CHAR_LEN): Moved here from dispextern.h. + * charset.h (CHAR_LEN): Move here from dispextern.h. 1998-03-14 Gerd Moellmann @@ -7939,8 +7939,8 @@ * xdisp.c (init_iterator): Increase last_visible_x by vertical scroll bar width for mode lines. - * dispnew.c (allocate_matrices_for_window_redisplay): Include - vertical scroll bar width in width calculation so that we can + * dispnew.c (allocate_matrices_for_window_redisplay): + Include vertical scroll bar width in width calculation so that we can display mode lines wider. * xdisp.c (redisplay_window): Restore buffers before returning @@ -7958,7 +7958,7 @@ * dispextern.h (struct glyph_row): Member max_ascent renamed ascent. Member max_descent replaced by height. (struct display_iterator): Member max_descent replaced by height. - (MATRIX_ROW_PIXEL_HEIGHT): Removed. + (MATRIX_ROW_PIXEL_HEIGHT): Remove. * xterm.c (x_alloc_lighter_color): Don't free colors if visual class makes it unnecessary or dangerous. @@ -7999,10 +7999,10 @@ * xterm.c (x_scroll_run): Don't set updated_window to null. This resets updated_window when called from scrolling_window. - * dispextern.h (scroll_run_hook): Renamed from line_dance_hook. + * dispextern.h (scroll_run_hook): Rename from line_dance_hook. - * xterm.c (x_scroll_run): Additional window parameter. Set - and reset updated_window. + * xterm.c (x_scroll_run): Additional window parameter. + Set and reset updated_window. * dispnew.c (line_dance_hook): Additional window parameter. @@ -8016,7 +8016,7 @@ * dispnew.c (Fblink_cursor): Remove call to detect_input_pending. Don't redraw cursor during redisplay. - * xterm.c (x_scroll_run): Renamed from do_line_dance. + * xterm.c (x_scroll_run): Rename from do_line_dance. * xdisp.c (redisplay_window): For window-based redisplay, always try try_window_id. @@ -8080,8 +8080,8 @@ * xdisp.c (set_next_iterator_stop_pos): No longer static. - * dispnew.c (direct_output_for_insert): Call - set_next_iterator_stop_pos after having changed it2.endpos. + * dispnew.c (direct_output_for_insert): + Call set_next_iterator_stop_pos after having changed it2.endpos. 1998-02-17 Gerd Moellmann @@ -8102,22 +8102,22 @@ enough glyphs to display a mode line or menu line which draws over flags areas. - * xterm.c (XTset_vertical_scroll_bar): Use - WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of + * xterm.c (XTset_vertical_scroll_bar): + Use WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of VERTICAL_SCROLL_BAR_PIXEL_HEIGHT. (x_draw_glyphs): Draw over flags areas when drawing a mode line or menu. (x_set_glyph_string_clipping): Set clipping differently if drawing a mode line or menu line. - * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed. + * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Remove. * xterm.c (expose_line): Don't draw bitmaps for mode lines and menu lines. (x_scroll_bar_create): Don't clear flags areas. (x_draw_row_bitmaps): Clear visible row height, only. - * dispnew.c (Fblink_cursor): Moved here from xdisp.c. + * dispnew.c (Fblink_cursor): Move here from xdisp.c. 1998-02-15 Gerd Moellmann @@ -8137,21 +8137,21 @@ * dispnew.c (update_window_line): Special handling of inverse lines in #if 0 removed. - * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs. - (x_insert_glyphs): Renamed from XTinsert_glyphs. - (x_clear_frame): Renamed from XTclear_frame. - (x_clear_end_of_line): Renamed from XTclear_end_of_line. - (x_ins_del_lines): Renamed from XTins_del_lines. - (x_change_line_height): Renamed from XTchange_line_height. - (x_delete_glyphs): Renamed from XTdelete_glyphs. - (x_clear_cursor): Renamed from clear_cursor. - (x_update_begin): Renamed from XTupdate_begin. - (x_update_end): Renamed from XTupdate_end. - (x_update_window_begin): Renamed from XTupdate_window_begin. - (x_update_window_end): Renamed from XTupdate_window_end. - (x_frame_mode_line_height): Renamed from XTframe_mode_line_height. - (x_produce_glyphs): Renamed from XTproduce_glyphs. - (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs. + * xterm.c (x_write_glyphs): Rename from XTwrite_glyphs. + (x_insert_glyphs): Rename from XTinsert_glyphs. + (x_clear_frame): Rename from XTclear_frame. + (x_clear_end_of_line): Rename from XTclear_end_of_line. + (x_ins_del_lines): Rename from XTins_del_lines. + (x_change_line_height): Rename from XTchange_line_height. + (x_delete_glyphs): Rename from XTdelete_glyphs. + (x_clear_cursor): Rename from clear_cursor. + (x_update_begin): Rename from XTupdate_begin. + (x_update_end): Rename from XTupdate_end. + (x_update_window_begin): Rename from XTupdate_window_begin. + (x_update_window_end): Rename from XTupdate_window_end. + (x_frame_mode_line_height): Rename from XTframe_mode_line_height. + (x_produce_glyphs): Rename from XTproduce_glyphs. + (x_produce_special_glyphs): Rename from XTproduce_special_glyphs. (x_produce_special_glyphs): Implementation in #if 0 removed. * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p @@ -8232,14 +8232,14 @@ * dispextern.h (struct glyph_matrix): New member window_width. - * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize - case of changing window height. + * dispnew.c (adjust_glyph_matrix): Set window_width. + Optimize case of changing window height. * xterm.c (x_draw_row_bitmaps): Don't clear vertical window border to the left. - * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS - says this aspect of Emacs is currently redesigned. + * dispextern.h (struct glyph_row): Remove right_to_left_p. + RMS says this aspect of Emacs is currently redesigned. * xterm.c (x_clip_to_row): Subtract 1 from clip width if we have to draw a vertical border. @@ -8268,8 +8268,8 @@ removed. (struct glyph): Ditto. - * xterm.c (x_draw_relief): Removed. - (x_draw_bitmap): Renamed from draw_bitmap. + * xterm.c (x_draw_relief): Remove. + (x_draw_bitmap): Rename from draw_bitmap. (x_draw_glyphs): Completely new implementation of draw_glyphs capable of handling arbitrary lbearing and rbearing values. Several sub-functions not mentioned here. @@ -8347,11 +8347,11 @@ 1998-01-25 Gerd Moellmann - * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic - names for face ids of frame default face and mode line face. + * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): + Symbolic names for face ids of frame default face and mode line face. - * xdisp.c (compute_face_at_iterator_string_position): If - displaying a mode line use MODE_LINE_FACE_ID instead of + * xdisp.c (compute_face_at_iterator_string_position): + If displaying a mode line use MODE_LINE_FACE_ID instead of DEFAULT_FACE_ID. * xdisp.c (reseat_iterator_to_string): Additional parameter start. @@ -8405,8 +8405,8 @@ (move_iterator_in_display_line_to): If to_pos specified, move over before-strings. - * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test - start.string_index > 0. + * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): + Test start.string_index > 0. * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p is set. Retry redisplay if fonts_changed_p is set before update. @@ -8415,7 +8415,7 @@ * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p. - * dispnew.c (adjust_glyphs_for_font_change): Removed. + * dispnew.c (adjust_glyphs_for_font_change): Remove. * xdisp.c (try_window): Check fonts_changed_p. (try_window_reusing_current_matrix): Ditto. @@ -8468,8 +8468,8 @@ * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt length to start position. - * buffer.c (Fget_buffer_create): Initialize - minibuffer_prompt_length. + * buffer.c (Fget_buffer_create): + Initialize minibuffer_prompt_length. (Fmake_indirect_buffer): Ditto. (Fkill_buffer): Ditto. @@ -8489,15 +8489,15 @@ * xfaces.c (compute_string_char_face): Compute face for arbitrary Lisp string. Renamed from compute_overlay_string_char_face. - * xdisp.c (next_element_from_string): Renamed from + * xdisp.c (next_element_from_string): Rename from next_element_from_overlay_string. - (compute_face_at_iterator_string_position): Renamed from + (compute_face_at_iterator_string_position): Rename from compute_face_at_iterator_overlay_string_position. * dispextern.h (struct display_iterator): Member overlay_string renamed string. - * xdisp.c (next_element_from_c_string): Renamed from + * xdisp.c (next_element_from_c_string): Rename from next_element_from_string. * dispextern.h (struct glyph_pos): Reversed meaning of @@ -8535,8 +8535,8 @@ 1998-01-17 Gerd Moellmann - * xdisp.c (move_iterator_vertically): Check post-condition. Move - to start of line if ending at ZV and no newline in front. + * xdisp.c (move_iterator_vertically): Check post-condition. + Move to start of line if ending at ZV and no newline in front. (move_iterator_to): If to_y specified, always first move to x = 0, so that move stops at line start instead of line end. This is probably what callers would expect to happen. @@ -8561,19 +8561,19 @@ try_window_reusing_current_matrix if window scroll functions exist. - * dispextern.h (struct display_iterator): Member - redisplay_end_trigger_p removed. + * dispextern.h (struct display_iterator): + Member redisplay_end_trigger_p removed. * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE): - Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT. + Rename to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT. 1998-01-16 Gerd Moellmann * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines nil. Optimize truncate-lines t and moving backward. (move_iterator_to_previous_visible_line_start): Contains the heart - of the previous set_iterator_to_previous_visible_line_end. Don't - reseat the iterator. Used by move_iterator_by_lines. + of the previous set_iterator_to_previous_visible_line_end. + Don't reseat the iterator. Used by move_iterator_by_lines. (set_iterator_to_previous_visible_line_start): Call function above. (move_iterator_in_display_line_to): Check TO_POS before doing @@ -8608,8 +8608,8 @@ (Fset_face_attribute_internal): Use XINT instead of XFASTINT to get a relief because they can be negative. - * xterm.c (x_draw_relief): Correct line drawing positions. Pixel - positions are for the middle of lines under X. + * xterm.c (x_draw_relief): Correct line drawing positions. + Pixel positions are for the middle of lines under X. * xdisp.c (try_window_id): Always search for the cursor by setting w->cursor.vpos = -1. Search in unchanged rows at the top and @@ -8642,16 +8642,16 @@ * xdisp.c (display_line): Bug fix cursor positioning. - * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include + * xfns.c (x-list-fonts): Copy from x-list-fonts.c; #include removed. x-list-fonts.c is now obsolete. - (Qfixed, Qvariable): Moved here from xfaces.c. + (Qfixed, Qvariable): Move here from xfaces.c. 1998-01-14 Gerd Moellmann * xdisp.c (display_line): Set row->ends_at_zv_p based on FETCH_BYTE for truncated lines. (display_line): Set cursor differently. - (display_line): Fixed bug setting last_pos_on_this_line wrong + (display_line): Fix bug setting last_pos_on_this_line wrong for truncated lines. * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based @@ -8659,8 +8659,8 @@ * window.c (Fsplit_window): Adjust glyphs before setting buffer. - * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add - assertion that character dimensions are not zero. + * dispnew.c (adjust_frame_glyphs_for_window_redisplay): + Add assertion that character dimensions are not zero. * xterm.c (x_load_font): adjust_glyphs_for_font_change while input is blocked. @@ -8680,7 +8680,7 @@ * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width in pixels of a flags area of a frame. - (FRAME_X_FLAGS_AREA_WIDTH): Removed. + (FRAME_X_FLAGS_AREA_WIDTH): Remove. (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns occupied by a flags area. @@ -8694,7 +8694,7 @@ * xdisp.c (display_line): Correct wrong calculation of row->x for the case of nglyphs == 1. - (hscroll_window_tree): Renamed from hscroll_windows. + (hscroll_window_tree): Rename from hscroll_windows. (hscroll_windows): New function calling hscroll_window_tree that clears desired matrices on a frame when hscroll has been changed. (redisplay_p): Global flag set during redisplay. @@ -8725,8 +8725,8 @@ * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts. (syms_of_xfaces): Initialize them. - * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend - cached information. + * xterm.c (x_list_fonts): Include auto-scaled fonts. + Extend cached information. 1998-01-11 Gerd Moellmann @@ -8742,7 +8742,7 @@ 1998-01-05 Gerd Moellmann - * xdisp.c (get_row_start_continuation_line_width): Removed. + * xdisp.c (get_row_start_continuation_line_width): Remove. (init_iterator_to_row_start): Set it.current_x from row. (try_window_id): Set it.continuation_lines_width directly from row. @@ -8768,7 +8768,7 @@ 1998-01-02 Gerd Moellmann - * xterm.c (x_get_mode_line_face_gc): Renamed from + * xterm.c (x_get_mode_line_face_gc): Rename from x_get_modeline_face_gc. * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current @@ -8820,22 +8820,22 @@ * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font == frame font if line height differs from font height. - * xdisp.c (set_iterator_to_next): Renamed from + * xdisp.c (set_iterator_to_next): Rename from move_iterator_forward to avoid confusion with other move_.* functions. - * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P. + * dispextern.h (FACE_RELIEF_P): Rename from FACE_3D_P. 1997-12-31 Gerd Moellmann - * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the + * xterm.c (x_get_cursor_gc): Rename from x_cursor_gc to use the same naming convention as for other GC functions. (draw_glyphs): Don't fill background when drawing a cursor and font height is less than line height. 1997-12-30 Gerd Moellmann - * xdisp.c (init_display_iterator.*): Renamed to shorter names + * xdisp.c (init_display_iterator.*): Rename to shorter names init_iterator_.*. * xdisp.c (move_iterator_forward): Restore it->len from @@ -8918,8 +8918,8 @@ (x_get_char_font_and_encoding): Return null if font could not be loaded. Reset font to null if fontset could not be loaded. (draw_glyphs): Fill background if font not found. - (draw_glyphs): Unused parameter just_foreground_p removed. New - parameter composite_glyph. + (draw_glyphs): Unused parameter just_foreground_p removed. + New parameter composite_glyph. (draw_glyphs): Use enumeration for parameter hl. (draw_glyphs): Pass a display area relative x-position to draw_glyphs when calling it recursively for composite chars. @@ -8961,8 +8961,8 @@ * xterm.c (x_after_update_window_line): Draw continuation line bitmap. - * dispnew.c (update_window_line): Call - after_update_window_line_hook when row's continuation_line_p + * dispnew.c (update_window_line): + Call after_update_window_line_hook when row's continuation_line_p changes. * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP. @@ -8999,27 +8999,27 @@ 1997-12-14 Gerd Moellmann - * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed. + * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Remove. * window.c (coordinates_in_window): Call frame_mode_line_height. - * xterm.c (x_draw_3d_border): Removed. - (x_draw_row_borders): Removed. + * xterm.c (x_draw_3d_border): Remove. + (x_draw_row_borders): Remove. * dispnew.c (update_window): References to FRAME_MODE_LINE_BORDER_WIDTH removed. - * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed. - (FRAME_MODE_LINE_HEIGHT): Removed. + * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Remove. + (FRAME_MODE_LINE_HEIGHT): Remove. - * xterm.c (draw_3d_borders_p): Removed. + * xterm.c (draw_3d_borders_p): Remove. (draw_glyphs): Ditto. (XTwrite_glyphs): Ditto. (expose_line): Ditto. (x_initialize): Ditto. - * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call - frame_mode_line_height. + * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): + Call frame_mode_line_height. * term.c (frame_mode_line_height): Get the pixel height of a frame's mode line. @@ -9047,8 +9047,8 @@ * xdisp.c (compute_face_at_iterator_overlay_string_position): Use it. - * xdisp.c (set_iterator_to_next_overlay_string): Formerly - set_iterator_to_next_overlay. + * xdisp.c (set_iterator_to_next_overlay_string): + Formerly set_iterator_to_next_overlay. (struct overlay_entry): Structure used to sort overlay strings. (compare_overlay_entries): Compare overlay strings. (load_iterator_with_overlay_strings): Load a chunk of overlay @@ -9056,11 +9056,11 @@ (get_overlay_strings_at_iterator_position): Call it. (next_element_from_overlay_string): Set it->object to the overlay string. Prepare for setting it->position to a string position. - (get_overlay_strings_at_iterator_position): Renamed from + (get_overlay_strings_at_iterator_position): Rename from get_overlays_at_iterator_position. - (setup_iterator_overlay_strings_from_glyph_pos): Changed to load + (setup_iterator_overlay_strings_from_glyph_pos): Change to load chunks of overlay strings. - (load_overlay_strings): Renamed from load_iterator_overlay_strings. + (load_overlay_strings): Rename from load_iterator_overlay_strings. * dispextern.h (struct display_iterator): New vector overlay_strings and new member n_overlay_strings---formerly @@ -9072,9 +9072,9 @@ * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors when allocating a vector. - (release_iterator): Removed. - (restore_iterator): Removed. - (copy_iterator): Removed. + (release_iterator): Remove. + (restore_iterator): Remove. + (copy_iterator): Remove. 1997-12-08 Gerd Moellmann @@ -9087,10 +9087,10 @@ * xterm.h (struct x_output): trunc_area_extra renamed flags_areas_extra. - (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH. + (FRAME_X_FLAGS_AREA_WIDTH): Rename from FRAME_X_TRUNC_WIDTH. - * dispnew.c (update_window_line): Call - after_update_window_line_hook when current row is not enabled + * dispnew.c (update_window_line): + Call after_update_window_line_hook when current row is not enabled which is the case after a frame has been cleared. * xdisp.c (display_mode_line): Reset row flags for truncation @@ -9129,8 +9129,8 @@ face changes and changes in invisible text property. (struct glyph_pos): Former ovlen now overlay_string_index. - * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set - overlay_string. + * xdisp.c (setup_iterator_overlays_from_glyph_pos): + Set overlay_string. (set_iterator_to_next_overlay_string): Set overlay_string and pos.overlay_string_index. (get_overlays_at_iterator_position): Use overlay_string and @@ -9167,7 +9167,7 @@ * buffer.h (overlays_at): Function prototype. * xdisp.c (reseat_iterator_to_string): Clear iterator position. - * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed. + * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Remove. * xdisp.c (release_iterator): Release dynamically allocated memory of a display_iterator. @@ -9187,23 +9187,23 @@ * buffer.c (overlays_at): Make it work when extending vectors and an initial vector of zero size. - * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed - from set_cursor_to_previous_visible_line_end. - (set_iterator_to_next_visible_line_start): Renamed from + * xdisp.c (set_iterator_to_previous_visible_line_end): + Rename from set_cursor_to_previous_visible_line_end. + (set_iterator_to_next_visible_line_start): Rename from set_cursor_to_next_visible_line_end. - (set_next_iterator_stop_pos): Renamed from set_next_stop_pos. - (compute_face_at_iterator_position): Renamed from + (set_next_iterator_stop_pos): Rename from set_next_stop_pos. + (compute_face_at_iterator_position): Rename from compute_cursor_face. - (set_iterator_to_next_overlay_string): Renamed from + (set_iterator_to_next_overlay_string): Rename from cursor_to_next_overlay_string. - (get_overlays_at_iterator_position): Renamed from + (get_overlays_at_iterator_position): Rename from get_overlays_for_cursor. - (reseat_iterator): Renamed from reseat_cursor. - (setup_iterator_overlays_from_glyph_pos): Renamed from + (reseat_iterator): Rename from reseat_cursor. + (setup_iterator_overlays_from_glyph_pos): Rename from setup_overlays_from_pos. - (init_string_iterator): Renamed from init_string_cursor. - (get_next_display_element): Renamed from next_display_element. - (move_iterator_forward): Renamed from advance_display_cursor. + (init_string_iterator): Rename from init_string_cursor. + (get_next_display_element): Rename from next_display_element. + (move_iterator_forward): Rename from advance_display_cursor. (get_overlays_at_iterator_position): Allocate overlays vector dynamically. @@ -9214,7 +9214,7 @@ 1997-12-01 Gerd Moellmann * window.c (mark_window_cursors_off): Function comment added. - (window_topmost_p, window_rightmost_p): Removed because not used. + (window_topmost_p, window_rightmost_p): Remove because not used. 1997-11-30 Gerd Moellmann @@ -9229,7 +9229,7 @@ frame_title_buf. (init_xdisp): Initialize frame_title_.* variables to null. - * dispnew.c (quit_error_check): Removed. + * dispnew.c (quit_error_check): Remove. * eval.c (Fsignal): Call to quit_error_check removed. * keyboard.c (quit_throw_to_read_char): Ditto. @@ -9275,8 +9275,8 @@ * xterm.c (XTupdate_window_end): Don't display cursor if pseudo_window_p. - * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't - set mini_p. + * dispnew.c (adjust_frame_glyphs_for_window_redisplay): + Don't set mini_p. (update_window): Don't set cursor if pseudo_window_p. * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p. @@ -9307,8 +9307,8 @@ f->menu_bar_window if appropriate. (display_mode_line): Use MATRIX_MODE_LINE_ROW. - * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate - dummy window and window matrices for f->menu_bar_window. + * dispnew.c (adjust_frame_glyphs_for_window_redisplay): + Allocate dummy window and window matrices for f->menu_bar_window. (free_glyphs): Free the dummy window and its glyph matrices. * frame.h (struct frame): New member menu_bar_window. @@ -9323,8 +9323,8 @@ first_row_to_display. The previous scheme failed if the last row was fully visible. - * dispnew.c (update_window): Remove cost calculations. Remove - redundant preempt_count calculations. + * dispnew.c (update_window): Remove cost calculations. + Remove redundant preempt_count calculations. * xterm.c (x_clip_to_row): Set clipping for non-text rows differently. @@ -9345,7 +9345,7 @@ try_window_id. (try_window_reusing_current_matrix): Give up for terminal frames if window is not full width or we cannot insert/delete lines. - (try_window_reusing_current_matrix): Fixed scrolling for terminal + (try_window_reusing_current_matrix): Fix scrolling for terminal frames. * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to @@ -9407,8 +9407,8 @@ (update_window_line): Set it. (update_marginal_area): Clear to end of line if not in text area. - * window.c (Fset_window_margins): Increment - windows_or_buffer_changed. Adjust glyphs. + * window.c (Fset_window_margins): + Increment windows_or_buffer_changed. Adjust glyphs. * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text area X coordinates to frame coordinates. @@ -9496,8 +9496,8 @@ 1997-10-27 Gerd Moellmann - * dispnew.c (update_window_line): Call - after_update_window_line_hook only for interesting constellations. + * dispnew.c (update_window_line): + Call after_update_window_line_hook only for interesting constellations. (free_glyph_matrix): Fix memory leak. * window.h: Include blocker WINDOW_H_INCLUDED, include @@ -9507,7 +9507,7 @@ (replace_window): Ditto. * dispnew.c (free_window_matrices): Remove freeing of phys_cursor_glyph. - (check_matrix_invariants): Renamed from check_current_matrix_... + (check_matrix_invariants): Rename from check_current_matrix_... * xterm.c: All references to phys_cursor_glyph changed. * dispextern.h (DISPEXTERN_H_INCLUDED): New include blocker. @@ -9665,8 +9665,8 @@ * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start. - * dispnew.c (increment_glyph_row_buffer_positions): Adjust - start and end positions in rows. + * dispnew.c (increment_glyph_row_buffer_positions): + Adjust start and end positions in rows. (increment_glyph_row_buffer_positions): Stop adjusting at glyphs with positions <= 0. @@ -9682,8 +9682,8 @@ 1997-10-21 Gerd Moellmann - * dispnew.c (update_window): Add scrolling_window again. It's - necessary for scroll_step != 0. + * dispnew.c (update_window): Add scrolling_window again. + It's necessary for scroll_step != 0. * xdisp.c (redisplay_window): Use vmotion for scroll_step scrolling. @@ -9745,7 +9745,7 @@ 1997-10-19 Gerd Moellmann * dispnew.c (update_window): Remove unused variable. - (update_window_line): Simplified. + (update_window_line): Simplify. * xterm.c (x_get_char_font_and_encoding): Handle most common case at the beginning. @@ -9756,8 +9756,8 @@ * xdisp.c (try_window_id): New implementation. - * dispnew.c (increment_glyph_row_buffer_positions): Capture - rows displaying a line end, only. + * dispnew.c (increment_glyph_row_buffer_positions): + Capture rows displaying a line end, only. 1997-10-18 Gerd Moellmann @@ -9850,8 +9850,8 @@ * term.c: Some hooks with function prototypes. - * xdisp.c (reseat_cursor): Additional argument force_p. Avoid - computing face if possible. + * xdisp.c (reseat_cursor): Additional argument force_p. + Avoid computing face if possible. * xdisp.c (next_display_element): Use face from glyph from display table only if != 0. @@ -9883,7 +9883,7 @@ (init_display_info): Subtract vertical border glyph from last_visible_x. - * scroll.c (scrolling_window_1): Removed. + * scroll.c (scrolling_window_1): Remove. * dispnew.c (adjust_frame_glyphs): Split into two functions, based on redisplay method used. @@ -9892,7 +9892,7 @@ (adjust_frame_glyphs_for_window_redisplay): Part for purely window based redisplay. - * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend + * frame.h (FRAME_WINDOW_REDISPLAY_P): Change to not depend on data structures. * dispnew.c (adjust_glyph_matrix): Additional parameter W. @@ -9904,8 +9904,8 @@ * dispextern.h (struct glyph_matrix): window_top_y, window_height. - * dispnew.c (allocate_matrices_for_window_redisplay): Detect - and optimize some common cases of window changes. + * dispnew.c (allocate_matrices_for_window_redisplay): + Detect and optimize some common cases of window changes. * emacs.c (main): Remove own profiling code because 0.95 now has it in. @@ -9965,9 +9965,9 @@ * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height value. (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified. - (do_line_dance): Simplified and pixel corrected. + (do_line_dance): Simplify and pixel corrected. - * dispnew.c (scrolling_window): Simplified. + * dispnew.c (scrolling_window): Simplify. * xterm.c (x_draw_3d_border): Insert rectangle by line width. @@ -10049,15 +10049,15 @@ * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed. - * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c. + * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Move to dispnew.c. * xfns.c (x_contour_region): Use pixel coordinates from window cursor instead of WINDOW_TO_FRAME_H/VPOS. * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS): - Removed. + Remove. - * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed. + * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Remove. * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative pixel coordinates. @@ -10541,16 +10541,16 @@ * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1. I don't believe this is really necessary. - * dispnew.c (build_frame_matrix_from_leaf_window): Determine - border glyph once. + * dispnew.c (build_frame_matrix_from_leaf_window): + Determine border glyph once. 1997-07-15 Gerd Moellmann * window.c (mark_window_cursors_off): Mark all cursors in window tree off. - * xterm.c (x_display_box_cursor): Window parameter. Use - window matrix. + * xterm.c (x_display_box_cursor): Window parameter. + Use window matrix. (glyph_to_pixel_pos): Convert matrix pos -> pixels. (pixel_to_glyph_pos): Convert pixel pos -> matrix pos. (x_update_cursor): Work on windows. @@ -10576,7 +10576,7 @@ * frame.h (struct frame): Cursor information removed. - * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused. + * frame.h (FRAME_SCROLL_BAR_WIDTH): Remove because unused. (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width. * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR. @@ -10650,7 +10650,7 @@ * window.h: CURSOR_VPOS/HPOS added. * frame.h (struct frame): CURSOR_X/Y removed. - (FRAME_CURSOR_X): Removed. + (FRAME_CURSOR_X): Remove. (FRAME_CURSOR_Y): Ditto. * dispnew.c (direct_output_for_insert): LAST_POINT_X removed. @@ -10687,10 +10687,10 @@ * minibuf.c (read_minibuf): Build frame matrix. - * xdisp.c (this_line_start_hpos): Renamed to + * xdisp.c (this_line_start_hpos): Rename to THIS_LINE_START_WINDOW_HPOS to make it clear that this is window relative. - (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same + (this_line_vpos): Rename to THIS_LINE_WINDOW_VPOS for the same reason. * dispnew.c (build_frame_matrix): Don't clear rows of the @@ -10717,7 +10717,7 @@ * lisp.h: Prototype for SCAN_BUFFER. - * xdisp.c (redisplay_windows): Simplified. + * xdisp.c (redisplay_windows): Simplify. * dispnew.c (window_to_frame_vpos): Convert window to frame vpos with debug checks. @@ -10739,8 +10739,8 @@ * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE. (redisplay_internal): Ditto. - * dispnew.c (cancel_window_line): Use window matrix. Changed - name to CANCEL_WINDOW_LINE. + * dispnew.c (cancel_window_line): Use window matrix. + Changed name to CANCEL_WINDOW_LINE. * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window relative VPOS. @@ -10790,7 +10790,7 @@ (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of top-most windows. - * window.h (WINDOW_TOPMOST_P): Added. + * window.h (WINDOW_TOPMOST_P): Add. * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW. (redisplay_window): Ditto. @@ -10860,25 +10860,25 @@ * dispnew.c (check_matrix_pointer_lossage): Check against pointer lossage in matrices. - (get_glyph_matrix_row): Removed. + (get_glyph_matrix_row): Remove. - * scroll.c (do_scrolling): Simplified. - (do_direct_scrolling): Simplified. + * scroll.c (do_scrolling): Simplify. + (do_direct_scrolling): Simplify. (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to DO_.*SCROLLING. * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix. - (rotate_vector): Removed. - (rotate_pointers): Removed. - (scroll_frame_lines): Simplified. + (rotate_vector): Remove. + (rotate_pointers): Remove. + (scroll_frame_lines): Simplify. 1997-07-03 Gerd Moellmann - * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed. + * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Remove. - * dispnew.c (increment_glyph_matrix_buffer_positions): Does - what the name says. + * dispnew.c (increment_glyph_matrix_buffer_positions): + Does what the name says. (clear_glyph_row): Make a glyph row structure empty. (make_matrix_row_current): Make a glyph row current. (make_window_matrix_row_current): Perform analogous row swaps @@ -10895,11 +10895,11 @@ * All files: Use above new names. - * dispnew.c (scroll_frame_lines): Simplified. Use - SCROLL_GLYPH_MATRIX. + * dispnew.c (scroll_frame_lines): Simplify. + Use SCROLL_GLYPH_MATRIX. (make_glyph_row_empty): Mark a glyph row empty. - (increment_glyph_row_buffer_positions): Increment - buffer positions in a glyph row. + (increment_glyph_row_buffer_positions): + Increment buffer positions in a glyph row. (increment_glyph_matrix_buffer_positions): Increment buffer positions in a range of rows. (scroll_glyph_matrix): Scroll a glyph matrix. @@ -10942,7 +10942,7 @@ (MATRIX_ROW_USED): Ditto. (MATRIX_ROW_SET_USED): Ditto. - * dispnew.c (line_hash_code): Simplified. + * dispnew.c (line_hash_code): Simplify. 1997-06-30 Gerd Moellmann @@ -10966,8 +10966,8 @@ DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER, SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY, - * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return - void. + * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. + Return void. (cancel_line): Return void. (clear_frame_records): Return void. @@ -11085,13 +11085,13 @@ WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK, * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS. - (do_verify_charstarts): Removed. + (do_verify_charstarts): Remove. * frame.c (Fmake_terminal_frame): Adjust glyphs. (Fdelete_frame): Free glyphs. (make_frame): Initialize matrix fields in frame. - * config.in (PROTO): Added. + * config.in (PROTO): Add. * emacs.c (shut_down_emacs): Check glyph memory. @@ -11261,7 +11261,7 @@ * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): Move the handling of MALLOC_CHECK_ envvar here. - (main): Moved from here. + (main): Move from here. 1999-06-29 Wolfram Gloger @@ -11414,8 +11414,8 @@ * w32console.c (clear_frame): Remember that the window width might be smaller than the screen buffer width. - (write_glyphs): Remove redundant variable attrs. Use - FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute. + (write_glyphs): Remove redundant variable attrs. + Use FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute. 1999-05-20 Andrew Innes @@ -11423,8 +11423,8 @@ loses focus. * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if - frame loses focus, and that mouse button state is reset. Ditto - when the menu bar is activated. + frame loses focus, and that mouse button state is reset. + Ditto when the menu bar is activated. 1999-05-18 Richard Stallman @@ -11599,7 +11599,7 @@ (w32_clear_frame, clear_cursor, x_display_bar_cursor) (x_display_box_cursor, x_set_window_size): Use phys_cursor_on field in frame. - (do_line_dance): Updated WRT xterm.c. Use macros where possible. + (do_line_dance): Update WRT xterm.c. Use macros where possible. (dumprectangle): Take into account the width of a left-side scroll bar. @@ -11617,8 +11617,8 @@ 1999-05-02 Kenichi HANDA - * coding.c (setup_raw_text_coding_system): Call - setup_coding_system to initialize the fields of struct + * coding.c (setup_raw_text_coding_system): + Call setup_coding_system to initialize the fields of struct coding_system correctly. 1999-04-26 Kenichi HANDA @@ -11773,11 +11773,11 @@ 1999-03-25 Andrew Innes * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h. - (epaths.h): Renamed from paths.h. + (epaths.h): Rename from paths.h. (clean): ($(BLD)\filelock.obj): ($(BLD)\lread.obj): - ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h. + ($(BLD)\w32fns.obj): Rename paths.h to epaths.h. 1999-03-23 Ken'ichi Handa @@ -11791,8 +11791,8 @@ 1999-03-20 Kenichi HANDA - * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If - invalid, produce the buffer internal byte sequence without encoding. + * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. + If invalid, produce the buffer internal byte sequence without encoding. 1999-03-19 Karl Heuer @@ -11965,8 +11965,8 @@ 1999-02-24 Kenichi Handa * keymap.c (push_key_description): If enable-multibyte-characters - is non-nil, try to convert unibyte character to multibyte. For - invalid multibyte character, show all bits by octal form. + is non-nil, try to convert unibyte character to multibyte. + For invalid multibyte character, show all bits by octal form. (Fsingle_key_description): Check the validity of charset for a generic character. @@ -12083,8 +12083,8 @@ 1999-02-15 Kenichi Handa - * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle - ASCII correctly. Signal error on invalid characters. + * coding.c (Fdecode_sjis_char, Fencode_sjis_char): + Handle ASCII correctly. Signal error on invalid characters. (Fdecode_big5_char, Fencode_big5_char): Likewise. 1999-02-15 Eli Zaretskii @@ -12146,8 +12146,8 @@ 1999-02-04 Eli Zaretskii - * w16select.c (last_clipboard_text, clipboard_storage_size): New - static variables. + * w16select.c (last_clipboard_text, clipboard_storage_size): + New static variables. (set_clipboard_data): Save a copy of the text we put into clipboard in last_clipboard_text. (get_clipboard_data): If the clipboard text is identical to what @@ -12305,8 +12305,8 @@ (x_destroy_bitmap): Returns void not int. (x_set_border_pixel): Returns void. (w32_load_bdf_font): New function. - (w32_load_system_font): New function, was w32_load_font. List - fonts before loading. Explicitly set encoding for SJIS fonts. + (w32_load_system_font): New function, was w32_load_font. + List fonts before loading. Explicitly set encoding for SJIS fonts. Set default_ascent to 0 as comment indicates. (w32_load_font): Call w32_load_system_font and w32_load_bdf_font. (w32_unload_font): Support BDF fonts. @@ -12350,7 +12350,7 @@ w32_codepage_for_charset. Add cast to int where float operation is assigned to int. (Vw32_charset_to_codepage_alist): New variable. - (w32_codepage_for_charset): Removed. + (w32_codepage_for_charset): Remove. (w32_codepage_for_font): New function, replacing w32_codepage_for_charset. (syms_of_w32term): Add and initialize @@ -12369,7 +12369,7 @@ * w32heap.h (ROUND_UP): (ROUND_DOWN): New macros. - (need_to_recreate_heap): Renamed to using_dynamic_heap. + (need_to_recreate_heap): Rename to using_dynamic_heap. (init_heap): New extern. (data_region_size): (recreate_heap): @@ -12384,11 +12384,11 @@ (round_to_next): Obsolete function removed. (preload_heap_section): New variable. (data_region_size): Obsolete variable removed. - (allocate_heap): Modified to determine end of static heap section + (allocate_heap): Modify to determine end of static heap section used during preload, and use that as initial base address for dynamic heap instead of hard-coded value. - (sbrk): Remove call to allocate_heap; handled by init_heap. Skip - calls to commit or decommit pages when allocating from static heap + (sbrk): Remove call to allocate_heap; handled by init_heap. + Skip calls to commit or decommit pages when allocating from static heap section during preload. (recreate_heap): Obsolete function removed. (init_heap): New function to initialize internal sbrk heap @@ -12399,10 +12399,10 @@ * unexw32.c: Major rewrite to support cleaner method of dumping; a static "bss" section is used for heap space during preload, and bss data is now written to the proper section area when dumping. - (need_to_recreate_heap): Renamed to using_dynamic_heap. + (need_to_recreate_heap): Rename to using_dynamic_heap. (heap_index_in_executable): Obsolete variable removed. (data_section): New variable. - (data_start_va): Renamed to data_start. + (data_start_va): Rename to data_start. (data_start_file): Obsolete variable removed. (bss_section): (extra_bss_size): @@ -12432,8 +12432,8 @@ sections where data will be dumped. Allows for static and global bss data to be in separate ranges. No longer relies on knowledge of section names. - (copy_executable_and_dump_data_section): Renamed - copy_executable_and_dump_data. Completely rewritten to copy + (copy_executable_and_dump_data_section): + Rename copy_executable_and_dump_data. Completely rewritten to copy executable section by section, so that raw data areas can be expanded to hold dumped data as necessary. Allows for bss data to be in same section as initialized data. Reduces size of static @@ -12511,8 +12511,8 @@ Return zero in case of success, 1 or 2 otherwise. (get_clipboard_data): Only bail out if the null character is in the last 32-byte chunk of clipboard data. - (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If - they save binary data, print a message in the echo area saying the + (Fw16_set_clipboard_data): Make ok and put_status be unsigned. + If they save binary data, print a message in the echo area saying the text was not put into the clipboard. * msdos.c (IT_write_glyphs): Move constant expression out of the loop. @@ -12688,8 +12688,8 @@ based on VEC. * charset.c (Qunknown): New variable. - (init_charset_once): Intern and staticpro Qunknown. Initialize - all elements of Vcharset_symbol_table to Qunknown. + (init_charset_once): Intern and staticpro Qunknown. + Initialize all elements of Vcharset_symbol_table to Qunknown. (find_charset_in_str): New arg MULTIBYTE. If it is zero, check unibyte characters only. For an invalid composition sequence, set CHARSETS[1] to 1. @@ -12997,8 +12997,8 @@ (RIGHT_WIN_PRESSED): (APPS_PRESSED): New console keyboard modifier flags. - * w32term.c (convert_to_key_event): Removed. - (is_dead_key): Copied to w32fns.c. + * w32term.c (convert_to_key_event): Remove. + (is_dead_key): Copy to w32fns.c. (w32_read_socket): Generate language_change_event. Modify to work with keyboard handling changes in w32_wnd_proc. @@ -13037,10 +13037,10 @@ code. (is_dead_key): Copy from w32fns.c. (w32_kbd_patch_key): Comment attempt to improve handling of - dead-keys, and system bug relating to same on Windows NT. Work - around the bug by calling ToUnicode and then converting to the + dead-keys, and system bug relating to same on Windows NT. + Work around the bug by calling ToUnicode and then converting to the correct codepage. - (map_virt_key): Removed obsolete variable. + (map_virt_key): Remove obsolete variable. (lispy_function_keys): Add extern. (key_event): Major rework of keyboard input handling: optionally recognize Windows keys and Apps key as modifiers; optionally treat @@ -13066,7 +13066,7 @@ for given key. (w32_get_modifiers): Returns modifier flags for non-keyboard input events. - (construct_console_modifiers): Renamed from construct_modifiers; + (construct_console_modifiers): Rename from construct_modifiers; recognize Windows and Apps keys as modifiers. (w32_get_key_modifiers): New function. Returns modifier flags for keyboard input events. @@ -13098,12 +13098,12 @@ 1998-11-10 Kenichi Handa - * category.h (CATEGORY_SET): Adjusted for the change of + * category.h (CATEGORY_SET): Adjust for the change of cmpchar_component. (CATEGORY_SET): Likewise. - * charset.c (cmpchar_component): New arg NOERROR. Check - composition char ID more strictly. + * charset.c (cmpchar_component): New arg NOERROR. + Check composition char ID more strictly. (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero. (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively, return 255. @@ -13303,8 +13303,8 @@ (insert_from_buffer_1): Likewise. (adjust_after_replace): Inhibit bytes combined across region boundary. Update end_unchanged correctly. - (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update - end_unchanged correctly. + (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. + Update end_unchanged correctly. (del_range_2): Inhibit bytes combined across region boundary. Update end_unchanged correctly. @@ -13333,8 +13333,8 @@ 1998-10-27 Dave Love - * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix - newline in doc string. + * fns.c (Fbase64_decode_region, Fbase64_encode_region): + Fix newline in doc string. 1998-10-27 Kenichi Handa @@ -13415,28 +13415,28 @@ * w32fns.c (Vx_pixel_size_width): New global variable. (unibyte_display_via_language_environment): New global variable. (x_set_font): Add support for setting fontsets. - (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix - font names to match xlfd-tight-regexp. + (Fx_create_frame): Add check_w32(). Initialize fontsets. + Fix font names to match xlfd-tight-regexp. (w32_load_font): Rewrite based on x_load_font. - (x_to_w32_charset, w32_to_x_charset): Add character sets. Use - `iso8859-1' rather than `ansi'. + (x_to_w32_charset, w32_to_x_charset): Add character sets. + Use `iso8859-1' rather than `ansi'. (w32_to_x_font): Remove `-' from font name. Remove the `-' off the end. Move charset into `charset registry' field. (enum_font_cb2): Check charsets match. Include width in font list. (w32_list_fonts): Rewrite based on x_list_fonts. Moved from w32term.c to have access to enumfont_t struct. - (Fx_list_fonts): w32 specific version eliminated. Include - `x-list-fonts.c'. - (w32_get_font_info, w32_query_font, w32_find_ccl_program): New - functions for fontset support - adapted from x_ equivalents. - (syms_of_w32fns): New lisp variables initialized. Function - pointers for fontset.c set up. + (Fx_list_fonts): w32 specific version eliminated. + Include `x-list-fonts.c'. + (w32_get_font_info, w32_query_font, w32_find_ccl_program): + New functions for fontset support - adapted from x_ equivalents. + (syms_of_w32fns): New lisp variables initialized. + Function pointers for fontset.c set up. * w32term.c: Include fontset.h. Define codepage macros. Add ENCODE_BIG5 macro from coding.c. (w32_no_unicode_output): New variable. - (w32_codepage_for_charset, w32_use_unicode_for_codepage): New - functions. + (w32_codepage_for_charset, w32_use_unicode_for_codepage): + New functions. (BUILD_WCHAR_T, BYTE1, BYTE2): New macros. (dumpglyphs): Rewrite based on xterm.c equivalent. (x_new_font): Use functionality provided in fontset.c. @@ -13552,8 +13552,8 @@ * lisp.h (clear_string_char_byte_cache): Extern it. - * xselect.c (lisp_data_to_selection_data): Call - find_charset_in_str with CMPCHARP arg 0. + * xselect.c (lisp_data_to_selection_data): + Call find_charset_in_str with CMPCHARP arg 0. * w16select.c (Fw16_set_clipboard_data): Likewise. * w32select.c (Fw32_set_clipboard_data): Likewise. @@ -13623,7 +13623,7 @@ * coding.c (check_composing_code): Fix previous change. Now it always returns 0 or -1. - (decode_coding_iso2022): Adjusted for the above change. + (decode_coding_iso2022): Adjust for the above change. (encode_coding_iso2022): When encoding the last block, flush out tailing garbage bytes. (setup_coding_system): Delete unnecessary code. @@ -13700,8 +13700,8 @@ * ccl.c (CCL_WRITE_CHAR): Don't use bcopy. (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0, - cause error if the program is going to output some bytes. When - outputting a string to notify an error, check the case that + cause error if the program is going to output some bytes. + When outputting a string to notify an error, check the case that DST_BYTES is zero. * coding.h (CODING_FINISH_INTERRUPT): New macro. @@ -13838,8 +13838,8 @@ * w16select.c (Vnext_selection_coding_system): New variable. (syms_of_win16select): DEFVAR_LISP it. No need to staticpro Vselection_coding_system. - (Fw16_set_clipboard_data): Always convert multibyte strings. Use - Vnext_selection_coding_system if non-nil. + (Fw16_set_clipboard_data): Always convert multibyte strings. + Use Vnext_selection_coding_system if non-nil. (Fw16_get_clipboard_data): Always convert a string that includes non-ASCII characters. Use Vnext_selection_coding_system if non-nil. @@ -13911,8 +13911,8 @@ 1998-08-28 Kenichi Handa * insdel.c (adjust_after_replace): Fix the code to record undo - information for the case that `before combining' happens. Remove - text properties which are added to the new text by + information for the case that `before combining' happens. + Remove text properties which are added to the new text by offset_intervals. * coding.c (code_convert_region1): Remove all text properties of diff --git a/src/Makefile.in b/src/Makefile.in index 00b7a532d9d..930cca3566c 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -31,10 +31,8 @@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ # MinGW CPPFLAGS may use this. abs_top_srcdir=@abs_top_srcdir@ -ntsource = $(top_srcdir)/nt VPATH = $(srcdir) CC = @CC@ -WINDRES = @WINDRES@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ @@ -256,7 +254,7 @@ MSDOS_OBJ = MSDOS_X_OBJ = NS_OBJ=@NS_OBJ@ -## nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macfont.o if HAVE_NS. +## nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o ns_fontfile if HAVE_NS. NS_OBJC_OBJ=@NS_OBJC_OBJ@ ## Only set if NS_IMPL_GNUSTEP. GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@ @@ -270,8 +268,6 @@ W32_LIBS=@W32_LIBS@ ## emacs.res if HAVE_W32 EMACSRES = @EMACSRES@ -## emacs-*.manifest if HAVE_W32 -EMACS_MANIFEST = @EMACS_MANIFEST@ ## If HAVE_W32, compiler arguments for including ## the resource file in the binary. ## Cygwin: -Wl,emacs.res @@ -303,13 +299,33 @@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ RUN_TEMACS = ./temacs -## Static heap size for temacs on MinGW. -EMACS_HEAPSIZE = @EMACS_HEAPSIZE@ - UNEXEC_OBJ = @UNEXEC_OBJ@ CANNOT_DUMP=@CANNOT_DUMP@ +# 'make' verbosity. +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ + +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = + +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = + +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = + +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = + DEPDIR=deps ## -MMD -MF $(DEPDIR)/$*.d if AUTO_DEPEND; else empty. DEPFLAGS=@DEPFLAGS@ @@ -341,10 +357,10 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) .SUFFIXES: .m .c.o: @$(MKDEPDIR) - $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $(PROFILING_CFLAGS) $< + $(AM_V_CC)$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $(PROFILING_CFLAGS) $< .m.o: @$(MKDEPDIR) - $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $(PROFILING_CFLAGS) $< + $(AM_V_CC)$(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $(PROFILING_CFLAGS) $< ## lastfile must follow all files whose initialized data areas should ## be dumped as pure by dump-emacs. @@ -427,8 +443,12 @@ all: emacs$(EXEEXT) $(OTHER_FILES) $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT) $(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)" +## FORCE it so that admin/unidata can decide whether these files +## are up-to-date. Although since charprop depends on bootstrap-emacs, +## and emacs (which recreates bootstrap-emacs) depends on charprop, +## in practice this rule was always run anyway. $(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \ - bootstrap-emacs$(EXEEXT) + bootstrap-emacs$(EXEEXT) FORCE $(MAKE) -C ../admin/unidata all EMACS="../$(bootstrap_exe)" ## The dumped Emacs is as functional and more efficient than @@ -445,7 +465,9 @@ emacs$(EXEEXT): temacs$(EXEEXT) \ else \ LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump || exit 1; \ test "X$(PAXCTL)" = X || $(PAXCTL) -zex emacs$(EXEEXT); \ - rm -f bootstrap-emacs$(EXEEXT); \ + while test -f bootstrap-emacs$(EXEEXT); do \ + rm -f bootstrap-emacs$(EXEEXT); \ + done; \ ln emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ fi @@ -464,29 +486,32 @@ emacs$(EXEEXT): temacs$(EXEEXT) \ ## in the contents of the DOC file. ## $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) - $(MKDIR_P) $(etc) - -rm -f $(etc)/DOC - $(libsrc)/make-docfile -d $(srcdir) $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC - $(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) `sed -n -e 's| \\\\||' -e 's|^[ ]*$$(lispsource)/||p' $(srcdir)/lisp.mk` + $(AM_V_GEN)$(MKDIR_P) $(etc) + -$(AM_V_at)rm -f $(etc)/DOC + $(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \ + $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC + $(AM_V_at)$(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) \ + `sed -n -e 's| \\\\||' -e 's|^[ ]*$$(lispsource)/||p' \ + $(srcdir)/lisp.mk` $(libsrc)/make-docfile$(EXEEXT): $(MAKE) -C $(libsrc) make-docfile$(EXEEXT) buildobj.h: Makefile - for i in $(ALLOBJS); do \ + $(AM_V_GEN)for i in $(ALLOBJS); do \ echo "$$i" | sed 's,.*/,,; s/\.obj$$/\.o/; s/^/"/; s/$$/",/' \ || exit; \ done >$@.tmp - mv $@.tmp $@ + $(AM_V_at)mv $@.tmp $@ globals.h: gl-stamp; @true GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m) gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES) - $(libsrc)/make-docfile -d $(srcdir) -g $(obj) > gl.tmp - $(top_srcdir)/build-aux/move-if-change gl.tmp globals.h - echo timestamp > $@ + $(AM_V_GEN)$(libsrc)/make-docfile -d $(srcdir) -g $(obj) > gl.tmp + $(AM_V_at)$(top_srcdir)/build-aux/move-if-change gl.tmp globals.h + $(AM_V_at)echo timestamp > $@ $(ALLOBJS): globals.h @@ -499,13 +524,13 @@ $(lib)/libgnu.a: $(config_h) ## to start if Vinstallation_directory has the wrong value. temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) \ $(lib)/libgnu.a $(EMACSRES) - $(CC) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ + $(AM_V_CCLD)$(CC) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ -o temacs $(ALLOBJS) $(lib)/libgnu.a $(W32_RES_LINK) $(LIBES) $(MKDIR_P) $(etc) test "$(CANNOT_DUMP)" = "yes" || \ test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT) test "$(CANNOT_DUMP)" = "yes" || test -z "$(SETFATTR)" || \ - $(SETFATTR) -n user.pax.flags -v r $@ + $(SETFATTR) -n user.pax.flags -v er $@ ## The following oldxmenu-related rules are only (possibly) used if ## HAVE_X11 && !USE_GTK, but there is no harm in always defining them. @@ -516,7 +541,7 @@ $(oldXMenudir)/libXMenu11.a: FORCE FORCE: .PHONY: FORCE -ACLOCAL_INPUTS = $(top_srcdir)/configure.ac $(wildcard $(top_srcdir)/m4/*.m4) +ACLOCAL_INPUTS = $(top_srcdir)/configure.ac $(top_srcdir)/m4/*.m4 AUTOCONF_INPUTS = $(top_srcdir)/configure.ac $(top_srcdir)/aclocal.m4 $(top_srcdir)/aclocal.m4: $(ACLOCAL_INPUTS) $(top_srcdir)/configure config.in: $(AUTOCONF_INPUTS) @@ -529,11 +554,8 @@ $(top_srcdir)/aclocal.m4 $(top_srcdir)/configure config.in ../config.status \ doc.o: buildobj.h -emacs.res: $(ntsource)/emacs.rc \ - $(ntsource)/icons/emacs.ico \ - $(ntsource)/$(EMACS_MANIFEST) - $(WINDRES) -O COFF --include-dir=$(top_srcdir)/nt \ - -o $@ $(ntsource)/emacs.rc +emacs.res: FORCE + $(MAKE) -C ../nt ../src/emacs.res .PHONY: ns-app ns-app: emacs$(EXEEXT) diff --git a/src/alloc.c b/src/alloc.c index a8ad44491fa..eada96c0c10 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -80,7 +80,7 @@ static bool valgrind_p; marked objects. */ #if (defined SYSTEM_MALLOC || defined DOUG_LEA_MALLOC \ - || defined GC_CHECK_MARKED_OBJECTS) + || defined HYBRID_MALLOC || defined GC_CHECK_MARKED_OBJECTS) #undef GC_MALLOC_CHECK #endif @@ -285,7 +285,7 @@ static void gc_sweep (void); static Lisp_Object make_pure_vector (ptrdiff_t); static void mark_buffer (struct buffer *); -#if !defined REL_ALLOC || defined SYSTEM_MALLOC +#if !defined REL_ALLOC || defined SYSTEM_MALLOC || defined HYBRID_MALLOC static void refill_memory_reserve (void); #endif static void compact_small_strings (void); @@ -453,7 +453,7 @@ mmap_lisp_allowed_p (void) /* If we can't store all memory addresses in our lisp objects, it's risky to let the heap use mmap and give us addresses from all over our address space. We also can't use mmap for lisp objects - if we might dump: unexec doesn't preserve the contents of mmaped + if we might dump: unexec doesn't preserve the contents of mmapped regions. */ return pointers_fit_in_lispobj_p () && !might_dump; } @@ -534,8 +534,7 @@ buffer_memory_full (ptrdiff_t nbytes) /* Define XMALLOC_OVERRUN_SIZE_SIZE so that (1) it's large enough to hold a size_t value and (2) the header size is a multiple of the alignment that Emacs needs for C types and for USE_LSB_TAG. */ -#define XMALLOC_BASE_ALIGNMENT \ - alignof (union { long double d; intmax_t i; void *p; }) +#define XMALLOC_BASE_ALIGNMENT alignof (max_align_t) #if USE_LSB_TAG # define XMALLOC_HEADER_ALIGNMENT \ @@ -1014,10 +1013,17 @@ lisp_free (void *block) clang 3.3 anyway. */ #if ! ADDRESS_SANITIZER -# if !defined SYSTEM_MALLOC && !defined DOUG_LEA_MALLOC +# if !defined SYSTEM_MALLOC && !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC # define USE_ALIGNED_ALLOC 1 /* Defined in gmalloc.c. */ void *aligned_alloc (size_t, size_t); +# elif defined HYBRID_MALLOC +# if defined ALIGNED_ALLOC || defined HAVE_POSIX_MEMALIGN +# define USE_ALIGNED_ALLOC 1 +# define aligned_alloc hybrid_aligned_alloc +/* Defined in gmalloc.c. */ +void *aligned_alloc (size_t, size_t); +# endif # elif defined HAVE_ALIGNED_ALLOC # define USE_ALIGNED_ALLOC 1 # elif defined HAVE_POSIX_MEMALIGN @@ -2219,8 +2225,7 @@ make_string (const char *contents, ptrdiff_t nbytes) return val; } - -/* Make an unibyte string from LENGTH bytes at CONTENTS. */ +/* Make a unibyte string from LENGTH bytes at CONTENTS. */ Lisp_Object make_unibyte_string (const char *contents, ptrdiff_t length) @@ -2289,7 +2294,7 @@ make_specified_string (const char *contents, } -/* Return an unibyte Lisp_String set up to hold LENGTH characters +/* Return a unibyte Lisp_String set up to hold LENGTH characters occupying LENGTH bytes. */ Lisp_Object @@ -2611,29 +2616,28 @@ list5 (Lisp_Object arg1, Lisp_Object arg2, Lisp_Object arg3, Lisp_Object arg4, L Lisp_Object listn (enum constype type, ptrdiff_t count, Lisp_Object arg, ...) { + Lisp_Object (*cons) (Lisp_Object, Lisp_Object); + switch (type) + { + case CONSTYPE_PURE: cons = pure_cons; break; + case CONSTYPE_HEAP: cons = Fcons; break; + default: emacs_abort (); + } + + eassume (0 < count); + Lisp_Object val = cons (arg, Qnil); + Lisp_Object tail = val; + va_list ap; - ptrdiff_t i; - Lisp_Object val, *objp; - - /* Change to SAFE_ALLOCA if you hit this eassert. */ - eassert (count <= MAX_ALLOCA / word_size); - - objp = alloca (count * word_size); - objp[0] = arg; va_start (ap, arg); - for (i = 1; i < count; i++) - objp[i] = va_arg (ap, Lisp_Object); + for (ptrdiff_t i = 1; i < count; i++) + { + Lisp_Object elem = cons (va_arg (ap, Lisp_Object), Qnil); + XSETCDR (tail, elem); + tail = elem; + } va_end (ap); - for (val = Qnil, i = count - 1; i >= 0; i--) - { - if (type == CONSTYPE_PURE) - val = pure_cons (objp[i], val); - else if (type == CONSTYPE_HEAP) - val = Fcons (objp[i], val); - else - emacs_abort (); - } return val; } @@ -2715,13 +2719,13 @@ DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0, static struct Lisp_Vector * next_vector (struct Lisp_Vector *v) { - return XUNTAG (v->contents[0], 0); + return XUNTAG (v->contents[0], Lisp_Int0); } static void set_next_vector (struct Lisp_Vector *v, struct Lisp_Vector *p) { - v->contents[0] = make_lisp_ptr (p, 0); + v->contents[0] = make_lisp_ptr (p, Lisp_Int0); } /* This value is balanced well enough to avoid too much internal overhead @@ -3282,7 +3286,6 @@ See also the function `vector'. */) return vector; } - DEFUN ("vector", Fvector, Svector, 0, MANY, 0, doc: /* Return a newly created vector with specified arguments as elements. Any number of arguments, even zero arguments, are allowed. @@ -3829,7 +3832,7 @@ memory_full (size_t nbytes) void refill_memory_reserve (void) { -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC if (spare_memory[0] == 0) spare_memory[0] = malloc (SPARE_MEMORY); if (spare_memory[1] == 0) @@ -4930,6 +4933,10 @@ valid_pointer_p (void *p) #ifdef WINDOWSNT return w32_valid_pointer_p (p, 16); #else + + if (ADDRESS_SANITIZER) + return p ? -1 : 0; + int fd[2]; /* Obviously, we cannot just access it (we would SEGV trying), so we @@ -4945,7 +4952,7 @@ valid_pointer_p (void *p) return valid; } - return -1; + return -1; #endif } @@ -5044,8 +5051,8 @@ relocatable_string_data_p (const char *str) struct sdata *sdata = (struct sdata *) (str - offsetof (struct sdata, data)); - if (valid_pointer_p (sdata) - && valid_pointer_p (sdata->string) + if (0 < valid_pointer_p (sdata) + && 0 < valid_pointer_p (sdata->string) && maybe_lisp_pointer (sdata->string)) return (valid_lisp_object_p (make_lisp_ptr (sdata->string, Lisp_String)) @@ -6011,8 +6018,9 @@ mark_overlay (struct Lisp_Overlay *ptr) for (; ptr && !ptr->gcmarkbit; ptr = ptr->next) { ptr->gcmarkbit = 1; - mark_object (ptr->start); - mark_object (ptr->end); + /* These two are always markers and can be marked fast. */ + XMARKER (ptr->start)->gcmarkbit = 1; + XMARKER (ptr->end)->gcmarkbit = 1; mark_object (ptr->plist); } } @@ -6147,15 +6155,16 @@ void mark_object (Lisp_Object arg) { register Lisp_Object obj = arg; -#ifdef GC_CHECK_MARKED_OBJECTS void *po; +#ifdef GC_CHECK_MARKED_OBJECTS struct mem_node *m; #endif ptrdiff_t cdr_count = 0; loop: - if (PURE_POINTER_P (XPNTR (obj))) + po = XPNTR (obj); + if (PURE_POINTER_P (po)) return; last_marked[last_marked_index++] = obj; @@ -6167,8 +6176,6 @@ mark_object (Lisp_Object arg) by ~80%, and requires compilation with GC_MARK_STACK != 0. */ #ifdef GC_CHECK_MARKED_OBJECTS - po = (void *) XPNTR (obj); - /* Check that the object pointed to by PO is known to be a Lisp structure allocated from the heap. */ #define CHECK_ALLOCATED() \ @@ -6195,8 +6202,8 @@ mark_object (Lisp_Object arg) #else /* not GC_CHECK_MARKED_OBJECTS */ -#define CHECK_LIVE(LIVEP) (void) 0 -#define CHECK_ALLOCATED_AND_LIVE(LIVEP) (void) 0 +#define CHECK_LIVE(LIVEP) ((void) 0) +#define CHECK_ALLOCATED_AND_LIVE(LIVEP) ((void) 0) #endif /* not GC_CHECK_MARKED_OBJECTS */ @@ -6359,7 +6366,7 @@ mark_object (Lisp_Object arg) CHECK_ALLOCATED_AND_LIVE (live_symbol_p); ptr->gcmarkbit = 1; /* Attempt to catch bogus objects. */ - eassert (valid_lisp_object_p (ptr->function) >= 1); + eassert (valid_lisp_object_p (ptr->function)); mark_object (ptr->function); mark_object (ptr->plist); switch (ptr->redirect) @@ -6744,7 +6751,7 @@ sweep_symbols (void) ++num_used; sym->s.gcmarkbit = 0; /* Attempt to catch bogus objects. */ - eassert (valid_lisp_object_p (sym->s.function) >= 1); + eassert (valid_lisp_object_p (sym->s.function)); } } @@ -6915,7 +6922,6 @@ or memory information can't be obtained, return nil. */) (uintmax_t) freeswap / 1024); else return Qnil; -} #else /* not HAVE_LINUX_SYSINFO, not WINDOWSNT, not MSDOS */ /* FIXME: add more systems. */ return Qnil; @@ -7073,7 +7079,7 @@ detect_suspicious_free (void* ptr) DEFUN ("suspicious-object", Fsuspicious_object, Ssuspicious_object, 1, 1, 0, doc: /* Return OBJ, maybe marking it for extra scrutiny. -If Emacs is compiled with suspicous object checking, capture +If Emacs is compiled with suspicious object checking, capture a stack trace when OBJ is freed in order to help track down garbage collection bugs. Otherwise, do nothing and return OBJ. */) (Lisp_Object obj) @@ -7101,8 +7107,48 @@ die (const char *msg, const char *file, int line) file, line, msg); terminate_due_to_signal (SIGABRT, INT_MAX); } -#endif - + +#endif /* ENABLE_CHECKING */ + +#if defined (ENABLE_CHECKING) && USE_STACK_LISP_OBJECTS + +/* Debugging check whether STR is ASCII-only. */ + +const char * +verify_ascii (const char *str) +{ + const unsigned char *ptr = (unsigned char *) str, *end = ptr + strlen (str); + while (ptr < end) + { + int c = STRING_CHAR_ADVANCE (ptr); + if (!ASCII_CHAR_P (c)) + emacs_abort (); + } + return str; +} + +/* Stress alloca with inconveniently sized requests and check + whether all allocated areas may be used for Lisp_Object. */ + +NO_INLINE static void +verify_alloca (void) +{ + int i; + enum { ALLOCA_CHECK_MAX = 256 }; + /* Start from size of the smallest Lisp object. */ + for (i = sizeof (struct Lisp_Cons); i <= ALLOCA_CHECK_MAX; i++) + { + void *ptr = alloca (i); + make_lisp_ptr (ptr, Lisp_Cons); + } +} + +#else /* not ENABLE_CHECKING && USE_STACK_LISP_OBJECTS */ + +#define verify_alloca() ((void) 0) + +#endif /* ENABLE_CHECKING && USE_STACK_LISP_OBJECTS */ + /* Initialization. */ void @@ -7112,6 +7158,8 @@ init_alloc_once (void) purebeg = PUREBEG; pure_size = PURESIZE; + verify_alloca (); + #if GC_MARK_STACK || defined GC_MALLOC_CHECK mem_init (); Vdead = make_pure_string ("DEAD", 4, 4, 0); diff --git a/src/atimer.c b/src/atimer.c index daac32f19b4..ce782f6adb6 100644 --- a/src/atimer.c +++ b/src/atimer.c @@ -27,6 +27,7 @@ along with GNU Emacs. If not, see . */ #include #ifdef HAVE_TIMERFD +#include # include #endif @@ -399,14 +400,26 @@ handle_alarm_signal (int sig) void timerfd_callback (int fd, void *arg) { - char buf[8]; ptrdiff_t nbytes; + uint64_t expirations; eassert (fd == timerfd); - nbytes = emacs_read (fd, buf, sizeof (buf)); - /* Just discard an expiration count for now. */ - eassert (nbytes == sizeof (buf)); - do_pending_atimers (); + nbytes = emacs_read (fd, &expirations, sizeof (expirations)); + + if (nbytes == sizeof (expirations)) + { + /* Timer should expire just once. */ + eassert (expirations == 1); + do_pending_atimers (); + } + else if (nbytes < 0) + /* For some not yet known reason, we may get weird event and no + data on timer descriptor. This can break Gnus at least, see: + http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00503.html. */ + eassert (errno == EAGAIN); + else + /* I don't know what else can happen with this descriptor. */ + emacs_abort (); } #endif /* HAVE_TIMERFD */ @@ -528,7 +541,9 @@ init_atimer (void) { #ifdef HAVE_ITIMERSPEC # ifdef HAVE_TIMERFD - timerfd = timerfd_create (CLOCK_REALTIME, TFD_CLOEXEC); + /* Until this feature is considered stable, you can ask to not use it. */ + timerfd = (egetenv ("EMACS_IGNORE_TIMERFD") ? -1 : + timerfd_create (CLOCK_REALTIME, TFD_NONBLOCK | TFD_CLOEXEC)); # endif if (timerfd < 0) { diff --git a/src/bidi.c b/src/bidi.c index 53c2dad1b6b..45385452755 100644 --- a/src/bidi.c +++ b/src/bidi.c @@ -76,6 +76,7 @@ along with GNU Emacs. If not, see . */ bidi_fetch_char -- fetch next character bidi_resolve_explicit -- resolve explicit levels and directions bidi_resolve_weak -- resolve weak types + bidi_resolve_brackets -- resolve "paired brackets" neutral types bidi_resolve_neutral -- resolve neutral types bidi_level_of_next_char -- resolve implicit levels @@ -247,7 +248,7 @@ along with GNU Emacs. If not, see . */ static bool bidi_initialized = 0; -static Lisp_Object bidi_type_table, bidi_mirror_table; +static Lisp_Object bidi_type_table, bidi_mirror_table, bidi_brackets_table; #define BIDI_EOB (-1) @@ -260,14 +261,6 @@ typedef enum { EXPLICIT_FORMATTING } bidi_category_t; -/* UAX#9 says to search only for L, AL, or R types of characters, and - ignore RLE, RLO, LRE, and LRO, when determining the base paragraph - level. Yudit indeed ignores them. This variable is therefore set - by default to ignore them, but clearing it will take them into - account. */ -extern bool bidi_ignore_explicit_marks_for_paragraph_level EXTERNALLY_VISIBLE; -bool bidi_ignore_explicit_marks_for_paragraph_level = 1; - static Lisp_Object paragraph_start_re, paragraph_separate_re; static Lisp_Object Qparagraph_start, Qparagraph_separate; @@ -305,14 +298,11 @@ bidi_get_type (int ch, bidi_dir_t override) case RLE: case RLO: case PDF: - return default_type; - /* FIXME: The isolate controls are treated as BN until we add - support for UBA v6.3. */ case LRI: case RLI: case FSI: case PDI: - return WEAK_BN; + return default_type; default: if (override == L2R) return STRONG_L; @@ -348,11 +338,6 @@ bidi_get_category (bidi_type_t type) case WEAK_CS: case WEAK_NSM: case WEAK_BN: - /* FIXME */ - case LRI: - case RLI: - case FSI: - case PDI: return WEAK; case NEUTRAL_B: case NEUTRAL_S: @@ -364,19 +349,22 @@ bidi_get_category (bidi_type_t type) case RLE: case RLO: case PDF: -#if 0 - /* FIXME: This awaits implementation of isolate support. */ case LRI: case RLI: case FSI: case PDI: -#endif return EXPLICIT_FORMATTING; default: emacs_abort (); } } +static bool +bidi_isolate_fmt_char (bidi_type_t ch_type) +{ + return (ch_type == LRI || ch_type == RLI || ch_type == PDI || ch_type == FSI); +} + /* Return the mirrored character of C, if it has one. If C has no mirrored counterpart, return C. Note: The conditions in UAX#9 clause L4 regarding the surrounding @@ -413,75 +401,128 @@ bidi_mirror_char (int c) return c; } -/* Determine the start-of-run (sor) directional type given the two +/* Return the Bidi_Paired_Bracket_Type property of the character C. */ +static bidi_bracket_type_t +bidi_paired_bracket_type (int c) +{ + if (c == BIDI_EOB) + return BIDI_BRACKET_NONE; + if (c < 0 || c > MAX_CHAR) + emacs_abort (); + + return (bidi_bracket_type_t) XINT (CHAR_TABLE_REF (bidi_brackets_table, c)); +} + +/* Determine the start-of-sequence (sos) directional type given the two embedding levels on either side of the run boundary. Also, update the saved info about previously seen characters, since that info is generally valid for a single level run. */ static void -bidi_set_sor_type (struct bidi_it *bidi_it, int level_before, int level_after) +bidi_set_sos_type (struct bidi_it *bidi_it, int level_before, int level_after) { int higher_level = (level_before > level_after ? level_before : level_after); - /* The prev_was_pdf gork is required for when we have several PDFs - in a row. In that case, we want to compute the sor type for the - next level run only once: when we see the first PDF. That's - because the sor type depends only on the higher of the two levels - that we find on the two sides of the level boundary (see UAX#9, - clause X10), and so we don't need to know the final embedding - level to which we descend after processing all the PDFs. */ - if (!bidi_it->prev_was_pdf || level_before < level_after) - /* FIXME: should the default sor direction be user selectable? */ - bidi_it->sor = ((higher_level & 1) != 0 ? R2L : L2R); - if (level_before > level_after) - bidi_it->prev_was_pdf = 1; + /* FIXME: should the default sos direction be user selectable? */ + bidi_it->sos = ((higher_level & 1) != 0 ? R2L : L2R); /* X10 */ bidi_it->prev.type = UNKNOWN_BT; - bidi_it->last_strong.type = bidi_it->last_strong.type_after_w1 - = bidi_it->last_strong.orig_type = UNKNOWN_BT; - bidi_it->prev_for_neutral.type = (bidi_it->sor == R2L ? STRONG_R : STRONG_L); + bidi_it->last_strong.type = bidi_it->last_strong.orig_type = UNKNOWN_BT; + bidi_it->prev_for_neutral.type = (bidi_it->sos == R2L ? STRONG_R : STRONG_L); bidi_it->prev_for_neutral.charpos = bidi_it->charpos; - bidi_it->prev_for_neutral.bytepos = bidi_it->bytepos; - bidi_it->next_for_neutral.type = bidi_it->next_for_neutral.type_after_w1 + bidi_it->next_for_neutral.type = bidi_it->next_for_neutral.orig_type = UNKNOWN_BT; - bidi_it->ignore_bn_limit = -1; /* meaning it's unknown */ } +#define ISOLATE_STATUS(BIDI_IT, IDX) ((BIDI_IT)->level_stack[IDX].flags & 1) +#define OVERRIDE(BIDI_IT, IDX) (((BIDI_IT)->level_stack[IDX].flags >> 1) & 3) + /* Push the current embedding level and override status; reset the current level to LEVEL and the current override status to OVERRIDE. */ static void bidi_push_embedding_level (struct bidi_it *bidi_it, - int level, bidi_dir_t override) + int level, bidi_dir_t override, bool isolate_status) { + struct bidi_stack *st; + int prev_level = bidi_it->level_stack[bidi_it->stack_idx].level; + bidi_it->stack_idx++; - eassert (bidi_it->stack_idx < BIDI_MAXLEVEL); - bidi_it->level_stack[bidi_it->stack_idx].level = level; - bidi_it->level_stack[bidi_it->stack_idx].override = override; + eassert (bidi_it->stack_idx < BIDI_MAXDEPTH+2+1); + st = &bidi_it->level_stack[bidi_it->stack_idx]; + eassert (level <= (1 << 7)); + st->level = level; + st->flags = (((override & 3) << 1) | (isolate_status != 0)); + if (isolate_status) + { + st->last_strong_type = bidi_it->last_strong.type; + st->prev_for_neutral_type = bidi_it->prev_for_neutral.type; + st->next_for_neutral_type = bidi_it->next_for_neutral.type; + st->next_for_neutral_pos = bidi_it->next_for_neutral.charpos; + st->flags |= ((bidi_it->sos == L2R ? 0 : 1) << 3); + } + /* We've got a new isolating sequence, compute the directional type + of sos and initialize per-sequence variables (UAX#9, clause X10). */ + bidi_set_sos_type (bidi_it, prev_level, level); } -/* Pop the embedding level and directional override status from the - stack, and return the new level. */ +/* Pop from the stack the embedding level, the directional override + status, and optionally saved information for the isolating run + sequence. Return the new level. */ static int bidi_pop_embedding_level (struct bidi_it *bidi_it) { - /* UAX#9 says to ignore invalid PDFs. */ + int level; + + /* UAX#9 says to ignore invalid PDFs (X7, last bullet) + and PDIs (X6a, 2nd bullet). */ if (bidi_it->stack_idx > 0) - bidi_it->stack_idx--; - return bidi_it->level_stack[bidi_it->stack_idx].level; + { + bool isolate_status = ISOLATE_STATUS (bidi_it, bidi_it->stack_idx); + int old_level = bidi_it->level_stack[bidi_it->stack_idx].level; + + struct bidi_stack st; + + st = bidi_it->level_stack[bidi_it->stack_idx]; + if (isolate_status) + { + bidi_dir_t sos = ((st.flags >> 3) & 1); + /* PREV is used in W1 for resolving WEAK_NSM. By the time + we get to an NSM, we must have gotten past at least one + character: the PDI that ends the isolate from which we + are popping here. So PREV will have been filled up by + the time we first use it. We initialize it here to + UNKNOWN_BT to be able to catch any blunders in this + logic. */ + bidi_it->prev.orig_type = bidi_it->prev.type = UNKNOWN_BT; + bidi_it->last_strong.type = st.last_strong_type; + bidi_it->prev_for_neutral.type = st.prev_for_neutral_type; + bidi_it->next_for_neutral.type = st.next_for_neutral_type; + bidi_it->next_for_neutral.charpos = st.next_for_neutral_pos; + bidi_it->sos = (sos == 0 ? L2R : R2L); + } + else + bidi_set_sos_type (bidi_it, old_level, + bidi_it->level_stack[bidi_it->stack_idx - 1].level); + + bidi_it->stack_idx--; + } + level = bidi_it->level_stack[bidi_it->stack_idx].level; + eassert (0 <= level && level <= BIDI_MAXDEPTH + 1); + return level; } /* Record in SAVED_INFO the information about the current character. */ static void bidi_remember_char (struct bidi_saved_info *saved_info, - struct bidi_it *bidi_it) + struct bidi_it *bidi_it, bool from_type) { saved_info->charpos = bidi_it->charpos; - saved_info->bytepos = bidi_it->bytepos; - saved_info->type = bidi_it->type; - bidi_check_type (bidi_it->type); - saved_info->type_after_w1 = bidi_it->type_after_w1; - bidi_check_type (bidi_it->type_after_w1); + if (from_type) + saved_info->type = bidi_it->type; + else + saved_info->type = bidi_it->type_after_wn; + bidi_check_type (saved_info->type); saved_info->orig_type = bidi_it->orig_type; - bidi_check_type (bidi_it->orig_type); + bidi_check_type (saved_info->orig_type); } /* Copy the bidi iterator from FROM to TO. To save cycles, this only @@ -501,7 +542,34 @@ bidi_copy_it (struct bidi_it *to, struct bidi_it *from) Caching the bidi iterator states ***********************************************************************/ +/* We allocate and de-allocate the cache in chunks of this size (in + characters). 200 was chosen as an upper limit for reasonably-long + lines in a text file/buffer. */ #define BIDI_CACHE_CHUNK 200 +/* Maximum size we allow the cache to become, per iterator stack slot, + in units of struct bidi_it size. If we allow unlimited growth, we + could run out of memory for pathologically long bracketed text or + very long text lines that need to be reordered. This is aggravated + when word-wrap is in effect, since then functions display_line and + move_it_in_display_line_to need to keep up to 4 copies of the + cache. + + This limitation means there can be no more than that amount of + contiguous RTL text on any single physical line in a LTR paragraph, + and similarly with contiguous LTR + numeric text in a RTL + paragraph. (LTR text in a LTR paragraph and RTL text in a RTL + paragraph are not reordered, and so don't need the cache, and + cannot hit this limit.) More importantly, no single line can have + text longer than this inside paired brackets (because bracket pairs + resolution uses the cache). If the limit is exceeded, the fallback + code will produce visual order that will be incorrect if there are + RTL characters in the offending line of text. */ +/* Do we need to allow customization of this limit? */ +#define BIDI_CACHE_MAX_ELTS_PER_SLOT 50000 +#if BIDI_CACHE_CHUNK >= BIDI_CACHE_MAX_ELTS_PER_SLOT +# error BIDI_CACHE_CHUNK must be less than BIDI_CACHE_MAX_ELTS_PER_SLOT +#endif +static ptrdiff_t bidi_cache_max_elts = BIDI_CACHE_MAX_ELTS_PER_SLOT; static struct bidi_it *bidi_cache; static ptrdiff_t bidi_cache_size = 0; enum { elsz = sizeof (struct bidi_it) }; @@ -522,9 +590,19 @@ enum bidi_shelve_header_size = (sizeof (bidi_cache_idx) + sizeof (bidi_cache_start_stack) + sizeof (bidi_cache_sp) + sizeof (bidi_cache_start) - + sizeof (bidi_cache_last_idx)) + + sizeof (bidi_cache_last_idx) + sizeof (bidi_cache_max_elts)) }; +/* Effectively remove the cached states beyond the Nth state from the + part of the cache relevant to iteration of the current object + (buffer or string). */ +static void +bidi_cache_reset_to (int n) +{ + bidi_cache_idx = bidi_cache_start + n; + bidi_cache_last_idx = -1; +} + /* Reset the cache state to the empty state. We only reset the part of the cache relevant to iteration of the current object. Previous objects, which are pushed on the display iterator's stack, are left @@ -534,8 +612,7 @@ enum static void bidi_cache_reset (void) { - bidi_cache_idx = bidi_cache_start; - bidi_cache_last_idx = -1; + bidi_cache_reset_to (0); } /* Shrink the cache to its minimal size. Called when we init the bidi @@ -551,6 +628,7 @@ bidi_cache_shrink (void) bidi_cache_size = BIDI_CACHE_CHUNK; } bidi_cache_reset (); + bidi_cache_max_elts = BIDI_CACHE_MAX_ELTS_PER_SLOT; } static void @@ -567,9 +645,11 @@ bidi_cache_fetch_state (ptrdiff_t idx, struct bidi_it *bidi_it) } /* Find a cached state with a given CHARPOS and resolved embedding - level less or equal to LEVEL. if LEVEL is -1, disregard the + level less or equal to LEVEL. If LEVEL is -1, disregard the resolved levels in cached states. DIR, if non-zero, means search - in that direction from the last cache hit. */ + in that direction from the last cache hit. + + Value is the index of the cached state, or -1 if not found. */ static ptrdiff_t bidi_cache_search (ptrdiff_t charpos, int level, int dir) { @@ -643,7 +723,8 @@ bidi_cache_find_level_change (int level, int dir, bool before) ptrdiff_t i = dir ? bidi_cache_last_idx : bidi_cache_idx - 1; int incr = before ? 1 : 0; - eassert (!dir || bidi_cache_last_idx >= 0); + if (i < 0) /* cache overflowed? */ + i = 0; if (!dir) dir = -1; @@ -681,24 +762,39 @@ bidi_cache_ensure_space (ptrdiff_t idx) /* Enlarge the cache as needed. */ if (idx >= bidi_cache_size) { - /* The bidi cache cannot be larger than the largest Lisp string - or buffer. */ - ptrdiff_t string_or_buffer_bound - = max (BUF_BYTES_MAX, STRING_BYTES_BOUND); + ptrdiff_t chunk_size = BIDI_CACHE_CHUNK; - /* Also, it cannot be larger than what C can represent. */ - ptrdiff_t c_bound - = (min (PTRDIFF_MAX, SIZE_MAX) - bidi_shelve_header_size) / elsz; + if (bidi_cache_size > bidi_cache_max_elts - chunk_size) + chunk_size = bidi_cache_max_elts - bidi_cache_size; - bidi_cache - = xpalloc (bidi_cache, &bidi_cache_size, - max (BIDI_CACHE_CHUNK, idx - bidi_cache_size + 1), - min (string_or_buffer_bound, c_bound), elsz); + if (max (idx + 1, + bidi_cache_size + chunk_size) <= bidi_cache_max_elts) + { + /* The bidi cache cannot be larger than the largest Lisp + string or buffer. */ + ptrdiff_t string_or_buffer_bound + = max (BUF_BYTES_MAX, STRING_BYTES_BOUND); + + /* Also, it cannot be larger than what C can represent. */ + ptrdiff_t c_bound + = (min (PTRDIFF_MAX, SIZE_MAX) - bidi_shelve_header_size) / elsz; + ptrdiff_t max_elts = bidi_cache_max_elts; + + max_elts = min (max_elts, min (string_or_buffer_bound, c_bound)); + + /* Force xpalloc not to over-allocate by passing it MAX_ELTS + as its 4th argument. */ + bidi_cache = xpalloc (bidi_cache, &bidi_cache_size, + max (chunk_size, idx - bidi_cache_size + 1), + max_elts, elsz); + eassert (bidi_cache_size > idx); + } } } -static void -bidi_cache_iterator_state (struct bidi_it *bidi_it, bool resolved) +static int +bidi_cache_iterator_state (struct bidi_it *bidi_it, bool resolved, + bool update_only) { ptrdiff_t idx; @@ -707,6 +803,9 @@ bidi_cache_iterator_state (struct bidi_it *bidi_it, bool resolved) emacs_abort (); idx = bidi_cache_search (bidi_it->charpos, -1, 1); + if (idx < 0 && update_only) + return 0; + if (idx < 0) { idx = bidi_cache_idx; @@ -714,19 +813,23 @@ bidi_cache_iterator_state (struct bidi_it *bidi_it, bool resolved) /* Character positions should correspond to cache positions 1:1. If we are outside the range of cached positions, the cache is useless and must be reset. */ - if (idx > bidi_cache_start && - (bidi_it->charpos > (bidi_cache[idx - 1].charpos - + bidi_cache[idx - 1].nchars) - || bidi_it->charpos < bidi_cache[bidi_cache_start].charpos)) + if (bidi_cache_start < idx && idx < bidi_cache_size + && (bidi_it->charpos > (bidi_cache[idx - 1].charpos + + bidi_cache[idx - 1].nchars) + || bidi_it->charpos < bidi_cache[bidi_cache_start].charpos)) { bidi_cache_reset (); idx = bidi_cache_start; } if (bidi_it->nchars <= 0) emacs_abort (); - bidi_copy_it (&bidi_cache[idx], bidi_it); - if (!resolved) - bidi_cache[idx].resolved_level = -1; + /* Don't cache if no available space in the cache. */ + if (bidi_cache_size > idx) + { + bidi_copy_it (&bidi_cache[idx], bidi_it); + if (!resolved) + bidi_cache[idx].resolved_level = -1; + } } else { @@ -734,32 +837,54 @@ bidi_cache_iterator_state (struct bidi_it *bidi_it, bool resolved) costly copying of the entire struct. */ bidi_cache[idx].type = bidi_it->type; bidi_check_type (bidi_it->type); - bidi_cache[idx].type_after_w1 = bidi_it->type_after_w1; - bidi_check_type (bidi_it->type_after_w1); + bidi_cache[idx].type_after_wn = bidi_it->type_after_wn; + bidi_check_type (bidi_it->type_after_wn); if (resolved) bidi_cache[idx].resolved_level = bidi_it->resolved_level; else bidi_cache[idx].resolved_level = -1; bidi_cache[idx].invalid_levels = bidi_it->invalid_levels; - bidi_cache[idx].invalid_rl_levels = bidi_it->invalid_rl_levels; bidi_cache[idx].next_for_neutral = bidi_it->next_for_neutral; bidi_cache[idx].next_for_ws = bidi_it->next_for_ws; - bidi_cache[idx].ignore_bn_limit = bidi_it->ignore_bn_limit; bidi_cache[idx].disp_pos = bidi_it->disp_pos; bidi_cache[idx].disp_prop = bidi_it->disp_prop; + bidi_cache[idx].bracket_pairing_pos = bidi_it->bracket_pairing_pos; + bidi_cache[idx].bracket_enclosed_type = bidi_it->bracket_enclosed_type; } - bidi_cache_last_idx = idx; - if (idx >= bidi_cache_idx) - bidi_cache_idx = idx + 1; + if (bidi_cache_size > idx) + { + bidi_cache_last_idx = idx; + if (idx >= bidi_cache_idx) + bidi_cache_idx = idx + 1; + return 1; + } + else + { + /* The cache overflowed. */ + bidi_cache_last_idx = -1; + return 0; + } } +/* Look for a cached iterator state that corresponds to CHARPOS. If + found, copy the cached state into BIDI_IT and return the type of + the cached entry. If not found, return UNKNOWN_BT. RESOLVED_ONLY + zero means it is OK to return cached states that were not fully + resolved yet. This can happen if the state was cached before it + was resolved in bidi_resolve_neutral. */ static bidi_type_t -bidi_cache_find (ptrdiff_t charpos, int level, struct bidi_it *bidi_it) +bidi_cache_find (ptrdiff_t charpos, bool resolved_only, struct bidi_it *bidi_it) { - ptrdiff_t i = bidi_cache_search (charpos, level, bidi_it->scan_dir); + ptrdiff_t i = bidi_cache_search (charpos, -1, bidi_it->scan_dir); - if (i >= bidi_cache_start) + if (i >= bidi_cache_start + && (!resolved_only + /* Callers that want only fully resolved states (and set + resolved_only = true) need to be sure that there's enough + info in the cached state to return the state as final, + and if not, they don't want the cached state. */ + || bidi_cache[i].resolved_level >= 0)) { bidi_dir_t current_scan_dir = bidi_it->scan_dir; @@ -777,8 +902,13 @@ bidi_cache_find (ptrdiff_t charpos, int level, struct bidi_it *bidi_it) static int bidi_peek_at_next_level (struct bidi_it *bidi_it) { - if (bidi_cache_idx == bidi_cache_start || bidi_cache_last_idx == -1) + if (bidi_cache_idx == bidi_cache_start) emacs_abort (); + /* If the cache overflowed, return the level of the last cached + character. */ + if (bidi_cache_last_idx == -1 + || (bidi_cache_last_idx >= bidi_cache_idx - 1 && bidi_it->scan_dir > 0)) + return bidi_cache[bidi_cache_idx - 1].resolved_level; return bidi_cache[bidi_cache_last_idx + bidi_it->scan_dir].resolved_level; } @@ -795,6 +925,8 @@ bidi_peek_at_next_level (struct bidi_it *bidi_it) void bidi_push_it (struct bidi_it *bidi_it) { + /* Give this stack slot its cache room. */ + bidi_cache_max_elts += BIDI_CACHE_MAX_ELTS_PER_SLOT; /* Save the current iterator state in its entirety after the last used cache slot. */ bidi_cache_ensure_space (bidi_cache_idx); @@ -831,6 +963,9 @@ bidi_pop_it (struct bidi_it *bidi_it) /* Invalidate the last-used cache slot data. */ bidi_cache_last_idx = -1; + + bidi_cache_max_elts -= BIDI_CACHE_MAX_ELTS_PER_SLOT; + eassert (bidi_cache_max_elts > 0); } static ptrdiff_t bidi_cache_total_alloc; @@ -870,6 +1005,11 @@ bidi_shelve_cache (void) + sizeof (bidi_cache_start_stack) + sizeof (bidi_cache_sp) + sizeof (bidi_cache_start), &bidi_cache_last_idx, sizeof (bidi_cache_last_idx)); + memcpy (databuf + sizeof (bidi_cache_idx) + + bidi_cache_idx * sizeof (struct bidi_it) + + sizeof (bidi_cache_start_stack) + sizeof (bidi_cache_sp) + + sizeof (bidi_cache_start) + sizeof (bidi_cache_last_idx), + &bidi_cache_max_elts, sizeof (bidi_cache_max_elts)); return databuf; } @@ -891,6 +1031,7 @@ bidi_unshelve_cache (void *databuf, bool just_free) /* A NULL pointer means an empty cache. */ bidi_cache_start = 0; bidi_cache_sp = 0; + bidi_cache_max_elts = BIDI_CACHE_MAX_ELTS_PER_SLOT; bidi_cache_reset (); } } @@ -930,6 +1071,12 @@ bidi_unshelve_cache (void *databuf, bool just_free) + sizeof (bidi_cache_start_stack) + sizeof (bidi_cache_sp) + sizeof (bidi_cache_start), sizeof (bidi_cache_last_idx)); + memcpy (&bidi_cache_max_elts, + p + sizeof (bidi_cache_idx) + + bidi_cache_idx * sizeof (struct bidi_it) + + sizeof (bidi_cache_start_stack) + sizeof (bidi_cache_sp) + + sizeof (bidi_cache_start) + sizeof (bidi_cache_last_idx), + sizeof (bidi_cache_max_elts)); bidi_cache_total_alloc -= (bidi_shelve_header_size + bidi_cache_idx * sizeof (struct bidi_it)); @@ -956,14 +1103,17 @@ bidi_initialize (void) emacs_abort (); staticpro (&bidi_mirror_table); - Qparagraph_start = intern ("paragraph-start"); - staticpro (&Qparagraph_start); + bidi_brackets_table = uniprop_table (intern ("bracket-type")); + if (NILP (bidi_brackets_table)) + emacs_abort (); + staticpro (&bidi_brackets_table); + + DEFSYM (Qparagraph_start, "paragraph-start"); paragraph_start_re = Fsymbol_value (Qparagraph_start); if (!STRINGP (paragraph_start_re)) paragraph_start_re = build_string ("\f\\|[ \t]*$"); staticpro (¶graph_start_re); - Qparagraph_separate = intern ("paragraph-separate"); - staticpro (&Qparagraph_separate); + DEFSYM (Qparagraph_separate, "paragraph-separate"); paragraph_separate_re = Fsymbol_value (Qparagraph_separate); if (!STRINGP (paragraph_separate_re)) paragraph_separate_re = build_string ("[ \t\f]*$"); @@ -971,6 +1121,7 @@ bidi_initialize (void) bidi_cache_sp = 0; bidi_cache_total_alloc = 0; + bidi_cache_max_elts = BIDI_CACHE_MAX_ELTS_PER_SLOT; bidi_initialized = 1; } @@ -981,7 +1132,7 @@ static void bidi_set_paragraph_end (struct bidi_it *bidi_it) { bidi_it->invalid_levels = 0; - bidi_it->invalid_rl_levels = -1; + bidi_it->invalid_isolates = 0; bidi_it->stack_idx = 0; bidi_it->resolved_level = bidi_it->level_stack[0].level; } @@ -998,28 +1149,25 @@ bidi_init_it (ptrdiff_t charpos, ptrdiff_t bytepos, bool frame_window_p, if (bytepos >= 0) bidi_it->bytepos = bytepos; bidi_it->frame_window_p = frame_window_p; - bidi_it->nchars = -1; /* to be computed in bidi_resolve_explicit_1 */ + bidi_it->nchars = -1; /* to be computed in bidi_resolve_explicit */ bidi_it->first_elt = 1; bidi_set_paragraph_end (bidi_it); bidi_it->new_paragraph = 1; bidi_it->separator_limit = -1; bidi_it->type = NEUTRAL_B; - bidi_it->type_after_w1 = NEUTRAL_B; + bidi_it->type_after_wn = NEUTRAL_B; bidi_it->orig_type = NEUTRAL_B; - bidi_it->prev_was_pdf = 0; - bidi_it->prev.type = bidi_it->prev.type_after_w1 - = bidi_it->prev.orig_type = UNKNOWN_BT; - bidi_it->last_strong.type = bidi_it->last_strong.type_after_w1 - = bidi_it->last_strong.orig_type = UNKNOWN_BT; + /* FIXME: Review this!!! */ + bidi_it->prev.type = bidi_it->prev.orig_type = UNKNOWN_BT; + bidi_it->last_strong.type = bidi_it->last_strong.orig_type = UNKNOWN_BT; bidi_it->next_for_neutral.charpos = -1; bidi_it->next_for_neutral.type - = bidi_it->next_for_neutral.type_after_w1 = bidi_it->next_for_neutral.orig_type = UNKNOWN_BT; bidi_it->prev_for_neutral.charpos = -1; bidi_it->prev_for_neutral.type - = bidi_it->prev_for_neutral.type_after_w1 = bidi_it->prev_for_neutral.orig_type = UNKNOWN_BT; - bidi_it->sor = L2R; /* FIXME: should it be user-selectable? */ + bidi_it->bracket_pairing_pos = -1; + bidi_it->sos = L2R; /* FIXME: should it be user-selectable? */ bidi_it->disp_pos = -1; /* invalid/unknown */ bidi_it->disp_prop = 0; /* We can only shrink the cache if we are at the bottom level of its @@ -1035,16 +1183,20 @@ static void bidi_line_init (struct bidi_it *bidi_it) { bidi_it->scan_dir = 1; /* FIXME: do we need to have control on this? */ + bidi_it->stack_idx = 0; bidi_it->resolved_level = bidi_it->level_stack[0].level; - bidi_it->level_stack[0].override = NEUTRAL_DIR; /* X1 */ + bidi_it->level_stack[0].flags = 0; /* NEUTRAL_DIR, false per X1 */ bidi_it->invalid_levels = 0; - bidi_it->invalid_rl_levels = -1; + bidi_it->isolate_level = 0; /* X1 */ + bidi_it->invalid_isolates = 0; /* X1 */ /* Setting this to zero will force its recomputation the first time we need it for W5. */ bidi_it->next_en_pos = 0; bidi_it->next_en_type = UNKNOWN_BT; + bidi_it->next_for_ws.charpos = -1; bidi_it->next_for_ws.type = UNKNOWN_BT; - bidi_set_sor_type (bidi_it, + bidi_it->bracket_pairing_pos = -1; + bidi_set_sos_type (bidi_it, (bidi_it->paragraph_dir == R2L ? 1 : 0), bidi_it->level_stack[0].level); /* X10 */ @@ -1244,6 +1396,50 @@ bidi_fetch_char (ptrdiff_t charpos, ptrdiff_t bytepos, ptrdiff_t *disp_pos, return ch; } +/* Like bidi_fetch_char, but ignore any text between an isolate + initiator and its matching PDI or, if it has no matching PDI, the + end of the paragraph. If isolates were skipped, CH_LEN and NCHARS + are set to the number of bytes and characters between BYTEPOS/CHARPOS + and the character that was fetched after skipping the isolates. */ +static int +bidi_fetch_char_skip_isolates (ptrdiff_t charpos, ptrdiff_t bytepos, + ptrdiff_t *disp_pos, int *disp_prop, + struct bidi_string_data *string, + struct window *w, bool frame_window_p, + ptrdiff_t *ch_len, ptrdiff_t *nchars) +{ + ptrdiff_t orig_charpos = charpos, orig_bytepos = bytepos; + int ch = bidi_fetch_char (charpos, bytepos, disp_pos, disp_prop, string, w, + frame_window_p, ch_len, nchars); + bidi_type_t ch_type = bidi_get_type (ch, NEUTRAL_DIR); + ptrdiff_t level = 0; + + if (ch_type == LRI || ch_type == RLI || ch_type == FSI) + { + level++; + while (level > 0 && ch_type != NEUTRAL_B) + { + charpos += *nchars; + bytepos += *ch_len; + ch = bidi_fetch_char (charpos, bytepos, disp_pos, disp_prop, string, + w, frame_window_p, ch_len, nchars); + ch_type = bidi_get_type (ch, NEUTRAL_DIR); + /* A Note to P2 says to ignore max_depth limit. */ + if (ch_type == LRI || ch_type == RLI || ch_type == FSI) + level++; + else if (ch_type == PDI) + level--; + } + } + + /* Communicate to the caller how much did we skip, so it could get + past the last character position we examined. */ + *nchars += charpos - orig_charpos; + *ch_len += bytepos - orig_bytepos; + return ch; +} + + /*********************************************************************** Determining paragraph direction @@ -1378,6 +1574,72 @@ bidi_find_paragraph_start (ptrdiff_t pos, ptrdiff_t pos_byte) bidi_paragraph_init to less than 10 ms even on slow machines. */ #define MAX_STRONG_CHAR_SEARCH 100000 +/* Starting from POS, find the first strong (L, R, or AL) character, + while skipping over any characters between an isolate initiator and + its matching PDI. STOP_AT_PDI non-zero means stop at the PDI that + matches the isolate initiator at POS. Return the bidi type of the + character where the search stopped. Give up if after examining + MAX_STRONG_CHAR_SEARCH buffer or string positions no strong + character was found. */ +static bidi_type_t +find_first_strong_char (ptrdiff_t pos, ptrdiff_t bytepos, ptrdiff_t end, + ptrdiff_t *disp_pos, int *disp_prop, + struct bidi_string_data *string, struct window *w, + bool string_p, bool frame_window_p, + ptrdiff_t *ch_len, ptrdiff_t *nchars, bool stop_at_pdi) +{ + ptrdiff_t pos1; + bidi_type_t type; + int ch; + + if (stop_at_pdi) + { + /* If STOP_AT_PDI is non-zero, we must have been called with FSI + at POS. Get past it. */ +#ifdef ENABLE_CHECKING + ch = bidi_fetch_char (pos, bytepos, disp_pos, disp_prop, string, w, + frame_window_p, ch_len, nchars); + type = bidi_get_type (ch, NEUTRAL_DIR); + eassert (type == FSI /* || type == LRI || type == RLI */); +#endif + pos += *nchars; + bytepos += *ch_len; + } + ch = bidi_fetch_char_skip_isolates (pos, bytepos, disp_pos, disp_prop, string, + w, frame_window_p, ch_len, nchars); + type = bidi_get_type (ch, NEUTRAL_DIR); + + pos1 = pos; + for (pos += *nchars, bytepos += *ch_len; + bidi_get_category (type) != STRONG + /* If requested to stop at first PDI, stop there. */ + && !(stop_at_pdi && type == PDI) + /* Stop when searched too far into an abnormally large + paragraph full of weak or neutral characters. */ + && pos - pos1 < MAX_STRONG_CHAR_SEARCH; + type = bidi_get_type (ch, NEUTRAL_DIR)) + { + if (pos >= end) + { + /* Pretend there's a paragraph separator at end of + buffer/string. */ + type = NEUTRAL_B; + break; + } + if (!string_p + && type == NEUTRAL_B + && bidi_at_paragraph_end (pos, bytepos) >= -1) + break; + /* Fetch next character and advance to get past it. */ + ch = bidi_fetch_char_skip_isolates (pos, bytepos, disp_pos, disp_prop, + string, w, frame_window_p, + ch_len, nchars); + pos += *nchars; + bytepos += *ch_len; + } + return type; +} + /* Determine the base direction, a.k.a. base embedding level, of the paragraph we are about to iterate through. If DIR is either L2R or R2L, just use that. Otherwise, determine the paragraph direction @@ -1424,7 +1686,6 @@ bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it, bool no_default_p) } else if (dir == NEUTRAL_DIR) /* P2 */ { - int ch; ptrdiff_t ch_len, nchars; ptrdiff_t pos, disp_pos = -1; int disp_prop = 0; @@ -1473,52 +1734,16 @@ bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it, bool no_default_p) /* The following loop is run more than once only if NO_DEFAULT_P, and only if we are iterating on a buffer. */ do { - ptrdiff_t pos1; - bytepos = pstartbyte; if (!string_p) pos = BYTE_TO_CHAR (bytepos); - ch = bidi_fetch_char (pos, bytepos, &disp_pos, &disp_prop, - &bidi_it->string, bidi_it->w, - bidi_it->frame_window_p, &ch_len, &nchars); - type = bidi_get_type (ch, NEUTRAL_DIR); - - pos1 = pos; - for (pos += nchars, bytepos += ch_len; - ((bidi_get_category (type) != STRONG) - || (bidi_ignore_explicit_marks_for_paragraph_level - && (type == RLE || type == RLO - || type == LRE || type == LRO))) - /* Stop when searched too far into an abnormally large - paragraph full of weak or neutral characters. */ - && pos - pos1 < MAX_STRONG_CHAR_SEARCH; - type = bidi_get_type (ch, NEUTRAL_DIR)) - { - if (pos >= end) - { - /* Pretend there's a paragraph separator at end of - buffer/string. */ - type = NEUTRAL_B; - break; - } - if (!string_p - && type == NEUTRAL_B - && bidi_at_paragraph_end (pos, bytepos) >= -1) - break; - /* Fetch next character and advance to get past it. */ - ch = bidi_fetch_char (pos, bytepos, &disp_pos, - &disp_prop, &bidi_it->string, bidi_it->w, - bidi_it->frame_window_p, &ch_len, &nchars); - pos += nchars; - bytepos += ch_len; - } - if ((type == STRONG_R || type == STRONG_AL) /* P3 */ - || (!bidi_ignore_explicit_marks_for_paragraph_level - && (type == RLO || type == RLE))) + type = find_first_strong_char (pos, bytepos, end, &disp_pos, &disp_prop, + &bidi_it->string, bidi_it->w, + string_p, bidi_it->frame_window_p, + &ch_len, &nchars, false); + if (type == STRONG_R || type == STRONG_AL) /* P3 */ bidi_it->paragraph_dir = R2L; - else if (type == STRONG_L - || (!bidi_ignore_explicit_marks_for_paragraph_level - && (type == LRO || type == LRE))) + else if (type == STRONG_L) bidi_it->paragraph_dir = L2R; if (!string_p && no_default_p && bidi_it->paragraph_dir == NEUTRAL_DIR) @@ -1581,19 +1806,75 @@ bidi_explicit_dir_char (int ch) || ch_type == PDF); } -/* A helper function for bidi_resolve_explicit. It advances to the - next character in logical order and determines the new embedding - level and directional override, but does not take into account - empty embeddings. */ +/* Given an iterator state in BIDI_IT, advance one character position + in the buffer/string to the next character (in the logical order), + resolve any explicit embeddings, directional overrides, and isolate + initiators and terminators, and return the embedding level of the + character after resolving these explicit directives. */ static int -bidi_resolve_explicit_1 (struct bidi_it *bidi_it) +bidi_resolve_explicit (struct bidi_it *bidi_it) { int curchar; - bidi_type_t type; + bidi_type_t type, typ1, prev_type = UNKNOWN_BT; int current_level; int new_level; bidi_dir_t override; + bool isolate_status; bool string_p = bidi_it->string.s || STRINGP (bidi_it->string.lstring); + ptrdiff_t ch_len, nchars, disp_pos, end; + int disp_prop; + ptrdiff_t eob + = ((bidi_it->string.s || STRINGP (bidi_it->string.lstring)) + ? bidi_it->string.schars : ZV); + + /* Record the info about the previous character. */ + if (bidi_it->type_after_wn != WEAK_BN /* W1/Retaining */ + && bidi_it->type != WEAK_BN) + { + /* This special case is needed in support of Unicode 8.0 + correction to N0, as implemented in bidi_resolve_weak/W1 + below. */ + if (bidi_it->type_after_wn == NEUTRAL_ON + && bidi_get_category (bidi_it->type) == STRONG + && bidi_paired_bracket_type (bidi_it->ch) == BIDI_BRACKET_CLOSE) + bidi_remember_char (&bidi_it->prev, bidi_it, 1); + else + bidi_remember_char (&bidi_it->prev, bidi_it, 0); + } + if (bidi_it->type_after_wn == STRONG_R + || bidi_it->type_after_wn == STRONG_L + || bidi_it->type_after_wn == STRONG_AL) + bidi_remember_char (&bidi_it->last_strong, bidi_it, 0); + if (bidi_it->type == STRONG_R || bidi_it->type == STRONG_L + || bidi_it->type == WEAK_EN || bidi_it->type == WEAK_AN) + bidi_remember_char (&bidi_it->prev_for_neutral, bidi_it, 1); + + /* If we overstepped the characters used for resolving neutrals + and whitespace, invalidate their info in the iterator. */ + if (bidi_it->charpos >= bidi_it->next_for_neutral.charpos) + { + bidi_it->next_for_neutral.type = UNKNOWN_BT; + /* If needed, reset the "magical" value of pairing bracket + position, so that bidi_resolve_brackets will resume + resolution of brackets according to BPA. */ + if (bidi_it->bracket_pairing_pos == eob) + bidi_it->bracket_pairing_pos = -1; + } + if (bidi_it->next_en_pos >= 0 + && bidi_it->charpos >= bidi_it->next_en_pos) + { + bidi_it->next_en_pos = 0; + bidi_it->next_en_type = UNKNOWN_BT; + } + + /* Reset the bracket resolution info, unless we previously decided + (in bidi_find_bracket_pairs) that brackets in this level run + should be resolved as neutrals. */ + if (bidi_it->bracket_pairing_pos != eob) + { + bidi_it->bracket_pairing_pos = -1; + bidi_it->bracket_enclosed_type = UNKNOWN_BT; + } /* If reseat()'ed, don't advance, so as to start iteration from the position where we were reseated. bidi_it->bytepos can be less @@ -1624,6 +1905,19 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it) } eassert (bidi_it->bytepos == CHAR_TO_BYTE (bidi_it->charpos)); } + /* Determine the original bidi type of the previous character, + which is needed for handling isolate initiators and PDF. The + type of the previous character will be non-trivial only if + our caller moved through some previous text in + get_visually_first_element, in which case bidi_it->prev holds + the information we want. */ + if (bidi_it->first_elt && bidi_it->prev.type != UNKNOWN_BT) + { + eassert (bidi_it->prev.charpos == bidi_it->charpos - 1); + prev_type = bidi_it->prev.orig_type; + if (prev_type == FSI) + prev_type = bidi_it->type_after_wn; + } } /* Don't move at end of buffer/string. */ else if (bidi_it->charpos < (string_p ? bidi_it->string.schars : ZV)) @@ -1636,10 +1930,16 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it) if (bidi_it->ch_len == 0) emacs_abort (); bidi_it->bytepos += bidi_it->ch_len; + prev_type = bidi_it->orig_type; + if (prev_type == FSI) + prev_type = bidi_it->type_after_wn; } + else /* EOB or end of string */ + prev_type = NEUTRAL_B; current_level = bidi_it->level_stack[bidi_it->stack_idx].level; /* X1 */ - override = bidi_it->level_stack[bidi_it->stack_idx].override; + isolate_status = ISOLATE_STATUS (bidi_it, bidi_it->stack_idx); + override = OVERRIDE (bidi_it, bidi_it->stack_idx); new_level = current_level; if (bidi_it->charpos >= (string_p ? bidi_it->string.schars : ZV)) @@ -1652,6 +1952,52 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it) } else { + /* LRI, RLI, and FSI increment, and PDF decrements, the + embedding level of the _following_ characters, so we must + first look at the type of the previous character to support + that. */ + switch (prev_type) + { + case RLI: /* X5a */ + if (current_level < BIDI_MAXDEPTH + && bidi_it->invalid_levels == 0 + && bidi_it->invalid_isolates == 0) + { + new_level = ((current_level + 1) & ~1) + 1; + bidi_it->isolate_level++; + bidi_push_embedding_level (bidi_it, new_level, + NEUTRAL_DIR, true); + } + else + bidi_it->invalid_isolates++; + break; + case LRI: /* X5b */ + if (current_level < BIDI_MAXDEPTH - 1 + && bidi_it->invalid_levels == 0 + && bidi_it->invalid_isolates == 0) + { + new_level = ((current_level + 2) & ~1); + bidi_it->isolate_level++; + bidi_push_embedding_level (bidi_it, new_level, + NEUTRAL_DIR, true); + } + else + bidi_it->invalid_isolates++; + break; + case PDF: /* X7 */ + if (!bidi_it->invalid_isolates) + { + if (bidi_it->invalid_levels) + bidi_it->invalid_levels--; + else if (!isolate_status && bidi_it->stack_idx >= 1) + new_level = bidi_pop_embedding_level (bidi_it); + } + break; + default: + eassert (prev_type != FSI); + /* Nothing. */ + break; + } /* Fetch the character at BYTEPOS. If it is covered by a display string, treat the entire run of covered characters as a single character u+FFFC. */ @@ -1662,6 +2008,7 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it) &bidi_it->ch_len, &bidi_it->nchars); } bidi_it->ch = curchar; + bidi_it->resolved_level = new_level; /* Don't apply directional override here, as all the types we handle below will not be affected by the override anyway, and we need @@ -1671,206 +2018,141 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it) bidi_it->orig_type = type; bidi_check_type (bidi_it->orig_type); - if (type != PDF) - bidi_it->prev_was_pdf = 0; - - bidi_it->type_after_w1 = UNKNOWN_BT; + bidi_it->type_after_wn = UNKNOWN_BT; switch (type) { - case RLE: /* X2 */ - case RLO: /* X4 */ - bidi_it->type_after_w1 = type; - bidi_check_type (bidi_it->type_after_w1); - type = WEAK_BN; /* X9/Retaining */ - if (bidi_it->ignore_bn_limit <= -1) - { - if (current_level <= BIDI_MAXLEVEL - 4) - { - /* Compute the least odd embedding level greater than - the current level. */ - new_level = ((current_level + 1) & ~1) + 1; - if (bidi_it->type_after_w1 == RLE) - override = NEUTRAL_DIR; - else - override = R2L; - if (current_level == BIDI_MAXLEVEL - 4) - bidi_it->invalid_rl_levels = 0; - bidi_push_embedding_level (bidi_it, new_level, override); - } - else - { - bidi_it->invalid_levels++; - /* See the commentary about invalid_rl_levels below. */ - if (bidi_it->invalid_rl_levels < 0) - bidi_it->invalid_rl_levels = 0; - bidi_it->invalid_rl_levels++; - } - } - else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ - || (bidi_it->next_en_pos > bidi_it->charpos - && bidi_it->next_en_type == WEAK_EN)) - type = WEAK_EN; - break; - case LRE: /* X3 */ - case LRO: /* X5 */ - bidi_it->type_after_w1 = type; - bidi_check_type (bidi_it->type_after_w1); - type = WEAK_BN; /* X9/Retaining */ - if (bidi_it->ignore_bn_limit <= -1) - { - if (current_level <= BIDI_MAXLEVEL - 5) - { - /* Compute the least even embedding level greater than - the current level. */ - new_level = ((current_level + 2) & ~1); - if (bidi_it->type_after_w1 == LRE) - override = NEUTRAL_DIR; - else - override = L2R; - bidi_push_embedding_level (bidi_it, new_level, override); - } - else - { - bidi_it->invalid_levels++; - /* invalid_rl_levels counts invalid levels encountered - while the embedding level was already too high for - LRE/LRO, but not for RLE/RLO. That is because - there may be exactly one PDF which we should not - ignore even though invalid_levels is non-zero. - invalid_rl_levels helps to know what PDF is - that. */ - if (bidi_it->invalid_rl_levels >= 0) - bidi_it->invalid_rl_levels++; - } - } - else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ - || (bidi_it->next_en_pos > bidi_it->charpos - && bidi_it->next_en_type == WEAK_EN)) - type = WEAK_EN; - break; - case PDF: /* X7 */ - bidi_it->type_after_w1 = type; - bidi_check_type (bidi_it->type_after_w1); - type = WEAK_BN; /* X9/Retaining */ - if (bidi_it->ignore_bn_limit <= -1) - { - if (!bidi_it->invalid_rl_levels) - { - new_level = bidi_pop_embedding_level (bidi_it); - bidi_it->invalid_rl_levels = -1; - if (bidi_it->invalid_levels) - bidi_it->invalid_levels--; - /* else nothing: UAX#9 says to ignore invalid PDFs */ - } - if (!bidi_it->invalid_levels) - new_level = bidi_pop_embedding_level (bidi_it); - else - { - bidi_it->invalid_levels--; - bidi_it->invalid_rl_levels--; - } - } - else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ - || (bidi_it->next_en_pos > bidi_it->charpos - && bidi_it->next_en_type == WEAK_EN)) - type = WEAK_EN; - break; - default: - /* Nothing. */ - break; + case RLE: /* X2 */ + case RLO: /* X4 */ + bidi_it->type_after_wn = type; + bidi_check_type (bidi_it->type_after_wn); + type = WEAK_BN; /* X9/Retaining */ + if (new_level < BIDI_MAXDEPTH + && bidi_it->invalid_levels == 0 + && bidi_it->invalid_isolates == 0) + { + /* Compute the least odd embedding level greater than + the current level. */ + new_level = ((new_level + 1) & ~1) + 1; + if (bidi_it->type_after_wn == RLE) + override = NEUTRAL_DIR; + else + override = R2L; + bidi_push_embedding_level (bidi_it, new_level, override, false); + bidi_it->resolved_level = new_level; + } + else + { + if (bidi_it->invalid_isolates == 0) + bidi_it->invalid_levels++; + } + break; + case LRE: /* X3 */ + case LRO: /* X5 */ + bidi_it->type_after_wn = type; + bidi_check_type (bidi_it->type_after_wn); + type = WEAK_BN; /* X9/Retaining */ + if (new_level < BIDI_MAXDEPTH - 1 + && bidi_it->invalid_levels == 0 + && bidi_it->invalid_isolates == 0) + { + /* Compute the least even embedding level greater than + the current level. */ + new_level = ((new_level + 2) & ~1); + if (bidi_it->type_after_wn == LRE) + override = NEUTRAL_DIR; + else + override = L2R; + bidi_push_embedding_level (bidi_it, new_level, override, false); + bidi_it->resolved_level = new_level; + } + else + { + if (bidi_it->invalid_isolates == 0) + bidi_it->invalid_levels++; + } + break; + case FSI: /* X5c */ + end = string_p ? bidi_it->string.schars : ZV; + disp_pos = bidi_it->disp_pos; + disp_prop = bidi_it->disp_prop; + nchars = bidi_it->nchars; + ch_len = bidi_it->ch_len; + typ1 = find_first_strong_char (bidi_it->charpos, + bidi_it->bytepos, end, + &disp_pos, &disp_prop, + &bidi_it->string, bidi_it->w, + string_p, bidi_it->frame_window_p, + &ch_len, &nchars, true); + if (typ1 != STRONG_R && typ1 != STRONG_AL) + { + type = LRI; + goto fsi_as_lri; + } + else + type = RLI; + /* FALLTHROUGH */ + case RLI: /* X5a */ + if (override == NEUTRAL_DIR) + bidi_it->type_after_wn = type; + else /* Unicode 8.0 correction. */ + bidi_it->type_after_wn = (override == L2R ? STRONG_L : STRONG_R); + bidi_check_type (bidi_it->type_after_wn); + break; + case LRI: /* X5b */ + fsi_as_lri: + if (override == NEUTRAL_DIR) + bidi_it->type_after_wn = type; + else /* Unicode 8.0 correction. */ + bidi_it->type_after_wn = (override == L2R ? STRONG_L : STRONG_R); + bidi_check_type (bidi_it->type_after_wn); + break; + case PDI: /* X6a */ + if (bidi_it->invalid_isolates) + bidi_it->invalid_isolates--; + else if (bidi_it->isolate_level > 0) + { + bidi_it->invalid_levels = 0; + while (!ISOLATE_STATUS (bidi_it, bidi_it->stack_idx)) + bidi_pop_embedding_level (bidi_it); + eassert (bidi_it->stack_idx > 0); + new_level = bidi_pop_embedding_level (bidi_it); + bidi_it->isolate_level--; + } + bidi_it->resolved_level = new_level; + /* Unicode 8.0 correction. */ + { + bidi_dir_t stack_override = OVERRIDE (bidi_it, bidi_it->stack_idx); + if (stack_override == L2R) + bidi_it->type_after_wn = STRONG_L; + else if (stack_override == R2L) + bidi_it->type_after_wn = STRONG_R; + else + bidi_it->type_after_wn = type; + } + break; + case PDF: /* X7 */ + bidi_it->type_after_wn = type; + bidi_check_type (bidi_it->type_after_wn); + type = WEAK_BN; /* X9/Retaining */ + break; + default: + /* Nothing. */ + break; } bidi_it->type = type; bidi_check_type (bidi_it->type); - return new_level; -} - -/* Given an iterator state in BIDI_IT, advance one character position - in the buffer/string to the next character (in the logical order), - resolve any explicit embeddings and directional overrides, and - return the embedding level of the character after resolving - explicit directives and ignoring empty embeddings. */ -static int -bidi_resolve_explicit (struct bidi_it *bidi_it) -{ - int prev_level = bidi_it->level_stack[bidi_it->stack_idx].level; - int new_level = bidi_resolve_explicit_1 (bidi_it); - ptrdiff_t eob = bidi_it->string.s ? bidi_it->string.schars : ZV; - const unsigned char *s - = (STRINGP (bidi_it->string.lstring) - ? SDATA (bidi_it->string.lstring) - : bidi_it->string.s); - - if (prev_level < new_level - && bidi_it->type == WEAK_BN - && bidi_it->ignore_bn_limit == -1 /* only if not already known */ - && bidi_it->charpos < eob /* not already at EOB */ - && bidi_explicit_dir_char (bidi_char_at_pos (bidi_it->bytepos - + bidi_it->ch_len, s, - bidi_it->string.unibyte))) - { - /* Avoid pushing and popping embedding levels if the level run - is empty, as this breaks level runs where it shouldn't. - UAX#9 removes all the explicit embedding and override codes, - so empty embeddings disappear without a trace. We need to - behave as if we did the same. */ - struct bidi_it saved_it; - int level = prev_level; - - bidi_copy_it (&saved_it, bidi_it); - - while (bidi_explicit_dir_char (bidi_char_at_pos (bidi_it->bytepos - + bidi_it->ch_len, s, - bidi_it->string.unibyte))) - { - /* This advances to the next character, skipping any - characters covered by display strings. */ - level = bidi_resolve_explicit_1 (bidi_it); - /* If string.lstring was relocated inside bidi_resolve_explicit_1, - a pointer to its data is no longer valid. */ - if (STRINGP (bidi_it->string.lstring)) - s = SDATA (bidi_it->string.lstring); - } - - if (bidi_it->nchars <= 0) - emacs_abort (); - if (level == prev_level) /* empty embedding */ - saved_it.ignore_bn_limit = bidi_it->charpos + bidi_it->nchars; - else /* this embedding is non-empty */ - saved_it.ignore_bn_limit = -2; - - bidi_copy_it (bidi_it, &saved_it); - if (bidi_it->ignore_bn_limit > -1) - { - /* We pushed a level, but we shouldn't have. Undo that. */ - if (!bidi_it->invalid_rl_levels) - { - new_level = bidi_pop_embedding_level (bidi_it); - bidi_it->invalid_rl_levels = -1; - if (bidi_it->invalid_levels) - bidi_it->invalid_levels--; - } - if (!bidi_it->invalid_levels) - new_level = bidi_pop_embedding_level (bidi_it); - else - { - bidi_it->invalid_levels--; - bidi_it->invalid_rl_levels--; - } - } - } - if (bidi_it->type == NEUTRAL_B) /* X8 */ { bidi_set_paragraph_end (bidi_it); /* This is needed by bidi_resolve_weak below, and in L1. */ - bidi_it->type_after_w1 = bidi_it->type; - bidi_check_type (bidi_it->type_after_w1); + bidi_it->type_after_wn = bidi_it->type; } - return new_level; + eassert (bidi_it->resolved_level >= 0); + return bidi_it->resolved_level; } /* Advance in the buffer/string, resolve weak types and return the @@ -1890,28 +2172,27 @@ bidi_resolve_weak (struct bidi_it *bidi_it) ? bidi_it->string.schars : ZV); type = bidi_it->type; - override = bidi_it->level_stack[bidi_it->stack_idx].override; + override = OVERRIDE (bidi_it, bidi_it->stack_idx); - if (type == UNKNOWN_BT - || type == LRE - || type == LRO - || type == RLE - || type == RLO - || type == PDF) - emacs_abort (); + eassert (!(type == UNKNOWN_BT + || type == LRE + || type == LRO + || type == RLE + || type == RLO + || type == PDF)); - if (new_level != prev_level - || bidi_it->type == NEUTRAL_B) + eassert (prev_level >= 0); + if (bidi_it->type == NEUTRAL_B) { - /* We've got a new embedding level run, compute the directional - type of sor and initialize per-run variables (UAX#9, clause + /* We've got a new isolating sequence, compute the directional + type of sos and initialize per-run variables (UAX#9, clause X10). */ - bidi_set_sor_type (bidi_it, prev_level, new_level); + bidi_set_sos_type (bidi_it, prev_level, new_level); } - else if (type == NEUTRAL_S || type == NEUTRAL_WS - || type == WEAK_BN || type == STRONG_AL) - bidi_it->type_after_w1 = type; /* needed in L1 */ - bidi_check_type (bidi_it->type_after_w1); + if (type == NEUTRAL_S || type == NEUTRAL_WS + || type == WEAK_BN || type == STRONG_AL) + bidi_it->type_after_wn = type; /* needed in L1 */ + bidi_check_type (bidi_it->type_after_wn); /* Level and directional override status are already recorded in bidi_it, and do not need any change; see X6. */ @@ -1928,31 +2209,49 @@ bidi_resolve_weak (struct bidi_it *bidi_it) because then either the type of this NSM would have been also overridden, or the previous character is outside the current level run, and thus not relevant to this NSM. - This is why NSM gets the type_after_w1 of the previous + This is why NSM gets the type_after_wn of the previous character. */ - if (bidi_it->prev.type_after_w1 != UNKNOWN_BT - /* if type_after_w1 is NEUTRAL_B, this NSM is at sor */ - && bidi_it->prev.type_after_w1 != NEUTRAL_B) - type = bidi_it->prev.type_after_w1; - else if (bidi_it->sor == R2L) + /* bidi_set_sos_type sets type_after_wn to UNKNOWN_BT. */ + if (bidi_it->prev.type != UNKNOWN_BT + /* If type_after_wn is NEUTRAL_B, this NSM is at sos. */ + && bidi_it->prev.type != NEUTRAL_B) + { + if (bidi_isolate_fmt_char (bidi_it->prev.type)) + { + /* From W1: "Note that in an isolating run sequence, + an isolate initiator followed by an NSM or any + type other than PDI must be an overflow isolate + initiator." */ + eassert (bidi_it->invalid_isolates > 0); + type = NEUTRAL_ON; + } + else + { + /* This includes the Unicode 8.0 correction for N0, + due to how we set prev.type in bidi_resolve_explicit, + which see. */ + type = bidi_it->prev.type; + } + } + else if (bidi_it->sos == R2L) type = STRONG_R; - else if (bidi_it->sor == L2R) + else if (bidi_it->sos == L2R) type = STRONG_L; else /* shouldn't happen! */ emacs_abort (); } if (type == WEAK_EN /* W2 */ - && bidi_it->last_strong.type_after_w1 == STRONG_AL) + && bidi_it->last_strong.type == STRONG_AL) type = WEAK_AN; else if (type == STRONG_AL) /* W3 */ type = STRONG_R; else if ((type == WEAK_ES /* W4 */ - && bidi_it->prev.type_after_w1 == WEAK_EN + && bidi_it->prev.type == WEAK_EN && bidi_it->prev.orig_type == WEAK_EN) || (type == WEAK_CS - && ((bidi_it->prev.type_after_w1 == WEAK_EN + && ((bidi_it->prev.type == WEAK_EN && bidi_it->prev.orig_type == WEAK_EN) - || bidi_it->prev.type_after_w1 == WEAK_AN))) + || bidi_it->prev.type == WEAK_AN))) { const unsigned char *s = (STRINGP (bidi_it->string.lstring) @@ -1971,8 +2270,7 @@ bidi_resolve_weak (struct bidi_it *bidi_it) bidi_copy_it (&saved_it, bidi_it); while (bidi_resolve_explicit (bidi_it) == new_level && bidi_it->type == WEAK_BN) - ; - type_of_next = bidi_it->type; + type_of_next = bidi_it->type; bidi_copy_it (bidi_it, &saved_it); } @@ -1982,11 +2280,11 @@ bidi_resolve_weak (struct bidi_it *bidi_it) should not be changed into EN. */ if (type == WEAK_ES && type_of_next == WEAK_EN - && bidi_it->last_strong.type_after_w1 != STRONG_AL) + && bidi_it->last_strong.type != STRONG_AL) type = WEAK_EN; else if (type == WEAK_CS) { - if (bidi_it->prev.type_after_w1 == WEAK_AN + if (bidi_it->prev.type == WEAK_AN && (type_of_next == WEAK_AN /* If the next character is EN, but the last strong-type character is AL, EN will be later @@ -1994,18 +2292,18 @@ bidi_resolve_weak (struct bidi_it *bidi_it) So in that case, this ES should not be changed into EN. */ || (type_of_next == WEAK_EN - && bidi_it->last_strong.type_after_w1 == STRONG_AL))) + && bidi_it->last_strong.type == STRONG_AL))) type = WEAK_AN; - else if (bidi_it->prev.type_after_w1 == WEAK_EN + else if (bidi_it->prev.type == WEAK_EN && type_of_next == WEAK_EN - && bidi_it->last_strong.type_after_w1 != STRONG_AL) + && bidi_it->last_strong.type != STRONG_AL) type = WEAK_EN; } } else if (type == WEAK_ET /* W5: ET with EN before or after it */ || type == WEAK_BN) /* W5/Retaining */ { - if (bidi_it->prev.type_after_w1 == WEAK_EN) /* ET/BN w/EN before it */ + if (bidi_it->prev.type == WEAK_EN) /* ET/BN w/EN before it */ type = WEAK_EN; else if (bidi_it->next_en_pos > bidi_it->charpos && bidi_it->next_en_type != WEAK_BN) @@ -2015,6 +2313,12 @@ bidi_resolve_weak (struct bidi_it *bidi_it) } else if (bidi_it->next_en_pos >=0) { + /* We overstepped the last known position for ET + resolution but there could be other such characters + in this paragraph (when we are sure there are no more + such positions, we set next_en_pos to a negative + value). Try to find the next position for ET + resolution. */ ptrdiff_t en_pos = bidi_it->charpos + bidi_it->nchars; const unsigned char *s = (STRINGP (bidi_it->string.lstring) ? SDATA (bidi_it->string.lstring) @@ -2037,9 +2341,20 @@ bidi_resolve_weak (struct bidi_it *bidi_it) while (bidi_resolve_explicit (bidi_it) == new_level && (bidi_it->type == WEAK_BN || bidi_it->type == WEAK_ET)) - ; - type_of_next = bidi_it->type; - en_pos = bidi_it->charpos; + type_of_next = bidi_it->type; + if (type == WEAK_BN + && bidi_it->charpos == saved_it.charpos + saved_it.nchars) + { + /* If we entered the above loop with a BN that + changes the level, the type of next + character, which is in a different level, is + not relevant to resolving this series of ET + and BN. */ + en_pos = saved_it.charpos; + type_of_next = type; + } + else + en_pos = bidi_it->charpos; bidi_copy_it (bidi_it, &saved_it); } /* Remember this position, to speed up processing of the @@ -2049,7 +2364,7 @@ bidi_resolve_weak (struct bidi_it *bidi_it) { /* If the last strong character is AL, the EN we've found will become AN when we get to it (W2). */ - if (bidi_it->last_strong.type_after_w1 == STRONG_AL) + if (bidi_it->last_strong.type == STRONG_AL) type_of_next = WEAK_AN; else if (type == WEAK_BN) type = NEUTRAL_ON; /* W6/Retaining */ @@ -2069,23 +2384,23 @@ bidi_resolve_weak (struct bidi_it *bidi_it) if (type == WEAK_ES || type == WEAK_ET || type == WEAK_CS /* W6 */ || (type == WEAK_BN - && (bidi_it->prev.type_after_w1 == WEAK_CS /* W6/Retaining */ - || bidi_it->prev.type_after_w1 == WEAK_ES - || bidi_it->prev.type_after_w1 == WEAK_ET))) + && (bidi_it->prev.type == WEAK_CS /* W6/Retaining */ + || bidi_it->prev.type == WEAK_ES + || bidi_it->prev.type == WEAK_ET))) type = NEUTRAL_ON; /* Store the type we've got so far, before we clobber it with strong types in W7 and while resolving neutral types. But leave alone the original types that were recorded above, because we will need them for the L1 clause. */ - if (bidi_it->type_after_w1 == UNKNOWN_BT) - bidi_it->type_after_w1 = type; - bidi_check_type (bidi_it->type_after_w1); + if (bidi_it->type_after_wn == UNKNOWN_BT) + bidi_it->type_after_wn = type; + bidi_check_type (bidi_it->type_after_wn); if (type == WEAK_EN) /* W7 */ { - if ((bidi_it->last_strong.type_after_w1 == STRONG_L) - || (bidi_it->last_strong.type == UNKNOWN_BT && bidi_it->sor == L2R)) + if ((bidi_it->last_strong.type == STRONG_L) + || (bidi_it->last_strong.type == UNKNOWN_BT && bidi_it->sos == L2R)) type = STRONG_L; } @@ -2099,7 +2414,8 @@ bidi_resolve_weak (struct bidi_it *bidi_it) static bidi_type_t bidi_resolve_neutral_1 (bidi_type_t prev_type, bidi_type_t next_type, int lev) { - /* N1: European and Arabic numbers are treated as though they were R. */ + /* N1: "European and Arabic numbers act as if they were R in terms + of their influence on NIs." */ if (next_type == WEAK_EN || next_type == WEAK_AN) next_type = STRONG_R; if (prev_type == WEAK_EN || prev_type == WEAK_AN) @@ -2113,33 +2429,536 @@ bidi_resolve_neutral_1 (bidi_type_t prev_type, bidi_type_t next_type, int lev) return STRONG_R; } +#define FLAG_EMBEDDING_INSIDE 1 +#define FLAG_OPPOSITE_INSIDE 2 + +/* A data type used in the stack maintained by + bidi_find_bracket_pairs below. */ +typedef struct bpa_stack_entry { + int close_bracket_char; + int open_bracket_idx; +#ifdef ENABLE_CHECKING + ptrdiff_t open_bracket_pos; +#endif + unsigned flags : 2; +} bpa_stack_entry; + +/* With MAX_ALLOCA of 16KB, this should allow at least 1K slots in the + BPA stack, which should be more than enough for actual bidi text. */ +#define MAX_BPA_STACK ((int)max (MAX_ALLOCA / sizeof (bpa_stack_entry), 1)) + +/* UAX#9 says to match opening brackets with the matching closing + brackets or their canonical equivalents. As of Unicode 7.0, there + are only 2 bracket characters that have canonical equivalence + decompositions: u+2329 and u+232A. So instead of accessing the + table in uni-decomposition.el, we just handle these 2 characters + with this simple macro. Note that ASCII characters don't have + canonical equivalents by definition. */ + +/* To find all the characters that need to be processed by + CANONICAL_EQU, first find all the characters which have + decompositions in UnicodeData.txt, with this Awk script: + + awk -F ";" " {if ($6 != \"\") print $1, $6}" UnicodeData.txt + + Then produce a list of all the bracket characters in BidiBrackets.txt: + + awk -F "[ ;]" " {if ($1 != \"#\" && $1 != \"\") print $1}" BidiBrackets.txt + + And finally, cross-reference these two: + + fgrep -w -f brackets.txt decompositions.txt + + where "decompositions.txt" was produced by the 1st script, and + "brackets.txt" by the 2nd script. In the output of fgrep, look + only for decompositions that don't begin with some compatibility + formatting tag, such as "". Only decompositions that + consist solely of character codepoints are relevant to bidi + brackets processing. */ + +#define CANONICAL_EQU(c) \ + ( ASCII_CHAR_P (c) ? c \ + : (c) == 0x2329 ? 0x3008 \ + : (c) == 0x232a ? 0x3009 \ + : c ) + +#ifdef ENABLE_CHECKING +# define STORE_BRACKET_CHARPOS \ + bpa_stack[bpa_sp].open_bracket_pos = bidi_it->charpos +#else +# define STORE_BRACKET_CHARPOS /* nothing */ +#endif + +#define PUSH_BPA_STACK \ + do { \ + int ch; \ + if (bpa_sp < MAX_BPA_STACK - 1) \ + { \ + bpa_sp++; \ + ch = CANONICAL_EQU (bidi_it->ch); \ + bpa_stack[bpa_sp].close_bracket_char = bidi_mirror_char (ch); \ + bpa_stack[bpa_sp].open_bracket_idx = bidi_cache_last_idx; \ + bpa_stack[bpa_sp].flags = 0; \ + STORE_BRACKET_CHARPOS; \ + } \ + } while (0) + + +/* This function implements BPA, the Bidi Parenthesis Algorithm, + described in BD16 and N0 of UAX#9. It finds all the bracket pairs + in the current isolating sequence, and records the enclosed type + and the position of the matching bracket in the cache. It returns + non-zero if called with the iterator on the opening bracket which + has a matching closing bracket in the current isolating sequence, + zero otherwise. */ +static bool +bidi_find_bracket_pairs (struct bidi_it *bidi_it) +{ + bidi_bracket_type_t btype; + bidi_type_t type = bidi_it->type; + bool retval = false; + + /* When scanning backwards, we don't expect any unresolved bidi + bracket characters. */ + if (bidi_it->scan_dir != 1) + emacs_abort (); + + btype = bidi_paired_bracket_type (bidi_it->ch); + if (btype == BIDI_BRACKET_OPEN) + { + bpa_stack_entry bpa_stack[MAX_BPA_STACK]; + int bpa_sp = -1; + struct bidi_it saved_it; + int base_level = bidi_it->level_stack[0].level; + int embedding_level = bidi_it->level_stack[bidi_it->stack_idx].level; + int maxlevel = embedding_level; + bidi_type_t embedding_type = (embedding_level & 1) ? STRONG_R : STRONG_L; + struct bidi_it tem_it; + bool l2r_seen = false, r2l_seen = false; + ptrdiff_t pairing_pos; + int idx_at_entry = bidi_cache_idx; + + eassert (MAX_BPA_STACK >= 100); + bidi_copy_it (&saved_it, bidi_it); + /* bidi_cache_iterator_state refuses to cache on backward scans, + and bidi_cache_fetch_state doesn't bring scan_dir from the + cache, so we must initialize this explicitly. */ + tem_it.scan_dir = 1; + + while (1) + { + int old_sidx, new_sidx; + int current_level = bidi_it->level_stack[bidi_it->stack_idx].level; + + if (maxlevel < current_level) + maxlevel = current_level; + /* Mark every opening bracket character we've traversed by + putting its own position into bracket_pairing_pos. This + is examined in bidi_resolve_brackets to distinguish + brackets that were already resolved to stay NEUTRAL_ON, + and those that were not yet processed by this function + (because they were skipped when we skip higher embedding + levels below). */ + if (btype == BIDI_BRACKET_OPEN && bidi_it->bracket_pairing_pos == -1) + bidi_it->bracket_pairing_pos = bidi_it->charpos; + if (!bidi_cache_iterator_state (bidi_it, type == NEUTRAL_B, 0)) + { + /* No more space in cache -- give up and let the opening + bracket that started this be processed as a + NEUTRAL_ON. */ + bidi_cache_reset_to (idx_at_entry - bidi_cache_start); + bidi_copy_it (bidi_it, &saved_it); + goto give_up; + } + if (btype == BIDI_BRACKET_OPEN) + PUSH_BPA_STACK; + else if (btype == BIDI_BRACKET_CLOSE) + { + int sp = bpa_sp; + int curchar = CANONICAL_EQU (bidi_it->ch); + + eassert (sp >= 0); + while (sp >= 0 && bpa_stack[sp].close_bracket_char != curchar) + sp--; + if (sp >= 0) + { + /* Update and cache the corresponding opening bracket. */ + bidi_cache_fetch_state (bpa_stack[sp].open_bracket_idx, + &tem_it); +#ifdef ENABLE_CHECKING + eassert (bpa_stack[sp].open_bracket_pos == tem_it.charpos); +#endif + /* Determine the enclosed type for this bracket + pair's type resolution according to N0. */ + if (bpa_stack[sp].flags & FLAG_EMBEDDING_INSIDE) + tem_it.bracket_enclosed_type = embedding_type; /* N0b */ + else if (bpa_stack[sp].flags & FLAG_OPPOSITE_INSIDE) + tem_it.bracket_enclosed_type /* N0c */ + = (embedding_type == STRONG_L ? STRONG_R : STRONG_L); + else /* N0d */ + tem_it.bracket_enclosed_type = UNKNOWN_BT; + + /* Record the position of the matching closing + bracket, and update the cache. */ + tem_it.bracket_pairing_pos = bidi_it->charpos; + bidi_cache_iterator_state (&tem_it, 0, 1); + + /* Pop the BPA stack. */ + bpa_sp = sp - 1; + } + if (bpa_sp < 0) + { + retval = true; + break; + } + } + else if (bidi_get_category (bidi_it->type_after_wn) != NEUTRAL) + { + unsigned flag = 0; + int sp; + + /* Whenever we see a strong type, update the flags of + all the slots on the stack. */ + switch (bidi_it->type) + { + case STRONG_L: + flag = ((embedding_level & 1) == 0 + ? FLAG_EMBEDDING_INSIDE + : FLAG_OPPOSITE_INSIDE); + l2r_seen = true; + break; + case STRONG_R: + case WEAK_EN: + case WEAK_AN: + flag = ((embedding_level & 1) == 1 + ? FLAG_EMBEDDING_INSIDE + : FLAG_OPPOSITE_INSIDE); + r2l_seen = true; + break; + default: + break; + } + if (flag) + { + for (sp = bpa_sp; sp >= 0; sp--) + bpa_stack[sp].flags |= flag; + } + } + old_sidx = bidi_it->stack_idx; + type = bidi_resolve_weak (bidi_it); + /* Skip level runs excluded from this isolating run sequence. */ + new_sidx = bidi_it->stack_idx; + if (bidi_it->level_stack[new_sidx].level > current_level + && (ISOLATE_STATUS (bidi_it, new_sidx) + || (new_sidx > old_sidx + 1 + && ISOLATE_STATUS (bidi_it, new_sidx - 1)))) + { + while (bidi_it->level_stack[bidi_it->stack_idx].level + > current_level) + { + if (maxlevel < bidi_it->level_stack[bidi_it->stack_idx].level) + maxlevel = bidi_it->level_stack[bidi_it->stack_idx].level; + if (!bidi_cache_iterator_state (bidi_it, + type == NEUTRAL_B, 0)) + { + /* No more space in cache -- give up and let the + opening bracket that started this be + processed as any other NEUTRAL_ON. */ + bidi_cache_reset_to (idx_at_entry - bidi_cache_start); + bidi_copy_it (bidi_it, &saved_it); + goto give_up; + } + type = bidi_resolve_weak (bidi_it); + } + } + if (type == NEUTRAL_B + || (bidi_it->level_stack[bidi_it->stack_idx].level + != current_level)) + { + /* We've marched all the way to the end of this + isolating run sequence, and didn't find matching + closing brackets for some opening brackets. Leave + their type unchanged. */ + pairing_pos = bidi_it->charpos; + break; + } + if (bidi_it->type_after_wn == NEUTRAL_ON) /* Unicode 8.0 correction */ + btype = bidi_paired_bracket_type (bidi_it->ch); + else + btype = BIDI_BRACKET_NONE; + } + + /* Restore bidi_it from the cache, which should have the bracket + resolution members set as determined by the above loop. */ + type = bidi_cache_find (saved_it.charpos, 0, bidi_it); + eassert (type == NEUTRAL_ON); + + /* The following is an optimization for bracketed text that has + only one level which is equal to the paragraph's base + embedding level. That is, only L2R and weak/neutral + characters in a L2R paragraph, or only R2L and weak/neutral + characters in a R2L paragraph. Such brackets can be resolved + by bidi_resolve_neutral, which has a further shortcut for + this case. So we pretend we did not resolve the brackets in + this case, set up next_for_neutral for the entire bracketed + text, and reset the cache to the character before the opening + bracket. The upshot is to allow bidi_move_to_visually_next + reset the cache when it returns this opening bracket, thus + cutting significantly on the size of the cache, which is + important with long lines, especially if word-wrap is non-nil + (which requires the display engine to copy the cache back and + forth many times). */ + if (maxlevel == base_level + && ((base_level == 0 && !r2l_seen) + || (base_level == 1 && !l2r_seen))) + { + ptrdiff_t eob + = ((bidi_it->string.s || STRINGP (bidi_it->string.lstring)) + ? bidi_it->string.schars : ZV); + + if (retval) + pairing_pos = bidi_it->bracket_pairing_pos; + + /* This special value (which cannot possibly happen when + brackets are resolved, since there's no character at ZV) + will be noticed by bidi_resolve_explicit, and will be + copied to the following iterator states, instead of being + reset to -1. */ + bidi_it->bracket_pairing_pos = eob; + /* This type value will be used for resolving the outermost + closing bracket in bidi_resolve_brackets. */ + bidi_it->bracket_enclosed_type = embedding_type; + /* bidi_cache_last_idx is set to the index of the current + state, because we just called bidi_cache_find above. + That state describes the outermost opening bracket, the + one with which we entered this function. Force the cache + to "forget" all the cached states starting from that state. */ + bidi_cache_reset_to (bidi_cache_last_idx - bidi_cache_start); + /* Set up the next_for_neutral member, to help + bidi_resolve_neutral. */ + bidi_it->next_for_neutral.type = embedding_type; + bidi_it->next_for_neutral.charpos = pairing_pos; + /* Pretend we didn't resolve this bracket. */ + retval = false; + } + } + + give_up: + return retval; +} + +static void +bidi_record_type_for_neutral (struct bidi_saved_info *info, int level, + bool nextp) +{ + int idx; + + for (idx = bidi_cache_last_idx + 1; idx < bidi_cache_idx; idx++) + { + int lev = bidi_cache[idx].level_stack[bidi_cache[idx].stack_idx].level; + + if (lev <= level) + { + eassert (lev == level); + if (nextp) + bidi_cache[idx].next_for_neutral = *info; + else + bidi_cache[idx].prev_for_neutral = *info; + break; + } + } +} + +static bidi_type_t +bidi_resolve_brackets (struct bidi_it *bidi_it) +{ + int prev_level = bidi_it->level_stack[bidi_it->stack_idx].level; + bool resolve_bracket = false; + bidi_type_t type = UNKNOWN_BT; + int ch; + struct bidi_saved_info prev_for_neutral, next_for_neutral; + ptrdiff_t eob + = ((bidi_it->string.s || STRINGP (bidi_it->string.lstring)) + ? bidi_it->string.schars : ZV); + + /* Record the prev_for_neutral type either from the previous + character, if it was a strong or AN/EN, or from the + prev_for_neutral information recorded previously. */ + if (bidi_it->type == STRONG_L || bidi_it->type == STRONG_R + || bidi_it->type == WEAK_AN || bidi_it->type == WEAK_EN) + bidi_remember_char (&prev_for_neutral, bidi_it, 1); + else + prev_for_neutral = bidi_it->prev_for_neutral; + /* Record the next_for_neutral type information. */ + if (bidi_it->next_for_neutral.charpos > bidi_it->charpos) + next_for_neutral = bidi_it->next_for_neutral; + else + next_for_neutral.charpos = -1; + if (!bidi_it->first_elt) + { + type = bidi_cache_find (bidi_it->charpos + bidi_it->nchars, 0, bidi_it); + ch = bidi_it->ch; + } + if (type == UNKNOWN_BT) + { + type = bidi_resolve_weak (bidi_it); + if (type == NEUTRAL_ON) + { + /* bracket_pairing_pos == eob means this bracket does not + need to be resolved as a bracket, but as a neutral, see + the optimization trick we play near the end of + bidi_find_bracket_pairs. */ + if (bidi_it->bracket_pairing_pos == eob) + { + /* If this is the outermost closing bracket of a run of + characters in which we decided to resolve brackets as + neutrals, use the embedding level's type, recorded in + bracket_enclosed_type, to resolve the bracket. */ + if (bidi_it->next_for_neutral.charpos == bidi_it->charpos + && bidi_paired_bracket_type (bidi_it->ch) == BIDI_BRACKET_CLOSE) + type = bidi_it->bracket_enclosed_type; + } + else if (bidi_find_bracket_pairs (bidi_it)) + resolve_bracket = true; + } + } + else if (bidi_it->bracket_pairing_pos != eob) + { + eassert (bidi_it->resolved_level == -1); + /* If the cached state shows an increase of embedding level due + to an isolate initiator, we need to update the 1st cached + state of the next run of the current isolating sequence with + the prev_for_neutral and next_for_neutral information, so + that it will be picked up when we advance to that next run. */ + if (bidi_it->level_stack[bidi_it->stack_idx].level > prev_level + && ISOLATE_STATUS (bidi_it, bidi_it->stack_idx)) + { + bidi_record_type_for_neutral (&prev_for_neutral, prev_level, 0); + bidi_record_type_for_neutral (&next_for_neutral, prev_level, 1); + } + if (type == NEUTRAL_ON + && bidi_paired_bracket_type (ch) == BIDI_BRACKET_OPEN) + { + if (bidi_it->bracket_pairing_pos > bidi_it->charpos) + { + /* A cached opening bracket that wasn't completely + resolved yet. */ + resolve_bracket = true; + } + else if (bidi_it->bracket_pairing_pos == -1) + { + /* Higher levels were not BPA-resolved yet, even if + cached by bidi_find_bracket_pairs. Force application + of BPA to the new level now. */ + if (bidi_find_bracket_pairs (bidi_it)) + resolve_bracket = true; + } + } + /* Keep track of the prev_for_neutral and next_for_neutral + types, needed for resolving brackets below and for resolving + neutrals in bidi_resolve_neutral. */ + if (bidi_it->level_stack[bidi_it->stack_idx].level == prev_level) + { + bidi_it->prev_for_neutral = prev_for_neutral; + if (next_for_neutral.charpos > 0) + bidi_it->next_for_neutral = next_for_neutral; + } + } + + /* If needed, resolve the bracket type according to N0. */ + if (resolve_bracket) + { + int embedding_level = bidi_it->level_stack[bidi_it->stack_idx].level; + bidi_type_t embedding_type = (embedding_level & 1) ? STRONG_R : STRONG_L; + + eassert (bidi_it->prev_for_neutral.type != UNKNOWN_BT); + eassert (bidi_it->bracket_pairing_pos > bidi_it->charpos); + if (bidi_it->bracket_enclosed_type == embedding_type) /* N0b */ + type = embedding_type; + else + { + switch (bidi_it->prev_for_neutral.type) + { + case STRONG_R: + case WEAK_EN: + case WEAK_AN: + type = + (bidi_it->bracket_enclosed_type == STRONG_R) /* N0c */ + ? STRONG_R /* N0c1 */ + : embedding_type; /* N0c2 */ + break; + case STRONG_L: + type = + (bidi_it->bracket_enclosed_type == STRONG_L) /* N0c */ + ? STRONG_L /* N0c1 */ + : embedding_type; /* N0c2 */ + break; + default: + /* N0d: Do not set the type for that bracket pair. */ + break; + } + } + eassert (type == STRONG_L || type == STRONG_R || type == NEUTRAL_ON); + + /* Update the type of the paired closing bracket to the same + type as for the resolved opening bracket. */ + if (type != NEUTRAL_ON) + { + ptrdiff_t idx = bidi_cache_search (bidi_it->bracket_pairing_pos, + -1, 1); + + if (idx < bidi_cache_start) + emacs_abort (); + bidi_cache[idx].type = type; + } + } + + return type; +} + static bidi_type_t bidi_resolve_neutral (struct bidi_it *bidi_it) { - int prev_level = bidi_it->level_stack[bidi_it->stack_idx].level; - bidi_type_t type = bidi_resolve_weak (bidi_it); - int current_level = bidi_it->level_stack[bidi_it->stack_idx].level; + bidi_type_t type = bidi_resolve_brackets (bidi_it); + int current_level; + bool is_neutral; - if (!(type == STRONG_R - || type == STRONG_L - || type == WEAK_BN - || type == WEAK_EN - || type == WEAK_AN - || type == NEUTRAL_B - || type == NEUTRAL_S - || type == NEUTRAL_WS - || type == NEUTRAL_ON)) - emacs_abort (); + eassert (type == STRONG_R + || type == STRONG_L + || type == WEAK_BN + || type == WEAK_EN + || type == WEAK_AN + || type == NEUTRAL_B + || type == NEUTRAL_S + || type == NEUTRAL_WS + || type == NEUTRAL_ON + || type == LRI + || type == RLI + || type == PDI); + + current_level = bidi_it->level_stack[bidi_it->stack_idx].level; + eassert (current_level >= 0); + is_neutral = bidi_get_category (type) == NEUTRAL; if ((type != NEUTRAL_B /* Don't risk entering the long loop below if we are already at paragraph end. */ - && bidi_get_category (type) == NEUTRAL) - || (type == WEAK_BN && prev_level == current_level)) + && (is_neutral || bidi_isolate_fmt_char (type))) + /* N1-N2/Retaining */ + || (type == WEAK_BN && bidi_explicit_dir_char (bidi_it->ch))) { if (bidi_it->next_for_neutral.type != UNKNOWN_BT) - type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, - bidi_it->next_for_neutral.type, - current_level); + { + /* Make sure the data for resolving neutrals we are + about to use is valid. */ + eassert (bidi_it->next_for_neutral.charpos > bidi_it->charpos + /* PDI defines an eos, so it's OK for it to + serve as its own next_for_neutral. */ + || (bidi_it->next_for_neutral.charpos == bidi_it->charpos + && bidi_it->type == PDI)); + type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, + bidi_it->next_for_neutral.type, + current_level); + } /* The next two "else if" clauses are shortcuts for the important special case when we have a long sequence of neutral or WEAK_BN characters, such as whitespace or nulls or @@ -2155,7 +2974,8 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) entering the expensive loop in the "else" clause. */ else if (current_level == 0 && bidi_it->prev_for_neutral.type == STRONG_L - && !bidi_explicit_dir_char (bidi_it->ch)) + && !bidi_explicit_dir_char (bidi_it->ch) + && !bidi_isolate_fmt_char (type)) type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, STRONG_L, current_level); else if (/* current level is 1 */ @@ -2167,7 +2987,8 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) && (bidi_it->prev_for_neutral.type == STRONG_R || bidi_it->prev_for_neutral.type == WEAK_EN || bidi_it->prev_for_neutral.type == WEAK_AN) - && !bidi_explicit_dir_char (bidi_it->ch)) + && !bidi_explicit_dir_char (bidi_it->ch) + && !bidi_isolate_fmt_char (type)) type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, STRONG_R, current_level); else @@ -2182,85 +3003,107 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) implementations! */ struct bidi_it saved_it; bidi_type_t next_type; - - if (bidi_it->scan_dir == -1) - emacs_abort (); + bool adjacent_to_neutrals = is_neutral; bidi_copy_it (&saved_it, bidi_it); /* Scan the text forward until we find the first non-neutral character, and then use that to resolve the neutral we are dealing with now. We also cache the scanned iterator states, to salvage some of the effort later. */ - bidi_cache_iterator_state (bidi_it, 0); do { - /* Record the info about the previous character, so that - it will be cached below with this state. */ - if (bidi_it->type_after_w1 != WEAK_BN /* W1/Retaining */ - && bidi_it->type != WEAK_BN) - bidi_remember_char (&bidi_it->prev, bidi_it); - type = bidi_resolve_weak (bidi_it); + int old_sidx, new_sidx; + /* Paragraph separators have their levels fully resolved at this point, so cache them as resolved. */ - bidi_cache_iterator_state (bidi_it, type == NEUTRAL_B); - /* FIXME: implement L1 here, by testing for a newline and - resetting the level for any sequence of whitespace - characters adjacent to it. */ + bidi_cache_iterator_state (bidi_it, type == NEUTRAL_B, 0); + old_sidx = bidi_it->stack_idx; + type = bidi_resolve_brackets (bidi_it); + /* Skip level runs excluded from this isolating run sequence. */ + new_sidx = bidi_it->stack_idx; + if (bidi_it->level_stack[new_sidx].level > current_level + && (ISOLATE_STATUS (bidi_it, new_sidx) + /* This is for when we have an isolate initiator + immediately followed by an embedding or + override initiator, in which case we get the + level stack pushed twice by the single call to + bidi_resolve_weak above. */ + || (new_sidx > old_sidx + 1 + && ISOLATE_STATUS (bidi_it, new_sidx - 1)))) + { + while (bidi_it->level_stack[bidi_it->stack_idx].level + > current_level) + { + bidi_cache_iterator_state (bidi_it, type == NEUTRAL_B, 0); + type = bidi_resolve_brackets (bidi_it); + } + } + if (!adjacent_to_neutrals + && (bidi_get_category (type) == NEUTRAL + || bidi_isolate_fmt_char (type))) + adjacent_to_neutrals = true; } while (!(type == NEUTRAL_B || (type != WEAK_BN - && bidi_get_category (type) != NEUTRAL) + && bidi_get_category (type) != NEUTRAL + && !bidi_isolate_fmt_char (type)) /* This is all per level run, so stop when we reach the end of this level run. */ || (bidi_it->level_stack[bidi_it->stack_idx].level != current_level))); - bidi_remember_char (&saved_it.next_for_neutral, bidi_it); + /* Record the character we stopped at. */ + bidi_remember_char (&saved_it.next_for_neutral, bidi_it, 1); - switch (type) + if ((bidi_it->level_stack[bidi_it->stack_idx].level != current_level) + || type == NEUTRAL_B) { - case STRONG_L: - case STRONG_R: - case STRONG_AL: - /* Actually, STRONG_AL cannot happen here, because - bidi_resolve_weak converts it to STRONG_R, per W3. */ - eassert (type != STRONG_AL); - next_type = type; - break; - case WEAK_EN: - case WEAK_AN: - /* N1: ``European and Arabic numbers are treated as - though they were R.'' */ - next_type = STRONG_R; - break; - case WEAK_BN: - case NEUTRAL_ON: /* W6/Retaining */ - if (!bidi_explicit_dir_char (bidi_it->ch)) - emacs_abort (); /* can't happen: BNs are skipped */ - /* FALLTHROUGH */ - case NEUTRAL_B: - /* Marched all the way to the end of this level run. - We need to use the eor type, whose information is - stored by bidi_set_sor_type in the prev_for_neutral - member. */ - if (saved_it.type != WEAK_BN - || bidi_get_category (bidi_it->prev.type_after_w1) == NEUTRAL) - next_type = bidi_it->prev_for_neutral.type; - else - { - /* This is a BN which does not adjoin neutrals. - Leave its type alone. */ - bidi_copy_it (bidi_it, &saved_it); - return bidi_it->type; - } - break; - default: - emacs_abort (); + /* Marched all the way to the end of this level run. We + need to use the eos type, whose information is stored + by bidi_set_sos_type in the prev_for_neutral + member. */ + if (adjacent_to_neutrals) + next_type = bidi_it->prev_for_neutral.type; + else + { + /* This is a BN which does not adjoin neutrals. + Leave its type alone. */ + bidi_copy_it (bidi_it, &saved_it); + return bidi_it->type; + } } + else + { + switch (type) + { + case STRONG_L: + case STRONG_R: + case STRONG_AL: + /* Actually, STRONG_AL cannot happen here, because + bidi_resolve_weak converts it to STRONG_R, per W3. */ + eassert (type != STRONG_AL); + next_type = type; + break; + case WEAK_EN: + case WEAK_AN: + /* N1: "European and Arabic numbers act as if they + were R in terms of their influence on NIs." */ + next_type = STRONG_R; + break; + default: + emacs_abort (); + break; + } + } + /* Resolve the type of all the NIs found during the above loop. */ type = bidi_resolve_neutral_1 (saved_it.prev_for_neutral.type, next_type, current_level); + /* Update next_for_neutral with the resolved type, so we + could use it for all the other NIs up to the place where + we exited the loop. */ saved_it.next_for_neutral.type = next_type; + bidi_check_type (type); + /* Update the character which caused us to enter the above loop. */ saved_it.type = type; bidi_check_type (next_type); - bidi_check_type (type); bidi_copy_it (bidi_it, &saved_it); } } @@ -2280,14 +3123,6 @@ bidi_type_of_next_char (struct bidi_it *bidi_it) if (bidi_it->scan_dir != 1) emacs_abort (); - /* Reset the limit until which to ignore BNs if we step out of the - area where we found only empty levels. */ - if ((bidi_it->ignore_bn_limit > -1 - && bidi_it->ignore_bn_limit <= bidi_it->charpos) - || (bidi_it->ignore_bn_limit == -2 - && !bidi_explicit_dir_char (bidi_it->ch))) - bidi_it->ignore_bn_limit = -1; - type = bidi_resolve_neutral (bidi_it); return type; @@ -2300,9 +3135,8 @@ bidi_type_of_next_char (struct bidi_it *bidi_it) static int bidi_level_of_next_char (struct bidi_it *bidi_it) { - bidi_type_t type; - int level, prev_level = -1; - struct bidi_saved_info next_for_neutral; + bidi_type_t type = UNKNOWN_BT; + int level; ptrdiff_t next_char_pos = -2; if (bidi_it->scan_dir == 1) @@ -2311,54 +3145,23 @@ bidi_level_of_next_char (struct bidi_it *bidi_it) = ((bidi_it->string.s || STRINGP (bidi_it->string.lstring)) ? bidi_it->string.schars : ZV); - /* There's no sense in trying to advance if we hit end of text. */ + /* There's no sense in trying to advance if we've already hit + the end of text. */ if (bidi_it->charpos >= eob) - return bidi_it->resolved_level; - - /* Record the info about the previous character. */ - if (bidi_it->type_after_w1 != WEAK_BN /* W1/Retaining */ - && bidi_it->type != WEAK_BN) - bidi_remember_char (&bidi_it->prev, bidi_it); - if (bidi_it->type_after_w1 == STRONG_R - || bidi_it->type_after_w1 == STRONG_L - || bidi_it->type_after_w1 == STRONG_AL) - bidi_remember_char (&bidi_it->last_strong, bidi_it); - /* FIXME: it sounds like we don't need both prev and - prev_for_neutral members, but I'm leaving them both for now. */ - if (bidi_it->type == STRONG_R || bidi_it->type == STRONG_L - || bidi_it->type == WEAK_EN || bidi_it->type == WEAK_AN) - bidi_remember_char (&bidi_it->prev_for_neutral, bidi_it); - - /* If we overstepped the characters used for resolving neutrals - and whitespace, invalidate their info in the iterator. */ - if (bidi_it->charpos >= bidi_it->next_for_neutral.charpos) - bidi_it->next_for_neutral.type = UNKNOWN_BT; - if (bidi_it->next_en_pos >= 0 - && bidi_it->charpos >= bidi_it->next_en_pos) { - bidi_it->next_en_pos = 0; - bidi_it->next_en_type = UNKNOWN_BT; + eassert (bidi_it->resolved_level >= 0); + return bidi_it->resolved_level; } - if (bidi_it->next_for_ws.type != UNKNOWN_BT - && bidi_it->charpos >= bidi_it->next_for_ws.charpos) - bidi_it->next_for_ws.type = UNKNOWN_BT; - - /* This must be taken before we fill the iterator with the info - about the next char. If we scan backwards, the iterator - state must be already cached, so there's no need to know the - embedding level of the previous character, since we will be - returning to our caller shortly. */ - prev_level = bidi_it->level_stack[bidi_it->stack_idx].level; } - next_for_neutral = bidi_it->next_for_neutral; - /* Perhaps the character we want is already cached. If it is, the - call to bidi_cache_find below will return a type other than - UNKNOWN_BT. */ + /* Perhaps the character we want is already cached s fully resolved. + If it is, the call to bidi_cache_find below will return a type + other than UNKNOWN_BT. */ if (bidi_cache_idx > bidi_cache_start && !bidi_it->first_elt) { int bob = ((bidi_it->string.s || STRINGP (bidi_it->string.lstring)) ? 0 : 1); + if (bidi_it->scan_dir > 0) { if (bidi_it->nchars <= 0) @@ -2372,29 +3175,15 @@ bidi_level_of_next_char (struct bidi_it *bidi_it) cached at the beginning of the iteration. */ next_char_pos = bidi_it->charpos - 1; if (next_char_pos >= bob - 1) - type = bidi_cache_find (next_char_pos, -1, bidi_it); - else - type = UNKNOWN_BT; + type = bidi_cache_find (next_char_pos, 1, bidi_it); + if (type != UNKNOWN_BT) + { + /* We asked the cache for fully resolved states. */ + eassert (bidi_it->resolved_level >= 0); + return bidi_it->resolved_level; + } } - else - type = UNKNOWN_BT; - if (type != UNKNOWN_BT) - { - /* Don't lose the information for resolving neutrals! The - cached states could have been cached before their - next_for_neutral member was computed. If we are on our way - forward, we can simply take the info from the previous - state. */ - if (bidi_it->scan_dir == 1 - && bidi_it->next_for_neutral.type == UNKNOWN_BT) - bidi_it->next_for_neutral = next_for_neutral; - /* If resolved_level is -1, it means this state was cached - before it was completely resolved, so we cannot return - it. */ - if (bidi_it->resolved_level != -1) - return bidi_it->resolved_level; - } if (bidi_it->scan_dir == -1) /* If we are going backwards, the iterator state is already cached from previous scans, and should be fully resolved. */ @@ -2404,36 +3193,27 @@ bidi_level_of_next_char (struct bidi_it *bidi_it) type = bidi_type_of_next_char (bidi_it); if (type == NEUTRAL_B) - return bidi_it->resolved_level; - - level = bidi_it->level_stack[bidi_it->stack_idx].level; - if ((bidi_get_category (type) == NEUTRAL /* && type != NEUTRAL_B */) - || (type == WEAK_BN && prev_level == level)) { - if (bidi_it->next_for_neutral.type == UNKNOWN_BT) - emacs_abort (); - - /* If the cached state shows a neutral character, it was not - resolved by bidi_resolve_neutral, so do it now. */ - type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, - bidi_it->next_for_neutral.type, - level); + eassert (bidi_it->resolved_level >= 0); + return bidi_it->resolved_level; } - if (!(type == STRONG_R - || type == STRONG_L - || type == WEAK_BN - || type == WEAK_EN - || type == WEAK_AN)) - emacs_abort (); + level = bidi_it->level_stack[bidi_it->stack_idx].level; + + eassert ((type == STRONG_R + || type == STRONG_L + || type == WEAK_BN + || type == WEAK_EN + || type == WEAK_AN)); bidi_it->type = type; bidi_check_type (bidi_it->type); /* For L1 below, we need to know, for each WS character, whether it belongs to a sequence of WS characters preceding a newline or a TAB or a paragraph separator. */ - if (bidi_it->orig_type == NEUTRAL_WS - && bidi_it->next_for_ws.type == UNKNOWN_BT) + if ((bidi_it->orig_type == NEUTRAL_WS + || bidi_isolate_fmt_char (bidi_it->orig_type)) + && bidi_it->next_for_ws.charpos < bidi_it->charpos) { int ch; ptrdiff_t clen = bidi_it->ch_len; @@ -2451,54 +3231,20 @@ bidi_level_of_next_char (struct bidi_it *bidi_it) do { ch = bidi_fetch_char (cpos += nc, bpos += clen, &disp_pos, &dpp, &bs, bidi_it->w, fwp, &clen, &nc); - if (ch == '\n' || ch == BIDI_EOB) - chtype = NEUTRAL_B; - else - chtype = bidi_get_type (ch, NEUTRAL_DIR); + chtype = bidi_get_type (ch, NEUTRAL_DIR); } while (chtype == NEUTRAL_WS || chtype == WEAK_BN + || bidi_isolate_fmt_char (chtype) || bidi_explicit_dir_char (ch)); /* L1/Retaining */ bidi_it->next_for_ws.type = chtype; bidi_check_type (bidi_it->next_for_ws.type); bidi_it->next_for_ws.charpos = cpos; - bidi_it->next_for_ws.bytepos = bpos; } - /* Resolve implicit levels, with a twist: PDFs get the embedding - level of the embedding they terminate. See below for the - reason. */ - if (bidi_it->orig_type == PDF - /* Don't do this if this formatting code didn't change the - embedding level due to invalid or empty embeddings. */ - && prev_level != level) - { - /* Don't look in UAX#9 for the reason for this: it's our own - private quirk. The reason is that we want the formatting - codes to be delivered so that they bracket the text of their - embedding. For example, given the text + /* Update the cache, but only if this state was already cached. */ + bidi_cache_iterator_state (bidi_it, 1, 1); - {RLO}teST{PDF} - - we want it to be displayed as - - {PDF}STet{RLO} - - not as - - STet{RLO}{PDF} - - which will result because we bump up the embedding level as - soon as we see the RLO and pop it as soon as we see the PDF, - so RLO itself has the same embedding level as "teST", and - thus would be normally delivered last, just before the PDF. - The switch below fiddles with the level of PDF so that this - ugly side effect does not happen. - - (This is, of course, only important if the formatting codes - are actually displayed, but Emacs does need to display them - if the user wants to.) */ - level = prev_level; - } - else if (bidi_it->orig_type == NEUTRAL_B /* L1 */ + /* Resolve implicit levels. */ + if (bidi_it->orig_type == NEUTRAL_B /* L1 */ || bidi_it->orig_type == NEUTRAL_S || bidi_it->ch == '\n' || bidi_it->ch == BIDI_EOB || (bidi_it->orig_type == NEUTRAL_WS @@ -2560,10 +3306,35 @@ bidi_find_other_level_edge (struct bidi_it *bidi_it, int level, bool end_flag) if (end_flag) emacs_abort (); - bidi_cache_iterator_state (bidi_it, 1); + if (!bidi_cache_iterator_state (bidi_it, 1, 0)) + { + /* Can't happen: if the cache needs to grow, it means we + were at base embedding level, so the cache should have + been either empty or already large enough to cover this + character position. */ + emacs_abort (); + } do { new_level = bidi_level_of_next_char (bidi_it); - bidi_cache_iterator_state (bidi_it, 1); + /* If the cache is full, perform an emergency return by + pretending that the level ended. */ + if (!bidi_cache_iterator_state (bidi_it, 1, 0)) + { + new_level = level - 1; + /* Since the cache should only grow when we are scanning + forward looking for the edge of the level that is one + above the base embedding level, we can only have this + contingency when LEVEL - 1 is the base embedding + level. */ + eassert (new_level == bidi_it->level_stack[0].level); + /* Plan B, for when the cache overflows: Back up to the + previous character by fetching the last cached state, + and force the resolved level of that character be the + base embedding level. */ + bidi_cache_fetch_state (bidi_cache_idx - 1, bidi_it); + bidi_it->resolved_level = new_level; + bidi_cache_iterator_state (bidi_it, 1, 1); + } } while (new_level >= level); } } @@ -2607,7 +3378,7 @@ bidi_move_to_visually_next (struct bidi_it *bidi_it) sentinel.ch_len = 1; sentinel.nchars = 1; } - bidi_cache_iterator_state (&sentinel, 1); + bidi_cache_iterator_state (&sentinel, 1, 0); } old_level = bidi_it->resolved_level; @@ -2655,6 +3426,11 @@ bidi_move_to_visually_next (struct bidi_it *bidi_it) in the cache, which at this point should not happen. If it does, we will infloop. */ eassert (next_level >= 0); + /* If next_level is not consistent with incr, we might + infloop. */ + eassert (incr > 0 + ? next_level > expected_next_level + : next_level < expected_next_level); expected_next_level += incr; level_to_search += incr; bidi_find_other_level_edge (bidi_it, level_to_search, !ascending); @@ -2712,18 +3488,54 @@ bidi_move_to_visually_next (struct bidi_it *bidi_it) && bidi_it->charpos > (bidi_cache[bidi_cache_idx - 1].charpos + bidi_cache[bidi_cache_idx - 1].nchars - 1)) bidi_cache_reset (); + /* Also reset the cache if it overflowed and we have just + emergency-exited using Plan B. */ + else if (bidi_it->resolved_level == bidi_it->level_stack[0].level + && bidi_cache_idx >= bidi_cache_size + && bidi_it->charpos == bidi_cache[bidi_cache_idx - 1].charpos) + bidi_cache_reset (); /* But as long as we are caching during forward scan, we must cache each state, or else the cache integrity will be compromised: it assumes cached states correspond to buffer positions 1:1. */ else - bidi_cache_iterator_state (bidi_it, 1); + bidi_cache_iterator_state (bidi_it, 1, 0); } + eassert (bidi_it->resolved_level >= 0 + && bidi_it->resolved_level <= BIDI_MAXDEPTH + 2); + if (STRINGP (bidi_it->string.lstring)) UNGCPRO; } +/* Utility function for looking for strong directional characters + whose bidi type was overridden by a directional override. */ +ptrdiff_t +bidi_find_first_overridden (struct bidi_it *bidi_it) +{ + ptrdiff_t found_pos = ZV; + + do + { + /* Need to call bidi_resolve_weak, not bidi_resolve_explicit, + because the directional overrides are applied by the + former. */ + bidi_type_t type = bidi_resolve_weak (bidi_it); + + if ((type == STRONG_R && bidi_it->orig_type == STRONG_L) + || (type == STRONG_L + && (bidi_it->orig_type == STRONG_R + || bidi_it->orig_type == STRONG_AL))) + found_pos = bidi_it->charpos; + } while (found_pos == ZV + && bidi_it->charpos < ZV + && bidi_it->ch != BIDI_EOB + && bidi_it->ch != '\n'); + + return found_pos; +} + /* This is meant to be called from within the debugger, whenever you wish to examine the cache contents. */ void bidi_dump_cached_states (void) EXTERNALLY_VISIBLE; diff --git a/src/buffer.c b/src/buffer.c index 4eddd7029cc..7e424bb3178 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -829,6 +829,9 @@ CLONE nil means the indirect buffer's state is reset to default values. */) set_string_intervals (name, NULL); bset_name (b, name); + /* An indirect buffer shares undo list of its base (Bug#18180). */ + bset_undo_list (b, BVAR (b->base_buffer, undo_list)); + reset_buffer (b); reset_buffer_local_variables (b, 1); @@ -1134,10 +1137,7 @@ BUFFER defaults to the current buffer. Return nil if BUFFER has been killed. */) (register Lisp_Object buffer) { - if (NILP (buffer)) - return BVAR (current_buffer, name); - CHECK_BUFFER (buffer); - return BVAR (XBUFFER (buffer), name); + return BVAR (decode_buffer (buffer), name); } DEFUN ("buffer-file-name", Fbuffer_file_name, Sbuffer_file_name, 0, 1, 0, @@ -1145,10 +1145,7 @@ DEFUN ("buffer-file-name", Fbuffer_file_name, Sbuffer_file_name, 0, 1, 0, No argument or nil as argument means use the current buffer. */) (register Lisp_Object buffer) { - if (NILP (buffer)) - return BVAR (current_buffer, filename); - CHECK_BUFFER (buffer); - return BVAR (XBUFFER (buffer), filename); + return BVAR (decode_buffer (buffer), filename); } DEFUN ("buffer-base-buffer", Fbuffer_base_buffer, Sbuffer_base_buffer, @@ -1158,21 +1155,8 @@ If BUFFER is not indirect, return nil. BUFFER defaults to the current buffer. */) (register Lisp_Object buffer) { - struct buffer *base; - Lisp_Object base_buffer; - - if (NILP (buffer)) - base = current_buffer->base_buffer; - else - { - CHECK_BUFFER (buffer); - base = XBUFFER (buffer)->base_buffer; - } - - if (! base) - return Qnil; - XSETBUFFER (base_buffer, base); - return base_buffer; + struct buffer *base = decode_buffer (buffer)->base_buffer; + return base ? (XSETBUFFER (buffer, base), buffer) : Qnil; } DEFUN ("buffer-local-value", Fbuffer_local_value, @@ -1295,20 +1279,10 @@ Most elements look like (SYMBOL . VALUE), describing one variable. For a symbol that is locally unbound, just the symbol appears in the value. Note that storing new VALUEs in these elements doesn't change the variables. No argument or nil as argument means use current buffer as BUFFER. */) - (register Lisp_Object buffer) + (Lisp_Object buffer) { - register struct buffer *buf; - register Lisp_Object result; - - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - - result = buffer_lisp_local_variables (buf, 0); + struct buffer *buf = decode_buffer (buffer); + Lisp_Object result = buffer_lisp_local_variables (buf, 0); /* Add on all the variables stored in special slots. */ { @@ -1335,17 +1309,9 @@ DEFUN ("buffer-modified-p", Fbuffer_modified_p, Sbuffer_modified_p, 0, 1, 0, doc: /* Return t if BUFFER was modified since its file was last read or saved. No argument or nil as argument means use current buffer as BUFFER. */) - (register Lisp_Object buffer) + (Lisp_Object buffer) { - register struct buffer *buf; - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - + struct buffer *buf = decode_buffer (buffer); return BUF_SAVE_MODIFF (buf) < BUF_MODIFF (buf) ? Qt : Qnil; } @@ -1451,16 +1417,7 @@ text in that buffer is changed. It wraps around occasionally. No argument or nil as argument means use current buffer as BUFFER. */) (register Lisp_Object buffer) { - register struct buffer *buf; - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - - return make_number (BUF_MODIFF (buf)); + return make_number (BUF_MODIFF (decode_buffer (buffer))); } DEFUN ("buffer-chars-modified-tick", Fbuffer_chars_modified_tick, @@ -1475,16 +1432,7 @@ between these calls. No argument or nil as argument means use current buffer as BUFFER. */) (register Lisp_Object buffer) { - register struct buffer *buf; - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - - return make_number (BUF_CHARS_MODIFF (buf)); + return make_number (BUF_CHARS_MODIFF (decode_buffer (buffer))); } DEFUN ("rename-buffer", Frename_buffer, Srename_buffer, 1, 2, @@ -1564,7 +1512,7 @@ frame's buffer list. The buffer is found by scanning the selected or specified frame's buffer list first, followed by the list of all buffers. If no other buffer exists, return the buffer `*scratch*' (creating it if necessary). */) - (register Lisp_Object buffer, Lisp_Object visible_ok, Lisp_Object frame) + (Lisp_Object buffer, Lisp_Object visible_ok, Lisp_Object frame) { struct frame *f = decode_any_frame (frame); Lisp_Object tail = f->buffer_list, pred = f->buffer_predicate; @@ -1607,10 +1555,11 @@ exists, return the buffer `*scratch*' (creating it if necessary). */) return notsogood; else { - buf = Fget_buffer (build_string ("*scratch*")); + AUTO_STRING (scratch, "*scratch*"); + buf = Fget_buffer (scratch); if (NILP (buf)) { - buf = Fget_buffer_create (build_string ("*scratch*")); + buf = Fget_buffer_create (scratch); Fset_buffer_major_mode (buf); } return buf; @@ -1630,10 +1579,11 @@ other_buffer_safely (Lisp_Object buffer) if (candidate_buffer (buf, buffer)) return buf; - buf = Fget_buffer (build_string ("*scratch*")); + AUTO_STRING (scratch, "*scratch*"); + buf = Fget_buffer (scratch); if (NILP (buf)) { - buf = Fget_buffer_create (build_string ("*scratch*")); + buf = Fget_buffer_create (scratch); Fset_buffer_major_mode (buf); } @@ -2242,12 +2192,20 @@ set_buffer_if_live (Lisp_Object buffer) } DEFUN ("barf-if-buffer-read-only", Fbarf_if_buffer_read_only, - Sbarf_if_buffer_read_only, 0, 0, 0, - doc: /* Signal a `buffer-read-only' error if the current buffer is read-only. */) - (void) + Sbarf_if_buffer_read_only, 0, 1, 0, + doc: /* Signal a `buffer-read-only' error if the current buffer is read-only. +If the text under POSITION (which defaults to point) has the +`inhibit-read-only' text property set, the error will not be raised. */) + (Lisp_Object pos) { + if (NILP (pos)) + XSETFASTINT (pos, PT); + else + CHECK_NUMBER (pos); + if (!NILP (BVAR (current_buffer, read_only)) - && NILP (Vinhibit_read_only)) + && NILP (Vinhibit_read_only) + && NILP (Fget_text_property (pos, Qinhibit_read_only, Qnil))) xsignal1 (Qbuffer_read_only, Fcurrent_buffer ()); return Qnil; } @@ -3113,13 +3071,15 @@ mouse_face_overlay_overlaps (Lisp_Object overlay) ptrdiff_t end = OVERLAY_POSITION (OVERLAY_END (overlay)); ptrdiff_t n, i, size; Lisp_Object *v, tem; + Lisp_Object vbuf[10]; + USE_SAFE_ALLOCA; - size = 10; - v = alloca (size * sizeof *v); + size = ARRAYELTS (vbuf); + v = vbuf; n = overlays_in (start, end, 0, &v, &size, NULL, NULL); if (n > size) { - v = alloca (n * sizeof *v); + SAFE_NALLOCA (v, 1, n); overlays_in (start, end, 0, &v, &n, NULL, NULL); } @@ -3129,6 +3089,7 @@ mouse_face_overlay_overlaps (Lisp_Object overlay) !NILP (tem))) break; + SAFE_FREE (); return i < n; } @@ -4142,17 +4103,7 @@ BUFFER omitted or nil means delete all overlays of the current buffer. */) (Lisp_Object buffer) { - register struct buffer *buf; - - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - - delete_all_overlays (buf); + delete_all_overlays (decode_buffer (buffer)); return Qnil; } @@ -4587,13 +4538,13 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, bool after, First copy the vector contents, in case some of these hooks do subsequent modification of the buffer. */ ptrdiff_t size = last_overlay_modification_hooks_used; - Lisp_Object *copy = alloca (size * sizeof *copy); + Lisp_Object *copy; ptrdiff_t i; + USE_SAFE_ALLOCA; + SAFE_ALLOCA_LISP (copy, size); memcpy (copy, XVECTOR (last_overlay_modification_hooks)->contents, size * word_size); - gcpro1.var = copy; - gcpro1.nvars = size; for (i = 0; i < size;) { @@ -4602,6 +4553,8 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, bool after, overlay_i = copy[i++]; call_overlay_mod_hooks (prop_i, overlay_i, after, arg1, arg2, arg3); } + + SAFE_FREE (); } UNGCPRO; } @@ -5279,16 +5232,14 @@ init_buffer_once (void) QSFundamental = build_pure_c_string ("Fundamental"); - Qfundamental_mode = intern_c_string ("fundamental-mode"); + DEFSYM (Qfundamental_mode, "fundamental-mode"); bset_major_mode (&buffer_defaults, Qfundamental_mode); - Qmode_class = intern_c_string ("mode-class"); + DEFSYM (Qmode_class, "mode-class"); + DEFSYM (Qprotected_field, "protected-field"); - Qprotected_field = intern_c_string ("protected-field"); - - Qpermanent_local = intern_c_string ("permanent-local"); - - Qkill_buffer_hook = intern_c_string ("kill-buffer-hook"); + DEFSYM (Qpermanent_local, "permanent-local"); + DEFSYM (Qkill_buffer_hook, "kill-buffer-hook"); Fput (Qkill_buffer_hook, Qpermanent_local, Qt); /* super-magic invisible buffer */ @@ -5351,10 +5302,11 @@ init_buffer (int initialized) } #else /* not USE_MMAP_FOR_BUFFERS */ /* Avoid compiler warnings. */ - initialized = initialized; + (void) initialized; #endif /* USE_MMAP_FOR_BUFFERS */ - Fset_buffer (Fget_buffer_create (build_string ("*scratch*"))); + AUTO_STRING (scratch, "*scratch*"); + Fset_buffer (Fget_buffer_create (scratch)); if (NILP (BVAR (&buffer_defaults, enable_multibyte_characters))) Fset_buffer_multibyte (Qnil); @@ -5391,9 +5343,12 @@ init_buffer (int initialized) However, it is not necessary to turn / into /:/. So avoid doing that. */ && strcmp ("/", SSDATA (BVAR (current_buffer, directory)))) - bset_directory - (current_buffer, - concat2 (build_string ("/:"), BVAR (current_buffer, directory))); + { + AUTO_STRING (slash_colon, "/:"); + bset_directory (current_buffer, + concat2 (slash_colon, + BVAR (current_buffer, directory))); + } temp = get_minibuffer (0); bset_directory (XBUFFER (temp), BVAR (current_buffer, directory)); @@ -5448,14 +5403,10 @@ syms_of_buffer (void) last_overlay_modification_hooks = Fmake_vector (make_number (10), Qnil); - staticpro (&Qfundamental_mode); - staticpro (&Qmode_class); staticpro (&QSFundamental); staticpro (&Vbuffer_alist); - staticpro (&Qprotected_field); - staticpro (&Qpermanent_local); - staticpro (&Qkill_buffer_hook); + DEFSYM (Qchoice, "choice"); DEFSYM (Qleft, "left"); DEFSYM (Qright, "right"); DEFSYM (Qrange, "range"); @@ -5983,13 +5934,13 @@ in a window. To make the change take effect, call `set-window-buffer'. */); DEFVAR_PER_BUFFER ("scroll-bar-width", &BVAR (current_buffer, scroll_bar_width), Qintegerp, - doc: /* Width of this buffer's scroll bars in pixels. + doc: /* Width of this buffer's vertical scroll bars in pixels. A value of nil means to use the scroll bar width from the window's frame. */); DEFVAR_PER_BUFFER ("scroll-bar-height", &BVAR (current_buffer, scroll_bar_height), Qintegerp, - doc: /* Height of this buffer's scroll bars in pixels. -A value of nil means to use the scroll bar heiht from the window's frame. */); + doc: /* Height of this buffer's horizontal scroll bars in pixels. +A value of nil means to use the scroll bar height from the window's frame. */); DEFVAR_PER_BUFFER ("vertical-scroll-bar", &BVAR (current_buffer, vertical_scroll_bar_type), Qvertical_scroll_bar, @@ -6008,7 +5959,7 @@ The value takes effect whenever you tell a window to display this buffer; for instance, with `set-window-buffer' or when `display-buffer' displays it. A value of `bottom' means put the horizontal scroll bar at the bottom of -the window; a value of nil means don't show any horizonal scroll bars. +the window; a value of nil means don't show any horizontal scroll bars. A value of t (the default) means do whatever the window's frame specifies. */); diff --git a/src/buffer.h b/src/buffer.h index fd989925976..284cfa7b4a8 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -1088,6 +1088,14 @@ extern void mmap_set_vars (bool); extern void restore_buffer (Lisp_Object); extern void set_buffer_if_live (Lisp_Object); +/* Return B as a struct buffer pointer, defaulting to the current buffer. */ + +INLINE struct buffer * +decode_buffer (Lisp_Object b) +{ + return NILP (b) ? current_buffer : (CHECK_BUFFER (b), XBUFFER (b)); +} + /* Set the current buffer to B. We previously set windows_or_buffers_changed here to invalidate @@ -1120,15 +1128,15 @@ record_unwind_current_buffer (void) #define GET_OVERLAYS_AT(posn, overlays, noverlays, nextp, chrq) \ do { \ ptrdiff_t maxlen = 40; \ - overlays = alloca (maxlen * sizeof *overlays); \ - noverlays = overlays_at (posn, false, &overlays, &maxlen, \ - nextp, NULL, chrq); \ - if (noverlays > maxlen) \ + SAFE_NALLOCA (overlays, 1, maxlen); \ + (noverlays) = overlays_at (posn, false, &(overlays), &maxlen, \ + nextp, NULL, chrq); \ + if ((noverlays) > maxlen) \ { \ maxlen = noverlays; \ - overlays = alloca (maxlen * sizeof *overlays); \ - noverlays = overlays_at (posn, false, &overlays, &maxlen, \ - nextp, NULL, chrq); \ + SAFE_NALLOCA (overlays, 1, maxlen); \ + (noverlays) = overlays_at (posn, false, &(overlays), &maxlen, \ + nextp, NULL, chrq); \ } \ } while (false) diff --git a/src/bytecode.c b/src/bytecode.c index ca6681f21e9..d3c8b470cc3 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -36,8 +36,10 @@ by Hallvard: #include #include "lisp.h" +#include "blockinput.h" #include "character.h" #include "buffer.h" +#include "keyboard.h" #include "syntax.h" #include "window.h" @@ -1106,9 +1108,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, goto pushhandler; CASE (Bpushconditioncase): /* New in 24.4. */ { - extern EMACS_INT lisp_eval_depth; - extern int poll_suppress_count; - extern int interrupt_input_blocked; struct handler *c; Lisp_Object tag; int dest; diff --git a/src/callint.c b/src/callint.c index 817f84d897b..94676952b25 100644 --- a/src/callint.c +++ b/src/callint.c @@ -297,6 +297,7 @@ invoke it. If KEYS is omitted or nil, the return value of Lisp_Object teml; Lisp_Object up_event; Lisp_Object enable; + USE_SAFE_ALLOCA; ptrdiff_t speccount = SPECPDL_INDEX (); /* The index of the next element of this_command_keys to examine for @@ -366,12 +367,8 @@ invoke it. If KEYS is omitted or nil, the return value of wrong_type_argument (Qcommandp, function); } - /* If SPECS is set to a string, use it as an interactive prompt. */ - if (STRINGP (specs)) - /* Make a copy of string so that if a GC relocates specs, - `string' will still be valid. */ - string = xlispstrdupa (specs); - else + /* If SPECS is not a string, invent one. */ + if (! STRINGP (specs)) { Lisp_Object input; Lisp_Object funval = Findirect_function (function, Qt); @@ -416,10 +413,16 @@ invoke it. If KEYS is omitted or nil, the return value of args[0] = Qfuncall_interactively; args[1] = function; args[2] = specs; - return unbind_to (speccount, Fapply (3, args)); + Lisp_Object result = unbind_to (speccount, Fapply (3, args)); + SAFE_FREE (); + return result; } } + /* SPECS is set to a string; use it as an interactive prompt. + Copy it so that STRING will be valid even if a GC relocates SPECS. */ + SAFE_ALLOCA_STRING (string, specs); + /* Here if function specifies a string to control parsing the defaults. */ /* Set next_event to point to the first event with parameters. */ @@ -445,13 +448,13 @@ invoke it. If KEYS is omitted or nil, the return value of { if (! (*p == 'r' || *p == 'p' || *p == 'P' || *p == '\n')) - Fbarf_if_buffer_read_only (); + Fbarf_if_buffer_read_only (Qnil); p++; } record_then_fail = 1; } else - Fbarf_if_buffer_read_only (); + Fbarf_if_buffer_read_only (Qnil); } } /* Ignore this for semi-compatibility with Lucid. */ @@ -507,14 +510,15 @@ invoke it. If KEYS is omitted or nil, the return value of break; } - if (min (MOST_POSITIVE_FIXNUM, - min (PTRDIFF_MAX, SIZE_MAX) / word_size) - < nargs) + if (MOST_POSITIVE_FIXNUM < min (PTRDIFF_MAX, SIZE_MAX) / word_size + && MOST_POSITIVE_FIXNUM < nargs) memory_full (SIZE_MAX); - args = alloca (nargs * sizeof *args); - visargs = alloca (nargs * sizeof *visargs); - varies = alloca (nargs * sizeof *varies); + /* Allocate them all at one go. This wastes a bit of memory, but + it's OK to trade space for speed. */ + SAFE_NALLOCA (args, 3, nargs); + visargs = args + nargs; + varies = (signed char *) (visargs + nargs); for (i = 0; i < nargs; i++) { @@ -861,7 +865,7 @@ invoke it. If KEYS is omitted or nil, the return value of XSETINT (args[i], marker_position (args[i])); if (record_then_fail) - Fbarf_if_buffer_read_only (); + Fbarf_if_buffer_read_only (Qnil); Vthis_command = save_this_command; Vthis_original_command = save_this_original_command; @@ -871,7 +875,9 @@ invoke it. If KEYS is omitted or nil, the return value of { Lisp_Object val = Ffuncall (nargs, args); UNGCPRO; - return unbind_to (speccount, val); + val = unbind_to (speccount, val); + SAFE_FREE (); + return val; } } diff --git a/src/callproc.c b/src/callproc.c index 2f68ea6f328..a677334b3b7 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -127,9 +127,17 @@ encode_current_directory (void) dir = expand_and_dir_to_file (dir, Qnil); + if (NILP (Ffile_accessible_directory_p (dir))) + report_file_error ("Setting current directory", + BVAR (current_buffer, directory)); + + /* Remove "/:" from dir. */ + if (! NILP (Fstring_match (build_string ("^/:"), dir, Qnil))) + dir = Fsubstring (dir, make_number (2), Qnil); + if (STRING_MULTIBYTE (dir)) dir = ENCODE_FILE (dir); - if (! file_accessible_directory_p (SSDATA (dir))) + if (! file_accessible_directory_p (dir)) report_file_error ("Setting current directory", BVAR (current_buffer, directory)); @@ -466,7 +474,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, && SREF (path, 1) == ':') path = Fsubstring (path, make_number (2), Qnil); - new_argv = SAFE_ALLOCA ((nargs > 4 ? nargs - 2 : 2) * sizeof *new_argv); + SAFE_NALLOCA (new_argv, 1, nargs < 4 ? 2 : nargs - 2); { struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; @@ -632,6 +640,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, int volatile fd_error_volatile = fd_error; int volatile filefd_volatile = filefd; ptrdiff_t volatile count_volatile = count; + ptrdiff_t volatile sa_avail_volatile = sa_avail; ptrdiff_t volatile sa_count_volatile = sa_count; char **volatile new_argv_volatile = new_argv; int volatile callproc_fd_volatile[CALLPROC_FDS]; @@ -648,6 +657,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, fd_error = fd_error_volatile; filefd = filefd_volatile; count = count_volatile; + sa_avail = sa_avail_volatile; sa_count = sa_count_volatile; new_argv = new_argv_volatile; @@ -842,7 +852,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, (process_coding.dst_pos_byte + process_coding.produced), 0); - display_on_the_fly = 0; + display_on_the_fly = false; process_coding = saved_coding; carryover = nread; /* Make the above condition always fail in the future. */ @@ -874,9 +884,9 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, /* This variable might have been set to 0 for code detection. In that case, set it back to 1 because we should have already detected a coding system. */ - display_on_the_fly = 1; + display_on_the_fly = true; } - immediate_quit = 1; + immediate_quit = true; QUIT; } give_up: ; @@ -1151,6 +1161,39 @@ add_env (char **env, char **new_env, char *string) return new_env; } +#ifndef DOS_NT + +/* 'exec' failed inside a child running NAME, with error number ERR. + Possibly a vforked child needed to allocate a large vector on the + stack; such a child cannot fall back on malloc because that might + mess up the allocator's data structures in the parent. + Report the error and exit the child. */ + +static _Noreturn void +exec_failed (char const *name, int err) +{ + /* Avoid deadlock if the child's perror writes to a full pipe; the + pipe's reader is the parent, but with vfork the parent can't + run until the child exits. Truncate the diagnostic instead. */ + fcntl (STDERR_FILENO, F_SETFL, O_NONBLOCK); + + errno = err; + emacs_perror (name); + _exit (err == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE); +} + +#else + +/* Do nothing. There is no need to fail, as DOS_NT platforms do not + fork and exec, and handle alloca exhaustion in a different way. */ + +static void +exec_failed (char const *name, int err) +{ +} + +#endif + /* This is the last thing run in a newly forked inferior either synchronous or asynchronous. Copy descriptors IN, OUT and ERR as descriptors 0, 1 and 2. @@ -1174,8 +1217,6 @@ child_setup (int in, int out, int err, char **new_argv, bool set_pgrp, int cpid; HANDLE handles[3]; #else - int exec_errno; - pid_t pid = getpid (); #endif /* WINDOWSNT */ @@ -1196,11 +1237,13 @@ child_setup (int in, int out, int err, char **new_argv, bool set_pgrp, on that. */ pwd_var = xmalloc (i + 5); #else + if (MAX_ALLOCA - 5 < i) + exec_failed (new_argv[0], ENOMEM); pwd_var = alloca (i + 5); #endif temp = pwd_var + 4; memcpy (pwd_var, "PWD=", 4); - strcpy (temp, SSDATA (current_dir)); + lispstpcpy (temp, current_dir); #ifndef DOS_NT /* We can't signal an Elisp error here; we're in a vfork. Since @@ -1262,6 +1305,8 @@ child_setup (int in, int out, int err, char **new_argv, bool set_pgrp, } /* new_length + 2 to include PWD and terminating 0. */ + if (MAX_ALLOCA / sizeof *env - 2 < new_length) + exec_failed (new_argv[0], ENOMEM); env = new_env = alloca ((new_length + 2) * sizeof *env); /* If we have a PWD envvar, pass one down, but with corrected value. */ @@ -1270,7 +1315,11 @@ child_setup (int in, int out, int err, char **new_argv, bool set_pgrp, if (STRINGP (display)) { - char *vdata = alloca (sizeof "DISPLAY=" + SBYTES (display)); + char *vdata; + + if (MAX_ALLOCA - sizeof "DISPLAY=" < SBYTES (display)) + exec_failed (new_argv[0], ENOMEM); + vdata = alloca (sizeof "DISPLAY=" + SBYTES (display)); strcpy (vdata, "DISPLAY="); strcat (vdata, SSDATA (display)); new_env = add_env (env, new_env, vdata); @@ -1345,16 +1394,7 @@ child_setup (int in, int out, int err, char **new_argv, bool set_pgrp, tcsetpgrp (0, pid); execve (new_argv[0], new_argv, env); - exec_errno = errno; - - /* Avoid deadlock if the child's perror writes to a full pipe; the - pipe's reader is the parent, but with vfork the parent can't - run until the child exits. Truncate the diagnostic instead. */ - fcntl (STDERR_FILENO, F_SETFL, O_NONBLOCK); - - errno = exec_errno; - emacs_perror (new_argv[0]); - _exit (exec_errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE); + exec_failed (new_argv[0], errno); #else /* MSDOS */ pid = run_msdos_command (new_argv, pwd_var + 4, in, out, err, env); @@ -1488,14 +1528,14 @@ If optional parameter ENV is a list, then search this list instead of } /* A version of getenv that consults the Lisp environment lists, - easily callable from C. */ + easily callable from C. This is usually called from egetenv. */ char * -egetenv (const char *var) +egetenv_internal (const char *var, ptrdiff_t len) { char *value; ptrdiff_t valuelen; - if (getenv_internal (var, strlen (var), &value, &valuelen, Qnil)) + if (getenv_internal (var, len, &value, &valuelen, Qnil)) return value; else return 0; @@ -1543,20 +1583,13 @@ init_callproc_1 (void) void init_callproc (void) { - char *data_dir = egetenv ("EMACSDATA"); + bool data_dir = egetenv ("EMACSDATA") != 0; - register char * sh; + char *sh; Lisp_Object tempdir; #ifdef HAVE_NS if (data_dir == 0) - { - const char *etc_dir = ns_etc_directory (); - if (etc_dir) - { - data_dir = alloca (strlen (etc_dir) + 1); - strcpy (data_dir, etc_dir); - } - } + data_dir = ns_etc_directory () != 0; #endif if (!NILP (Vinstallation_directory)) @@ -1625,12 +1658,12 @@ init_callproc (void) #endif { tempdir = Fdirectory_file_name (Vexec_directory); - if (! file_accessible_directory_p (SSDATA (tempdir))) + if (! file_accessible_directory_p (tempdir)) dir_warning ("arch-dependent data dir", Vexec_directory); } tempdir = Fdirectory_file_name (Vdata_directory); - if (! file_accessible_directory_p (SSDATA (tempdir))) + if (! file_accessible_directory_p (tempdir)) dir_warning ("arch-independent data dir", Vdata_directory); sh = getenv ("SHELL"); diff --git a/src/category.c b/src/category.c index 851ae1a4c24..a4610e4d358 100644 --- a/src/category.c +++ b/src/category.c @@ -96,7 +96,7 @@ those categories. */) (Lisp_Object categories) { Lisp_Object val; - int len; + ptrdiff_t len; CHECK_STRING (categories); val = MAKE_CATEGORY_SET; diff --git a/src/character.h b/src/character.h index 66cd4e47ef8..624f4fff3f0 100644 --- a/src/character.h +++ b/src/character.h @@ -644,8 +644,6 @@ extern int string_char (const unsigned char *, const unsigned char **, int *); extern int translate_char (Lisp_Object, int c); -extern void parse_str_as_multibyte (const unsigned char *, - ptrdiff_t, ptrdiff_t *, ptrdiff_t *); extern ptrdiff_t count_size_as_multibyte (const unsigned char *, ptrdiff_t); extern ptrdiff_t str_as_multibyte (unsigned char *, ptrdiff_t, ptrdiff_t, ptrdiff_t *); diff --git a/src/charset.c b/src/charset.c index 341ac356aff..7fcb1534bc2 100644 --- a/src/charset.c +++ b/src/charset.c @@ -101,10 +101,9 @@ Lisp_Object Vcharset_ordered_list; charsets. */ Lisp_Object Vcharset_non_preferred_head; -/* Incremented everytime we change Vcharset_ordered_list. This is - unsigned short so that it fits in Lisp_Int and never matches - -1. */ -unsigned short charset_ordered_list_tick; +/* Incremented every time we change the priority of charsets. + Wraps around. */ +EMACS_UINT charset_ordered_list_tick; /* List of iso-2022 charsets. */ Lisp_Object Viso_2022_charset_list; @@ -485,14 +484,12 @@ load_charset_map_from_file (struct charset *charset, Lisp_Object mapfile, unsigned max_code = CHARSET_MAX_CODE (charset); int fd; FILE *fp; - Lisp_Object suffixes; struct charset_map_entries *head, *entries; int n_entries; - ptrdiff_t count; - - suffixes = list2 (build_string (".map"), build_string (".TXT")); - - count = SPECPDL_INDEX (); + AUTO_STRING (map, ".map"); + AUTO_STRING (txt, ".txt"); + AUTO_LIST2 (suffixes, map, txt); + ptrdiff_t count = SPECPDL_INDEX (); record_unwind_protect_nothing (); specbind (Qfile_name_handler_alist, Qnil); fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil, false); @@ -667,12 +664,8 @@ map_charset_for_dump (void (*c_function) (Lisp_Object, Lisp_Object), { int from_idx = CODE_POINT_TO_INDEX (temp_charset_work->current, from); int to_idx = CODE_POINT_TO_INDEX (temp_charset_work->current, to); - Lisp_Object range; + Lisp_Object range = Fcons (Qnil, Qnil); int c, stop; - struct gcpro gcpro1; - - range = Fcons (Qnil, Qnil); - GCPRO1 (range); c = temp_charset_work->min_char; stop = (temp_charset_work->max_char < 0x20000 @@ -715,7 +708,6 @@ map_charset_for_dump (void (*c_function) (Lisp_Object, Lisp_Object), } c++; } - UNGCPRO; } void @@ -1400,6 +1392,32 @@ Optional third argument DEUNIFY, if non-nil, means to de-unify CHARSET. */) return Qnil; } +/* Check that DIMENSION, CHARS, and FINAL_CHAR specify a valid ISO charset. + Return true if it's a 96-character set, false if 94. */ + +static bool +check_iso_charset_parameter (Lisp_Object dimension, Lisp_Object chars, + Lisp_Object final_char) +{ + CHECK_NUMBER (dimension); + CHECK_NUMBER (chars); + CHECK_CHARACTER (final_char); + + if (! (1 <= XINT (dimension) && XINT (dimension) <= 3)) + error ("Invalid DIMENSION %"pI"d, it should be 1, 2, or 3", + XINT (dimension)); + + bool chars_flag = XINT (chars) == 96; + if (! (chars_flag || XINT (chars) == 94)) + error ("Invalid CHARS %"pI"d, it should be 94 or 96", XINT (chars)); + + int final_ch = XFASTINT (final_char); + if (! ('0' <= final_ch && final_ch <= '~')) + error ("Invalid FINAL-CHAR '%c', it should be '0'..'~'", final_ch); + + return chars_flag; +} + DEFUN ("get-unused-iso-final-char", Fget_unused_iso_final_char, Sget_unused_iso_final_char, 2, 2, 0, doc: /* @@ -1412,35 +1430,12 @@ If there's no unused final char for the specified kind of charset, return nil. */) (Lisp_Object dimension, Lisp_Object chars) { - int final_char; - - CHECK_NUMBER (dimension); - CHECK_NUMBER (chars); - if (XINT (dimension) != 1 && XINT (dimension) != 2 && XINT (dimension) != 3) - args_out_of_range_3 (dimension, make_number (1), make_number (3)); - if (XINT (chars) != 94 && XINT (chars) != 96) - args_out_of_range_3 (chars, make_number (94), make_number (96)); - for (final_char = '0'; final_char <= '?'; final_char++) - if (ISO_CHARSET_TABLE (XINT (dimension), XINT (chars), final_char) < 0) - break; - return (final_char <= '?' ? make_number (final_char) : Qnil); -} - -static void -check_iso_charset_parameter (Lisp_Object dimension, Lisp_Object chars, Lisp_Object final_char) -{ - CHECK_NATNUM (dimension); - CHECK_NATNUM (chars); - CHECK_CHARACTER (final_char); - - if (XINT (dimension) > 3) - error ("Invalid DIMENSION %"pI"d, it should be 1, 2, or 3", - XINT (dimension)); - if (XINT (chars) != 94 && XINT (chars) != 96) - error ("Invalid CHARS %"pI"d, it should be 94 or 96", XINT (chars)); - if (XINT (final_char) < '0' || XINT (final_char) > '~') - error ("Invalid FINAL-CHAR %c, it should be `0'..`~'", - (int)XINT (final_char)); + bool chars_flag = check_iso_charset_parameter (dimension, chars, + make_number ('0')); + for (int final_char = '0'; final_char <= '?'; final_char++) + if (ISO_CHARSET_TABLE (XINT (dimension), chars_flag, final_char) < 0) + return make_number (final_char); + return Qnil; } @@ -1454,12 +1449,10 @@ if CHARSET is designated instead. */) (Lisp_Object dimension, Lisp_Object chars, Lisp_Object final_char, Lisp_Object charset) { int id; - bool chars_flag; CHECK_CHARSET_GET_ID (charset, id); - check_iso_charset_parameter (dimension, chars, final_char); - chars_flag = XINT (chars) == 96; - ISO_CHARSET_TABLE (XINT (dimension), chars_flag, XINT (final_char)) = id; + bool chars_flag = check_iso_charset_parameter (dimension, chars, final_char); + ISO_CHARSET_TABLE (XINT (dimension), chars_flag, XFASTINT (final_char)) = id; return Qnil; } @@ -2113,13 +2106,9 @@ See the documentation of the function `charset-info' for the meanings of DIMENSION, CHARS, and FINAL-CHAR. */) (Lisp_Object dimension, Lisp_Object chars, Lisp_Object final_char) { - int id; - bool chars_flag; - - check_iso_charset_parameter (dimension, chars, final_char); - chars_flag = XFASTINT (chars) == 96; - id = ISO_CHARSET_TABLE (XFASTINT (dimension), chars_flag, - XFASTINT (final_char)); + bool chars_flag = check_iso_charset_parameter (dimension, chars, final_char); + int id = ISO_CHARSET_TABLE (XINT (dimension), chars_flag, + XFASTINT (final_char)); return (id >= 0 ? CHARSET_NAME (CHARSET_FROM_ID (id)) : Qnil); } @@ -2298,7 +2287,7 @@ init_charset (void) { Lisp_Object tempdir; tempdir = Fexpand_file_name (build_string ("charsets"), Vdata_directory); - if (! file_accessible_directory_p (SSDATA (tempdir))) + if (! file_accessible_directory_p (tempdir)) { /* This used to be non-fatal (dir_warning), but it should not happen, and if it does sooner or later it will cause some diff --git a/src/charset.h b/src/charset.h index 4176ce5ecc6..6c6c3e6479f 100644 --- a/src/charset.h +++ b/src/charset.h @@ -253,8 +253,7 @@ extern struct charset *charset_table; extern Lisp_Object Vcharset_ordered_list; extern Lisp_Object Vcharset_non_preferred_head; -/* Incremented everytime we change the priority of charsets. */ -extern unsigned short charset_ordered_list_tick; +extern EMACS_UINT charset_ordered_list_tick; extern Lisp_Object Viso_2022_charset_list; extern Lisp_Object Vemacs_mule_charset_list; diff --git a/src/chartab.c b/src/chartab.c index 50be063759a..bfbbf798f0c 100644 --- a/src/chartab.c +++ b/src/chartab.c @@ -1258,13 +1258,8 @@ uniprop_encode_value_numeric (Lisp_Object table, Lisp_Object value) break; value = make_number (i); if (i == size) - { - Lisp_Object args[2]; - - args[0] = XCHAR_TABLE (table)->extras[4]; - args[1] = Fmake_vector (make_number (1), value); - set_char_table_extras (table, 4, Fvconcat (2, args)); - } + set_char_table_extras (table, 4, Fvconcat (2, ((Lisp_Object []) { + XCHAR_TABLE (table)->extras[4], Fmake_vector (make_number (1), value) }))); return make_number (i); } @@ -1307,8 +1302,8 @@ uniprop_table (Lisp_Object prop) { struct gcpro gcpro1; GCPRO1 (val); - result = Fload (concat2 (build_string ("international/"), table), - Qt, Qt, Qt, Qt); + AUTO_STRING (intl, "international/"); + result = Fload (concat2 (intl, table), Qt, Qt, Qt, Qt); UNGCPRO; if (NILP (result)) return Qnil; diff --git a/src/cmds.c b/src/cmds.c index 20234638778..9a05218b77b 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -131,12 +131,7 @@ successfully moved (for the return value). */) count = XINT (n); } - if (count <= 0) - pos = find_newline (PT, PT_BYTE, BEGV, BEGV_BYTE, count - 1, - &shortage, &pos_byte, 1); - else - pos = find_newline (PT, PT_BYTE, ZV, ZV_BYTE, count, - &shortage, &pos_byte, 1); + shortage = scan_newline_from_point (count, &pos, &pos_byte); SET_PT_BOTH (pos, pos_byte); diff --git a/src/coding.c b/src/coding.c index 523a6bf0f27..e4b52f6db48 100644 --- a/src/coding.c +++ b/src/coding.c @@ -642,15 +642,6 @@ static enum coding_category coding_priorities[coding_category_max]; Nth coding category. */ static struct coding_system coding_categories[coding_category_max]; -/*** Commonly used macros and functions ***/ - -#ifndef min -#define min(a, b) ((a) < (b) ? (a) : (b)) -#endif -#ifndef max -#define max(a, b) ((a) > (b) ? (a) : (b)) -#endif - /* Encode a flag that can be nil, something else, or t as -1, 0, 1. */ static int @@ -690,6 +681,14 @@ CHECK_NATNUM_CDR (Lisp_Object x) XSETCDR (x, tmp); } +/* True if CODING's destination can be grown. */ + +static bool +growable_destination (struct coding_system *coding) +{ + return STRINGP (coding->dst_object) || BUFFERP (coding->dst_object); +} + /* Safely get one byte from the source text pointed by SRC which ends at SRC_END, and set C to that byte. If there are not enough bytes @@ -1190,8 +1189,8 @@ alloc_destination (struct coding_system *coding, ptrdiff_t nbytes, #define UTF_8_BOM_2 0xBB #define UTF_8_BOM_3 0xBF -/* Unlike the other detect_coding_XXX, this function counts number of - characters and check EOL format. */ +/* Unlike the other detect_coding_XXX, this function counts the number + of characters and checks the EOL format. */ static bool detect_coding_utf_8 (struct coding_system *coding, @@ -3074,8 +3073,13 @@ detect_coding_iso_2022 (struct coding_system *coding, ONE_MORE_BYTE (c1); if (c1 < ' ' || c1 >= 0x80 || (id = iso_charset_table[0][c >= ','][c1]) < 0) - /* Invalid designation sequence. Just ignore. */ - break; + { + /* Invalid designation sequence. Just ignore. */ + if (c1 >= 0x80) + rejected |= (CATEGORY_MASK_ISO_7BIT + | CATEGORY_MASK_ISO_7_ELSE); + break; + } } else if (c == '$') { @@ -3089,16 +3093,29 @@ detect_coding_iso_2022 (struct coding_system *coding, ONE_MORE_BYTE (c1); if (c1 < ' ' || c1 >= 0x80 || (id = iso_charset_table[1][c >= ','][c1]) < 0) - /* Invalid designation sequence. Just ignore. */ - break; + { + /* Invalid designation sequence. Just ignore. */ + if (c1 >= 0x80) + rejected |= (CATEGORY_MASK_ISO_7BIT + | CATEGORY_MASK_ISO_7_ELSE); + break; + } } else - /* Invalid designation sequence. Just ignore it. */ - break; + { + /* Invalid designation sequence. Just ignore it. */ + if (c >= 0x80) + rejected |= (CATEGORY_MASK_ISO_7BIT + | CATEGORY_MASK_ISO_7_ELSE); + break; + } } else { /* Invalid escape sequence. Just ignore it. */ + if (c >= 0x80) + rejected |= (CATEGORY_MASK_ISO_7BIT + | CATEGORY_MASK_ISO_7_ELSE); break; } @@ -3149,7 +3166,7 @@ detect_coding_iso_2022 (struct coding_system *coding, if (inhibit_iso_escape_detection) break; single_shifting = 0; - rejected |= CATEGORY_MASK_ISO_7BIT; + rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_7_ELSE; if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1]) & CODING_ISO_FLAG_SINGLE_SHIFT) { @@ -3176,9 +3193,9 @@ detect_coding_iso_2022 (struct coding_system *coding, single_shifting = 0; break; } + rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_7_ELSE; if (c >= 0xA0) { - rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_7_ELSE; found |= CATEGORY_MASK_ISO_8_1; /* Check the length of succeeding codes of the range 0xA0..0FF. If the byte length is even, we include @@ -6867,6 +6884,11 @@ decode_eol (struct coding_system *coding) } +/* MAX_LOOKUP's maximum value. MAX_LOOKUP is an int and so cannot + exceed INT_MAX. Also, MAX_LOOKUP is multiplied by sizeof (int) for + alloca, so it cannot exceed MAX_ALLOCA / sizeof (int). */ +enum { MAX_LOOKUP_MAX = min (INT_MAX, MAX_ALLOCA / sizeof (int)) }; + /* Return a translation table (or list of them) from coding system attribute vector ATTRS for encoding (if ENCODEP) or decoding (if not ENCODEP). */ @@ -6919,7 +6941,7 @@ get_translation_table (Lisp_Object attrs, bool encodep, int *max_lookup) { val = XCHAR_TABLE (translation_table)->extras[1]; if (NATNUMP (val) && *max_lookup < XFASTINT (val)) - *max_lookup = XFASTINT (val); + *max_lookup = min (XFASTINT (val), MAX_LOOKUP_MAX); } else if (CONSP (translation_table)) { @@ -6931,7 +6953,7 @@ get_translation_table (Lisp_Object attrs, bool encodep, int *max_lookup) { Lisp_Object tailval = XCHAR_TABLE (XCAR (tail))->extras[1]; if (NATNUMP (tailval) && *max_lookup < XFASTINT (tailval)) - *max_lookup = XFASTINT (tailval); + *max_lookup = min (XFASTINT (tailval), MAX_LOOKUP_MAX); } } } @@ -7014,8 +7036,10 @@ produce_chars (struct coding_system *coding, Lisp_Object translation_table, int *buf = coding->charbuf; int *buf_end = buf + coding->charbuf_used; - if (EQ (coding->src_object, coding->dst_object)) + if (EQ (coding->src_object, coding->dst_object) + && ! NILP (coding->dst_object)) { + eassert (growable_destination (coding)); coding_set_source (coding); dst_end = ((unsigned char *) coding->source) + coding->consumed; } @@ -7054,6 +7078,7 @@ produce_chars (struct coding_system *coding, Lisp_Object translation_table, if ((dst_end - dst) / MAX_MULTIBYTE_LENGTH < to_nchars) { + eassert (growable_destination (coding)); if (((min (PTRDIFF_MAX, SIZE_MAX) - (buf_end - buf)) / MAX_MULTIBYTE_LENGTH) < to_nchars) @@ -7098,7 +7123,10 @@ produce_chars (struct coding_system *coding, Lisp_Object translation_table, const unsigned char *src_end = src + coding->consumed; if (EQ (coding->dst_object, coding->src_object)) - dst_end = (unsigned char *) src; + { + eassert (growable_destination (coding)); + dst_end = (unsigned char *) src; + } if (coding->src_multibyte != coding->dst_multibyte) { if (coding->src_multibyte) @@ -7114,6 +7142,7 @@ produce_chars (struct coding_system *coding, Lisp_Object translation_table, ONE_MORE_BYTE (c); if (dst == dst_end) { + eassert (growable_destination (coding)); if (EQ (coding->src_object, coding->dst_object)) dst_end = (unsigned char *) src; if (dst == dst_end) @@ -7144,6 +7173,7 @@ produce_chars (struct coding_system *coding, Lisp_Object translation_table, if (dst >= dst_end - 1) { + eassert (growable_destination (coding)); if (EQ (coding->src_object, coding->dst_object)) dst_end = (unsigned char *) src; if (dst >= dst_end - 1) @@ -9729,7 +9759,7 @@ DEFUN ("set-terminal-coding-system-internal", Fset_terminal_coding_system_intern doc: /* Internal use only. */) (Lisp_Object coding_system, Lisp_Object terminal) { - struct terminal *term = get_terminal (terminal, 1); + struct terminal *term = decode_live_terminal (terminal); struct coding_system *terminal_coding = TERMINAL_TERMINAL_CODING (term); CHECK_SYMBOL (coding_system); setup_coding_system (Fcheck_coding_system (coding_system), terminal_coding); @@ -9770,7 +9800,7 @@ frame's terminal device. */) (Lisp_Object terminal) { struct coding_system *terminal_coding - = TERMINAL_TERMINAL_CODING (get_terminal (terminal, 1)); + = TERMINAL_TERMINAL_CODING (decode_live_terminal (terminal)); Lisp_Object coding_system = CODING_ID_NAME (terminal_coding->id); /* For backward compatibility, return nil if it is `undecided'. */ @@ -9782,7 +9812,7 @@ DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_intern doc: /* Internal use only. */) (Lisp_Object coding_system, Lisp_Object terminal) { - struct terminal *t = get_terminal (terminal, 1); + struct terminal *t = decode_live_terminal (terminal); CHECK_SYMBOL (coding_system); if (NILP (coding_system)) coding_system = Qno_conversion; @@ -9801,7 +9831,7 @@ DEFUN ("keyboard-coding-system", (Lisp_Object terminal) { return CODING_ID_NAME (TERMINAL_KEYBOARD_CODING - (get_terminal (terminal, 1))->id); + (decode_live_terminal (terminal))->id); } @@ -10011,7 +10041,8 @@ make_subsidiaries (Lisp_Object base) { Lisp_Object subsidiaries; ptrdiff_t base_name_len = SBYTES (SYMBOL_NAME (base)); - char *buf = alloca (base_name_len + 6); + USE_SAFE_ALLOCA; + char *buf = SAFE_ALLOCA (base_name_len + 6); int i; memcpy (buf, SDATA (SYMBOL_NAME (base)), base_name_len); @@ -10021,6 +10052,7 @@ make_subsidiaries (Lisp_Object base) strcpy (buf + base_name_len, suffixes[i]); ASET (subsidiaries, i, intern (buf)); } + SAFE_FREE (); return subsidiaries; } @@ -11265,7 +11297,7 @@ decode text as usual. */); DEFVAR_BOOL ("disable-ascii-optimization", disable_ascii_optimization, doc: /* If non-nil, Emacs does not optimize code decoder for ASCII files. -Internal use only. Removed after the experimental optimizer gets stable. */); +Internal use only. Remove after the experimental optimizer becomes stable. */); disable_ascii_optimization = 0; DEFVAR_LISP ("translation-table-for-input", Vtranslation_table_for_input, diff --git a/src/composite.c b/src/composite.c index 66a20759ec6..8982c904096 100644 --- a/src/composite.c +++ b/src/composite.c @@ -928,7 +928,7 @@ static bool char_composable_p (int c) { Lisp_Object val; - return (c > ' ' + return (c > ' ' && (c == 0x200C || c == 0x200D || (val = CHAR_TABLE_REF (Vunicode_category_table, c), (INTEGERP (val) && (XINT (val) <= UNICODE_CATEGORY_So))))); @@ -1016,24 +1016,19 @@ composition_compute_stop_pos (struct composition_it *cmp_it, ptrdiff_t charpos, val = CHAR_TABLE_REF (Vcomposition_function_table, c); if (! NILP (val)) { - Lisp_Object elt; - int ridx; - - for (ridx = 0; CONSP (val); val = XCDR (val), ridx++) + for (int ridx = 0; CONSP (val); val = XCDR (val), ridx++) { - elt = XCAR (val); + Lisp_Object elt = XCAR (val); if (VECTORP (elt) && ASIZE (elt) == 3 && NATNUMP (AREF (elt, 1)) && charpos - 1 - XFASTINT (AREF (elt, 1)) >= start) - break; - } - if (CONSP (val)) - { - cmp_it->rule_idx = ridx; - cmp_it->lookback = XFASTINT (AREF (elt, 1)); - cmp_it->stop_pos = charpos - 1 - cmp_it->lookback; - cmp_it->ch = c; - return; + { + cmp_it->rule_idx = ridx; + cmp_it->lookback = XFASTINT (AREF (elt, 1)); + cmp_it->stop_pos = charpos - 1 - cmp_it->lookback; + cmp_it->ch = c; + return; + } } } } @@ -1724,7 +1719,7 @@ should be ignored. */) if (! FONT_OBJECT_P (font_object)) { struct coding_system *coding; - struct terminal *terminal = get_terminal (font_object, 1); + struct terminal *terminal = decode_live_terminal (font_object); coding = ((TERMINAL_TERMINAL_CODING (terminal)->common_flags & CODING_REQUIRE_ENCODING_MASK) diff --git a/src/composite.h b/src/composite.h index f01ae323c0d..1080eb0960c 100644 --- a/src/composite.h +++ b/src/composite.h @@ -156,7 +156,7 @@ struct composition { /* How many columns the overall glyphs occupy on the screen. This gives an approximate value for column calculation in Fcurrent_column, and etc. */ - unsigned short width; + int width; /* Method of the composition. */ enum composition_method method; diff --git a/src/conf_post.h b/src/conf_post.h index a995acfd915..90f4c6e8382 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -80,6 +80,23 @@ typedef bool bool_bf; #define vfork fork #endif /* DARWIN_OS */ +/* If HYBRID_MALLOC is defined (e.g., on Cygwin), emacs will use + gmalloc before dumping and the system malloc after dumping. + hybrid_malloc and friends, defined in gmalloc.c, are wrappers that + accomplish this. */ +#ifdef HYBRID_MALLOC +#ifdef emacs +#define malloc hybrid_malloc +#define realloc hybrid_realloc +#define calloc hybrid_calloc +#define free hybrid_free +#if defined HAVE_GET_CURRENT_DIR_NAME && !defined BROKEN_GET_CURRENT_DIR_NAME +#define HYBRID_GET_CURRENT_DIR_NAME 1 +#define get_current_dir_name hybrid_get_current_dir_name +#endif +#endif +#endif /* HYBRID_MALLOC */ + /* We have to go this route, rather than the old hpux9 approach of renaming the functions via macros. The system's stdlib.h has fully prototyped declarations, which yields a conflicting definition of @@ -123,13 +140,6 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ so we could reuse it in readlinkat; see msdos.c. */ #define opendir sys_opendir -/* The "portable" definition of _GL_INLINE on config.h does not work - with DJGPP GCC 3.4.4: it causes unresolved externals in sysdep.c, - although lib/execinfo.h is included and the inline functions there - are visible. */ -#if __GNUC__ < 4 -# define _GL_EXECINFO_INLINE inline -#endif /* End of gnulib-related stuff. */ #define emacs_raise(sig) msdos_fatal_signal (sig) @@ -183,6 +193,10 @@ extern void _DebPrint (const char *fmt, ...); #if defined CYGWIN && defined HAVE_NTGUI # define NTGUI_UNICODE /* Cygwin runs only on UNICODE-supporting systems */ # define _WIN32_WINNT 0x500 /* Win2k */ +/* The following was in /usr/include/string.h prior to Cygwin 1.7.33. */ +#ifndef strnicmp +#define strnicmp strncasecmp +#endif #endif #ifdef emacs /* Don't do this for lib-src. */ @@ -295,8 +309,8 @@ extern void _DebPrint (const char *fmt, ...); Other .c files should not define INLINE. C99 compilers compile functions like 'incr' as C99-style extern - inline functions. Pre-C99 GCCs do something similar with - GNU-specific keywords. Pre-C99 non-GCC compilers use static + inline functions. Buggy GCC implementations do something similar with + GNU-specific keywords. Buggy non-GCC compilers use static functions, which bloats the code but is good enough. */ #ifndef INLINE diff --git a/src/data.c b/src/data.c index 3e651414e68..7151d220b05 100644 --- a/src/data.c +++ b/src/data.c @@ -89,7 +89,8 @@ static Lisp_Object Qdefun; Lisp_Object Qinteractive_form; static Lisp_Object Qdefalias_fset_function; -static void swap_in_symval_forwarding (struct Lisp_Symbol *, struct Lisp_Buffer_Local_Value *); +static void swap_in_symval_forwarding (struct Lisp_Symbol *, + struct Lisp_Buffer_Local_Value *); static bool BOOLFWDP (union Lisp_Fwd *a) @@ -729,7 +730,7 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0, /* Convert to eassert or remove after GC bug is found. In the meantime, check unconditionally, at a slight perf hit. */ - if (valid_lisp_object_p (definition) < 1) + if (! valid_lisp_object_p (definition)) emacs_abort (); set_symbol_function (symbol, definition); @@ -979,17 +980,21 @@ wrong_choice (Lisp_Object choice, Lisp_Object wrong) { ptrdiff_t i = 0, len = XINT (Flength (choice)); Lisp_Object obj, *args; + AUTO_STRING (one_of, "One of "); + AUTO_STRING (comma, ", "); + AUTO_STRING (or, " or "); + AUTO_STRING (should_be_specified, " should be specified"); USE_SAFE_ALLOCA; SAFE_ALLOCA_LISP (args, len * 2 + 1); - args[i++] = build_string ("One of "); + args[i++] = one_of; for (obj = choice; !NILP (obj); obj = XCDR (obj)) { args[i++] = SYMBOL_NAME (XCAR (obj)); - args[i++] = build_string (NILP (XCDR (obj)) ? " should be specified" - : (NILP (XCDR (XCDR (obj))) ? " or " : ", ")); + args[i++] = (NILP (XCDR (obj)) ? should_be_specified + : NILP (XCDR (XCDR (obj))) ? or : comma); } obj = Fconcat (i, args); @@ -1003,14 +1008,13 @@ wrong_choice (Lisp_Object choice, Lisp_Object wrong) static void wrong_range (Lisp_Object min, Lisp_Object max, Lisp_Object wrong) { - Lisp_Object args[4]; - - args[0] = build_string ("Value should be from "); - args[1] = Fnumber_to_string (min); - args[2] = build_string (" to "); - args[3] = Fnumber_to_string (max); - - xsignal2 (Qerror, Fconcat (4, args), wrong); + AUTO_STRING (value_should_be_from, "Value should be from "); + AUTO_STRING (to, " to "); + xsignal2 (Qerror, + Fconcat (4, ((Lisp_Object []) + {value_should_be_from, Fnumber_to_string (min), + to, Fnumber_to_string (max)})), + wrong); } /* Store NEWVAL into SYMBOL, where VALCONTENTS is found in the value cell @@ -1311,10 +1315,10 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, Lisp_Object where, /* Find the new binding. */ XSETSYMBOL (symbol, sym); /* May have changed via aliasing. */ - tem1 = Fassq (symbol, - (blv->frame_local - ? XFRAME (where)->param_alist - : BVAR (XBUFFER (where), local_var_alist))); + tem1 = assq_no_quit (symbol, + (blv->frame_local + ? XFRAME (where)->param_alist + : BVAR (XBUFFER (where), local_var_alist))); set_blv_where (blv, where); blv->found = 1; @@ -1952,19 +1956,11 @@ DEFUN ("local-variable-p", Flocal_variable_p, Slocal_variable_p, 1, 2, 0, doc: /* Non-nil if VARIABLE has a local binding in buffer BUFFER. BUFFER defaults to the current buffer. */) - (register Lisp_Object variable, Lisp_Object buffer) + (Lisp_Object variable, Lisp_Object buffer) { - register struct buffer *buf; + struct buffer *buf = decode_buffer (buffer); struct Lisp_Symbol *sym; - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - CHECK_SYMBOL (variable); sym = XSYMBOL (variable); @@ -2318,7 +2314,7 @@ bool-vector. IDX starts at 0. */) { if (! SINGLE_BYTE_CHAR_P (c)) { - int i; + ptrdiff_t i; for (i = SBYTES (array) - 1; i >= 0; i--) if (SREF (array, i) >= 0x80) diff --git a/src/dbusbind.c b/src/dbusbind.c index 8997e01b068..4852739d8e4 100644 --- a/src/dbusbind.c +++ b/src/dbusbind.c @@ -761,7 +761,7 @@ xd_append_arg (int dtype, Lisp_Object object, DBusMessageIter *iter) && STRINGP (CAR_SAFE (XD_NEXT_VALUE (object))) && NILP (CDR_SAFE (XD_NEXT_VALUE (object)))) { - strcpy (signature, SSDATA (CAR_SAFE (XD_NEXT_VALUE (object)))); + lispstpcpy (signature, CAR_SAFE (XD_NEXT_VALUE (object))); object = CDR_SAFE (XD_NEXT_VALUE (object)); } @@ -1054,6 +1054,7 @@ xd_remove_watch (DBusWatch *watch, void *data) /* Unset session environment. */ #if 0 + /* This is buggy, since unsetenv is not thread-safe. */ if (XSYMBOL (QCdbus_session_bus) == data) { XD_DEBUG_MESSAGE ("unsetenv DBUS_SESSION_BUS_ADDRESS"); @@ -1219,9 +1220,6 @@ this connection to those buses. */) XSETFASTINT (val, (intptr_t) connection); xd_registered_buses = Fcons (Fcons (bus, val), xd_registered_buses); - /* We do not want to abort. */ - xputenv ("DBUS_FATAL_WARNINGS=0"); - /* Cleanup. */ dbus_error_free (&derror); } @@ -1737,6 +1735,13 @@ xd_read_queued_messages (int fd, void *data) } +void +init_dbusbind (void) +{ + /* We do not want to abort. */ + xputenv ("DBUS_FATAL_WARNINGS=0"); +} + void syms_of_dbusbind (void) { diff --git a/src/decompress.c b/src/decompress.c index cd8a3d1e962..24ce852245c 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -60,10 +60,7 @@ init_zlib_functions (void) HMODULE library = w32_delayed_load (Qzlib_dll); if (!library) - { - message1 ("zlib library not found"); - return false; - } + return false; LOAD_ZLIB_FN (library, inflateInit2_); LOAD_ZLIB_FN (library, inflate); @@ -150,7 +147,10 @@ This function can be called only in unibyte buffers. */) if (!zlib_initialized) zlib_initialized = init_zlib_functions (); if (!zlib_initialized) - return Qnil; + { + message1 ("zlib library not found"); + return Qnil; + } #endif /* This is a unibyte buffer, so character positions and bytes are diff --git a/src/dired.c b/src/dired.c index d3fe5b4943d..8afba247e61 100644 --- a/src/dired.c +++ b/src/dired.c @@ -150,6 +150,12 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full, Lisp_Object w32_save = Qnil; #endif + /* Don't let the compiler optimize away all copies of DIRECTORY, + which would break GC; see Bug#16986. Although this is required + only in the common case where GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS, + it shouldn't break anything in the other cases. */ + Lisp_Object volatile directory_volatile = directory; + /* Because of file name handlers, these functions might call Ffuncall, and cause a GC. */ list = encoded_directory = dirfilename = Qnil; @@ -325,6 +331,7 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full, list = Fsort (Fnreverse (list), attrs ? Qfile_attributes_lessp : Qstring_lessp); + (void) directory_volatile; RETURN_UNGCPRO (list); } @@ -902,7 +909,10 @@ so last access time will always be midnight of that day. */) Lisp_Object encoded; Lisp_Object handler; - filename = Fexpand_file_name (filename, Qnil); + filename = internal_condition_case_2 (Fexpand_file_name, filename, Qnil, + Qt, Fidentity); + if (!STRINGP (filename)) + return Qnil; /* If the file name has special constructs in it, call the corresponding file handler. */ diff --git a/src/dispextern.h b/src/dispextern.h index bfa110bc6a7..10a567ea485 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -449,8 +449,8 @@ struct glyph /* True means don't display cursor here. */ bool_bf avoid_cursor_p : 1; - /* Resolved bidirectional level of this character [0..63]. */ - unsigned resolved_level : 5; + /* Resolved bidirectional level of this character [0..127]. */ + unsigned resolved_level : 7; /* Resolved bidirectional type of this character, see enum bidi_type_t below. Note that according to UAX#9, only some @@ -1867,7 +1867,9 @@ GLYPH_CODE_P (Lisp_Object gc) extern int face_change_count; /* For reordering of bidirectional text. */ -#define BIDI_MAXLEVEL 64 + +/* UAX#9's max_depth value. */ +#define BIDI_MAXDEPTH 125 /* Data type for describing the bidirectional character types. The first 7 must be at the beginning, because they are the only values @@ -1904,23 +1906,40 @@ typedef enum { NEUTRAL_ON /* other neutrals */ } bidi_type_t; +/* Data type for describing the Bidi Paired Bracket Type of a character. + + The order of members must be in sync with the 8th element of the + member of unidata-prop-alist (in admin/unidata/unidata-gen.el) for + Unicode character property `bracket-type'. */ +typedef enum { + BIDI_BRACKET_NONE = 1, + BIDI_BRACKET_OPEN, + BIDI_BRACKET_CLOSE +} bidi_bracket_type_t; + /* The basic directionality data type. */ -typedef enum { NEUTRAL_DIR, L2R, R2L } bidi_dir_t; +typedef enum { NEUTRAL_DIR = 0, L2R, R2L } bidi_dir_t; /* Data type for storing information about characters we need to remember. */ struct bidi_saved_info { - ptrdiff_t bytepos, charpos; /* character's buffer position */ + ptrdiff_t charpos; /* character's buffer position */ bidi_type_t type; /* character's resolved bidi type */ - bidi_type_t type_after_w1; /* original type of the character, after W1 */ - bidi_type_t orig_type; /* type as we found it in the buffer */ + bidi_type_t orig_type; /* bidi type as we found it in the buffer */ }; -/* Data type for keeping track of saved embedding levels and override - status information. */ +/* Data type for keeping track of information about saved embedding + levels, override status, isolate status, and isolating sequence + runs. This should be as tightly packed as possible, because there + are 127 such entries in each iterator state, and so the size of + cache is directly affected by the size of this struct. */ struct bidi_stack { - int level; - bidi_dir_t override; + ptrdiff_t next_for_neutral_pos; + unsigned next_for_neutral_type : 3; + unsigned last_strong_type : 3; + unsigned prev_for_neutral_type : 3; + unsigned char level; + unsigned char flags; /* sos, override, isolate_status */ }; /* Data type for storing information about a string being iterated on. */ @@ -1945,22 +1964,24 @@ struct bidi_it { ptrdiff_t nchars; /* its "length", usually 1; it's > 1 for a run of characters covered by a display string */ ptrdiff_t ch_len; /* its length in bytes */ - bidi_type_t type; /* bidi type of this character, after + bidi_type_t type; /* final bidi type of this character, after resolving weak and neutral types */ - bidi_type_t type_after_w1; /* original type, after overrides and W1 */ - bidi_type_t orig_type; /* original type, as found in the buffer */ - int resolved_level; /* final resolved level of this character */ - int invalid_levels; /* how many PDFs to ignore */ - int invalid_rl_levels; /* how many PDFs from RLE/RLO to ignore */ + bidi_type_t type_after_wn; /* bidi type after overrides and Wn */ + bidi_type_t orig_type; /* original bidi type, as found in the buffer */ + char resolved_level; /* final resolved level of this character */ + char isolate_level; /* count of isolate initiators unmatched by PDI */ + ptrdiff_t invalid_levels; /* how many PDFs to ignore */ + ptrdiff_t invalid_isolates; /* how many PDIs to ignore */ struct bidi_saved_info prev; /* info about previous character */ struct bidi_saved_info last_strong; /* last-seen strong directional char */ struct bidi_saved_info next_for_neutral; /* surrounding characters for... */ struct bidi_saved_info prev_for_neutral; /* ...resolving neutrals */ struct bidi_saved_info next_for_ws; /* character after sequence of ws */ + ptrdiff_t bracket_pairing_pos; /* position of pairing bracket */ + bidi_type_t bracket_enclosed_type; /* type for bracket resolution */ ptrdiff_t next_en_pos; /* pos. of next char for determining ET type */ bidi_type_t next_en_type; /* type of char at next_en_pos */ - ptrdiff_t ignore_bn_limit; /* position until which to ignore BNs */ - bidi_dir_t sor; /* direction of start-of-run in effect */ + bidi_dir_t sos; /* direction of start-of-sequence in effect */ int scan_dir; /* direction of text scan, 1: forw, -1: back */ ptrdiff_t disp_pos; /* position of display string after ch */ int disp_prop; /* if non-zero, there really is a @@ -1970,12 +1991,11 @@ struct bidi_it { /* Note: Everything from here on is not copied/saved when the bidi iterator state is saved, pushed, or popped. So only put here stuff that is not part of the bidi iterator's state! */ - struct bidi_stack level_stack[BIDI_MAXLEVEL]; /* stack of embedding levels */ + struct bidi_stack level_stack[BIDI_MAXDEPTH+2+1]; /* directional status stack */ struct bidi_string_data string; /* string to reorder */ struct window *w; /* the window being displayed */ bidi_dir_t paragraph_dir; /* current paragraph direction */ ptrdiff_t separator_limit; /* where paragraph separator should end */ - bool_bf prev_was_pdf : 1; /* if true, previous char was PDF */ bool_bf first_elt : 1; /* if true, examine current char first */ bool_bf new_paragraph : 1; /* if true, we expect a new paragraph */ bool_bf frame_window_p : 1; /* true if displaying on a GUI frame */ @@ -2551,7 +2571,9 @@ struct it /* First and last visible x-position in the display area. If window is hscrolled by n columns, first_visible_x == n * FRAME_COLUMN_WIDTH - (f), and last_visible_x == pixel width of W + first_visible_x. */ + (f), and last_visible_x == pixel width of W + first_visible_x. + When truncation or continuation glyphs are produced due to lack of + fringes, last_visible_x excludes the space required for these glyphs. */ int first_visible_x, last_visible_x; /* Last visible y-position + 1 in the display area without a mode @@ -3180,6 +3202,7 @@ extern void bidi_push_it (struct bidi_it *); extern void bidi_pop_it (struct bidi_it *); extern void *bidi_shelve_cache (void); extern void bidi_unshelve_cache (void *, bool); +extern ptrdiff_t bidi_find_first_overridden (struct bidi_it *); /* Defined in xdisp.c */ @@ -3202,7 +3225,6 @@ int window_box_width (struct window *, enum glyph_row_area); int window_box_left (struct window *, enum glyph_row_area); int window_box_left_offset (struct window *, enum glyph_row_area); int window_box_right (struct window *, enum glyph_row_area); -int window_box_right_offset (struct window *, enum glyph_row_area); int estimate_mode_line_height (struct frame *, enum face_id); int move_it_to (struct it *, ptrdiff_t, int, int, int, int); void pixel_to_glyph_coords (struct frame *, int, int, int *, int *, @@ -3377,7 +3399,7 @@ void x_free_colors (struct frame *, unsigned long *, int); void update_face_from_frame_parameter (struct frame *, Lisp_Object, Lisp_Object); Lisp_Object tty_color_name (struct frame *, int); -void clear_face_cache (int); +void clear_face_cache (bool); unsigned long load_color (struct frame *, struct face *, Lisp_Object, enum lface_attribute_index); char *choose_face_font (struct frame *, Lisp_Object *, Lisp_Object, @@ -3450,11 +3472,11 @@ extern void cancel_hourglass (void); #endif /* HAVE_WINDOW_SYSTEM */ -/* Defined in xmenu.c */ +/* Defined in xmenu.c. */ int popup_activated (void); -/* Defined in dispnew.c */ +/* Defined in dispnew.c. */ extern Lisp_Object buffer_posn_from_coords (struct window *, int *, int *, @@ -3490,7 +3512,7 @@ void blank_row (struct window *, struct glyph_row *, int); void clear_glyph_matrix_rows (struct glyph_matrix *, int, int); void clear_glyph_row (struct glyph_row *); void prepare_desired_row (struct window *, struct glyph_row *, bool); -void update_single_window (struct window *, bool); +void update_single_window (struct window *); void do_pending_window_change (bool); void change_frame_size (struct frame *, int, int, bool, bool, bool, bool); void init_display (void); @@ -3499,7 +3521,7 @@ extern Lisp_Object Qredisplay_dont_pause; extern void spec_glyph_lookup_face (struct window *, GLYPH *); extern void fill_up_frame_row_with_spaces (struct glyph_row *, int); -/* Defined in terminal.c */ +/* Defined in terminal.c. */ extern void ring_bell (struct frame *); extern void update_begin (struct frame *); @@ -3527,7 +3549,6 @@ extern void calculate_costs (struct frame *); extern void produce_glyphs (struct it *); extern bool tty_capable_p (struct tty_display_info *, unsigned); extern void set_tty_color_mode (struct tty_display_info *, struct frame *); -extern struct terminal *get_named_tty (const char *); extern void create_tty_output (struct frame *); extern struct terminal *init_tty (const char *, const char *, bool); extern void tty_append_glyph (struct it *); @@ -3535,13 +3556,13 @@ extern void tty_append_glyph (struct it *); /* Defined in scroll.c */ -extern int scrolling_max_lines_saved (int, int, int *, int *, int *); +extern int scrolling_max_lines_saved (int, int, unsigned *, unsigned *, int *); extern void do_line_insertion_deletion_costs (struct frame *, const char *, const char *, const char *, const char *, const char *, const char *, int); -void scrolling_1 (struct frame *, int, int, int, int *, int *, int *, - int *, int); +void scrolling_1 (struct frame *, int, int, int, int *, int *, unsigned *, + unsigned *, int); /* Defined in frame.c */ diff --git a/src/dispnew.c b/src/dispnew.c index 0d373455f93..a44d2460dd0 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -1084,8 +1084,7 @@ prepare_desired_row (struct window *w, struct glyph_row *row, bool mode_line_p) if (w->right_margin_cols > 0) row->glyphs[RIGHT_MARGIN_AREA] = row->glyphs[LAST_AREA]; } - else if (row == MATRIX_MODE_LINE_ROW (w->desired_matrix) - || row == MATRIX_HEADER_LINE_ROW (w->desired_matrix)) + else { /* The real number of glyphs reserved for the margins is recorded in the glyph matrix, and can be different from @@ -1095,8 +1094,8 @@ prepare_desired_row (struct window *w, struct glyph_row *row, bool mode_line_p) int right = w->desired_matrix->right_margin_glyphs; /* Make sure the marginal areas of this row are in sync with - what the window wants, when the 1st/last row of the matrix - actually displays text and not header/mode line. */ + what the window wants, when the row actually displays text + and not header/mode line. */ if (w->left_margin_cols > 0 && (left != row->glyphs[TEXT_AREA] - row->glyphs[LEFT_MARGIN_AREA])) row->glyphs[TEXT_AREA] = row->glyphs[LEFT_MARGIN_AREA] + left; @@ -1110,10 +1109,10 @@ prepare_desired_row (struct window *w, struct glyph_row *row, bool mode_line_p) /* Return a hash code for glyph row ROW, which may be from current or desired matrix of frame F. */ -static int +static unsigned line_hash_code (struct frame *f, struct glyph_row *row) { - int hash = 0; + unsigned hash = 0; if (row->enabled_p) { @@ -2140,8 +2139,11 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f) static void adjust_decode_mode_spec_buffer (struct frame *f) { + int frame_message_buf_size = FRAME_MESSAGE_BUF_SIZE (f); + + eassert (frame_message_buf_size >= 0); f->decode_mode_spec_buffer = xrealloc (f->decode_mode_spec_buffer, - FRAME_MESSAGE_BUF_SIZE (f) + 1); + frame_message_buf_size + 1); } @@ -2686,7 +2688,8 @@ mirrored_line_dance (struct glyph_matrix *matrix, int unchanged_at_top, int nlin int i; /* Make a copy of the original rows. */ - old_rows = alloca (nlines * sizeof *old_rows); + USE_SAFE_ALLOCA; + SAFE_NALLOCA (old_rows, 1, nlines); memcpy (old_rows, new_rows, nlines * sizeof *old_rows); /* Assign new rows, maybe clear lines. */ @@ -2708,6 +2711,8 @@ mirrored_line_dance (struct glyph_matrix *matrix, int unchanged_at_top, int nlin if (frame_matrix_frame) mirror_line_dance (XWINDOW (frame_matrix_frame->root_window), unchanged_at_top, nlines, copy_from, retained_p); + + SAFE_FREE (); } @@ -2800,7 +2805,8 @@ mirror_line_dance (struct window *w, int unchanged_at_top, int nlines, int *copy struct glyph_row *old_rows; /* Make a copy of the original rows of matrix m. */ - old_rows = alloca (m->nrows * sizeof *old_rows); + USE_SAFE_ALLOCA; + SAFE_NALLOCA (old_rows, 1, m->nrows); memcpy (old_rows, m->rows, m->nrows * sizeof *old_rows); for (i = 0; i < nlines; ++i) @@ -2876,6 +2882,8 @@ mirror_line_dance (struct window *w, int unchanged_at_top, int nlines, int *copy /* Check that no pointers are lost. */ CHECK_MATRIX (m); + + SAFE_FREE (); } /* Next window on same level. */ @@ -3045,10 +3053,10 @@ update_frame (struct frame *f, bool force_p, bool inhibit_hairy_id_p) struct window *root_window = XWINDOW (f->root_window); if (redisplay_dont_pause) - force_p = 1; + force_p = true; else if (!force_p && detect_input_pending_ignore_squeezables ()) { - paused_p = 1; + paused_p = true; goto do_pause; } @@ -3068,7 +3076,7 @@ update_frame (struct frame *f, bool force_p, bool inhibit_hairy_id_p) /* Update the menu bar on X frames that don't have toolkit support. */ if (WINDOWP (f->menu_bar_window)) - update_window (XWINDOW (f->menu_bar_window), 1); + update_window (XWINDOW (f->menu_bar_window), true); #endif #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) @@ -3082,7 +3090,7 @@ update_frame (struct frame *f, bool force_p, bool inhibit_hairy_id_p) { Lisp_Object tem; - update_window (w, 1); + update_window (w, true); w->must_be_updated_p = false; /* Swap tool-bar strings. We swap because we want to @@ -3107,7 +3115,7 @@ update_frame (struct frame *f, bool force_p, bool inhibit_hairy_id_p) /* Build F's desired matrix from window matrices. */ build_frame_matrix (f); - /* Update the display */ + /* Update the display. */ update_begin (f); paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p, 1); update_end (f); @@ -3219,7 +3227,7 @@ update_window_tree (struct window *w, bool force_p) If FORCE_P, don't stop updating if input is pending. */ void -update_single_window (struct window *w, bool force_p) +update_single_window (struct window *w) { if (w->must_be_updated_p) { @@ -3228,12 +3236,9 @@ update_single_window (struct window *w, bool force_p) /* Record that this is not a frame-based redisplay. */ set_frame_matrix_frame (NULL); - if (redisplay_dont_pause) - force_p = 1; - /* Update W. */ update_begin (f); - update_window (w, force_p); + update_window (w, true); update_end (f); /* Reset flag in W. */ @@ -4658,14 +4663,19 @@ scrolling (struct frame *frame) int unchanged_at_top, unchanged_at_bottom; int window_size; int changed_lines; - int *old_hash = alloca (FRAME_TOTAL_LINES (frame) * sizeof (int)); - int *new_hash = alloca (FRAME_TOTAL_LINES (frame) * sizeof (int)); - int *draw_cost = alloca (FRAME_TOTAL_LINES (frame) * sizeof (int)); - int *old_draw_cost = alloca (FRAME_TOTAL_LINES (frame) * sizeof (int)); - register int i; - int free_at_end_vpos = FRAME_TOTAL_LINES (frame); + int i; + int height = FRAME_TOTAL_LINES (frame); + int free_at_end_vpos = height; struct glyph_matrix *current_matrix = frame->current_matrix; struct glyph_matrix *desired_matrix = frame->desired_matrix; + verify (sizeof (int) <= sizeof (unsigned)); + verify (alignof (unsigned) % alignof (int) == 0); + unsigned *old_hash; + USE_SAFE_ALLOCA; + SAFE_NALLOCA (old_hash, 4, height); + unsigned *new_hash = old_hash + height; + int *draw_cost = (int *) (new_hash + height); + int *old_draw_cost = draw_cost + height; eassert (current_matrix); @@ -4674,12 +4684,15 @@ scrolling (struct frame *frame) number of unchanged lines at the end. */ changed_lines = 0; unchanged_at_top = 0; - unchanged_at_bottom = FRAME_TOTAL_LINES (frame); - for (i = 0; i < FRAME_TOTAL_LINES (frame); i++) + unchanged_at_bottom = height; + for (i = 0; i < height; i++) { /* Give up on this scrolling if some old lines are not enabled. */ if (!MATRIX_ROW_ENABLED_P (current_matrix, i)) - return 0; + { + SAFE_FREE (); + return false; + } old_hash[i] = line_hash_code (frame, MATRIX_ROW (current_matrix, i)); if (! MATRIX_ROW_ENABLED_P (desired_matrix, i)) { @@ -4697,7 +4710,7 @@ scrolling (struct frame *frame) if (old_hash[i] != new_hash[i]) { changed_lines++; - unchanged_at_bottom = FRAME_TOTAL_LINES (frame) - i - 1; + unchanged_at_bottom = height - i - 1; } else if (i == unchanged_at_top) unchanged_at_top++; @@ -4707,10 +4720,13 @@ scrolling (struct frame *frame) /* If changed lines are few, don't allow preemption, don't scroll. */ if ((!FRAME_SCROLL_REGION_OK (frame) && changed_lines < baud_rate / 2400) - || unchanged_at_bottom == FRAME_TOTAL_LINES (frame)) - return 1; + || unchanged_at_bottom == height) + { + SAFE_FREE (); + return true; + } - window_size = (FRAME_TOTAL_LINES (frame) - unchanged_at_top + window_size = (height - unchanged_at_top - unchanged_at_bottom); if (FRAME_SCROLL_REGION_OK (frame)) @@ -4718,27 +4734,25 @@ scrolling (struct frame *frame) else if (FRAME_MEMORY_BELOW_FRAME (frame)) free_at_end_vpos = -1; - /* If large window, fast terminal and few lines in common between - current frame and desired frame, don't bother with i/d calc. */ - if (!FRAME_SCROLL_REGION_OK (frame) - && window_size >= 18 && baud_rate > 2400 - && (window_size >= - 10 * scrolling_max_lines_saved (unchanged_at_top, - FRAME_TOTAL_LINES (frame) - unchanged_at_bottom, - old_hash, new_hash, draw_cost))) - return 0; + /* Do id/calc only if small window, or slow terminal, or many lines + in common between current frame and desired frame. But the + window size must be at least 2. */ + if ((FRAME_SCROLL_REGION_OK (frame) + || window_size < 18 || baud_rate <= 2400 + || (window_size + < 10 * scrolling_max_lines_saved (unchanged_at_top, + height - unchanged_at_bottom, + old_hash, new_hash, draw_cost))) + && 2 <= window_size) + scrolling_1 (frame, window_size, unchanged_at_top, unchanged_at_bottom, + draw_cost + unchanged_at_top - 1, + old_draw_cost + unchanged_at_top - 1, + old_hash + unchanged_at_top - 1, + new_hash + unchanged_at_top - 1, + free_at_end_vpos - unchanged_at_top); - if (window_size < 2) - return 0; - - scrolling_1 (frame, window_size, unchanged_at_top, unchanged_at_bottom, - draw_cost + unchanged_at_top - 1, - old_draw_cost + unchanged_at_top - 1, - old_hash + unchanged_at_top - 1, - new_hash + unchanged_at_top - 1, - free_at_end_vpos - unchanged_at_top); - - return 0; + SAFE_FREE (); + return false; } @@ -5117,7 +5131,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p #ifdef HAVE_WINDOW_SYSTEM struct image *img = 0; #endif - int x0, x1, to_x; + int x0, x1, to_x, it_vpos; void *itdata = NULL; /* We used to set current_buffer directly here, but that does the @@ -5126,11 +5140,6 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p itdata = bidi_shelve_cache (); CLIP_TEXT_POS_FROM_MARKER (startp, w->start); start_display (&it, w, startp); - /* start_display takes into account the header-line row, but IT's - vpos still counts from the glyph row that includes the window's - start position. Adjust for a possible header-line row. */ - it.vpos += WINDOW_WANTS_HEADER_LINE_P (w); - x0 = *x; /* First, move to the beginning of the row corresponding to *Y. We @@ -5139,9 +5148,8 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p move_it_to (&it, -1, 0, *y, -1, MOVE_TO_X | MOVE_TO_Y); /* TO_X is the pixel position that the iterator will compute for the - glyph at *X. We add it.first_visible_x because iterator - positions include the hscroll. */ - to_x = x0 + it.first_visible_x; + glyph at *X. */ + to_x = x0; if (it.bidi_it.paragraph_dir == R2L) /* For lines in an R2L paragraph, we need to mirror TO_X wrt the text area. This is because the iterator, even in R2L @@ -5155,6 +5163,10 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p it should be mirrored into zero pixel position.) */ to_x = window_box_width (w, TEXT_AREA) - to_x - 1; + /* We need to add it.first_visible_x because iterator positions + include the hscroll. */ + to_x += it.first_visible_x; + /* Now move horizontally in the row to the glyph under *X. Second argument is ZV to prevent move_it_in_display_line from matching based on buffer positions. */ @@ -5197,8 +5209,13 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p } #endif - if (it.vpos < w->current_matrix->nrows - && (row = MATRIX_ROW (w->current_matrix, it.vpos), + /* IT's vpos counts from the glyph row that includes the window's + start position, i.e. it excludes the header-line row, but + MATRIX_ROW includes the header-line row. Adjust for a possible + header-line row. */ + it_vpos = it.vpos + WINDOW_WANTS_HEADER_LINE_P (w); + if (it_vpos < w->current_matrix->nrows + && (row = MATRIX_ROW (w->current_matrix, it_vpos), row->enabled_p)) { if (it.hpos < row->used[TEXT_AREA]) @@ -5440,7 +5457,9 @@ handle_window_change_signal (int sig) /* Record the new sizes, but don't reallocate the data structures now. Let that be done later outside of the signal handler. */ - change_frame_size (XFRAME (frame), width, height, 0, 1, 0, 0); + change_frame_size (XFRAME (frame), width, + height - FRAME_MENU_BAR_LINES (XFRAME (frame)), + 0, 1, 0, 0); } } } @@ -5517,7 +5536,7 @@ change_frame_size_1 (struct frame *f, int new_width, int new_height, /* Adjust frame size but make sure x_set_window_size does not get called. */ - adjust_frame_size (f, new_width, new_height, 5, pretend); + adjust_frame_size (f, new_width, new_height, 5, pretend, Qnil); } } @@ -5600,16 +5619,13 @@ the currently selected frame. In batch mode, STRING is sent to stdout when TERMINAL is nil. */) (Lisp_Object string, Lisp_Object terminal) { - struct terminal *t = get_terminal (terminal, 1); + struct terminal *t = decode_live_terminal (terminal); FILE *out; /* ??? Perhaps we should do something special for multibyte strings here. */ CHECK_STRING (string); block_input (); - if (!t) - error ("Unknown terminal device"); - if (t->type == output_initial) out = stdout; else if (t->type != output_termcap && t->type != output_msdos_raw) @@ -5780,7 +5796,7 @@ immediately by pending input. */) { ptrdiff_t count; - swallow_events (1); + swallow_events (true); if ((detect_input_pending_run_timers (1) && NILP (force) && !redisplay_dont_pause) || !NILP (Vexecuting_kbd_macro)) @@ -6089,15 +6105,12 @@ init_display (void) (*initial_terminal->delete_terminal_hook) (initial_terminal); /* Update frame parameters to reflect the new type. */ - Fmodify_frame_parameters - (selected_frame, list1 (Fcons (Qtty_type, - Ftty_type (selected_frame)))); - if (t->display_info.tty->name) - Fmodify_frame_parameters - (selected_frame, - list1 (Fcons (Qtty, build_string (t->display_info.tty->name)))); - else - Fmodify_frame_parameters (selected_frame, list1 (Fcons (Qtty, Qnil))); + AUTO_FRAME_ARG (tty_type_arg, Qtty_type, Ftty_type (selected_frame)); + Fmodify_frame_parameters (selected_frame, tty_type_arg); + AUTO_FRAME_ARG (tty_arg, Qtty, (t->display_info.tty->name + ? build_string (t->display_info.tty->name) + : Qnil)); + Fmodify_frame_parameters (selected_frame, tty_arg); } { @@ -6262,8 +6275,15 @@ See `buffer-display-table' for more information. */); Vstandard_display_table = Qnil; DEFVAR_BOOL ("redisplay-dont-pause", redisplay_dont_pause, - doc: /* Non-nil means display update isn't paused when input is detected. */); - redisplay_dont_pause = 1; + doc: /* Nil means display update is paused when input is detected. */); + /* Contrary to expectations, a value of "false" can be detrimental to + responsiveness since aborting a redisplay throws away some of the + work already performed. It's usually more efficient (and gives + more prompt feedback to the user) to let the redisplay terminate, + and just completely skip the next command's redisplay (which is + done regardless of this setting if there's pending input at the + beginning of the next redisplay). */ + redisplay_dont_pause = true; #ifdef CANNOT_DUMP if (noninteractive) diff --git a/src/doc.c b/src/doc.c index df8cfba3f2a..1b87c23e949 100644 --- a/src/doc.c +++ b/src/doc.c @@ -121,8 +121,8 @@ get_doc_string (Lisp_Object filepos, bool unibyte, bool definition) if (minsize < 8) minsize = 8; name = SAFE_ALLOCA (minsize + SCHARS (file) + 8); - strcpy (name, SSDATA (docdir)); - strcat (name, SSDATA (file)); + char *z = lispstpcpy (name, docdir); + strcpy (z, SSDATA (file)); } else { @@ -146,8 +146,9 @@ get_doc_string (Lisp_Object filepos, bool unibyte, bool definition) if (fd < 0) { SAFE_FREE (); - return concat3 (build_string ("Cannot open doc string file \""), - file, build_string ("\"\n")); + AUTO_STRING (cannot_open, "Cannot open doc string file \""); + AUTO_STRING (quote_nl, "\"\n"); + return concat3 (cannot_open, file, quote_nl); } } count = SPECPDL_INDEX (); @@ -561,6 +562,8 @@ the same file name is found in the `doc-directory'. */) char *p, *name; bool skip_file = 0; ptrdiff_t count; + char const *dirname; + ptrdiff_t dirlen; /* Preloaded defcustoms using custom-initialize-delay are added to this list, but kept unbound. See http://debbugs.gnu.org/11565 */ Lisp_Object delayed_init = @@ -577,15 +580,21 @@ the same file name is found in the `doc-directory'. */) (0) #endif /* CANNOT_DUMP */ { - name = alloca (SCHARS (filename) + 14); - strcpy (name, "../etc/"); + static char const sibling_etc[] = "../etc/"; + dirname = sibling_etc; + dirlen = sizeof sibling_etc - 1; } else { CHECK_STRING (Vdoc_directory); - name = alloca (SCHARS (filename) + SCHARS (Vdoc_directory) + 1); - strcpy (name, SSDATA (Vdoc_directory)); + dirname = SSDATA (Vdoc_directory); + dirlen = SBYTES (Vdoc_directory); } + + count = SPECPDL_INDEX (); + USE_SAFE_ALLOCA; + name = SAFE_ALLOCA (dirlen + SBYTES (filename) + 1); + strcpy (name, dirname); strcat (name, SSDATA (filename)); /*** Add this line ***/ /* Vbuild_files is nil when temacs is run, and non-nil after that. */ @@ -608,7 +617,6 @@ the same file name is found in the `doc-directory'. */) report_file_errno ("Opening doc string file", build_string (name), open_errno); } - count = SPECPDL_INDEX (); record_unwind_protect_int (close_file_unwind, fd); Vdoc_file_name = filename; filled = 0; @@ -637,7 +645,7 @@ the same file name is found in the `doc-directory'. */) && (end[-1] == 'o' || end[-1] == 'c')) { ptrdiff_t len = end - p - 2; - char *fromfile = alloca (len + 1); + char *fromfile = SAFE_ALLOCA (len + 1); memcpy (fromfile, &p[2], len); fromfile[len] = 0; if (fromfile[len-1] == 'c') @@ -688,6 +696,8 @@ the same file name is found in the `doc-directory'. */) filled -= end - buf; memmove (buf, end, filled); } + + SAFE_FREE (); return unbind_to (count, Qnil); } diff --git a/src/dosfns.c b/src/dosfns.c index e557dcba022..bdd296bf658 100644 --- a/src/dosfns.c +++ b/src/dosfns.c @@ -370,13 +370,6 @@ init_dosfns (void) Don't OR it with the previous value, so the value recorded at dump time, possibly with `preserve-case' flags set, won't get through. */ __opendir_flags = __OPENDIR_FIND_HIDDEN; - -#if __DJGPP_MINOR__ == 0 - /* Under LFN, preserve the case of files as recorded in the directory - (in DJGPP 2.01 and later this is automagically done by the library). */ - if (!NILP (Fmsdos_long_file_names ())) - __opendir_flags |= __OPENDIR_PRESERVE_CASE; -#endif /* __DJGPP_MINOR__ == 0 */ } #ifndef HAVE_X_WINDOWS diff --git a/src/editfns.c b/src/editfns.c index e8d4478f2f6..0a07886934c 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -64,11 +64,18 @@ along with GNU Emacs. If not, see . */ extern Lisp_Object w32_get_internal_run_time (void); #endif +static struct lisp_time lisp_time_struct (Lisp_Object, int *); +static void set_time_zone_rule (char const *); static Lisp_Object format_time_string (char const *, ptrdiff_t, struct timespec, bool, struct tm *); +static long int tm_gmtoff (struct tm *); static int tm_diff (struct tm *, struct tm *); static void update_buffer_properties (ptrdiff_t, ptrdiff_t); +#ifndef HAVE_TM_GMTOFF +# define HAVE_TM_GMTOFF false +#endif + static Lisp_Object Qbuffer_access_fontify_functions; /* Symbol for the text property used to mark fields. */ @@ -79,15 +86,12 @@ Lisp_Object Qfield; static Lisp_Object Qboundary; -/* The startup value of the TZ environment variable so it can be - restored if the user calls set-time-zone-rule with a nil - argument. If null, the TZ environment variable was unset. */ +/* The startup value of the TZ environment variable; null if unset. */ static char const *initial_tz; -/* True if the static variable tzvalbuf (defined in - set_time_zone_rule) is part of 'environ'. */ -static bool tzvalbuf_in_environ; - +/* A valid but unlikely setting for the TZ environment variable. + It is OK (though a bit slower) if the user chooses this value. */ +static char dump_tz_string[] = "TZ=UtC0"; void init_editfns (void) @@ -101,18 +105,43 @@ init_editfns (void) init_system_name (); #ifndef CANNOT_DUMP - /* Don't bother with this on initial start when just dumping out */ + /* When just dumping out, set the time zone to a known unlikely value + and skip the rest of this function. */ if (!initialized) - return; -#endif /* not CANNOT_DUMP */ + { +# ifdef HAVE_TZSET + xputenv (dump_tz_string); + tzset (); +# endif + return; + } +#endif - initial_tz = getenv ("TZ"); - tzvalbuf_in_environ = 0; + char *tz = getenv ("TZ"); + initial_tz = tz; + +#if !defined CANNOT_DUMP && defined HAVE_TZSET + /* If the execution TZ happens to be the same as the dump TZ, + change it to some other value and then change it back, + to force the underlying implementation to reload the TZ info. + This is needed on implementations that load TZ info from files, + since the TZ file contents may differ between dump and execution. */ + if (tz && strcmp (tz, &dump_tz_string[sizeof "TZ=" - 1]) == 0) + { + ++*tz; + tzset (); + --*tz; + } +#endif + + /* Call set_time_zone_rule now, so that its call to putenv is done + before multiple threads are active. */ + set_time_zone_rule (tz); pw = getpwuid (getuid ()); #ifdef MSDOS /* We let the real user name default to "root" because that's quite - accurate on MSDOG and because it lets Emacs find the init file. + accurate on MS-DOS and because it lets Emacs find the init file. (The DVX libraries override the Djgpp libraries here.) */ Vuser_real_login_name = build_string (pw ? pw->pw_name : "root"); #else @@ -376,13 +405,14 @@ at POSITION. */) set_buffer_temp (XBUFFER (object)); /* First try with room for 40 overlays. */ - noverlays = 40; - overlay_vec = alloca (noverlays * sizeof *overlay_vec); + Lisp_Object overlay_vecbuf[40]; + noverlays = ARRAYELTS (overlay_vecbuf); + overlay_vec = overlay_vecbuf; noverlays = overlays_around (posn, overlay_vec, noverlays); /* If there are more than 40, make enough space for all, and try again. */ - if (noverlays > 40) + if (ARRAYELTS (overlay_vecbuf) < noverlays) { SAFE_ALLOCA_LISP (overlay_vec, noverlays); noverlays = overlays_around (posn, overlay_vec, noverlays); @@ -758,26 +788,17 @@ boundaries, bind `inhibit-field-text-motion' to t. This function does not move point. */) (Lisp_Object n) { - ptrdiff_t orig, orig_byte, end; - ptrdiff_t count = SPECPDL_INDEX (); - specbind (Qinhibit_point_motion_hooks, Qt); + ptrdiff_t charpos, bytepos; if (NILP (n)) XSETFASTINT (n, 1); else CHECK_NUMBER (n); - orig = PT; - orig_byte = PT_BYTE; - Fforward_line (make_number (XINT (n) - 1)); - end = PT; - - SET_PT_BOTH (orig, orig_byte); - - unbind_to (count, Qnil); + scan_newline_from_point (XINT (n) - 1, &charpos, &bytepos); /* Return END constrained to the current input field. */ - return Fconstrain_to_field (make_number (end), make_number (orig), + return Fconstrain_to_field (make_number (charpos), make_number (PT), XINT (n) != 1 ? Qt : Qnil, Qt, Qnil); } @@ -1325,17 +1346,16 @@ name, or nil if there is no such user. */) /* Substitute the login name for the &, upcasing the first character. */ if (q) { - register char *r; - Lisp_Object login; - - login = Fuser_login_name (make_number (pw->pw_uid)); - r = alloca (strlen (p) + SCHARS (login) + 1); + Lisp_Object login = Fuser_login_name (make_number (pw->pw_uid)); + USE_SAFE_ALLOCA; + char *r = SAFE_ALLOCA (strlen (p) + SBYTES (login) + 1); memcpy (r, p, q - p); r[q - p] = 0; strcat (r, SSDATA (login)); r[q - p] = upcase ((unsigned char) r[q - p]); strcat (r, q + 1); full = build_string (r); + SAFE_FREE (); } #endif /* AMPERSAND_FULL_NAME */ @@ -1373,30 +1393,60 @@ time_overflow (void) error ("Specified time is not representable"); } +static void +invalid_time (void) +{ + error ("Invalid time specification"); +} + +/* A substitute for mktime_z on platforms that lack it. It's not + thread-safe, but should be good enough for Emacs in typical use. */ +#ifndef HAVE_TZALLOC +time_t +mktime_z (timezone_t tz, struct tm *tm) +{ + char *oldtz = getenv ("TZ"); + USE_SAFE_ALLOCA; + if (oldtz) + { + size_t oldtzsize = strlen (oldtz) + 1; + char *oldtzcopy = SAFE_ALLOCA (oldtzsize); + oldtz = strcpy (oldtzcopy, oldtz); + } + block_input (); + set_time_zone_rule (tz); + time_t t = mktime (tm); + set_time_zone_rule (oldtz); + unblock_input (); + SAFE_FREE (); + return t; +} +#endif + /* Return the upper part of the time T (everything but the bottom 16 bits). */ static EMACS_INT hi_time (time_t t) { - time_t hi = t >> 16; + time_t hi = t >> LO_TIME_BITS; /* Check for overflow, helping the compiler for common cases where no runtime check is needed, and taking care not to convert negative numbers to unsigned before comparing them. */ if (! ((! TYPE_SIGNED (time_t) - || MOST_NEGATIVE_FIXNUM <= TIME_T_MIN >> 16 + || MOST_NEGATIVE_FIXNUM <= TIME_T_MIN >> LO_TIME_BITS || MOST_NEGATIVE_FIXNUM <= hi) - && (TIME_T_MAX >> 16 <= MOST_POSITIVE_FIXNUM + && (TIME_T_MAX >> LO_TIME_BITS <= MOST_POSITIVE_FIXNUM || hi <= MOST_POSITIVE_FIXNUM))) time_overflow (); return hi; } -/* Return the bottom 16 bits of the time T. */ +/* Return the bottom bits of the time T. */ static int lo_time (time_t t) { - return t & ((1 << 16) - 1); + return t & ((1 << LO_TIME_BITS) - 1); } DEFUN ("current-time", Fcurrent_time, Scurrent_time, 0, 0, 0, @@ -1410,6 +1460,96 @@ picosecond counts. */) return make_lisp_time (current_timespec ()); } +static struct lisp_time +time_add (struct lisp_time ta, struct lisp_time tb) +{ + EMACS_INT hi = ta.hi + tb.hi; + int lo = ta.lo + tb.lo; + int us = ta.us + tb.us; + int ps = ta.ps + tb.ps; + us += (1000000 <= ps); + ps -= (1000000 <= ps) * 1000000; + lo += (1000000 <= us); + us -= (1000000 <= us) * 1000000; + hi += (1 << LO_TIME_BITS <= lo); + lo -= (1 << LO_TIME_BITS <= lo) << LO_TIME_BITS; + return (struct lisp_time) { hi, lo, us, ps }; +} + +static struct lisp_time +time_subtract (struct lisp_time ta, struct lisp_time tb) +{ + EMACS_INT hi = ta.hi - tb.hi; + int lo = ta.lo - tb.lo; + int us = ta.us - tb.us; + int ps = ta.ps - tb.ps; + us -= (ps < 0); + ps += (ps < 0) * 1000000; + lo -= (us < 0); + us += (us < 0) * 1000000; + hi -= (lo < 0); + lo += (lo < 0) << LO_TIME_BITS; + return (struct lisp_time) { hi, lo, us, ps }; +} + +static Lisp_Object +time_arith (Lisp_Object a, Lisp_Object b, + struct lisp_time (*op) (struct lisp_time, struct lisp_time)) +{ + int alen, blen; + struct lisp_time ta = lisp_time_struct (a, &alen); + struct lisp_time tb = lisp_time_struct (b, &blen); + struct lisp_time t = op (ta, tb); + if (! (MOST_NEGATIVE_FIXNUM <= t.hi && t.hi <= MOST_POSITIVE_FIXNUM)) + time_overflow (); + Lisp_Object val = Qnil; + + switch (max (alen, blen)) + { + default: + val = Fcons (make_number (t.ps), val); + /* Fall through. */ + case 3: + val = Fcons (make_number (t.us), val); + /* Fall through. */ + case 2: + val = Fcons (make_number (t.lo), val); + val = Fcons (make_number (t.hi), val); + break; + } + + return val; +} + +DEFUN ("time-add", Ftime_add, Stime_add, 2, 2, 0, + doc: /* Return the sum of two time values A and B, as a time value. */) + (Lisp_Object a, Lisp_Object b) +{ + return time_arith (a, b, time_add); +} + +DEFUN ("time-subtract", Ftime_subtract, Stime_subtract, 2, 2, 0, + doc: /* Return the difference between two time values A and B, as a time value. */) + (Lisp_Object a, Lisp_Object b) +{ + return time_arith (a, b, time_subtract); +} + +DEFUN ("time-less-p", Ftime_less_p, Stime_less_p, 2, 2, 0, + doc: /* Return non-nil if time value T1 is earlier than time value T2. */) + (Lisp_Object t1, Lisp_Object t2) +{ + int t1len, t2len; + struct lisp_time a = lisp_time_struct (t1, &t1len); + struct lisp_time b = lisp_time_struct (t2, &t2len); + return ((a.hi != b.hi ? a.hi < b.hi + : a.lo != b.lo ? a.lo < b.lo + : a.us != b.us ? a.us < b.us + : a.ps < b.ps) + ? Qt : Qnil); +} + + DEFUN ("get-internal-run-time", Fget_internal_run_time, Sget_internal_run_time, 0, 0, 0, doc: /* Return the current run time used by Emacs. @@ -1448,21 +1588,6 @@ does the same thing as `current-time'. */) } -/* Make a Lisp list that represents the time T with fraction TAIL. */ -static Lisp_Object -make_time_tail (time_t t, Lisp_Object tail) -{ - return Fcons (make_number (hi_time (t)), - Fcons (make_number (lo_time (t)), tail)); -} - -/* Make a Lisp list that represents the system time T. */ -static Lisp_Object -make_time (time_t t) -{ - return make_time_tail (t, Qnil); -} - /* Make a Lisp list that represents the Emacs time T. T may be an invalid time, with a slightly negative tv_nsec value such as UNKNOWN_MODTIME_NSECS; in that case, the Lisp list contains a @@ -1470,23 +1595,30 @@ make_time (time_t t) Lisp_Object make_lisp_time (struct timespec t) { + time_t s = t.tv_sec; int ns = t.tv_nsec; - return make_time_tail (t.tv_sec, list2i (ns / 1000, ns % 1000 * 1000)); + return list4i (hi_time (s), lo_time (s), ns / 1000, ns % 1000 * 1000); } /* Decode a Lisp list SPECIFIED_TIME that represents a time. Set *PHIGH, *PLOW, *PUSEC, *PPSEC to its parts; do not check their values. - Return true if successful. */ -static bool + Return 2, 3, or 4 to indicate the effective length of SPECIFIED_TIME + if successful, 0 if unsuccessful. */ +static int disassemble_lisp_time (Lisp_Object specified_time, Lisp_Object *phigh, Lisp_Object *plow, Lisp_Object *pusec, Lisp_Object *ppsec) { + Lisp_Object high = make_number (0); + Lisp_Object low = specified_time; + Lisp_Object usec = make_number (0); + Lisp_Object psec = make_number (0); + int len = 4; + if (CONSP (specified_time)) { - Lisp_Object low = XCDR (specified_time); - Lisp_Object usec = make_number (0); - Lisp_Object psec = make_number (0); + high = XCAR (specified_time); + low = XCDR (specified_time); if (CONSP (low)) { Lisp_Object low_tail = XCDR (low); @@ -1497,39 +1629,119 @@ disassemble_lisp_time (Lisp_Object specified_time, Lisp_Object *phigh, low_tail = XCDR (low_tail); if (CONSP (low_tail)) psec = XCAR (low_tail); + else + len = 3; } else if (!NILP (low_tail)) - usec = low_tail; + { + usec = low_tail; + len = 3; + } + else + len = 2; } + else + len = 2; - *phigh = XCAR (specified_time); - *plow = low; - *pusec = usec; - *ppsec = psec; - return 1; + /* When combining components, require LOW to be an integer, + as otherwise it would be a pain to add up times. */ + if (! INTEGERP (low)) + return 0; } + else if (INTEGERP (specified_time)) + len = 2; - return 0; + *phigh = high; + *plow = low; + *pusec = usec; + *ppsec = psec; + return len; +} + +/* Convert T into an Emacs time *RESULT, truncating toward minus infinity. + Return true if T is in range, false otherwise. */ +static bool +decode_float_time (double t, struct lisp_time *result) +{ + double lo_multiplier = 1 << LO_TIME_BITS; + double emacs_time_min = MOST_NEGATIVE_FIXNUM * lo_multiplier; + if (! (emacs_time_min <= t && t < -emacs_time_min)) + return false; + + double small_t = t / lo_multiplier; + EMACS_INT hi = small_t; + double t_sans_hi = t - hi * lo_multiplier; + int lo = t_sans_hi; + long double fracps = (t_sans_hi - lo) * 1e12L; +#ifdef INT_FAST64_MAX + int_fast64_t ifracps = fracps; + int us = ifracps / 1000000; + int ps = ifracps % 1000000; +#else + int us = fracps / 1e6L; + int ps = fracps - us * 1e6L; +#endif + us -= (ps < 0); + ps += (ps < 0) * 1000000; + lo -= (us < 0); + us += (us < 0) * 1000000; + hi -= (lo < 0); + lo += (lo < 0) << LO_TIME_BITS; + result->hi = hi; + result->lo = lo; + result->us = us; + result->ps = ps; + return true; } /* From the time components HIGH, LOW, USEC and PSEC taken from a Lisp list, generate the corresponding time value. + If LOW is floating point, the other components should be zero. - If RESULT is not null, store into *RESULT the converted time; - this can fail if the converted time does not fit into struct timespec. + If RESULT is not null, store into *RESULT the converted time. If *DRESULT is not null, store into *DRESULT the number of seconds since the start of the POSIX Epoch. - Return true if successful. */ + Return true if successful, false if the components are of the + wrong type or represent a time out of range. */ bool decode_time_components (Lisp_Object high, Lisp_Object low, Lisp_Object usec, Lisp_Object psec, - struct timespec *result, double *dresult) + struct lisp_time *result, double *dresult) { EMACS_INT hi, lo, us, ps; - if (! (INTEGERP (high) && INTEGERP (low) + if (! (INTEGERP (high) && INTEGERP (usec) && INTEGERP (psec))) - return 0; + return false; + if (! INTEGERP (low)) + { + if (FLOATP (low)) + { + double t = XFLOAT_DATA (low); + if (result && ! decode_float_time (t, result)) + return false; + if (dresult) + *dresult = t; + return true; + } + else if (NILP (low)) + { + struct timespec now = current_timespec (); + if (result) + { + result->hi = hi_time (now.tv_sec); + result->lo = lo_time (now.tv_sec); + result->us = now.tv_nsec / 1000; + result->ps = now.tv_nsec % 1000 * 1000; + } + if (dresult) + *dresult = now.tv_sec + now.tv_nsec / 1e9; + return true; + } + else + return false; + } + hi = XINT (high); lo = XINT (low); us = XINT (usec); @@ -1539,74 +1751,85 @@ decode_time_components (Lisp_Object high, Lisp_Object low, Lisp_Object usec, each overflow into the next higher-order component. */ us += ps / 1000000 - (ps % 1000000 < 0); lo += us / 1000000 - (us % 1000000 < 0); - hi += lo >> 16; + hi += lo >> LO_TIME_BITS; ps = ps % 1000000 + 1000000 * (ps % 1000000 < 0); us = us % 1000000 + 1000000 * (us % 1000000 < 0); - lo &= (1 << 16) - 1; + lo &= (1 << LO_TIME_BITS) - 1; if (result) { - if ((TYPE_SIGNED (time_t) ? TIME_T_MIN >> 16 <= hi : 0 <= hi) - && hi <= TIME_T_MAX >> 16) - { - /* Return the greatest representable time that is not greater - than the requested time. */ - time_t sec = hi; - *result = make_timespec ((sec << 16) + lo, us * 1000 + ps / 1000); - } - else - { - /* Overflow in the highest-order component. */ - return 0; - } + if (! (MOST_NEGATIVE_FIXNUM <= hi && hi <= MOST_POSITIVE_FIXNUM)) + return false; + result->hi = hi; + result->lo = lo; + result->us = us; + result->ps = ps; } if (dresult) - *dresult = (us * 1e6 + ps) / 1e12 + lo + hi * 65536.0; + { + double dhi = hi; + *dresult = (us * 1e6 + ps) / 1e12 + lo + dhi * (1 << LO_TIME_BITS); + } - return 1; + return true; +} + +struct timespec +lisp_to_timespec (struct lisp_time t) +{ + if (! ((TYPE_SIGNED (time_t) ? TIME_T_MIN >> LO_TIME_BITS <= t.hi : 0 <= t.hi) + && t.hi <= TIME_T_MAX >> LO_TIME_BITS)) + return invalid_timespec (); + time_t s = (t.hi << LO_TIME_BITS) + t.lo; + int ns = t.us * 1000 + t.ps / 1000; + return make_timespec (s, ns); } /* Decode a Lisp list SPECIFIED_TIME that represents a time. + Store its effective length into *PLEN. If SPECIFIED_TIME is nil, use the current time. + Signal an error if SPECIFIED_TIME does not represent a time. */ +static struct lisp_time +lisp_time_struct (Lisp_Object specified_time, int *plen) +{ + Lisp_Object high, low, usec, psec; + struct lisp_time t; + int len = disassemble_lisp_time (specified_time, &high, &low, &usec, &psec); + if (! (len && decode_time_components (high, low, usec, psec, &t, 0))) + invalid_time (); + *plen = len; + return t; +} - Round the time down to the nearest struct timespec value. - Return seconds since the Epoch. - Signal an error if unsuccessful. */ +/* Like lisp_time_struct, except return a struct timespec. + Discard any low-order digits. */ struct timespec lisp_time_argument (Lisp_Object specified_time) { - struct timespec t; - if (NILP (specified_time)) - t = current_timespec (); - else - { - Lisp_Object high, low, usec, psec; - if (! (disassemble_lisp_time (specified_time, &high, &low, &usec, &psec) - && decode_time_components (high, low, usec, psec, &t, 0))) - error ("Invalid time specification"); - } + int len; + struct lisp_time lt = lisp_time_struct (specified_time, &len); + struct timespec t = lisp_to_timespec (lt); + if (! timespec_valid_p (t)) + time_overflow (); return t; } /* Like lisp_time_argument, except decode only the seconds part, - do not allow out-of-range time stamps, do not check the subseconds part, - and always round down. */ + and do not check the subseconds part. */ static time_t lisp_seconds_argument (Lisp_Object specified_time) { - if (NILP (specified_time)) - return time (NULL); - else - { - Lisp_Object high, low, usec, psec; - struct timespec t; - if (! (disassemble_lisp_time (specified_time, &high, &low, &usec, &psec) - && decode_time_components (high, low, make_number (0), - make_number (0), &t, 0))) - error ("Invalid time specification"); - return t.tv_sec; - } + Lisp_Object high, low, usec, psec; + struct lisp_time t; + if (! (disassemble_lisp_time (specified_time, &high, &low, &usec, &psec) + && decode_time_components (high, low, make_number (0), + make_number (0), &t, 0))) + invalid_time (); + if (! ((TYPE_SIGNED (time_t) ? TIME_T_MIN >> LO_TIME_BITS <= t.hi : 0 <= t.hi) + && t.hi <= TIME_T_MAX >> LO_TIME_BITS)) + time_overflow (); + return (t.hi << LO_TIME_BITS) + t.lo; } DEFUN ("float-time", Ffloat_time, Sfloat_time, 0, 1, 0, @@ -1624,18 +1847,10 @@ or (if you need time as a string) `format-time-string'. */) (Lisp_Object specified_time) { double t; - if (NILP (specified_time)) - { - struct timespec now = current_timespec (); - t = now.tv_sec + now.tv_nsec / 1e9; - } - else - { - Lisp_Object high, low, usec, psec; - if (! (disassemble_lisp_time (specified_time, &high, &low, &usec, &psec) - && decode_time_components (high, low, usec, psec, 0, &t))) - error ("Invalid time specification"); - } + Lisp_Object high, low, usec, psec; + if (! (disassemble_lisp_time (specified_time, &high, &low, &usec, &psec) + && decode_time_components (high, low, usec, psec, 0, &t))) + invalid_time (); return make_float (t); } @@ -1767,39 +1982,28 @@ format_time_string (char const *format, ptrdiff_t formatlen, size_t len; Lisp_Object bufstring; int ns = t.tv_nsec; - struct tm *tm; USE_SAFE_ALLOCA; - while (1) + tmp = ut ? gmtime_r (&t.tv_sec, tmp) : localtime_r (&t.tv_sec, tmp); + if (! tmp) + time_overflow (); + synchronize_system_time_locale (); + + while (true) { - time_t *taddr = &t.tv_sec; - block_input (); - - synchronize_system_time_locale (); - - tm = ut ? gmtime (taddr) : localtime (taddr); - if (! tm) - { - unblock_input (); - time_overflow (); - } - *tmp = *tm; - buf[0] = '\1'; - len = emacs_nmemftime (buf, size, format, formatlen, tm, ut, ns); + len = emacs_nmemftime (buf, size, format, formatlen, tmp, ut, ns); if ((0 < len && len < size) || (len == 0 && buf[0] == '\0')) break; /* Buffer was too small, so make it bigger and try again. */ - len = emacs_nmemftime (NULL, SIZE_MAX, format, formatlen, tm, ut, ns); - unblock_input (); + len = emacs_nmemftime (NULL, SIZE_MAX, format, formatlen, tmp, ut, ns); if (STRING_BYTES_BOUND <= len) string_overflow (); size = len + 1; buf = SAFE_ALLOCA (size); } - unblock_input (); bufstring = make_unibyte_string (buf, len); SAFE_FREE (); return code_convert_string_norecord (bufstring, Vlocale_coding_system, 0); @@ -1823,38 +2027,30 @@ DOW and ZONE.) */) (Lisp_Object specified_time) { time_t time_spec = lisp_seconds_argument (specified_time); - struct tm save_tm; - struct tm *decoded_time; - Lisp_Object list_args[9]; + struct tm local_tm, gmt_tm; - block_input (); - decoded_time = localtime (&time_spec); - if (decoded_time) - save_tm = *decoded_time; - unblock_input (); - if (! (decoded_time - && MOST_NEGATIVE_FIXNUM - TM_YEAR_BASE <= save_tm.tm_year - && save_tm.tm_year <= MOST_POSITIVE_FIXNUM - TM_YEAR_BASE)) + if (! (localtime_r (&time_spec, &local_tm) + && MOST_NEGATIVE_FIXNUM - TM_YEAR_BASE <= local_tm.tm_year + && local_tm.tm_year <= MOST_POSITIVE_FIXNUM - TM_YEAR_BASE)) time_overflow (); - XSETFASTINT (list_args[0], save_tm.tm_sec); - XSETFASTINT (list_args[1], save_tm.tm_min); - XSETFASTINT (list_args[2], save_tm.tm_hour); - XSETFASTINT (list_args[3], save_tm.tm_mday); - XSETFASTINT (list_args[4], save_tm.tm_mon + 1); - /* On 64-bit machines an int is narrower than EMACS_INT, thus the - cast below avoids overflow in int arithmetics. */ - XSETINT (list_args[5], TM_YEAR_BASE + (EMACS_INT) save_tm.tm_year); - XSETFASTINT (list_args[6], save_tm.tm_wday); - list_args[7] = save_tm.tm_isdst ? Qt : Qnil; - block_input (); - decoded_time = gmtime (&time_spec); - if (decoded_time == 0) - list_args[8] = Qnil; - else - XSETINT (list_args[8], tm_diff (&save_tm, decoded_time)); - unblock_input (); - return Flist (9, list_args); + /* Avoid overflow when INT_MAX < EMACS_INT_MAX. */ + EMACS_INT tm_year_base = TM_YEAR_BASE; + + return Flist (9, ((Lisp_Object []) + {make_number (local_tm.tm_sec), + make_number (local_tm.tm_min), + make_number (local_tm.tm_hour), + make_number (local_tm.tm_mday), + make_number (local_tm.tm_mon + 1), + make_number (local_tm.tm_year + tm_year_base), + make_number (local_tm.tm_wday), + local_tm.tm_isdst ? Qt : Qnil, + (HAVE_TM_GMTOFF + ? make_number (tm_gmtoff (&local_tm)) + : gmtime_r (&time_spec, &gmt_tm) + ? make_number (tm_diff (&local_tm, &gmt_tm)) + : Qnil)})); } /* Return OBJ - OFFSET, checking that OBJ is a valid fixnum and that @@ -1910,18 +2106,12 @@ usage: (encode-time SECOND MINUTE HOUR DAY MONTH YEAR &optional ZONE) */) if (CONSP (zone)) zone = XCAR (zone); if (NILP (zone)) - { - block_input (); - value = mktime (&tm); - unblock_input (); - } + value = mktime (&tm); else { static char const tzbuf_format[] = "XXX%s%"pI"d:%02d:%02d"; char tzbuf[sizeof tzbuf_format + INT_STRLEN_BOUND (EMACS_INT)]; - char *old_tzstring; const char *tzstring; - USE_SAFE_ALLOCA; if (EQ (zone, Qt)) tzstring = "UTC0"; @@ -1938,35 +2128,19 @@ usage: (encode-time SECOND MINUTE HOUR DAY MONTH YEAR &optional ZONE) */) tzstring = tzbuf; } else + tzstring = 0; + + timezone_t tz = tzstring ? tzalloc (tzstring) : 0; + if (! tz) error ("Invalid time zone specification"); - - old_tzstring = getenv ("TZ"); - if (old_tzstring) - { - char *buf = SAFE_ALLOCA (strlen (old_tzstring) + 1); - old_tzstring = strcpy (buf, old_tzstring); - } - - block_input (); - - /* Set TZ before calling mktime; merely adjusting mktime's returned - value doesn't suffice, since that would mishandle leap seconds. */ - set_time_zone_rule (tzstring); - - value = mktime (&tm); - - set_time_zone_rule (old_tzstring); -#ifdef LOCALTIME_CACHE - tzset (); -#endif - unblock_input (); - SAFE_FREE (); + value = mktime_z (tz, &tm); + tzfree (tz); } if (value == (time_t) -1) time_overflow (); - return make_time (value); + return list2i (hi_time (value), lo_time (value)); } DEFUN ("current-time-string", Fcurrent_time_string, Scurrent_time_string, 0, 1, 0, @@ -1986,34 +2160,27 @@ but this is considered obsolete. */) (Lisp_Object specified_time) { time_t value = lisp_seconds_argument (specified_time); - struct tm *tm; - char buf[sizeof "Mon Apr 30 12:49:17 " + INT_STRLEN_BOUND (int) + 1]; - int len IF_LINT (= 0); /* Convert to a string in ctime format, except without the trailing newline, and without the 4-digit year limit. Don't use asctime or ctime, as they might dump core if the year is outside the range -999 .. 9999. */ - block_input (); - tm = localtime (&value); - if (tm) - { - static char const wday_name[][4] = - { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; - static char const mon_name[][4] = - { "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; - printmax_t year_base = TM_YEAR_BASE; - - len = sprintf (buf, "%s %s%3d %02d:%02d:%02d %"pMd, - wday_name[tm->tm_wday], mon_name[tm->tm_mon], tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec, - tm->tm_year + year_base); - } - unblock_input (); - if (! tm) + struct tm tm; + if (! localtime_r (&value, &tm)) time_overflow (); + static char const wday_name[][4] = + { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; + static char const mon_name[][4] = + { "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; + printmax_t year_base = TM_YEAR_BASE; + char buf[sizeof "Mon Apr 30 12:49:17 " + INT_STRLEN_BOUND (int) + 1]; + int len = sprintf (buf, "%s %s%3d %02d:%02d:%02d %"pMd, + wday_name[tm.tm_wday], mon_name[tm.tm_mon], tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec, + tm.tm_year + year_base); + return make_unibyte_string (buf, len); } @@ -2040,6 +2207,17 @@ tm_diff (struct tm *a, struct tm *b) + (a->tm_sec - b->tm_sec)); } +/* Yield A's UTC offset, or an unspecified value if unknown. */ +static long int +tm_gmtoff (struct tm *a) +{ +#if HAVE_TM_GMTOFF + return a->tm_gmtoff; +#else + return 0; +#endif +} + DEFUN ("current-time-zone", Fcurrent_time_zone, Scurrent_time_zone, 0, 1, 0, doc: /* Return the offset and name for the local time zone. This returns a list of the form (OFFSET NAME). @@ -2058,32 +2236,30 @@ the data it can't find. */) (Lisp_Object specified_time) { struct timespec value; - int offset; - struct tm *t; - struct tm localtm; + struct tm local_tm, gmt_tm; Lisp_Object zone_offset, zone_name; zone_offset = Qnil; value = make_timespec (lisp_seconds_argument (specified_time), 0); - zone_name = format_time_string ("%Z", sizeof "%Z" - 1, value, 0, &localtm); - block_input (); - t = gmtime (&value.tv_sec); - if (t) - offset = tm_diff (&localtm, t); - unblock_input (); + zone_name = format_time_string ("%Z", sizeof "%Z" - 1, value, 0, &local_tm); - if (t) + if (HAVE_TM_GMTOFF || gmtime_r (&value.tv_sec, &gmt_tm)) { + long int offset = (HAVE_TM_GMTOFF + ? tm_gmtoff (&local_tm) + : tm_diff (&local_tm, &gmt_tm)); zone_offset = make_number (offset); if (SCHARS (zone_name) == 0) { /* No local time zone name is available; use "+-NNNN" instead. */ - int m = offset / 60; - int am = offset < 0 ? - m : m; - char buf[sizeof "+00" + INT_STRLEN_BOUND (int)]; - zone_name = make_formatted_string (buf, "%c%02d%02d", + long int m = offset / 60; + long int am = offset < 0 ? - m : m; + long int hour = am / 60; + int min = am % 60; + char buf[sizeof "+00" + INT_STRLEN_BOUND (long int)]; + zone_name = make_formatted_string (buf, "%c%02ld%02d", (offset < 0 ? '-' : '+'), - am / 60, am % 60); + hour, min); } } @@ -2122,12 +2298,12 @@ only the former. */) /* Set the local time zone rule to TZSTRING. - This function is not thread-safe, partly because putenv, unsetenv - and tzset are not, and partly because of the static storage it - updates. Other threads that invoke localtime etc. may be adversely - affected while this function is executing. */ + This function is not thread-safe, in theory because putenv is not, + but mostly because of the static storage it updates. Other threads + that invoke localtime etc. may be adversely affected while this + function is executing. */ -void +static void set_time_zone_rule (const char *tzstring) { /* A buffer holding a string of the form "TZ=value", intended @@ -2136,75 +2312,47 @@ set_time_zone_rule (const char *tzstring) static ptrdiff_t tzvalbufsize; int tzeqlen = sizeof "TZ=" - 1; + ptrdiff_t tzstringlen = tzstring ? strlen (tzstring) : 0; + char *tzval = tzvalbuf; + bool new_tzvalbuf = tzvalbufsize <= tzeqlen + tzstringlen; -#ifdef LOCALTIME_CACHE - /* These two values are known to load tz files in buggy implementations, - i.e., Solaris 1 executables running under either Solaris 1 or Solaris 2. - Their values shouldn't matter in non-buggy implementations. - We don't use string literals for these strings, - since if a string in the environment is in readonly - storage, it runs afoul of bugs in SVR4 and Solaris 2.3. - See Sun bugs 1113095 and 1114114, ``Timezone routines - improperly modify environment''. */ - - static char set_time_zone_rule_tz[][sizeof "TZ=GMT+0"] - = { "TZ=GMT+0", "TZ=GMT+1" }; - - /* In SunOS 4.1.3_U1 and 4.1.4, if TZ has a value like - "US/Pacific" that loads a tz file, then changes to a value like - "XXX0" that does not load a tz file, and then changes back to - its original value, the last change is (incorrectly) ignored. - Also, if TZ changes twice in succession to values that do - not load a tz file, tzset can dump core (see Sun bug#1225179). - The following code works around these bugs. */ + if (new_tzvalbuf) + { + /* Do not attempt to free the old tzvalbuf, since another thread + may be using it. In practice, the first allocation is large + enough and memory does not leak. */ + tzval = xpalloc (NULL, &tzvalbufsize, + tzeqlen + tzstringlen - tzvalbufsize + 1, -1, 1); + tzvalbuf = tzval; + tzval[1] = 'Z'; + tzval[2] = '='; + } if (tzstring) { - /* Temporarily set TZ to a value that loads a tz file - and that differs from tzstring. */ - bool eq0 = strcmp (tzstring, set_time_zone_rule_tz[0] + tzeqlen) == 0; - xputenv (set_time_zone_rule_tz[eq0]); + /* Modify TZVAL in place. Although this is dicey in a + multithreaded environment, we know of no portable alternative. + Calling putenv or setenv could crash some other thread. */ + tzval[0] = 'T'; + strcpy (tzval + tzeqlen, tzstring); } else { - /* The implied tzstring is unknown, so temporarily set TZ to - two different values that each load a tz file. */ - xputenv (set_time_zone_rule_tz[0]); - tzset (); - xputenv (set_time_zone_rule_tz[1]); + /* Turn 'TZ=whatever' into an empty environment variable 'tZ='. + Although this is also dicey, calling unsetenv here can crash Emacs. + See Bug#8705. */ + tzval[0] = 't'; + tzval[tzeqlen] = 0; } - tzset (); - tzvalbuf_in_environ = 0; -#endif - if (!tzstring) + if (new_tzvalbuf) { - unsetenv ("TZ"); - tzvalbuf_in_environ = 0; - } - else - { - ptrdiff_t tzstringlen = strlen (tzstring); - - if (tzvalbufsize <= tzeqlen + tzstringlen) - { - unsetenv ("TZ"); - tzvalbuf_in_environ = 0; - tzvalbuf = xpalloc (tzvalbuf, &tzvalbufsize, - tzeqlen + tzstringlen - tzvalbufsize + 1, -1, 1); - memcpy (tzvalbuf, "TZ=", tzeqlen); - } - - strcpy (tzvalbuf + tzeqlen, tzstring); - - if (!tzvalbuf_in_environ) - { - xputenv (tzvalbuf); - tzvalbuf_in_environ = 1; - } + /* Although this is not thread-safe, in practice this runs only + on startup when there is only one thread. */ + xputenv (tzval); } -#ifdef LOCALTIME_CACHE +#ifdef HAVE_TZSET tzset (); #endif } @@ -3011,8 +3159,12 @@ static Lisp_Object check_translation (ptrdiff_t pos, ptrdiff_t pos_byte, ptrdiff_t end, Lisp_Object val) { - int buf_size = 16, buf_used = 0; - int *buf = alloca (sizeof (int) * buf_size); + int initial_buf[16]; + int *buf = initial_buf; + ptrdiff_t buf_size = ARRAYELTS (initial_buf); + int *bufalloc = 0; + ptrdiff_t buf_used = 0; + Lisp_Object result = Qnil; for (; CONSP (val); val = XCDR (val)) { @@ -3037,12 +3189,11 @@ check_translation (ptrdiff_t pos, ptrdiff_t pos_byte, ptrdiff_t end, if (buf_used == buf_size) { - int *newbuf; - - buf_size += 16; - newbuf = alloca (sizeof (int) * buf_size); - memcpy (newbuf, buf, sizeof (int) * buf_used); - buf = newbuf; + bufalloc = xpalloc (bufalloc, &buf_size, 1, -1, + sizeof *bufalloc); + if (buf == initial_buf) + memcpy (bufalloc, buf, sizeof initial_buf); + buf = bufalloc; } buf[buf_used++] = STRING_CHAR_AND_LENGTH (p, len1); pos_byte += len1; @@ -3051,10 +3202,15 @@ check_translation (ptrdiff_t pos, ptrdiff_t pos_byte, ptrdiff_t end, break; } if (i == len) - return XCAR (val); + { + result = XCAR (val); + break; + } } } - return Qnil; + + xfree (bufalloc); + return result; } @@ -4353,11 +4509,8 @@ usage: (format STRING &rest OBJECTS) */) Lisp_Object format2 (const char *string1, Lisp_Object arg0, Lisp_Object arg1) { - Lisp_Object args[3]; - args[0] = build_string (string1); - args[1] = arg0; - args[2] = arg1; - return Fformat (3, args); + AUTO_STRING (format, string1); + return Fformat (3, (Lisp_Object []) {format, arg0, arg1}); } DEFUN ("char-equal", Fchar_equal, Schar_equal, 2, 2, 0, @@ -4616,11 +4769,11 @@ Transposing beyond buffer boundaries is an error. */) if (tmp_interval3) set_text_properties_1 (startr1, endr2, Qnil, buf, tmp_interval3); + USE_SAFE_ALLOCA; + /* First region smaller than second. */ if (len1_byte < len2_byte) { - USE_SAFE_ALLOCA; - temp = SAFE_ALLOCA (len2_byte); /* Don't precompute these addresses. We have to compute them @@ -4632,21 +4785,19 @@ Transposing beyond buffer boundaries is an error. */) memcpy (temp, start2_addr, len2_byte); memcpy (start1_addr + len2_byte, start1_addr, len1_byte); memcpy (start1_addr, temp, len2_byte); - SAFE_FREE (); } else /* First region not smaller than second. */ { - USE_SAFE_ALLOCA; - temp = SAFE_ALLOCA (len1_byte); start1_addr = BYTE_POS_ADDR (start1_byte); start2_addr = BYTE_POS_ADDR (start2_byte); memcpy (temp, start1_addr, len1_byte); memcpy (start1_addr, start2_addr, len2_byte); memcpy (start1_addr + len2_byte, temp, len1_byte); - SAFE_FREE (); } + + SAFE_FREE (); graft_intervals_into_buffer (tmp_interval1, start1 + len2, len1, current_buffer, 0); graft_intervals_into_buffer (tmp_interval2, start1, @@ -4894,6 +5045,9 @@ functions if all the text being accessed has this property. */); defsubr (&Suser_full_name); defsubr (&Semacs_pid); defsubr (&Scurrent_time); + defsubr (&Stime_add); + defsubr (&Stime_subtract); + defsubr (&Stime_less_p); defsubr (&Sget_internal_run_time); defsubr (&Sformat_time_string); defsubr (&Sfloat_time); diff --git a/src/emacs.c b/src/emacs.c index eb5d48700c5..18c3a03eaed 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -86,13 +86,12 @@ along with GNU Emacs. If not, see . */ #include "charset.h" #include "composite.h" #include "dispextern.h" +#include "regex.h" #include "syntax.h" #include "sysselect.h" #include "systime.h" -#ifdef HAVE_GNUTLS #include "gnutls.h" -#endif #if (defined PROFILING \ && (defined __FreeBSD__ || defined GNU_LINUX || defined __MINGW32__)) @@ -148,7 +147,7 @@ extern int malloc_set_state (void *); /* True if the MALLOC_CHECK_ environment variable was set while dumping. Used to work around a bug in glibc's malloc. */ static bool malloc_using_checking; -#elif defined HAVE_PTHREAD && !defined SYSTEM_MALLOC +#elif defined HAVE_PTHREAD && !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC extern void malloc_enable_thread (void); #endif @@ -398,10 +397,11 @@ terminate_due_to_signal (int sig, int backtrace_limit) static void init_cmdargs (int argc, char **argv, int skip_args, char *original_pwd) { - register int i; + int i; Lisp_Object name, dir, handler; ptrdiff_t count = SPECPDL_INDEX (); Lisp_Object raw_name; + AUTO_STRING (slash_colon, "/:"); initial_argv = argv; initial_argc = argc; @@ -425,7 +425,7 @@ init_cmdargs (int argc, char **argv, int skip_args, char *original_pwd) if it would otherwise be treated as magic. */ handler = Ffind_file_name_handler (raw_name, Qt); if (! NILP (handler)) - raw_name = concat2 (build_string ("/:"), raw_name); + raw_name = concat2 (slash_colon, raw_name); Vinvocation_name = Ffile_name_nondirectory (raw_name); Vinvocation_directory = Ffile_name_directory (raw_name); @@ -443,7 +443,7 @@ init_cmdargs (int argc, char **argv, int skip_args, char *original_pwd) if it would otherwise be treated as magic. */ handler = Ffind_file_name_handler (found, Qt); if (! NILP (handler)) - found = concat2 (build_string ("/:"), found); + found = concat2 (slash_colon, found); Vinvocation_directory = Ffile_name_directory (found); } } @@ -579,12 +579,6 @@ DEFUN ("invocation-directory", Finvocation_directory, Sinvocation_directory, } -#ifdef HAVE_TZSET -/* A valid but unlikely value for the TZ environment value. - It is OK (though a bit slower) if the user actually chooses this value. */ -static char const dump_tz[] = "UtC0"; -#endif - /* Test whether the next argument in ARGV matches SSTR or a prefix of LSTR (at least MINLEN characters). If so, then if VALPTR is non-null (the argument is supposed to have a value) store in *VALPTR either @@ -728,7 +722,7 @@ main (int argc, char **argv) #ifdef DAEMON_MUST_EXEC char dname_arg2[80]; #endif - char *ch_to_dir; + char *ch_to_dir = 0; /* If we use --chdir, this records the original directory. */ char *original_pwd = 0; @@ -737,12 +731,6 @@ main (int argc, char **argv) stack_base = &dummy; #endif -#ifdef G_SLICE_ALWAYS_MALLOC - /* This is used by the Cygwin build. It's not needed starting with - cygwin-1.7.24, but it doesn't do any harm. */ - xputenv ("G_SLICE=always-malloc"); -#endif - #ifndef CANNOT_DUMP might_dump = !initialized; #endif @@ -750,9 +738,6 @@ main (int argc, char **argv) #ifdef GNU_LINUX if (!initialized) { - extern char my_endbss[]; - extern char *my_endbss_static; - if (my_heap_start == 0) my_heap_start = sbrk (0); @@ -819,10 +804,10 @@ main (int argc, char **argv) version = emacs_version; copyright = emacs_copyright; } - printf ("GNU Emacs %s\n", version); + printf ("%s %s\n", PACKAGE_NAME, version); printf ("%s\n", copyright); - printf ("GNU Emacs comes with ABSOLUTELY NO WARRANTY.\n"); - printf ("You may redistribute copies of Emacs\n"); + printf ("%s comes with ABSOLUTELY NO WARRANTY.\n", PACKAGE_NAME); + printf ("You may redistribute copies of %s\n", PACKAGE_NAME); printf ("under the terms of the GNU General Public License.\n"); printf ("For more information about these matters, "); printf ("see the file named COPYING.\n"); @@ -881,7 +866,6 @@ main (int argc, char **argv) && !getrlimit (RLIMIT_STACK, &rlim)) { long newlim; - extern size_t re_max_failures; /* Approximate the amount regex.c needs per unit of re_max_failures. */ int ratio = 20 * sizeof (char *); /* Then add 33% to cover the size of the smaller stacks that regex.c @@ -915,7 +899,7 @@ main (int argc, char **argv) clearerr (stdin); -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC /* Arrange to get warning messages as memory fills up. */ memory_warnings (0, malloc_warning); @@ -923,7 +907,7 @@ main (int argc, char **argv) Also call realloc and free for consistency. */ free (realloc (malloc (4), 4)); -#endif /* not SYSTEM_MALLOC */ +#endif /* not SYSTEM_MALLOC and not HYBRID_MALLOC */ #ifdef MSDOS SET_BINARY (fileno (stdin)); @@ -1148,12 +1132,13 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem #endif /* DOS_NT */ } -#if defined HAVE_PTHREAD && !defined SYSTEM_MALLOC && !defined DOUG_LEA_MALLOC +#if defined HAVE_PTHREAD && !defined SYSTEM_MALLOC \ + && !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC # ifndef CANNOT_DUMP /* Do not make gmalloc thread-safe when creating bootstrap-emacs, as - that causes an infinite recursive loop with FreeBSD. But do make - it thread-safe when creating emacs, otherwise bootstrap-emacs - fails on Cygwin. See Bug#14569. */ + that causes an infinite recursive loop with FreeBSD. See + Bug#14569. The part of this bug involving Cygwin is no longer + relevant, now that Cygwin defines HYBRID_MALLOC. */ if (!noninteractive || initialized) # endif malloc_enable_thread (); @@ -1246,19 +1231,19 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem /* Started from GUI? */ /* FIXME: Do the right thing if getenv returns NULL, or if chdir fails. */ - if (! inhibit_window_system && ! isatty (0)) + if (! inhibit_window_system && ! isatty (0) && ! ch_to_dir) chdir (getenv ("HOME")); if (skip_args < argc) { if (!strncmp (argv[skip_args], "-psn", 4)) { skip_args += 1; - chdir (getenv ("HOME")); + if (! ch_to_dir) chdir (getenv ("HOME")); } else if (skip_args+1 < argc && !strncmp (argv[skip_args+1], "-psn", 4)) { skip_args += 2; - chdir (getenv ("HOME")); + if (! ch_to_dir) chdir (getenv ("HOME")); } } #endif /* COCOA */ @@ -1512,9 +1497,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem syms_of_fontset (); #endif /* HAVE_NS */ -#ifdef HAVE_GNUTLS syms_of_gnutls (); -#endif #ifdef HAVE_GFILENOTIFY syms_of_gfilenotify (); @@ -1561,8 +1544,23 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem init_charset (); - init_editfns (); /* init_process_emacs uses Voperating_system_release. */ - init_process_emacs (); /* init_display uses add_keyboard_wait_descriptor. */ + /* This calls putenv and so must precede init_process_emacs. Also, + it sets Voperating_system_release, which init_process_emacs uses. */ + init_editfns (); + + /* These two call putenv. */ +#ifdef HAVE_DBUS + init_dbusbind (); +#endif +#ifdef USE_GTK + init_xterm (); +#endif + + /* This can create a thread that may call getenv, so it must follow + all calls to putenv and setenv. Also, this sets up + add_keyboard_wait_descriptor, which init_display uses. */ + init_process_emacs (); + init_keyboard (); /* This too must precede init_sys_modes. */ if (!noninteractive) init_display (); /* Determine terminal type. Calls init_sys_modes. */ @@ -1599,26 +1597,6 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem build_string ("loadup.el")); } - if (initialized) - { -#ifdef HAVE_TZSET - { - /* If the execution TZ happens to be the same as the dump TZ, - change it to some other value and then change it back, - to force the underlying implementation to reload the TZ info. - This is needed on implementations that load TZ info from files, - since the TZ file contents may differ between dump and execution. */ - char *tz = getenv ("TZ"); - if (tz && !strcmp (tz, dump_tz)) - { - ++*tz; - tzset (); - --*tz; - } - } -#endif - } - /* Set up for profiling. This is known to work on FreeBSD, GNU/Linux and MinGW. It might work on some other systems too. Give it a try and tell us if it works on your system. To compile @@ -1643,15 +1621,6 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem initialized = 1; -#ifdef LOCALTIME_CACHE - /* Some versions of localtime have a bug. They cache the value of the time - zone rather than looking it up every time. Since localtime() is - called to bolt the undumping time into the undumped emacs, this - results in localtime ignoring the TZ environment variable. - This flushes the new TZ value into localtime. */ - tzset (); -#endif /* defined (LOCALTIME_CACHE) */ - /* Enter editor command loop. This never returns. */ Frecursive_edit (); /* NOTREACHED */ @@ -2132,27 +2101,16 @@ You must run Emacs in batch mode in order to dump it. */) tem = Vpurify_flag; Vpurify_flag = Qnil; -#ifdef HAVE_TZSET - set_time_zone_rule (dump_tz); -#ifndef LOCALTIME_CACHE - /* Force a tz reload, since set_time_zone_rule doesn't. */ - tzset (); -#endif -#endif - fflush (stdout); /* Tell malloc where start of impure now is. */ /* Also arrange for warnings when nearly out of space. */ -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC #ifndef WINDOWSNT /* On Windows, this was done before dumping, and that once suffices. Meanwhile, my_edata is not valid on Windows. */ - { - extern char my_edata[]; - memory_warnings (my_edata, malloc_warning); - } + memory_warnings (my_edata, malloc_warning); #endif /* not WINDOWSNT */ -#endif /* not SYSTEM_MALLOC */ +#endif /* not SYSTEM_MALLOC and not HYBRID_MALLOC */ #ifdef DOUG_LEA_MALLOC malloc_state_ptr = malloc_get_state (); #endif @@ -2340,7 +2298,10 @@ decode_env_path (const char *evarname, const char *defalt, bool empty) } if (! NILP (tem)) - element = concat2 (build_string ("/:"), element); + { + AUTO_STRING (slash_colon, "/:"); + element = concat2 (slash_colon, element); + } } /* !NILP (element) */ lpath = Fcons (element, lpath); diff --git a/src/eval.c b/src/eval.c index 4b2e256a722..8194468a650 100644 --- a/src/eval.c +++ b/src/eval.c @@ -27,6 +27,7 @@ along with GNU Emacs. If not, see . */ #include "commands.h" #include "keyboard.h" #include "dispextern.h" +#include "buffer.h" /* Chain of condition and catch handlers currently in effect. */ @@ -104,7 +105,7 @@ union specbinding *backtrace_next (union specbinding *) EXTERNALLY_VISIBLE; union specbinding *backtrace_top (void) EXTERNALLY_VISIBLE; static Lisp_Object funcall_lambda (Lisp_Object, ptrdiff_t, Lisp_Object *); -static Lisp_Object apply_lambda (Lisp_Object fun, Lisp_Object args); +static Lisp_Object apply_lambda (Lisp_Object, Lisp_Object, ptrdiff_t); static Lisp_Object specpdl_symbol (union specbinding *pdl) @@ -172,17 +173,11 @@ backtrace_debug_on_exit (union specbinding *pdl) /* Functions to modify slots of backtrace records. */ static void -set_backtrace_args (union specbinding *pdl, Lisp_Object *args) +set_backtrace_args (union specbinding *pdl, Lisp_Object *args, ptrdiff_t nargs) { eassert (pdl->kind == SPECPDL_BACKTRACE); pdl->bt.args = args; -} - -static void -set_backtrace_nargs (union specbinding *pdl, ptrdiff_t n) -{ - eassert (pdl->kind == SPECPDL_BACKTRACE); - pdl->bt.nargs = n; + pdl->bt.nargs = nargs; } static void @@ -334,10 +329,10 @@ call_debugger (Lisp_Object arg) } static void -do_debug_on_call (Lisp_Object code) +do_debug_on_call (Lisp_Object code, ptrdiff_t count) { debug_on_next_call = 0; - set_backtrace_debug_on_exit (specpdl_ptr - 1, true); + set_backtrace_debug_on_exit (specpdl + count, true); call_debugger (list1 (code)); } @@ -1272,8 +1267,11 @@ internal_lisp_condition_case (volatile Lisp_Object var, Lisp_Object bodyform, { /* The first clause is the one that should be checked first, so it should be added to handlerlist last. So we build in `clauses' a table that - contains `handlers' but in reverse order. */ - Lisp_Object *clauses = alloca (clausenb * sizeof (Lisp_Object *)); + contains `handlers' but in reverse order. SAFE_ALLOCA won't work + here due to the setjmp, so impose a MAX_ALLOCA limit. */ + if (MAX_ALLOCA / word_size < clausenb) + memory_full (SIZE_MAX); + Lisp_Object *clauses = alloca (clausenb * sizeof *clauses); Lisp_Object *volatile clauses_volatile = clauses; int i = clausenb; for (val = handlers; CONSP (val); val = XCDR (val)) @@ -1311,7 +1309,7 @@ internal_lisp_condition_case (volatile Lisp_Object var, Lisp_Object bodyform, return val; } } - } + } val = eval_sub (bodyform); handlerlist = oldhandlerlist; @@ -1535,8 +1533,7 @@ See also the function `condition-case'. */) || NILP (clause) /* A `debug' symbol in the handler list disables the normal suppression of the debugger. */ - || (CONSP (clause) && CONSP (clause) - && !NILP (Fmemq (Qdebug, clause))) + || (CONSP (clause) && !NILP (Fmemq (Qdebug, clause))) /* Special handler that means "print a message and run debugger if requested". */ || EQ (h->tag_or_ch, Qerror))) @@ -1920,7 +1917,7 @@ DEFUN ("autoload-do-load", Fautoload_do_load, Sautoload_do_load, 1, 3, 0, If non-nil, FUNNAME should be the symbol whose function value is FUNDEF, in which case the function returns the new autoloaded function value. If equal to `macro', MACRO-ONLY specifies that FUNDEF should only be loaded if -it is defines a macro. */) +it defines a macro. */) (Lisp_Object fundef, Lisp_Object funname, Lisp_Object macro_only) { ptrdiff_t count = SPECPDL_INDEX (); @@ -2032,9 +2029,11 @@ grow_specpdl (void) } } -void +ptrdiff_t record_in_backtrace (Lisp_Object function, Lisp_Object *args, ptrdiff_t nargs) { + ptrdiff_t count = SPECPDL_INDEX (); + eassert (nargs >= UNEVALLED); specpdl_ptr->bt.kind = SPECPDL_BACKTRACE; specpdl_ptr->bt.debug_on_exit = false; @@ -2042,6 +2041,8 @@ record_in_backtrace (Lisp_Object function, Lisp_Object *args, ptrdiff_t nargs) specpdl_ptr->bt.args = args; specpdl_ptr->bt.nargs = nargs; grow_specpdl (); + + return count; } /* Eval a sub-expression of the current expression (i.e. in the same @@ -2052,6 +2053,7 @@ eval_sub (Lisp_Object form) Lisp_Object fun, val, original_fun, original_args; Lisp_Object funcar; struct gcpro gcpro1, gcpro2, gcpro3; + ptrdiff_t count; if (SYMBOLP (form)) { @@ -2089,10 +2091,10 @@ eval_sub (Lisp_Object form) original_args = XCDR (form); /* This also protects them from gc. */ - record_in_backtrace (original_fun, &original_args, UNEVALLED); + count = record_in_backtrace (original_fun, &original_args, UNEVALLED); if (debug_on_next_call) - do_debug_on_call (Qt); + do_debug_on_call (Qt, count); /* At this point, only original_fun and original_args have values that will be used below. */ @@ -2144,8 +2146,7 @@ eval_sub (Lisp_Object form) gcpro3.nvars = argnum; } - set_backtrace_args (specpdl_ptr - 1, vals); - set_backtrace_nargs (specpdl_ptr - 1, XINT (numargs)); + set_backtrace_args (specpdl + count, vals, XINT (numargs)); val = (XSUBR (fun)->function.aMANY) (XINT (numargs), vals); UNGCPRO; @@ -2166,8 +2167,7 @@ eval_sub (Lisp_Object form) UNGCPRO; - set_backtrace_args (specpdl_ptr - 1, argvals); - set_backtrace_nargs (specpdl_ptr - 1, XINT (numargs)); + set_backtrace_args (specpdl + count, argvals, XINT (numargs)); switch (i) { @@ -2220,7 +2220,7 @@ eval_sub (Lisp_Object form) } } else if (COMPILEDP (fun)) - val = apply_lambda (fun, original_args); + val = apply_lambda (fun, original_args, count); else { if (NILP (fun)) @@ -2237,7 +2237,7 @@ eval_sub (Lisp_Object form) } if (EQ (funcar, Qmacro)) { - ptrdiff_t count = SPECPDL_INDEX (); + ptrdiff_t count1 = SPECPDL_INDEX (); Lisp_Object exp; /* Bind lexical-binding during expansion of the macro, so the macro can know reliably if the code it outputs will be @@ -2245,19 +2245,19 @@ eval_sub (Lisp_Object form) specbind (Qlexical_binding, NILP (Vinternal_interpreter_environment) ? Qnil : Qt); exp = apply1 (Fcdr (fun), original_args); - unbind_to (count, Qnil); + unbind_to (count1, Qnil); val = eval_sub (exp); } else if (EQ (funcar, Qlambda) || EQ (funcar, Qclosure)) - val = apply_lambda (fun, original_args); + val = apply_lambda (fun, original_args, count); else xsignal1 (Qinvalid_function, original_fun); } check_cons_list (); lisp_eval_depth--; - if (backtrace_debug_on_exit (specpdl_ptr - 1)) + if (backtrace_debug_on_exit (specpdl + count)) val = call_debugger (list2 (Qexit, val)); specpdl_ptr--; @@ -2271,17 +2271,13 @@ Thus, (apply '+ 1 2 '(3 4)) returns 10. usage: (apply FUNCTION &rest ARGUMENTS) */) (ptrdiff_t nargs, Lisp_Object *args) { - ptrdiff_t i; - EMACS_INT numargs; - register Lisp_Object spread_arg; - register Lisp_Object *funcall_args; - Lisp_Object fun, retval; - struct gcpro gcpro1; + ptrdiff_t i, numargs, funcall_nargs; + register Lisp_Object *funcall_args = NULL; + register Lisp_Object spread_arg = args[nargs - 1]; + Lisp_Object fun = args[0]; + Lisp_Object retval; USE_SAFE_ALLOCA; - fun = args [0]; - funcall_args = 0; - spread_arg = args [nargs - 1]; CHECK_LIST (spread_arg); numargs = XINT (Flength (spread_arg)); @@ -2299,38 +2295,29 @@ usage: (apply FUNCTION &rest ARGUMENTS) */) /* Optimize for no indirection. */ if (SYMBOLP (fun) && !NILP (fun) && (fun = XSYMBOL (fun)->function, SYMBOLP (fun))) - fun = indirect_function (fun); - if (NILP (fun)) { - /* Let funcall get the error. */ - fun = args[0]; - goto funcall; + fun = indirect_function (fun); + if (NILP (fun)) + /* Let funcall get the error. */ + fun = args[0]; } - if (SUBRP (fun)) + if (SUBRP (fun) && XSUBR (fun)->max_args > numargs + /* Don't hide an error by adding missing arguments. */ + && numargs >= XSUBR (fun)->min_args) { - if (numargs < XSUBR (fun)->min_args - || (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < numargs)) - goto funcall; /* Let funcall get the error. */ - else if (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args > numargs) - { - /* Avoid making funcall cons up a yet another new vector of arguments - by explicitly supplying nil's for optional values. */ - SAFE_ALLOCA_LISP (funcall_args, 1 + XSUBR (fun)->max_args); - for (i = numargs; i < XSUBR (fun)->max_args;) - funcall_args[++i] = Qnil; - GCPRO1 (*funcall_args); - gcpro1.nvars = 1 + XSUBR (fun)->max_args; - } + /* Avoid making funcall cons up a yet another new vector of arguments + by explicitly supplying nil's for optional values. */ + SAFE_ALLOCA_LISP (funcall_args, 1 + XSUBR (fun)->max_args); + for (i = numargs; i < XSUBR (fun)->max_args; /* nothing */) + funcall_args[++i] = Qnil; + funcall_nargs = 1 + XSUBR (fun)->max_args; } - funcall: - /* We add 1 to numargs because funcall_args includes the - function itself as well as its arguments. */ - if (!funcall_args) - { + else + { /* We add 1 to numargs because funcall_args includes the + function itself as well as its arguments. */ SAFE_ALLOCA_LISP (funcall_args, 1 + numargs); - GCPRO1 (*funcall_args); - gcpro1.nvars = 1 + numargs; + funcall_nargs = 1 + numargs; } memcpy (funcall_args, args, nargs * word_size); @@ -2343,11 +2330,10 @@ usage: (apply FUNCTION &rest ARGUMENTS) */) spread_arg = XCDR (spread_arg); } - /* By convention, the caller needs to gcpro Ffuncall's args. */ - retval = Ffuncall (gcpro1.nvars, funcall_args); - UNGCPRO; - SAFE_FREE (); + /* Ffuncall gcpro's all of its args. */ + retval = Ffuncall (funcall_nargs, funcall_args); + SAFE_FREE (); return retval; } @@ -2555,41 +2541,22 @@ run_hook_with_args (ptrdiff_t nargs, Lisp_Object *args, void run_hook_with_args_2 (Lisp_Object hook, Lisp_Object arg1, Lisp_Object arg2) { - Lisp_Object temp[3]; - temp[0] = hook; - temp[1] = arg1; - temp[2] = arg2; - - Frun_hook_with_args (3, temp); + Frun_hook_with_args (3, ((Lisp_Object []) { hook, arg1, arg2 })); } - + /* Apply fn to arg. */ Lisp_Object apply1 (Lisp_Object fn, Lisp_Object arg) { - struct gcpro gcpro1; - - GCPRO1 (fn); - if (NILP (arg)) - RETURN_UNGCPRO (Ffuncall (1, &fn)); - gcpro1.nvars = 2; - { - Lisp_Object args[2]; - args[0] = fn; - args[1] = arg; - gcpro1.var = args; - RETURN_UNGCPRO (Fapply (2, args)); - } + return (NILP (arg) ? Ffuncall (1, &fn) + : Fapply (2, ((Lisp_Object []) { fn, arg }))); } /* Call function fn on no arguments. */ Lisp_Object call0 (Lisp_Object fn) { - struct gcpro gcpro1; - - GCPRO1 (fn); - RETURN_UNGCPRO (Ffuncall (1, &fn)); + return Ffuncall (1, &fn); } /* Call function fn with 1 argument arg1. */ @@ -2597,14 +2564,7 @@ call0 (Lisp_Object fn) Lisp_Object call1 (Lisp_Object fn, Lisp_Object arg1) { - struct gcpro gcpro1; - Lisp_Object args[2]; - - args[0] = fn; - args[1] = arg1; - GCPRO1 (args[0]); - gcpro1.nvars = 2; - RETURN_UNGCPRO (Ffuncall (2, args)); + return Ffuncall (2, ((Lisp_Object []) { fn, arg1 })); } /* Call function fn with 2 arguments arg1, arg2. */ @@ -2612,14 +2572,7 @@ call1 (Lisp_Object fn, Lisp_Object arg1) Lisp_Object call2 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2) { - struct gcpro gcpro1; - Lisp_Object args[3]; - args[0] = fn; - args[1] = arg1; - args[2] = arg2; - GCPRO1 (args[0]); - gcpro1.nvars = 3; - RETURN_UNGCPRO (Ffuncall (3, args)); + return Ffuncall (3, ((Lisp_Object []) { fn, arg1, arg2 })); } /* Call function fn with 3 arguments arg1, arg2, arg3. */ @@ -2627,15 +2580,7 @@ call2 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2) Lisp_Object call3 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2, Lisp_Object arg3) { - struct gcpro gcpro1; - Lisp_Object args[4]; - args[0] = fn; - args[1] = arg1; - args[2] = arg2; - args[3] = arg3; - GCPRO1 (args[0]); - gcpro1.nvars = 4; - RETURN_UNGCPRO (Ffuncall (4, args)); + return Ffuncall (4, ((Lisp_Object []) { fn, arg1, arg2, arg3 })); } /* Call function fn with 4 arguments arg1, arg2, arg3, arg4. */ @@ -2644,16 +2589,7 @@ Lisp_Object call4 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2, Lisp_Object arg3, Lisp_Object arg4) { - struct gcpro gcpro1; - Lisp_Object args[5]; - args[0] = fn; - args[1] = arg1; - args[2] = arg2; - args[3] = arg3; - args[4] = arg4; - GCPRO1 (args[0]); - gcpro1.nvars = 5; - RETURN_UNGCPRO (Ffuncall (5, args)); + return Ffuncall (5, ((Lisp_Object []) { fn, arg1, arg2, arg3, arg4 })); } /* Call function fn with 5 arguments arg1, arg2, arg3, arg4, arg5. */ @@ -2662,17 +2598,7 @@ Lisp_Object call5 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2, Lisp_Object arg3, Lisp_Object arg4, Lisp_Object arg5) { - struct gcpro gcpro1; - Lisp_Object args[6]; - args[0] = fn; - args[1] = arg1; - args[2] = arg2; - args[3] = arg3; - args[4] = arg4; - args[5] = arg5; - GCPRO1 (args[0]); - gcpro1.nvars = 6; - RETURN_UNGCPRO (Ffuncall (6, args)); + return Ffuncall (6, ((Lisp_Object []) { fn, arg1, arg2, arg3, arg4, arg5 })); } /* Call function fn with 6 arguments arg1, arg2, arg3, arg4, arg5, arg6. */ @@ -2681,18 +2607,8 @@ Lisp_Object call6 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2, Lisp_Object arg3, Lisp_Object arg4, Lisp_Object arg5, Lisp_Object arg6) { - struct gcpro gcpro1; - Lisp_Object args[7]; - args[0] = fn; - args[1] = arg1; - args[2] = arg2; - args[3] = arg3; - args[4] = arg4; - args[5] = arg5; - args[6] = arg6; - GCPRO1 (args[0]); - gcpro1.nvars = 7; - RETURN_UNGCPRO (Ffuncall (7, args)); + return Ffuncall (7, ((Lisp_Object []) + { fn, arg1, arg2, arg3, arg4, arg5, arg6 })); } /* Call function fn with 7 arguments arg1, arg2, arg3, arg4, arg5, arg6, arg7. */ @@ -2701,19 +2617,8 @@ Lisp_Object call7 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2, Lisp_Object arg3, Lisp_Object arg4, Lisp_Object arg5, Lisp_Object arg6, Lisp_Object arg7) { - struct gcpro gcpro1; - Lisp_Object args[8]; - args[0] = fn; - args[1] = arg1; - args[2] = arg2; - args[3] = arg3; - args[4] = arg4; - args[5] = arg5; - args[6] = arg6; - args[7] = arg7; - GCPRO1 (args[0]); - gcpro1.nvars = 8; - RETURN_UNGCPRO (Ffuncall (8, args)); + return Ffuncall (8, ((Lisp_Object []) + { fn, arg1, arg2, arg3, arg4, arg5, arg6, arg7 })); } /* The caller should GCPRO all the elements of ARGS. */ @@ -2740,7 +2645,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) Lisp_Object lisp_numargs; Lisp_Object val; register Lisp_Object *internal_args; - ptrdiff_t i; + ptrdiff_t i, count; QUIT; @@ -2753,13 +2658,13 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) } /* This also GCPROs them. */ - record_in_backtrace (args[0], &args[1], nargs - 1); + count = record_in_backtrace (args[0], &args[1], nargs - 1); /* Call GC after setting up the backtrace, so the latter GCPROs the args. */ maybe_gc (); if (debug_on_next_call) - do_debug_on_call (Qlambda); + do_debug_on_call (Qlambda, count); check_cons_list (); @@ -2789,10 +2694,11 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) val = (XSUBR (fun)->function.aMANY) (numargs, args + 1); else { + Lisp_Object internal_argbuf[8]; if (XSUBR (fun)->max_args > numargs) { - internal_args = alloca (XSUBR (fun)->max_args - * sizeof *internal_args); + eassert (XSUBR (fun)->max_args <= ARRAYELTS (internal_argbuf)); + internal_args = internal_argbuf; memcpy (internal_args, args + 1, numargs * word_size); for (i = numargs; i < XSUBR (fun)->max_args; i++) internal_args[i] = Qnil; @@ -2878,14 +2784,14 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) } check_cons_list (); lisp_eval_depth--; - if (backtrace_debug_on_exit (specpdl_ptr - 1)) + if (backtrace_debug_on_exit (specpdl + count)) val = call_debugger (list2 (Qexit, val)); specpdl_ptr--; return val; } static Lisp_Object -apply_lambda (Lisp_Object fun, Lisp_Object args) +apply_lambda (Lisp_Object fun, Lisp_Object args, ptrdiff_t count) { Lisp_Object args_left; ptrdiff_t i; @@ -2912,15 +2818,14 @@ apply_lambda (Lisp_Object fun, Lisp_Object args) UNGCPRO; - set_backtrace_args (specpdl_ptr - 1, arg_vector); - set_backtrace_nargs (specpdl_ptr - 1, i); + set_backtrace_args (specpdl + count, arg_vector, i); tem = funcall_lambda (fun, numargs, arg_vector); /* Do the debug-on-exit now, while arg_vector still exists. */ - if (backtrace_debug_on_exit (specpdl_ptr - 1)) + if (backtrace_debug_on_exit (specpdl + count)) { /* Don't do it again when we return to eval. */ - set_backtrace_debug_on_exit (specpdl_ptr - 1, false); + set_backtrace_debug_on_exit (specpdl + count, false); tem = call_debugger (list2 (Qexit, tem)); } SAFE_FREE (); @@ -3499,13 +3404,24 @@ backtrace_eval_unrewind (int distance) for (; distance > 0; distance--) { tmp += step; - /* */ switch (tmp->kind) { /* FIXME: Ideally we'd like to "temporarily unwind" (some of) those unwind_protect, but the problem is that we don't know how to rewind them afterwards. */ case SPECPDL_UNWIND: + { + Lisp_Object oldarg = tmp->unwind.arg; + if (tmp->unwind.func == set_buffer_if_live) + tmp->unwind.arg = Fcurrent_buffer (); + else if (tmp->unwind.func == save_excursion_restore) + tmp->unwind.arg = save_excursion_save (); + else + break; + tmp->unwind.func (oldarg); + break; + } + case SPECPDL_UNWIND_PTR: case SPECPDL_UNWIND_INT: case SPECPDL_UNWIND_VOID: diff --git a/src/fileio.c b/src/fileio.c index f0bd75b170e..39514ee18e6 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -148,6 +148,7 @@ static Lisp_Object Qcopy_directory; static Lisp_Object Qdelete_directory; static Lisp_Object Qsubstitute_env_in_file_name; +static Lisp_Object Qget_buffer_window_list; Lisp_Object Qfile_error, Qfile_notify_error; static Lisp_Object Qfile_already_exists, Qfile_date_error; @@ -197,7 +198,7 @@ check_writable (const char *filename, int amode) bool res = faccessat (AT_FDCWD, filename, amode, AT_EACCESS) == 0; #ifdef CYGWIN /* faccessat may have returned failure because Cygwin couldn't - determine the file's UID or GID; if so, we return success. */ + determine the file's UID or GID; if so, we return success. */ if (!res) { int faccessat_errno = errno; @@ -323,7 +324,6 @@ static Lisp_Object Qfile_acl; static Lisp_Object Qset_file_acl; static Lisp_Object Qfile_newer_than_file_p; Lisp_Object Qinsert_file_contents; -static Lisp_Object Qchoose_write_coding_system; Lisp_Object Qwrite_region; static Lisp_Object Qverify_visited_file_modtime; static Lisp_Object Qset_visited_file_modtime; @@ -397,13 +397,6 @@ Otherwise return a directory name. Given a Unix syntax file name, returns a string ending in slash. */) (Lisp_Object filename) { -#ifndef DOS_NT - register const char *beg; -#else - register char *beg; - Lisp_Object tem_fn; -#endif - register const char *p; Lisp_Object handler; CHECK_STRING (filename); @@ -418,12 +411,8 @@ Given a Unix syntax file name, returns a string ending in slash. */) return STRINGP (handled_name) ? handled_name : Qnil; } -#ifdef DOS_NT - beg = xlispstrdupa (filename); -#else - beg = SSDATA (filename); -#endif - p = beg + SBYTES (filename); + char *beg = SSDATA (filename); + char const *p = beg + SBYTES (filename); while (p != beg && !IS_DIRECTORY_SEP (p[-1]) #ifdef DOS_NT @@ -439,6 +428,11 @@ Given a Unix syntax file name, returns a string ending in slash. */) return Qnil; #ifdef DOS_NT /* Expansion of "c:" to drive and default directory. */ + Lisp_Object tem_fn; + USE_SAFE_ALLOCA; + SAFE_ALLOCA_STRING (beg, filename); + p = beg + (p - SSDATA (filename)); + if (p[-1] == ':') { /* MAXPATHLEN+1 is guaranteed to be enough space for getdefdir. */ @@ -482,6 +476,7 @@ Given a Unix syntax file name, returns a string ending in slash. */) dostounix_filename (beg); tem_fn = make_specified_string (beg, -1, p - beg, 0); } + SAFE_FREE (); return tem_fn; #else /* DOS_NT */ return make_specified_string (beg, -1, p - beg, STRING_MULTIBYTE (filename)); @@ -734,7 +729,7 @@ Lisp_Object make_temp_name (Lisp_Object prefix, bool base64_p) { Lisp_Object val, encoded_prefix; - int len; + ptrdiff_t len; printmax_t pid; char *p, *data; char pidbuf[INT_BUFSIZE_BOUND (printmax_t)]; @@ -848,8 +843,6 @@ probably use `make-temp-file' instead, except in three circumstances: return make_temp_name (prefix, 0); } - - DEFUN ("expand-file-name", Fexpand_file_name, Sexpand_file_name, 1, 2, 0, doc: /* Convert filename NAME to absolute, and canonicalize it. Second arg DEFAULT-DIRECTORY is directory to start with if NAME is relative @@ -879,7 +872,9 @@ filesystem tree, not (expand-file-name ".." dirname). */) /* These point to SDATA and need to be careful with string-relocation during GC (via DECODE_FILE). */ char *nm; + char *nmlim; const char *newdir; + const char *newdirlim; /* This should only point to alloca'd data. */ char *target; @@ -887,10 +882,10 @@ filesystem tree, not (expand-file-name ".." dirname). */) struct passwd *pw; #ifdef DOS_NT int drive = 0; - bool collapse_newdir = 1; + bool collapse_newdir = true; bool is_escaped = 0; #endif /* DOS_NT */ - ptrdiff_t length; + ptrdiff_t length, nbytes; Lisp_Object handler, result, handled_name; bool multibyte; Lisp_Object hdir; @@ -1019,8 +1014,9 @@ filesystem tree, not (expand-file-name ".." dirname). */) default_directory = Fdowncase (default_directory); #endif - /* Make a local copy of nm[] to protect it from GC in DECODE_FILE below. */ - nm = xlispstrdupa (name); + /* Make a local copy of NAME to protect it from GC in DECODE_FILE below. */ + SAFE_ALLOCA_STRING (nm, name); + nmlim = nm + SBYTES (name); #ifdef DOS_NT /* Note if special escape prefix is present, but remove for now. */ @@ -1105,7 +1101,7 @@ filesystem tree, not (expand-file-name ".." dirname). */) if (IS_DIRECTORY_SEP (nm[1])) { if (strcmp (nm, SSDATA (name)) != 0) - name = make_specified_string (nm, -1, strlen (nm), multibyte); + name = make_specified_string (nm, -1, nmlim - nm, multibyte); } else #endif @@ -1116,18 +1112,19 @@ filesystem tree, not (expand-file-name ".." dirname). */) name = make_specified_string (nm, -1, p - nm, multibyte); temp[0] = DRIVE_LETTER (drive); - name = concat2 (build_string (temp), name); + AUTO_STRING (drive_prefix, temp); + name = concat2 (drive_prefix, name); } #ifdef WINDOWSNT if (!NILP (Vw32_downcase_file_names)) name = Fdowncase (name); #endif - return name; #else /* not DOS_NT */ - if (strcmp (nm, SSDATA (name)) == 0) - return name; - return make_specified_string (nm, -1, strlen (nm), multibyte); + if (strcmp (nm, SSDATA (name)) != 0) + name = make_specified_string (nm, -1, nmlim - nm, multibyte); #endif /* not DOS_NT */ + SAFE_FREE (); + return name; } } @@ -1147,7 +1144,7 @@ filesystem tree, not (expand-file-name ".." dirname). */) return an absolute name, if the final prefix is not absolute we append it to the current working directory. */ - newdir = 0; + newdir = newdirlim = 0; if (nm[0] == '~') /* prefix ~ */ { @@ -1157,7 +1154,7 @@ filesystem tree, not (expand-file-name ".." dirname). */) Lisp_Object tem; if (!(newdir = egetenv ("HOME"))) - newdir = ""; + newdir = newdirlim = ""; nm++; /* `egetenv' may return a unibyte string, which will bite us since we expect the directory to be multibyte. */ @@ -1167,18 +1164,20 @@ filesystem tree, not (expand-file-name ".." dirname). */) char newdir_utf8[MAX_UTF8_PATH]; filename_from_ansi (newdir, newdir_utf8); - tem = build_string (newdir_utf8); + tem = make_unibyte_string (newdir_utf8, strlen (newdir_utf8)); } else #endif tem = build_string (newdir); + newdirlim = newdir + SBYTES (tem); if (multibyte && !STRING_MULTIBYTE (tem)) { hdir = DECODE_FILE (tem); newdir = SSDATA (hdir); + newdirlim = newdir + SBYTES (hdir); } #ifdef DOS_NT - collapse_newdir = 0; + collapse_newdir = false; #endif } else /* ~user/filename */ @@ -1201,15 +1200,17 @@ filesystem tree, not (expand-file-name ".." dirname). */) /* `getpwnam' may return a unibyte string, which will bite us since we expect the directory to be multibyte. */ - tem = build_string (newdir); + tem = make_unibyte_string (newdir, strlen (newdir)); + newdirlim = newdir + SBYTES (tem); if (multibyte && !STRING_MULTIBYTE (tem)) { hdir = DECODE_FILE (tem); newdir = SSDATA (hdir); + newdirlim = newdir + SBYTES (hdir); } nm = p; #ifdef DOS_NT - collapse_newdir = 0; + collapse_newdir = false; #endif } @@ -1235,8 +1236,11 @@ filesystem tree, not (expand-file-name ".." dirname). */) Lisp_Object tem = build_string (adir); tem = DECODE_FILE (tem); + newdirlim = adir + SBYTES (tem); memcpy (adir, SSDATA (tem), SBYTES (tem) + 1); } + else + newdirlim = adir + strlen (adir); } if (!adir) { @@ -1246,6 +1250,7 @@ filesystem tree, not (expand-file-name ".." dirname). */) adir[1] = ':'; adir[2] = '/'; adir[3] = 0; + newdirlim = adir + 3; } newdir = adir; } @@ -1266,6 +1271,7 @@ filesystem tree, not (expand-file-name ".." dirname). */) && !newdir) { newdir = SSDATA (default_directory); + newdirlim = newdir + SBYTES (default_directory); #ifdef DOS_NT /* Note if special escape prefix is present, but remove for now. */ if (newdir[0] == '/' && newdir[1] == ':') @@ -1310,12 +1316,15 @@ filesystem tree, not (expand-file-name ".." dirname). */) } if (!IS_DIRECTORY_SEP (nm[0])) { - ptrdiff_t newlen = strlen (newdir); - char *tmp = alloca (newlen + file_name_as_directory_slop - + strlen (nm) + 1); - file_name_as_directory (tmp, newdir, newlen, multibyte); - strcat (tmp, nm); + ptrdiff_t nmlen = nmlim - nm; + ptrdiff_t newdirlen = newdirlim - newdir; + char *tmp = alloca (newdirlen + file_name_as_directory_slop + + nmlen + 1); + ptrdiff_t dlen = file_name_as_directory (tmp, newdir, newdirlen, + multibyte); + memcpy (tmp + dlen, nm, nmlen + 1); nm = tmp; + nmlim = nm + dlen + nmlen; } adir = alloca (adir_size); if (drive) @@ -1330,8 +1339,11 @@ filesystem tree, not (expand-file-name ".." dirname). */) Lisp_Object tem = build_string (adir); tem = DECODE_FILE (tem); + newdirlim = adir + SBYTES (tem); memcpy (adir, SSDATA (tem), SBYTES (tem) + 1); } + else + newdirlim = adir + strlen (adir); newdir = adir; } @@ -1350,35 +1362,32 @@ filesystem tree, not (expand-file-name ".." dirname). */) if (IS_DIRECTORY_SEP (newdir[0]) && IS_DIRECTORY_SEP (newdir[1]) && !IS_DIRECTORY_SEP (newdir[2])) { - char *adir = strcpy (alloca (strlen (newdir) + 1), newdir); + char *adir = strcpy (alloca (newdirlim - newdir + 1), newdir); char *p = adir + 2; while (*p && !IS_DIRECTORY_SEP (*p)) p++; p++; while (*p && !IS_DIRECTORY_SEP (*p)) p++; *p = 0; newdir = adir; + newdirlim = newdir + strlen (adir); } else #endif - newdir = ""; + newdir = newdirlim = ""; } } #endif /* DOS_NT */ - if (newdir) - { - /* Ignore any slash at the end of newdir, unless newdir is - just "/" or "//". */ - length = strlen (newdir); - while (length > 1 && IS_DIRECTORY_SEP (newdir[length - 1]) - && ! (length == 2 && IS_DIRECTORY_SEP (newdir[0]))) - length--; - } - else - length = 0; + /* Ignore any slash at the end of newdir, unless newdir is + just "/" or "//". */ + length = newdirlim - newdir; + while (length > 1 && IS_DIRECTORY_SEP (newdir[length - 1]) + && ! (length == 2 && IS_DIRECTORY_SEP (newdir[0]))) + length--; /* Now concatenate the directory and name to new space in the stack frame. */ - tlen = length + file_name_as_directory_slop + strlen (nm) + 1; + tlen = length + file_name_as_directory_slop + (nmlim - nm) + 1; + eassert (tlen > file_name_as_directory_slop + 1); #ifdef DOS_NT /* Reserve space for drive specifier and escape prefix, since either or both may need to be inserted. (The Microsoft x86 compiler @@ -1389,6 +1398,7 @@ filesystem tree, not (expand-file-name ".." dirname). */) target = SAFE_ALLOCA (tlen); #endif /* not DOS_NT */ *target = 0; + nbytes = 0; if (newdir) { @@ -1406,13 +1416,14 @@ filesystem tree, not (expand-file-name ".." dirname). */) { memcpy (target, newdir, length); target[length] = 0; + nbytes = length; } } else - file_name_as_directory (target, newdir, length, multibyte); + nbytes = file_name_as_directory (target, newdir, length, multibyte); } - strcat (target, nm); + memcpy (target + nbytes, nm, nmlim - nm + 1); /* Now canonicalize by removing `//', `/.' and `/foo/..' if they appear. */ @@ -1718,7 +1729,8 @@ search_embedded_absfilename (char *nm, char *endp) for (s = p; *s && !IS_DIRECTORY_SEP (*s); s++); if (p[0] == '~' && s > p + 1) /* We've got "/~something/". */ { - char *o = alloca (s - p + 1); + USE_SAFE_ALLOCA; + char *o = SAFE_ALLOCA (s - p + 1); struct passwd *pw; memcpy (o, p, s - p); o [s - p] = 0; @@ -1729,6 +1741,7 @@ search_embedded_absfilename (char *nm, char *endp) block_input (); pw = getpwnam (o + 1); unblock_input (); + SAFE_FREE (); if (pw) return p; } @@ -1777,7 +1790,8 @@ those `/' is discarded. */) /* Always work on a copy of the string, in case GC happens during decode of environment variables, causing the original Lisp_String data to be relocated. */ - nm = xlispstrdupa (filename); + USE_SAFE_ALLOCA; + SAFE_ALLOCA_STRING (nm, filename); #ifdef DOS_NT dostounix_filename (nm); @@ -1791,8 +1805,13 @@ those `/' is discarded. */) /* Start over with the new string, so we check the file-name-handler again. Important with filenames like "/home/foo//:/hello///there" which would substitute to "/:/hello///there" rather than "/there". */ - return Fsubstitute_in_file_name - (make_specified_string (p, -1, endp - p, multibyte)); + { + Lisp_Object result + = (Fsubstitute_in_file_name + (make_specified_string (p, -1, endp - p, multibyte))); + SAFE_FREE (); + return result; + } /* See if any variables are substituted into the string. */ @@ -1814,6 +1833,7 @@ those `/' is discarded. */) if (!NILP (Vw32_downcase_file_names)) filename = Fdowncase (filename); #endif + SAFE_FREE (); return filename; } @@ -1832,14 +1852,14 @@ those `/' is discarded. */) { Lisp_Object xname = make_specified_string (xnm, -1, x - xnm, multibyte); - xname = Fdowncase (xname); - return xname; + filename = Fdowncase (xname); } else #endif - return (xnm == SSDATA (filename) - ? filename - : make_specified_string (xnm, -1, x - xnm, multibyte)); + if (xnm != SSDATA (filename)) + filename = make_specified_string (xnm, -1, x - xnm, multibyte); + SAFE_FREE (); + return filename; } /* A slightly faster and more convenient way to get @@ -2672,7 +2692,10 @@ emacs_readlinkat (int fd, char const *filename) val = build_unibyte_string (buf); if (buf[0] == '/' && strchr (buf, ':')) - val = concat2 (build_unibyte_string ("/:"), val); + { + AUTO_STRING (slash_colon, "/:"); + val = concat2 (slash_colon, val); + } if (buf != readlink_buf) xfree (buf); val = DECODE_FILE (val); @@ -2766,23 +2789,24 @@ searchable directory. */) } absname = ENCODE_FILE (absname); - return file_accessible_directory_p (SSDATA (absname)) ? Qt : Qnil; + return file_accessible_directory_p (absname) ? Qt : Qnil; } /* If FILE is a searchable directory or a symlink to a searchable directory, return true. Otherwise return false and set errno to an error number. */ bool -file_accessible_directory_p (char const *file) +file_accessible_directory_p (Lisp_Object file) { #ifdef DOS_NT /* There's no need to test whether FILE is searchable, as the searchable/executable bit is invented on DOS_NT platforms. */ - return file_directory_p (file); + return file_directory_p (SSDATA (file)); #else /* On POSIXish platforms, use just one system call; this avoids a race and is typically faster. */ - ptrdiff_t len = strlen (file); + const char *data = SSDATA (file); + ptrdiff_t len = SBYTES (file); char const *dir; bool ok; int saved_errno; @@ -2794,15 +2818,15 @@ file_accessible_directory_p (char const *file) "/" and "//" are distinct on some platforms, whereas "/", "///", "////", etc. are all equivalent. */ if (! len) - dir = file; + dir = data; else { /* Just check for trailing '/' when deciding whether to append '/'. That's simpler than testing the two special cases "/" and "//", and it's a safe optimization here. */ char *buf = SAFE_ALLOCA (len + 3); - memcpy (buf, file, len); - strcpy (buf + len, &"/."[file[len - 1] == '/']); + memcpy (buf, data, len); + strcpy (buf + len, &"/."[data[len - 1] == '/']); dir = buf; } @@ -3387,6 +3411,56 @@ time_error_value (int errnum) return make_timespec (0, ns); } +static Lisp_Object +get_window_points_and_markers (void) +{ + Lisp_Object pt_marker = Fpoint_marker (); + Lisp_Object windows + = call3 (Qget_buffer_window_list, Fcurrent_buffer (), Qnil, Qt); + Lisp_Object window_markers = windows; + /* Window markers (and point) are handled specially: rather than move to + just before or just after the modified text, we try to keep the + markers at the same distance (bug#19161). + In general, this is wrong, but for window-markers, this should be harmless + and is convenient for the end user when most of the file is unmodified, + except for a few minor details near the beginning and near the end. */ + for (; CONSP (windows); windows = XCDR (windows)) + if (WINDOWP (XCAR (windows))) + { + Lisp_Object window_marker = XWINDOW (XCAR (windows))->pointm; + XSETCAR (windows, + Fcons (window_marker, Fmarker_position (window_marker))); + } + return Fcons (Fcons (pt_marker, Fpoint ()), window_markers); +} + +static void +restore_window_points (Lisp_Object window_markers, ptrdiff_t inserted, + ptrdiff_t same_at_start, ptrdiff_t same_at_end) +{ + for (; CONSP (window_markers); window_markers = XCDR (window_markers)) + if (CONSP (XCAR (window_markers))) + { + Lisp_Object car = XCAR (window_markers); + Lisp_Object marker = XCAR (car); + Lisp_Object oldpos = XCDR (car); + if (MARKERP (marker) && INTEGERP (oldpos) + && XINT (oldpos) > same_at_start + && XINT (oldpos) < same_at_end) + { + ptrdiff_t oldsize = same_at_end - same_at_start; + ptrdiff_t newsize = inserted; + double growth = newsize / (double)oldsize; + ptrdiff_t newpos + = same_at_start + growth * (XINT (oldpos) - same_at_start); + Fset_marker (marker, make_number (newpos), Qnil); + } + } +} + +/* FIXME: insert-file-contents should be split with the top-level moved to + Elisp and only the core kept in C. */ + DEFUN ("insert-file-contents", Finsert_file_contents, Sinsert_file_contents, 1, 5, 0, doc: /* Insert contents of file FILENAME after point. @@ -3431,24 +3505,32 @@ by calling `format-decode', which see. */) int save_errno = 0; char read_buf[READ_BUF_SIZE]; struct coding_system coding; - bool replace_handled = 0; - bool set_coding_system = 0; + bool replace_handled = false; + bool set_coding_system = false; Lisp_Object coding_system; - bool read_quit = 0; + bool read_quit = false; /* If the undo log only contains the insertion, there's no point keeping it. It's typically when we first fill a file-buffer. */ bool empty_undo_list_p = (!NILP (visit) && NILP (BVAR (current_buffer, undo_list)) && BEG == Z); Lisp_Object old_Vdeactivate_mark = Vdeactivate_mark; - bool we_locked_file = 0; + bool we_locked_file = false; ptrdiff_t fd_index; + Lisp_Object window_markers = Qnil; + /* same_at_start and same_at_end count bytes, because file access counts + bytes and BEG and END count bytes. */ + ptrdiff_t same_at_start = BEGV_BYTE; + ptrdiff_t same_at_end = ZV_BYTE; + /* SAME_AT_END_CHARPOS counts characters, because + restore_window_points needs the old character count. */ + ptrdiff_t same_at_end_charpos = ZV; if (current_buffer->base_buffer && ! NILP (visit)) error ("Cannot do file visiting in an indirect buffer"); if (!NILP (BVAR (current_buffer, read_only))) - Fbarf_if_buffer_read_only (); + Fbarf_if_buffer_read_only (Qnil); val = Qnil; p = Qnil; @@ -3498,7 +3580,11 @@ by calling `format-decode', which see. */) /* Replacement should preserve point as it preserves markers. */ if (!NILP (replace)) - record_unwind_protect (restore_point_unwind, Fpoint_marker ()); + { + window_markers = get_window_points_and_markers (); + record_unwind_protect (restore_point_unwind, + XCAR (XCAR (window_markers))); + } if (fstat (fd, &st) != 0) report_file_error ("Input file status", orig_filename); @@ -3576,14 +3662,14 @@ by calling `format-decode', which see. */) } /* Prevent redisplay optimizations. */ - current_buffer->clip_changed = 1; + current_buffer->clip_changed = true; if (EQ (Vcoding_system_for_read, Qauto_save_coding)) { coding_system = coding_inherit_eol_type (Qutf_8_emacs, Qunix); setup_coding_system (coding_system, &coding); /* Ensure we set Vlast_coding_system_used. */ - set_coding_system = 1; + set_coding_system = true; } else if (BEG < Z) { @@ -3625,13 +3711,14 @@ by calling `format-decode', which see. */) report_file_error ("Read error", orig_filename); else if (nread > 0) { + AUTO_STRING (name, " *code-converting-work*"); struct buffer *prev = current_buffer; Lisp_Object workbuf; struct buffer *buf; record_unwind_current_buffer (); - workbuf = Fget_buffer_create (build_string (" *code-converting-work*")); + workbuf = Fget_buffer_create (name); buf = XBUFFER (workbuf); delete_all_overlays (buf); @@ -3688,7 +3775,7 @@ by calling `format-decode', which see. */) setup_coding_system (coding_system, &coding); /* Ensure we set Vlast_coding_system_used. */ - set_coding_system = 1; + set_coding_system = true; } /* If requested, replace the accessible part of the buffer @@ -3710,16 +3797,11 @@ by calling `format-decode', which see. */) && (NILP (coding_system) || ! CODING_REQUIRE_DECODING (&coding))) { - /* same_at_start and same_at_end count bytes, - because file access counts bytes - and BEG and END count bytes. */ - ptrdiff_t same_at_start = BEGV_BYTE; - ptrdiff_t same_at_end = ZV_BYTE; ptrdiff_t overlap; /* There is still a possibility we will find the need to do code conversion. If that happens, set this variable to give up on handling REPLACE in the optimized way. */ - bool giveup_match_end = 0; + bool giveup_match_end = false; if (beg_offset != 0) { @@ -3753,7 +3835,7 @@ by calling `format-decode', which see. */) /* We found that the file should be decoded somehow. Let's give up here. */ { - giveup_match_end = 1; + giveup_match_end = true; break; } @@ -3766,7 +3848,7 @@ by calling `format-decode', which see. */) if (bufpos != nread) break; } - immediate_quit = 0; + immediate_quit = false; /* If the file matches the buffer completely, there's no need to replace anything. */ if (same_at_start - BEGV_BYTE == end_offset - beg_offset) @@ -3778,7 +3860,7 @@ by calling `format-decode', which see. */) del_range_1 (same_at_start, same_at_end, 0, 0); goto handled; } - immediate_quit = 1; + immediate_quit = true; QUIT; /* Count how many chars at the end of the file match the text at the end of the buffer. But, if we have @@ -3829,7 +3911,7 @@ by calling `format-decode', which see. */) && FETCH_BYTE (same_at_end - 1) >= 0200 && ! NILP (BVAR (current_buffer, enable_multibyte_characters)) && (CODING_MAY_REQUIRE_DECODING (&coding))) - giveup_match_end = 1; + giveup_match_end = true; break; } @@ -3864,6 +3946,7 @@ by calling `format-decode', which see. */) + (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE)); if (overlap > 0) same_at_end += overlap; + same_at_end_charpos = BYTE_TO_CHAR (same_at_end); /* Arrange to read only the nonmatching middle part of the file. */ beg_offset += same_at_start - BEGV_BYTE; @@ -3871,7 +3954,7 @@ by calling `format-decode', which see. */) invalidate_buffer_caches (current_buffer, BYTE_TO_CHAR (same_at_start), - BYTE_TO_CHAR (same_at_end)); + same_at_end_charpos); del_range_byte (same_at_start, same_at_end, 0); /* Insert from the file at the proper position. */ temp = BYTE_TO_CHAR (same_at_start); @@ -3882,7 +3965,7 @@ by calling `format-decode', which see. */) if (XBUFFER (XWINDOW (selected_window)->contents) == current_buffer) XWINDOW (selected_window)->start_at_line_beg = !NILP (Fbolp ()); - replace_handled = 1; + replace_handled = true; } } @@ -3897,8 +3980,6 @@ by calling `format-decode', which see. */) in a more optimized way. */ if (!NILP (replace) && ! replace_handled && BEGV < ZV) { - ptrdiff_t same_at_start = BEGV_BYTE; - ptrdiff_t same_at_end = ZV_BYTE; ptrdiff_t same_at_start_charpos; ptrdiff_t inserted_chars; ptrdiff_t overlap; @@ -3962,7 +4043,7 @@ by calling `format-decode', which see. */) } coding_system = CODING_ID_NAME (coding.id); - set_coding_system = 1; + set_coding_system = true; decoded = BUF_BEG_ADDR (XBUFFER (conversion_buffer)); inserted = (BUF_Z_BYTE (XBUFFER (conversion_buffer)) - BUF_BEG_BYTE (XBUFFER (conversion_buffer))); @@ -4022,6 +4103,7 @@ by calling `format-decode', which see. */) overlap = same_at_start - BEGV_BYTE - (same_at_end + inserted - ZV_BYTE); if (overlap > 0) same_at_end += overlap; + same_at_end_charpos = BYTE_TO_CHAR (same_at_end); /* If display currently starts at beginning of line, keep it that way. */ @@ -4037,7 +4119,7 @@ by calling `format-decode', which see. */) { invalidate_buffer_caches (current_buffer, BYTE_TO_CHAR (same_at_start), - BYTE_TO_CHAR (same_at_end)); + same_at_end_charpos); del_range_byte (same_at_start, same_at_end, 0); temp = GPT; eassert (same_at_start == GPT_BYTE); @@ -4045,7 +4127,7 @@ by calling `format-decode', which see. */) } else { - temp = BYTE_TO_CHAR (same_at_start); + temp = same_at_end_charpos; } /* Insert from the file at the proper position. */ SET_PT_BOTH (temp, same_at_start); @@ -4087,7 +4169,7 @@ by calling `format-decode', which see. */) /* Make binding buffer-file-name to nil effective. */ && !NILP (BVAR (current_buffer, filename)) && SAVE_MODIFF >= MODIFF) - we_locked_file = 1; + we_locked_file = true; prepare_to_modify_buffer (PT, PT, NULL); } @@ -4117,7 +4199,7 @@ by calling `format-decode', which see. */) while (how_much < total) { - /* try is reserved in some compilers (Microsoft C) */ + /* `try' is reserved in some compilers (Microsoft C). */ ptrdiff_t trytry = min (total - how_much, READ_BUF_SIZE); ptrdiff_t this; @@ -4142,7 +4224,7 @@ by calling `format-decode', which see. */) if (NILP (nbytes)) { - read_quit = 1; + read_quit = true; break; } @@ -4275,7 +4357,7 @@ by calling `format-decode', which see. */) coding_system = raw_text_coding_system (coding_system); setup_coding_system (coding_system, &coding); /* Ensure we set Vlast_coding_system_used. */ - set_coding_system = 1; + set_coding_system = true; } if (!NILP (visit)) @@ -4286,7 +4368,7 @@ by calling `format-decode', which see. */) /* Can't do this if part of the buffer might be preserved. */ && NILP (replace)) /* Visiting a file with these coding system makes the buffer - unibyte. */ + unibyte. */ bset_enable_multibyte_characters (current_buffer, Qnil); } @@ -4305,8 +4387,11 @@ by calling `format-decode', which see. */) coding_system = CODING_ID_NAME (coding.id); } else if (inserted > 0) - adjust_after_insert (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted, - inserted); + { + invalidate_buffer_caches (current_buffer, PT, PT + inserted); + adjust_after_insert (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted, + inserted); + } /* Call after-change hooks for the inserted text, aside from the case of normal visiting (not with REPLACE), which is done in a new buffer @@ -4322,6 +4407,11 @@ by calling `format-decode', which see. */) handled: + if (inserted > 0) + restore_window_points (window_markers, inserted, + BYTE_TO_CHAR (same_at_start), + same_at_end_charpos); + if (!NILP (visit)) { if (empty_undo_list_p) @@ -4525,24 +4615,14 @@ build_annotations_unwind (Lisp_Object arg) /* Decide the coding-system to encode the data with. */ -DEFUN ("choose-write-coding-system", Fchoose_write_coding_system, - Schoose_write_coding_system, 3, 6, 0, - doc: /* Choose the coding system for writing a file. -Arguments are as for `write-region'. -This function is for internal use only. It may prompt the user. */ ) - (Lisp_Object start, Lisp_Object end, Lisp_Object filename, - Lisp_Object append, Lisp_Object visit, Lisp_Object lockname) +static Lisp_Object +choose_write_coding_system (Lisp_Object start, Lisp_Object end, Lisp_Object filename, + Lisp_Object append, Lisp_Object visit, Lisp_Object lockname, + struct coding_system *coding) { Lisp_Object val; Lisp_Object eol_parent = Qnil; - /* Mimic write-region behavior. */ - if (NILP (start)) - { - XSETFASTINT (start, BEGV); - XSETFASTINT (end, ZV); - } - if (auto_saving && NILP (Fstring_equal (BVAR (current_buffer, filename), BVAR (current_buffer, auto_save_file_name)))) @@ -4635,6 +4715,10 @@ This function is for internal use only. It may prompt the user. */ ) } val = coding_inherit_eol_type (val, eol_parent); + setup_coding_system (val, coding); + + if (!STRINGP (start) && !NILP (BVAR (current_buffer, selective_display))) + coding->mode |= CODING_MODE_SELECTIVE_DISPLAY; return val; } @@ -4803,14 +4887,9 @@ write_region (Lisp_Object start, Lisp_Object end, Lisp_Object filename, We used to make this choice before calling build_annotations, but that leads to problems when a write-annotate-function takes care of unsavable chars (as was the case with X-Symbol). */ - Vlast_coding_system_used = - Fchoose_write_coding_system (start, end, filename, - append, visit, lockname); - - setup_coding_system (Vlast_coding_system_used, &coding); - - if (!STRINGP (start) && !NILP (BVAR (current_buffer, selective_display))) - coding.mode |= CODING_MODE_SELECTIVE_DISPLAY; + Vlast_coding_system_used + = choose_write_coding_system (start, end, filename, + append, visit, lockname, &coding); if (open_and_close_file && !auto_saving) { @@ -5304,20 +5383,12 @@ If BUF is omitted or nil, it defaults to the current buffer. See Info node `(elisp)Modification Time' for more details. */) (Lisp_Object buf) { - struct buffer *b; + struct buffer *b = decode_buffer (buf); struct stat st; Lisp_Object handler; Lisp_Object filename; struct timespec mtime; - if (NILP (buf)) - b = current_buffer; - else - { - CHECK_BUFFER (buf); - b = XBUFFER (buf); - } - if (!STRINGP (BVAR (b, filename))) return Qt; if (b->modtime.tv_nsec == UNKNOWN_MODTIME_NSECS) return Qt; @@ -5411,7 +5482,7 @@ An argument specifies the modification time value to use static Lisp_Object auto_save_error (Lisp_Object error_val) { - Lisp_Object args[3], msg; + Lisp_Object msg; int i; struct gcpro gcpro1; @@ -5419,10 +5490,10 @@ auto_save_error (Lisp_Object error_val) ring_bell (XFRAME (selected_frame)); - args[0] = build_string ("Auto-saving %s: %s"); - args[1] = BVAR (current_buffer, name); - args[2] = Ferror_message_string (error_val); - msg = Fformat (3, args); + AUTO_STRING (format, "Auto-saving %s: %s"); + msg = Fformat (3, ((Lisp_Object []) + {format, BVAR (current_buffer, name), + Ferror_message_string (error_val)})); GCPRO1 (msg); for (i = 0; i < 3; ++i) @@ -5829,7 +5900,6 @@ syms_of_fileio (void) DEFSYM (Qset_file_acl, "set-file-acl"); DEFSYM (Qfile_newer_than_file_p, "file-newer-than-file-p"); DEFSYM (Qinsert_file_contents, "insert-file-contents"); - DEFSYM (Qchoose_write_coding_system, "choose-write-coding-system"); DEFSYM (Qwrite_region, "write-region"); DEFSYM (Qverify_visited_file_modtime, "verify-visited-file-modtime"); DEFSYM (Qset_visited_file_modtime, "set-visited-file-modtime"); @@ -6030,6 +6100,7 @@ This includes interactive calls to `delete-file' and DEFSYM (Qcopy_directory, "copy-directory"); DEFSYM (Qdelete_directory, "delete-directory"); DEFSYM (Qsubstitute_env_in_file_name, "substitute-env-in-file-name"); + DEFSYM (Qget_buffer_window_list, "get-buffer-window-list"); defsubr (&Sfind_file_name_handler); defsubr (&Sfile_name_directory); @@ -6068,7 +6139,6 @@ This includes interactive calls to `delete-file' and defsubr (&Sdefault_file_modes); defsubr (&Sfile_newer_than_file_p); defsubr (&Sinsert_file_contents); - defsubr (&Schoose_write_coding_system); defsubr (&Swrite_region); defsubr (&Scar_less_than_car); defsubr (&Sverify_visited_file_modtime); diff --git a/src/fns.c b/src/fns.c index 79967116a11..e891fdbf1d5 100644 --- a/src/fns.c +++ b/src/fns.c @@ -24,6 +24,7 @@ along with GNU Emacs. If not, see . */ #include #include +#include #include "lisp.h" #include "commands.h" @@ -41,6 +42,7 @@ along with GNU Emacs. If not, see . */ #endif Lisp_Object Qstring_lessp; +static Lisp_Object Qstring_collate_lessp, Qstring_collate_equalp; static Lisp_Object Qprovide, Qrequire; static Lisp_Object Qyes_or_no_p_history; Lisp_Object Qcursor_in_echo_area; @@ -49,6 +51,8 @@ static Lisp_Object Qcodeset, Qdays, Qmonths, Qpaper; static Lisp_Object Qmd5, Qsha1, Qsha224, Qsha256, Qsha384, Qsha512; +static void sort_vector_copy (Lisp_Object, ptrdiff_t, + Lisp_Object [restrict], Lisp_Object [restrict]); static bool internal_equal (Lisp_Object, Lisp_Object, int, bool, Lisp_Object); DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, @@ -253,6 +257,13 @@ If string STR1 is greater, the value is a positive number N; CHECK_STRING (str1); CHECK_STRING (str2); + /* For backward compatibility, silently bring too-large positive end + values into range. */ + if (INTEGERP (end1) && SCHARS (str1) < XINT (end1)) + end1 = make_number (SCHARS (str1)); + if (INTEGERP (end2) && SCHARS (str2) < XINT (end2)) + end2 = make_number (SCHARS (str2)); + validate_subarray (str1, start1, end1, SCHARS (str1), &from1, &to1); validate_subarray (str2, start2, end2, SCHARS (str2), &from2, &to2); @@ -336,6 +347,100 @@ Symbols are also allowed; their print names are used instead. */) } return i1 < SCHARS (s2) ? Qt : Qnil; } + +DEFUN ("string-collate-lessp", Fstring_collate_lessp, Sstring_collate_lessp, 2, 4, 0, + doc: /* Return t if first arg string is less than second in collation order. +Symbols are also allowed; their print names are used instead. + +This function obeys the conventions for collation order in your +locale settings. For example, punctuation and whitespace characters +might be considered less significant for sorting: + +\(sort '\("11" "12" "1 1" "1 2" "1.1" "1.2") 'string-collate-lessp) + => \("11" "1 1" "1.1" "12" "1 2" "1.2") + +The optional argument LOCALE, a string, overrides the setting of your +current locale identifier for collation. The value is system +dependent; a LOCALE \"en_US.UTF-8\" is applicable on POSIX systems, +while it would be, e.g., \"enu_USA.1252\" on MS-Windows systems. + +If IGNORE-CASE is non-nil, characters are converted to lower-case +before comparing them. + +To emulate Unicode-compliant collation on MS-Windows systems, +bind `w32-collate-ignore-punctuation' to a non-nil value, since +the codeset part of the locale cannot be \"UTF-8\" on MS-Windows. + +If your system does not support a locale environment, this function +behaves like `string-lessp'. */) + (Lisp_Object s1, Lisp_Object s2, Lisp_Object locale, Lisp_Object ignore_case) +{ +#if defined __STDC_ISO_10646__ || defined WINDOWSNT + /* Check parameters. */ + if (SYMBOLP (s1)) + s1 = SYMBOL_NAME (s1); + if (SYMBOLP (s2)) + s2 = SYMBOL_NAME (s2); + CHECK_STRING (s1); + CHECK_STRING (s2); + if (!NILP (locale)) + CHECK_STRING (locale); + + return (str_collate (s1, s2, locale, ignore_case) < 0) ? Qt : Qnil; + +#else /* !__STDC_ISO_10646__, !WINDOWSNT */ + return Fstring_lessp (s1, s2); +#endif /* !__STDC_ISO_10646__, !WINDOWSNT */ +} + +DEFUN ("string-collate-equalp", Fstring_collate_equalp, Sstring_collate_equalp, 2, 4, 0, + doc: /* Return t if two strings have identical contents. +Symbols are also allowed; their print names are used instead. + +This function obeys the conventions for collation order in your locale +settings. For example, characters with different coding points but +the same meaning might be considered as equal, like different grave +accent Unicode characters: + +\(string-collate-equalp \(string ?\\uFF40) \(string ?\\u1FEF)) + => t + +The optional argument LOCALE, a string, overrides the setting of your +current locale identifier for collation. The value is system +dependent; a LOCALE \"en_US.UTF-8\" is applicable on POSIX systems, +while it would be \"enu_USA.1252\" on MS Windows systems. + +If IGNORE-CASE is non-nil, characters are converted to lower-case +before comparing them. + +To emulate Unicode-compliant collation on MS-Windows systems, +bind `w32-collate-ignore-punctuation' to a non-nil value, since +the codeset part of the locale cannot be \"UTF-8\" on MS-Windows. + +If your system does not support a locale environment, this function +behaves like `string-equal'. + +Do NOT use this function to compare file names for equality, only +for sorting them. */) + (Lisp_Object s1, Lisp_Object s2, Lisp_Object locale, Lisp_Object ignore_case) +{ +#if defined __STDC_ISO_10646__ || defined WINDOWSNT + /* Check parameters. */ + if (SYMBOLP (s1)) + s1 = SYMBOL_NAME (s1); + if (SYMBOLP (s2)) + s2 = SYMBOL_NAME (s2); + CHECK_STRING (s1); + CHECK_STRING (s2); + if (!NILP (locale)) + CHECK_STRING (locale); + + return (str_collate (s1, s2, locale, ignore_case) == 0) ? Qt : Qnil; + +#else /* !__STDC_ISO_10646__, !WINDOWSNT */ + return Fstring_equal (s1, s2); +#endif /* !__STDC_ISO_10646__, !WINDOWSNT */ +} static Lisp_Object concat (ptrdiff_t nargs, Lisp_Object *args, enum Lisp_Type target_type, bool last_special); @@ -1720,7 +1825,7 @@ See also the function `nreverse', which is used more often. */) else if (VECTORP (seq)) { ptrdiff_t i, size = ASIZE (seq); - + new = make_uninit_vector (size); for (i = 0; i < size; i++) ASET (new, i, AREF (seq, size - i - 1)); @@ -1737,7 +1842,7 @@ See also the function `nreverse', which is used more often. */) else if (STRINGP (seq)) { ptrdiff_t size = SCHARS (seq), bytes = SBYTES (seq); - + if (size == bytes) { ptrdiff_t i; @@ -1755,7 +1860,7 @@ See also the function `nreverse', which is used more often. */) while (q > SDATA (new)) { int ch, len; - + ch = STRING_CHAR_AND_LENGTH (p, len); p += len, q -= len; CHAR_STRING (ch, q); @@ -1766,13 +1871,12 @@ See also the function `nreverse', which is used more often. */) wrong_type_argument (Qsequencep, seq); return new; } - -DEFUN ("sort", Fsort, Ssort, 2, 2, 0, - doc: /* Sort LIST, stably, comparing elements using PREDICATE. -Returns the sorted list. LIST is modified by side effects. -PREDICATE is called with two elements of LIST, and should return non-nil -if the first element should sort before the second. */) - (Lisp_Object list, Lisp_Object predicate) + +/* Sort LIST using PREDICATE, preserving original order of elements + considered as equal. */ + +static Lisp_Object +sort_list (Lisp_Object list, Lisp_Object predicate) { Lisp_Object front, back; register Lisp_Object len, tem; @@ -1797,6 +1901,126 @@ if the first element should sort before the second. */) return merge (front, back, predicate); } +/* Using PRED to compare, return whether A and B are in order. + Compare stably when A appeared before B in the input. */ +static bool +inorder (Lisp_Object pred, Lisp_Object a, Lisp_Object b) +{ + return NILP (call2 (pred, b, a)); +} + +/* Using PRED to compare, merge from ALEN-length A and BLEN-length B + into DEST. Argument arrays must be nonempty and must not overlap, + except that B might be the last part of DEST. */ +static void +merge_vectors (Lisp_Object pred, + ptrdiff_t alen, Lisp_Object const a[restrict VLA_ELEMS (alen)], + ptrdiff_t blen, Lisp_Object const b[VLA_ELEMS (blen)], + Lisp_Object dest[VLA_ELEMS (alen + blen)]) +{ + eassume (0 < alen && 0 < blen); + Lisp_Object const *alim = a + alen; + Lisp_Object const *blim = b + blen; + + while (true) + { + if (inorder (pred, a[0], b[0])) + { + *dest++ = *a++; + if (a == alim) + { + if (dest != b) + memcpy (dest, b, (blim - b) * sizeof *dest); + return; + } + } + else + { + *dest++ = *b++; + if (b == blim) + { + memcpy (dest, a, (alim - a) * sizeof *dest); + return; + } + } + } +} + +/* Using PRED to compare, sort LEN-length VEC in place, using TMP for + temporary storage. LEN must be at least 2. */ +static void +sort_vector_inplace (Lisp_Object pred, ptrdiff_t len, + Lisp_Object vec[restrict VLA_ELEMS (len)], + Lisp_Object tmp[restrict VLA_ELEMS (len >> 1)]) +{ + eassume (2 <= len); + ptrdiff_t halflen = len >> 1; + sort_vector_copy (pred, halflen, vec, tmp); + if (1 < len - halflen) + sort_vector_inplace (pred, len - halflen, vec + halflen, vec); + merge_vectors (pred, halflen, tmp, len - halflen, vec + halflen, vec); +} + +/* Using PRED to compare, sort from LEN-length SRC into DST. + Len must be positive. */ +static void +sort_vector_copy (Lisp_Object pred, ptrdiff_t len, + Lisp_Object src[restrict VLA_ELEMS (len)], + Lisp_Object dest[restrict VLA_ELEMS (len)]) +{ + eassume (0 < len); + ptrdiff_t halflen = len >> 1; + if (halflen < 1) + dest[0] = src[0]; + else + { + if (1 < halflen) + sort_vector_inplace (pred, halflen, src, dest); + if (1 < len - halflen) + sort_vector_inplace (pred, len - halflen, src + halflen, dest); + merge_vectors (pred, halflen, src, len - halflen, src + halflen, dest); + } +} + +/* Sort VECTOR in place using PREDICATE, preserving original order of + elements considered as equal. */ + +static void +sort_vector (Lisp_Object vector, Lisp_Object predicate) +{ + ptrdiff_t len = ASIZE (vector); + if (len < 2) + return; + ptrdiff_t halflen = len >> 1; + Lisp_Object *tmp; + struct gcpro gcpro1, gcpro2; + GCPRO2 (vector, predicate); + USE_SAFE_ALLOCA; + SAFE_ALLOCA_LISP (tmp, halflen); + for (ptrdiff_t i = 0; i < halflen; i++) + tmp[i] = make_number (0); + sort_vector_inplace (predicate, len, XVECTOR (vector)->contents, tmp); + SAFE_FREE (); + UNGCPRO; +} + +DEFUN ("sort", Fsort, Ssort, 2, 2, 0, + doc: /* Sort SEQ, stably, comparing elements using PREDICATE. +Returns the sorted sequence. SEQ should be a list or vector. SEQ is +modified by side effects. PREDICATE is called with two elements of +SEQ, and should return non-nil if the first element should sort before +the second. */) + (Lisp_Object seq, Lisp_Object predicate) +{ + if (CONSP (seq)) + seq = sort_list (seq, predicate); + else if (VECTORP (seq)) + sort_vector (seq, predicate); + else if (!NILP (seq)) + wrong_type_argument (Qsequencep, seq); + return seq; +} + Lisp_Object merge (Lisp_Object org_l1, Lisp_Object org_l2, Lisp_Object pred) { @@ -1834,8 +2058,7 @@ merge (Lisp_Object org_l1, Lisp_Object org_l2, Lisp_Object pred) Fsetcdr (tail, l1); return value; } - tem = call2 (pred, Fcar (l2), Fcar (l1)); - if (NILP (tem)) + if (inorder (pred, Fcar (l1), Fcar (l2))) { tem = l1; l1 = Fcdr (l1); @@ -2483,8 +2706,7 @@ If dialog boxes are supported, a dialog box will be used if `last-nonmenu-event' is nil, and `use-dialog-box' is non-nil. */) (Lisp_Object prompt) { - register Lisp_Object ans; - Lisp_Object args[2]; + Lisp_Object ans; struct gcpro gcpro1; CHECK_STRING (prompt); @@ -2503,10 +2725,8 @@ if `last-nonmenu-event' is nil, and `use-dialog-box' is non-nil. */) return obj; } - args[0] = prompt; - args[1] = build_string ("(yes or no) "); - prompt = Fconcat (2, args); - + AUTO_STRING (yes_or_no, "(yes or no) "); + prompt = Fconcat (2, (Lisp_Object []) {prompt, yes_or_no}); GCPRO1 (prompt); while (1) @@ -3064,7 +3284,6 @@ into shorter lines. */) if (encoded_length < 0) { /* The encoding wasn't possible. */ - SAFE_FREE (); error ("Multibyte character in data for base64 encoding"); } @@ -3209,7 +3428,6 @@ If the region can't be decoded, signal an error and don't modify the buffer. */ if (decoded_length < 0) { /* The decoding wasn't possible. */ - SAFE_FREE (); error ("Invalid base64 data"); } @@ -3777,12 +3995,9 @@ maybe_resize_hash_table (struct Lisp_Hash_Table *h) #ifdef ENABLE_CHECKING if (HASH_TABLE_P (Vpurify_flag) && XHASH_TABLE (Vpurify_flag) == h) - { - Lisp_Object args[2]; - args[0] = build_string ("Growing hash table to: %d"); - args[1] = make_number (new_size); - Fmessage (2, args); - } + Fmessage (2, ((Lisp_Object []) + { build_string ("Growing hash table to: %d"), + make_number (new_size) })); #endif set_hash_key_and_value (h, larger_vector (h->key_and_value, @@ -4262,13 +4477,10 @@ sxhash (Lisp_Object obj, int depth) break; case Lisp_Misc: + case Lisp_Symbol: hash = XHASH (obj); break; - case Lisp_Symbol: - obj = SYMBOL_NAME (obj); - /* Fall through. */ - case Lisp_String: hash = sxhash_string (SSDATA (obj), SBYTES (obj)); break; @@ -4356,12 +4568,12 @@ usage: (make-hash-table &rest KEYWORD-ARGS) */) { Lisp_Object test, size, rehash_size, rehash_threshold, weak; struct hash_table_test testdesc; - char *used; ptrdiff_t i; + USE_SAFE_ALLOCA; /* The vector `used' is used to keep track of arguments that have been consumed. */ - used = alloca (nargs * sizeof *used); + char *used = SAFE_ALLOCA (nargs * sizeof *used); memset (used, 0, nargs * sizeof *used); /* See if there's a `:test TEST' among the arguments. */ @@ -4428,6 +4640,7 @@ usage: (make-hash-table &rest KEYWORD-ARGS) */) if (!used[i]) signal_error ("Invalid argument list", args[i]); + SAFE_FREE (); return make_hash_table (testdesc, size, rehash_size, rehash_threshold, weak); } @@ -4912,6 +5125,8 @@ syms_of_fns (void) defsubr (&Sdefine_hash_table_test); DEFSYM (Qstring_lessp, "string-lessp"); + DEFSYM (Qstring_collate_lessp, "string-collate-lessp"); + DEFSYM (Qstring_collate_equalp, "string-collate-equalp"); DEFSYM (Qprovide, "provide"); DEFSYM (Qrequire, "require"); DEFSYM (Qyes_or_no_p_history, "yes-or-no-p-history"); @@ -4965,6 +5180,8 @@ this variable. */); defsubr (&Sstring_equal); defsubr (&Scompare_strings); defsubr (&Sstring_lessp); + defsubr (&Sstring_collate_lessp); + defsubr (&Sstring_collate_equalp); defsubr (&Sappend); defsubr (&Sconcat); defsubr (&Svconcat); diff --git a/src/font.c b/src/font.c index 054a68bfd94..d10d2280a5b 100644 --- a/src/font.c +++ b/src/font.c @@ -273,10 +273,8 @@ static int num_font_drivers; Lisp_Object font_intern_prop (const char *str, ptrdiff_t len, bool force_symbol) { - ptrdiff_t i; - Lisp_Object tem; - Lisp_Object obarray; - ptrdiff_t nbytes, nchars; + ptrdiff_t i, nbytes, nchars; + Lisp_Object tem, name, obarray; if (len == 1 && *str == '*') return Qnil; @@ -307,12 +305,11 @@ font_intern_prop (const char *str, ptrdiff_t len, bool force_symbol) parse_str_as_multibyte ((unsigned char *) str, len, &nchars, &nbytes); tem = oblookup (obarray, str, (len == nchars || len != nbytes) ? len : nchars, len); - if (SYMBOLP (tem)) return tem; - tem = make_specified_string (str, nchars, len, - len != nchars && len == nbytes); - return Fintern (tem, obarray); + name = make_specified_string (str, nchars, len, + len != nchars && len == nbytes); + return intern_driver (name, obarray, XINT (tem)); } /* Return a pixel size of font-spec SPEC on frame F. */ @@ -366,7 +363,7 @@ font_style_to_value (enum font_property_index prop, Lisp_Object val, { int i, j; char *s; - Lisp_Object args[2], elt; + Lisp_Object elt; /* At first try exact match. */ for (i = 0; i < len; i++) @@ -398,9 +395,9 @@ font_style_to_value (enum font_property_index prop, Lisp_Object val, eassert (len < 255); elt = Fmake_vector (make_number (2), make_number (100)); ASET (elt, 1, val); - args[0] = table; - args[1] = Fmake_vector (make_number (1), elt); - ASET (font_style_table, prop - FONT_WEIGHT_INDEX, Fvconcat (2, args)); + ASET (font_style_table, prop - FONT_WEIGHT_INDEX, + Fvconcat (2, ((Lisp_Object []) + { table, Fmake_vector (make_number (1), elt) }))); return (100 << 8) | (i << 4); } else @@ -1186,13 +1183,22 @@ font_parse_xlfd (char *name, ptrdiff_t len, Lisp_Object font) { val = prop[XLFD_ENCODING_INDEX]; if (! NILP (val)) - val = concat2 (build_string ("*-"), SYMBOL_NAME (val)); + { + AUTO_STRING (star_dash, "*-"); + val = concat2 (star_dash, SYMBOL_NAME (val)); + } } else if (NILP (prop[XLFD_ENCODING_INDEX])) - val = concat2 (SYMBOL_NAME (val), build_string ("-*")); + { + AUTO_STRING (dash_star, "-*"); + val = concat2 (SYMBOL_NAME (val), dash_star); + } else - val = concat3 (SYMBOL_NAME (val), build_string ("-"), - SYMBOL_NAME (prop[XLFD_ENCODING_INDEX])); + { + AUTO_STRING (dash, "-"); + val = concat3 (SYMBOL_NAME (val), dash, + SYMBOL_NAME (prop[XLFD_ENCODING_INDEX])); + } if (! NILP (val)) ASET (font, FONT_REGISTRY_INDEX, Fintern (val, Qnil)); @@ -1299,6 +1305,9 @@ font_unparse_xlfd (Lisp_Object font, int pixel_size, char *name, int nbytes) val = AREF (font, FONT_SIZE_INDEX); eassert (NUMBERP (val) || NILP (val)); + char font_size_index_buf[sizeof "-*" + + max (INT_STRLEN_BOUND (EMACS_INT), + 1 + DBL_MAX_10_EXP + 1)]; if (INTEGERP (val)) { EMACS_INT v = XINT (val); @@ -1306,8 +1315,7 @@ font_unparse_xlfd (Lisp_Object font, int pixel_size, char *name, int nbytes) v = pixel_size; if (v > 0) { - f[XLFD_PIXEL_INDEX] = p = - alloca (sizeof "-*" + INT_STRLEN_BOUND (EMACS_INT)); + f[XLFD_PIXEL_INDEX] = p = font_size_index_buf; sprintf (p, "%"pI"d-*", v); } else @@ -1316,21 +1324,22 @@ font_unparse_xlfd (Lisp_Object font, int pixel_size, char *name, int nbytes) else if (FLOATP (val)) { double v = XFLOAT_DATA (val) * 10; - f[XLFD_PIXEL_INDEX] = p = alloca (sizeof "*-" + 1 + DBL_MAX_10_EXP + 1); + f[XLFD_PIXEL_INDEX] = p = font_size_index_buf; sprintf (p, "*-%.0f", v); } else f[XLFD_PIXEL_INDEX] = "*-*"; + char dpi_index_buf[sizeof "-" + 2 * INT_STRLEN_BOUND (EMACS_INT)]; if (INTEGERP (AREF (font, FONT_DPI_INDEX))) { EMACS_INT v = XINT (AREF (font, FONT_DPI_INDEX)); - f[XLFD_RESX_INDEX] = p = - alloca (sizeof "-" + 2 * INT_STRLEN_BOUND (EMACS_INT)); + f[XLFD_RESX_INDEX] = p = dpi_index_buf; sprintf (p, "%"pI"d-%"pI"d", v, v); } else f[XLFD_RESX_INDEX] = "*-*"; + if (INTEGERP (AREF (font, FONT_SPACING_INDEX))) { EMACS_INT spacing = XINT (AREF (font, FONT_SPACING_INDEX)); @@ -1342,13 +1351,16 @@ font_unparse_xlfd (Lisp_Object font, int pixel_size, char *name, int nbytes) } else f[XLFD_SPACING_INDEX] = "*"; + + char avgwidth_index_buf[INT_BUFSIZE_BOUND (EMACS_INT)]; if (INTEGERP (AREF (font, FONT_AVGWIDTH_INDEX))) { - f[XLFD_AVGWIDTH_INDEX] = p = alloca (INT_BUFSIZE_BOUND (EMACS_INT)); + f[XLFD_AVGWIDTH_INDEX] = p = avgwidth_index_buf; sprintf (p, "%"pI"d", XINT (AREF (font, FONT_AVGWIDTH_INDEX))); } else f[XLFD_AVGWIDTH_INDEX] = "*"; + len = snprintf (name, nbytes, "-%s-%s-%s-%s-%s-%s-%s-%s-%s-%s-%s", f[XLFD_FOUNDRY_INDEX], f[XLFD_FAMILY_INDEX], f[XLFD_WEIGHT_INDEX], f[XLFD_SLANT_INDEX], @@ -1751,7 +1763,7 @@ font_parse_name (char *name, ptrdiff_t namelen, Lisp_Object font) void font_parse_family_registry (Lisp_Object family, Lisp_Object registry, Lisp_Object font_spec) { - int len; + ptrdiff_t len; char *p0, *p1; if (! NILP (family) @@ -1782,10 +1794,8 @@ font_parse_family_registry (Lisp_Object family, Lisp_Object registry, Lisp_Objec p1 = strchr (p0, '-'); if (! p1) { - if (SDATA (registry)[len - 1] == '*') - registry = concat2 (registry, build_string ("-*")); - else - registry = concat2 (registry, build_string ("*-*")); + AUTO_STRING (extra, ("*-*" + (len && p0[len - 1] == '*'))); + registry = concat2 (registry, extra); } registry = Fdowncase (registry); ASET (font_spec, FONT_REGISTRY_INDEX, Fintern (registry, Qnil)); @@ -2185,13 +2195,17 @@ font_score (Lisp_Object entity, Lisp_Object *spec_prop) static Lisp_Object font_vconcat_entity_vectors (Lisp_Object list) { - int nargs = XINT (Flength (list)); - Lisp_Object *args = alloca (word_size * nargs); - int i; + EMACS_INT nargs = XFASTINT (Flength (list)); + Lisp_Object *args; + USE_SAFE_ALLOCA; + SAFE_ALLOCA_LISP (args, nargs); + ptrdiff_t i; for (i = 0; i < nargs; i++, list = XCDR (list)) args[i] = XCAR (list); - return Fvconcat (nargs, args); + Lisp_Object result = Fvconcat (nargs, args); + SAFE_FREE (); + return result; } @@ -2674,7 +2688,7 @@ font_delete_unmatched (Lisp_Object vec, Lisp_Object spec, int size) { Lisp_Object entity, val; enum font_property_index prop; - int i; + ptrdiff_t i; for (val = Qnil, i = ASIZE (vec) - 1; i >= 0; i--) { @@ -3219,9 +3233,10 @@ font_find_for_lface (struct frame *f, Lisp_Object *attrs, Lisp_Object spec, int val = attrs[LFACE_FAMILY_INDEX]; val = font_intern_prop (SSDATA (val), SBYTES (val), 1); } + Lisp_Object familybuf[3]; if (NILP (val)) { - family = alloca ((sizeof family[0]) * 2); + family = familybuf; family[0] = Qnil; family[1] = zero_vector; /* terminator. */ } @@ -3242,7 +3257,7 @@ font_find_for_lface (struct frame *f, Lisp_Object *attrs, Lisp_Object spec, int } else { - family = alloca ((sizeof family[0]) * 3); + family = familybuf; i = 0; family[i++] = val; if (NILP (AREF (spec, FONT_FAMILY_INDEX))) @@ -3529,8 +3544,9 @@ font_update_drivers (struct frame *f, Lisp_Object new_drivers) struct font_driver_list **list_table, **next; Lisp_Object tail; int i; + USE_SAFE_ALLOCA; - list_table = alloca (sizeof list_table[0] * (num_font_drivers + 1)); + SAFE_NALLOCA (list_table, 1, num_font_drivers + 1); for (i = 0, tail = new_drivers; ! NILP (tail); tail = XCDR (tail)) { for (list = f->font_driver_list; list; list = list->next) @@ -3551,6 +3567,7 @@ font_update_drivers (struct frame *f, Lisp_Object new_drivers) next = &(*next)->next; } *next = NULL; + SAFE_FREE (); if (! f->font_driver_list->on) { /* None of the drivers is enabled: enable them all. @@ -3927,29 +3944,37 @@ usage: (font-spec ARGS...) */) return spec; } -/* Return a copy of FONT as a font-spec. */ +/* Return a copy of FONT as a font-spec. For the sake of speed, this code + relies on an internal stuff exposed from alloc.c and should be handled + with care. */ + Lisp_Object copy_font_spec (Lisp_Object font) { - Lisp_Object new_spec, tail, prev, extra; - int i; + enum { font_spec_size = VECSIZE (struct font_spec) }; + Lisp_Object new_spec, tail, *pcdr; + struct font_spec *spec; CHECK_FONT (font); - new_spec = font_make_spec (); - for (i = 1; i < FONT_EXTRA_INDEX; i++) - ASET (new_spec, i, AREF (font, i)); - extra = Fcopy_alist (AREF (font, FONT_EXTRA_INDEX)); - /* We must remove :font-entity property. */ - for (prev = Qnil, tail = extra; CONSP (tail); prev = tail, tail = XCDR (tail)) - if (EQ (XCAR (XCAR (tail)), QCfont_entity)) - { - if (NILP (prev)) - extra = XCDR (extra); - else - XSETCDR (prev, XCDR (tail)); - break; - } - ASET (new_spec, FONT_EXTRA_INDEX, extra); + + /* Make an uninitialized font-spec object. */ + spec = (struct font_spec *) allocate_vector (font_spec_size); + XSETPVECTYPESIZE (spec, PVEC_FONT, FONT_SPEC_MAX, + font_spec_size - FONT_SPEC_MAX); + + spec->props[FONT_TYPE_INDEX] = spec->props[FONT_EXTRA_INDEX] = Qnil; + + /* Copy basic properties FONT_FOUNDRY_INDEX..FONT_AVGWIDTH_INDEX. */ + memcpy (spec->props + 1, XVECTOR (font)->contents + 1, + (FONT_EXTRA_INDEX - 1) * word_size); + + /* Copy an alist of extra information but discard :font-entity property. */ + pcdr = spec->props + FONT_EXTRA_INDEX; + for (tail = AREF (font, FONT_EXTRA_INDEX); CONSP (tail); tail = XCDR (tail)) + if (!EQ (XCAR (XCAR (tail)), QCfont_entity)) + *pcdr = Fcons (XCAR (tail), Qnil), pcdr = xcdr_addr (*pcdr); + + XSETFONT (new_spec, spec); return new_spec; } @@ -4252,7 +4277,7 @@ the consecutive wildcards are folded into one. */) { if (NILP (fold_wildcards)) return font_name; - strcpy (name, SSDATA (font_name)); + lispstpcpy (name, font_name); namelen = SBYTES (font_name); goto done; } @@ -4670,9 +4695,10 @@ DEFUN ("font-get-glyphs", Ffont_get_glyphs, Sfont_get_glyphs, 3, 4, 0, doc: /* Return a vector of FONT-OBJECT's glyphs for the specified characters. FROM and TO are positions (integers or markers) specifying a region -of the current buffer. -If the optional fourth arg OBJECT is not nil, it is a string or a -vector containing the target characters. +of the current buffer, and can be in either order. If the optional +fourth arg OBJECT is not nil, it is a string or a vector containing +the target characters between indices FROM and TO, which are treated +as in `substring'. Each element is a vector containing information of a glyph in this format: [FROM-IDX TO-IDX C CODE WIDTH LBEARING RBEARING ASCENT DESCENT ADJUSTMENT] @@ -4715,45 +4741,50 @@ the corresponding element is nil. */) else if (STRINGP (object)) { const unsigned char *p; + ptrdiff_t ifrom, ito; - CHECK_NUMBER (from); - CHECK_NUMBER (to); - if (XINT (from) < 0 || XINT (from) > XINT (to) - || XINT (to) > SCHARS (object)) - args_out_of_range_3 (object, from, to); - if (EQ (from, to)) + validate_subarray (object, from, to, SCHARS (object), &ifrom, &ito); + if (ifrom == ito) return Qnil; - len = XFASTINT (to) - XFASTINT (from); + len = ito - ifrom; SAFE_ALLOCA_LISP (chars, len); p = SDATA (object); if (STRING_MULTIBYTE (object)) - for (i = 0; i < len; i++) + { + int c; + + /* Skip IFROM characters from the beginning. */ + for (i = 0; i < ifrom; i++) + c = STRING_CHAR_ADVANCE (p); + + /* Now fetch an interesting characters. */ + for (i = 0; i < len; i++) { - int c = STRING_CHAR_ADVANCE (p); + c = STRING_CHAR_ADVANCE (p); chars[i] = make_number (c); } + } else for (i = 0; i < len; i++) - chars[i] = make_number (p[i]); + chars[i] = make_number (p[ifrom + i]); } - else + else if (VECTORP (object)) { - CHECK_VECTOR (object); - CHECK_NUMBER (from); - CHECK_NUMBER (to); - if (XINT (from) < 0 || XINT (from) > XINT (to) - || XINT (to) > ASIZE (object)) - args_out_of_range_3 (object, from, to); - if (EQ (from, to)) + ptrdiff_t ifrom, ito; + + validate_subarray (object, from, to, ASIZE (object), &ifrom, &ito); + if (ifrom == ito) return Qnil; - len = XFASTINT (to) - XFASTINT (from); + len = ito - ifrom; for (i = 0; i < len; i++) { - Lisp_Object elt = AREF (object, XFASTINT (from) + i); + Lisp_Object elt = AREF (object, ifrom + i); CHECK_CHARACTER (elt); } - chars = aref_addr (object, XFASTINT (from)); + chars = aref_addr (object, ifrom); } + else + wrong_type_argument (Qarrayp, object); vec = make_uninit_vector (len); for (i = 0; i < len; i++) @@ -4890,8 +4921,11 @@ If FRAME is omitted or nil, use the selected frame. */) DEFUN ("font-info", Ffont_info, Sfont_info, 1, 2, 0, doc: /* Return information about a font named NAME on frame FRAME. If FRAME is omitted or nil, use the selected frame. -The returned value is a vector of OPENED-NAME, FULL-NAME, SIZE, - HEIGHT, BASELINE-OFFSET, RELATIVE-COMPOSE, and DEFAULT-ASCENT, + +The returned value is a vector: + [ OPENED-NAME FULL-NAME SIZE HEIGHT BASELINE-OFFSET RELATIVE-COMPOSE + DEFAULT-ASCENT MAX-WIDTH ASCENT DESCENT SPACE-WIDTH AVERAGE-WIDTH + CAPABILITY ] where OPENED-NAME is the name used for opening the font, FULL-NAME is the full name of the font, @@ -4899,7 +4933,33 @@ where HEIGHT is the pixel-height of the font (i.e., ascent + descent), BASELINE-OFFSET is the upward offset pixels from ASCII baseline, RELATIVE-COMPOSE and DEFAULT-ASCENT are the numbers controlling - how to compose characters. + how to compose characters, + MAX-WIDTH is the maximum advance width of the font, + ASCENT, DESCENT, SPACE-WIDTH, AVERAGE-WIDTH are metrics of the font + in pixels, + FILENAME is the font file name, a string (or nil if the font backend + doesn't provide a file name). + CAPABILITY is a list whose first element is a symbol representing the + font format, one of x, opentype, truetype, type1, pcf, or bdf. + The remaining elements describe the details of the font capabilities, + as follows: + + If the font is OpenType font, the form of the list is + \(opentype GSUB GPOS) + where GSUB shows which "GSUB" features the font supports, and GPOS + shows which "GPOS" features the font supports. Both GSUB and GPOS are + lists of the form: + \((SCRIPT (LANGSYS FEATURE ...) ...) ...) + + where + SCRIPT is a symbol representing OpenType script tag. + LANGSYS is a symbol representing OpenType langsys tag, or nil + representing the default langsys. + FEATURE is a symbol representing OpenType feature tag. + + If the font is not an OpenType font, there are no elements + in CAPABILITY except the font format symbol. + If the named font is not yet loaded, return nil. */) (Lisp_Object name, Lisp_Object frame) { @@ -4935,7 +4995,7 @@ If the named font is not yet loaded, return nil. */) return Qnil; font = XFONT_OBJECT (font_object); - info = make_uninit_vector (7); + info = make_uninit_vector (14); ASET (info, 0, AREF (font_object, FONT_NAME_INDEX)); ASET (info, 1, AREF (font_object, FONT_FULLNAME_INDEX)); ASET (info, 2, make_number (font->pixel_size)); @@ -4943,6 +5003,16 @@ If the named font is not yet loaded, return nil. */) ASET (info, 4, make_number (font->baseline_offset)); ASET (info, 5, make_number (font->relative_compose)); ASET (info, 6, make_number (font->default_ascent)); + ASET (info, 7, make_number (font->max_width)); + ASET (info, 8, make_number (font->ascent)); + ASET (info, 9, make_number (font->descent)); + ASET (info, 10, make_number (font->space_width)); + ASET (info, 11, make_number (font->average_width)); + ASET (info, 12, AREF (font_object, FONT_FILE_INDEX)); + if (font->driver->otf_capability) + ASET (info, 13, Fcons (Qopentype, font->driver->otf_capability (font))); + else + ASET (info, 13, Qnil); #if 0 /* As font_object is still in FONT_OBJLIST of the entity, we can't @@ -5005,7 +5075,7 @@ font_add_log (const char *action, Lisp_Object arg, Lisp_Object result) if (FONTP (arg)) { Lisp_Object tail, elt; - Lisp_Object equalstr = build_string ("="); + AUTO_STRING (equal, "="); val = Ffont_xlfd_name (arg, Qt); for (tail = AREF (arg, FONT_EXTRA_INDEX); CONSP (tail); @@ -5015,16 +5085,15 @@ font_add_log (const char *action, Lisp_Object arg, Lisp_Object result) if (EQ (XCAR (elt), QCscript) && SYMBOLP (XCDR (elt))) val = concat3 (val, SYMBOL_NAME (QCscript), - concat2 (equalstr, SYMBOL_NAME (XCDR (elt)))); + concat2 (equal, SYMBOL_NAME (XCDR (elt)))); else if (EQ (XCAR (elt), QClang) && SYMBOLP (XCDR (elt))) val = concat3 (val, SYMBOL_NAME (QClang), - concat2 (equalstr, SYMBOL_NAME (XCDR (elt)))); + concat2 (equal, SYMBOL_NAME (XCDR (elt)))); else if (EQ (XCAR (elt), QCotf) && CONSP (XCDR (elt)) && SYMBOLP (XCAR (XCDR (elt)))) val = concat3 (val, SYMBOL_NAME (QCotf), - concat2 (equalstr, - SYMBOL_NAME (XCAR (XCDR (elt))))); + concat2 (equal, SYMBOL_NAME (XCAR (XCDR (elt))))); } arg = val; } @@ -5038,8 +5107,11 @@ font_add_log (const char *action, Lisp_Object arg, Lisp_Object result) { val = Ffont_xlfd_name (result, Qt); if (! FONT_SPEC_P (result)) - val = concat3 (SYMBOL_NAME (AREF (result, FONT_TYPE_INDEX)), - build_string (":"), val); + { + AUTO_STRING (colon, ":"); + val = concat3 (SYMBOL_NAME (AREF (result, FONT_TYPE_INDEX)), + colon, val); + } result = val; } else if (CONSP (result)) diff --git a/src/font.h b/src/font.h index cffc035cd49..52783419ebe 100644 --- a/src/font.h +++ b/src/font.h @@ -570,9 +570,9 @@ struct font_driver /* Compute the total metrics of the NGLYPHS glyphs specified by the font FONT and the sequence of glyph codes CODE, and store the result in METRICS. */ - int (*text_extents) (struct font *font, - unsigned *code, int nglyphs, - struct font_metrics *metrics); + void (*text_extents) (struct font *font, + unsigned *code, int nglyphs, + struct font_metrics *metrics); #ifdef HAVE_WINDOW_SYSTEM diff --git a/src/fontset.c b/src/fontset.c index e34719e5cdf..ac50be1c925 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -92,26 +92,27 @@ along with GNU Emacs. If not, see . */ range of characters in this fontset, but may be available in the default fontset. + A fontset has 8 extra slots. - A fontset has 9 extra slots. - - The 1st slot: the ID number of the fontset + The 1st slot: + base: the ID number of the fontset + realized: Likewise The 2nd slot: base: the name of the fontset realized: nil The 3rd slot: - base: nil - realized: the base fontset + base: the font name for ASCII characters + realized: nil The 4th slot: base: nil - realized: the frame that the fontset belongs to + realized: the base fontset The 5th slot: - base: the font name for ASCII characters - realized: nil + base: nil + realized: the frame that the fontset belongs to The 6th slot: base: nil @@ -120,15 +121,10 @@ along with GNU Emacs. If not, see . */ The 7th slot: base: nil - realized: Alist of font index vs the corresponding repertory - char-table. + realized: If the base is not the default fontset, a fontset + realized from the default fontset, else nil. The 8th slot: - base: nil - realized: If the base is not the default fontset, a fontset - realized from the default fontset, else nil. - - The 9th slot: base: Same as element value (but for fallback fonts). realized: Likewise. @@ -393,7 +389,7 @@ reorder_font_vector (Lisp_Object font_group, struct font *font) Lisp_Object vec, font_object; int size; int i; - bool score_changed = 0; + bool score_changed = false; if (font) XSETFONT (font_object, font); @@ -448,14 +444,15 @@ reorder_font_vector (Lisp_Object font_group, struct font *font) if (RFONT_DEF_SCORE (rfont_def) != score) { RFONT_DEF_SET_SCORE (rfont_def, score); - score_changed = 1; + score_changed = true; } } if (score_changed) qsort (XVECTOR (vec)->contents, size, word_size, fontset_compare_rfontdef); - XSETCAR (font_group, make_number (charset_ordered_list_tick)); + EMACS_INT low_tick_bits = charset_ordered_list_tick & MOST_POSITIVE_FIXNUM; + XSETCAR (font_group, make_number (low_tick_bits)); } /* Return a font-group (actually a cons (-1 . FONT-GROUP-VECTOR)) for @@ -1079,10 +1076,11 @@ fontset_pattern_regexp (Lisp_Object pattern) /* If PATTERN is not full XLFD we convert "*" to ".*". Otherwise we convert "*" to "[^-]*" which is much faster in regular expression matching. */ - if (ndashes < 14) - p1 = regex = alloca (SBYTES (pattern) + 2 * nstars + 2 * nescs + 1); - else - p1 = regex = alloca (SBYTES (pattern) + 5 * nstars + 2 * nescs + 1); + ptrdiff_t regexsize = (SBYTES (pattern) + + (ndashes < 14 ? 2 : 5) * nstars + + 2 * nescs + 1); + USE_SAFE_ALLOCA; + p1 = regex = SAFE_ALLOCA (regexsize); *p1++ = '^'; for (p0 = SDATA (pattern); *p0; p0++) @@ -1110,6 +1108,7 @@ fontset_pattern_regexp (Lisp_Object pattern) Vcached_fontset_data = Fcons (build_string (SSDATA (pattern)), build_string ((char *) regex)); + SAFE_FREE (); } return CACHED_FONTSET_REGEX; @@ -1460,8 +1459,8 @@ appended. By default, FONT-SPEC overrides the previous settings. */) registry = AREF (font_spec, FONT_REGISTRY_INDEX); if (! NILP (registry)) registry = Fdowncase (SYMBOL_NAME (registry)); - encoding = find_font_encoding (concat3 (family, build_string ("-"), - registry)); + AUTO_STRING (dash, "-"); + encoding = find_font_encoding (concat3 (family, dash, registry)); if (NILP (encoding)) encoding = Qascii; @@ -1573,7 +1572,7 @@ appended. By default, FONT-SPEC overrides the previous settings. */) if (ascii_changed) { - Lisp_Object tail, fr, alist; + Lisp_Object tail, fr; int fontset_id = XINT (FONTSET_ID (fontset)); set_fontset_ascii (fontset, fontname); @@ -1596,8 +1595,8 @@ appended. By default, FONT-SPEC overrides the previous settings. */) if (! NILP (font_object)) { update_auto_fontset_alist (font_object, fontset); - alist = list1 (Fcons (Qfont, Fcons (name, font_object))); - Fmodify_frame_parameters (fr, alist); + AUTO_FRAME_ARG (arg, Qfont, Fcons (name, font_object)); + Fmodify_frame_parameters (fr, arg); } } } @@ -1843,6 +1842,10 @@ DEFUN ("internal-char-font", Finternal_char_font, Sinternal_char_font, 1, 2, 0, return Qnil; if (!FRAME_WINDOW_P (f)) return Qnil; + /* We need the basic faces to be valid below, so recompute them if + some code just happened to clear the face cache. */ + if (FRAME_FACE_CACHE (f)->used == 0) + recompute_basic_faces (f); face_id = FACE_FOR_CHAR (f, FACE_FROM_ID (f, face_id), c, pos, Qnil); face = FACE_FROM_ID (f, face_id); if (face->font) @@ -1888,7 +1891,9 @@ format is the same as above. */) /* Recode fontsets realized on FRAME from the base fontset FONTSET in the table `realized'. */ - realized[0] = alloca (word_size * ASIZE (Vfontset_table)); + USE_SAFE_ALLOCA; + SAFE_ALLOCA_LISP (realized[0], 2 * ASIZE (Vfontset_table)); + realized[1] = realized[0] + ASIZE (Vfontset_table); for (i = j = 0; i < ASIZE (Vfontset_table); i++) { elt = FONTSET_FROM_ID (i); @@ -1899,7 +1904,6 @@ format is the same as above. */) } realized[0][j] = Qnil; - realized[1] = alloca (word_size * ASIZE (Vfontset_table)); for (i = j = 0; ! NILP (realized[0][i]); i++) { elt = FONTSET_DEFAULT (realized[0][i]); @@ -1991,6 +1995,7 @@ format is the same as above. */) break; } + SAFE_FREE (); return tables[0]; } diff --git a/src/frame.c b/src/frame.c index 1b9f818292f..31273665e88 100644 --- a/src/frame.c +++ b/src/frame.c @@ -120,6 +120,11 @@ static Lisp_Object Qdelete_frame_functions; static Lisp_Object Qframe_windows_min_size; static Lisp_Object Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource; +Lisp_Object Qframe_position, Qframe_outer_size, Qframe_inner_size; +Lisp_Object Qexternal_border_size, Qtitle_height; +Lisp_Object Qmenu_bar_external, Qmenu_bar_size; +Lisp_Object Qtool_bar_external, Qtool_bar_size; + /* The currently selected frame. */ Lisp_Object selected_frame; @@ -209,54 +214,19 @@ get_frame_param (register struct frame *frame, Lisp_Object prop) /* Return 1 if `frame-inhibit-implied-resize' is non-nil or fullscreen state of frame F would be affected by a vertical (horizontal if - HORIZONTAL is true) resize. */ + HORIZONTAL is true) resize. PARAMETER is the symbol of the frame + parameter that is changed. */ bool -frame_inhibit_resize (struct frame *f, bool horizontal) +frame_inhibit_resize (struct frame *f, bool horizontal, Lisp_Object parameter) { - - return (frame_inhibit_implied_resize - || !NILP (get_frame_param (f, Qfullscreen))); + return (EQ (frame_inhibit_implied_resize, Qt) + || (CONSP (frame_inhibit_implied_resize) + && !NILP (Fmemq (parameter, frame_inhibit_implied_resize))) + || !NILP (get_frame_param (f, Qfullscreen)) + || FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f)); } -#if 0 -bool -frame_inhibit_resize (struct frame *f, bool horizontal) -{ - Lisp_Object fullscreen = get_frame_param (f, Qfullscreen); - - return (frame_inhibit_implied_resize - || EQ (fullscreen, Qfullboth) - || EQ (fullscreen, Qfullscreen) - || EQ (fullscreen, Qmaximized) - || (horizontal && EQ (fullscreen, Qfullwidth)) - || (!horizontal && EQ (fullscreen, Qfullheight))); -} -#endif - static void -set_menu_bar_lines_1 (Lisp_Object window, int n) -{ - struct window *w = XWINDOW (window); - struct frame *f = XFRAME (WINDOW_FRAME (w)); - - w->top_line += n; - w->pixel_top += n * FRAME_LINE_HEIGHT (f); - w->total_lines -= n; - w->pixel_height -= n * FRAME_LINE_HEIGHT (f); - - /* Handle just the top child in a vertical split. */ - if (WINDOW_VERTICAL_COMBINATION_P (w)) - set_menu_bar_lines_1 (w->contents, n); - else if (WINDOW_HORIZONTAL_COMBINATION_P (w)) - /* Adjust all children in a horizontal split. */ - for (window = w->contents; !NILP (window); window = w->next) - { - w = XWINDOW (window); - set_menu_bar_lines_1 (window, n); - } -} - -void set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) { int nlines; @@ -277,11 +247,11 @@ set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) if (nlines != olines) { windows_or_buffers_changed = 14; - FRAME_WINDOW_SIZES_CHANGED (f) = 1; FRAME_MENU_BAR_LINES (f) = nlines; FRAME_MENU_BAR_HEIGHT (f) = nlines * FRAME_LINE_HEIGHT (f); - set_menu_bar_lines_1 (f->root_window, nlines - olines); - adjust_frame_glyphs (f); + change_frame_size (f, FRAME_COLS (f), + FRAME_LINES (f) + olines - nlines, + 0, 1, 0, 0); } } @@ -365,49 +335,55 @@ predicates which report frame's specific UI-related capabilities. */) } static int -frame_windows_min_size (Lisp_Object frame, Lisp_Object horizontal, Lisp_Object pixelwise) +frame_windows_min_size (Lisp_Object frame, Lisp_Object horizontal, Lisp_Object ignore, Lisp_Object pixelwise) { - return XINT (call3 (Qframe_windows_min_size, frame, horizontal, pixelwise)); + return XINT (call4 (Qframe_windows_min_size, frame, horizontal, ignore, pixelwise)); } /* Make sure windows sizes of frame F are OK. new_width and new_height are in pixels. A value of -1 means no change is requested for that - size (but the frame may still have to be resized to accomodate - windows with their minimum sizes. + size (but the frame may still have to be resized to accommodate + windows with their minimum sizes). This can either issue a request + to resize the frame externally (via x_set_window_size), to resize the + frame internally (via resize_frame_windows) or do nothing at all. The argument INHIBIT can assume the following values: 0 means to unconditionally call x_set_window_size even if sizes - apparently do not change. Fx_create_frame uses this to pass the - initial size to the window manager. + apparently do not change. Fx_create_frame uses this to pass the + initial size to the window manager. - 1 means to call x_set_window_size iff the pixel size really changes. - Fset_frame_size, Fset_frame_height, ... use this. + 1 means to call x_set_window_size if the outer frame size really + changes. Fset_frame_size, Fset_frame_height, ... use this. - 2 means to unconditionally call x_set_window_size provided - frame_inhibit_resize allows it. The menu bar code uses this. + 2 means to call x_set_window_size provided frame_inhibit_resize + allows it. The menu and tool bar code use this ("3" won't work + here in general because menu and tool bar are often not counted in + the frame's text height). - 3 means call x_set_window_size iff window minimum sizes must be - preserved or frame_inhibit_resize allows it, x_set_left_fringe, - x_set_scroll_bar_width, ... use this. + 3 means call x_set_window_size if window minimum sizes must be + preserved or frame_inhibit_resize allows it. x_set_left_fringe, + x_set_scroll_bar_width, x_new_font ... use (or should use) this. - 4 means call x_set_window_size iff window minimum sizes must be - preserved. x_set_tool_bar_lines, x_set_right_divider_width, ... use - this. BUT maybe the toolbar code shouldn't .... + 4 means call x_set_window_size only if window minimum sizes must be + preserved. x_set_right_divider_width, x_set_border_width and the + code responsible for wrapping the tool bar use this. 5 means to never call x_set_window_size. change_frame_size uses - this. + this. - For 2 and 3 note that if frame_inhibit_resize inhibits resizing and - minimum sizes are not violated no internal resizing takes place - either. For 2, 3, 4 and 5 note that even if no x_set_window_size - call is issued, window sizes may have to be adjusted in order to - support minimum size constraints for the frame's windows. + Note that even when x_set_window_size is not called, individual + windows may have to be resized (via `window--sanitize-window-sizes') + in order to support minimum size constraints. - PRETEND is as for change_frame_size. */ + PRETEND is as for change_frame_size. PARAMETER, if non-nil, is the + symbol of the parameter changed (like `menu-bar-lines', `font', ...). + This is passed on to frame_inhibit_resize to let the latter decide on + a case-by-case basis whether the frame may be resized externally. */ void -adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, bool pretend) +adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, + bool pretend, Lisp_Object parameter) { int unit_width = FRAME_COLUMN_WIDTH (f); int unit_height = FRAME_LINE_HEIGHT (f); @@ -443,8 +419,10 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, /* The following two values are calculated from the old window body sizes and any "new" settings for scroll bars, dividers, fringes and margins (though the latter should have been processed already). */ - min_windows_width = frame_windows_min_size (frame, Qt, Qt); - min_windows_height = frame_windows_min_size (frame, Qnil, Qt); + min_windows_width + = frame_windows_min_size (frame, Qt, (inhibit == 5) ? Qt : Qnil, Qt); + min_windows_height + = frame_windows_min_size (frame, Qnil, (inhibit == 5) ? Qt : Qnil, Qt); if (inhibit >= 2 && inhibit <= 4) /* If INHIBIT is in [2..4] inhibit if the "old" window sizes stay @@ -452,10 +430,12 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, so or INHIBIT equals 4. */ { inhibit_horizontal = ((windows_width >= min_windows_width - && (inhibit == 4 || frame_inhibit_resize (f, true))) + && (inhibit == 4 + || frame_inhibit_resize (f, true, parameter))) ? true : false); inhibit_vertical = ((windows_height >= min_windows_height - && (inhibit == 4 || frame_inhibit_resize (f, false))) + && (inhibit == 4 + || frame_inhibit_resize (f, false, parameter))) ? true : false); } else @@ -485,7 +465,7 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, #ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f) - && f->official + && f->can_x_set_window_size && ((!inhibit_horizontal && (new_pixel_width != old_pixel_width || inhibit == 0 || inhibit == 2)) @@ -563,7 +543,7 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, /* MSDOS frames cannot PRETEND, as they change frame size by manipulating video hardware. */ if ((FRAME_TERMCAP_P (f) && !pretend) || FRAME_MSDOS_P (f)) - FrameRows (FRAME_TTY (f)) = new_lines; + FrameRows (FRAME_TTY (f)) = new_lines + FRAME_TOP_MARGIN (f); } /* Assign new sizes. */ @@ -630,7 +610,8 @@ make_frame (bool mini_p) f->wants_modeline = true; f->redisplay = true; f->garbaged = true; - f->official = false; + f->can_x_set_window_size = false; + f->can_run_window_configuration_change_hook = false; f->column_width = 1; /* !FRAME_WINDOW_P value. */ f->line_height = 1; /* !FRAME_WINDOW_P value. */ #ifdef HAVE_WINDOW_SYSTEM @@ -860,7 +841,7 @@ make_initial_frame (void) #ifdef HAVE_WINDOW_SYSTEM f->vertical_scroll_bar_type = vertical_scroll_bar_none; - FRAME_HAS_HORIZONTAL_SCROLL_BARS (f) = false; + f->horizontal_scroll_bars = false; #endif /* The default value of menu-bar-mode is t. */ @@ -913,11 +894,13 @@ make_terminal_frame (struct terminal *terminal) #ifdef HAVE_WINDOW_SYSTEM f->vertical_scroll_bar_type = vertical_scroll_bar_none; - FRAME_HAS_HORIZONTAL_SCROLL_BARS (f) = false; + f->horizontal_scroll_bars = false; #endif FRAME_MENU_BAR_LINES (f) = NILP (Vmenu_bar_mode) ? 0 : 1; + FRAME_LINES (f) = FRAME_LINES (f) - FRAME_MENU_BAR_LINES (f); FRAME_MENU_BAR_HEIGHT (f) = FRAME_MENU_BAR_LINES (f) * FRAME_LINE_HEIGHT (f); + FRAME_TEXT_HEIGHT (f) = FRAME_TEXT_HEIGHT (f) - FRAME_MENU_BAR_HEIGHT (f); /* Set the top frame to the newly created frame. */ if (FRAMEP (FRAME_TTY (f)->top_frame) @@ -999,7 +982,7 @@ affects all frames on the same terminal device. */) if (CONSP (terminal)) { terminal = XCDR (terminal); - t = get_terminal (terminal, 1); + t = decode_live_terminal (terminal); } #ifdef MSDOS if (t && t != the_only_display_info.terminal) @@ -1014,22 +997,24 @@ affects all frames on the same terminal device. */) { char *name = 0, *type = 0; Lisp_Object tty, tty_type; + USE_SAFE_ALLOCA; tty = get_future_frame_param (Qtty, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame)) ? FRAME_TTY (XFRAME (selected_frame))->name : NULL)); if (!NILP (tty)) - name = xlispstrdupa (tty); + SAFE_ALLOCA_STRING (name, tty); tty_type = get_future_frame_param (Qtty_type, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame)) ? FRAME_TTY (XFRAME (selected_frame))->type : NULL)); if (!NILP (tty_type)) - type = xlispstrdupa (tty_type); + SAFE_ALLOCA_STRING (type, tty_type); t = init_tty (name, type, 0); /* Errors are not fatal. */ + SAFE_FREE (); } f = make_terminal_frame (t); @@ -1037,7 +1022,7 @@ affects all frames on the same terminal device. */) { int width, height; get_tty_size (fileno (FRAME_TTY (f)->input), &width, &height); - adjust_frame_size (f, width, height, 5, 0); + adjust_frame_size (f, width, height - FRAME_MENU_BAR_LINES (f), 5, 0, Qnil); } adjust_frame_glyphs (f); @@ -1168,8 +1153,8 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor frame's data. */ if (FRAME_COLS (f) != FrameCols (tty)) FrameCols (tty) = FRAME_COLS (f); - if (FRAME_LINES (f) != FrameRows (tty)) - FrameRows (tty) = FRAME_LINES (f); + if (FRAME_TOTAL_LINES (f) != FrameRows (tty)) + FrameRows (tty) = FRAME_TOTAL_LINES (f); } tty->top_frame = frame; } @@ -1211,7 +1196,7 @@ This function returns FRAME, or nil if FRAME has been deleted. */) return do_switch_frame (frame, 1, 0, norecord); } -DEFUN ("handle-switch-frame", Fhandle_switch_frame, Shandle_switch_frame, 1, 1, "e", +DEFUN ("handle-switch-frame", Fhandle_switch_frame, Shandle_switch_frame, 1, 1, "^e", doc: /* Handle a switch-frame event EVENT. Switch-frame events are usually bound to this function. A switch-frame event tells Emacs that the window manager has requested @@ -1824,9 +1809,9 @@ The functions are run with one argument, the frame to be deleted. */) DEFUN ("mouse-position", Fmouse_position, Smouse_position, 0, 0, 0, doc: /* Return a list (FRAME X . Y) giving the current mouse frame and position. -The position is given in character cells, where (0, 0) is the -upper-left corner of the frame, X is the horizontal offset, and Y is -the vertical offset. +The position is given in canonical character cells, where (0, 0) is the +upper-left corner of the frame, X is the horizontal offset, and Y is the +vertical offset, measured in units of the frame's default character size. If Emacs is running on a mouseless terminal or hasn't been programmed to read the mouse position, it returns the selected frame for FRAME and nil for X and Y. @@ -1883,7 +1868,8 @@ and nil for X and Y. */) { struct frame *f; Lisp_Object lispy_dummy; - Lisp_Object x, y; + Lisp_Object x, y, retval; + struct gcpro gcpro1; f = SELECTED_FRAME (); x = y = Qnil; @@ -1900,7 +1886,11 @@ and nil for X and Y. */) } XSETFRAME (lispy_dummy, f); - return Fcons (lispy_dummy, Fcons (x, y)); + retval = Fcons (lispy_dummy, Fcons (x, y)); + GCPRO1 (retval); + if (!NILP (Vmouse_position_function)) + retval = call1 (Vmouse_position_function, retval); + RETURN_UNGCPRO (retval); } #ifdef HAVE_WINDOW_SYSTEM @@ -1945,9 +1935,10 @@ Coordinates are relative to the frame, not a window, so the coordinates of the top left character in the frame may be nonzero due to left-hand scroll bars or the menu bar. -The position is given in character cells, where (0, 0) is the -upper-left corner of the frame, X is the horizontal offset, and Y is -the vertical offset. +The position is given in canonical character cells, where (0, 0) is +the upper-left corner of the frame, X is the horizontal offset, and +Y is the vertical offset, measured in units of the frame's default +character size. This function is a no-op for an X frame that is not visible. If you have just created a frame, you must wait for it to become visible @@ -2271,6 +2262,26 @@ If there is no window system support, this function does nothing. */) return Qnil; } +DEFUN ("frame-can-run-window-configuration-change-hook", + Fcan_run_window_configuration_change_hook, + Scan_run_window_configuration_change_hook, 2, 2, 0, + doc: /* Whether `window-configuration-change-hook' is run for frame FRAME. +FRAME nil means use the selected frame. Second argument ALLOW non-nil +means functions on `window-configuration-change-hook' are called +whenever the window configuration of FRAME changes. ALLOW nil means +these functions are not called. + +This function is currently called by `face-set-after-frame-default' only +and should be otherwise used with utter care to avoid that running +functions on `window-configuration-change-hook' is impeded forever. */) + (Lisp_Object frame, Lisp_Object allow) +{ + struct frame *f = decode_live_frame (frame); + + f->can_run_window_configuration_change_hook = NILP (allow) ? false : true; + return Qnil; +} + /* Discard BUFFER from the buffer-list and buried-buffer-list of each frame. */ @@ -2733,7 +2744,7 @@ to `frame-height'). */) return make_number (FRAME_PIXEL_HEIGHT (f)); else #endif - return make_number (FRAME_LINES (f)); + return make_number (FRAME_TOTAL_LINES (f)); } DEFUN ("frame-pixel-width", Fframe_pixel_width, @@ -2750,7 +2761,7 @@ If FRAME is omitted or nil, the selected frame is used. */) return make_number (FRAME_PIXEL_WIDTH (f)); else #endif - return make_number (FRAME_COLS (f)); + return make_number (FRAME_TOTAL_COLS (f)); } DEFUN ("tool-bar-pixel-width", Ftool_bar_pixel_width, @@ -2855,11 +2866,15 @@ DEFUN ("frame-bottom-divider-width", Fbottom_divider_width, Sbottom_divider_widt } DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 4, 0, - doc: /* Specify that the frame FRAME has HEIGHT text lines. + doc: /* Set height of frame FRAME to HEIGHT lines. Optional third arg PRETEND non-nil means that redisplay should use HEIGHT lines but that the idea of the actual height of the frame should -not be changed. Optional fourth argument PIXELWISE non-nil means that -FRAME should be HEIGHT pixels high. */) +not be changed. + +Optional fourth argument PIXELWISE non-nil means that FRAME should be +HEIGHT pixels high. Note: When `frame-resize-pixelwise' is nil, some +window managers may refuse to honor a HEIGHT that is not an integer +multiple of the default frame font height. */) (Lisp_Object frame, Lisp_Object height, Lisp_Object pretend, Lisp_Object pixelwise) { struct frame *f = decode_live_frame (frame); @@ -2871,17 +2886,21 @@ FRAME should be HEIGHT pixels high. */) ? XINT (height) : XINT (height) * FRAME_LINE_HEIGHT (f)); if (pixel_height != FRAME_TEXT_HEIGHT (f)) - adjust_frame_size (f, -1, pixel_height, 1, !NILP (pretend)); + adjust_frame_size (f, -1, pixel_height, 1, !NILP (pretend), Qheight); return Qnil; } DEFUN ("set-frame-width", Fset_frame_width, Sset_frame_width, 2, 4, 0, - doc: /* Specify that the frame FRAME has WIDTH columns. + doc: /* Set width of frame FRAME to WIDTH columns. Optional third arg PRETEND non-nil means that redisplay should use WIDTH columns but that the idea of the actual width of the frame should not -be changed. Optional fourth argument PIXELWISE non-nil means that FRAME -should be WIDTH pixels wide. */) +be changed. + +Optional fourth argument PIXELWISE non-nil means that FRAME should be +WIDTH pixels wide. Note: When `frame-resize-pixelwise' is nil, some +window managers may refuse to honor a WIDTH that is not an integer +multiple of the default frame font width. */) (Lisp_Object frame, Lisp_Object width, Lisp_Object pretend, Lisp_Object pixelwise) { struct frame *f = decode_live_frame (frame); @@ -2893,14 +2912,18 @@ should be WIDTH pixels wide. */) ? XINT (width) : XINT (width) * FRAME_COLUMN_WIDTH (f)); if (pixel_width != FRAME_TEXT_WIDTH (f)) - adjust_frame_size (f, pixel_width, -1, 1, !NILP (pretend)); + adjust_frame_size (f, pixel_width, -1, 1, !NILP (pretend), Qwidth); return Qnil; } DEFUN ("set-frame-size", Fset_frame_size, Sset_frame_size, 3, 4, 0, - doc: /* Sets size of FRAME to WIDTH by HEIGHT, measured in characters. -Optional argument PIXELWISE non-nil means to measure in pixels. */) + doc: /* Set size of FRAME to WIDTH by HEIGHT, measured in characters. +Optional argument PIXELWISE non-nil means to measure in pixels. Note: +When `frame-resize-pixelwise' is nil, some window managers may refuse to +honor a WIDTH that is not an integer multiple of the default frame font +width or a HEIGHT that is not an integer multiple of the default frame +font height. */) (Lisp_Object frame, Lisp_Object width, Lisp_Object height, Lisp_Object pixelwise) { struct frame *f = decode_live_frame (frame); @@ -2918,7 +2941,7 @@ Optional argument PIXELWISE non-nil means to measure in pixels. */) if (pixel_width != FRAME_TEXT_WIDTH (f) || pixel_height != FRAME_TEXT_HEIGHT (f)) - adjust_frame_size (f, pixel_width, pixel_height, 1, 0); + adjust_frame_size (f, pixel_width, pixel_height, 1, 0, Qsize); return Qnil; } @@ -3020,7 +3043,7 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist) /* If both of these parameters are present, it's more efficient to set them both at once. So we wait until we've looked at the entire list before we set them. */ - int width, height; + int width IF_LINT (= 0), height IF_LINT (= 0); bool width_change = 0, height_change = 0; /* Same here. */ @@ -3037,14 +3060,14 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist) #ifdef HAVE_X_WINDOWS bool icon_left_no_change = 0, icon_top_no_change = 0; #endif - struct gcpro gcpro1, gcpro2; i = 0; for (tail = alist; CONSP (tail); tail = XCDR (tail)) i++; - parms = alloca (i * sizeof *parms); - values = alloca (i * sizeof *values); + USE_SAFE_ALLOCA; + SAFE_ALLOCA_LISP (parms, 2 * i); + values = parms + i; /* Extract parm names and values into those vectors. */ @@ -3061,10 +3084,6 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist) /* TAIL and ALIST are not used again below here. */ alist = tail = Qnil; - GCPRO2 (*parms, *values); - gcpro1.nvars = i; - gcpro2.nvars = i; - /* There is no need to gcpro LEFT, TOP, ICON_LEFT, or ICON_TOP, because their values appear in VALUES and strings are not valid. */ top = left = Qunbound; @@ -3198,9 +3217,9 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist) XSETFRAME (frame, f); - if (((width_change && width != FRAME_TEXT_WIDTH (f)) - || (height_change && height != FRAME_TEXT_HEIGHT (f))) - && (f->new_height || f->new_width)) + if ((width_change && width != FRAME_TEXT_WIDTH (f)) + || (height_change && height != FRAME_TEXT_HEIGHT (f)) + || f->new_height || f->new_width) { /* If necessary provide default values for HEIGHT and WIDTH. Do that here since otherwise a size change implied by an @@ -3293,7 +3312,7 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist) #endif /* HAVE_X_WINDOWS */ } - UNGCPRO; + SAFE_FREE (); } @@ -3646,7 +3665,7 @@ x_set_left_fringe (struct frame *f, Lisp_Object new_value, Lisp_Object old_value = (new_width + FRAME_RIGHT_FRINGE_WIDTH (f) + unit - 1) / unit; if (FRAME_X_WINDOW (f) != 0) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qleft_fringe); SET_FRAME_GARBAGED (f); } @@ -3670,7 +3689,7 @@ x_set_right_fringe (struct frame *f, Lisp_Object new_value, Lisp_Object old_valu = (new_width + FRAME_LEFT_FRINGE_WIDTH (f) + unit - 1) / unit; if (FRAME_X_WINDOW (f) != 0) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qright_fringe); SET_FRAME_GARBAGED (f); } @@ -3702,7 +3721,7 @@ x_set_right_divider_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval) FRAME_RIGHT_DIVIDER_WIDTH (f) = 0; if (FRAME_RIGHT_DIVIDER_WIDTH (f) != old) { - adjust_frame_size (f, -1, -1, 4, 0); + adjust_frame_size (f, -1, -1, 4, 0, Qright_divider_width); adjust_frame_glyphs (f); SET_FRAME_GARBAGED (f); } @@ -3720,7 +3739,7 @@ x_set_bottom_divider_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval FRAME_BOTTOM_DIVIDER_WIDTH (f) = 0; if (FRAME_BOTTOM_DIVIDER_WIDTH (f) != old) { - adjust_frame_size (f, -1, -1, 4, 0); + adjust_frame_size (f, -1, -1, 4, 0, Qbottom_divider_width); adjust_frame_glyphs (f); SET_FRAME_GARBAGED (f); } @@ -3784,7 +3803,7 @@ x_set_vertical_scroll_bars (struct frame *f, Lisp_Object arg, Lisp_Object oldval However, if the window hasn't been created yet, we shouldn't call x_set_window_size. */ if (FRAME_X_WINDOW (f)) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qvertical_scroll_bars); SET_FRAME_GARBAGED (f); } @@ -3793,19 +3812,18 @@ x_set_vertical_scroll_bars (struct frame *f, Lisp_Object arg, Lisp_Object oldval void x_set_horizontal_scroll_bars (struct frame *f, Lisp_Object arg, Lisp_Object oldval) { -#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NTGUI) +#if USE_HORIZONTAL_SCROLL_BARS if ((NILP (arg) && FRAME_HAS_HORIZONTAL_SCROLL_BARS (f)) || (!NILP (arg) && !FRAME_HAS_HORIZONTAL_SCROLL_BARS (f))) { - FRAME_HAS_HORIZONTAL_SCROLL_BARS (f) - = NILP (arg) ? false : true; + f->horizontal_scroll_bars = NILP (arg) ? false : true; /* We set this parameter before creating the X window for the frame, so we can get the geometry right from the start. However, if the window hasn't been created yet, we shouldn't call x_set_window_size. */ if (FRAME_X_WINDOW (f)) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qhorizontal_scroll_bars); SET_FRAME_GARBAGED (f); } @@ -3822,7 +3840,7 @@ x_set_scroll_bar_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval) x_set_scroll_bar_default_width (f); if (FRAME_X_WINDOW (f)) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_width); SET_FRAME_GARBAGED (f); } @@ -3832,7 +3850,7 @@ x_set_scroll_bar_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval) FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = XFASTINT (arg); FRAME_CONFIG_SCROLL_BAR_COLS (f) = (XFASTINT (arg) + unit - 1) / unit; if (FRAME_X_WINDOW (f)) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_width); SET_FRAME_GARBAGED (f); } @@ -3844,7 +3862,7 @@ x_set_scroll_bar_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval) void x_set_scroll_bar_height (struct frame *f, Lisp_Object arg, Lisp_Object oldval) { -#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NTGUI) +#if USE_HORIZONTAL_SCROLL_BARS int unit = FRAME_LINE_HEIGHT (f); if (NILP (arg)) @@ -3852,7 +3870,7 @@ x_set_scroll_bar_height (struct frame *f, Lisp_Object arg, Lisp_Object oldval) x_set_scroll_bar_default_height (f); if (FRAME_X_WINDOW (f)) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_height); SET_FRAME_GARBAGED (f); } @@ -3862,7 +3880,7 @@ x_set_scroll_bar_height (struct frame *f, Lisp_Object arg, Lisp_Object oldval) FRAME_CONFIG_SCROLL_BAR_HEIGHT (f) = XFASTINT (arg); FRAME_CONFIG_SCROLL_BAR_LINES (f) = (XFASTINT (arg) + unit - 1) / unit; if (FRAME_X_WINDOW (f)) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_height); SET_FRAME_GARBAGED (f); } @@ -4027,10 +4045,6 @@ validate_x_resource_name (void) static Lisp_Object xrdb_get_resource (XrmDatabase rdb, Lisp_Object attribute, Lisp_Object class, Lisp_Object component, Lisp_Object subclass) { - register char *value; - char *name_key; - char *class_key; - CHECK_STRING (attribute); CHECK_STRING (class); @@ -4045,22 +4059,25 @@ xrdb_get_resource (XrmDatabase rdb, Lisp_Object attribute, Lisp_Object class, Li /* Allocate space for the components, the dots which separate them, and the final '\0'. Make them big enough for the worst case. */ - name_key = alloca (SBYTES (Vx_resource_name) - + (STRINGP (component) - ? SBYTES (component) : 0) - + SBYTES (attribute) - + 3); + ptrdiff_t name_keysize = (SBYTES (Vx_resource_name) + + (STRINGP (component) + ? SBYTES (component) : 0) + + SBYTES (attribute) + + 3); - class_key = alloca (SBYTES (Vx_resource_class) - + SBYTES (class) - + (STRINGP (subclass) - ? SBYTES (subclass) : 0) - + 3); + ptrdiff_t class_keysize = (SBYTES (Vx_resource_class) + + SBYTES (class) + + (STRINGP (subclass) + ? SBYTES (subclass) : 0) + + 3); + USE_SAFE_ALLOCA; + char *name_key = SAFE_ALLOCA (name_keysize + class_keysize); + char *class_key = name_key + name_keysize; /* Start with emacs.FRAMENAME for the name (the specific one) and with `Emacs' for the class key (the general one). */ - strcpy (name_key, SSDATA (Vx_resource_name)); - strcpy (class_key, SSDATA (Vx_resource_class)); + lispstpcpy (name_key, Vx_resource_name); + lispstpcpy (class_key, Vx_resource_class); strcat (class_key, "."); strcat (class_key, SSDATA (class)); @@ -4077,7 +4094,8 @@ xrdb_get_resource (XrmDatabase rdb, Lisp_Object attribute, Lisp_Object class, Li strcat (name_key, "."); strcat (name_key, SSDATA (attribute)); - value = x_get_string_resource (rdb, name_key, class_key); + char *value = x_get_string_resource (rdb, name_key, class_key); + SAFE_FREE(); if (value && *value) return build_string (value); @@ -4129,8 +4147,10 @@ x_get_resource_string (const char *attribute, const char *class) /* Allocate space for the components, the dots which separate them, and the final '\0'. */ - char *name_key = SAFE_ALLOCA (invocation_namelen + strlen (attribute) + 2); - char *class_key = alloca ((sizeof (EMACS_CLASS) - 1) + strlen (class) + 2); + ptrdiff_t name_keysize = invocation_namelen + strlen (attribute) + 2; + ptrdiff_t class_keysize = sizeof (EMACS_CLASS) - 1 + strlen (class) + 2; + char *name_key = SAFE_ALLOCA (name_keysize + class_keysize); + char *class_key = name_key + name_keysize; esprintf (name_key, "%s.%s", SSDATA (Vinvocation_name), attribute); sprintf (class_key, "%s.%s", EMACS_CLASS, class); @@ -4157,7 +4177,7 @@ Lisp_Object x_get_arg (Display_Info *dpyinfo, Lisp_Object alist, Lisp_Object param, const char *attribute, const char *class, enum resource_types type) { - register Lisp_Object tem; + Lisp_Object tem; tem = Fassq (param, alist); @@ -4183,10 +4203,9 @@ x_get_arg (Display_Info *dpyinfo, Lisp_Object alist, Lisp_Object param, { if (attribute && dpyinfo) { - tem = display_x_get_resource (dpyinfo, - build_string (attribute), - build_string (class), - Qnil, Qnil); + AUTO_STRING (at, attribute); + AUTO_STRING (cl, class); + tem = display_x_get_resource (dpyinfo, at, cl, Qnil, Qnil); if (NILP (tem)) return Qunbound; @@ -4296,7 +4315,8 @@ x_default_parameter (struct frame *f, Lisp_Object alist, Lisp_Object prop, tem = x_frame_get_arg (f, alist, prop, xprop, xclass, type); if (EQ (tem, Qunbound)) tem = deflt; - x_set_frame_parameters (f, list1 (Fcons (prop, tem))); + AUTO_FRAME_ARG (arg, prop, tem); + x_set_frame_parameters (f, arg); return tem; } @@ -4803,12 +4823,21 @@ syms_of_frame (void) DEFSYM (Qterminal, "terminal"); - DEFSYM (Qgeometry, "geometry"); DEFSYM (Qworkarea, "workarea"); DEFSYM (Qmm_size, "mm-size"); DEFSYM (Qframes, "frames"); DEFSYM (Qsource, "source"); + DEFSYM (Qframe_position, "frame-position"); + DEFSYM (Qframe_outer_size, "frame-outer-size"); + DEFSYM (Qexternal_border_size, "external-border-size"); + DEFSYM (Qtitle_height, "title-height"); + DEFSYM (Qmenu_bar_external, "menu-bar-external"); + DEFSYM (Qmenu_bar_size, "menu-bar-size"); + DEFSYM (Qtool_bar_external, "tool-bar-external"); + DEFSYM (Qtool_bar_size, "tool-bar-size"); + DEFSYM (Qframe_inner_size, "frame-inner-size"); + #ifdef HAVE_NS DEFSYM (Qns_parse_geometry, "ns-parse-geometry"); #endif @@ -4889,14 +4918,6 @@ Setting this variable does not affect existing frames, only new ones. */); Vdefault_frame_scroll_bars = Qnil; #endif - DEFVAR_LISP ("default-frame-horizontal-scroll-bars", Vdefault_frame_horizontal_scroll_bars, - doc: /* Default value for horizontal scroll bars on this window-system. */); -#ifdef HAVE_WINDOW_SYSTEM - Vdefault_frame_horizontal_scroll_bars = Qt; -#else - Vdefault_frame_horizontal_scroll_bars = Qnil; -#endif - DEFVAR_BOOL ("scroll-bar-adjust-thumb-portion", scroll_bar_adjust_thumb_portion_p, doc: /* Adjust thumb for overscrolling for Gtk+ and MOTIF. @@ -4912,8 +4933,8 @@ is visible. In this case you can not overscroll. */); DEFVAR_LISP ("mouse-position-function", Vmouse_position_function, doc: /* If non-nil, function to transform normal value of `mouse-position'. -`mouse-position' calls this function, passing its usual return value as -argument, and returns whatever this function returns. +`mouse-position' and `mouse-pixel-position' call this function, passing their +usual return value as argument, and return whatever this function returns. This abnormal hook exists for the benefit of packages like `xt-mouse.el' which need to do mouse handling at the Lisp level. */); Vmouse_position_function = Qnil; @@ -5006,17 +5027,54 @@ is non-nil, no rounding occurs, hence frame sizes can increase/decrease by one pixel. With some window managers you may have to set this to non-nil in order -to fully maximize frames. To resize your initial frame pixelwise, set -this option to a non-nil value in your init file. */); +to set the size of a frame in pixels, to maximize frames or to make them +fullscreen. To resize your initial frame pixelwise, set this option to +a non-nil value in your init file. */); frame_resize_pixelwise = 0; - DEFVAR_BOOL ("frame-inhibit-implied-resize", frame_inhibit_implied_resize, - doc: /* Non-nil means do not resize frame implicitly. -If this option is nil, setting default font, menubar mode, fringe width, -or scroll bar mode of a specific frame may resize the frame in order to -preserve the number of columns or lines it displays. If this option is -non-nil, no such resizing is done. */); - frame_inhibit_implied_resize = 0; + DEFVAR_LISP ("frame-inhibit-implied-resize", frame_inhibit_implied_resize, + doc: /* Whether frames should be resized implicitly. +If this option is nil, setting font, menu bar, tool bar, internal +borders, fringes or scroll bars of a specific frame may resize the frame +in order to preserve the number of columns or lines it displays. If +this option is `t', no such resizing is done. Note that the size of +fullscreen and maximized frames, the height of fullheight frames and the +width of fullwidth frames never change implicitly. + +The value of this option can be also be a list of frame parameters. In +this case, resizing is inhibited when changing a parameter that appears +in that list. The parameters currently handled by this option include +`font', `font-backend', `internal-border-width', `menu-bar-lines' and +`tool-bar-lines'. + +Changing any of the parameters `scroll-bar-width', `scroll-bar-height', +`vertical-scroll-bars', `horizontal-scroll-bars', `left-fringe' and +`right-fringe' is handled as if the frame contained just one live +window. This means, for example, that removing vertical scroll bars on +a frame containing several side by side windows will shrink the frame +width by the width of one scroll bar provided this option is nil and +keep it unchanged if this option is either `t' or a list containing +`vertical-scroll-bars'. + +The default value is '(tool-bar-lines) on Lucid, Motif and Windows +(which means that adding/removing a tool bar does not change the frame +height), nil on all other window systems including GTK+ (which means +that changing any of the parameters listed above may change the size of +the frame), and `t' otherwise (which means the frame size never changes +implicitly when there's no window system support). + +Note that when a frame is not large enough to accommodate a change of +any of the parameters listed above, Emacs may try to enlarge the frame +even if this option is non-nil. */); +#if defined (HAVE_WINDOW_SYSTEM) +#if defined (USE_LUCID) || defined (USE_MOTIF) || defined (HAVE_NTGUI) + frame_inhibit_implied_resize = list1 (Qtool_bar_lines); +#else + frame_inhibit_implied_resize = Qnil; +#endif +#else + frame_inhibit_implied_resize = Qt; +#endif staticpro (&Vframe_list); @@ -5048,6 +5106,7 @@ non-nil, no such resizing is done. */); defsubr (&Sraise_frame); defsubr (&Slower_frame); defsubr (&Sx_focus_frame); + defsubr (&Scan_run_window_configuration_change_hook); defsubr (&Sredirect_frame_focus); defsubr (&Sframe_focus); defsubr (&Sframe_parameters); diff --git a/src/frame.h b/src/frame.h index 51597c4bcdb..1aa88042ad3 100644 --- a/src/frame.h +++ b/src/frame.h @@ -45,9 +45,9 @@ enum fullscreen_type FULLSCREEN_HEIGHT = 0x2, FULLSCREEN_BOTH = 0x3, /* Not a typo but means "width and height". */ FULLSCREEN_MAXIMIZED = 0x4, -#ifdef HAVE_NTGUI +#ifdef HAVE_NTGUI FULLSCREEN_WAIT = 0x8 -#endif +#endif }; #endif /* HAVE_WINDOW_SYSTEM */ @@ -161,7 +161,7 @@ struct frame /* Desired and current tool-bar items. */ Lisp_Object tool_bar_items; -#ifdef USE_GTK +#ifdef USE_GTK /* Where tool bar is, can be left, right, top or bottom. Except with GTK, the only supported position is `top'. */ Lisp_Object tool_bar_position; @@ -185,7 +185,7 @@ struct frame /* Number of elements in `menu_bar_vector' that have meaningful data. */ int menu_bar_items_used; -#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) /* A buffer to hold the frame's name. Since this is used by the window system toolkit, we can't use the Lisp string's pointer (`name', above) because it might get relocated. */ @@ -328,11 +328,13 @@ struct frame in pixels. */ bool_bf new_pixelwise : 1; - /* True if frame has been added to Vframe_list and is henceforth - considered official. For in-official frames we neither process - x_set_window_size requests nor do we allow running - window-configuration-change-hook when resizing windows. */ - bool_bf official : 1; + /* True means x_set_window_size requests can be processed for this + frame. */ + bool_bf can_x_set_window_size : 1; + + /* True means run_window_configuration_change_hook can be processed + for this frame. */ + bool_bf can_run_window_configuration_change_hook : 1; /* Bitfield area ends here. */ @@ -852,8 +854,6 @@ default_pixels_per_inch_y (void) #define FRAME_VERTICAL_SCROLL_BAR_TYPE(f) ((f)->vertical_scroll_bar_type) #define FRAME_HAS_VERTICAL_SCROLL_BARS(f) \ ((f)->vertical_scroll_bar_type != vertical_scroll_bar_none) -#define FRAME_HAS_HORIZONTAL_SCROLL_BARS(f) \ - ((f)->horizontal_scroll_bars) #define FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT(f) \ ((f)->vertical_scroll_bar_type == vertical_scroll_bar_left) #define FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT(f) \ @@ -866,10 +866,17 @@ default_pixels_per_inch_y (void) #define FRAME_HAS_VERTICAL_SCROLL_BARS(f) ((void) f, 0) #define FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT(f) ((void) f, 0) #define FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT(f) ((void) f, 0) -#define FRAME_HAS_HORIZONTAL_SCROLL_BARS(f) ((void) f, 0) #endif /* HAVE_WINDOW_SYSTEM */ +/* Whether horizontal scroll bars are currently enabled for frame F. */ +#if USE_HORIZONTAL_SCROLL_BARS +#define FRAME_HAS_HORIZONTAL_SCROLL_BARS(f) \ + ((f)->horizontal_scroll_bars) +#else +#define FRAME_HAS_HORIZONTAL_SCROLL_BARS(f) ((void) f, 0) +#endif + /* Width that a scroll bar in frame F should have, if there is one. Measured in pixels. If scroll bars are turned off, this is still nonzero. */ @@ -1055,6 +1062,11 @@ default_pixels_per_inch_y (void) } \ } while (false) +/* Handy macro to construct an argument to Fmodify_frame_parameters. */ + +#define AUTO_FRAME_ARG(name, parameter, value) \ + AUTO_LIST1 (name, AUTO_CONS_EXPR (parameter, value)) + /* False means there are no visible garbaged frames. */ extern bool frame_garbaged; @@ -1089,7 +1101,6 @@ extern Lisp_Object Qtty_color_mode; extern Lisp_Object Qterminal; extern Lisp_Object Qnoelisp; -extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); extern struct frame *decode_window_system_frame (Lisp_Object); extern struct frame *decode_live_frame (Lisp_Object); extern struct frame *decode_any_frame (Lisp_Object); @@ -1108,8 +1119,8 @@ extern void check_window_system (struct frame *); extern void frame_make_pointer_invisible (struct frame *); extern void frame_make_pointer_visible (struct frame *); extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object); -extern bool frame_inhibit_resize (struct frame *, bool); -extern void adjust_frame_size (struct frame *, int, int, int, bool); +extern bool frame_inhibit_resize (struct frame *, bool, Lisp_Object); +extern void adjust_frame_size (struct frame *, int, int, int, bool, Lisp_Object); extern Lisp_Object Vframe_list; @@ -1284,7 +1295,7 @@ extern Lisp_Object Vframe_list; / FRAME_LINE_HEIGHT (f)) /* Return the pixel width/height of frame F with a text size of - width/heigh. */ + width/height. */ #define FRAME_TEXT_TO_PIXEL_WIDTH(f, width) \ ((width) \ + FRAME_SCROLL_BAR_AREA_WIDTH (f) \ @@ -1309,7 +1320,7 @@ extern Lisp_Object Vframe_list; ((height) \ - FRAME_TOP_MARGIN_HEIGHT (f) \ - FRAME_SCROLL_BAR_AREA_HEIGHT (f) \ - - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) + - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) /* Return the width/height reserved for the windows of frame F. */ #define FRAME_WINDOWS_WIDTH(f) \ @@ -1371,6 +1382,11 @@ extern Lisp_Object Qx_resource_name; extern Lisp_Object Qtop, Qbox, Qbottom; extern Lisp_Object Qdisplay; +extern Lisp_Object Qframe_position, Qframe_outer_size, Qframe_inner_size; +extern Lisp_Object Qexternal_border_size, Qtitle_height; +extern Lisp_Object Qmenu_bar_external, Qmenu_bar_size; +extern Lisp_Object Qtool_bar_external, Qtool_bar_size; + extern Lisp_Object Qrun_hook_with_args; #ifdef HAVE_WINDOW_SYSTEM @@ -1393,8 +1409,6 @@ extern void x_set_font_backend (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_left_fringe (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_right_fringe (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_border_width (struct frame *, Lisp_Object, Lisp_Object); -extern void x_set_internal_border_width (struct frame *, Lisp_Object, - Lisp_Object); extern void x_set_right_divider_width (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_bottom_divider_width (struct frame *, Lisp_Object, @@ -1421,7 +1435,7 @@ extern Lisp_Object display_x_get_resource (Display_Info *, Lisp_Object subclass); extern void set_frame_menubar (struct frame *f, bool first_time, bool deep_p); -extern void x_set_window_size (struct frame *f, int change_grav, +extern void x_set_window_size (struct frame *f, bool change_gravity, int width, int height, bool pixelwise); extern Lisp_Object x_get_focus_frame (struct frame *); extern void frame_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y); @@ -1429,7 +1443,6 @@ extern void x_make_frame_visible (struct frame *f); extern void x_make_frame_invisible (struct frame *f); extern void x_iconify_frame (struct frame *f); extern void x_set_frame_alpha (struct frame *f); -extern void x_set_tool_bar_lines (struct frame *, Lisp_Object, Lisp_Object); extern void x_activate_menubar (struct frame *); extern void x_real_positions (struct frame *, int *, int *); extern void free_frame_menubar (struct frame *); @@ -1449,7 +1462,7 @@ extern void x_focus_frame (struct frame *); #ifndef HAVE_NS -extern int x_bitmap_icon (struct frame *, Lisp_Object); +extern bool x_bitmap_icon (struct frame *, Lisp_Object); /* Set F's bitmap icon, if specified among F's parameters. */ @@ -1498,4 +1511,11 @@ extern Lisp_Object make_monitor_attribute_list (struct MonitorInfo *monitors, INLINE_HEADER_END +/* Suppress -Wsuggest-attribute=const if there are no scroll bars. + This is for functions like x_set_horizontal_scroll_bars that have + no effect in this case. */ +#if ! USE_HORIZONTAL_SCROLL_BARS && 4 < __GNUC__ + (6 <= __GNUC_MINOR__) +# pragma GCC diagnostic ignored "-Wsuggest-attribute=const" +#endif + #endif /* not EMACS_FRAME_H */ diff --git a/src/ftfont.c b/src/ftfont.c index 419274a30aa..4c12ef5d3af 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -24,6 +24,8 @@ along with GNU Emacs. If not, see . */ #include #include +#include + #include "lisp.h" #include "dispextern.h" #include "frame.h" @@ -140,6 +142,12 @@ static struct { NULL } }; +static bool +matching_prefix (char const *str, ptrdiff_t len, char const *pat) +{ + return len == strlen (pat) && c_strncasecmp (str, pat, len) == 0; +} + /* Dirty hack for handing ADSTYLE property. Fontconfig (actually the underlying FreeType) gives such ADSTYLE @@ -171,18 +179,10 @@ get_adstyle_property (FcPattern *p) return Qnil; str = (char *) fcstr; for (end = str; *end && *end != ' '; end++); - if (*end) - { - char *newstr = alloca (end - str + 1); - memcpy (newstr, str, end - str); - newstr[end - str] = '\0'; - end = newstr + (end - str); - str = newstr; - } - if (xstrcasecmp (str, "Regular") == 0 - || xstrcasecmp (str, "Bold") == 0 - || xstrcasecmp (str, "Oblique") == 0 - || xstrcasecmp (str, "Italic") == 0) + if (matching_prefix (str, end - str, "Regular") + || matching_prefix (str, end - str, "Bold") + || matching_prefix (str, end - str, "Oblique") + || matching_prefix (str, end - str, "Italic")) return Qnil; adstyle = font_intern_prop (str, end - str, 1); if (font_style_to_value (FONT_WIDTH_INDEX, adstyle, 0) >= 0) @@ -499,8 +499,8 @@ static Lisp_Object ftfont_open (struct frame *, Lisp_Object, int); static void ftfont_close (struct font *); static int ftfont_has_char (Lisp_Object, int); static unsigned ftfont_encode_char (struct font *, int); -static int ftfont_text_extents (struct font *, unsigned *, int, - struct font_metrics *); +static void ftfont_text_extents (struct font *, unsigned *, int, + struct font_metrics *); static int ftfont_get_bitmap (struct font *, unsigned, struct font_bitmap *, int); static int ftfont_anchor_point (struct font *, unsigned, int, @@ -573,7 +573,8 @@ static int ftfont_get_charset (Lisp_Object registry) { char *str = SSDATA (SYMBOL_NAME (registry)); - char *re = alloca (SBYTES (SYMBOL_NAME (registry)) * 2 + 1); + USE_SAFE_ALLOCA; + char *re = SAFE_ALLOCA (SBYTES (SYMBOL_NAME (registry)) * 2 + 1); Lisp_Object regexp; int i, j; @@ -589,6 +590,7 @@ ftfont_get_charset (Lisp_Object registry) } re[j] = '\0'; regexp = make_unibyte_string (re, j); + SAFE_FREE (); for (i = 0; fc_charset_table[i].name; i++) if (fast_c_string_match_ignore_case (regexp, fc_charset_table[i].name, @@ -802,7 +804,7 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots *otspec = ftfont_get_open_type_spec (val); if (! *otspec) return NULL; - strcat (otlayout, "otlayout:"); + strcpy (otlayout, "otlayout:"); OTF_TAG_STR ((*otspec)->script_tag, otlayout + 9); script = (*otspec)->script; } @@ -1371,19 +1373,18 @@ ftfont_encode_char (struct font *font, int c) return (code > 0 ? code : FONT_INVALID_CODE); } -static int -ftfont_text_extents (struct font *font, unsigned int *code, int nglyphs, struct font_metrics *metrics) +static void +ftfont_text_extents (struct font *font, unsigned int *code, + int nglyphs, struct font_metrics *metrics) { struct ftfont_info *ftfont_info = (struct ftfont_info *) font; FT_Face ft_face = ftfont_info->ft_size->face; - int width = 0; - int i; + int i, width = 0; bool first; if (ftfont_info->ft_size != ft_face->size) FT_Activate_Size (ftfont_info->ft_size); - if (metrics) - memset (metrics, 0, sizeof (struct font_metrics)); + for (i = 0, first = 1; i < nglyphs; i++) { if (FT_Load_Glyph (ft_face, code[i], FT_LOAD_DEFAULT) == 0) @@ -1392,39 +1393,28 @@ ftfont_text_extents (struct font *font, unsigned int *code, int nglyphs, struct if (first) { - if (metrics) - { - metrics->lbearing = m->horiBearingX >> 6; - metrics->rbearing = (m->horiBearingX + m->width) >> 6; - metrics->ascent = m->horiBearingY >> 6; - metrics->descent = (m->height - m->horiBearingY) >> 6; - } + metrics->lbearing = m->horiBearingX >> 6; + metrics->rbearing = (m->horiBearingX + m->width) >> 6; + metrics->ascent = m->horiBearingY >> 6; + metrics->descent = (m->height - m->horiBearingY) >> 6; first = 0; } - if (metrics) - { - if (metrics->lbearing > width + (m->horiBearingX >> 6)) - metrics->lbearing = width + (m->horiBearingX >> 6); - if (metrics->rbearing - < width + ((m->horiBearingX + m->width) >> 6)) - metrics->rbearing - = width + ((m->horiBearingX + m->width) >> 6); - if (metrics->ascent < (m->horiBearingY >> 6)) - metrics->ascent = m->horiBearingY >> 6; - if (metrics->descent > ((m->height - m->horiBearingY) >> 6)) - metrics->descent = (m->height - m->horiBearingY) >> 6; - } + if (metrics->lbearing > width + (m->horiBearingX >> 6)) + metrics->lbearing = width + (m->horiBearingX >> 6); + if (metrics->rbearing + < width + ((m->horiBearingX + m->width) >> 6)) + metrics->rbearing + = width + ((m->horiBearingX + m->width) >> 6); + if (metrics->ascent < (m->horiBearingY >> 6)) + metrics->ascent = m->horiBearingY >> 6; + if (metrics->descent > ((m->height - m->horiBearingY) >> 6)) + metrics->descent = (m->height - m->horiBearingY) >> 6; width += m->horiAdvance >> 6; } else - { - width += font->space_width; - } + width += font->space_width; } - if (metrics) - metrics->width = width; - - return width; + metrics->width = width; } static int @@ -1700,7 +1690,8 @@ ftfont_check_otf (MFLTFont *font, MFLTOtfSpec *spec) else if (! otf) return 0; for (n = 1; spec->features[i][n]; n++); - tags = alloca (sizeof (OTF_Tag) * n); + USE_SAFE_ALLOCA; + SAFE_NALLOCA (tags, 1, n); for (n = 0, negative = 0; spec->features[i][n]; n++) { if (spec->features[i][n] == 0xFFFFFFFF) @@ -1710,16 +1701,17 @@ ftfont_check_otf (MFLTFont *font, MFLTOtfSpec *spec) else tags[n] = spec->features[i][n]; } -#ifdef M17N_FLT_USE_NEW_FEATURE - if (OTF_check_features (otf, i == 0, spec->script, spec->langsys, - tags, n - negative) != 1) + bool passed = true; +#ifndef M17N_FLT_USE_NEW_FEATURE + passed = n - negative > 0; +#endif + if (passed) + passed = (OTF_check_features (otf, i == 0, spec->script, + spec->langsys, tags, n - negative) + != 1); + SAFE_FREE (); + if (passed) return 0; -#else /* not M17N_FLT_USE_NEW_FEATURE */ - if (n - negative > 0 - && OTF_check_features (otf, i == 0, spec->script, spec->langsys, - tags, n - negative) != 1) - return 0; -#endif /* not M17N_FLT_USE_NEW_FEATURE */ } return 1; #undef FEATURE_NONE @@ -1811,11 +1803,15 @@ ftfont_drive_otf (MFLTFont *font, if (len == 0) return from; OTF_tag_name (spec->script, script); + + char langsysbuf[5]; if (spec->langsys) { - langsys = alloca (5); + langsys = langsysbuf; OTF_tag_name (spec->langsys, langsys); } + + USE_SAFE_ALLOCA; for (i = 0; i < 2; i++) { char *p; @@ -1823,10 +1819,11 @@ ftfont_drive_otf (MFLTFont *font, if (spec->features[i] && spec->features[i][1] != 0xFFFFFFFF) { for (j = 0; spec->features[i][j]; j++); + SAFE_NALLOCA (p, 6, j); if (i == 0) - p = gsub_features = alloca (6 * j); + gsub_features = p; else - p = gpos_features = alloca (6 * j); + gpos_features = p; for (j = 0; spec->features[i][j]; j++) { if (spec->features[i][j] == 0xFFFFFFFF) @@ -1858,7 +1855,10 @@ ftfont_drive_otf (MFLTFont *font, gsub_features) < 0) goto simple_copy; if (out->allocated < out->used + otf_gstring.used) - return -2; + { + SAFE_FREE (); + return -2; + } features = otf->gsub->FeatureList.Feature; for (i = 0, otfg = otf_gstring.glyphs; i < otf_gstring.used; ) { @@ -1947,7 +1947,10 @@ ftfont_drive_otf (MFLTFont *font, else if (out) { if (out->allocated < out->used + len) - return -2; + { + SAFE_FREE (); + return -2; + } for (i = 0; i < len; i++) out->glyphs[out->used++] = in->glyphs[from + i]; } @@ -1959,7 +1962,10 @@ ftfont_drive_otf (MFLTFont *font, if (OTF_drive_gpos_with_log (otf, &otf_gstring, script, langsys, gpos_features) < 0) - return to; + { + SAFE_FREE (); + return to; + } features = otf->gpos->FeatureList.Feature; x_ppem = ft_face->size->metrics.x_ppem; y_ppem = ft_face->size->metrics.y_ppem; @@ -2081,7 +2087,10 @@ ftfont_drive_otf (MFLTFont *font, { if (OTF_drive_gpos_with_log (otf, &otf_gstring, script, langsys, gpos_features) < 0) - return to; + { + SAFE_FREE (); + return to; + } features = otf->gpos->FeatureList.Feature; for (i = 0, otfg = otf_gstring.glyphs; i < otf_gstring.used; i++, otfg++) @@ -2101,9 +2110,11 @@ ftfont_drive_otf (MFLTFont *font, } } } + SAFE_FREE (); return to; simple_copy: + SAFE_FREE (); if (! out) return to; if (out->allocated < out->used + len) @@ -2141,11 +2152,15 @@ ftfont_drive_otf (MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *in, if (len == 0) return from; OTF_tag_name (spec->script, script); + + char langsysbuf[5]; if (spec->langsys) { - langsys = alloca (5); + langsys = langsysbuf; OTF_tag_name (spec->langsys, langsys); } + + USE_SAFE_ALLOCA; for (i = 0; i < 2; i++) { char *p; @@ -2153,10 +2168,11 @@ ftfont_drive_otf (MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *in, if (spec->features[i] && spec->features[i][1] != 0xFFFFFFFF) { for (j = 0; spec->features[i][j]; j++); + SAFE_NALLOCA (p, 6, j); if (i == 0) - p = gsub_features = alloca (6 * j); + gsub_features = p; else - p = gpos_features = alloca (6 * j); + gpos_features = p; for (j = 0; spec->features[i][j]; j++) { if (spec->features[i][j] == 0xFFFFFFFF) @@ -2188,7 +2204,10 @@ ftfont_drive_otf (MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *in, < 0) goto simple_copy; if (out->allocated < out->used + otf_gstring.used) - return -2; + { + SAFE_FREE (); + return -2; + } for (i = 0, otfg = otf_gstring.glyphs; i < otf_gstring.used; ) { MFLTGlyph *g; @@ -2239,7 +2258,10 @@ ftfont_drive_otf (MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *in, else { if (out->allocated < out->used + len) - return -2; + { + SAFE_FREE (); + return -2; + } for (i = 0; i < len; i++) out->glyphs[out->used++] = in->glyphs[from + i]; } @@ -2251,7 +2273,10 @@ ftfont_drive_otf (MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *in, if (OTF_drive_gpos (otf, &otf_gstring, script, langsys, gpos_features) < 0) - return to; + { + SAFE_FREE (); + return to; + } x_ppem = ft_face->size->metrics.x_ppem; y_ppem = ft_face->size->metrics.y_ppem; @@ -2361,9 +2386,11 @@ ftfont_drive_otf (MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *in, base = g; } } + SAFE_FREE (); return to; simple_copy: + SAFE_FREE (); if (out->allocated < out->used + len) return -2; font->get_metrics (font, in, from, to); diff --git a/src/ftxfont.c b/src/ftxfont.c index 63e3477ebf4..7e4608b9b85 100644 --- a/src/ftxfont.c +++ b/src/ftxfont.c @@ -271,10 +271,11 @@ ftxfont_draw (struct glyph_string *s, int from, int to, int x, int y, n[0] = n[1] = n[2] = n[3] = n[4] = n[5] = n[6] = 0; + USE_SAFE_ALLOCA; + SAFE_NALLOCA (code, 1, len); block_input (); if (with_background) ftxfont_draw_background (f, font, s->gc, x, y, s->width); - code = alloca (sizeof (unsigned) * len); for (i = 0; i < len; i++) code[i] = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8) | XCHAR2B_BYTE2 (s->char2b + from + i)); @@ -322,6 +323,7 @@ ftxfont_draw (struct glyph_string *s, int from, int to, int x, int y, } unblock_input (); + SAFE_FREE (); return len; } diff --git a/src/gmalloc.c b/src/gmalloc.c index ab1dfd07db2..3456ff0ec6f 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -21,13 +21,18 @@ License along with this library. If not, see . #include -#ifdef HAVE_PTHREAD +#if defined HAVE_PTHREAD && !defined HYBRID_MALLOC #define USE_PTHREAD #endif #include #include #include + +#ifdef HYBRID_GET_CURRENT_DIR_NAME +#undef get_current_dir_name +#endif + #include #ifdef USE_PTHREAD @@ -42,6 +47,41 @@ License along with this library. If not, see . extern void emacs_abort (void); #endif +/* If HYBRID_MALLOC is defined, then temacs will use malloc, + realloc... as defined in this file (and renamed gmalloc, + grealloc... via the macros that follow). The dumped emacs, + however, will use the system malloc, realloc.... In other source + files, malloc, realloc... are renamed hybrid_malloc, + hybrid_realloc... via macros in conf_post.h. hybrid_malloc and + friends are wrapper functions defined later in this file. + aligned_alloc is defined as a macro only in alloc.c. + + As of this writing (August 2014), Cygwin is the only platform on + which HYBRID_MACRO is defined. Any other platform that wants to + define it will have to define the macros DUMPED and + ALLOCATED_BEFORE_DUMPING, defined below for Cygwin. */ +#ifdef HYBRID_MALLOC +#undef malloc +#undef realloc +#undef calloc +#undef free +#define malloc gmalloc +#define realloc grealloc +#define calloc gcalloc +#define aligned_alloc galigned_alloc +#define free gfree +#endif /* HYBRID_MALLOC */ + +#ifdef CYGWIN +extern void *bss_sbrk (ptrdiff_t size); +extern int bss_sbrk_did_unexec; +extern char bss_sbrk_buffer[]; +extern void *bss_sbrk_buffer_end; +#define DUMPED bss_sbrk_did_unexec +#define ALLOCATED_BEFORE_DUMPING(P) \ + ((P) < bss_sbrk_buffer_end && (P) >= (void *) bss_sbrk_buffer) +#endif + #ifdef __cplusplus extern "C" { @@ -306,22 +346,6 @@ License along with this library. If not, see . #include -/* On Cygwin there are two heaps. temacs uses the static heap - (defined in sheap.c and managed with bss_sbrk), and the dumped - emacs uses the Cygwin heap (managed with sbrk). When emacs starts - on Cygwin, it reinitializes malloc, and we save the old info for - use by free and realloc if they're called with a pointer into the - static heap. - - Currently (2011-08-16) the Cygwin build doesn't use ralloc.c; if - this is changed in the future, we'll have to similarly deal with - reinitializing ralloc. */ -#ifdef CYGWIN -extern void *bss_sbrk (ptrdiff_t size); -extern int bss_sbrk_did_unexec; -char *bss_sbrk_heapbase; /* _heapbase for static heap */ -malloc_info *bss_sbrk_heapinfo; /* _heapinfo for static heap */ -#endif void *(*__morecore) (ptrdiff_t size) = __default_morecore; /* Debugging hook for `malloc'. */ @@ -533,7 +557,7 @@ malloc_enable_thread (void) malloc_atfork_handler_child); _malloc_thread_enabled_p = 1; } -#endif +#endif /* USE_PTHREAD */ static void malloc_initialize_1 (void) @@ -542,16 +566,6 @@ malloc_initialize_1 (void) mcheck (NULL); #endif -#ifdef CYGWIN - if (bss_sbrk_did_unexec) - /* we're reinitializing the dumped emacs */ - { - bss_sbrk_heapbase = _heapbase; - bss_sbrk_heapinfo = _heapinfo; - memset (_fraghead, 0, BLOCKLOG * sizeof (struct list)); - } -#endif - if (__malloc_initialize_hook) (*__malloc_initialize_hook) (); @@ -1008,12 +1022,6 @@ _free_internal_nolock (void *ptr) if (ptr == NULL) return; -#ifdef CYGWIN - if ((char *) ptr < _heapbase) - /* We're being asked to free something in the static heap. */ - return; -#endif - PROTECT_MALLOC_STATE (0); LOCK_ALIGNED_BLOCKS (); @@ -1295,30 +1303,7 @@ License along with this library. If not, see . or (US mail) as Mike Haertel c/o Free Software Foundation. */ #ifndef min -#define min(A, B) ((A) < (B) ? (A) : (B)) -#endif - -/* On Cygwin the dumped emacs may try to realloc storage allocated in - the static heap. We just malloc space in the new heap and copy the - data. */ -#ifdef CYGWIN -void * -special_realloc (void *ptr, size_t size) -{ - void *result; - int type; - size_t block, oldsize; - - block = ((char *) ptr - bss_sbrk_heapbase) / BLOCKSIZE + 1; - type = bss_sbrk_heapinfo[block].busy.type; - oldsize = - type == 0 ? bss_sbrk_heapinfo[block].busy.info.size * BLOCKSIZE - : (size_t) 1 << type; - result = _malloc_internal_nolock (size); - if (result) - return memcpy (result, ptr, min (oldsize, size)); - return result; -} +#define min(a, b) ((a) < (b) ? (a) : (b)) #endif /* Debugging hook for realloc. */ @@ -1345,12 +1330,6 @@ _realloc_internal_nolock (void *ptr, size_t size) else if (ptr == NULL) return _malloc_internal_nolock (size); -#ifdef CYGWIN - if ((char *) ptr < _heapbase) - /* ptr points into the static heap */ - return special_realloc (ptr, size); -#endif - block = BLOCK (ptr); PROTECT_MALLOC_STATE (0); @@ -1547,7 +1526,7 @@ __default_morecore (ptrdiff_t increment) { void *result; #if defined (CYGWIN) - if (!bss_sbrk_did_unexec) + if (!DUMPED) { return bss_sbrk (increment); } @@ -1670,6 +1649,9 @@ memalign (size_t alignment, size_t size) return aligned_alloc (alignment, size); } +/* If HYBRID_MALLOC is defined, we may want to use the system + posix_memalign below. */ +#ifndef HYBRID_MALLOC int posix_memalign (void **memptr, size_t alignment, size_t size) { @@ -1688,6 +1670,7 @@ posix_memalign (void **memptr, size_t alignment, size_t size) return 0; } +#endif /* Allocate memory on a page boundary. Copyright (C) 1991, 92, 93, 94, 96 Free Software Foundation, Inc. @@ -1728,6 +1711,113 @@ valloc (size_t size) return aligned_alloc (pagesize, size); } +#ifdef HYBRID_MALLOC +#undef malloc +#undef realloc +#undef calloc +#undef aligned_alloc +#undef free + +/* Declare system malloc and friends. */ +extern void *malloc (size_t size); +extern void *realloc (void *ptr, size_t size); +extern void *calloc (size_t nmemb, size_t size); +extern void free (void *ptr); +#ifdef HAVE_ALIGNED_ALLOC +extern void *aligned_alloc (size_t alignment, size_t size); +#elif defined HAVE_POSIX_MEMALIGN +extern int posix_memalign (void **memptr, size_t alignment, size_t size); +#endif + +/* See the comments near the beginning of this file for explanations + of the following functions. */ + +void * +hybrid_malloc (size_t size) +{ + if (DUMPED) + return malloc (size); + return gmalloc (size); +} + +void * +hybrid_calloc (size_t nmemb, size_t size) +{ + if (DUMPED) + return calloc (nmemb, size); + return gcalloc (nmemb, size); +} + +void +hybrid_free (void *ptr) +{ + if (!DUMPED) + gfree (ptr); + else if (!ALLOCATED_BEFORE_DUMPING (ptr)) + free (ptr); + /* Otherwise the dumped emacs is trying to free something allocated + before dumping; do nothing. */ + return; +} + +#if defined HAVE_ALIGNED_ALLOC || defined HAVE_POSIX_MEMALIGN +void * +hybrid_aligned_alloc (size_t alignment, size_t size) +{ + if (!DUMPED) + return galigned_alloc (alignment, size); + /* The following is copied from alloc.c */ +#ifdef HAVE_ALIGNED_ALLOC + return aligned_alloc (alignment, size); +#else /* HAVE_POSIX_MEMALIGN */ + void *p; + return posix_memalign (&p, alignment, size) == 0 ? p : 0; +#endif +} +#endif + +void * +hybrid_realloc (void *ptr, size_t size) +{ + void *result; + int type; + size_t block, oldsize; + + if (!DUMPED) + return grealloc (ptr, size); + if (!ALLOCATED_BEFORE_DUMPING (ptr)) + return realloc (ptr, size); + + /* The dumped emacs is trying to realloc storage allocated before + dumping. We just malloc new space and copy the data. */ + if (size == 0 || ptr == NULL) + return malloc (size); + block = ((char *) ptr - _heapbase) / BLOCKSIZE + 1; + type = _heapinfo[block].busy.type; + oldsize = + type == 0 ? _heapinfo[block].busy.info.size * BLOCKSIZE + : (size_t) 1 << type; + result = malloc (size); + if (result) + return memcpy (result, ptr, min (oldsize, size)); + return result; +} + +#ifdef HYBRID_GET_CURRENT_DIR_NAME +/* Defined in sysdep.c. */ +char *gget_current_dir_name (void); + +char * +hybrid_get_current_dir_name (void) +{ + if (DUMPED) + return get_current_dir_name (); + return gget_current_dir_name (); +} +#endif + +#endif /* HYBRID_MALLOC */ + #ifdef GC_MCHECK /* Standard debugging hooks for `malloc'. diff --git a/src/gnutls.c b/src/gnutls.c index 5d48f78a6d4..bf9f1323546 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -18,9 +18,11 @@ along with GNU Emacs. If not, see . */ #include #include +#include #include "lisp.h" #include "process.h" +#include "gnutls.h" #include "coding.h" #ifdef HAVE_GNUTLS @@ -61,6 +63,11 @@ static void gnutls_log_function2 (int, const char *, const char *); static void gnutls_audit_log_function (gnutls_session_t, const char *); #endif +enum extra_peer_verification +{ + CERTIFICATE_NOT_MATCHING = 2 +}; + #ifdef WINDOWSNT @@ -97,6 +104,11 @@ DEF_GNUTLS_FN (int, gnutls_certificate_set_x509_crl_file, DEF_GNUTLS_FN (int, gnutls_certificate_set_x509_key_file, (gnutls_certificate_credentials_t, const char *, const char *, gnutls_x509_crt_fmt_t)); +#if GNUTLS_VERSION_MAJOR + \ + (GNUTLS_VERSION_MINOR > 0 || GNUTLS_VERSION_PATCH >= 20) > 3 +DEF_GNUTLS_FN (int, gnutls_certificate_set_x509_system_trust, + (gnutls_certificate_credentials_t)); +#endif DEF_GNUTLS_FN (int, gnutls_certificate_set_x509_trust_file, (gnutls_certificate_credentials_t, const char *, gnutls_x509_crt_fmt_t)); @@ -109,6 +121,7 @@ DEF_GNUTLS_FN (int, gnutls_credentials_set, DEF_GNUTLS_FN (void, gnutls_deinit, (gnutls_session_t)); DEF_GNUTLS_FN (void, gnutls_dh_set_prime_bits, (gnutls_session_t, unsigned int)); +DEF_GNUTLS_FN (int, gnutls_dh_get_prime_bits, (gnutls_session_t)); DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int)); DEF_GNUTLS_FN (int, gnutls_global_init, (void)); DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func)); @@ -146,6 +159,55 @@ DEF_GNUTLS_FN (int, gnutls_x509_crt_import, (gnutls_x509_crt_t, const gnutls_datum_t *, gnutls_x509_crt_fmt_t)); DEF_GNUTLS_FN (int, gnutls_x509_crt_init, (gnutls_x509_crt_t *)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_fingerprint, + (gnutls_x509_crt_t, + gnutls_digest_algorithm_t, void *, size_t *)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_version, + (gnutls_x509_crt_t)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_serial, + (gnutls_x509_crt_t, void *, size_t *)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_issuer_dn, + (gnutls_x509_crt_t, char *, size_t *)); +DEF_GNUTLS_FN (time_t, gnutls_x509_crt_get_activation_time, + (gnutls_x509_crt_t)); +DEF_GNUTLS_FN (time_t, gnutls_x509_crt_get_expiration_time, + (gnutls_x509_crt_t)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_dn, + (gnutls_x509_crt_t, char *, size_t *)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_pk_algorithm, + (gnutls_x509_crt_t, unsigned int *)); +DEF_GNUTLS_FN (const char*, gnutls_pk_algorithm_get_name, + (gnutls_pk_algorithm_t)); +DEF_GNUTLS_FN (int, gnutls_pk_bits_to_sec_param, + (gnutls_pk_algorithm_t, unsigned int)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_issuer_unique_id, + (gnutls_x509_crt_t, char *, size_t *)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_subject_unique_id, + (gnutls_x509_crt_t, char *, size_t *)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_signature_algorithm, + (gnutls_x509_crt_t)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_signature, + (gnutls_x509_crt_t, char *, size_t *)); +DEF_GNUTLS_FN (int, gnutls_x509_crt_get_key_id, + (gnutls_x509_crt_t, unsigned int, + unsigned char *, size_t *_size)); +DEF_GNUTLS_FN (const char*, gnutls_sec_param_get_name, (gnutls_sec_param_t)); +DEF_GNUTLS_FN (const char*, gnutls_sign_get_name, (gnutls_sign_algorithm_t)); +DEF_GNUTLS_FN (int, gnutls_server_name_set, (gnutls_session_t, + gnutls_server_name_type_t, + const void *, size_t)); +DEF_GNUTLS_FN (gnutls_kx_algorithm_t, gnutls_kx_get, (gnutls_session_t)); +DEF_GNUTLS_FN (const char*, gnutls_kx_get_name, (gnutls_kx_algorithm_t)); +DEF_GNUTLS_FN (gnutls_protocol_t, gnutls_protocol_get_version, + (gnutls_session_t)); +DEF_GNUTLS_FN (const char*, gnutls_protocol_get_name, (gnutls_protocol_t)); +DEF_GNUTLS_FN (gnutls_cipher_algorithm_t, gnutls_cipher_get, + (gnutls_session_t)); +DEF_GNUTLS_FN (const char*, gnutls_cipher_get_name, + (gnutls_cipher_algorithm_t)); +DEF_GNUTLS_FN (gnutls_mac_algorithm_t, gnutls_mac_get, (gnutls_session_t)); +DEF_GNUTLS_FN (const char*, gnutls_mac_get_name, (gnutls_mac_algorithm_t)); + static bool init_gnutls_functions (void) @@ -171,12 +233,17 @@ init_gnutls_functions (void) LOAD_GNUTLS_FN (library, gnutls_certificate_set_verify_flags); LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_crl_file); LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_key_file); +#if GNUTLS_VERSION_MAJOR + \ + (GNUTLS_VERSION_MINOR > 0 || GNUTLS_VERSION_PATCH >= 20) > 3 + LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_system_trust); +#endif LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_trust_file); LOAD_GNUTLS_FN (library, gnutls_certificate_type_get); LOAD_GNUTLS_FN (library, gnutls_certificate_verify_peers2); LOAD_GNUTLS_FN (library, gnutls_credentials_set); LOAD_GNUTLS_FN (library, gnutls_deinit); LOAD_GNUTLS_FN (library, gnutls_dh_set_prime_bits); + LOAD_GNUTLS_FN (library, gnutls_dh_get_prime_bits); LOAD_GNUTLS_FN (library, gnutls_error_is_fatal); LOAD_GNUTLS_FN (library, gnutls_global_init); LOAD_GNUTLS_FN (library, gnutls_global_set_log_function); @@ -205,6 +272,32 @@ init_gnutls_functions (void) LOAD_GNUTLS_FN (library, gnutls_x509_crt_deinit); LOAD_GNUTLS_FN (library, gnutls_x509_crt_import); LOAD_GNUTLS_FN (library, gnutls_x509_crt_init); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_fingerprint); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_version); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_serial); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_issuer_dn); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_activation_time); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_expiration_time); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_dn); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_pk_algorithm); + LOAD_GNUTLS_FN (library, gnutls_pk_algorithm_get_name); + LOAD_GNUTLS_FN (library, gnutls_pk_bits_to_sec_param); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_issuer_unique_id); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_subject_unique_id); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_signature_algorithm); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_signature); + LOAD_GNUTLS_FN (library, gnutls_x509_crt_get_key_id); + LOAD_GNUTLS_FN (library, gnutls_sec_param_get_name); + LOAD_GNUTLS_FN (library, gnutls_sign_get_name); + LOAD_GNUTLS_FN (library, gnutls_server_name_set); + LOAD_GNUTLS_FN (library, gnutls_kx_get); + LOAD_GNUTLS_FN (library, gnutls_kx_get_name); + LOAD_GNUTLS_FN (library, gnutls_protocol_get_version); + LOAD_GNUTLS_FN (library, gnutls_protocol_get_name); + LOAD_GNUTLS_FN (library, gnutls_cipher_get); + LOAD_GNUTLS_FN (library, gnutls_cipher_get_name); + LOAD_GNUTLS_FN (library, gnutls_mac_get); + LOAD_GNUTLS_FN (library, gnutls_mac_get_name); max_log_level = global_gnutls_log_level; @@ -231,33 +324,60 @@ init_gnutls_functions (void) #define fn_gnutls_certificate_set_verify_flags gnutls_certificate_set_verify_flags #define fn_gnutls_certificate_set_x509_crl_file gnutls_certificate_set_x509_crl_file #define fn_gnutls_certificate_set_x509_key_file gnutls_certificate_set_x509_key_file +#if GNUTLS_VERSION_MAJOR + \ + (GNUTLS_VERSION_MINOR > 0 || GNUTLS_VERSION_PATCH >= 20) > 3 +#define fn_gnutls_certificate_set_x509_system_trust gnutls_certificate_set_x509_system_trust +#endif #define fn_gnutls_certificate_set_x509_trust_file gnutls_certificate_set_x509_trust_file #define fn_gnutls_certificate_type_get gnutls_certificate_type_get #define fn_gnutls_certificate_verify_peers2 gnutls_certificate_verify_peers2 +#define fn_gnutls_cipher_get gnutls_cipher_get +#define fn_gnutls_cipher_get_name gnutls_cipher_get_name #define fn_gnutls_credentials_set gnutls_credentials_set #define fn_gnutls_deinit gnutls_deinit +#define fn_gnutls_dh_get_prime_bits gnutls_dh_get_prime_bits #define fn_gnutls_dh_set_prime_bits gnutls_dh_set_prime_bits #define fn_gnutls_error_is_fatal gnutls_error_is_fatal #define fn_gnutls_global_init gnutls_global_init -#define fn_gnutls_global_set_log_function gnutls_global_set_log_function #ifdef HAVE_GNUTLS3 #define fn_gnutls_global_set_audit_log_function gnutls_global_set_audit_log_function #endif +#define fn_gnutls_global_set_log_function gnutls_global_set_log_function #define fn_gnutls_global_set_log_level gnutls_global_set_log_level #define fn_gnutls_global_set_mem_functions gnutls_global_set_mem_functions #define fn_gnutls_handshake gnutls_handshake #define fn_gnutls_init gnutls_init +#define fn_gnutls_kx_get gnutls_kx_get +#define fn_gnutls_kx_get_name gnutls_kx_get_name +#define fn_gnutls_mac_get gnutls_mac_get +#define fn_gnutls_mac_get_name gnutls_mac_get_name +#define fn_gnutls_pk_algorithm_get_name gnutls_pk_algorithm_get_name +#define fn_gnutls_pk_bits_to_sec_param gnutls_pk_bits_to_sec_param #define fn_gnutls_priority_set_direct gnutls_priority_set_direct +#define fn_gnutls_protocol_get_name gnutls_protocol_get_name +#define fn_gnutls_protocol_get_version gnutls_protocol_get_version #define fn_gnutls_record_check_pending gnutls_record_check_pending #define fn_gnutls_record_recv gnutls_record_recv #define fn_gnutls_record_send gnutls_record_send +#define fn_gnutls_sec_param_get_name gnutls_sec_param_get_name +#define fn_gnutls_server_name_set gnutls_server_name_set +#define fn_gnutls_sign_get_name gnutls_sign_get_name #define fn_gnutls_strerror gnutls_strerror -#ifdef WINDOWSNT -#define fn_gnutls_transport_set_errno gnutls_transport_set_errno -#endif #define fn_gnutls_transport_set_ptr2 gnutls_transport_set_ptr2 #define fn_gnutls_x509_crt_check_hostname gnutls_x509_crt_check_hostname #define fn_gnutls_x509_crt_deinit gnutls_x509_crt_deinit +#define fn_gnutls_x509_crt_get_activation_time gnutls_x509_crt_get_activation_time +#define fn_gnutls_x509_crt_get_dn gnutls_x509_crt_get_dn +#define fn_gnutls_x509_crt_get_expiration_time gnutls_x509_crt_get_expiration_time +#define fn_gnutls_x509_crt_get_fingerprint gnutls_x509_crt_get_fingerprint +#define fn_gnutls_x509_crt_get_issuer_dn gnutls_x509_crt_get_issuer_dn +#define fn_gnutls_x509_crt_get_issuer_unique_id gnutls_x509_crt_get_issuer_unique_id +#define fn_gnutls_x509_crt_get_key_id gnutls_x509_crt_get_key_id +#define fn_gnutls_x509_crt_get_pk_algorithm gnutls_x509_crt_get_pk_algorithm +#define fn_gnutls_x509_crt_get_serial gnutls_x509_crt_get_serial +#define fn_gnutls_x509_crt_get_signature_algorithm gnutls_x509_crt_get_signature_algorithm +#define fn_gnutls_x509_crt_get_subject_unique_id gnutls_x509_crt_get_subject_unique_id +#define fn_gnutls_x509_crt_get_version gnutls_x509_crt_get_version #define fn_gnutls_x509_crt_import gnutls_x509_crt_import #define fn_gnutls_x509_crt_init gnutls_x509_crt_init @@ -265,7 +385,7 @@ init_gnutls_functions (void) #ifdef HAVE_GNUTLS3 -/* Function to log a simple audit message. */ +/* Log a simple audit message. */ static void gnutls_audit_log_function (gnutls_session_t session, const char *string) { @@ -276,21 +396,21 @@ gnutls_audit_log_function (gnutls_session_t session, const char *string) } #endif -/* Function to log a simple message. */ +/* Log a simple message. */ static void gnutls_log_function (int level, const char *string) { message ("gnutls.c: [%d] %s", level, string); } -/* Function to log a message and a string. */ +/* Log a message and a string. */ static void gnutls_log_function2 (int level, const char *string, const char *extra) { message ("gnutls.c: [%d] %s %s", level, string, extra); } -/* Function to log a message and an integer. */ +/* Log a message and an integer. */ static void gnutls_log_function2i (int level, const char *string, int extra) { @@ -488,7 +608,7 @@ emacs_gnutls_handle_error (gnutls_session_t session, int err) if (fn_gnutls_error_is_fatal (err)) { ret = 0; - GNUTLS_LOG2 (0, max_log_level, "fatal error:", str); + GNUTLS_LOG2 (1, max_log_level, "fatal error:", str); } else { @@ -605,9 +725,9 @@ usage: (gnutls-errorp ERROR) */) } DEFUN ("gnutls-error-fatalp", Fgnutls_error_fatalp, Sgnutls_error_fatalp, 1, 1, 0, - doc: /* Check if ERROR is fatal. + doc: /* Return non-nil if ERROR is fatal. ERROR is an integer or a symbol with an integer `gnutls-code' property. -usage: (gnutls-error-fatalp ERROR) */) +Usage: (gnutls-error-fatalp ERROR) */) (Lisp_Object err) { Lisp_Object code; @@ -673,30 +793,311 @@ See also `gnutls-init'. */) return emacs_gnutls_deinit (proc); } -DEFUN ("gnutls-available-p", Fgnutls_available_p, Sgnutls_available_p, 0, 0, 0, - doc: /* Return t if GnuTLS is available in this instance of Emacs. */) - (void) +static Lisp_Object +gnutls_hex_string (unsigned char *buf, ptrdiff_t buf_size, const char *prefix) { -#ifdef WINDOWSNT - Lisp_Object found = Fassq (Qgnutls_dll, Vlibrary_cache); - if (CONSP (found)) - return XCDR (found); - else - { - Lisp_Object status; - status = init_gnutls_functions () ? Qt : Qnil; - Vlibrary_cache = Fcons (Fcons (Qgnutls_dll, status), Vlibrary_cache); - return status; - } -#else - return Qt; -#endif + ptrdiff_t prefix_length = strlen (prefix); + if ((STRING_BYTES_BOUND - prefix_length) / 3 < buf_size) + string_overflow (); + Lisp_Object ret = make_uninit_string (prefix_length + 3 * buf_size + - (buf_size != 0)); + char *string = SSDATA (ret); + strcpy (string, prefix); + + for (ptrdiff_t i = 0; i < buf_size; i++) + sprintf (string + i * 3 + prefix_length, + i == buf_size - 1 ? "%02x" : "%02x:", + buf[i]); + + return ret; } +static Lisp_Object +gnutls_certificate_details (gnutls_x509_crt_t cert) +{ + Lisp_Object res = Qnil; + int err; + size_t buf_size; -/* Initializes global GnuTLS state to defaults. -Call `gnutls-global-deinit' when GnuTLS usage is no longer needed. -Returns zero on success. */ + /* Version. */ + { + int version = fn_gnutls_x509_crt_get_version (cert); + if (version >= GNUTLS_E_SUCCESS) + res = nconc2 (res, list2 (intern (":version"), + make_number (version))); + } + + /* Serial. */ + buf_size = 0; + err = fn_gnutls_x509_crt_get_serial (cert, NULL, &buf_size); + if (err == GNUTLS_E_SHORT_MEMORY_BUFFER) + { + void *serial = xmalloc (buf_size); + err = fn_gnutls_x509_crt_get_serial (cert, serial, &buf_size); + if (err >= GNUTLS_E_SUCCESS) + res = nconc2 (res, list2 (intern (":serial-number"), + gnutls_hex_string (serial, buf_size, ""))); + xfree (serial); + } + + /* Issuer. */ + buf_size = 0; + err = fn_gnutls_x509_crt_get_issuer_dn (cert, NULL, &buf_size); + if (err == GNUTLS_E_SHORT_MEMORY_BUFFER) + { + char *dn = xmalloc (buf_size); + err = fn_gnutls_x509_crt_get_issuer_dn (cert, dn, &buf_size); + if (err >= GNUTLS_E_SUCCESS) + res = nconc2 (res, list2 (intern (":issuer"), + make_string (dn, buf_size))); + xfree (dn); + } + + /* Validity. */ + { + /* Add 1 to the buffer size, since 1900 is added to tm_year and + that might add 1 to the year length. */ + char buf[INT_STRLEN_BOUND (int) + 1 + sizeof "-12-31"]; + struct tm t; + time_t tim = fn_gnutls_x509_crt_get_activation_time (cert); + + if (gmtime_r (&tim, &t) && strftime (buf, sizeof buf, "%Y-%m-%d", &t)) + res = nconc2 (res, list2 (intern (":valid-from"), build_string (buf))); + + tim = fn_gnutls_x509_crt_get_expiration_time (cert); + if (gmtime_r (&tim, &t) && strftime (buf, sizeof buf, "%Y-%m-%d", &t)) + res = nconc2 (res, list2 (intern (":valid-to"), build_string (buf))); + } + + /* Subject. */ + buf_size = 0; + err = fn_gnutls_x509_crt_get_dn (cert, NULL, &buf_size); + if (err == GNUTLS_E_SHORT_MEMORY_BUFFER) + { + char *dn = xmalloc (buf_size); + err = fn_gnutls_x509_crt_get_dn (cert, dn, &buf_size); + if (err >= GNUTLS_E_SUCCESS) + res = nconc2 (res, list2 (intern (":subject"), + make_string (dn, buf_size))); + xfree (dn); + } + + /* Versions older than 2.11 doesn't have these four functions. */ +#if GNUTLS_VERSION_NUMBER >= 0x020b00 + /* SubjectPublicKeyInfo. */ + { + unsigned int bits; + + err = fn_gnutls_x509_crt_get_pk_algorithm (cert, &bits); + if (err >= GNUTLS_E_SUCCESS) + { + const char *name = fn_gnutls_pk_algorithm_get_name (err); + if (name) + res = nconc2 (res, list2 (intern (":public-key-algorithm"), + build_string (name))); + + name = fn_gnutls_sec_param_get_name (fn_gnutls_pk_bits_to_sec_param + (err, bits)); + res = nconc2 (res, list2 (intern (":certificate-security-level"), + build_string (name))); + } + } + + /* Unique IDs. */ + buf_size = 0; + err = fn_gnutls_x509_crt_get_issuer_unique_id (cert, NULL, &buf_size); + if (err == GNUTLS_E_SHORT_MEMORY_BUFFER) + { + char *buf = xmalloc (buf_size); + err = fn_gnutls_x509_crt_get_issuer_unique_id (cert, buf, &buf_size); + if (err >= GNUTLS_E_SUCCESS) + res = nconc2 (res, list2 (intern (":issuer-unique-id"), + make_string (buf, buf_size))); + xfree (buf); + } + + buf_size = 0; + err = fn_gnutls_x509_crt_get_subject_unique_id (cert, NULL, &buf_size); + if (err == GNUTLS_E_SHORT_MEMORY_BUFFER) + { + char *buf = xmalloc (buf_size); + err = fn_gnutls_x509_crt_get_subject_unique_id (cert, buf, &buf_size); + if (err >= GNUTLS_E_SUCCESS) + res = nconc2 (res, list2 (intern (":subject-unique-id"), + make_string (buf, buf_size))); + xfree (buf); + } +#endif + + /* Signature. */ + err = fn_gnutls_x509_crt_get_signature_algorithm (cert); + if (err >= GNUTLS_E_SUCCESS) + { + const char *name = fn_gnutls_sign_get_name (err); + if (name) + res = nconc2 (res, list2 (intern (":signature-algorithm"), + build_string (name))); + } + + /* Public key ID. */ + buf_size = 0; + err = fn_gnutls_x509_crt_get_key_id (cert, 0, NULL, &buf_size); + if (err == GNUTLS_E_SHORT_MEMORY_BUFFER) + { + void *buf = xmalloc (buf_size); + err = fn_gnutls_x509_crt_get_key_id (cert, 0, buf, &buf_size); + if (err >= GNUTLS_E_SUCCESS) + res = nconc2 (res, list2 (intern (":public-key-id"), + gnutls_hex_string (buf, buf_size, "sha1:"))); + xfree (buf); + } + + /* Certificate fingerprint. */ + buf_size = 0; + err = fn_gnutls_x509_crt_get_fingerprint (cert, GNUTLS_DIG_SHA1, + NULL, &buf_size); + if (err == GNUTLS_E_SHORT_MEMORY_BUFFER) + { + void *buf = xmalloc (buf_size); + err = fn_gnutls_x509_crt_get_fingerprint (cert, GNUTLS_DIG_SHA1, + buf, &buf_size); + if (err >= GNUTLS_E_SUCCESS) + res = nconc2 (res, list2 (intern (":certificate-id"), + gnutls_hex_string (buf, buf_size, "sha1:"))); + xfree (buf); + } + + return res; +} + +DEFUN ("gnutls-peer-status-warning-describe", Fgnutls_peer_status_warning_describe, Sgnutls_peer_status_warning_describe, 1, 1, 0, + doc: /* Describe the warning of a GnuTLS peer status from `gnutls-peer-status'. */) + (Lisp_Object status_symbol) +{ + CHECK_SYMBOL (status_symbol); + + if (EQ (status_symbol, intern (":invalid"))) + return build_string ("certificate could not be verified"); + + if (EQ (status_symbol, intern (":revoked"))) + return build_string ("certificate was revoked (CRL)"); + + if (EQ (status_symbol, intern (":self-signed"))) + return build_string ("certificate signer was not found (self-signed)"); + + if (EQ (status_symbol, intern (":not-ca"))) + return build_string ("certificate signer is not a CA"); + + if (EQ (status_symbol, intern (":insecure"))) + return build_string ("certificate was signed with an insecure algorithm"); + + if (EQ (status_symbol, intern (":not-activated"))) + return build_string ("certificate is not yet activated"); + + if (EQ (status_symbol, intern (":expired"))) + return build_string ("certificate has expired"); + + if (EQ (status_symbol, intern (":no-host-match"))) + return build_string ("certificate host does not match hostname"); + + return Qnil; +} + +DEFUN ("gnutls-peer-status", Fgnutls_peer_status, Sgnutls_peer_status, 1, 1, 0, + doc: /* Describe a GnuTLS PROC peer certificate and any warnings about it. +The return value is a property list with top-level keys :warnings and +:certificate. The :warnings entry is a list of symbols you can describe with +`gnutls-peer-status-warning-describe'. */) + (Lisp_Object proc) +{ + Lisp_Object warnings = Qnil, result = Qnil; + unsigned int verification; + gnutls_session_t state; + + CHECK_PROCESS (proc); + + if (GNUTLS_INITSTAGE (proc) < GNUTLS_STAGE_INIT) + return Qnil; + + /* Then collect any warnings already computed by the handshake. */ + verification = XPROCESS (proc)->gnutls_peer_verification; + + if (verification & GNUTLS_CERT_INVALID) + warnings = Fcons (intern (":invalid"), warnings); + + if (verification & GNUTLS_CERT_REVOKED) + warnings = Fcons (intern (":revoked"), warnings); + + if (verification & GNUTLS_CERT_SIGNER_NOT_FOUND) + warnings = Fcons (intern (":self-signed"), warnings); + + if (verification & GNUTLS_CERT_SIGNER_NOT_CA) + warnings = Fcons (intern (":not-ca"), warnings); + + if (verification & GNUTLS_CERT_INSECURE_ALGORITHM) + warnings = Fcons (intern (":insecure"), warnings); + + if (verification & GNUTLS_CERT_NOT_ACTIVATED) + warnings = Fcons (intern (":not-activated"), warnings); + + if (verification & GNUTLS_CERT_EXPIRED) + warnings = Fcons (intern (":expired"), warnings); + + if (XPROCESS (proc)->gnutls_extra_peer_verification & + CERTIFICATE_NOT_MATCHING) + warnings = Fcons (intern (":no-host-match"), warnings); + + if (!NILP (warnings)) + result = list2 (intern (":warnings"), warnings); + + /* This could get called in the INIT stage, when the certificate is + not yet set. */ + if (XPROCESS (proc)->gnutls_certificate != NULL) + result = nconc2 (result, list2 + (intern (":certificate"), + gnutls_certificate_details (XPROCESS (proc)->gnutls_certificate))); + + state = XPROCESS (proc)->gnutls_state; + + /* Diffie-Hellman prime bits. */ + { + int bits = fn_gnutls_dh_get_prime_bits (state); + if (bits > 0) + result = nconc2 (result, list2 (intern (":diffie-hellman-prime-bits"), + make_number (bits))); + } + + /* Key exchange. */ + result = nconc2 + (result, list2 (intern (":key-exchange"), + build_string (fn_gnutls_kx_get_name + (fn_gnutls_kx_get (state))))); + + /* Protocol name. */ + result = nconc2 + (result, list2 (intern (":protocol"), + build_string (fn_gnutls_protocol_get_name + (fn_gnutls_protocol_get_version (state))))); + + /* Cipher name. */ + result = nconc2 + (result, list2 (intern (":cipher"), + build_string (fn_gnutls_cipher_get_name + (fn_gnutls_cipher_get (state))))); + + /* MAC name. */ + result = nconc2 + (result, list2 (intern (":mac"), + build_string (fn_gnutls_mac_get_name + (fn_gnutls_mac_get (state))))); + + + return result; +} + +/* Initialize global GnuTLS state to defaults. + Call `gnutls-global-deinit' when GnuTLS usage is no longer needed. + Return zero on success. */ static Lisp_Object emacs_gnutls_global_init (void) { @@ -713,9 +1114,21 @@ emacs_gnutls_global_init (void) return gnutls_make_error (ret); } +static bool +gnutls_ip_address_p (char *string) +{ + char c; + + while ((c = *string++) != 0) + if (! ((c == '.' || c == ':' || (c >= '0' && c <= '9')))) + return false; + + return true; +} + #if 0 -/* Deinitializes global GnuTLS state. -See also `gnutls-global-init'. */ +/* Deinitialize global GnuTLS state. + See also `gnutls-global-init'. */ static Lisp_Object emacs_gnutls_global_deinit (void) { @@ -806,6 +1219,7 @@ one trustfile (usually a CA bundle). */) Lisp_Object hostname; Lisp_Object verify_error; Lisp_Object prime_bits; + Lisp_Object warnings; CHECK_PROCESS (proc); CHECK_SYMBOL (type); @@ -852,7 +1266,9 @@ one trustfile (usually a CA bundle). */) XPROCESS (proc)->gnutls_log_level = max_log_level; } - /* always initialize globals. */ + GNUTLS_LOG2 (1, max_log_level, "connecting to host:", c_hostname); + + /* Always initialize globals. */ global_init = emacs_gnutls_global_init (); if (! NILP (Fgnutls_errorp (global_init))) return global_init; @@ -906,6 +1322,14 @@ one trustfile (usually a CA bundle). */) int file_format = GNUTLS_X509_FMT_PEM; Lisp_Object tail; +#if GNUTLS_VERSION_MAJOR + \ + (GNUTLS_VERSION_MINOR > 0 || GNUTLS_VERSION_PATCH >= 20) > 3 + ret = fn_gnutls_certificate_set_x509_system_trust (x509_cred); + if (ret < GNUTLS_E_SUCCESS) + GNUTLS_LOG2i (4, max_log_level, + "setting system trust failed with code ", ret); +#endif + for (tail = trustfiles; CONSP (tail); tail = XCDR (tail)) { Lisp_Object trustfile = XCAR (tail); @@ -1033,6 +1457,14 @@ one trustfile (usually a CA bundle). */) if (ret < GNUTLS_E_SUCCESS) return gnutls_make_error (ret); + if (!gnutls_ip_address_p (c_hostname)) + { + ret = fn_gnutls_server_name_set (state, GNUTLS_NAME_DNS, c_hostname, + strlen (c_hostname)); + if (ret < GNUTLS_E_SUCCESS) + return gnutls_make_error (ret); + } + GNUTLS_INITSTAGE (proc) = GNUTLS_STAGE_CRED_SET; ret = emacs_gnutls_handshake (XPROCESS (proc)); if (ret < GNUTLS_E_SUCCESS) @@ -1042,39 +1474,26 @@ one trustfile (usually a CA bundle). */) http://www.gnu.org/software/gnutls/manual/html_node/Verifying-peer_0027s-certificate.html. The peer should present at least one certificate in the chain; do a check of the certificate's hostname with - gnutls_x509_crt_check_hostname() against :hostname. */ + gnutls_x509_crt_check_hostname against :hostname. */ ret = fn_gnutls_certificate_verify_peers2 (state, &peer_verification); if (ret < GNUTLS_E_SUCCESS) return gnutls_make_error (ret); - if (XINT (loglevel) > 0 && peer_verification & GNUTLS_CERT_INVALID) - message ("%s certificate could not be verified.", c_hostname); + XPROCESS (proc)->gnutls_peer_verification = peer_verification; - if (peer_verification & GNUTLS_CERT_REVOKED) - GNUTLS_LOG2 (1, max_log_level, "certificate was revoked (CRL):", - c_hostname); - - if (peer_verification & GNUTLS_CERT_SIGNER_NOT_FOUND) - GNUTLS_LOG2 (1, max_log_level, "certificate signer was not found:", - c_hostname); - - if (peer_verification & GNUTLS_CERT_SIGNER_NOT_CA) - GNUTLS_LOG2 (1, max_log_level, "certificate signer is not a CA:", - c_hostname); - - if (peer_verification & GNUTLS_CERT_INSECURE_ALGORITHM) - GNUTLS_LOG2 (1, max_log_level, - "certificate was signed with an insecure algorithm:", - c_hostname); - - if (peer_verification & GNUTLS_CERT_NOT_ACTIVATED) - GNUTLS_LOG2 (1, max_log_level, "certificate is not yet activated:", - c_hostname); - - if (peer_verification & GNUTLS_CERT_EXPIRED) - GNUTLS_LOG2 (1, max_log_level, "certificate has expired:", - c_hostname); + warnings = Fplist_get (Fgnutls_peer_status (proc), intern (":warnings")); + if (!NILP (warnings)) + { + Lisp_Object tail; + for (tail = warnings; CONSP (tail); tail = XCDR (tail)) + { + Lisp_Object warning = XCAR (tail); + Lisp_Object message = Fgnutls_peer_status_warning_describe (warning); + if (!NILP (message)) + GNUTLS_LOG2 (1, max_log_level, "verification:", SSDATA (message)); + } + } if (peer_verification != 0) { @@ -1126,8 +1545,12 @@ one trustfile (usually a CA bundle). */) return gnutls_make_error (ret); } + XPROCESS (proc)->gnutls_certificate = gnutls_verify_cert; + if (!fn_gnutls_x509_crt_check_hostname (gnutls_verify_cert, c_hostname)) { + XPROCESS (proc)->gnutls_extra_peer_verification |= + CERTIFICATE_NOT_MATCHING; if (verify_error_all || !NILP (Fmember (QCgnutls_bootprop_hostname, verify_error))) { @@ -1141,7 +1564,6 @@ one trustfile (usually a CA bundle). */) c_hostname); } } - fn_gnutls_x509_crt_deinit (gnutls_verify_cert); } /* Set this flag only if the whole initialization succeeded. */ @@ -1173,15 +1595,44 @@ This function may also return `gnutls-e-again', or state = XPROCESS (proc)->gnutls_state; + fn_gnutls_x509_crt_deinit (XPROCESS (proc)->gnutls_certificate); + ret = fn_gnutls_bye (state, NILP (cont) ? GNUTLS_SHUT_RDWR : GNUTLS_SHUT_WR); return gnutls_make_error (ret); } +#endif /* HAVE_GNUTLS */ + +DEFUN ("gnutls-available-p", Fgnutls_available_p, Sgnutls_available_p, 0, 0, 0, + doc: /* Return t if GnuTLS is available in this instance of Emacs. */) + (void) +{ +#ifdef HAVE_GNUTLS +# ifdef WINDOWSNT + Lisp_Object found = Fassq (Qgnutls_dll, Vlibrary_cache); + if (CONSP (found)) + return XCDR (found); + else + { + Lisp_Object status; + status = init_gnutls_functions () ? Qt : Qnil; + Vlibrary_cache = Fcons (Fcons (Qgnutls_dll, status), Vlibrary_cache); + return status; + } +# else /* !WINDOWSNT */ + return Qt; +# endif /* !WINDOWSNT */ +#else /* !HAVE_GNUTLS */ + return Qnil; +#endif /* !HAVE_GNUTLS */ +} + void syms_of_gnutls (void) { +#ifdef HAVE_GNUTLS gnutls_global_initialized = 0; DEFSYM (Qgnutls_dll, "gnutls"); @@ -1223,7 +1674,8 @@ syms_of_gnutls (void) defsubr (&Sgnutls_boot); defsubr (&Sgnutls_deinit); defsubr (&Sgnutls_bye); - defsubr (&Sgnutls_available_p); + defsubr (&Sgnutls_peer_status); + defsubr (&Sgnutls_peer_status_warning_describe); DEFVAR_INT ("gnutls-log-level", global_gnutls_log_level, doc: /* Logging level used by the GnuTLS functions. @@ -1231,6 +1683,8 @@ Set this larger than 0 to get debug output in the *Messages* buffer. 1 is for important messages, 2 is for debug data, and higher numbers are as per the GnuTLS logging conventions. */); global_gnutls_log_level = 0; -} -#endif /* HAVE_GNUTLS */ +#endif /* HAVE_GNUTLS */ + + defsubr (&Sgnutls_available_p); +} diff --git a/src/gnutls.h b/src/gnutls.h index 8a667c00568..8a18976cf1b 100644 --- a/src/gnutls.h +++ b/src/gnutls.h @@ -82,8 +82,8 @@ extern void emacs_gnutls_transport_set_errno (gnutls_session_t state, int err); #endif extern Lisp_Object emacs_gnutls_deinit (Lisp_Object); +#endif + extern void syms_of_gnutls (void); #endif - -#endif diff --git a/src/gtkutil.c b/src/gtkutil.c index b18e5f325e1..9465d5479df 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -50,11 +50,11 @@ along with GNU Emacs. If not, see . */ #include "emacsgtkfixed.h" #endif -#define FRAME_TOTAL_PIXEL_HEIGHT(f) \ - (FRAME_PIXEL_HEIGHT (f) + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f)) +/** #define FRAME_TOTAL_PIXEL_HEIGHT(f) \ **/ +/** (FRAME_PIXEL_HEIGHT (f) + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f)) **/ -#define FRAME_TOTAL_PIXEL_WIDTH(f) \ - (FRAME_PIXEL_WIDTH (f) + FRAME_TOOLBAR_WIDTH (f)) +/** #define FRAME_TOTAL_PIXEL_WIDTH(f) \ **/ +/** (FRAME_PIXEL_WIDTH (f) + FRAME_TOOLBAR_WIDTH (f)) **/ #ifndef HAVE_GTK_WIDGET_SET_HAS_WINDOW #define gtk_widget_set_has_window(w, b) \ @@ -79,6 +79,20 @@ along with GNU Emacs. If not, see . */ #define remove_submenu(w) gtk_menu_item_remove_submenu ((w)) #endif +#if ! GTK_CHECK_VERSION (2, 14, 0) +#define gtk_adjustment_configure(adj, xvalue, xlower, \ + xupper, xstep_increment, \ + xpage_increment, xpagesize) \ + do { \ + adj->lower = xlower; \ + adj->upper = xupper; \ + adj->page_size = xpagesize; \ + gtk_adjustment_set_value (adj, xvalue); \ + adj->page_increment = xpage_increment; \ + adj->step_increment = xstep_increment; \ + } while (0) +#endif /* < Gtk+ 2.14 */ + #ifdef HAVE_FREETYPE #if GTK_CHECK_VERSION (3, 2, 0) #define USE_NEW_GTK_FONT_CHOOSER 1 @@ -93,6 +107,16 @@ along with GNU Emacs. If not, see . */ #endif #endif /* HAVE_FREETYPE */ +#if GTK_CHECK_VERSION (3, 10, 0) +#define XG_TEXT_CANCEL "Cancel" +#define XG_TEXT_OK "OK" +#define XG_TEXT_OPEN "Open" +#else +#define XG_TEXT_CANCEL GTK_STOCK_CANCEL +#define XG_TEXT_OK GTK_STOCK_OK +#define XG_TEXT_OPEN GTK_STOCK_OPEN +#endif + #ifndef HAVE_GTK3 #ifdef USE_GTK_TOOLTIP #define gdk_window_get_screen(w) gdk_drawable_get_screen (w) @@ -508,16 +532,16 @@ get_utf8_string (const char *str) && err->code == G_CONVERT_ERROR_ILLEGAL_SEQUENCE) { memcpy (up, p, bytes_written); - sprintf (up + bytes_written, "\\%03o", p[bytes_written]); - up += bytes_written+4; - p += bytes_written+1; + up += bytes_written; + up += sprintf (up, "\\%03o", p[bytes_written]); + p += bytes_written + 1; g_error_free (err); err = NULL; } if (cp) { - strcat (utf8_str, cp); + strcpy (up, cp); g_free (cp); } if (err) @@ -930,12 +954,13 @@ xg_frame_set_char_size (struct frame *f, int width, int height) x_wait_for_event (f, ConfigureNotify); } else - adjust_frame_size (f, -1, -1, 5, 0); + adjust_frame_size (f, -1, -1, 5, 0, Qnil); } /* Handle height/width changes (i.e. add/remove/move menu/toolbar). The policy is to keep the number of editable lines. */ +#if 0 static void xg_height_or_width_changed (struct frame *f) { @@ -945,6 +970,7 @@ xg_height_or_width_changed (struct frame *f) f->output_data.x->hint_flags = 0; x_wm_set_size_hint (f, 0, 0); } +#endif /* Convert an X Window WSESC on display DPY to its corresponding GtkWidget. Must be done like this, because GtkWidget:s can have "hidden" @@ -1324,7 +1350,7 @@ x_wm_set_size_hint (struct frame *f, long int flags, bool user_position) size_hints.base_width = base_width; size_hints.base_height = base_height; - size_hints.min_width = base_width + min_cols * FRAME_COLUMN_WIDTH (f);; + size_hints.min_width = base_width + min_cols * FRAME_COLUMN_WIDTH (f); size_hints.min_height = base_height + min_rows * FRAME_LINE_HEIGHT (f); /* These currently have a one to one mapping with the X values, but I @@ -1479,7 +1505,6 @@ create_dialog (widget_value *wv, int button_spacing = 10; GtkWidget *wdialog = gtk_dialog_new (); GtkDialog *wd = GTK_DIALOG (wdialog); - GtkBox *cur_box = GTK_BOX (gtk_dialog_get_action_area (wd)); widget_value *item; GtkWidget *whbox_down; @@ -1487,6 +1512,17 @@ create_dialog (widget_value *wv, instead. This looks better. */ bool make_two_rows = total_buttons > 4; +#if GTK_CHECK_VERSION (3, 12, 0) + GtkBuilder *gbld = gtk_builder_new (); + GObject *go = gtk_buildable_get_internal_child (GTK_BUILDABLE (wd), + gbld, + "action_area"); + GtkBox *cur_box = GTK_BOX (go); + g_object_unref (G_OBJECT (gbld)); +#else + GtkBox *cur_box = GTK_BOX (gtk_dialog_get_action_area (wd)); +#endif + if (right_buttons == 0) right_buttons = total_buttons/2; left_buttons = total_buttons - right_buttons; @@ -1532,8 +1568,12 @@ create_dialog (widget_value *wv, w = gtk_label_new (utf8_label); gtk_box_pack_start (wvbox, gtk_label_new (""), FALSE, FALSE, 0); gtk_box_pack_start (wvbox, w, TRUE, TRUE, 0); +#if GTK_CHECK_VERSION (3, 14, 0) + gtk_widget_set_halign (w, GTK_ALIGN_START); + gtk_widget_set_valign (w, GTK_ALIGN_CENTER); +#else gtk_misc_set_alignment (GTK_MISC (w), 0.1, 0.5); - +#endif /* Try to make dialog look better. Must realize first so the widget can calculate the size it needs. */ gtk_widget_realize (w); @@ -1541,6 +1581,7 @@ create_dialog (widget_value *wv, gtk_box_set_spacing (wvbox, req.height); if (item->value && strlen (item->value) > 0) button_spacing = 2*req.width/strlen (item->value); + if (button_spacing < 10) button_spacing = 10; } else { @@ -1557,11 +1598,6 @@ create_dialog (widget_value *wv, { if (make_two_rows) cur_box = GTK_BOX (whbox_down); - else - gtk_box_pack_start (cur_box, - gtk_label_new (""), - TRUE, TRUE, - button_spacing); } } @@ -1778,9 +1814,9 @@ xg_get_file_with_chooser (struct frame *f, action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; filewin = gtk_file_chooser_dialog_new (prompt, gwin, action, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + XG_TEXT_CANCEL, GTK_RESPONSE_CANCEL, (mustmatch_p || only_dir_p ? - GTK_STOCK_OPEN : GTK_STOCK_OK), + XG_TEXT_OPEN : XG_TEXT_OK), GTK_RESPONSE_OK, NULL); gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (filewin), TRUE); @@ -2287,9 +2323,15 @@ make_widget_for_menu_item (const char *utf8_label, const char *utf8_key) wlbl = gtk_label_new (utf8_label); wkey = gtk_label_new (utf8_key); +#if GTK_CHECK_VERSION (3, 14, 0) + gtk_widget_set_halign (wlbl, GTK_ALIGN_START); + gtk_widget_set_valign (wlbl, GTK_ALIGN_CENTER); + gtk_widget_set_halign (wkey, GTK_ALIGN_START); + gtk_widget_set_valign (wkey, GTK_ALIGN_CENTER); +#else gtk_misc_set_alignment (GTK_MISC (wlbl), 0.0, 0.5); gtk_misc_set_alignment (GTK_MISC (wkey), 0.0, 0.5); - +#endif gtk_box_pack_start (GTK_BOX (wbox), wlbl, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (wbox), wkey, FALSE, FALSE, 0); @@ -2360,57 +2402,6 @@ make_menu_item (const char *utf8_label, return w; } -#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW - -static int xg_detached_menus; - -/* Return true if there are detached menus. */ - -bool -xg_have_tear_offs (struct frame *f) -{ - /* If the frame's menubar height is zero, the menu bar is probably - being redirected outside the window to some kind of global menu; - this situation is the moral equivalent of a tear-off. */ - return FRAME_MENUBAR_HEIGHT (f) == 0 || xg_detached_menus > 0; -} - -/* Callback invoked when a detached menu window is removed. Here we - decrease the xg_detached_menus count. - WIDGET is the top level window that is removed (the parent of the menu). - CLIENT_DATA is not used. */ - -static void -tearoff_remove (GtkWidget *widget, gpointer client_data) -{ - if (xg_detached_menus > 0) --xg_detached_menus; -} - -/* Callback invoked when a menu is detached. It increases the - xg_detached_menus count. - WIDGET is the GtkTearoffMenuItem. - CLIENT_DATA is not used. */ - -static void -tearoff_activate (GtkWidget *widget, gpointer client_data) -{ - GtkWidget *menu = gtk_widget_get_parent (widget); - if (gtk_menu_get_tearoff_state (GTK_MENU (menu))) - { - ++xg_detached_menus; - g_signal_connect (G_OBJECT (gtk_widget_get_toplevel (widget)), - "destroy", - G_CALLBACK (tearoff_remove), 0); - } -} -#else /* ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW */ -bool -xg_have_tear_offs (struct frame *f) -{ - return FRAME_MENUBAR_HEIGHT (f) == 0; -} -#endif /* ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW */ - /* Create a menu item widget, and connect the callbacks. ITEM describes the menu item. F is the frame the created menu belongs to. @@ -2481,8 +2472,6 @@ xg_create_one_menuitem (widget_value *item, HIGHLIGHT_CB is the callback to call when entering/leaving menu items. If POP_UP_P, create a popup menu. If MENU_BAR_P, create a menu bar. - If ADD_TEAROFF_P, add a tearoff menu item. Ignored if MENU_BAR_P or - the Gtk+ version used does not have tearoffs. TOPMENU is the topmost GtkWidget that others shall be placed under. It may be NULL, in that case we create the appropriate widget (menu bar or menu item depending on POP_UP_P and MENU_BAR_P) @@ -2504,7 +2493,6 @@ create_menus (widget_value *data, GCallback highlight_cb, bool pop_up_p, bool menu_bar_p, - bool add_tearoff_p, GtkWidget *topmenu, xg_menu_cb_data *cl_data, const char *name) @@ -2555,17 +2543,6 @@ create_menus (widget_value *data, "selection-done", deactivate_cb, 0); } -#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW - if (! menu_bar_p && add_tearoff_p) - { - GtkWidget *tearoff = gtk_tearoff_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL (wmenu), tearoff); - - g_signal_connect (G_OBJECT (tearoff), "activate", - G_CALLBACK (tearoff_activate), 0); - } -#endif - for (item = data; item; item = item->next) { GtkWidget *w; @@ -2579,7 +2556,6 @@ create_menus (widget_value *data, group = NULL; utf8_label = get_utf8_string (item->name); - gtk_menu_set_title (GTK_MENU (wmenu), utf8_label); w = gtk_menu_item_new_with_label (utf8_label); gtk_widget_set_sensitive (w, FALSE); if (utf8_label) g_free (utf8_label); @@ -2610,7 +2586,6 @@ create_menus (widget_value *data, highlight_cb, 0, 0, - add_tearoff_p, 0, cl_data, 0); @@ -2668,7 +2643,6 @@ xg_create_widget (const char *type, const char *name, struct frame *f, highlight_cb, pop_up_p, menu_bar_p, - menu_bar_p, 0, 0, name); @@ -2778,7 +2752,7 @@ xg_update_menubar (GtkWidget *menubar, { /* Item(s) added. Add all new items in one call. */ create_menus (val, f, select_cb, deactivate_cb, highlight_cb, - 0, 1, 0, menubar, cl_data, 0); + 0, 1, menubar, cl_data, 0); /* All updated. */ val = 0; @@ -2851,7 +2825,6 @@ xg_update_menubar (GtkWidget *menubar, is up to date when leaving the minibuffer. */ GtkLabel *wlabel = GTK_LABEL (XG_BIN_CHILD (witem)); char *utf8_label = get_utf8_string (val->name); - GtkWidget *submenu = gtk_menu_item_get_submenu (witem); /* GTK menu items don't notice when their labels have been changed from underneath them, so we have to explicitly @@ -2859,16 +2832,9 @@ xg_update_menubar (GtkWidget *menubar, bridge that might be loaded) that the item's label has changed. */ gtk_label_set_text (wlabel, utf8_label); +#if GTK_CHECK_VERSION (2, 16, 0) g_object_notify (G_OBJECT (witem), "label"); - -#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW - /* If this item has a submenu that has been detached, change - the title in the WM decorations also. */ - if (submenu && gtk_menu_get_tearoff_state (GTK_MENU (submenu))) - /* Set the title of the detached window. */ - gtk_menu_set_title (GTK_MENU (submenu), utf8_label); #endif - if (utf8_label) g_free (utf8_label); iter = g_list_next (iter); val = val->next; @@ -2895,7 +2861,7 @@ xg_update_menubar (GtkWidget *menubar, GtkWidget *submenu = create_menus (NULL, f, select_cb, deactivate_cb, highlight_cb, - 0, 0, 0, 0, cl_data, 0); + 0, 0, 0, cl_data, 0); gtk_widget_set_name (w, MENU_ITEM_NAME); gtk_menu_shell_insert (GTK_MENU_SHELL (menubar), w, pos); @@ -3047,8 +3013,10 @@ xg_update_menu_item (widget_value *val, } } +#if GTK_CHECK_VERSION (2, 16, 0) if (label_changed) /* See comment in xg_update_menubar. */ g_object_notify (G_OBJECT (w), "label"); +#endif } /* Update the toggle menu item W so it corresponds to VAL. */ @@ -3092,7 +3060,6 @@ xg_update_submenu (GtkWidget *submenu, GList *list = 0; GList *iter; widget_value *cur; - bool has_tearoff_p = 0; GList *first_radio = 0; if (submenu) @@ -3104,17 +3071,6 @@ xg_update_submenu (GtkWidget *submenu, { GtkWidget *w = GTK_WIDGET (iter->data); -#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW - /* Skip tearoff items, they have no counterpart in val. */ - if (GTK_IS_TEAROFF_MENU_ITEM (w)) - { - has_tearoff_p = 1; - iter = g_list_next (iter); - if (iter) w = GTK_WIDGET (iter->data); - else break; - } -#endif - /* Remember first radio button in a group. If we get a mismatch in a radio group we must rebuild the whole group so that the connections in GTK becomes correct. */ @@ -3202,7 +3158,6 @@ xg_update_submenu (GtkWidget *submenu, highlight_cb, 0, 0, - ! has_tearoff_p, submenu, cl_data, 0); @@ -3302,7 +3257,7 @@ menubar_map_cb (GtkWidget *w, gpointer user_data) if (FRAME_MENUBAR_HEIGHT (f) != req.height) { FRAME_MENUBAR_HEIGHT (f) = req.height; - xg_height_or_width_changed (f); + adjust_frame_size (f, -1, -1, 2, 0, Qmenu_bar_lines); } } @@ -3334,7 +3289,7 @@ xg_update_frame_menubar (struct frame *f) if (FRAME_MENUBAR_HEIGHT (f) != req.height) { FRAME_MENUBAR_HEIGHT (f) = req.height; - xg_height_or_width_changed (f); + adjust_frame_size (f, -1, -1, 2, 0, Qmenu_bar_lines); } unblock_input (); } @@ -3356,7 +3311,7 @@ free_frame_menubar (struct frame *f) the container. */ x->menubar_widget = 0; FRAME_MENUBAR_HEIGHT (f) = 0; - xg_height_or_width_changed (f); + adjust_frame_size (f, -1, -1, 2, 0, Qmenu_bar_lines); unblock_input (); } } @@ -3997,14 +3952,6 @@ xg_set_toolkit_horizontal_scroll_bar_thumb (struct scroll_bar *bar, block_input (); adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); - - /* gtk_adjustment_set_lower (adj, (gdouble) lower); - gtk_adjustment_set_upper (adj, (gdouble) upper); - gtk_adjustment_set_page_size (adj, (gdouble) pagesize); - gtk_adjustment_set_value (adj, (gdouble) value); - gtk_adjustment_set_page_increment (adj, (gdouble) page_increment); - gtk_adjustment_set_step_increment (adj, (gdouble) - step_increment); */ gtk_adjustment_configure (adj, (gdouble) value, (gdouble) lower, (gdouble) upper, (gdouble) step_increment, (gdouble) page_increment, (gdouble) pagesize); @@ -4063,9 +4010,6 @@ xg_event_is_for_scrollbar (struct frame *f, const XEvent *event) get them. */ #define XG_TOOL_BAR_LAST_MODIFIER "emacs-tool-bar-modifier" -/* The key for storing the button widget in its proxy menu item. */ -#define XG_TOOL_BAR_PROXY_BUTTON "emacs-tool-bar-proxy-button" - /* The key for the data we put in the GtkImage widgets. The data is the stock name used by Emacs. We use this to see if we need to update the GtkImage with a new image. */ @@ -4138,41 +4082,6 @@ xg_tool_bar_callback (GtkWidget *w, gpointer client_data) x_focus_frame (f); } -/* Callback function invoked when a tool bar item is pressed in a detached - tool bar or the overflow drop down menu. - We just call xg_tool_bar_callback. - W is the menu item widget that got pressed, - CLIENT_DATA is an integer that is the index of the button in the - tool bar. 0 is the first button. */ - -static void -xg_tool_bar_proxy_callback (GtkWidget *w, gpointer client_data) -{ - GtkWidget *wbutton = GTK_WIDGET (g_object_get_data (G_OBJECT (w), - XG_TOOL_BAR_PROXY_BUTTON)); - xg_tool_bar_callback (wbutton, client_data); -} - - -static gboolean -xg_tool_bar_help_callback (GtkWidget *w, - GdkEventCrossing *event, - gpointer client_data); - -/* This callback is called when a help is to be shown for an item in - the detached tool bar when the detached tool bar it is not expanded. */ - -static gboolean -xg_tool_bar_proxy_help_callback (GtkWidget *w, - GdkEventCrossing *event, - gpointer client_data) -{ - GtkWidget *wbutton = GTK_WIDGET (g_object_get_data (G_OBJECT (w), - XG_TOOL_BAR_PROXY_BUTTON)); - - return xg_tool_bar_help_callback (wbutton, event, client_data); -} - static GtkWidget * xg_get_tool_bar_widgets (GtkWidget *vb, GtkWidget **wimage) { @@ -4186,187 +4095,6 @@ xg_get_tool_bar_widgets (GtkWidget *vb, GtkWidget **wimage) } -/* This callback is called when a tool item should create a proxy item, - such as for the overflow menu. Also called when the tool bar is detached. - If we don't create a proxy menu item, the detached tool bar will be - blank. */ - -static gboolean -xg_tool_bar_menu_proxy (GtkToolItem *toolitem, gpointer user_data) -{ - GtkButton *wbutton = GTK_BUTTON (XG_BIN_CHILD (XG_BIN_CHILD (toolitem))); - GtkWidget *vb = XG_BIN_CHILD (wbutton); - GtkWidget *c1; - GtkLabel *wlbl = GTK_LABEL (xg_get_tool_bar_widgets (vb, &c1)); - GtkImage *wimage = GTK_IMAGE (c1); - GtkWidget *wmenuitem = gtk_image_menu_item_new_with_label - (wlbl ? gtk_label_get_text (wlbl) : ""); - GtkWidget *wmenuimage; - - - if (gtk_button_get_use_stock (wbutton)) - wmenuimage = gtk_image_new_from_stock (gtk_button_get_label (wbutton), - GTK_ICON_SIZE_MENU); - else - { - GtkSettings *settings = gtk_widget_get_settings (GTK_WIDGET (wbutton)); - GtkImageType store_type = gtk_image_get_storage_type (wimage); - - g_object_set (G_OBJECT (settings), "gtk-menu-images", TRUE, NULL); - - if (store_type == GTK_IMAGE_STOCK) - { - gchar *stock_id; - gtk_image_get_stock (wimage, &stock_id, NULL); - wmenuimage = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); - } - else if (store_type == GTK_IMAGE_ICON_SET) - { - GtkIconSet *icon_set; - gtk_image_get_icon_set (wimage, &icon_set, NULL); - wmenuimage = gtk_image_new_from_icon_set (icon_set, - GTK_ICON_SIZE_MENU); - } - else if (store_type == GTK_IMAGE_PIXBUF) - { - gint width, height; - - if (settings && - gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_MENU, - &width, &height)) - { - GdkPixbuf *src_pixbuf, *dest_pixbuf; - - src_pixbuf = gtk_image_get_pixbuf (wimage); - dest_pixbuf = gdk_pixbuf_scale_simple (src_pixbuf, width, height, - GDK_INTERP_BILINEAR); - - wmenuimage = gtk_image_new_from_pixbuf (dest_pixbuf); - } - else - { - fprintf (stderr, "internal error: GTK_IMAGE_PIXBUF failed\n"); - emacs_abort (); - } - } - else if (store_type == GTK_IMAGE_ICON_NAME) - { - const gchar *icon_name; - GtkIconSize icon_size; - - gtk_image_get_icon_name (wimage, &icon_name, &icon_size); - wmenuimage = gtk_image_new_from_icon_name (icon_name, - GTK_ICON_SIZE_MENU); - } - else - { - fprintf (stderr, "internal error: store_type is %d\n", store_type); - emacs_abort (); - } - } - if (wmenuimage) - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (wmenuitem), wmenuimage); - - g_signal_connect (G_OBJECT (wmenuitem), - "activate", - G_CALLBACK (xg_tool_bar_proxy_callback), - user_data); - - - g_object_set_data (G_OBJECT (wmenuitem), XG_TOOL_BAR_PROXY_BUTTON, - (gpointer) wbutton); - gtk_tool_item_set_proxy_menu_item (toolitem, "Emacs toolbar item", wmenuitem); - gtk_widget_set_sensitive (wmenuitem, - gtk_widget_get_sensitive (GTK_WIDGET (wbutton))); - - /* Use enter/leave notify to show help. We use the events - rather than the GtkButton specific signals "enter" and - "leave", so we can have only one callback. The event - will tell us what kind of event it is. */ - g_signal_connect (G_OBJECT (wmenuitem), - "enter-notify-event", - G_CALLBACK (xg_tool_bar_proxy_help_callback), - user_data); - g_signal_connect (G_OBJECT (wmenuitem), - "leave-notify-event", - G_CALLBACK (xg_tool_bar_proxy_help_callback), - user_data); - - return TRUE; -} - -/* This callback is called when a tool bar is detached. We must set - the height of the tool bar to zero when this happens so frame sizes - are correctly calculated. - WBOX is the handle box widget that enables detach/attach of the tool bar. - W is the tool bar widget. - CLIENT_DATA is a pointer to the frame the tool bar belongs to. */ - -static void -xg_tool_bar_detach_callback (GtkHandleBox *wbox, - GtkWidget *w, - gpointer client_data) -{ - struct frame *f = client_data; - - g_object_set (G_OBJECT (w), "show-arrow", !x_gtk_whole_detached_tool_bar, - NULL); - - if (f) - { - GtkRequisition req, req2; - - gtk_widget_get_preferred_size (GTK_WIDGET (wbox), NULL, &req); - gtk_widget_get_preferred_size (w, NULL, &req2); - req.width -= req2.width; - req.height -= req2.height; - if (FRAME_TOOLBAR_TOP_HEIGHT (f) != 0) - FRAME_TOOLBAR_TOP_HEIGHT (f) = req.height; - else if (FRAME_TOOLBAR_BOTTOM_HEIGHT (f) != 0) - FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = req.height; - else if (FRAME_TOOLBAR_RIGHT_WIDTH (f) != 0) - FRAME_TOOLBAR_RIGHT_WIDTH (f) = req.width; - else if (FRAME_TOOLBAR_LEFT_WIDTH (f) != 0) - FRAME_TOOLBAR_LEFT_WIDTH (f) = req.width; - xg_height_or_width_changed (f); - } -} - -/* This callback is called when a tool bar is reattached. We must set - the height of the tool bar when this happens so frame sizes - are correctly calculated. - WBOX is the handle box widget that enables detach/attach of the tool bar. - W is the tool bar widget. - CLIENT_DATA is a pointer to the frame the tool bar belongs to. */ - -static void -xg_tool_bar_attach_callback (GtkHandleBox *wbox, - GtkWidget *w, - gpointer client_data) -{ - struct frame *f = client_data; - g_object_set (G_OBJECT (w), "show-arrow", TRUE, NULL); - - if (f) - { - GtkRequisition req, req2; - - gtk_widget_get_preferred_size (GTK_WIDGET (wbox), NULL, &req); - gtk_widget_get_preferred_size (w, NULL, &req2); - req.width += req2.width; - req.height += req2.height; - if (FRAME_TOOLBAR_TOP_HEIGHT (f) != 0) - FRAME_TOOLBAR_TOP_HEIGHT (f) = req.height; - else if (FRAME_TOOLBAR_BOTTOM_HEIGHT (f) != 0) - FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = req.height; - else if (FRAME_TOOLBAR_RIGHT_WIDTH (f) != 0) - FRAME_TOOLBAR_RIGHT_WIDTH (f) = req.width; - else if (FRAME_TOOLBAR_LEFT_WIDTH (f) != 0) - FRAME_TOOLBAR_LEFT_WIDTH (f) = req.width; - xg_height_or_width_changed (f); - } -} - /* This callback is called when the mouse enters or leaves a tool bar item. It is used for displaying and hiding the help text. W is the tool bar item, a button. @@ -4446,12 +4174,6 @@ xg_tool_bar_item_expose_callback (GtkWidget *w, gtk_toolbar_set_orientation (GTK_TOOLBAR (w), o) #endif -#ifdef HAVE_GTK_HANDLE_BOX_NEW -#define TOOLBAR_TOP_WIDGET(x) ((x)->handlebox_widget) -#else -#define TOOLBAR_TOP_WIDGET(x) ((x)->toolbar_widget) -#endif - /* Attach a tool bar to frame F. */ static void @@ -4459,31 +4181,15 @@ xg_pack_tool_bar (struct frame *f, Lisp_Object pos) { struct x_output *x = f->output_data.x; bool into_hbox = EQ (pos, Qleft) || EQ (pos, Qright); - GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); + GtkWidget *top_widget = x->toolbar_widget; toolbar_set_orientation (x->toolbar_widget, into_hbox ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL); -#ifdef HAVE_GTK_HANDLE_BOX_NEW - if (!x->handlebox_widget) - { - top_widget = x->handlebox_widget = gtk_handle_box_new (); - g_signal_connect (G_OBJECT (x->handlebox_widget), "child-detached", - G_CALLBACK (xg_tool_bar_detach_callback), f); - g_signal_connect (G_OBJECT (x->handlebox_widget), "child-attached", - G_CALLBACK (xg_tool_bar_attach_callback), f); - gtk_container_add (GTK_CONTAINER (x->handlebox_widget), - x->toolbar_widget); - } -#endif if (into_hbox) { -#ifdef HAVE_GTK_HANDLE_BOX_NEW - gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), - GTK_POS_TOP); -#endif gtk_box_pack_start (GTK_BOX (x->hbox_widget), top_widget, FALSE, FALSE, 0); @@ -4496,10 +4202,6 @@ xg_pack_tool_bar (struct frame *f, Lisp_Object pos) else { bool vbox_pos = x->menubar_widget != 0; -#ifdef HAVE_GTK_HANDLE_BOX_NEW - gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), - GTK_POS_LEFT); -#endif gtk_box_pack_start (GTK_BOX (x->vbox_widget), top_widget, FALSE, FALSE, 0); @@ -4524,7 +4226,7 @@ tb_size_cb (GtkWidget *widget, size hints if tool bar size changes. Seen on Fedora 18 at least. */ struct frame *f = user_data; if (xg_update_tool_bar_sizes (f)) - xg_height_or_width_changed (f); + adjust_frame_size (f, -1, -1, 2, 0, Qtool_bar_lines); } /* Create a tool bar for frame F. */ @@ -4652,10 +4354,6 @@ xg_make_tool_item (struct frame *f, intptr_t ii = i; gpointer gi = (gpointer) ii; - g_signal_connect (G_OBJECT (ti), "create-menu-proxy", - G_CALLBACK (xg_tool_bar_menu_proxy), - gi); - g_signal_connect (G_OBJECT (wb), "clicked", G_CALLBACK (xg_tool_bar_callback), gi); @@ -4769,7 +4467,7 @@ xg_update_tool_bar_sizes (struct frame *f) struct x_output *x = f->output_data.x; GtkRequisition req; int nl = 0, nr = 0, nt = 0, nb = 0; - GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); + GtkWidget *top_widget = x->toolbar_widget; gtk_widget_get_preferred_size (GTK_WIDGET (top_widget), NULL, &req); if (x->toolbar_in_hbox) @@ -4808,6 +4506,42 @@ xg_update_tool_bar_sizes (struct frame *f) return 0; } +static char * +find_icon_from_name (char *name, + GtkIconTheme *icon_theme, + char **icon_name) +{ +#if ! GTK_CHECK_VERSION (3, 10, 0) + GtkStockItem stock_item; +#endif + + if (name[0] == 'n' && name[1] == ':') + { + *icon_name = name + 2; + name = NULL; + + if (! gtk_icon_theme_has_icon (icon_theme, *icon_name)) + *icon_name = NULL; + } + +#if ! GTK_CHECK_VERSION (3, 10, 0) + else if (gtk_stock_lookup (name, &stock_item)) + *icon_name = NULL; +#endif + else if (gtk_icon_theme_has_icon (icon_theme, name)) + { + *icon_name = name; + name = NULL; + } + else + { + name = NULL; + *icon_name = NULL; + } + + return name; +} + /* Update the tool bar for frame F. Add new buttons and remove old. */ @@ -4823,6 +4557,9 @@ update_frame_tool_bar (struct frame *f) Lisp_Object style; bool text_image, horiz; struct xg_frame_tb_info *tbinfo; + GdkScreen *screen; + GtkIconTheme *icon_theme; + if (! FRAME_GTK_WIDGET (f)) return; @@ -4857,6 +4594,8 @@ update_frame_tool_bar (struct frame *f) dir = gtk_widget_get_direction (GTK_WIDGET (wtoolbar)); style = Ftool_bar_get_system_style (); + screen = gtk_widget_get_screen (GTK_WIDGET (wtoolbar)); + icon_theme = gtk_icon_theme_get_for_screen (screen); /* Are we up to date? */ tbinfo = g_object_get_data (G_OBJECT (FRAME_GTK_OUTER_WIDGET (f)), @@ -4893,7 +4632,6 @@ update_frame_tool_bar (struct frame *f) struct image *img = NULL; Lisp_Object image; Lisp_Object stock = Qnil; - GtkStockItem stock_item; char *stock_name = NULL; char *icon_name = NULL; Lisp_Object rtl; @@ -4947,31 +4685,27 @@ update_frame_tool_bar (struct frame *f) if (!NILP (specified_file) && !NILP (Ffboundp (Qx_gtk_map_stock))) stock = call1 (Qx_gtk_map_stock, specified_file); - if (STRINGP (stock)) + if (CONSP (stock)) { - stock_name = SSDATA (stock); - if (stock_name[0] == 'n' && stock_name[1] == ':') - { - GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (wtoolbar)); - GtkIconTheme *icon_theme = gtk_icon_theme_get_for_screen (screen); - - icon_name = stock_name + 2; - stock_name = NULL; - stock = Qnil; - - if (! gtk_icon_theme_has_icon (icon_theme, icon_name)) - icon_name = NULL; - else - icon_size = gtk_toolbar_get_icon_size (wtoolbar); - } - else if (gtk_stock_lookup (SSDATA (stock), &stock_item)) - icon_size = gtk_toolbar_get_icon_size (wtoolbar); - else - { - stock = Qnil; - stock_name = NULL; - } + Lisp_Object tem; + for (tem = stock; CONSP (tem); tem = XCDR (tem)) + if (! NILP (tem) && STRINGP (XCAR (tem))) + { + stock_name = find_icon_from_name (SSDATA (XCAR (tem)), + icon_theme, + &icon_name); + if (stock_name || icon_name) break; + } } + else if (STRINGP (stock)) + { + stock_name = find_icon_from_name (SSDATA (stock), + icon_theme, + &icon_name); + } + + if (stock_name || icon_name) + icon_size = gtk_toolbar_get_icon_size (wtoolbar); if (stock_name == NULL && icon_name == NULL) { @@ -5033,7 +4767,12 @@ update_frame_tool_bar (struct frame *f) w = NULL; else if (stock_name) { + +#if GTK_CHECK_VERSION (3, 10, 0) + w = gtk_image_new_from_icon_name (stock_name, icon_size); +#else w = gtk_image_new_from_stock (stock_name, icon_size); +#endif g_object_set_data_full (G_OBJECT (w), XG_TOOL_BAR_STOCK_NAME, (gpointer) xstrdup (stock_name), (GDestroyNotify) xfree); @@ -5052,7 +4791,17 @@ update_frame_tool_bar (struct frame *f) (gpointer)img->pixmap); } +#if GTK_CHECK_VERSION (3, 14, 0) + if (w) + { + gtk_widget_set_margin_start (w, hmargin); + gtk_widget_set_margin_end (w, hmargin); + gtk_widget_set_margin_top (w, vmargin); + gtk_widget_set_margin_bottom (w, vmargin); + } +#else if (w) gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin); +#endif ti = xg_make_tool_item (f, w, &wbutton, label, i, horiz, text_image); gtk_toolbar_insert (GTK_TOOLBAR (wtoolbar), ti, j); } @@ -5075,9 +4824,9 @@ update_frame_tool_bar (struct frame *f) { if (! x->toolbar_is_packed) xg_pack_tool_bar (f, FRAME_TOOL_BAR_POSITION (f)); - gtk_widget_show_all (TOOLBAR_TOP_WIDGET (x)); + gtk_widget_show_all (x->toolbar_widget); if (xg_update_tool_bar_sizes (f)) - xg_height_or_width_changed (f); + adjust_frame_size (f, -1, -1, 2, 0, Qtool_bar_lines); } unblock_input (); @@ -5094,11 +4843,9 @@ free_frame_tool_bar (struct frame *f) if (x->toolbar_widget) { struct xg_frame_tb_info *tbinfo; - GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); + GtkWidget *top_widget = x->toolbar_widget; block_input (); - /* We may have created the toolbar_widget in xg_create_tool_bar, but - not the x->handlebox_widget which is created in xg_pack_tool_bar. */ if (x->toolbar_is_packed) { if (x->toolbar_in_hbox) @@ -5112,7 +4859,7 @@ free_frame_tool_bar (struct frame *f) gtk_widget_destroy (x->toolbar_widget); x->toolbar_widget = 0; - TOOLBAR_TOP_WIDGET (x) = 0; + x->toolbar_widget = 0; x->toolbar_is_packed = false; FRAME_TOOLBAR_TOP_HEIGHT (f) = FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = 0; FRAME_TOOLBAR_LEFT_WIDTH (f) = FRAME_TOOLBAR_RIGHT_WIDTH (f) = 0; @@ -5127,7 +4874,7 @@ free_frame_tool_bar (struct frame *f) NULL); } - xg_height_or_width_changed (f); + adjust_frame_size (f, -1, -1, 2, 0, Qtool_bar_lines); unblock_input (); } @@ -5137,7 +4884,7 @@ void xg_change_toolbar_position (struct frame *f, Lisp_Object pos) { struct x_output *x = f->output_data.x; - GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); + GtkWidget *top_widget = x->toolbar_widget; if (! x->toolbar_widget || ! top_widget) return; @@ -5157,7 +4904,7 @@ xg_change_toolbar_position (struct frame *f, Lisp_Object pos) xg_pack_tool_bar (f, pos); g_object_unref (top_widget); if (xg_update_tool_bar_sizes (f)) - xg_height_or_width_changed (f); + adjust_frame_size (f, -1, -1, 2, 0, Qtool_bar_lines); unblock_input (); } @@ -5181,9 +4928,6 @@ xg_initialize (void) gdpy_def = NULL; xg_ignore_gtk_scrollbar = 0; -#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW - xg_detached_menus = 0; -#endif xg_menu_cb_list.prev = xg_menu_cb_list.next = xg_menu_item_cb_list.prev = xg_menu_item_cb_list.next = 0; diff --git a/src/gtkutil.h b/src/gtkutil.h index 5c7d8b03379..594c7a7382b 100644 --- a/src/gtkutil.h +++ b/src/gtkutil.h @@ -108,8 +108,6 @@ extern void xg_update_frame_menubar (struct frame *f); extern bool xg_event_is_for_menubar (struct frame *, const XEvent *); -extern bool xg_have_tear_offs (struct frame *f); - extern ptrdiff_t xg_get_scroll_id_for_window (Display *dpy, Window wid); extern void xg_create_scroll_bar (struct frame *f, diff --git a/src/image.c b/src/image.c index 804da436ee9..a73a7251753 100644 --- a/src/image.c +++ b/src/image.c @@ -33,6 +33,7 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" #include "frame.h" #include "window.h" +#include "buffer.h" #include "dispextern.h" #include "blockinput.h" #include "systime.h" @@ -3037,13 +3038,16 @@ xbm_load (struct frame *f, struct image *img) + SBYTES (data))); else { + USE_SAFE_ALLOCA; + if (VECTORP (data)) { int i; char *p; int nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR; - p = bits = alloca (nbytes * img->height); + SAFE_NALLOCA (bits, nbytes, img->height); + p = bits; for (i = 0; i < img->height; ++i, p += nbytes) { Lisp_Object line = AREF (data, i); @@ -3064,9 +3068,8 @@ xbm_load (struct frame *f, struct image *img) int nbytes, i; /* Windows mono bitmaps are reversed compared with X. */ invertedBits = bits; - nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR - * img->height; - bits = alloca (nbytes); + nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR; + SAFE_NALLOCA (bits, nbytes, img->height); for (i = 0; i < nbytes; i++) bits[i] = XBM_BIT_SHUFFLE (invertedBits[i]); } @@ -3088,6 +3091,8 @@ xbm_load (struct frame *f, struct image *img) img->spec, Qnil); x_clear_image (f, img); } + + SAFE_FREE (); } } @@ -3494,6 +3499,8 @@ xpm_load (struct frame *f, struct image *img) int rc; XpmAttributes attrs; Lisp_Object specified_file, color_symbols; + USE_SAFE_ALLOCA; + #ifdef HAVE_NTGUI HDC hdc; xpm_XImage * xpm_image = NULL, * xpm_mask = NULL; @@ -3536,7 +3543,7 @@ xpm_load (struct frame *f, struct image *img) { Lisp_Object tail; XpmColorSymbol *xpm_syms; - int i, size; + ptrdiff_t i, size; attrs.valuemask |= XpmColorSymbols; @@ -3546,8 +3553,8 @@ xpm_load (struct frame *f, struct image *img) ++attrs.numsymbols; /* Allocate an XpmColorSymbol array. */ + SAFE_NALLOCA (xpm_syms, 1, attrs.numsymbols); size = attrs.numsymbols * sizeof *xpm_syms; - xpm_syms = alloca (size); memset (xpm_syms, 0, size); attrs.colorsymbols = xpm_syms; @@ -3569,17 +3576,11 @@ xpm_load (struct frame *f, struct image *img) name = XCAR (XCAR (tail)); color = XCDR (XCAR (tail)); if (STRINGP (name)) - { - xpm_syms[i].name = alloca (SCHARS (name) + 1); - strcpy (xpm_syms[i].name, SSDATA (name)); - } + SAFE_ALLOCA_STRING (xpm_syms[i].name, name); else xpm_syms[i].name = empty_string; if (STRINGP (color)) - { - xpm_syms[i].value = alloca (SCHARS (color) + 1); - strcpy (xpm_syms[i].value, SSDATA (color)); - } + SAFE_ALLOCA_STRING (xpm_syms[i].value, color); else xpm_syms[i].value = empty_string; } @@ -3610,6 +3611,7 @@ xpm_load (struct frame *f, struct image *img) #ifdef ALLOC_XPM_COLORS xpm_free_color_cache (); #endif + SAFE_FREE (); return 0; } @@ -3640,6 +3642,7 @@ xpm_load (struct frame *f, struct image *img) #ifdef ALLOC_XPM_COLORS xpm_free_color_cache (); #endif + SAFE_FREE (); return 0; } #ifdef HAVE_NTGUI @@ -3782,6 +3785,7 @@ xpm_load (struct frame *f, struct image *img) #ifdef ALLOC_XPM_COLORS xpm_free_color_cache (); #endif + SAFE_FREE (); return rc == XpmSuccess; } @@ -4291,7 +4295,11 @@ struct ct_color /* Value is a hash of the RGB color given by R, G, and B. */ -#define CT_HASH_RGB(R, G, B) (((R) << 16) ^ ((G) << 8) ^ (B)) +static unsigned +ct_hash_rgb (unsigned r, unsigned g, unsigned b) +{ + return (r << 16) ^ (g << 8) ^ b; +} /* The color hash table. */ @@ -4346,7 +4354,7 @@ free_color_table (void) static unsigned long lookup_rgb_color (struct frame *f, int r, int g, int b) { - unsigned hash = CT_HASH_RGB (r, g, b); + unsigned hash = ct_hash_rgb (r, g, b); int i = hash % CT_SIZE; struct ct_color *p; Display_Info *dpyinfo; @@ -6580,6 +6588,7 @@ jpeg_load_body (struct frame *f, struct image *img, colors generated, and mgr->cinfo.colormap is a two-dimensional array of color indices in the range 0..mgr->cinfo.actual_number_of_colors. No more than 255 colors will be generated. */ + USE_SAFE_ALLOCA; { int i, ir, ig, ib; @@ -6595,7 +6604,7 @@ jpeg_load_body (struct frame *f, struct image *img, a default color, and we don't have to care about which colors can be freed safely, and which can't. */ init_color_table (); - colors = alloca (mgr->cinfo.actual_number_of_colors * sizeof *colors); + SAFE_NALLOCA (colors, 1, mgr->cinfo.actual_number_of_colors); for (i = 0; i < mgr->cinfo.actual_number_of_colors; ++i) { @@ -6638,6 +6647,7 @@ jpeg_load_body (struct frame *f, struct image *img, /* Put ximg into the image. */ image_put_x_image (f, img, ximg, 0); + SAFE_FREE (); return 1; } @@ -8226,6 +8236,12 @@ imagemagick_load_image (struct frame *f, struct image *img, return 0; } + if (MagickGetImageDelay (image_wand) > 0) + img->lisp_data = + Fcons (Qdelay, + Fcons (make_float (MagickGetImageDelay (image_wand) / 100.0), + img->lisp_data)); + if (MagickGetNumberImages (image_wand) > 1) img->lisp_data = Fcons (Qcount, @@ -8585,7 +8601,7 @@ static bool svg_image_p (Lisp_Object object); static bool svg_load (struct frame *f, struct image *img); static bool svg_load_image (struct frame *, struct image *, - unsigned char *, ptrdiff_t); + unsigned char *, ptrdiff_t, char *); /* The symbol `svg' identifying images of this type. */ @@ -8673,6 +8689,7 @@ DEF_IMGLIB_FN (void, rsvg_handle_get_dimensions, (RsvgHandle *, RsvgDimensionDat DEF_IMGLIB_FN (gboolean, rsvg_handle_write, (RsvgHandle *, const guchar *, gsize, GError **)); DEF_IMGLIB_FN (gboolean, rsvg_handle_close, (RsvgHandle *, GError **)); DEF_IMGLIB_FN (GdkPixbuf *, rsvg_handle_get_pixbuf, (RsvgHandle *)); +DEF_IMGLIB_FN (void, rsvg_handle_set_base_uri, (RsvgHandle *, const char *)); DEF_IMGLIB_FN (int, gdk_pixbuf_get_width, (const GdkPixbuf *)); DEF_IMGLIB_FN (int, gdk_pixbuf_get_height, (const GdkPixbuf *)); @@ -8712,6 +8729,7 @@ init_svg_functions (void) LOAD_IMGLIB_FN (library, rsvg_handle_write); LOAD_IMGLIB_FN (library, rsvg_handle_close); LOAD_IMGLIB_FN (library, rsvg_handle_get_pixbuf); + LOAD_IMGLIB_FN (library, rsvg_handle_set_base_uri); LOAD_IMGLIB_FN (gdklib, gdk_pixbuf_get_width); LOAD_IMGLIB_FN (gdklib, gdk_pixbuf_get_height); @@ -8739,6 +8757,7 @@ init_svg_functions (void) #define fn_rsvg_handle_write rsvg_handle_write #define fn_rsvg_handle_close rsvg_handle_close #define fn_rsvg_handle_get_pixbuf rsvg_handle_get_pixbuf +#define fn_rsvg_handle_set_base_uri rsvg_handle_set_base_uri #define fn_gdk_pixbuf_get_width gdk_pixbuf_get_width #define fn_gdk_pixbuf_get_height gdk_pixbuf_get_height @@ -8788,14 +8807,14 @@ svg_load (struct frame *f, struct image *img) return 0; } /* If the file was slurped into memory properly, parse it. */ - success_p = svg_load_image (f, img, contents, size); + success_p = svg_load_image (f, img, contents, size, SSDATA (file)); xfree (contents); } /* Else its not a file, its a lisp object. Load the image from a lisp object rather than a file. */ else { - Lisp_Object data; + Lisp_Object data, original_filename; data = image_spec_value (img->spec, QCdata, NULL); if (!STRINGP (data)) @@ -8803,7 +8822,10 @@ svg_load (struct frame *f, struct image *img) image_error ("Invalid image data `%s'", data, Qnil); return 0; } - success_p = svg_load_image (f, img, SDATA (data), SBYTES (data)); + original_filename = BVAR (current_buffer, filename); + success_p = svg_load_image (f, img, SDATA (data), SBYTES (data), + (NILP (original_filename) ? NULL + : SSDATA (original_filename))); } return success_p; @@ -8820,7 +8842,8 @@ static bool svg_load_image (struct frame *f, /* Pointer to emacs frame structure. */ struct image *img, /* Pointer to emacs image structure. */ unsigned char *contents, /* String containing the SVG XML data to be parsed. */ - ptrdiff_t size) /* Size of data in bytes. */ + ptrdiff_t size, /* Size of data in bytes. */ + char *filename) /* Name of SVG file being loaded. */ { RsvgHandle *rsvg_handle; RsvgDimensionData dimension_data; @@ -8845,6 +8868,12 @@ svg_load_image (struct frame *f, /* Pointer to emacs frame structure. * /* Make a handle to a new rsvg object. */ rsvg_handle = fn_rsvg_handle_new (); + /* Set base_uri for properly handling referenced images (via 'href'). + See rsvg bug 596114 - "image refs are relative to curdir, not .svg file" + (https://bugzilla.gnome.org/show_bug.cgi?id=596114). */ + if (filename) + fn_rsvg_handle_set_base_uri(rsvg_handle, filename); + /* Parse the contents argument and fill in the rsvg_handle. */ fn_rsvg_handle_write (rsvg_handle, contents, size, &err); if (err) goto rsvg_error; diff --git a/src/indent.c b/src/indent.c index 79af42c5f7e..04f5d6cfa4a 100644 --- a/src/indent.c +++ b/src/indent.c @@ -439,7 +439,7 @@ current_column (void) /* With a display table entry, C is displayed as is, and not displayed as \NNN or as ^N. If C is a single-byte character, it takes one column. If C is multi-byte in - an unibyte buffer, it's translated to unibyte, so it + a unibyte buffer, it's translated to unibyte, so it also takes one column. */ ++col; else @@ -2004,6 +2004,8 @@ whether or not it is currently displayed in some window. */) int first_x; bool overshoot_handled = 0; bool disp_string_at_start_p = 0; + ptrdiff_t nlines = XINT (lines); + int vpos_init = 0; itdata = bidi_shelve_cache (); SET_TEXT_POS (pt, PT, PT_BYTE); @@ -2093,18 +2095,31 @@ whether or not it is currently displayed in some window. */) overshoot_handled = 1; } - if (XINT (lines) <= 0) + else if (IT_CHARPOS (it) == PT - 1 + && FETCH_BYTE (PT - 1) == '\n' + && nlines < 0) { - it.vpos = 0; + /* The position we started from was covered by a display + property, so we moved to position before the string, and + backed up one line, because the character at PT - 1 is a + newline. So we need one less line to go up. */ + nlines++; + /* But we still need to record that one line, in order to + return the correct value to the caller. */ + vpos_init = -1; + } + if (nlines <= 0) + { + it.vpos = vpos_init; /* Do this even if LINES is 0, so that we move back to the beginning of the current line as we ought. */ - if (XINT (lines) == 0 || IT_CHARPOS (it) > 0) - move_it_by_lines (&it, max (PTRDIFF_MIN, XINT (lines))); + if (nlines == 0 || IT_CHARPOS (it) > 0) + move_it_by_lines (&it, max (PTRDIFF_MIN, nlines)); } else if (overshoot_handled) { it.vpos = 0; - move_it_by_lines (&it, min (PTRDIFF_MAX, XINT (lines))); + move_it_by_lines (&it, min (PTRDIFF_MAX, nlines)); } else { @@ -2119,13 +2134,13 @@ whether or not it is currently displayed in some window. */) it.vpos = 0; move_it_by_lines (&it, 1); } - if (XINT (lines) > 1) - move_it_by_lines (&it, min (PTRDIFF_MAX, XINT (lines) - 1)); + if (nlines > 1) + move_it_by_lines (&it, min (PTRDIFF_MAX, nlines - 1)); } else { it.vpos = 0; - move_it_by_lines (&it, min (PTRDIFF_MAX, XINT (lines))); + move_it_by_lines (&it, min (PTRDIFF_MAX, nlines)); } } diff --git a/src/insdel.c b/src/insdel.c index 463392dcada..7b4ee3b7b06 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -1202,10 +1202,10 @@ adjust_after_replace (ptrdiff_t from, ptrdiff_t from_byte, /* Update various buffer positions for the new text. */ GAP_SIZE -= len_byte; - ZV += len; Z+= len; + ZV += len; Z += len; ZV_BYTE += len_byte; Z_BYTE += len_byte; GPT += len; GPT_BYTE += len_byte; - if (GAP_SIZE > 0) *(GPT_ADDR) = 0; /* Put an anchor. */ + if (GAP_SIZE > 0) *(GPT_ADDR) = 0; /* Put an anchor. */ if (nchars_del > 0) adjust_markers_for_replace (from, from_byte, nchars_del, nbytes_del, @@ -1228,7 +1228,7 @@ adjust_after_replace (ptrdiff_t from, ptrdiff_t from_byte, if (from < PT) adjust_point (len - nchars_del, len_byte - nbytes_del); - /* As byte combining will decrease Z, we must check this again. */ + /* As byte combining will decrease Z, we must check this again. */ if (Z - GPT < END_UNCHANGED) END_UNCHANGED = Z - GPT; @@ -1599,7 +1599,7 @@ del_range_byte (ptrdiff_t from_byte, ptrdiff_t to_byte, bool prepare) { ptrdiff_t from, to; - /* Make args be valid */ + /* Make args be valid. */ if (from_byte < BEGV_BYTE) from_byte = BEGV_BYTE; if (to_byte > ZV_BYTE) @@ -1681,7 +1681,7 @@ del_range_both (ptrdiff_t from, ptrdiff_t from_byte, /* Delete a range of text, specified both as character positions and byte positions. FROM and TO are character positions, while FROM_BYTE and TO_BYTE are byte positions. - If RET_STRING, the deleted area is returned as a string. */ + If RET_STRING, the deleted area is returned as a string. */ Lisp_Object del_range_2 (ptrdiff_t from, ptrdiff_t from_byte, @@ -1797,9 +1797,11 @@ prepare_to_modify_buffer_1 (ptrdiff_t start, ptrdiff_t end, ptrdiff_t *preserve_ptr) { struct buffer *base_buffer; + Lisp_Object temp; + XSETFASTINT (temp, start); if (!NILP (BVAR (current_buffer, read_only))) - Fbarf_if_buffer_read_only (); + Fbarf_if_buffer_read_only (temp); bset_redisplay (current_buffer); diff --git a/src/intervals.h b/src/intervals.h index 4e7a177140e..bd1f49dc383 100644 --- a/src/intervals.h +++ b/src/intervals.h @@ -197,6 +197,7 @@ set_interval_plist (INTERVAL i, Lisp_Object plist) /* Is this interval writable? Replace later with cache access. */ #define INTERVAL_WRITABLE_P(i) \ (i && (NILP (textget ((i)->plist, Qread_only)) \ + || !NILP (textget ((i)->plist, Qinhibit_read_only)) \ || ((CONSP (Vinhibit_read_only) \ ? !NILP (Fmemq (textget ((i)->plist, Qread_only), \ Vinhibit_read_only)) \ diff --git a/src/keyboard.c b/src/keyboard.c index 084f634cedc..215b6ea3f70 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -133,6 +133,19 @@ static ptrdiff_t this_single_command_key_start; static ptrdiff_t before_command_key_count; static ptrdiff_t before_command_echo_length; +#ifdef HAVE_STACK_OVERFLOW_HANDLING + +/* For longjmp to recover from C stack overflow. */ +sigjmp_buf return_to_command_loop; + +/* Message displayed by Vtop_level when recovering from C stack overflow. */ +static Lisp_Object recover_top_level_message; + +#endif /* HAVE_STACK_OVERFLOW_HANDLING */ + +/* Message normally displayed by Vtop_level. */ +static Lisp_Object regular_top_level_message; + /* For longjmp to where kbd input is being done. */ static sys_jmp_buf getcjmp; @@ -218,7 +231,7 @@ static ptrdiff_t last_point_position; 'volatile' here. */ Lisp_Object internal_last_event_frame; -static Lisp_Object Qx_set_selection, Qhandle_switch_frame; +static Lisp_Object Qgui_set_selection, Qhandle_switch_frame; static Lisp_Object Qhandle_select_window; Lisp_Object QPRIMARY; @@ -257,9 +270,57 @@ static Lisp_Object Qhelp_form_show; /* File in which we write all commands we read. */ static FILE *dribble; -/* Nonzero if input is available. */ +/* True if input is available. */ bool input_pending; +/* True if more input was available last time we read an event. + + Since redisplay can take a significant amount of time and is not + indispensible to perform the user's commands, when input arrives + "too fast", Emacs skips redisplay. More specifically, if the next + command has already been input when we finish the previous command, + we skip the intermediate redisplay. + + This is useful to try and make sure Emacs keeps up with fast input + rates, such as auto-repeating keys. But in some cases, this proves + too conservative: we may end up disabling redisplay for the whole + duration of a key repetition, even though we could afford to + redisplay every once in a while. + + So we "sample" the input_pending flag before running a command and + use *that* value after running the command to decide whether to + skip redisplay or not. This way, we only skip redisplay if we + really can't keep up with the repeat rate. + + This only makes a difference if the next input arrives while running the + command, which is very unlikely if the command is executed quickly. + IOW this tends to avoid skipping redisplay after a long running command + (which is a case where skipping redisplay is not very useful since the + redisplay time is small compared to the time it took to run the command). + + A typical use case is when scrolling. Scrolling time can be split into: + - Time to do jit-lock on the newly displayed portion of buffer. + - Time to run the actual scroll command. + - Time to perform the redisplay. + Jit-lock can happen either during the command or during the redisplay. + In the most painful cases, the jit-lock time is the one that dominates. + Also jit-lock can be tweaked (via jit-lock-defer) to delay its job, at the + cost of temporary inaccuracy in display and scrolling. + So without input_was_pending, what typically happens is the following: + - when the command starts, there's no pending input (yet). + - the scroll command triggers jit-lock. + - during the long jit-lock time the next input arrives. + - at the end of the command, we check input_pending and hence decide to + skip redisplay. + - we read the next input and start over. + End result: all the hard work of jit-locking is "wasted" since redisplay + doesn't actually happens (at least not before the input rate slows down). + With input_was_pending redisplay is still skipped if Emacs can't keep up + with the input rate, but if it can keep up just enough that there's no + input_pending when we begin the command, then redisplay is not skipped + which results in better feedback to the user. */ +static bool input_was_pending; + /* Circular buffer for pre-read keyboard input. */ static struct input_event kbd_buffer[KBD_BUFFER_SIZE]; @@ -490,10 +551,12 @@ kset_system_key_syms (struct kboard *kb, Lisp_Object val) static void echo_add_key (Lisp_Object c) { - int size = KEY_DESCRIPTION_SIZE + 100; - char *buffer = alloca (size); + char initbuf[KEY_DESCRIPTION_SIZE + 100]; + ptrdiff_t size = sizeof initbuf; + char *buffer = initbuf; char *ptr = buffer; Lisp_Object echo_string; + USE_SAFE_ALLOCA; echo_string = KVAR (current_kboard, echo_string); @@ -505,13 +568,13 @@ echo_add_key (Lisp_Object c) else if (SYMBOLP (c)) { Lisp_Object name = SYMBOL_NAME (c); - int nbytes = SBYTES (name); + ptrdiff_t nbytes = SBYTES (name); if (size - (ptr - buffer) < nbytes) { - int offset = ptr - buffer; + ptrdiff_t offset = ptr - buffer; size = max (2 * size, size + nbytes); - buffer = alloca (size); + buffer = SAFE_ALLOCA (size); ptr = buffer + offset; } @@ -522,14 +585,14 @@ echo_add_key (Lisp_Object c) if ((NILP (echo_string) || SCHARS (echo_string) == 0) && help_char_p (c)) { - const char *text = " (Type ? for further options)"; - int len = strlen (text); + static const char text[] = " (Type ? for further options)"; + int len = sizeof text - 1; if (size - (ptr - buffer) < len) { - int offset = ptr - buffer; + ptrdiff_t offset = ptr - buffer; size += len; - buffer = alloca (size); + buffer = SAFE_ALLOCA (size); ptr = buffer + offset; } @@ -539,6 +602,7 @@ echo_add_key (Lisp_Object c) /* Replace a dash from echo_dash with a space, otherwise add a space at the end as a separator between keys. */ + AUTO_STRING (space, " "); if (STRINGP (echo_string) && SCHARS (echo_string) > 1) { Lisp_Object last_char, prev_char, idx; @@ -554,14 +618,15 @@ echo_add_key (Lisp_Object c) if (XINT (last_char) == '-' && XINT (prev_char) != ' ') Faset (echo_string, idx, make_number (' ')); else - echo_string = concat2 (echo_string, build_string (" ")); + echo_string = concat2 (echo_string, space); } else if (STRINGP (echo_string) && SCHARS (echo_string) > 0) - echo_string = concat2 (echo_string, build_string (" ")); + echo_string = concat2 (echo_string, space); kset_echo_string (current_kboard, concat2 (echo_string, make_string (buffer, ptr - buffer))); + SAFE_FREE (); } /* Add C to the echo string, if echoing is going on. C can be a @@ -617,9 +682,9 @@ echo_dash (void) /* Put a dash at the end of the buffer temporarily, but make it go away when the next character is added. */ - kset_echo_string - (current_kboard, - concat2 (KVAR (current_kboard, echo_string), build_string ("-"))); + AUTO_STRING (dash, "-"); + kset_echo_string (current_kboard, + concat2 (KVAR (current_kboard, echo_string), dash)); echo_now (); } @@ -1112,7 +1177,7 @@ Default value of `command-error-function'. */) { print_error_message (data, Qexternal_debugging_output, SSDATA (context), signal); - Fterpri (Qexternal_debugging_output); + Fterpri (Qexternal_debugging_output, Qnil); Fkill_emacs (make_number (-1)); } else @@ -1137,6 +1202,17 @@ static Lisp_Object top_level_1 (Lisp_Object); Lisp_Object command_loop (void) { +#ifdef HAVE_STACK_OVERFLOW_HANDLING + /* At least on GNU/Linux, saving signal mask is important here. */ + if (sigsetjmp (return_to_command_loop, 1) != 0) + { + /* Comes here from handle_sigsegv, see sysdep.c. */ + init_eval (); + Vinternal__top_level_message = recover_top_level_message; + } + else + Vinternal__top_level_message = regular_top_level_message; +#endif /* HAVE_STACK_OVERFLOW_HANDLING */ if (command_loop_level > 0 || minibuf_level > 0) { Lisp_Object val; @@ -1261,13 +1337,9 @@ tracking_off (Lisp_Object old_value) } } -DEFUN ("track-mouse", Ftrack_mouse, Strack_mouse, 0, UNEVALLED, 0, - doc: /* Evaluate BODY with mouse movement events enabled. -Within a `track-mouse' form, mouse motion generates input events that -you can read with `read-event'. -Normally, mouse motion is ignored. -usage: (track-mouse BODY...) */) - (Lisp_Object args) +DEFUN ("internal--track-mouse", Ftrack_mouse, Strack_mouse, 1, 1, 0, + doc: /* Call BODYFUN with mouse movement events enabled. */) + (Lisp_Object bodyfun) { ptrdiff_t count = SPECPDL_INDEX (); Lisp_Object val; @@ -1276,7 +1348,7 @@ usage: (track-mouse BODY...) */) do_mouse_tracking = Qt; - val = Fprogn (args); + val = call0 (bodyfun); return unbind_to (count, val); } @@ -1513,6 +1585,13 @@ command_loop_1 (void) /* Execute the command. */ + { + total_keys += total_keys < NUM_RECENT_KEYS; + ASET (recent_keys, recent_keys_index, + Fcons (Qnil, cmd)); + if (++recent_keys_index >= NUM_RECENT_KEYS) + recent_keys_index = 0; + } Vthis_command = cmd; Vreal_this_command = cmd; safe_run_hooks (Qpre_command_hook); @@ -1632,7 +1711,7 @@ command_loop_1 (void) = call1 (Fsymbol_value (Qregion_extract_function), Qnil); if (XINT (Flength (txt)) > 0) /* Don't set empty selections. */ - call2 (Qx_set_selection, QPRIMARY, txt); + call2 (Qgui_set_selection, QPRIMARY, txt); } if (current_buffer != prev_buffer || MODIFF != prev_modiff) @@ -1855,30 +1934,27 @@ adjust_point_for_property (ptrdiff_t last_pt, bool modified) } } -/* Subroutine for safe_run_hooks: run the hook HOOK. */ +/* Subroutine for safe_run_hooks: run the hook, which is ARGS[1]. */ static Lisp_Object -safe_run_hooks_1 (void) +safe_run_hooks_1 (ptrdiff_t nargs, Lisp_Object *args) { - eassert (CONSP (Vinhibit_quit)); - return call0 (XCDR (Vinhibit_quit)); + eassert (nargs == 2); + return call0 (args[1]); } /* Subroutine for safe_run_hooks: handle an error by clearing out the function from the hook. */ static Lisp_Object -safe_run_hooks_error (Lisp_Object error_data) +safe_run_hooks_error (Lisp_Object error, ptrdiff_t nargs, Lisp_Object *args) { - Lisp_Object hook - = CONSP (Vinhibit_quit) ? XCAR (Vinhibit_quit) : Vinhibit_quit; - Lisp_Object fun = CONSP (Vinhibit_quit) ? XCDR (Vinhibit_quit) : Qnil; - Lisp_Object args[4]; - args[0] = build_string ("Error in %s (%S): %S"); - args[1] = hook; - args[2] = fun; - args[3] = error_data; - Fmessage (4, args); + eassert (nargs == 2); + AUTO_STRING (format, "Error in %s (%S): %S"); + Lisp_Object hook = args[0]; + Lisp_Object fun = args[1]; + Fmessage (4, (Lisp_Object []) {format, hook, fun, error}); + if (SYMBOLP (hook)) { Lisp_Object val; @@ -1910,13 +1986,14 @@ safe_run_hooks_error (Lisp_Object error_data) static Lisp_Object safe_run_hook_funcall (ptrdiff_t nargs, Lisp_Object *args) { - eassert (nargs == 1); - if (CONSP (Vinhibit_quit)) - XSETCDR (Vinhibit_quit, args[0]); - else - Vinhibit_quit = Fcons (Vinhibit_quit, args[0]); + Lisp_Object iargs[2]; - internal_condition_case (safe_run_hooks_1, Qt, safe_run_hooks_error); + eassert (nargs == 2); + /* Yes, run_hook_with_args works this way. */ + iargs[0] = args[1]; + iargs[1] = args[0]; + internal_condition_case_n (safe_run_hooks_1, 2, iargs, + Qt, safe_run_hooks_error); return Qnil; } @@ -1927,15 +2004,18 @@ safe_run_hook_funcall (ptrdiff_t nargs, Lisp_Object *args) void safe_run_hooks (Lisp_Object hook) { - /* FIXME: our `internal_condition_case' does not provide any way to pass data - to its body or to its handlers other than via globals such as - dynamically-bound variables ;-) */ + Lisp_Object args[2]; + struct gcpro gcpro1; ptrdiff_t count = SPECPDL_INDEX (); - specbind (Qinhibit_quit, hook); - run_hook_with_args (1, &hook, safe_run_hook_funcall); + args[0] = hook; + args[1] = hook; + GCPRO1 (hook); + specbind (Qinhibit_quit, Qt); + run_hook_with_args (2, args, safe_run_hook_funcall); unbind_to (count, Qnil); + UNGCPRO; } @@ -2324,15 +2404,16 @@ read_decoded_event_from_main_queue (struct timespec *end_time, { /* An encoded byte sequence, let's try to decode it. */ struct coding_system *coding = TERMINAL_KEYBOARD_CODING (terminal); - unsigned char *src = alloca (n); + unsigned char src[MAX_ENCODED_BYTES]; + unsigned char dest[MAX_ENCODED_BYTES * MAX_MULTIBYTE_LENGTH]; int i; for (i = 0; i < n; i++) src[i] = XINT (events[i]); if (meta_key != 2) for (i = 0; i < n; i++) src[i] &= ~0x80; - coding->destination = alloca (n * 4); - coding->dst_bytes = n * 4; + coding->destination = dest; + coding->dst_bytes = sizeof dest; decode_coding_c_string (coding, src, n, Qnil); eassert (coding->produced_char <= n); if (coding->produced_char == 0) @@ -2373,9 +2454,9 @@ echo_keystrokes_p (void) /* commandflag 0 means do not autosave, but do redisplay. -1 means do not redisplay, but do autosave. -2 means do neither. - 1 means do both. */ + 1 means do both. -/* The argument MAP is a keymap for menu prompting. + The argument MAP is a keymap for menu prompting. PREV_EVENT is the previous input event, or nil if we are reading the first event of a key sequence (or not reading a key sequence). @@ -2552,11 +2633,13 @@ read_char (int commandflag, Lisp_Object map, user-visible, such as X selection_request events. */ if (input_pending || detect_input_pending_run_timers (0)) - swallow_events (0); /* May clear input_pending. */ + swallow_events (false); /* May clear input_pending. */ /* Redisplay if no pending input. */ - while (!input_pending) + while (!(input_pending + && (input_was_pending || !redisplay_dont_pause))) { + input_was_pending = input_pending; if (help_echo_showing_p && !EQ (selected_window, minibuf_window)) redisplay_preserve_echo_area (5); else @@ -2568,7 +2651,7 @@ read_char (int commandflag, Lisp_Object map, /* Input arrived and pre-empted redisplay. Process any events which are not user-visible. */ - swallow_events (0); + swallow_events (false); /* If that cleared input_pending, try again to redisplay. */ } @@ -3225,6 +3308,7 @@ read_char (int commandflag, Lisp_Object map, exit: RESUME_POLLING; + input_was_pending = input_pending; RETURN_UNGCPRO (c); } @@ -3472,7 +3556,8 @@ readable_events (int flags) && event->part == scroll_bar_handle && event->modifiers == 0) #endif - ) + && !((flags & READABLE_EVENTS_FILTER_EVENTS) + && event->kind == BUFFER_SWITCH_EVENT)) return 1; event++; if (event == kbd_buffer + KBD_BUFFER_SIZE) @@ -3701,6 +3786,34 @@ kbd_buffer_unget_event (register struct input_event *event) } } +/* Limit help event positions to this range, to avoid overflow problems. */ +#define INPUT_EVENT_POS_MAX \ + ((ptrdiff_t) min (PTRDIFF_MAX, min (TYPE_MAXIMUM (Time) / 2, \ + MOST_POSITIVE_FIXNUM))) +#define INPUT_EVENT_POS_MIN (-1 - INPUT_EVENT_POS_MAX) + +/* Return a Time that encodes position POS. POS must be in range. */ + +static Time +position_to_Time (ptrdiff_t pos) +{ + eassert (INPUT_EVENT_POS_MIN <= pos && pos <= INPUT_EVENT_POS_MAX); + return pos; +} + +/* Return the position that ENCODED_POS encodes. + Avoid signed integer overflow. */ + +static ptrdiff_t +Time_to_position (Time encoded_pos) +{ + if (encoded_pos <= INPUT_EVENT_POS_MAX) + return encoded_pos; + Time encoded_pos_min = INPUT_EVENT_POS_MIN; + eassert (encoded_pos_min <= encoded_pos); + ptrdiff_t notpos = -1 - encoded_pos; + return -1 - notpos; +} /* Generate a HELP_EVENT input_event and store it in the keyboard buffer. @@ -3719,14 +3832,12 @@ gen_help_event (Lisp_Object help, Lisp_Object frame, Lisp_Object window, { struct input_event event; - EVENT_INIT (event); - event.kind = HELP_EVENT; event.frame_or_window = frame; event.arg = object; event.x = WINDOWP (window) ? window : frame; event.y = help; - event.code = pos; + event.timestamp = position_to_Time (pos); kbd_buffer_store_event (&event); } @@ -3743,7 +3854,7 @@ kbd_buffer_store_help_event (Lisp_Object frame, Lisp_Object help) event.arg = Qnil; event.x = Qnil; event.y = help; - event.code = 0; + event.timestamp = 0; kbd_buffer_store_event (&event); } @@ -3821,7 +3932,7 @@ kbd_buffer_get_event (KBOARD **kbp, Lisp_Object obj; #ifdef subprocesses - if (kbd_on_hold_p () && kbd_buffer_nr_stored () < KBD_BUFFER_SIZE/4) + if (kbd_on_hold_p () && kbd_buffer_nr_stored () < KBD_BUFFER_SIZE / 4) { /* Start reading input again because we have processed enough to be able to accept new events again. */ @@ -4058,7 +4169,7 @@ kbd_buffer_get_event (KBOARD **kbp, frame = event->frame_or_window; object = event->arg; - position = make_number (event->code); + position = make_number (Time_to_position (event->timestamp)); window = event->x; help = event->y; clear_event (event); @@ -4327,7 +4438,7 @@ swallow_events (bool do_display) old_timers_run = timers_run; get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW); - if (timers_run != old_timers_run && do_display) + if (!input_pending && timers_run != old_timers_run && do_display) redisplay_preserve_echo_area (7); } @@ -4386,9 +4497,15 @@ decode_timer (Lisp_Object timer, struct timespec *result) vector = XVECTOR (timer)->contents; if (! NILP (vector[0])) return 0; + if (! INTEGERP (vector[2])) + return false; - return decode_time_components (vector[1], vector[2], vector[3], vector[8], - result, 0); + struct lisp_time t; + if (! decode_time_components (vector[1], vector[2], vector[3], vector[8], + &t, 0)) + return false; + *result = lisp_to_timespec (t); + return timespec_valid_p (*result); } @@ -5181,13 +5298,15 @@ static const char *const lispy_drag_n_drop_names[] = static Lisp_Object Qabove_handle, Qhandle, Qbelow_handle; static Lisp_Object Qbefore_handle, Qhorizontal_handle, Qafter_handle; Lisp_Object Qup, Qdown, Qtop, Qbottom; -Lisp_Object Qleft, Qright, Qleftmost, Qrightmost; +static Lisp_Object Qleftmost, Qrightmost; static Lisp_Object Qend_scroll; static Lisp_Object Qratio; -/* An array of scroll bar parts, indexed by an enum scroll_bar_part value. */ +/* An array of scroll bar parts, indexed by an enum scroll_bar_part value. + Note that Qnil corresponds to scroll_bar_nowhere and should not appear + in Lisp events. */ static Lisp_Object *const scroll_bar_parts[] = { - &Qabove_handle, &Qhandle, &Qbelow_handle, + &Qnil, &Qabove_handle, &Qhandle, &Qbelow_handle, &Qup, &Qdown, &Qtop, &Qbottom, &Qend_scroll, &Qratio, &Qbefore_handle, &Qhorizontal_handle, &Qafter_handle, &Qleft, &Qright, &Qleftmost, &Qrightmost, &Qend_scroll, &Qratio @@ -5294,12 +5413,14 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, &object, &dx, &dy, &width, &height); if (STRINGP (string)) string_info = Fcons (string, make_number (charpos)); + xret = wx; yret = wy - WINDOW_HEADER_LINE_HEIGHT (w); } else if (part == ON_LEFT_FRINGE) { posn = Qleft_fringe; col = 0; + xret = wx; dx = wx - (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? 0 : window_box_width (w, LEFT_MARGIN_AREA)); @@ -5309,6 +5430,7 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, { posn = Qright_fringe; col = 0; + xret = wx; dx = wx - window_box_width (w, LEFT_MARGIN_AREA) - window_box_width (w, TEXT_AREA) @@ -5322,9 +5444,23 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, posn = Qvertical_line; width = 1; dx = 0; + xret = wx; + dy = yret = wy; + } + else if (part == ON_VERTICAL_SCROLL_BAR) + { + posn = Qvertical_scroll_bar; + width = WINDOW_SCROLL_BAR_AREA_WIDTH (w); + dx = xret = wx; + dy = yret = wy; + } + else if (part == ON_HORIZONTAL_SCROLL_BAR) + { + posn = Qhorizontal_scroll_bar; + width = WINDOW_SCROLL_BAR_AREA_HEIGHT (w); + dx = xret = wx; dy = yret = wy; } - /* Nothing special for part == ON_SCROLL_BAR. */ else if (part == ON_RIGHT_DIVIDER) { posn = Qright_divider; @@ -5408,7 +5544,12 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, extra_info))); } else if (f != 0) - XSETFRAME (window, f); + { + /* Return mouse pixel coordinates here. */ + XSETFRAME (window, f); + xret = XINT (x); + yret = XINT (y); + } else window = Qnil; @@ -5434,6 +5575,16 @@ toolkit_menubar_in_use (struct frame *f) #endif } +/* Build the part of Lisp event which represents scroll bar state from + EV. TYPE is one of Qvertical_scroll_bar or Qhorizontal_scroll_bar. */ + +static Lisp_Object +make_scroll_bar_position (struct input_event *ev, Lisp_Object type) +{ + return list5 (ev->frame_or_window, type, Fcons (ev->x, ev->y), + make_number (ev->timestamp), *scroll_bar_parts[ev->part]); +} + /* Given a struct input_event, build the lisp event which represents it. If EVENT is 0, build a mouse movement event from the mouse movement buffer, which should have a movement event in it. @@ -5522,30 +5673,27 @@ make_lispy_event (struct input_event *event) ARRAYELTS (iso_lispy_function_keys)); #endif - /* Handle system-specific or unknown keysyms. */ - if (event->code & (1 << 28) - || event->code - FUNCTION_KEY_OFFSET < 0 - || (event->code - FUNCTION_KEY_OFFSET - >= ARRAYELTS (lispy_function_keys)) - || !lispy_function_keys[event->code - FUNCTION_KEY_OFFSET]) - { - /* We need to use an alist rather than a vector as the cache - since we can't make a vector long enough. */ - if (NILP (KVAR (current_kboard, system_key_syms))) - kset_system_key_syms (current_kboard, Fcons (Qnil, Qnil)); - return modify_event_symbol (event->code, - event->modifiers, - Qfunction_key, - KVAR (current_kboard, Vsystem_key_alist), - 0, &KVAR (current_kboard, system_key_syms), - PTRDIFF_MAX); - } + if ((FUNCTION_KEY_OFFSET <= event->code + && (event->code + < FUNCTION_KEY_OFFSET + ARRAYELTS (lispy_function_keys))) + && lispy_function_keys[event->code - FUNCTION_KEY_OFFSET]) + return modify_event_symbol (event->code - FUNCTION_KEY_OFFSET, + event->modifiers, + Qfunction_key, Qnil, + lispy_function_keys, &func_key_syms, + ARRAYELTS (lispy_function_keys)); - return modify_event_symbol (event->code - FUNCTION_KEY_OFFSET, + /* Handle system-specific or unknown keysyms. + We need to use an alist rather than a vector as the cache + since we can't make a vector long enough. */ + if (NILP (KVAR (current_kboard, system_key_syms))) + kset_system_key_syms (current_kboard, Fcons (Qnil, Qnil)); + return modify_event_symbol (event->code, event->modifiers, - Qfunction_key, Qnil, - lispy_function_keys, &func_key_syms, - ARRAYELTS (lispy_function_keys)); + Qfunction_key, + KVAR (current_kboard, Vsystem_key_alist), + 0, &KVAR (current_kboard, system_key_syms), + PTRDIFF_MAX); #ifdef HAVE_NTGUI case MULTIMEDIA_KEY_EVENT: @@ -5651,20 +5799,8 @@ make_lispy_event (struct input_event *event) } #ifndef USE_TOOLKIT_SCROLL_BARS else - { - /* It's a scrollbar click. */ - Lisp_Object window; - Lisp_Object portion_whole; - Lisp_Object part; - - window = event->frame_or_window; - portion_whole = Fcons (event->x, event->y); - part = *scroll_bar_parts[(int) event->part]; - - position = list5 (window, Qvertical_scroll_bar, - portion_whole, make_number (event->timestamp), - part); - } + /* It's a scrollbar click. */ + position = make_scroll_bar_position (event, Qvertical_scroll_bar); #endif /* not USE_TOOLKIT_SCROLL_BARS */ if (button >= ASIZE (button_down_location)) @@ -5941,14 +6077,9 @@ make_lispy_event (struct input_event *event) case SCROLL_BAR_CLICK_EVENT: { - Lisp_Object position, head, window, portion_whole, part; + Lisp_Object position, head; - window = event->frame_or_window; - portion_whole = Fcons (event->x, event->y); - part = *scroll_bar_parts[(int) event->part]; - - position = list5 (window, Qvertical_scroll_bar, portion_whole, - make_number (event->timestamp), part); + position = make_scroll_bar_position (event, Qvertical_scroll_bar); /* Always treat scroll bar events as clicks. */ event->modifiers |= click_modifier; @@ -5971,14 +6102,9 @@ make_lispy_event (struct input_event *event) case HORIZONTAL_SCROLL_BAR_CLICK_EVENT: { - Lisp_Object position, head, window, portion_whole, part; + Lisp_Object position, head; - window = event->frame_or_window; - portion_whole = Fcons (event->x, event->y); - part = *scroll_bar_parts[(int) event->part]; - - position = list5 (window, Qhorizontal_scroll_bar, portion_whole, - make_number (event->timestamp), part); + position = make_scroll_bar_position (event, Qhorizontal_scroll_bar); /* Always treat scroll bar events as clicks. */ event->modifiers |= click_modifier; @@ -7428,11 +7554,14 @@ menu_bar_items (Lisp_Object old) in the current keymaps, or nil where it is not a prefix. */ Lisp_Object *maps; + Lisp_Object mapsbuf[3]; Lisp_Object def, tail; ptrdiff_t mapno; Lisp_Object oquit; + USE_SAFE_ALLOCA; + /* In order to build the menus, we need to call the keymap accessors. They all call QUIT. But this function is called during redisplay, during which a quit is fatal. So inhibit @@ -7461,7 +7590,7 @@ menu_bar_items (Lisp_Object old) && !NILP (Voverriding_local_map)) { /* Yes, use them (if non-nil) as well as the global map. */ - maps = alloca (3 * sizeof (maps[0])); + maps = mapsbuf; nmaps = 0; if (!NILP (KVAR (current_kboard, Voverriding_terminal_local_map))) maps[nmaps++] = KVAR (current_kboard, Voverriding_terminal_local_map); @@ -7478,7 +7607,7 @@ menu_bar_items (Lisp_Object old) Lisp_Object tem; ptrdiff_t nminor; nminor = current_minor_maps (NULL, &tmaps); - maps = alloca ((nminor + 4) * sizeof *maps); + SAFE_NALLOCA (maps, 1, nminor + 4); nmaps = 0; tem = KVAR (current_kboard, Voverriding_terminal_local_map); if (!NILP (tem) && !NILP (Voverriding_local_map_menu_flag)) @@ -7550,6 +7679,7 @@ menu_bar_items (Lisp_Object old) } Vinhibit_quit = oquit; + SAFE_FREE (); return menu_bar_items_vector; } @@ -7865,11 +7995,12 @@ parse_menu_item (Lisp_Object item, int inmenubar) { /* This is a command. See if there is an equivalent key binding. */ Lisp_Object keyeq = AREF (item_properties, ITEM_PROPERTY_KEYEQ); + AUTO_STRING (space_space, " "); /* The previous code preferred :key-sequence to :keys, so we preserve this behavior. */ if (STRINGP (keyeq) && !CONSP (keyhint)) - keyeq = concat2 (build_string (" "), Fsubstitute_command_keys (keyeq)); + keyeq = concat2 (space_space, Fsubstitute_command_keys (keyeq)); else { Lisp_Object prefix = keyeq; @@ -7912,8 +8043,7 @@ parse_menu_item (Lisp_Object item, int inmenubar) if (STRINGP (XCDR (prefix))) tem = concat2 (tem, XCDR (prefix)); } - keyeq = concat2 (build_string (" "), tem); - /* keyeq = concat3(build_string(" ("),tem,build_string(")")); */ + keyeq = concat2 (space_space, tem); } else keyeq = Qnil; @@ -7986,9 +8116,11 @@ Lisp_Object tool_bar_items (Lisp_Object reuse, int *nitems) { Lisp_Object *maps; + Lisp_Object mapsbuf[3]; ptrdiff_t nmaps, i; Lisp_Object oquit; Lisp_Object *tmaps; + USE_SAFE_ALLOCA; *nitems = 0; @@ -8012,7 +8144,7 @@ tool_bar_items (Lisp_Object reuse, int *nitems) && !NILP (Voverriding_local_map)) { /* Yes, use them (if non-nil) as well as the global map. */ - maps = alloca (3 * sizeof *maps); + maps = mapsbuf; nmaps = 0; if (!NILP (KVAR (current_kboard, Voverriding_terminal_local_map))) maps[nmaps++] = KVAR (current_kboard, Voverriding_terminal_local_map); @@ -8029,7 +8161,7 @@ tool_bar_items (Lisp_Object reuse, int *nitems) Lisp_Object tem; ptrdiff_t nminor; nminor = current_minor_maps (NULL, &tmaps); - maps = alloca ((nminor + 4) * sizeof *maps); + SAFE_NALLOCA (maps, 1, nminor + 4); nmaps = 0; tem = KVAR (current_kboard, Voverriding_terminal_local_map); if (!NILP (tem) && !NILP (Voverriding_local_map_menu_flag)) @@ -8058,6 +8190,7 @@ tool_bar_items (Lisp_Object reuse, int *nitems) Vinhibit_quit = oquit; *nitems = ntool_bar_items / TOOL_BAR_ITEM_NSLOTS; + SAFE_FREE (); return tool_bar_items_vector; } @@ -8496,7 +8629,7 @@ static Lisp_Object read_char_minibuf_menu_prompt (int commandflag, Lisp_Object map) { - register Lisp_Object name; + Lisp_Object name; ptrdiff_t nlength; /* FIXME: Use the minibuffer's frame width. */ ptrdiff_t width = FRAME_COLS (SELECTED_FRAME ()) - 4; @@ -8614,10 +8747,14 @@ read_char_minibuf_menu_prompt (int commandflag, /* Insert button prefix. */ Lisp_Object selected = AREF (item_properties, ITEM_PROPERTY_SELECTED); + AUTO_STRING (radio_yes, "(*) "); + AUTO_STRING (radio_no , "( ) "); + AUTO_STRING (check_yes, "[X] "); + AUTO_STRING (check_no , "[ ] "); if (EQ (tem, QCradio)) - tem = build_string (NILP (selected) ? "(*) " : "( ) "); + tem = NILP (selected) ? radio_yes : radio_no; else - tem = build_string (NILP (selected) ? "[X] " : "[ ] "); + tem = NILP (selected) ? check_yes : check_no; s = concat2 (tem, s); } @@ -10000,23 +10137,34 @@ If CHECK-TIMERS is non-nil, timers that are ready to run will do so. */) ? Qt : Qnil); } -DEFUN ("recent-keys", Frecent_keys, Srecent_keys, 0, 0, 0, - doc: /* Return vector of last 300 events, not counting those from keyboard macros. */) - (void) +DEFUN ("recent-keys", Frecent_keys, Srecent_keys, 0, 1, 0, + doc: /* Return vector of last few events, not counting those from keyboard macros. +If INCLUDE-CMDS is non-nil, include the commands that were run, +represented as events of the form (nil . COMMAND). */) + (Lisp_Object include_cmds) { - Lisp_Object *keys = XVECTOR (recent_keys)->contents; - Lisp_Object val; + bool cmds = !NILP (include_cmds); - if (total_keys < NUM_RECENT_KEYS) - return Fvector (total_keys, keys); + if (!total_keys + || (cmds && total_keys < NUM_RECENT_KEYS)) + return Fvector (total_keys, + XVECTOR (recent_keys)->contents); else { - val = Fvector (NUM_RECENT_KEYS, keys); - vcopy (val, 0, keys + recent_keys_index, - NUM_RECENT_KEYS - recent_keys_index); - vcopy (val, NUM_RECENT_KEYS - recent_keys_index, - keys, recent_keys_index); - return val; + Lisp_Object es = Qnil; + int i = (total_keys < NUM_RECENT_KEYS + ? 0 : recent_keys_index); + eassert (recent_keys_index < NUM_RECENT_KEYS); + do + { + Lisp_Object e = AREF (recent_keys, i); + if (cmds || !CONSP (e) || !NILP (XCAR (e))) + es = Fcons (e, es); + if (++i >= NUM_RECENT_KEYS) + i = 0; + } while (i != recent_keys_index); + es = Fnreverse (es); + return Fvconcat (1, &es); } } @@ -10239,8 +10387,9 @@ On such systems, Emacs starts a subshell instead of suspending. */) with a window system; but suspend should be disabled in that case. */ get_tty_size (fileno (CURTTY ()->input), &width, &height); if (width != old_width || height != old_height) - change_frame_size (SELECTED_FRAME (), width, height - - FRAME_MENU_BAR_LINES (SELECTED_FRAME ()), 0, 0, 0, 0); + change_frame_size (SELECTED_FRAME (), width, + height - FRAME_MENU_BAR_LINES (SELECTED_FRAME ()), + 0, 0, 0, 0); /* Run suspend-resume-hook. */ hook = intern ("suspend-resume-hook"); @@ -10323,7 +10472,7 @@ static void handle_interrupt_signal (int sig) { /* See if we have an active terminal on our controlling tty. */ - struct terminal *terminal = get_named_tty ("/dev/tty"); + struct terminal *terminal = get_named_terminal ("/dev/tty"); if (!terminal) { /* If there are no frames there, let's pretend that we are a @@ -10377,7 +10526,7 @@ handle_interrupt (bool in_signal_handler) cancel_echoing (); /* XXX This code needs to be revised for multi-tty support. */ - if (!NILP (Vquit_flag) && get_named_tty ("/dev/tty")) + if (!NILP (Vquit_flag) && get_named_terminal ("/dev/tty")) { if (! in_signal_handler) { @@ -10589,9 +10738,10 @@ Emacs reads input in CBREAK mode; see `set-input-interrupt-mode'. See also `current-input-mode'. */) (Lisp_Object flow, Lisp_Object terminal) { - struct terminal *t = get_terminal (terminal, 1); + struct terminal *t = decode_tty_terminal (terminal); struct tty_display_info *tty; - if (t == NULL || (t->type != output_termcap && t->type != output_msdos_raw)) + + if (!t) return Qnil; tty = t->display_info.tty; @@ -10631,11 +10781,11 @@ the currently selected frame. See also `current-input-mode'. */) (Lisp_Object meta, Lisp_Object terminal) { - struct terminal *t = get_terminal (terminal, 1); + struct terminal *t = decode_tty_terminal (terminal); struct tty_display_info *tty; int new_meta; - if (t == NULL || (t->type != output_termcap && t->type != output_msdos_raw)) + if (!t) return Qnil; tty = t->display_info.tty; @@ -10672,9 +10822,10 @@ process. See also `current-input-mode'. */) (Lisp_Object quit) { - struct terminal *t = get_named_tty ("/dev/tty"); + struct terminal *t = get_named_terminal ("/dev/tty"); struct tty_display_info *tty; - if (t == NULL || (t->type != output_termcap && t->type != output_msdos_raw)) + + if (!t) return Qnil; tty = t->display_info.tty; @@ -11017,6 +11168,15 @@ syms_of_keyboard (void) Vlispy_mouse_stem = build_pure_c_string ("mouse"); staticpro (&Vlispy_mouse_stem); + regular_top_level_message = build_pure_c_string ("Back to top level"); +#ifdef HAVE_STACK_OVERFLOW_HANDLING + recover_top_level_message + = build_pure_c_string ("Re-entering top level after C stack overflow"); +#endif + DEFVAR_LISP ("internal--top-level-message", Vinternal__top_level_message, + doc: /* Message displayed by `normal-top-level'. */); + Vinternal__top_level_message = regular_top_level_message; + /* Tool-bars. */ DEFSYM (QCimage, ":image"); DEFSYM (Qhelp_echo, "help-echo"); @@ -11111,7 +11271,7 @@ syms_of_keyboard (void) DEFSYM (Qpolling_period, "polling-period"); - DEFSYM (Qx_set_selection, "x-set-selection"); + DEFSYM (Qgui_set_selection, "gui-set-selection"); DEFSYM (QPRIMARY, "PRIMARY"); DEFSYM (Qhandle_switch_frame, "handle-switch-frame"); DEFSYM (Qhandle_select_window, "handle-select-window"); @@ -11789,7 +11949,7 @@ keys_of_keyboard (void) - we enter the second prompt. current-prefix-arg is non-nil, prefix-arg is nil. - before running the first real event, we run the special iconify-frame - event, but we pass the `special' arg to execute-command so + event, but we pass the `special' arg to command-execute so current-prefix-arg and prefix-arg are left untouched. - here we foolishly copy the non-nil current-prefix-arg to prefix-arg. - the next key event will have a spuriously non-nil current-prefix-arg. */ diff --git a/src/keymap.c b/src/keymap.c index f4dd644aebd..c7c7d196c22 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -1299,11 +1299,8 @@ define_as_prefix (Lisp_Object keymap, Lisp_Object c) static Lisp_Object append_key (Lisp_Object key_sequence, Lisp_Object key) { - Lisp_Object args[2]; - - args[0] = key_sequence; - args[1] = list1 (key); - return Fvconcat (2, args); + AUTO_LIST1 (key_list, key); + return Fvconcat (2, ((Lisp_Object []) { key_sequence, key_list })); } /* Given a event type C which is a symbol, @@ -1342,7 +1339,8 @@ silly_event_symbol_error (Lisp_Object c) *p = 0; c = reorder_modifiers (c); - keystring = concat2 (build_string (new_mods), XCDR (assoc)); + AUTO_STRING (new_mods_string, new_mods); + keystring = concat2 (new_mods_string, XCDR (assoc)); error ("To bind the key %s, use [?%s], not [%s]", SDATA (SYMBOL_NAME (c)), SDATA (keystring), @@ -2239,14 +2237,19 @@ Optional argument NO-ANGLES non-nil means don't put angle brackets around function keys and event symbols. */) (Lisp_Object key, Lisp_Object no_angles) { + USE_SAFE_ALLOCA; + if (CONSP (key) && lucid_event_type_list_p (key)) key = Fevent_convert_list (key); if (CONSP (key) && INTEGERP (XCAR (key)) && INTEGERP (XCDR (key))) /* An interval from a map-char-table. */ - return concat3 (Fsingle_key_description (XCAR (key), no_angles), - build_string (".."), - Fsingle_key_description (XCDR (key), no_angles)); + { + AUTO_STRING (dot_dot, ".."); + return concat3 (Fsingle_key_description (XCAR (key), no_angles), + dot_dot, + Fsingle_key_description (XCDR (key), no_angles)); + } key = EVENT_HEAD (key); @@ -2262,7 +2265,6 @@ around function keys and event symbols. */) if (NILP (no_angles)) { Lisp_Object result; - USE_SAFE_ALLOCA; char *buffer = SAFE_ALLOCA (sizeof "<>" + SBYTES (SYMBOL_NAME (key))); esprintf (buffer, "<%s>", SDATA (SYMBOL_NAME (key))); @@ -2883,13 +2885,14 @@ You type Translation\n\ if (!SYMBOLP (modes[i])) emacs_abort (); - p = title = alloca (42 + SCHARS (SYMBOL_NAME (modes[i]))); + USE_SAFE_ALLOCA; + p = title = SAFE_ALLOCA (42 + SBYTES (SYMBOL_NAME (modes[i]))); *p++ = '\f'; *p++ = '\n'; *p++ = '`'; memcpy (p, SDATA (SYMBOL_NAME (modes[i])), - SCHARS (SYMBOL_NAME (modes[i]))); - p += SCHARS (SYMBOL_NAME (modes[i])); + SBYTES (SYMBOL_NAME (modes[i]))); + p += SBYTES (SYMBOL_NAME (modes[i])); *p++ = '\''; memcpy (p, " Minor Mode Bindings", strlen (" Minor Mode Bindings")); p += strlen (" Minor Mode Bindings"); @@ -2898,6 +2901,7 @@ You type Translation\n\ describe_map_tree (maps[i], 1, shadow, prefix, title, nomenu, 0, 0, 0); shadow = Fcons (maps[i], shadow); + SAFE_FREE (); } start1 = get_local_map (BUF_PT (XBUFFER (buffer)), @@ -3184,10 +3188,10 @@ describe_map (Lisp_Object map, Lisp_Object prefix, /* These accumulate the values from sparse keymap bindings, so we can sort them and handle them in order. */ - int length_needed = 0; + ptrdiff_t length_needed = 0; struct describe_map_elt *vect; - int slots_used = 0; - int i; + ptrdiff_t slots_used = 0; + ptrdiff_t i; suppress = Qnil; @@ -3207,7 +3211,8 @@ describe_map (Lisp_Object map, Lisp_Object prefix, for (tail = map; CONSP (tail); tail = XCDR (tail)) length_needed++; - vect = alloca (length_needed * sizeof *vect); + USE_SAFE_ALLOCA; + SAFE_NALLOCA (vect, 1, length_needed); for (tail = map; CONSP (tail); tail = XCDR (tail)) { @@ -3350,6 +3355,7 @@ describe_map (Lisp_Object map, Lisp_Object prefix, } } + SAFE_FREE (); UNGCPRO; } @@ -3358,7 +3364,7 @@ describe_vector_princ (Lisp_Object elt, Lisp_Object fun) { Findent_to (make_number (16), make_number (1)); call1 (fun, elt); - Fterpri (Qnil); + Fterpri (Qnil, Qnil); } DEFUN ("describe-vector", Fdescribe_vector, Sdescribe_vector, 1, 2, 0, @@ -3438,9 +3444,9 @@ describe_vector (Lisp_Object vector, Lisp_Object prefix, Lisp_Object args, /* Call Fkey_description first, to avoid GC bug for the other string. */ if (!NILP (prefix) && XFASTINT (Flength (prefix)) > 0) { - Lisp_Object tem; - tem = Fkey_description (prefix, Qnil); - elt_prefix = concat2 (tem, build_string (" ")); + Lisp_Object tem = Fkey_description (prefix, Qnil); + AUTO_STRING (space, " "); + elt_prefix = concat2 (tem, space); } prefix = Qnil; } diff --git a/src/lastfile.c b/src/lastfile.c index a900e9541c8..84b28b0311b 100644 --- a/src/lastfile.c +++ b/src/lastfile.c @@ -36,6 +36,8 @@ along with GNU Emacs. If not, see . */ #include +#include "lisp.h" + char my_edata[] = "End of Emacs initialized data"; /* Help unexec locate the end of the .bss area used by Emacs (which diff --git a/src/lisp.h b/src/lisp.h index 7f929addeb5..7b2acfa7447 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -36,36 +36,21 @@ INLINE_HEADER_BEGIN /* Define a TYPE constant ID as an externally visible name. Use like this: - #define ID_val (some integer preprocessor expression) - #if ENUMABLE (ID_val) - DEFINE_GDB_SYMBOL_ENUM (ID) - #else DEFINE_GDB_SYMBOL_BEGIN (TYPE, ID) - # define ID ID_val + # define ID (some integer preprocessor expression of type TYPE) DEFINE_GDB_SYMBOL_END (ID) - #endif This hack is for the benefit of compilers that do not make macro - definitions visible to the debugger. It's used for symbols that - .gdbinit needs, symbols whose values may not fit in 'int' (where an - enum would suffice). + definitions or enums visible to the debugger. It's used for symbols + that .gdbinit needs. */ - Some GCC versions before GCC 4.2 omit enums in debugging output; - see GCC bug 23336. So don't use enums with older GCC. */ - -#if !defined __GNUC__ || 4 < __GNUC__ + (2 <= __GNUC_MINOR__) -# define ENUMABLE(val) (INT_MIN <= (val) && (val) <= INT_MAX) -#else -# define ENUMABLE(val) 0 -#endif - -#define DEFINE_GDB_SYMBOL_ENUM(id) enum { id = id##_val }; -#if defined MAIN_PROGRAM -# define DEFINE_GDB_SYMBOL_BEGIN(type, id) type const id EXTERNALLY_VISIBLE +#define DECLARE_GDB_SYM(type, id) type const id EXTERNALLY_VISIBLE +#ifdef MAIN_PROGRAM +# define DEFINE_GDB_SYMBOL_BEGIN(type, id) DECLARE_GDB_SYM (type, id) # define DEFINE_GDB_SYMBOL_END(id) = id; #else -# define DEFINE_GDB_SYMBOL_BEGIN(type, id) -# define DEFINE_GDB_SYMBOL_END(val) +# define DEFINE_GDB_SYMBOL_BEGIN(type, id) extern DECLARE_GDB_SYM (type, id) +# define DEFINE_GDB_SYMBOL_END(val) ; #endif /* The ubiquitous max and min macros. */ @@ -88,7 +73,8 @@ DEFINE_GDB_SYMBOL_END (GCTYPEBITS) 2. We know malloc returns a multiple of 8. */ #if (defined alignas \ && (defined GNU_MALLOC || defined DOUG_LEA_MALLOC || defined __GLIBC__ \ - || defined DARWIN_OS || defined __sun || defined __MINGW32__)) + || defined DARWIN_OS || defined __sun || defined __MINGW32__ \ + || defined CYGWIN)) # define NONPOINTER_BITS 0 #else # define NONPOINTER_BITS GCTYPEBITS @@ -272,16 +258,17 @@ enum Lisp_Bits /* The maximum value that can be stored in a EMACS_INT, assuming all bits other than the type bits contribute to a nonnegative signed value. - This can be used in #if, e.g., '#if VAL_MAX < UINTPTR_MAX' below. */ + This can be used in #if, e.g., '#if USB_TAG' below expands to an + expression involving VAL_MAX. */ #define VAL_MAX (EMACS_INT_MAX >> (GCTYPEBITS - 1)) /* Whether the least-significant bits of an EMACS_INT contain the tag. - On hosts where pointers-as-ints do not exceed VAL_MAX, USE_LSB_TAG is: + On hosts where pointers-as-ints do not exceed VAL_MAX / 2, USE_LSB_TAG is: a. unnecessary, because the top bits of an EMACS_INT are unused, and b. slower, because it typically requires extra masking. So, USE_LSB_TAG is true only on hosts where it might be useful. */ DEFINE_GDB_SYMBOL_BEGIN (bool, USE_LSB_TAG) -#define USE_LSB_TAG (EMACS_INT_MAX >> GCTYPEBITS < INTPTR_MAX) +#define USE_LSB_TAG (VAL_MAX / 2 < INTPTR_MAX) DEFINE_GDB_SYMBOL_END (USE_LSB_TAG) #if !USE_LSB_TAG && !defined WIDE_EMACS_INT @@ -297,6 +284,11 @@ error !; # endif #endif +#ifdef HAVE_STRUCT_ATTRIBUTE_ALIGNED +# define GCALIGNED __attribute__ ((aligned (GCALIGNMENT))) +#else +# define GCALIGNED /* empty */ +#endif /* Some operations are so commonly executed that they are implemented as macros, not functions, because otherwise runtime performance would @@ -346,7 +338,7 @@ error !; #define lisp_h_CONSP(x) (XTYPE (x) == Lisp_Cons) #define lisp_h_EQ(x, y) (XLI (x) == XLI (y)) #define lisp_h_FLOATP(x) (XTYPE (x) == Lisp_Float) -#define lisp_h_INTEGERP(x) ((XTYPE (x) & ~Lisp_Int1) == 0) +#define lisp_h_INTEGERP(x) ((XTYPE (x) & (Lisp_Int0 | ~Lisp_Int1)) == Lisp_Int0) #define lisp_h_MARKERP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker) #define lisp_h_MISCP(x) (XTYPE (x) == Lisp_Misc) #define lisp_h_NILP(x) EQ (x, Qnil) @@ -370,7 +362,7 @@ error !; #endif #if USE_LSB_TAG # define lisp_h_make_number(n) \ - XIL ((EMACS_INT) ((EMACS_UINT) (n) << INTTYPEBITS)) + XIL ((EMACS_INT) (((EMACS_UINT) (n) << INTTYPEBITS) + Lisp_Int0)) # define lisp_h_XFASTINT(a) XINT (a) # define lisp_h_XINT(a) (XLI (a) >> INTTYPEBITS) # define lisp_h_XTYPE(a) ((enum Lisp_Type) (XLI (a) & ~VALMASK)) @@ -582,218 +574,6 @@ typedef EMACS_INT Lisp_Object; #define LISP_INITIALLY_ZERO 0 enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE = false }; #endif /* CHECK_LISP_OBJECT_TYPE */ - -/* Convert a Lisp_Object to the corresponding EMACS_INT and vice versa. - At the machine level, these operations are no-ops. */ -LISP_MACRO_DEFUN (XLI, EMACS_INT, (Lisp_Object o), (o)) -LISP_MACRO_DEFUN (XIL, Lisp_Object, (EMACS_INT i), (i)) - -/* In the size word of a vector, this bit means the vector has been marked. */ - -#define ARRAY_MARK_FLAG_val PTRDIFF_MIN -#if ENUMABLE (ARRAY_MARK_FLAG_val) -DEFINE_GDB_SYMBOL_ENUM (ARRAY_MARK_FLAG) -#else -DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, ARRAY_MARK_FLAG) -# define ARRAY_MARK_FLAG ARRAY_MARK_FLAG_val -DEFINE_GDB_SYMBOL_END (ARRAY_MARK_FLAG) -#endif - -/* In the size word of a struct Lisp_Vector, this bit means it's really - some other vector-like object. */ -#define PSEUDOVECTOR_FLAG_val (PTRDIFF_MAX - PTRDIFF_MAX / 2) -#if ENUMABLE (PSEUDOVECTOR_FLAG_val) -DEFINE_GDB_SYMBOL_ENUM (PSEUDOVECTOR_FLAG) -#else -DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, PSEUDOVECTOR_FLAG) -# define PSEUDOVECTOR_FLAG PSEUDOVECTOR_FLAG_val -DEFINE_GDB_SYMBOL_END (PSEUDOVECTOR_FLAG) -#endif - -/* In a pseudovector, the size field actually contains a word with one - PSEUDOVECTOR_FLAG bit set, and one of the following values extracted - with PVEC_TYPE_MASK to indicate the actual type. */ -enum pvec_type -{ - PVEC_NORMAL_VECTOR, - PVEC_FREE, - PVEC_PROCESS, - PVEC_FRAME, - PVEC_WINDOW, - PVEC_BOOL_VECTOR, - PVEC_BUFFER, - PVEC_HASH_TABLE, - PVEC_TERMINAL, - PVEC_WINDOW_CONFIGURATION, - PVEC_SUBR, - PVEC_OTHER, -#ifdef HAVE_XWIDGETS - PVEC_XWIDGET, - PVEC_XWIDGET_VIEW, -#endif - - /* These should be last, check internal_equal to see why. */ - PVEC_COMPILED, - PVEC_CHAR_TABLE, - PVEC_SUB_CHAR_TABLE, - PVEC_FONT /* Should be last because it's used for range checking. */ -}; - -enum More_Lisp_Bits - { - /* For convenience, we also store the number of elements in these bits. - Note that this size is not necessarily the memory-footprint size, but - only the number of Lisp_Object fields (that need to be traced by GC). - The distinction is used, e.g., by Lisp_Process, which places extra - non-Lisp_Object fields at the end of the structure. */ - PSEUDOVECTOR_SIZE_BITS = 12, - PSEUDOVECTOR_SIZE_MASK = (1 << PSEUDOVECTOR_SIZE_BITS) - 1, - - /* To calculate the memory footprint of the pseudovector, it's useful - to store the size of non-Lisp area in word_size units here. */ - PSEUDOVECTOR_REST_BITS = 12, - PSEUDOVECTOR_REST_MASK = (((1 << PSEUDOVECTOR_REST_BITS) - 1) - << PSEUDOVECTOR_SIZE_BITS), - - /* Used to extract pseudovector subtype information. */ - PSEUDOVECTOR_AREA_BITS = PSEUDOVECTOR_SIZE_BITS + PSEUDOVECTOR_REST_BITS, - PVEC_TYPE_MASK = 0x3f << PSEUDOVECTOR_AREA_BITS - }; - -/* These functions extract various sorts of values from a Lisp_Object. - For example, if tem is a Lisp_Object whose type is Lisp_Cons, - XCONS (tem) is the struct Lisp_Cons * pointing to the memory for - that cons. */ - -/* Mask for the value (as opposed to the type bits) of a Lisp object. */ -#define VALMASK_val (USE_LSB_TAG ? - (1 << GCTYPEBITS) : VAL_MAX) -#if ENUMABLE (VALMASK_val) -DEFINE_GDB_SYMBOL_ENUM (VALMASK) -#else -DEFINE_GDB_SYMBOL_BEGIN (EMACS_INT, VALMASK) -# define VALMASK VALMASK_val -DEFINE_GDB_SYMBOL_END (VALMASK) -#endif - -/* Largest and smallest representable fixnum values. These are the C - values. They are macros for use in static initializers. */ -#define MOST_POSITIVE_FIXNUM (EMACS_INT_MAX >> INTTYPEBITS) -#define MOST_NEGATIVE_FIXNUM (-1 - MOST_POSITIVE_FIXNUM) - -/* Extract the pointer hidden within A. */ -LISP_MACRO_DEFUN (XPNTR, void *, (Lisp_Object a), (a)) - -#if USE_LSB_TAG - -LISP_MACRO_DEFUN (make_number, Lisp_Object, (EMACS_INT n), (n)) -LISP_MACRO_DEFUN (XINT, EMACS_INT, (Lisp_Object a), (a)) -LISP_MACRO_DEFUN (XFASTINT, EMACS_INT, (Lisp_Object a), (a)) -LISP_MACRO_DEFUN (XTYPE, enum Lisp_Type, (Lisp_Object a), (a)) -LISP_MACRO_DEFUN (XUNTAG, void *, (Lisp_Object a, int type), (a, type)) - -#else /* ! USE_LSB_TAG */ - -/* Although compiled only if ! USE_LSB_TAG, the following functions - also work when USE_LSB_TAG; this is to aid future maintenance when - the lisp_h_* macros are eventually removed. */ - -/* Make a Lisp integer representing the value of the low order - bits of N. */ -INLINE Lisp_Object -make_number (EMACS_INT n) -{ - if (USE_LSB_TAG) - { - EMACS_UINT u = n; - n = u << INTTYPEBITS; - } - else - n &= INTMASK; - return XIL (n); -} - -/* Extract A's value as a signed integer. */ -INLINE EMACS_INT -XINT (Lisp_Object a) -{ - EMACS_INT i = XLI (a); - if (! USE_LSB_TAG) - { - EMACS_UINT u = i; - i = u << INTTYPEBITS; - } - return i >> INTTYPEBITS; -} - -/* Like XINT (A), but may be faster. A must be nonnegative. - If ! USE_LSB_TAG, this takes advantage of the fact that Lisp - integers have zero-bits in their tags. */ -INLINE EMACS_INT -XFASTINT (Lisp_Object a) -{ - EMACS_INT n = USE_LSB_TAG ? XINT (a) : XLI (a); - eassert (0 <= n); - return n; -} - -/* Extract A's type. */ -INLINE enum Lisp_Type -XTYPE (Lisp_Object a) -{ - EMACS_UINT i = XLI (a); - return USE_LSB_TAG ? i & ~VALMASK : i >> VALBITS; -} - -/* Extract A's pointer value, assuming A's type is TYPE. */ -INLINE void * -XUNTAG (Lisp_Object a, int type) -{ - if (USE_LSB_TAG) - { - intptr_t i = XLI (a) - type; - return (void *) i; - } - return XPNTR (a); -} - -#endif /* ! USE_LSB_TAG */ - -/* Extract A's value as an unsigned integer. */ -INLINE EMACS_UINT -XUINT (Lisp_Object a) -{ - EMACS_UINT i = XLI (a); - return USE_LSB_TAG ? i >> INTTYPEBITS : i & INTMASK; -} - -/* Return A's (Lisp-integer sized) hash. Happens to be like XUINT - right now, but XUINT should only be applied to objects we know are - integers. */ -LISP_MACRO_DEFUN (XHASH, EMACS_INT, (Lisp_Object a), (a)) - -/* Like make_number (N), but may be faster. N must be in nonnegative range. */ -INLINE Lisp_Object -make_natnum (EMACS_INT n) -{ - eassert (0 <= n && n <= MOST_POSITIVE_FIXNUM); - return USE_LSB_TAG ? make_number (n) : XIL (n); -} - -/* Return true if X and Y are the same object. */ -LISP_MACRO_DEFUN (EQ, bool, (Lisp_Object x, Lisp_Object y), (x, y)) - -/* Value is true if I doesn't fit into a Lisp fixnum. It is - written this way so that it also works if I is of unsigned - type or if I is a NaN. */ - -#define FIXNUM_OVERFLOW_P(i) \ - (! ((0 <= (i) || MOST_NEGATIVE_FIXNUM <= (i)) && (i) <= MOST_POSITIVE_FIXNUM)) - -INLINE ptrdiff_t -clip_to_bounds (ptrdiff_t lower, EMACS_INT num, ptrdiff_t upper) -{ - return num < lower ? lower : num <= upper ? num : upper; -} /* Forward declarations. */ @@ -859,6 +639,211 @@ extern Lisp_Object Qwindowp; /* Defined in xdisp.c. */ extern Lisp_Object Qimage; +extern Lisp_Object Qfontification_functions; + +/* Convert a Lisp_Object to the corresponding EMACS_INT and vice versa. + At the machine level, these operations are no-ops. */ +LISP_MACRO_DEFUN (XLI, EMACS_INT, (Lisp_Object o), (o)) +LISP_MACRO_DEFUN (XIL, Lisp_Object, (EMACS_INT i), (i)) + +/* In the size word of a vector, this bit means the vector has been marked. */ + +DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, ARRAY_MARK_FLAG) +# define ARRAY_MARK_FLAG PTRDIFF_MIN +DEFINE_GDB_SYMBOL_END (ARRAY_MARK_FLAG) + +/* In the size word of a struct Lisp_Vector, this bit means it's really + some other vector-like object. */ +DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, PSEUDOVECTOR_FLAG) +# define PSEUDOVECTOR_FLAG (PTRDIFF_MAX - PTRDIFF_MAX / 2) +DEFINE_GDB_SYMBOL_END (PSEUDOVECTOR_FLAG) + +/* In a pseudovector, the size field actually contains a word with one + PSEUDOVECTOR_FLAG bit set, and one of the following values extracted + with PVEC_TYPE_MASK to indicate the actual type. */ +enum pvec_type +{ + PVEC_NORMAL_VECTOR, + PVEC_FREE, + PVEC_PROCESS, + PVEC_FRAME, + PVEC_WINDOW, + PVEC_BOOL_VECTOR, + PVEC_BUFFER, + PVEC_HASH_TABLE, + PVEC_TERMINAL, + PVEC_WINDOW_CONFIGURATION, + PVEC_SUBR, + PVEC_OTHER, +#ifdef HAVE_XWIDGETS + PVEC_XWIDGET, + PVEC_XWIDGET_VIEW, +#endif + + /* These should be last, check internal_equal to see why. */ + PVEC_COMPILED, + PVEC_CHAR_TABLE, + PVEC_SUB_CHAR_TABLE, + PVEC_FONT /* Should be last because it's used for range checking. */ +}; + +enum More_Lisp_Bits + { + /* For convenience, we also store the number of elements in these bits. + Note that this size is not necessarily the memory-footprint size, but + only the number of Lisp_Object fields (that need to be traced by GC). + The distinction is used, e.g., by Lisp_Process, which places extra + non-Lisp_Object fields at the end of the structure. */ + PSEUDOVECTOR_SIZE_BITS = 12, + PSEUDOVECTOR_SIZE_MASK = (1 << PSEUDOVECTOR_SIZE_BITS) - 1, + + /* To calculate the memory footprint of the pseudovector, it's useful + to store the size of non-Lisp area in word_size units here. */ + PSEUDOVECTOR_REST_BITS = 12, + PSEUDOVECTOR_REST_MASK = (((1 << PSEUDOVECTOR_REST_BITS) - 1) + << PSEUDOVECTOR_SIZE_BITS), + + /* Used to extract pseudovector subtype information. */ + PSEUDOVECTOR_AREA_BITS = PSEUDOVECTOR_SIZE_BITS + PSEUDOVECTOR_REST_BITS, + PVEC_TYPE_MASK = 0x3f << PSEUDOVECTOR_AREA_BITS + }; + +/* These functions extract various sorts of values from a Lisp_Object. + For example, if tem is a Lisp_Object whose type is Lisp_Cons, + XCONS (tem) is the struct Lisp_Cons * pointing to the memory for + that cons. */ + +/* Mask for the value (as opposed to the type bits) of a Lisp object. */ +DEFINE_GDB_SYMBOL_BEGIN (EMACS_INT, VALMASK) +# define VALMASK (USE_LSB_TAG ? - (1 << GCTYPEBITS) : VAL_MAX) +DEFINE_GDB_SYMBOL_END (VALMASK) + +/* Largest and smallest representable fixnum values. These are the C + values. They are macros for use in static initializers. */ +#define MOST_POSITIVE_FIXNUM (EMACS_INT_MAX >> INTTYPEBITS) +#define MOST_NEGATIVE_FIXNUM (-1 - MOST_POSITIVE_FIXNUM) + +/* Extract the pointer hidden within A. */ +LISP_MACRO_DEFUN (XPNTR, void *, (Lisp_Object a), (a)) + +#if USE_LSB_TAG + +LISP_MACRO_DEFUN (make_number, Lisp_Object, (EMACS_INT n), (n)) +LISP_MACRO_DEFUN (XINT, EMACS_INT, (Lisp_Object a), (a)) +LISP_MACRO_DEFUN (XFASTINT, EMACS_INT, (Lisp_Object a), (a)) +LISP_MACRO_DEFUN (XTYPE, enum Lisp_Type, (Lisp_Object a), (a)) +LISP_MACRO_DEFUN (XUNTAG, void *, (Lisp_Object a, int type), (a, type)) + +#else /* ! USE_LSB_TAG */ + +/* Although compiled only if ! USE_LSB_TAG, the following functions + also work when USE_LSB_TAG; this is to aid future maintenance when + the lisp_h_* macros are eventually removed. */ + +/* Make a Lisp integer representing the value of the low order + bits of N. */ +INLINE Lisp_Object +make_number (EMACS_INT n) +{ + EMACS_INT int0 = Lisp_Int0; + if (USE_LSB_TAG) + { + EMACS_UINT u = n; + n = u << INTTYPEBITS; + n += int0; + } + else + { + n &= INTMASK; + n += (int0 << VALBITS); + } + return XIL (n); +} + +/* Extract A's value as a signed integer. */ +INLINE EMACS_INT +XINT (Lisp_Object a) +{ + EMACS_INT i = XLI (a); + if (! USE_LSB_TAG) + { + EMACS_UINT u = i; + i = u << INTTYPEBITS; + } + return i >> INTTYPEBITS; +} + +/* Like XINT (A), but may be faster. A must be nonnegative. + If ! USE_LSB_TAG, this takes advantage of the fact that Lisp + integers have zero-bits in their tags. */ +INLINE EMACS_INT +XFASTINT (Lisp_Object a) +{ + EMACS_INT int0 = Lisp_Int0; + EMACS_INT n = USE_LSB_TAG ? XINT (a) : XLI (a) - (int0 << VALBITS); + eassert (0 <= n); + return n; +} + +/* Extract A's type. */ +INLINE enum Lisp_Type +XTYPE (Lisp_Object a) +{ + EMACS_UINT i = XLI (a); + return USE_LSB_TAG ? i & ~VALMASK : i >> VALBITS; +} + +/* Extract A's pointer value, assuming A's type is TYPE. */ +INLINE void * +XUNTAG (Lisp_Object a, int type) +{ + if (USE_LSB_TAG) + { + intptr_t i = XLI (a) - type; + return (void *) i; + } + return XPNTR (a); +} + +#endif /* ! USE_LSB_TAG */ + +/* Extract A's value as an unsigned integer. */ +INLINE EMACS_UINT +XUINT (Lisp_Object a) +{ + EMACS_UINT i = XLI (a); + return USE_LSB_TAG ? i >> INTTYPEBITS : i & INTMASK; +} + +/* Return A's (Lisp-integer sized) hash. Happens to be like XUINT + right now, but XUINT should only be applied to objects we know are + integers. */ +LISP_MACRO_DEFUN (XHASH, EMACS_INT, (Lisp_Object a), (a)) + +/* Like make_number (N), but may be faster. N must be in nonnegative range. */ +INLINE Lisp_Object +make_natnum (EMACS_INT n) +{ + eassert (0 <= n && n <= MOST_POSITIVE_FIXNUM); + EMACS_INT int0 = Lisp_Int0; + return USE_LSB_TAG ? make_number (n) : XIL (n + (int0 << VALBITS)); +} + +/* Return true if X and Y are the same object. */ +LISP_MACRO_DEFUN (EQ, bool, (Lisp_Object x, Lisp_Object y), (x, y)) + +/* Value is true if I doesn't fit into a Lisp fixnum. It is + written this way so that it also works if I is of unsigned + type or if I is a NaN. */ + +#define FIXNUM_OVERFLOW_P(i) \ + (! ((0 <= (i) || MOST_NEGATIVE_FIXNUM <= (i)) && (i) <= MOST_POSITIVE_FIXNUM)) + +INLINE ptrdiff_t +clip_to_bounds (ptrdiff_t lower, EMACS_INT num, ptrdiff_t upper) +{ + return num < lower ? lower : num <= upper ? num : upper; +} /* Extract a value or address from a Lisp_Object. */ @@ -1020,7 +1005,7 @@ LISP_MACRO_DEFUN_VOID (CHECK_TYPE, typedef struct interval *INTERVAL; -struct Lisp_Cons +struct GCALIGNED Lisp_Cons { /* Car of this cons cell. */ Lisp_Object car; @@ -1102,7 +1087,7 @@ CDR_SAFE (Lisp_Object c) /* In a string or vector, the sign bit of the `size' is the gc mark bit. */ -struct Lisp_String +struct GCALIGNED Lisp_String { ptrdiff_t size; ptrdiff_t size_byte; @@ -3041,6 +3026,16 @@ struct gcpro ptrdiff_t nvars; #ifdef DEBUG_GCPRO + /* File name where this record is used. */ + const char *name; + + /* Line number in this file. */ + int lineno; + + /* Index in the local chain of records. */ + int idx; + + /* Nesting level. */ int level; #endif }; @@ -3096,122 +3091,150 @@ struct gcpro #ifndef DEBUG_GCPRO -#define GCPRO1(varname) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \ - gcprolist = &gcpro1; } +#define GCPRO1(a) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcprolist = &gcpro1; } -#define GCPRO2(varname1, varname2) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcprolist = &gcpro2; } +#define GCPRO2(a, b) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcprolist = &gcpro2; } -#define GCPRO3(varname1, varname2, varname3) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ - gcprolist = &gcpro3; } +#define GCPRO3(a, b, c) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcprolist = &gcpro3; } -#define GCPRO4(varname1, varname2, varname3, varname4) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ - gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ - gcprolist = &gcpro4; } +#define GCPRO4(a, b, c, d) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcprolist = &gcpro4; } -#define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ - gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ - gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ - gcprolist = &gcpro5; } +#define GCPRO5(a, b, c, d, e) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ + gcprolist = &gcpro5; } -#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ - gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ - gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ - gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ - gcprolist = &gcpro6; } +#define GCPRO6(a, b, c, d, e, f) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ + gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ + gcprolist = &gcpro6; } -#define GCPRO7(a, b, c, d, e, f, g) \ - {gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ - gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ - gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ - gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ - gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ - gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ - gcprolist = &gcpro7; } +#define GCPRO7(a, b, c, d, e, f, g) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ + gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ + gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ + gcprolist = &gcpro7; } #define UNGCPRO (gcprolist = gcpro1.next) -#else +#else /* !DEBUG_GCPRO */ extern int gcpro_level; -#define GCPRO1(varname) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \ - gcpro1.level = gcpro_level++; \ - gcprolist = &gcpro1; } +#define GCPRO1(a) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ + gcpro1.level = gcpro_level++; \ + gcprolist = &gcpro1; } -#define GCPRO2(varname1, varname2) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro1.level = gcpro_level; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro2.level = gcpro_level++; \ - gcprolist = &gcpro2; } +#define GCPRO2(a, b) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ + gcpro1.level = gcpro_level; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ + gcpro2.level = gcpro_level++; \ + gcprolist = &gcpro2; } -#define GCPRO3(varname1, varname2, varname3) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro1.level = gcpro_level; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ - gcpro3.level = gcpro_level++; \ - gcprolist = &gcpro3; } +#define GCPRO3(a, b, c) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ + gcpro1.level = gcpro_level; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ + gcpro3.level = gcpro_level++; \ + gcprolist = &gcpro3; } -#define GCPRO4(varname1, varname2, varname3, varname4) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro1.level = gcpro_level; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ - gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ - gcpro4.level = gcpro_level++; \ - gcprolist = &gcpro4; } +#define GCPRO4(a, b, c, d) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ + gcpro1.level = gcpro_level; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \ + gcpro4.level = gcpro_level++; \ + gcprolist = &gcpro4; } -#define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro1.level = gcpro_level; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ - gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ - gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ - gcpro5.level = gcpro_level++; \ - gcprolist = &gcpro5; } +#define GCPRO5(a, b, c, d, e) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ + gcpro1.level = gcpro_level; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \ + gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ + gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \ + gcpro5.level = gcpro_level++; \ + gcprolist = &gcpro5; } -#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ - {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ - gcpro1.level = gcpro_level; \ - gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ - gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ - gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ - gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ - gcpro6.level = gcpro_level++; \ - gcprolist = &gcpro6; } +#define GCPRO6(a, b, c, d, e, f) \ + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ + gcpro1.level = gcpro_level; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \ + gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ + gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \ + gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ + gcpro6.name = __FILE__; gcpro6.lineno = __LINE__; gcpro6.idx = 6; \ + gcpro6.level = gcpro_level++; \ + gcprolist = &gcpro6; } #define GCPRO7(a, b, c, d, e, f, g) \ - {gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ - gcpro1.level = gcpro_level; \ - gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ - gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ - gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ - gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ - gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ - gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ - gcpro7.level = gcpro_level++; \ - gcprolist = &gcpro7; } + { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ + gcpro1.level = gcpro_level; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \ + gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ + gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \ + gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ + gcpro6.name = __FILE__; gcpro6.lineno = __LINE__; gcpro6.idx = 6; \ + gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ + gcpro7.name = __FILE__; gcpro7.lineno = __LINE__; gcpro7.idx = 7; \ + gcpro7.level = gcpro_level++; \ + gcprolist = &gcpro7; } #define UNGCPRO \ (--gcpro_level != gcpro1.level \ @@ -3625,6 +3648,10 @@ extern void syms_of_xsettings (void); /* Defined in vm-limit.c. */ extern void memory_warnings (void *, void (*warnfun) (const char *)); +/* Defined in character.c. */ +extern void parse_str_as_multibyte (const unsigned char *, ptrdiff_t, + ptrdiff_t *, ptrdiff_t *); + /* Defined in alloc.c. */ extern void check_pure_size (void); extern void free_misc (Lisp_Object); @@ -3634,7 +3661,7 @@ extern _Noreturn void memory_full (size_t); extern _Noreturn void buffer_memory_full (ptrdiff_t); extern bool survives_gc_p (Lisp_Object); extern void mark_object (Lisp_Object); -#if defined REL_ALLOC && !defined SYSTEM_MALLOC +#if defined REL_ALLOC && !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC extern void refill_memory_reserve (void); #endif extern const char *pending_malloc_warning; @@ -3851,12 +3878,13 @@ extern ptrdiff_t evxprintf (char **, ptrdiff_t *, char const *, ptrdiff_t, ATTRIBUTE_FORMAT_PRINTF (5, 0); /* Defined in lread.c. */ -extern Lisp_Object Qvariable_documentation, Qstandard_input; +extern Lisp_Object Qsize, Qvariable_documentation, Qstandard_input; extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; extern Lisp_Object Qlexical_binding; extern Lisp_Object check_obarray (Lisp_Object); extern Lisp_Object intern_1 (const char *, ptrdiff_t); extern Lisp_Object intern_c_string_1 (const char *, ptrdiff_t); +extern Lisp_Object intern_driver (Lisp_Object, Lisp_Object, ptrdiff_t); extern Lisp_Object oblookup (Lisp_Object, const char *, ptrdiff_t, ptrdiff_t); INLINE void LOADHIST_ATTACH (Lisp_Object x) @@ -3887,6 +3915,7 @@ intern_c_string (const char *str) } /* Defined in eval.c. */ +extern EMACS_INT lisp_eval_depth; extern Lisp_Object Qexit, Qinteractive, Qcommandp, Qmacro; extern Lisp_Object Qinhibit_quit, Qinternal_interpreter_environment, Qclosure; extern Lisp_Object Qand_rest; @@ -3954,8 +3983,7 @@ extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object); extern void init_eval (void); extern void syms_of_eval (void); extern void unwind_body (Lisp_Object); -extern void record_in_backtrace (Lisp_Object function, - Lisp_Object *args, ptrdiff_t nargs); +extern ptrdiff_t record_in_backtrace (Lisp_Object, Lisp_Object *, ptrdiff_t); extern void mark_specpdl (void); extern void get_backtrace (Lisp_Object array); Lisp_Object backtrace_top_function (void); @@ -3977,7 +4005,6 @@ extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, bool); extern void init_editfns (void); extern void syms_of_editfns (void); -extern void set_time_zone_rule (const char *); /* Defined in buffer.c. */ extern bool mouse_face_overlay_overlaps (Lisp_Object); @@ -4030,7 +4057,7 @@ extern _Noreturn void report_file_error (const char *, Lisp_Object); extern bool internal_delete_file (Lisp_Object); extern Lisp_Object emacs_readlinkat (int, const char *); extern bool file_directory_p (const char *); -extern bool file_accessible_directory_p (const char *); +extern bool file_accessible_directory_p (Lisp_Object); extern void init_fileio (void); extern void syms_of_fileio (void); extern Lisp_Object make_temp_name (Lisp_Object, bool); @@ -4054,6 +4081,7 @@ extern ptrdiff_t find_newline (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t *, ptrdiff_t *, bool); extern ptrdiff_t scan_newline (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, bool); +extern ptrdiff_t scan_newline_from_point (ptrdiff_t, ptrdiff_t *, ptrdiff_t *); extern ptrdiff_t find_newline_no_quit (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t *); extern ptrdiff_t find_before_next_newline (ptrdiff_t, ptrdiff_t, @@ -4098,6 +4126,9 @@ extern Lisp_Object Qdisabled, QCfilter; extern Lisp_Object Qup, Qdown; extern Lisp_Object last_undo_boundary; extern bool input_pending; +#ifdef HAVE_STACK_OVERFLOW_HANDLING +extern sigjmp_buf return_to_command_loop; +#endif extern Lisp_Object menu_bar_items (Lisp_Object); extern Lisp_Object tool_bar_items (Lisp_Object, int *); extern void discard_mouse_events (void); @@ -4300,6 +4331,7 @@ extern void lock_file (Lisp_Object); extern void unlock_file (Lisp_Object); extern void unlock_buffer (struct buffer *); extern void syms_of_filelock (void); +extern int str_collate (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); /* Defined in sound.c. */ extern void syms_of_sound (void); @@ -4381,6 +4413,7 @@ extern void syms_of_xsmfns (void); extern void syms_of_xselect (void); /* Defined in xterm.c. */ +extern void init_xterm (void); extern void syms_of_xterm (void); #endif /* HAVE_X_WINDOWS */ @@ -4402,6 +4435,7 @@ extern void syms_of_decompress (void); #ifdef HAVE_DBUS /* Defined in dbusbind.c. */ +void init_dbusbind (void); void syms_of_dbusbind (void); #endif @@ -4417,6 +4451,11 @@ extern void syms_of_profiler (void); extern char *emacs_root_dir (void); #endif /* DOS_NT */ +/* Defined in lastfile.c. */ +extern char my_edata[]; +extern char my_endbss[]; +extern char *my_endbss_static; + /* True means ^G can quit instantly. */ extern bool immediate_quit; @@ -4432,15 +4471,28 @@ extern void *xpalloc (void *, ptrdiff_t *, ptrdiff_t, ptrdiff_t, ptrdiff_t); extern char *xstrdup (const char *) ATTRIBUTE_MALLOC; extern char *xlispstrdup (Lisp_Object) ATTRIBUTE_MALLOC; extern void dupstring (char **, char const *); + +/* Make DEST a copy of STRING's data. Return a pointer to DEST's terminating + null byte. This is like stpcpy, except the source is a Lisp string. */ + +INLINE char * +lispstpcpy (char *dest, Lisp_Object string) +{ + ptrdiff_t len = SBYTES (string); + memcpy (dest, SDATA (string), len + 1); + return dest + len; +} + extern void xputenv (const char *); -extern char *egetenv (const char *); +extern char *egetenv_internal (const char *, ptrdiff_t); -/* Copy Lisp string to temporary (allocated on stack) C string. */ - -#define xlispstrdupa(string) \ - memcpy (alloca (SBYTES (string) + 1), \ - SSDATA (string), SBYTES (string) + 1) +INLINE char * +egetenv (const char *var) +{ + /* When VAR is a string literal, strlen can be optimized away. */ + return egetenv_internal (var, strlen (var)); +} /* Set up the name of the machine we're running on. */ extern void init_system_name (void); @@ -4465,12 +4517,15 @@ enum MAX_ALLOCA { MAX_ALLOCA = 16 * 1024 }; extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); #define USE_SAFE_ALLOCA \ + ptrdiff_t sa_avail = MAX_ALLOCA; \ ptrdiff_t sa_count = SPECPDL_INDEX (); bool sa_must_free = false +#define AVAIL_ALLOCA(size) (sa_avail -= (size), alloca (size)) + /* SAFE_ALLOCA allocates a simple buffer. */ -#define SAFE_ALLOCA(size) ((size) < MAX_ALLOCA \ - ? alloca (size) \ +#define SAFE_ALLOCA(size) ((size) <= sa_avail \ + ? AVAIL_ALLOCA (size) \ : (sa_must_free = true, record_xmalloc (size))) /* SAFE_NALLOCA sets BUF to a newly allocated array of MULTIPLIER * @@ -4479,8 +4534,8 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); #define SAFE_NALLOCA(buf, multiplier, nitems) \ do { \ - if ((nitems) <= MAX_ALLOCA / sizeof *(buf) / (multiplier)) \ - (buf) = alloca (sizeof *(buf) * (multiplier) * (nitems)); \ + if ((nitems) <= sa_avail / sizeof *(buf) / (multiplier)) \ + (buf) = AVAIL_ALLOCA (sizeof *(buf) * (multiplier) * (nitems)); \ else \ { \ (buf) = xnmalloc (nitems, sizeof *(buf) * (multiplier)); \ @@ -4489,6 +4544,14 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); } \ } while (false) +/* SAFE_ALLOCA_STRING allocates a C copy of a Lisp string. */ + +#define SAFE_ALLOCA_STRING(ptr, string) \ + do { \ + (ptr) = SAFE_ALLOCA (SBYTES (string) + 1); \ + memcpy (ptr, SDATA (string), SBYTES (string) + 1); \ + } while (false) + /* SAFE_FREE frees xmalloced memory and enables GC as needed. */ #define SAFE_FREE() \ @@ -4500,13 +4563,29 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); } while (false) +/* Return floor (NBYTES / WORD_SIZE). */ + +INLINE ptrdiff_t +lisp_word_count (ptrdiff_t nbytes) +{ + if (-1 >> 1 == -1) + switch (word_size) + { + case 2: return nbytes >> 1; + case 4: return nbytes >> 2; + case 8: return nbytes >> 3; + case 16: return nbytes >> 4; + } + return nbytes / word_size - (nbytes % word_size < 0); +} + /* SAFE_ALLOCA_LISP allocates an array of Lisp_Objects. */ #define SAFE_ALLOCA_LISP(buf, nelt) \ do { \ - if ((nelt) < MAX_ALLOCA / word_size) \ - (buf) = alloca ((nelt) * word_size); \ - else if ((nelt) < min (PTRDIFF_MAX, SIZE_MAX) / word_size) \ + if ((nelt) <= lisp_word_count (sa_avail)) \ + (buf) = AVAIL_ALLOCA ((nelt) * word_size); \ + else if ((nelt) <= min (PTRDIFF_MAX, SIZE_MAX) / word_size) \ { \ Lisp_Object arg_; \ (buf) = xmalloc ((nelt) * word_size); \ @@ -4518,6 +4597,114 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); memory_full (SIZE_MAX); \ } while (false) + +/* If USE_STACK_LISP_OBJECTS, define macros that and functions that allocate + block-scoped conses and strings. These objects are not + managed by the garbage collector, so they are dangerous: passing them + out of their scope (e.g., to user code) results in undefined behavior. + Conversely, they have better performance because GC is not involved. + + This feature is experimental and requires careful debugging. + Build with CPPFLAGS='-DUSE_STACK_LISP_OBJECTS=0' to disable it. */ + +#ifndef USE_STACK_LISP_OBJECTS +# define USE_STACK_LISP_OBJECTS true +#endif + +/* USE_STACK_LISP_OBJECTS requires GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS. */ + +#if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS +# undef USE_STACK_LISP_OBJECTS +# define USE_STACK_LISP_OBJECTS false +#endif + +#ifdef GC_CHECK_STRING_BYTES +enum { defined_GC_CHECK_STRING_BYTES = true }; +#else +enum { defined_GC_CHECK_STRING_BYTES = false }; +#endif + +/* Struct inside unions that are typically no larger and aligned enough. */ + +union Aligned_Cons +{ + struct Lisp_Cons s; + double d; intmax_t i; void *p; +}; + +union Aligned_String +{ + struct Lisp_String s; + double d; intmax_t i; void *p; +}; + +/* True for stack-based cons and string implementations, respectively. + Use stack-based strings only if stack-based cons also works. + Otherwise, STACK_CONS would create heap-based cons cells that + could point to stack-based strings, which is a no-no. */ + +enum + { + USE_STACK_CONS = (USE_STACK_LISP_OBJECTS + && alignof (union Aligned_Cons) % GCALIGNMENT == 0), + USE_STACK_STRING = (USE_STACK_CONS + && !defined_GC_CHECK_STRING_BYTES + && alignof (union Aligned_String) % GCALIGNMENT == 0) + }; + +/* Auxiliary macros used for auto allocation of Lisp objects. Please + use these only in macros like AUTO_CONS that declare a local + variable whose lifetime will be clear to the programmer. */ +#define STACK_CONS(a, b) \ + make_lisp_ptr (&(union Aligned_Cons) { { a, { b } } }.s, Lisp_Cons) +#define AUTO_CONS_EXPR(a, b) \ + (USE_STACK_CONS ? STACK_CONS (a, b) : Fcons (a, b)) + +/* Declare NAME as an auto Lisp cons or short list if possible, a + GC-based one otherwise. This is in the sense of the C keyword + 'auto'; i.e., the object has the lifetime of the containing block. + The resulting object should not be made visible to user Lisp code. */ + +#define AUTO_CONS(name, a, b) Lisp_Object name = AUTO_CONS_EXPR (a, b) +#define AUTO_LIST1(name, a) \ + Lisp_Object name = (USE_STACK_CONS ? STACK_CONS (a, Qnil) : list1 (a)) +#define AUTO_LIST2(name, a, b) \ + Lisp_Object name = (USE_STACK_CONS \ + ? STACK_CONS (a, STACK_CONS (b, Qnil)) \ + : list2 (a, b)) +#define AUTO_LIST3(name, a, b, c) \ + Lisp_Object name = (USE_STACK_CONS \ + ? STACK_CONS (a, STACK_CONS (b, STACK_CONS (c, Qnil))) \ + : list3 (a, b, c)) +#define AUTO_LIST4(name, a, b, c, d) \ + Lisp_Object name \ + = (USE_STACK_CONS \ + ? STACK_CONS (a, STACK_CONS (b, STACK_CONS (c, \ + STACK_CONS (d, Qnil)))) \ + : list4 (a, b, c, d)) + +/* Check whether stack-allocated strings are ASCII-only. */ + +#if defined (ENABLE_CHECKING) && USE_STACK_LISP_OBJECTS +extern const char *verify_ascii (const char *); +#else +# define verify_ascii(str) (str) +#endif + +/* Declare NAME as an auto Lisp string if possible, a GC-based one if not. + Take its value from STR. STR is not necessarily copied and should + contain only ASCII characters. The resulting Lisp string should + not be modified or made visible to user code. */ + +#define AUTO_STRING(name, str) \ + Lisp_Object name = \ + (USE_STACK_STRING \ + ? (make_lisp_ptr \ + ((&(union Aligned_String) \ + {{strlen (str), -1, 0, (unsigned char *) verify_ascii (str)}}.s), \ + Lisp_String)) \ + : build_string (verify_ascii (str))) + /* Loop over all tails of a list, checking for cycles. FIXME: Make tortoise and n internal declarations. FIXME: Unroll the loop body so we don't need `n'. */ diff --git a/src/lisp.mk b/src/lisp.mk index 59d5b86c33a..675df2b66e6 100644 --- a/src/lisp.mk +++ b/src/lisp.mk @@ -132,6 +132,7 @@ lisp = \ $(lispsource)/textmodes/paragraphs.elc \ $(lispsource)/progmodes/prog-mode.elc \ $(lispsource)/emacs-lisp/lisp-mode.elc \ + $(lispsource)/progmodes/elisp-mode.elc \ $(lispsource)/textmodes/text-mode.elc \ $(lispsource)/textmodes/fill.elc \ $(lispsource)/newcomment.elc \ @@ -152,7 +153,6 @@ lisp = \ $(lispsource)/term/w32-win.elc \ $(lispsource)/ls-lisp.elc \ $(lispsource)/disp-table.elc \ - $(lispsource)/w32-common-fns.elc \ $(lispsource)/dos-w32.elc \ $(lispsource)/w32-fns.elc \ $(lispsource)/dos-fns.elc \ @@ -165,6 +165,7 @@ lisp = \ $(lispsource)/vc/vc-hooks.elc \ $(lispsource)/vc/ediff-hook.elc \ $(lispsource)/electric.elc \ + $(lispsource)/emacs-lisp/eldoc.elc \ $(lispsource)/uniquify.elc \ $(lispsource)/tooltip.elc diff --git a/src/lread.c b/src/lread.c index 639d574ac6b..afa47aafb86 100644 --- a/src/lread.c +++ b/src/lread.c @@ -66,7 +66,8 @@ along with GNU Emacs. If not, see . */ /* Hash table read constants. */ static Lisp_Object Qhash_table, Qdata; -static Lisp_Object Qtest, Qsize; +static Lisp_Object Qtest; +Lisp_Object Qsize; static Lisp_Object Qweakness; static Lisp_Object Qrehash_size; static Lisp_Object Qrehash_threshold; @@ -970,10 +971,8 @@ load_warn_old_style_backquotes (Lisp_Object file) { if (!NILP (Vold_style_backquotes)) { - Lisp_Object args[2]; - args[0] = build_string ("Loading `%s': old-style backquotes detected!"); - args[1] = file; - Fmessage (2, args); + AUTO_STRING (format, "Loading `%s': old-style backquotes detected!"); + Fmessage (2, (Lisp_Object []) {format, file}); } } @@ -1473,6 +1472,7 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, ptrdiff_t max_suffix_len = 0; int last_errno = ENOENT; int save_fd = -1; + USE_SAFE_ALLOCA; /* The last-modified time of the newest matching file found. Initialize it to something less than all valid timestamps. */ @@ -1513,7 +1513,10 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, this path element/specified file name and any possible suffix. */ want_length = max_suffix_len + SBYTES (filename); if (fn_size <= want_length) - fn = alloca (fn_size = 100 + want_length); + { + fn_size = 100 + want_length; + fn = SAFE_ALLOCA (fn_size); + } /* Loop over suffixes. */ for (tail = NILP (suffixes) ? list1 (empty_unibyte_string) : suffixes; @@ -1579,6 +1582,7 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, /* We succeeded; return this descriptor and filename. */ if (storeptr) *storeptr = string; + SAFE_FREE (); UNGCPRO; return -2; } @@ -1651,6 +1655,7 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, /* We succeeded; return this descriptor and filename. */ if (storeptr) *storeptr = string; + SAFE_FREE (); UNGCPRO; return fd; } @@ -1661,6 +1666,7 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, { if (storeptr) *storeptr = save_string; + SAFE_FREE (); UNGCPRO; return save_fd; } @@ -1670,6 +1676,7 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, break; } + SAFE_FREE (); UNGCPRO; errno = last_errno; return -1; @@ -1774,15 +1781,17 @@ readevalloop_eager_expand_eval (Lisp_Object val, Lisp_Object macroexpand) val = call2 (macroexpand, val, Qnil); if (EQ (CAR_SAFE (val), Qprogn)) { + struct gcpro gcpro1; Lisp_Object subforms = XCDR (val); - val = Qnil; - for (; CONSP (subforms); subforms = XCDR (subforms)) + + GCPRO1 (subforms); + for (val = Qnil; CONSP (subforms); subforms = XCDR (subforms)) val = readevalloop_eager_expand_eval (XCAR (subforms), macroexpand); + UNGCPRO; } else val = eval_sub (call2 (macroexpand, val, Qt)); - return val; } @@ -2088,9 +2097,10 @@ DEFUN ("read-from-string", Fread_from_string, Sread_from_string, 1, 3, 0, doc: /* Read one Lisp expression which is represented as text by STRING. Returns a cons: (OBJECT-READ . FINAL-STRING-INDEX). FINAL-STRING-INDEX is an integer giving the position of the next - remaining character in STRING. -START and END optionally delimit a substring of STRING from which to read; - they default to 0 and (length STRING) respectively. */) +remaining character in STRING. START and END optionally delimit +a substring of STRING from which to read; they default to 0 and +(length STRING) respectively. Negative values are counted from +the end of STRING. */) (Lisp_Object string, Lisp_Object start, Lisp_Object end) { Lisp_Object ret; @@ -2101,10 +2111,9 @@ START and END optionally delimit a substring of STRING from which to read; } /* Function to set up the global context we need in toplevel read - calls. */ + calls. START and END only used when STREAM is a string. */ static Lisp_Object read_internal_start (Lisp_Object stream, Lisp_Object start, Lisp_Object end) -/* `start', `end' only used when stream is a string. */ { Lisp_Object retval; @@ -2126,25 +2135,9 @@ read_internal_start (Lisp_Object stream, Lisp_Object start, Lisp_Object end) else string = XCAR (stream); - if (NILP (end)) - endval = SCHARS (string); - else - { - CHECK_NUMBER (end); - if (! (0 <= XINT (end) && XINT (end) <= SCHARS (string))) - args_out_of_range (string, end); - endval = XINT (end); - } + validate_subarray (string, start, end, SCHARS (string), + &startval, &endval); - if (NILP (start)) - startval = 0; - else - { - CHECK_NUMBER (start); - if (! (0 <= XINT (start) && XINT (start) <= endval)) - args_out_of_range (string, start); - startval = XINT (start); - } read_from_string_index = startval; read_from_string_index_byte = string_char_to_byte (string, startval); read_from_string_limit = endval; @@ -2881,11 +2874,8 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) if (c == '=') { /* Make a placeholder for #n# to use temporarily. */ - Lisp_Object placeholder; - Lisp_Object cell; - - placeholder = Fcons (Qnil, Qnil); - cell = Fcons (make_number (n), placeholder); + AUTO_CONS (placeholder, Qnil, Qnil); + Lisp_Object cell = Fcons (make_number (n), placeholder); read_objects = Fcons (cell, read_objects); /* Read the object itself. */ @@ -3364,7 +3354,7 @@ substitute_object_recurse (Lisp_Object object, Lisp_Object placeholder, Lisp_Obj substitute_in_interval contains part of the logic. */ INTERVAL root_interval = string_intervals (subtree); - Lisp_Object arg = Fcons (object, placeholder); + AUTO_CONS (arg, object, placeholder); traverse_intervals_noorder (root_interval, &substitute_in_interval, arg); @@ -3671,8 +3661,10 @@ read_list (bool flag, Lisp_Object readcharfun) in the installed Lisp directory. We don't use Fexpand_file_name because that would make the directory absolute now. */ - elt = concat2 (build_string ("../lisp/"), - Ffile_name_nondirectory (elt)); + { + AUTO_STRING (dot_dot_lisp, "../lisp/"); + elt = concat2 (dot_dot_lisp, Ffile_name_nondirectory (elt)); + } } else if (EQ (elt, Vload_file_name) && ! NILP (elt) @@ -3800,6 +3792,30 @@ check_obarray (Lisp_Object obarray) return obarray; } +/* Intern a symbol with name STRING in OBARRAY using bucket INDEX. */ + +Lisp_Object +intern_driver (Lisp_Object string, Lisp_Object obarray, ptrdiff_t index) +{ + Lisp_Object *ptr, sym = Fmake_symbol (string); + + XSYMBOL (sym)->interned = (EQ (obarray, initial_obarray) + ? SYMBOL_INTERNED_IN_INITIAL_OBARRAY + : SYMBOL_INTERNED); + + if ((SREF (string, 0) == ':') && EQ (obarray, initial_obarray)) + { + XSYMBOL (sym)->constant = 1; + XSYMBOL (sym)->redirect = SYMBOL_PLAINVAL; + SET_SYMBOL_VAL (XSYMBOL (sym), sym); + } + + ptr = aref_addr (obarray, index); + set_symbol_next (sym, SYMBOLP (*ptr) ? XSYMBOL (*ptr) : NULL); + *ptr = sym; + return sym; +} + /* Intern the C string STR: return a symbol with that name, interned in the current obarray. */ @@ -3809,7 +3825,8 @@ intern_1 (const char *str, ptrdiff_t len) Lisp_Object obarray = check_obarray (Vobarray); Lisp_Object tem = oblookup (obarray, str, len, len); - return SYMBOLP (tem) ? tem : Fintern (make_string (str, len), obarray); + return SYMBOLP (tem) ? tem : intern_driver (make_string (str, len), + obarray, XINT (tem)); } Lisp_Object @@ -3818,16 +3835,14 @@ intern_c_string_1 (const char *str, ptrdiff_t len) Lisp_Object obarray = check_obarray (Vobarray); Lisp_Object tem = oblookup (obarray, str, len, len); - if (SYMBOLP (tem)) - return tem; - - if (NILP (Vpurify_flag)) - /* Creating a non-pure string from a string literal not - implemented yet. We could just use make_string here and live - with the extra copy. */ - emacs_abort (); - - return Fintern (make_pure_c_string (str, len), obarray); + if (!SYMBOLP (tem)) + { + /* Creating a non-pure string from a string literal not implemented yet. + We could just use make_string here and live with the extra copy. */ + eassert (!NILP (Vpurify_flag)); + tem = intern_driver (make_pure_c_string (str, len), obarray, XINT (tem)); + } + return tem; } DEFUN ("intern", Fintern, Sintern, 1, 2, 0, @@ -3837,43 +3852,16 @@ A second optional argument specifies the obarray to use; it defaults to the value of `obarray'. */) (Lisp_Object string, Lisp_Object obarray) { - register Lisp_Object tem, sym, *ptr; - - if (NILP (obarray)) obarray = Vobarray; - obarray = check_obarray (obarray); + Lisp_Object tem; + obarray = check_obarray (NILP (obarray) ? Vobarray : obarray); CHECK_STRING (string); - tem = oblookup (obarray, SSDATA (string), - SCHARS (string), - SBYTES (string)); - if (!INTEGERP (tem)) - return tem; - - if (!NILP (Vpurify_flag)) - string = Fpurecopy (string); - sym = Fmake_symbol (string); - - if (EQ (obarray, initial_obarray)) - XSYMBOL (sym)->interned = SYMBOL_INTERNED_IN_INITIAL_OBARRAY; - else - XSYMBOL (sym)->interned = SYMBOL_INTERNED; - - if ((SREF (string, 0) == ':') - && EQ (obarray, initial_obarray)) - { - XSYMBOL (sym)->constant = 1; - XSYMBOL (sym)->redirect = SYMBOL_PLAINVAL; - SET_SYMBOL_VAL (XSYMBOL (sym), sym); - } - - ptr = aref_addr (obarray, XINT (tem)); - if (SYMBOLP (*ptr)) - set_symbol_next (sym, XSYMBOL (*ptr)); - else - set_symbol_next (sym, NULL); - *ptr = sym; - return sym; + tem = oblookup (obarray, SSDATA (string), SCHARS (string), SBYTES (string)); + if (!SYMBOLP (tem)) + tem = intern_driver (NILP (Vpurify_flag) ? string + : Fpurecopy (string), obarray, XINT (tem)); + return tem; } DEFUN ("intern-soft", Fintern_soft, Sintern_soft, 1, 2, 0, @@ -4084,14 +4072,14 @@ init_obarray (void) set_symbol_plist (Qunbound, Qnil); SET_SYMBOL_VAL (XSYMBOL (Qnil), Qnil); XSYMBOL (Qnil)->constant = 1; - XSYMBOL (Qnil)->declared_special = 1; + XSYMBOL (Qnil)->declared_special = true; set_symbol_plist (Qnil, Qnil); set_symbol_function (Qnil, Qnil); Qt = intern_c_string ("t"); SET_SYMBOL_VAL (XSYMBOL (Qt), Qt); - XSYMBOL (Qnil)->declared_special = 1; XSYMBOL (Qt)->constant = 1; + XSYMBOL (Qt)->declared_special = true; /* Qt is correct even if CANNOT_DUMP. loadup.el will set to nil at end. */ Vpurify_flag = Qt; @@ -4213,7 +4201,7 @@ load_path_check (Lisp_Object lpath) if (STRINGP (dirfile)) { dirfile = Fdirectory_file_name (dirfile); - if (! file_accessible_directory_p (SSDATA (dirfile))) + if (! file_accessible_directory_p (dirfile)) dir_warning ("Lisp directory", XCAR (path_tail)); } } diff --git a/src/macfont.h b/src/macfont.h index 7421cd63a79..e6e45ab152c 100644 --- a/src/macfont.h +++ b/src/macfont.h @@ -57,11 +57,7 @@ typedef CTCharacterCollection CharacterCollection; #define MAC_FONT_CASCADE_LIST_ATTRIBUTE kCTFontCascadeListAttribute #define MAC_FONT_CHARACTER_SET_ATTRIBUTE kCTFontCharacterSetAttribute #define MAC_FONT_LANGUAGES_ATTRIBUTE kCTFontLanguagesAttribute -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 #define MAC_FONT_FORMAT_ATTRIBUTE kCTFontFormatAttribute -#else -#define MAC_FONT_FORMAT_ATTRIBUTE (CFSTR ("NSCTFontFormatAttribute")) -#endif #define MAC_FONT_SYMBOLIC_TRAIT kCTFontSymbolicTrait #define MAC_FONT_WEIGHT_TRAIT kCTFontWeightTrait #define MAC_FONT_WIDTH_TRAIT kCTFontWidthTrait @@ -79,11 +75,7 @@ enum { }; enum { -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 MAC_FONT_FORMAT_BITMAP = kCTFontFormatBitmap -#else - MAC_FONT_FORMAT_BITMAP = 5 -#endif }; enum { @@ -112,13 +104,8 @@ enum { #define mac_font_get_underline_position CTFontGetUnderlinePosition #define mac_font_get_underline_thickness CTFontGetUnderlineThickness #define mac_font_copy_graphics_font(font) CTFontCopyGraphicsFont (font, NULL) -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 #define mac_font_copy_non_synthetic_table(font, table) \ CTFontCopyTable (font, table, kCTFontTableOptionNoOptions) -#else -#define mac_font_copy_non_synthetic_table(font, table) \ - CTFontCopyTable (font, table, kCTFontTableOptionExcludeSynthetic) -#endif #define mac_font_create_preferred_family_for_attributes \ mac_ctfont_create_preferred_family_for_attributes diff --git a/src/macfont.m b/src/macfont.m index 0d702873220..70548390583 100644 --- a/src/macfont.m +++ b/src/macfont.m @@ -36,13 +36,11 @@ #include "macfont.h" #include "macuvs.h" -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 - #include static struct font_driver macfont_driver; -/* Core Text, for Mac OS X 10.5 and later. */ +/* Core Text, for Mac OS X. */ static Lisp_Object Qmac_ct; static double mac_ctfont_get_advance_width_for_glyph (CTFontRef, CGGlyph); @@ -50,25 +48,25 @@ static CFArrayRef mac_ctfont_create_available_families (void); static Boolean mac_ctfont_equal_in_postscript_name (CTFontRef, CTFontRef); static CTLineRef mac_ctfont_create_line_with_string_and_font (CFStringRef, - CTFontRef); + CTFontRef); static CFComparisonResult mac_font_family_compare (const void *, - const void *, void *); + const void *, void *); static Boolean mac_ctfont_descriptor_supports_languages (CTFontDescriptorRef, - CFArrayRef); + CFArrayRef); static CFStringRef mac_ctfont_create_preferred_family_for_attributes (CFDictionaryRef); static CFIndex mac_ctfont_shape (CTFontRef, CFStringRef, - struct mac_glyph_layout *, CFIndex); + struct mac_glyph_layout *, CFIndex); static CFArrayRef mac_font_copy_default_descriptors_for_language (CFStringRef language); static CFStringRef mac_font_copy_default_name_for_charset_and_languages (CFCharacterSetRef charset, - CFArrayRef languages); + CFArrayRef languages); #if USE_CT_GLYPH_INFO static CGGlyph mac_ctfont_get_glyph_for_cid (CTFontRef, - CTCharacterCollection, - CGFontIndex); + CTCharacterCollection, + CGFontIndex); #endif /* The font property key specifying the font design destination. The @@ -129,26 +127,26 @@ static CGGlyph mac_ctfont_get_glyph_for_cid (CTFontRef, static const CGFloat synthetic_bold_factor = 0.024; static Boolean cfnumber_get_font_symbolic_traits_value (CFNumberRef, - FontSymbolicTraits *); + FontSymbolicTraits *); static void macfont_store_descriptor_attributes (FontDescriptorRef, - Lisp_Object); + Lisp_Object); static Lisp_Object macfont_descriptor_entity (FontDescriptorRef, - Lisp_Object, - FontSymbolicTraits); + Lisp_Object, + FontSymbolicTraits); static CFStringRef macfont_create_family_with_symbol (Lisp_Object); static int macfont_glyph_extents (struct font *, CGGlyph, - struct font_metrics *, CGFloat *, int); + struct font_metrics *, CGFloat *, int); static CFMutableDictionaryRef macfont_create_attributes_with_spec (Lisp_Object); static Boolean macfont_supports_charset_and_languages_p (FontDescriptorRef, - CFCharacterSetRef, - Lisp_Object, - CFArrayRef); -static CFIndex macfont_closest_traits_index (CFArrayRef, - FontSymbolicTraits); + CFCharacterSetRef, + Lisp_Object, + CFArrayRef); +static Boolean macfont_closest_traits_index_p (CFArrayRef, FontSymbolicTraits, + CFIndex); static CFDataRef mac_font_copy_uvs_table (FontRef); static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, - const UTF32Char [], - CGGlyph [], CFIndex); + const UTF32Char [], + CGGlyph [], CFIndex); /* From CFData to a lisp string. Always returns a unibyte string. */ @@ -180,15 +178,15 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, CFIndex i, length = CFStringGetLength (string); for (i = 0; i < length; i++) - if (CFStringGetCharacterAtIndex (string, i) == 0) - break; + if (CFStringGetCharacterAtIndex (string, i) == 0) + break; if (i == length) - return make_unibyte_string (s, strlen (s)); + return make_unibyte_string (s, strlen (s)); } data = CFStringCreateExternalRepresentation (NULL, string, - kCFStringEncodingUTF8, '?'); + kCFStringEncodingUTF8, '?'); if (data) { result = cfdata_to_lisp (data); @@ -206,12 +204,12 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, cfstring_create_with_string_noencode (Lisp_Object s) { CFStringRef string = CFStringCreateWithBytes (NULL, SDATA (s), SBYTES (s), - kCFStringEncodingUTF8, false); + kCFStringEncodingUTF8, false); if (string == NULL) /* Failed to interpret as UTF 8. Fall back on Mac Roman. */ string = CFStringCreateWithBytes (NULL, SDATA (s), SBYTES (s), - kCFStringEncodingMacRoman, false); + kCFStringEncodingMacRoman, false); return string; } @@ -226,7 +224,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, static CGGlyph mac_font_get_glyph_for_cid (FontRef font, CharacterCollection collection, - CGFontIndex cid) + CGFontIndex cid) { #if USE_CT_GLYPH_INFO return mac_ctfont_get_glyph_for_cid ((CTFontRef) font, collection, cid); @@ -237,17 +235,17 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, unichar characters[] = {0xfffd}; NSString *string = [NSString stringWithCharacters:characters - length:ARRAYELTS (characters)]; + length:ARRAYELTS (characters)]; NSGlyphInfo *glyphInfo = [NSGlyphInfo glyphInfoWithCharacterIdentifier:cid - collection:collection - baseString:string]; + collection:collection + baseString:string]; NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:nsFont,NSFontAttributeName, - glyphInfo,NSGlyphInfoAttributeName,nil]; + glyphInfo,NSGlyphInfoAttributeName,nil]; NSTextStorage *textStorage = [[NSTextStorage alloc] initWithString:string - attributes:attributes]; + attributes:attributes]; NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init]; NSTextContainer *textContainer = [[NSTextContainer alloc] init]; NSFont *fontInTextStorage; @@ -261,14 +259,14 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, (void) [layoutManager glyphRangeForTextContainer:textContainer]; fontInTextStorage = [textStorage attribute:NSFontAttributeName atIndex:0 - effectiveRange:NULL]; + effectiveRange:NULL]; if (fontInTextStorage == nsFont - || [[fontInTextStorage fontName] isEqualToString:[nsFont fontName]]) + || [[fontInTextStorage fontName] isEqualToString:[nsFont fontName]]) { - NSGlyph glyph = [layoutManager glyphAtIndex:0]; + NSGlyph glyph = [layoutManager glyphAtIndex:0]; - if (glyph < [nsFont numberOfGlyphs]) - result = glyph; + if (glyph < [nsFont numberOfGlyphs]) + result = glyph; } [textStorage release]; @@ -292,7 +290,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, static Boolean mac_screen_font_get_metrics (ScreenFontRef font, CGFloat *ascent, - CGFloat *descent, CGFloat *leading) + CGFloat *descent, CGFloat *leading) { NSFont *nsFont = [(NSFont *)font printerFont]; NSTextStorage *textStorage; @@ -323,7 +321,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, } usedRect = [layoutManager lineFragmentUsedRectForGlyphAtIndex:0 - effectiveRange:NULL]; + effectiveRange:NULL]; spaceLocation = [layoutManager locationForGlyphAtIndex:0]; [textStorage release]; @@ -342,8 +340,8 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, static CFIndex mac_font_shape_1 (NSFont *font, NSString *string, - struct mac_glyph_layout *glyph_layouts, CFIndex glyph_len, - BOOL screen_font_p) + struct mac_glyph_layout *glyph_layouts, CFIndex glyph_len, + BOOL screen_font_p) { NSUInteger i; CFIndex result = 0; @@ -360,7 +358,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, /* Append a trailing space to measure baseline position. */ [textStorage appendAttributedString:([[[NSAttributedString alloc] - initWithString:@" "] autorelease])]; + initWithString:@" "] autorelease])]; [textStorage setFont:font]; [textContainer setLineFragmentPadding:0]; [layoutManager setUsesScreenFonts:screen_font_p]; @@ -396,13 +394,13 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, { NSRange range; NSFont *fontInTextStorage = - [textStorage attribute:NSFontAttributeName atIndex:i - longestEffectiveRange:&range - inRange:(NSMakeRange (0, stringLength))]; + [textStorage attribute:NSFontAttributeName atIndex:i + longestEffectiveRange:&range + inRange:(NSMakeRange (0, stringLength))]; if (!(fontInTextStorage == font - || [[fontInTextStorage fontName] isEqualToString:[font fontName]])) - break; + || [[fontInTextStorage fontName] isEqualToString:[font fontName]])) + break; i = NSMaxRange (range); } if (i < stringLength) @@ -414,12 +412,12 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, NSRange range = NSMakeRange (0, stringLength); range = [layoutManager glyphRangeForCharacterRange:range - actualCharacterRange:NULL]; + actualCharacterRange:NULL]; numberOfGlyphs = NSMaxRange (range); used = numberOfGlyphs; for (i = 0; i < numberOfGlyphs; i++) - if ([layoutManager notShownAttributeForGlyphAtIndex:i]) - used--; + if ([layoutManager notShownAttributeForGlyphAtIndex:i]) + used--; } if (0 < used && used <= glyph_len) @@ -432,186 +430,186 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, glyphIndex = 0; while ([layoutManager notShownAttributeForGlyphAtIndex:glyphIndex]) - glyphIndex++; + glyphIndex++; /* For now we assume the direction is not changed within the - string. */ + string. */ [layoutManager getGlyphsInRange:(NSMakeRange (glyphIndex, 1)) - glyphs:NULL characterIndexes:NULL - glyphInscriptions:NULL elasticBits:NULL - bidiLevels:&bidiLevel]; + glyphs:NULL characterIndexes:NULL + glyphInscriptions:NULL elasticBits:NULL + bidiLevels:&bidiLevel]; if (bidiLevel & 1) - permutation = xmalloc (sizeof (NSUInteger) * used); + permutation = xmalloc (sizeof (NSUInteger) * used); else - permutation = NULL; + permutation = NULL; #define RIGHT_TO_LEFT_P permutation /* Fill the `comp_range' member of struct mac_glyph_layout, and - setup a permutation for right-to-left text. */ + setup a permutation for right-to-left text. */ compRange = NSMakeRange (0, 0); for (range = NSMakeRange (0, 0); NSMaxRange (range) < used; - range.length++) - { - struct mac_glyph_layout *gl = glyph_layouts + NSMaxRange (range); - NSUInteger characterIndex = - [layoutManager characterIndexForGlyphAtIndex:glyphIndex]; + range.length++) + { + struct mac_glyph_layout *gl = glyph_layouts + NSMaxRange (range); + NSUInteger characterIndex = + [layoutManager characterIndexForGlyphAtIndex:glyphIndex]; - gl->string_index = characterIndex; + gl->string_index = characterIndex; - if (characterIndex >= NSMaxRange (compRange)) - { - compRange.location = NSMaxRange (compRange); - do - { - NSRange characterRange = - [string - rangeOfComposedCharacterSequenceAtIndex:characterIndex]; + if (characterIndex >= NSMaxRange (compRange)) + { + compRange.location = NSMaxRange (compRange); + do + { + NSRange characterRange = + [string + rangeOfComposedCharacterSequenceAtIndex:characterIndex]; - compRange.length = - NSMaxRange (characterRange) - compRange.location; - [layoutManager glyphRangeForCharacterRange:compRange - actualCharacterRange:&characterRange]; - characterIndex = NSMaxRange (characterRange) - 1; - } - while (characterIndex >= NSMaxRange (compRange)); + compRange.length = + NSMaxRange (characterRange) - compRange.location; + [layoutManager glyphRangeForCharacterRange:compRange + actualCharacterRange:&characterRange]; + characterIndex = NSMaxRange (characterRange) - 1; + } + while (characterIndex >= NSMaxRange (compRange)); - if (RIGHT_TO_LEFT_P) - for (i = 0; i < range.length; i++) - permutation[range.location + i] = NSMaxRange (range) - i - 1; + if (RIGHT_TO_LEFT_P) + for (i = 0; i < range.length; i++) + permutation[range.location + i] = NSMaxRange (range) - i - 1; - range = NSMakeRange (NSMaxRange (range), 0); - } + range = NSMakeRange (NSMaxRange (range), 0); + } - gl->comp_range.location = compRange.location; - gl->comp_range.length = compRange.length; + gl->comp_range.location = compRange.location; + gl->comp_range.length = compRange.length; - while (++glyphIndex < numberOfGlyphs) - if (![layoutManager notShownAttributeForGlyphAtIndex:glyphIndex]) - break; - } + while (++glyphIndex < numberOfGlyphs) + if (![layoutManager notShownAttributeForGlyphAtIndex:glyphIndex]) + break; + } if (RIGHT_TO_LEFT_P) - for (i = 0; i < range.length; i++) - permutation[range.location + i] = NSMaxRange (range) - i - 1; + for (i = 0; i < range.length; i++) + permutation[range.location + i] = NSMaxRange (range) - i - 1; /* Then fill the remaining members. */ glyphIndex = prevGlyphIndex = 0; while ([layoutManager notShownAttributeForGlyphAtIndex:glyphIndex]) - glyphIndex++; + glyphIndex++; if (!RIGHT_TO_LEFT_P) - totalAdvance = 0; + totalAdvance = 0; else - { - NSUInteger nrects; - NSRect *glyphRects = - [layoutManager - rectArrayForGlyphRange:(NSMakeRange (0, numberOfGlyphs)) - withinSelectedGlyphRange:(NSMakeRange (NSNotFound, 0)) - inTextContainer:textContainer rectCount:&nrects]; + { + NSUInteger nrects; + NSRect *glyphRects = + [layoutManager + rectArrayForGlyphRange:(NSMakeRange (0, numberOfGlyphs)) + withinSelectedGlyphRange:(NSMakeRange (NSNotFound, 0)) + inTextContainer:textContainer rectCount:&nrects]; - totalAdvance = NSMaxX (glyphRects[0]); - } + totalAdvance = NSMaxX (glyphRects[0]); + } for (i = 0; i < used; i++) - { - struct mac_glyph_layout *gl; - NSPoint location; - NSUInteger nextGlyphIndex; - NSRange glyphRange; - NSRect *glyphRects; - NSUInteger nrects; + { + struct mac_glyph_layout *gl; + NSPoint location; + NSUInteger nextGlyphIndex; + NSRange glyphRange; + NSRect *glyphRects; + NSUInteger nrects; - if (!RIGHT_TO_LEFT_P) - gl = glyph_layouts + i; - else - { - NSUInteger dest = permutation[i]; + if (!RIGHT_TO_LEFT_P) + gl = glyph_layouts + i; + else + { + NSUInteger dest = permutation[i]; - gl = glyph_layouts + dest; - if (i < dest) - { - CFIndex tmp = gl->string_index; + gl = glyph_layouts + dest; + if (i < dest) + { + CFIndex tmp = gl->string_index; - gl->string_index = glyph_layouts[i].string_index; - glyph_layouts[i].string_index = tmp; - } - } - gl->glyph_id = [layoutManager glyphAtIndex:glyphIndex]; + gl->string_index = glyph_layouts[i].string_index; + glyph_layouts[i].string_index = tmp; + } + } + gl->glyph_id = [layoutManager glyphAtIndex:glyphIndex]; - location = [layoutManager locationForGlyphAtIndex:glyphIndex]; - gl->baseline_delta = spaceLocation.y - location.y; + location = [layoutManager locationForGlyphAtIndex:glyphIndex]; + gl->baseline_delta = spaceLocation.y - location.y; - for (nextGlyphIndex = glyphIndex + 1; nextGlyphIndex < numberOfGlyphs; - nextGlyphIndex++) - if (![layoutManager - notShownAttributeForGlyphAtIndex:nextGlyphIndex]) - break; + for (nextGlyphIndex = glyphIndex + 1; nextGlyphIndex < numberOfGlyphs; + nextGlyphIndex++) + if (![layoutManager + notShownAttributeForGlyphAtIndex:nextGlyphIndex]) + break; - if (!RIGHT_TO_LEFT_P) - { - CGFloat maxX; + if (!RIGHT_TO_LEFT_P) + { + CGFloat maxX; - if (prevGlyphIndex == 0) - glyphRange = NSMakeRange (0, nextGlyphIndex); - else - glyphRange = NSMakeRange (glyphIndex, - nextGlyphIndex - glyphIndex); - glyphRects = - [layoutManager - rectArrayForGlyphRange:glyphRange - withinSelectedGlyphRange:(NSMakeRange (NSNotFound, 0)) - inTextContainer:textContainer rectCount:&nrects]; - maxX = max (NSMaxX (glyphRects[0]), totalAdvance); - gl->advance_delta = location.x - totalAdvance; - gl->advance = maxX - totalAdvance; - totalAdvance = maxX; - } - else - { - CGFloat minX; + if (prevGlyphIndex == 0) + glyphRange = NSMakeRange (0, nextGlyphIndex); + else + glyphRange = NSMakeRange (glyphIndex, + nextGlyphIndex - glyphIndex); + glyphRects = + [layoutManager + rectArrayForGlyphRange:glyphRange + withinSelectedGlyphRange:(NSMakeRange (NSNotFound, 0)) + inTextContainer:textContainer rectCount:&nrects]; + maxX = max (NSMaxX (glyphRects[0]), totalAdvance); + gl->advance_delta = location.x - totalAdvance; + gl->advance = maxX - totalAdvance; + totalAdvance = maxX; + } + else + { + CGFloat minX; - if (nextGlyphIndex == numberOfGlyphs) - glyphRange = NSMakeRange (prevGlyphIndex, - numberOfGlyphs - prevGlyphIndex); - else - glyphRange = NSMakeRange (prevGlyphIndex, - glyphIndex + 1 - prevGlyphIndex); - glyphRects = - [layoutManager - rectArrayForGlyphRange:glyphRange - withinSelectedGlyphRange:(NSMakeRange (NSNotFound, 0)) - inTextContainer:textContainer rectCount:&nrects]; - minX = min (NSMinX (glyphRects[0]), totalAdvance); - gl->advance = totalAdvance - minX; - totalAdvance = minX; - gl->advance_delta = location.x - totalAdvance; - } + if (nextGlyphIndex == numberOfGlyphs) + glyphRange = NSMakeRange (prevGlyphIndex, + numberOfGlyphs - prevGlyphIndex); + else + glyphRange = NSMakeRange (prevGlyphIndex, + glyphIndex + 1 - prevGlyphIndex); + glyphRects = + [layoutManager + rectArrayForGlyphRange:glyphRange + withinSelectedGlyphRange:(NSMakeRange (NSNotFound, 0)) + inTextContainer:textContainer rectCount:&nrects]; + minX = min (NSMinX (glyphRects[0]), totalAdvance); + gl->advance = totalAdvance - minX; + totalAdvance = minX; + gl->advance_delta = location.x - totalAdvance; + } - prevGlyphIndex = glyphIndex + 1; - glyphIndex = nextGlyphIndex; - } + prevGlyphIndex = glyphIndex + 1; + glyphIndex = nextGlyphIndex; + } if (RIGHT_TO_LEFT_P) - xfree (permutation); + xfree (permutation); #undef RIGHT_TO_LEFT_P result = used; - } - [textStorage release]; + } + [textStorage release]; return result; } static CFIndex mac_screen_font_shape (ScreenFontRef font, CFStringRef string, - struct mac_glyph_layout *glyph_layouts, - CFIndex glyph_len) + struct mac_glyph_layout *glyph_layouts, + CFIndex glyph_len) { return mac_font_shape_1 ([(NSFont *)font printerFont], - (NSString *) string, - glyph_layouts, glyph_len, YES); + (NSString *) string, + glyph_layouts, glyph_len, YES); } static CGColorRef @@ -649,6 +647,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, CGColorRelease (refcol_); \ } while (0) + /* Mac font driver. */ @@ -711,17 +710,17 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, CFStringRef font_names[3]; } macfont_language_default_font_names[] = { { CFSTR ("ja"), { CFSTR ("HiraKakuProN-W3"), /* 10.5 - 10.9 */ - CFSTR ("HiraKakuPro-W3"), /* 10.4 */ - NULL }}, + CFSTR ("HiraKakuPro-W3"), /* 10.4 */ + NULL }}, { CFSTR ("ko"), { CFSTR ("AppleSDGothicNeo-Regular"), /* 10.8 - 10.9 */ - CFSTR ("AppleGothic"), /* 10.4 - 10.7 */ - NULL }}, + CFSTR ("AppleGothic"), /* 10.4 - 10.7 */ + NULL }}, { CFSTR ("zh-Hans"), { CFSTR ("STHeitiSC-Light"), /* 10.6 - 10.9 */ - CFSTR ("STXihei"), /* 10.4 - 10.5 */ - NULL }}, + CFSTR ("STXihei"), /* 10.4 - 10.5 */ + NULL }}, { CFSTR ("zh-Hant"), { CFSTR ("STHeitiTC-Light"), /* 10.6 - 10.9 */ - CFSTR ("LiHeiPro"), /* 10.4 - 10.5 */ - NULL }}, + CFSTR ("LiHeiPro"), /* 10.4 - 10.5 */ + NULL }}, { NULL } }; #endif @@ -736,8 +735,8 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, threshold = CFPreferencesGetAppIntegerValue (CFSTR ("AppleAntiAliasingThreshold"), - kCFPreferencesCurrentApplication, - &valid_p); + kCFPreferencesCurrentApplication, + &valid_p); if (valid_p) macfont_antialias_threshold = threshold; } @@ -771,7 +770,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, static Boolean cfnumber_get_font_symbolic_traits_value (CFNumberRef number, - FontSymbolicTraits *sym_traits) + FontSymbolicTraits *sym_traits) { SInt64 sint64_value; @@ -789,7 +788,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, static void macfont_store_descriptor_attributes (FontDescriptorRef desc, - Lisp_Object spec_or_entity) + Lisp_Object spec_or_entity) { CFStringRef str; CFDictionaryRef dict; @@ -797,66 +796,66 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, CGFloat floatval; str = mac_font_descriptor_copy_attribute (desc, - MAC_FONT_FAMILY_NAME_ATTRIBUTE); + MAC_FONT_FAMILY_NAME_ATTRIBUTE); if (str) { ASET (spec_or_entity, FONT_FAMILY_INDEX, - macfont_intern_prop_cfstring (str)); + macfont_intern_prop_cfstring (str)); CFRelease (str); } dict = mac_font_descriptor_copy_attribute (desc, MAC_FONT_TRAITS_ATTRIBUTE); if (dict) { struct { - enum font_property_index index; - CFStringRef trait; - CGPoint points[6]; + enum font_property_index index; + CFStringRef trait; + CGPoint points[6]; } numeric_traits[] = - {{FONT_WEIGHT_INDEX, MAC_FONT_WEIGHT_TRAIT, - {{-0.4, 50}, /* light */ - {-0.24, 87.5}, /* (semi-light + normal) / 2 */ - {0, 100}, /* normal */ - {0.24, 140}, /* (semi-bold + normal) / 2 */ - {0.4, 200}, /* bold */ - {CGFLOAT_MAX, CGFLOAT_MAX}}}, - {FONT_SLANT_INDEX, MAC_FONT_SLANT_TRAIT, - {{0, 100}, {0.1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}, - {FONT_WIDTH_INDEX, MAC_FONT_WIDTH_TRAIT, - {{0, 100}, {1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}}; + {{FONT_WEIGHT_INDEX, MAC_FONT_WEIGHT_TRAIT, + {{-0.4, 50}, /* light */ + {-0.24, 87.5}, /* (semi-light + normal) / 2 */ + {0, 100}, /* normal */ + {0.24, 140}, /* (semi-bold + normal) / 2 */ + {0.4, 200}, /* bold */ + {CGFLOAT_MAX, CGFLOAT_MAX}}}, + {FONT_SLANT_INDEX, MAC_FONT_SLANT_TRAIT, + {{0, 100}, {0.1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}, + {FONT_WIDTH_INDEX, MAC_FONT_WIDTH_TRAIT, + {{0, 100}, {1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}}; int i; for (i = 0; i < ARRAYELTS (numeric_traits); i++) - { - num = CFDictionaryGetValue (dict, numeric_traits[i].trait); - if (num && CFNumberGetValue (num, kCFNumberCGFloatType, &floatval)) - { - CGPoint *point = numeric_traits[i].points; + { + num = CFDictionaryGetValue (dict, numeric_traits[i].trait); + if (num && CFNumberGetValue (num, kCFNumberCGFloatType, &floatval)) + { + CGPoint *point = numeric_traits[i].points; - while (point->x < floatval) - point++; - if (point == numeric_traits[i].points) - point++; - else if (point->x == CGFLOAT_MAX) - point--; - floatval = (point - 1)->y + ((floatval - (point - 1)->x) - * ((point->y - (point - 1)->y) - / (point->x - (point - 1)->x))); - FONT_SET_STYLE (spec_or_entity, numeric_traits[i].index, - make_number (lround (floatval))); - } - } + while (point->x < floatval) + point++; + if (point == numeric_traits[i].points) + point++; + else if (point->x == CGFLOAT_MAX) + point--; + floatval = (point - 1)->y + ((floatval - (point - 1)->x) + * ((point->y - (point - 1)->y) + / (point->x - (point - 1)->x))); + FONT_SET_STYLE (spec_or_entity, numeric_traits[i].index, + make_number (lround (floatval))); + } + } num = CFDictionaryGetValue (dict, MAC_FONT_SYMBOLIC_TRAIT); if (num) - { - FontSymbolicTraits sym_traits; - int spacing; + { + FontSymbolicTraits sym_traits; + int spacing; - cfnumber_get_font_symbolic_traits_value (num, &sym_traits); - spacing = (sym_traits & MAC_FONT_TRAIT_MONO_SPACE - ? FONT_SPACING_MONO : FONT_SPACING_PROPORTIONAL); - ASET (spec_or_entity, FONT_SPACING_INDEX, make_number (spacing)); - } + cfnumber_get_font_symbolic_traits_value (num, &sym_traits); + spacing = (sym_traits & MAC_FONT_TRAIT_MONO_SPACE + ? FONT_SPACING_MONO : FONT_SPACING_PROPORTIONAL); + ASET (spec_or_entity, FONT_SPACING_INDEX, make_number (spacing)); + } CFRelease (dict); } @@ -871,7 +870,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, static Lisp_Object macfont_descriptor_entity (FontDescriptorRef desc, Lisp_Object extra, - FontSymbolicTraits synth_sym_traits) + FontSymbolicTraits synth_sym_traits) { Lisp_Object entity; CFDictionaryRef dict; @@ -891,7 +890,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, CFNumberRef num = CFDictionaryGetValue (dict, MAC_FONT_SYMBOLIC_TRAIT); if (num) - cfnumber_get_font_symbolic_traits_value (num, &sym_traits); + cfnumber_get_font_symbolic_traits_value (num, &sym_traits); CFRelease (dict); } if (EQ (AREF (entity, FONT_SIZE_INDEX), make_number (0))) @@ -899,16 +898,16 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, ASET (entity, FONT_EXTRA_INDEX, Fcopy_sequence (extra)); name = mac_font_descriptor_copy_attribute (desc, MAC_FONT_NAME_ATTRIBUTE); font_put_extra (entity, QCfont_entity, - make_save_ptr_int ((void *) name, sym_traits)); + make_save_ptr_int ((void *) name, sym_traits)); if (synth_sym_traits & MAC_FONT_TRAIT_ITALIC) FONT_SET_STYLE (entity, FONT_SLANT_INDEX, - make_number (FONT_SLANT_SYNTHETIC_ITALIC)); + make_number (FONT_SLANT_SYNTHETIC_ITALIC)); if (synth_sym_traits & MAC_FONT_TRAIT_BOLD) FONT_SET_STYLE (entity, FONT_WEIGHT_INDEX, - make_number (FONT_WEIGHT_SYNTHETIC_BOLD)); + make_number (FONT_WEIGHT_SYNTHETIC_BOLD)); if (synth_sym_traits & MAC_FONT_TRAIT_MONO_SPACE) ASET (entity, FONT_SPACING_INDEX, - make_number (FONT_SPACING_SYNTHETIC_MONO)); + make_number (FONT_SPACING_SYNTHETIC_MONO)); return entity; } @@ -925,22 +924,9 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, if (family_name == NULL) return NULL; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 - if (CTFontManagerCompareFontFamilyNames != NULL) -#endif { family_name_comparator = CTFontManagerCompareFontFamilyNames; } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 - else /* CTFontManagerCompareFontFamilyNames == NULL */ -#endif -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 */ -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 - { - family_name_comparator = mac_font_family_compare; - } -#endif if ((*family_name_comparator) (family_name, CFSTR ("LastResort"), NULL) == kCFCompareEqualTo) @@ -948,36 +934,36 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, else while (1) { - CFIndex i, count; + CFIndex i, count; - if (families == NULL) - { - families = mac_font_create_available_families (); - using_cache_p = 0; - if (families == NULL) - break; - } + if (families == NULL) + { + families = mac_font_create_available_families (); + using_cache_p = 0; + if (families == NULL) + break; + } - count = CFArrayGetCount (families); - i = CFArrayBSearchValues (families, CFRangeMake (0, count), - (const void *) family_name, - family_name_comparator, NULL); - if (i < count) - { - CFStringRef name = CFArrayGetValueAtIndex (families, i); + count = CFArrayGetCount (families); + i = CFArrayBSearchValues (families, CFRangeMake (0, count), + (const void *) family_name, + family_name_comparator, NULL); + if (i < count) + { + CFStringRef name = CFArrayGetValueAtIndex (families, i); - if ((*family_name_comparator) (name, family_name, NULL) - == kCFCompareEqualTo) - result = CFRetain (name); - } + if ((*family_name_comparator) (name, family_name, NULL) + == kCFCompareEqualTo) + result = CFRetain (name); + } - if (result || !using_cache_p) - break; - else - { - CFRelease (families); - families = NULL; - } + if (result || !using_cache_p) + break; + else + { + CFRelease (families); + families = NULL; + } } CFRelease (family_name); @@ -1004,23 +990,23 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, signed width_frac : WIDTH_FRAC_BITS, width_int : 16 - WIDTH_FRAC_BITS; }; -#define METRICS_VALUE(metrics, member) \ +#define METRICS_VALUE(metrics, member) \ (((metrics)->member##_high << 8) | (metrics)->member##_low) -#define METRICS_SET_VALUE(metrics, member, value) \ - do {short tmp = (value); (metrics)->member##_low = tmp & 0xff; \ - (metrics)->member##_high = tmp >> 8;} while (0) +#define METRICS_SET_VALUE(metrics, member, value) \ + do {short tmp = (value); (metrics)->member##_low = tmp & 0xff; \ + (metrics)->member##_high = tmp >> 8;} while (0) enum metrics_status - { - METRICS_INVALID = -1, /* metrics entry is invalid */ - METRICS_WIDTH_VALID = -2 /* width is valid but others are invalid */ - }; +{ + METRICS_INVALID = -1, /* metrics entry is invalid */ + METRICS_WIDTH_VALID = -2 /* width is valid but others are invalid */ +}; -#define METRICS_STATUS(metrics) \ +#define METRICS_STATUS(metrics) \ (METRICS_VALUE (metrics, ascent) + METRICS_VALUE (metrics, descent)) -#define METRICS_SET_STATUS(metrics, status) \ - do {METRICS_SET_VALUE (metrics, ascent, 0); \ - METRICS_SET_VALUE (metrics, descent, status);} while (0) +#define METRICS_SET_STATUS(metrics, status) \ + do {METRICS_SET_VALUE (metrics, ascent, 0); \ + METRICS_SET_VALUE (metrics, descent, status);} while (0) #define METRICS_NCOLS_PER_ROW (128) #define LCD_FONT_SMOOTHING_LEFT_MARGIN (0.396f) @@ -1028,8 +1014,8 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, static int macfont_glyph_extents (struct font *font, CGGlyph glyph, - struct font_metrics *metrics, CGFloat *advance_delta, - int force_integral_p) + struct font_metrics *metrics, CGFloat *advance_delta, + int force_integral_p) { struct macfont_info *macfont_info = (struct macfont_info *) font; FontRef macfont = macfont_info->macfont; @@ -1042,11 +1028,11 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, if (row >= macfont_info->metrics_nrows) { macfont_info->metrics = - xrealloc (macfont_info->metrics, - sizeof (struct macfont_metrics *) * (row + 1)); + xrealloc (macfont_info->metrics, + sizeof (struct macfont_metrics *) * (row + 1)); memset (macfont_info->metrics + macfont_info->metrics_nrows, 0, - (sizeof (struct macfont_metrics *) - * (row + 1 - macfont_info->metrics_nrows))); + (sizeof (struct macfont_metrics *) + * (row + 1 - macfont_info->metrics_nrows))); macfont_info->metrics_nrows = row + 1; } if (macfont_info->metrics[row] == NULL) @@ -1056,7 +1042,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, new = xmalloc (sizeof (struct macfont_metrics) * METRICS_NCOLS_PER_ROW); for (i = 0; i < METRICS_NCOLS_PER_ROW; i++) - METRICS_SET_STATUS (new + i, METRICS_INVALID); + METRICS_SET_STATUS (new + i, METRICS_INVALID); macfont_info->metrics[row] = new; } cache = macfont_info->metrics[row] + col; @@ -1066,17 +1052,17 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, CGFloat fwidth; if (macfont_info->screen_font) - fwidth = mac_screen_font_get_advance_width_for_glyph (macfont_info->screen_font, glyph); + fwidth = mac_screen_font_get_advance_width_for_glyph (macfont_info->screen_font, glyph); else - fwidth = mac_font_get_advance_width_for_glyph (macfont, glyph); + fwidth = mac_font_get_advance_width_for_glyph (macfont, glyph); /* For synthetic mono fonts, cache->width_{int,frac} holds the - advance delta value. */ + advance delta value. */ if (macfont_info->spacing == MACFONT_SPACING_SYNTHETIC_MONO) - fwidth = (font->pixel_size - fwidth) / 2; + fwidth = (font->pixel_size - fwidth) / 2; cache->width_int = lround (fwidth); cache->width_frac = lround ((fwidth - cache->width_int) - * WIDTH_FRAC_SCALE); + * WIDTH_FRAC_SCALE); METRICS_SET_STATUS (cache, METRICS_WIDTH_VALID); } if (macfont_info->spacing == MACFONT_SPACING_SYNTHETIC_MONO) @@ -1087,52 +1073,52 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, if (metrics) { if (METRICS_STATUS (cache) == METRICS_WIDTH_VALID) - { - CGRect bounds = mac_font_get_bounding_rect_for_glyph (macfont, glyph); + { + CGRect bounds = mac_font_get_bounding_rect_for_glyph (macfont, glyph); - if (macfont_info->synthetic_italic_p) - { - /* We assume the members a, b, c, and d in - synthetic_italic_atfm are non-negative. */ - bounds.origin = - CGPointApplyAffineTransform (bounds.origin, - synthetic_italic_atfm); - bounds.size = - CGSizeApplyAffineTransform (bounds.size, synthetic_italic_atfm); - } - if (macfont_info->synthetic_bold_p) - { - CGFloat d = - - synthetic_bold_factor * mac_font_get_size (macfont) / 2; + if (macfont_info->synthetic_italic_p) + { + /* We assume the members a, b, c, and d in + synthetic_italic_atfm are non-negative. */ + bounds.origin = + CGPointApplyAffineTransform (bounds.origin, + synthetic_italic_atfm); + bounds.size = + CGSizeApplyAffineTransform (bounds.size, synthetic_italic_atfm); + } + if (macfont_info->synthetic_bold_p && ! force_integral_p) + { + CGFloat d = + - synthetic_bold_factor * mac_font_get_size (macfont) / 2; - bounds = CGRectInset (bounds, d, d); - } - switch (macfont_info->spacing) - { - case MACFONT_SPACING_PROPORTIONAL: - bounds.origin.x += - (cache->width_frac - / (CGFloat) (WIDTH_FRAC_SCALE * 2)); - break; - case MACFONT_SPACING_MONO: - break; - case MACFONT_SPACING_SYNTHETIC_MONO: - bounds.origin.x += (cache->width_int - + (cache->width_frac - / (CGFloat) WIDTH_FRAC_SCALE)); - break; - } - if (bounds.size.width > 0) - { - bounds.origin.x -= LCD_FONT_SMOOTHING_LEFT_MARGIN; - bounds.size.width += (LCD_FONT_SMOOTHING_LEFT_MARGIN - + LCD_FONT_SMOOTHING_RIGHT_MARGIN); - } - bounds = CGRectIntegral (bounds); - METRICS_SET_VALUE (cache, lbearing, CGRectGetMinX (bounds)); - METRICS_SET_VALUE (cache, rbearing, CGRectGetMaxX (bounds)); - METRICS_SET_VALUE (cache, ascent, CGRectGetMaxY (bounds)); - METRICS_SET_VALUE (cache, descent, -CGRectGetMinY (bounds)); - } + bounds = CGRectInset (bounds, d, d); + } + switch (macfont_info->spacing) + { + case MACFONT_SPACING_PROPORTIONAL: + bounds.origin.x += - (cache->width_frac + / (CGFloat) (WIDTH_FRAC_SCALE * 2)); + break; + case MACFONT_SPACING_MONO: + break; + case MACFONT_SPACING_SYNTHETIC_MONO: + bounds.origin.x += (cache->width_int + + (cache->width_frac + / (CGFloat) WIDTH_FRAC_SCALE)); + break; + } + if (bounds.size.width > 0) + { + bounds.origin.x -= LCD_FONT_SMOOTHING_LEFT_MARGIN; + bounds.size.width += (LCD_FONT_SMOOTHING_LEFT_MARGIN + + LCD_FONT_SMOOTHING_RIGHT_MARGIN); + } + bounds = CGRectIntegral (bounds); + METRICS_SET_VALUE (cache, lbearing, CGRectGetMinX (bounds)); + METRICS_SET_VALUE (cache, rbearing, CGRectGetMaxX (bounds)); + METRICS_SET_VALUE (cache, ascent, CGRectGetMaxY (bounds)); + METRICS_SET_VALUE (cache, descent, -CGRectGetMinY (bounds)); + } metrics->lbearing = METRICS_VALUE (cache, lbearing); metrics->rbearing = METRICS_VALUE (cache, rbearing); metrics->width = width; @@ -1143,22 +1129,22 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, if (advance_delta) { switch (macfont_info->spacing) - { - case MACFONT_SPACING_PROPORTIONAL: - *advance_delta = (force_integral_p ? 0 - : - (cache->width_frac - / (CGFloat) (WIDTH_FRAC_SCALE * 2))); - break; - case MACFONT_SPACING_MONO: - *advance_delta = 0; - break; - case MACFONT_SPACING_SYNTHETIC_MONO: - *advance_delta = (force_integral_p ? cache->width_int - : (cache->width_int - + (cache->width_frac - / (CGFloat) WIDTH_FRAC_SCALE))); - break; - } + { + case MACFONT_SPACING_PROPORTIONAL: + *advance_delta = (force_integral_p ? 0 + : - (cache->width_frac + / (CGFloat) (WIDTH_FRAC_SCALE * 2))); + break; + case MACFONT_SPACING_MONO: + *advance_delta = 0; + break; + case MACFONT_SPACING_SYNTHETIC_MONO: + *advance_delta = (force_integral_p ? cache->width_int + : (cache->width_int + + (cache->width_frac + / (CGFloat) WIDTH_FRAC_SCALE))); + break; + } } return width; @@ -1220,7 +1206,7 @@ equal to the number of rows that are invalid as BMP (i.e., from static CFCharacterSetRef macfont_get_cf_charset_for_name (CFStringRef); static CGGlyph macfont_get_glyph_for_character (struct font *, UTF32Char); static CGGlyph macfont_get_glyph_for_cid (struct font *font, - CharacterCollection, CGFontIndex); + CharacterCollection, CGFontIndex); static CFDataRef macfont_get_uvs_table (struct font *, CharacterCollection *); static struct macfont_cache * @@ -1231,39 +1217,39 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font, if (macfont_cache_dictionary == NULL) { macfont_cache_dictionary = - CFDictionaryCreateMutable (NULL, 0, - &kCFTypeDictionaryKeyCallBacks, NULL); + CFDictionaryCreateMutable (NULL, 0, + &kCFTypeDictionaryKeyCallBacks, NULL); cache = NULL; } else cache = ((struct macfont_cache *) - CFDictionaryGetValue (macfont_cache_dictionary, key)); + CFDictionaryGetValue (macfont_cache_dictionary, key)); if (cache == NULL) { FontRef macfont = mac_font_create_with_name (key, 0); if (macfont) - { - cache = xzalloc (sizeof (struct macfont_cache)); - /* Treat the LastResort font as if it contained glyphs for - all characters. This may look too rough, but neither - CTFontCopyCharacterSet nor -[NSFont coveredCharacterSet] - for this font is correct for non-BMP characters on Mac OS - X 10.5, anyway. */ - if (CFEqual (key, CFSTR ("LastResort"))) - { - CFRange range = CFRangeMake (0, MAX_UNICODE_CHAR + 1); + { + cache = xzalloc (sizeof (struct macfont_cache)); + /* Treat the LastResort font as if it contained glyphs for + all characters. This may look too rough, but neither + CTFontCopyCharacterSet nor -[NSFont coveredCharacterSet] + for this font is correct for non-BMP characters on Mac OS + X 10.5, anyway. */ + if (CFEqual (key, CFSTR ("LastResort"))) + { + CFRange range = CFRangeMake (0, MAX_UNICODE_CHAR + 1); - cache->cf_charset = - CFCharacterSetCreateWithCharactersInRange (NULL, range); - } - if (cache->cf_charset == NULL) - cache->cf_charset = mac_font_copy_character_set (macfont); - CFDictionaryAddValue (macfont_cache_dictionary, key, - (const void *) cache); - CFRelease (macfont); - } + cache->cf_charset = + CFCharacterSetCreateWithCharactersInRange (NULL, range); + } + if (cache->cf_charset == NULL) + cache->cf_charset = mac_font_copy_character_set (macfont); + CFDictionaryAddValue (macfont_cache_dictionary, key, + (const void *) cache); + CFRelease (macfont); + } } return cache; @@ -1285,13 +1271,13 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font, int i; for (i = 0; i < cache->glyph.nrows; i++) - xfree (cache->glyph.matrix[i]); + xfree (cache->glyph.matrix[i]); xfree (cache->glyph.matrix); if (cache->glyph.dictionary) - CFRelease (cache->glyph.dictionary); + CFRelease (cache->glyph.dictionary); memset (&cache->glyph, 0, sizeof (cache->glyph)); if (cache->uvs.table) - CFRelease (cache->uvs.table); + CFRelease (cache->uvs.table); memset (&cache->uvs, 0, sizeof (cache->uvs)); } } @@ -1325,124 +1311,114 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font, int nkeys_or_perm = cache->glyph.row_nkeys_or_perm[row]; if (nkeys_or_perm < ROW_PERM_OFFSET) - { - UniChar unichars[256], ch; - CGGlyph *glyphs; - int i, len; - int nrows; -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 - dispatch_queue_t queue; - dispatch_group_t group = NULL; -#else - int nkeys; -#endif + { + UniChar unichars[256], ch; + CGGlyph *glyphs; + int i, len; + int nrows; + dispatch_queue_t queue; + dispatch_group_t group = NULL; - if (row != 0) - { - CFMutableDictionaryRef dictionary; - uintptr_t key, value; - int nshifts; - CGGlyph glyph; + if (row != 0) + { + CFMutableDictionaryRef dictionary; + uintptr_t key, value; + int nshifts; + CGGlyph glyph; - if (cache->glyph.dictionary == NULL) - cache->glyph.dictionary = - CFDictionaryCreateMutable (NULL, 0, NULL, NULL); - dictionary = cache->glyph.dictionary; - key = c / NGLYPHS_IN_VALUE; - nshifts = ((c % NGLYPHS_IN_VALUE) * sizeof (CGGlyph) * 8); - value = ((uintptr_t) - CFDictionaryGetValue (dictionary, (const void *) key)); - glyph = (value >> nshifts); - if (glyph) - return glyph; + if (cache->glyph.dictionary == NULL) + cache->glyph.dictionary = + CFDictionaryCreateMutable (NULL, 0, NULL, NULL); + dictionary = cache->glyph.dictionary; + key = c / NGLYPHS_IN_VALUE; + nshifts = ((c % NGLYPHS_IN_VALUE) * sizeof (CGGlyph) * 8); + value = ((uintptr_t) + CFDictionaryGetValue (dictionary, (const void *) key)); + glyph = (value >> nshifts); + if (glyph) + return glyph; - if (nkeys_or_perm + 1 != ROW_PERM_OFFSET) - { - ch = c; - if (!mac_font_get_glyphs_for_characters (macfont, &ch, - &glyph, 1) - || glyph == 0) - glyph = kCGFontIndexInvalid; + if (nkeys_or_perm + 1 != ROW_PERM_OFFSET) + { + ch = c; + if (!mac_font_get_glyphs_for_characters (macfont, &ch, + &glyph, 1) + || glyph == 0) + glyph = kCGFontIndexInvalid; - if (value == 0) - cache->glyph.row_nkeys_or_perm[row] = nkeys_or_perm + 1; - value |= ((uintptr_t) glyph << nshifts); - CFDictionarySetValue (dictionary, (const void *) key, - (const void *) value); + if (value == 0) + cache->glyph.row_nkeys_or_perm[row] = nkeys_or_perm + 1; + value |= ((uintptr_t) glyph << nshifts); + CFDictionarySetValue (dictionary, (const void *) key, + (const void *) value); - return glyph; - } + return glyph; + } -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 - queue = - dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - group = dispatch_group_create (); - dispatch_group_async (group, queue, ^{ - int nkeys; - uintptr_t key; -#endif - nkeys = nkeys_or_perm; - for (key = row * (256 / NGLYPHS_IN_VALUE); ; key++) - if (CFDictionaryContainsKey (dictionary, - (const void *) key)) - { - CFDictionaryRemoveValue (dictionary, - (const void *) key); - if (--nkeys == 0) - break; - } -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 - }); -#endif - } + queue = + dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + group = dispatch_group_create (); + dispatch_group_async (group, queue, ^{ + int nkeys; + uintptr_t key; + nkeys = nkeys_or_perm; + for (key = row * (256 / NGLYPHS_IN_VALUE); ; key++) + if (CFDictionaryContainsKey (dictionary, + (const void *) key)) + { + CFDictionaryRemoveValue (dictionary, + (const void *) key); + if (--nkeys == 0) + break; + } + }); + } - len = 0; - for (i = 0; i < 256; i++) - { - ch = row * 256 + i; - if (CFCharacterSetIsLongCharacterMember (cache->cf_charset, ch)) - unichars[len++] = ch; - } + len = 0; + for (i = 0; i < 256; i++) + { + ch = row * 256 + i; + if (CFCharacterSetIsLongCharacterMember (cache->cf_charset, ch)) + unichars[len++] = ch; + } - glyphs = xmalloc (sizeof (CGGlyph) * 256); - if (len > 0) - { - mac_font_get_glyphs_for_characters (macfont, unichars, - glyphs, len); - while (i > len) - { - int next = unichars[len - 1] % 256; + glyphs = xmalloc (sizeof (CGGlyph) * 256); + if (len > 0) + { + mac_font_get_glyphs_for_characters (macfont, unichars, + glyphs, len); + while (i > len) + { + int next = unichars[len - 1] % 256; - while (--i > next) - glyphs[i] = kCGFontIndexInvalid; + while (--i > next) + glyphs[i] = kCGFontIndexInvalid; - len--; - glyphs[i] = glyphs[len]; - if (len == 0) - break; - } - } - if (i > len) - while (i-- > 0) - glyphs[i] = kCGFontIndexInvalid; + len--; + glyphs[i] = glyphs[len]; + if (len == 0) + break; + } + } + if (i > len) + while (i-- > 0) + glyphs[i] = kCGFontIndexInvalid; - nrows = cache->glyph.nrows; - nkeys_or_perm = nrows + ROW_PERM_OFFSET; - cache->glyph.row_nkeys_or_perm[row] = nkeys_or_perm; - nrows++; - cache->glyph.matrix = xrealloc (cache->glyph.matrix, - sizeof (CGGlyph *) * nrows); - cache->glyph.matrix[nrows - 1] = glyphs; - cache->glyph.nrows = nrows; + nrows = cache->glyph.nrows; + nkeys_or_perm = nrows + ROW_PERM_OFFSET; + cache->glyph.row_nkeys_or_perm[row] = nkeys_or_perm; + nrows++; + cache->glyph.matrix = xrealloc (cache->glyph.matrix, + sizeof (CGGlyph *) * nrows); + cache->glyph.matrix[nrows - 1] = glyphs; + cache->glyph.nrows = nrows; -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 - if (group) - { - dispatch_group_wait (group, DISPATCH_TIME_FOREVER); - dispatch_release (group); - } -#endif - } + if (group) + { + dispatch_group_wait (group, DISPATCH_TIME_FOREVER); + dispatch_release (group); + } + } return cache->glyph.matrix[nkeys_or_perm - ROW_PERM_OFFSET][c % 256]; } @@ -1453,29 +1429,29 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font, CGGlyph glyph; if (cache->glyph.dictionary == NULL) - cache->glyph.dictionary = - CFDictionaryCreateMutable (NULL, 0, NULL, NULL); + cache->glyph.dictionary = + CFDictionaryCreateMutable (NULL, 0, NULL, NULL); key = c / NGLYPHS_IN_VALUE; nshifts = ((c % NGLYPHS_IN_VALUE) * sizeof (CGGlyph) * 8); value = (uintptr_t) CFDictionaryGetValue (cache->glyph.dictionary, - (const void *) key); + (const void *) key); glyph = (value >> nshifts); if (glyph == 0) - { - UniChar unichars[2]; - CGGlyph glyphs[2]; - CFIndex count = macfont_store_utf32char_to_unichars (c, unichars); + { + UniChar unichars[2]; + CGGlyph glyphs[2]; + CFIndex count = macfont_store_utf32char_to_unichars (c, unichars); - if (mac_font_get_glyphs_for_characters (macfont, unichars, glyphs, - count)) - glyph = glyphs[0]; - if (glyph == 0) - glyph = kCGFontIndexInvalid; + if (mac_font_get_glyphs_for_characters (macfont, unichars, glyphs, + count)) + glyph = glyphs[0]; + if (glyph == 0) + glyph = kCGFontIndexInvalid; - value |= ((uintptr_t) glyph << nshifts); - CFDictionarySetValue (cache->glyph.dictionary, - (const void *) key, (const void *) value); - } + value |= ((uintptr_t) glyph << nshifts); + CFDictionarySetValue (cache->glyph.dictionary, + (const void *) key, (const void *) value); + } return glyph; } @@ -1483,7 +1459,7 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font, static CGGlyph macfont_get_glyph_for_cid (struct font *font, CharacterCollection collection, - CGFontIndex cid) + CGFontIndex cid) { struct macfont_info *macfont_info = (struct macfont_info *) font; FontRef macfont = macfont_info->macfont; @@ -1504,34 +1480,34 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font, { CFDataRef uvs_table = mac_font_copy_uvs_table (macfont); CharacterCollection uvs_collection = - MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING; + MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING; if (uvs_table == NULL - && mac_font_get_glyph_for_cid (macfont, - MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1, - 6480) != kCGFontIndexInvalid) - { - /* If the glyph for U+4E55 is accessible via its CID 6480, - then we use the Adobe-Japan1 UVS table, which maps a - variation sequence to a CID, as a fallback. */ - static CFDataRef mac_uvs_table_adobe_japan1 = NULL; + && mac_font_get_glyph_for_cid (macfont, + MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1, + 6480) != kCGFontIndexInvalid) + { + /* If the glyph for U+4E55 is accessible via its CID 6480, + then we use the Adobe-Japan1 UVS table, which maps a + variation sequence to a CID, as a fallback. */ + static CFDataRef mac_uvs_table_adobe_japan1 = NULL; - if (mac_uvs_table_adobe_japan1 == NULL) - mac_uvs_table_adobe_japan1 = - CFDataCreateWithBytesNoCopy (NULL, - mac_uvs_table_adobe_japan1_bytes, - sizeof (mac_uvs_table_adobe_japan1_bytes), - kCFAllocatorNull); - if (mac_uvs_table_adobe_japan1) - { - uvs_table = CFRetain (mac_uvs_table_adobe_japan1); - uvs_collection = MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1; - } - } + if (mac_uvs_table_adobe_japan1 == NULL) + mac_uvs_table_adobe_japan1 = + CFDataCreateWithBytesNoCopy (NULL, + mac_uvs_table_adobe_japan1_bytes, + sizeof (mac_uvs_table_adobe_japan1_bytes), + kCFAllocatorNull); + if (mac_uvs_table_adobe_japan1) + { + uvs_table = CFRetain (mac_uvs_table_adobe_japan1); + uvs_collection = MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1; + } + } if (uvs_table == NULL) - cache->uvs.table = kCFNull; + cache->uvs.table = kCFNull; else - cache->uvs.table = uvs_table; + cache->uvs.table = uvs_table; cache->uvs.collection = uvs_collection; } @@ -1553,12 +1529,12 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font, static void macfont_close (struct font *); static int macfont_has_char (Lisp_Object, int); static unsigned macfont_encode_char (struct font *, int); -static int macfont_text_extents (struct font *, unsigned int *, int, - struct font_metrics *); +static void macfont_text_extents (struct font *, unsigned int *, int, + struct font_metrics *); static int macfont_draw (struct glyph_string *, int, int, int, int, bool); static Lisp_Object macfont_shape (Lisp_Object); static int macfont_variation_glyphs (struct font *, int c, - unsigned variations[256]); + unsigned variations[256]); static void macfont_filter_properties (Lisp_Object, Lisp_Object); static struct font_driver macfont_driver = @@ -1610,19 +1586,19 @@ static int macfont_variation_glyphs (struct font *, int c, for (i = j = 0; i < SBYTES (SYMBOL_NAME (registry)); i++, j++) { if (str[i] == '.') - re[j++] = '\\'; + re[j++] = '\\'; else if (str[i] == '*') - re[j++] = '.'; + re[j++] = '.'; re[j] = str[i]; if (re[j] == '?') - re[j] = '.'; + re[j] = '.'; } re[j] = '\0'; regexp = make_unibyte_string (re, j); for (i = 0; cf_charset_table[i].name; i++) if (fast_c_string_match_ignore_case - (regexp, cf_charset_table[i].name, - strlen (cf_charset_table[i].name)) >= 0) + (regexp, cf_charset_table[i].name, + strlen (cf_charset_table[i].name)) >= 0) break; if (! cf_charset_table[i].name) return -1; @@ -1635,27 +1611,27 @@ static int macfont_variation_glyphs (struct font *, int c, CFMutableCharacterSetRef charset = CFCharacterSetCreateMutable (NULL); if (! charset) - return -1; + return -1; for (j = 0; uniquifier[j]; j++) - { - count += macfont_store_utf32char_to_unichars (uniquifier[j], - unichars + count); - CFCharacterSetAddCharactersInRange (charset, - CFRangeMake (uniquifier[j], 1)); - } + { + count += macfont_store_utf32char_to_unichars (uniquifier[j], + unichars + count); + CFCharacterSetAddCharactersInRange (charset, + CFRangeMake (uniquifier[j], 1)); + } string = CFStringCreateWithCharacters (NULL, unichars, count); if (! string) - { - CFRelease (charset); - return -1; - } + { + CFRelease (charset); + return -1; + } cf_charset_table[i].cf_charset = CFCharacterSetCreateCopy (NULL, - charset); + charset); CFRelease (charset); /* CFCharacterSetCreateWithCharactersInString does not handle - surrogate pairs properly as of Mac OS X 10.5. */ - cf_charset_table[i].cf_charset_string = string; + surrogate pairs properly as of Mac OS X 10.5. */ + cf_charset_table[i].cf_charset_string = string; } return i; } @@ -1668,19 +1644,19 @@ static int macfont_variation_glyphs (struct font *, int c, unsigned int *features[2]; }; -#define OTF_SYM_TAG(SYM, TAG) \ - do { \ - unsigned char *p = SDATA (SYMBOL_NAME (SYM)); \ +#define OTF_SYM_TAG(SYM, TAG) \ + do { \ + unsigned char *p = SDATA (SYMBOL_NAME (SYM)); \ TAG = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]; \ } while (0) -#define OTF_TAG_STR(TAG, P) \ - do { \ - (P)[0] = (char) (TAG >> 24); \ - (P)[1] = (char) ((TAG >> 16) & 0xFF); \ - (P)[2] = (char) ((TAG >> 8) & 0xFF); \ - (P)[3] = (char) (TAG & 0xFF); \ - (P)[4] = '\0'; \ +#define OTF_TAG_STR(TAG, P) \ + do { \ + (P)[0] = (char) (TAG >> 24); \ + (P)[1] = (char) ((TAG >> 16) & 0xFF); \ + (P)[2] = (char) ((TAG >> 8) & 0xFF); \ + (P)[3] = (char) (TAG & 0xFF); \ + (P)[4] = '\0'; \ } while (0) static struct OpenTypeSpec * @@ -1699,9 +1675,9 @@ static int macfont_variation_glyphs (struct font *, int c, OTF_SYM_TAG (spec->script, spec->script_tag); val = assq_no_quit (spec->script, Votf_script_alist); if (CONSP (val) && SYMBOLP (XCDR (val))) - spec->script = XCDR (val); + spec->script = XCDR (val); else - spec->script = Qnil; + spec->script = Qnil; } else spec->script_tag = 0x44464C54; /* "DFLT" */ @@ -1711,7 +1687,7 @@ static int macfont_variation_glyphs (struct font *, int c, { val = XCAR (otf_spec); if (! NILP (val)) - OTF_SYM_TAG (val, spec->langsys_tag); + OTF_SYM_TAG (val, spec->langsys_tag); otf_spec = XCDR (otf_spec); } spec->nfeatures[0] = spec->nfeatures[1] = 0; @@ -1721,31 +1697,31 @@ static int macfont_variation_glyphs (struct font *, int c, val = XCAR (otf_spec); if (NILP (val)) - continue; + continue; len = Flength (val); spec->features[i] = - (min (PTRDIFF_MAX, SIZE_MAX) / sizeof (int) < XINT (len) - ? 0 - : malloc (XINT (len) * sizeof *spec->features[i])); + (min (PTRDIFF_MAX, SIZE_MAX) / sizeof (int) < XINT (len) + ? 0 + : malloc (XINT (len) * sizeof *spec->features[i])); if (! spec->features[i]) - { - if (i > 0 && spec->features[0]) - free (spec->features[0]); - free (spec); - return NULL; - } + { + if (i > 0 && spec->features[0]) + free (spec->features[0]); + free (spec); + return NULL; + } for (j = 0, negative = 0; CONSP (val); val = XCDR (val)) - { - if (NILP (XCAR (val))) - negative = 1; - else - { - unsigned int tag; + { + if (NILP (XCAR (val))) + negative = 1; + else + { + unsigned int tag; - OTF_SYM_TAG (XCAR (val), tag); - spec->features[i][j++] = negative ? tag & 0x80000000 : tag; - } - } + OTF_SYM_TAG (XCAR (val), tag); + spec->features[i][j++] = negative ? tag & 0x80000000 : tag; + } + } spec->nfeatures[i] = j; } return spec; @@ -1769,16 +1745,16 @@ static int macfont_variation_glyphs (struct font *, int c, CGPoint points[6]; } numeric_traits[] = {{FONT_WEIGHT_INDEX, MAC_FONT_WEIGHT_TRAIT, - {{-0.4, 50}, /* light */ - {-0.24, 87.5}, /* (semi-light + normal) / 2 */ - {0, 100}, /* normal */ - {0.24, 140}, /* (semi-bold + normal) / 2 */ - {0.4, 200}, /* bold */ - {CGFLOAT_MAX, CGFLOAT_MAX}}}, + {{-0.4, 50}, /* light */ + {-0.24, 87.5}, /* (semi-light + normal) / 2 */ + {0, 100}, /* normal */ + {0.24, 140}, /* (semi-bold + normal) / 2 */ + {0.4, 200}, /* bold */ + {CGFLOAT_MAX, CGFLOAT_MAX}}}, {FONT_SLANT_INDEX, MAC_FONT_SLANT_TRAIT, - {{0, 100}, {0.1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}, + {{0, 100}, {0.1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}, {FONT_WIDTH_INDEX, MAC_FONT_WIDTH_TRAIT, - {{0, 100}, {1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}}; + {{0, 100}, {1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}}; registry = AREF (spec, FONT_REGISTRY_INDEX); if (NILP (registry) @@ -1792,17 +1768,17 @@ static int macfont_variation_glyphs (struct font *, int c, cf_charset_idx = macfont_get_charset (registry); if (cf_charset_idx < 0) - goto err; + goto err; charset = cf_charset_table[cf_charset_idx].cf_charset; charset_string = cf_charset_table[cf_charset_idx].cf_charset_string; lang = cf_charset_table[cf_charset_idx].lang; if (lang) - { - langarray = CFArrayCreateMutable (NULL, 0, &kCFTypeArrayCallBacks); - if (! langarray) - goto err; - CFArrayAppendValue (langarray, lang); - } + { + langarray = CFArrayCreateMutable (NULL, 0, &kCFTypeArrayCallBacks); + if (! langarray) + goto err; + CFArrayAppendValue (langarray, lang); + } } for (extra = AREF (spec, FONT_EXTRA_INDEX); @@ -1813,35 +1789,35 @@ static int macfont_variation_glyphs (struct font *, int c, tmp = XCAR (extra); key = XCAR (tmp), val = XCDR (tmp); if (EQ (key, QClang)) - { - if (! langarray) - langarray = CFArrayCreateMutable (NULL, 0, &kCFTypeArrayCallBacks); - if (! langarray) - goto err; - if (SYMBOLP (val)) - val = list1 (val); - for (; CONSP (val); val = XCDR (val)) - if (SYMBOLP (XCAR (val))) - { - CFStringRef lang = - cfstring_create_with_string_noencode (SYMBOL_NAME - (XCAR (val))); + { + if (! langarray) + langarray = CFArrayCreateMutable (NULL, 0, &kCFTypeArrayCallBacks); + if (! langarray) + goto err; + if (SYMBOLP (val)) + val = list1 (val); + for (; CONSP (val); val = XCDR (val)) + if (SYMBOLP (XCAR (val))) + { + CFStringRef lang = + cfstring_create_with_string_noencode (SYMBOL_NAME + (XCAR (val))); - if (lang == NULL) - goto err; - CFArrayAppendValue (langarray, lang); - CFRelease (lang); - } - } + if (lang == NULL) + goto err; + CFArrayAppendValue (langarray, lang); + CFRelease (lang); + } + } else if (EQ (key, QCotf)) - { - otspec = macfont_get_open_type_spec (val); - if (! otspec) - goto err; - script = otspec->script; - } + { + otspec = macfont_get_open_type_spec (val); + if (! otspec) + goto err; + script = otspec->script; + } else if (EQ (key, QCscript)) - script = val; + script = val; } if (! NILP (script) && ! charset) @@ -1849,40 +1825,40 @@ static int macfont_variation_glyphs (struct font *, int c, Lisp_Object chars = assq_no_quit (script, Vscript_representative_chars); if (CONSP (chars) && CONSP (CDR (chars))) - { - CFMutableStringRef string = CFStringCreateMutable (NULL, 0); - CFMutableCharacterSetRef cs = CFCharacterSetCreateMutable (NULL); + { + CFMutableStringRef string = CFStringCreateMutable (NULL, 0); + CFMutableCharacterSetRef cs = CFCharacterSetCreateMutable (NULL); - if (! string || !cs) - { - if (string) - CFRelease (string); - else if (cs) - CFRelease (cs); - goto err; - } - for (chars = XCDR (chars); CONSP (chars); chars = XCDR (chars)) - if (CHARACTERP (XCAR (chars))) - { - UniChar unichars[2]; - CFIndex count = - macfont_store_utf32char_to_unichars (XFASTINT (XCAR (chars)), - unichars); - CFRange range = CFRangeMake (XFASTINT (XCAR (chars)), 1); + if (! string || !cs) + { + if (string) + CFRelease (string); + else if (cs) + CFRelease (cs); + goto err; + } + for (chars = XCDR (chars); CONSP (chars); chars = XCDR (chars)) + if (CHARACTERP (XCAR (chars))) + { + UniChar unichars[2]; + CFIndex count = + macfont_store_utf32char_to_unichars (XFASTINT (XCAR (chars)), + unichars); + CFRange range = CFRangeMake (XFASTINT (XCAR (chars)), 1); - CFStringAppendCharacters (string, unichars, count); - CFCharacterSetAddCharactersInRange (cs, range); - } - charset = cs; - /* CFCharacterSetCreateWithCharactersInString does not - handle surrogate pairs properly as of Mac OS X 10.5. */ - charset_string = string; - } + CFStringAppendCharacters (string, unichars, count); + CFCharacterSetAddCharactersInRange (cs, range); + } + charset = cs; + /* CFCharacterSetCreateWithCharactersInString does not + handle surrogate pairs properly as of Mac OS X 10.5. */ + charset_string = string; + } } attributes = CFDictionaryCreateMutable (NULL, 0, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); if (! attributes) goto err; @@ -1892,15 +1868,15 @@ static int macfont_variation_glyphs (struct font *, int c, CFStringRef family = macfont_create_family_with_symbol (tmp); if (! family) - goto err; + goto err; CFDictionaryAddValue (attributes, MAC_FONT_FAMILY_NAME_ATTRIBUTE, - family); + family); CFRelease (family); } traits = CFDictionaryCreateMutable (NULL, 4, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); if (! traits) goto err; @@ -1908,40 +1884,40 @@ static int macfont_variation_glyphs (struct font *, int c, { tmp = AREF (spec, numeric_traits[i].index); if (INTEGERP (tmp)) - { - CGPoint *point = numeric_traits[i].points; - CGFloat floatval = (XINT (tmp) >> 8); // XXX - CFNumberRef num; + { + CGPoint *point = numeric_traits[i].points; + CGFloat floatval = (XINT (tmp) >> 8); // XXX + CFNumberRef num; - while (point->y < floatval) - point++; - if (point == numeric_traits[i].points) - point++; - else if (point->y == CGFLOAT_MAX) - point--; - floatval = (point - 1)->x + ((floatval - (point - 1)->y) - * ((point->x - (point - 1)->x) - / (point->y - (point - 1)->y))); - if (floatval > 1.0) - floatval = 1.0; - else if (floatval < -1.0) - floatval = -1.0; - num = CFNumberCreate (NULL, kCFNumberCGFloatType, &floatval); - if (! num) - goto err; - CFDictionaryAddValue (traits, numeric_traits[i].trait, num); - CFRelease (num); - } + while (point->y < floatval) + point++; + if (point == numeric_traits[i].points) + point++; + else if (point->y == CGFLOAT_MAX) + point--; + floatval = (point - 1)->x + ((floatval - (point - 1)->y) + * ((point->x - (point - 1)->x) + / (point->y - (point - 1)->y))); + if (floatval > 1.0) + floatval = 1.0; + else if (floatval < -1.0) + floatval = -1.0; + num = CFNumberCreate (NULL, kCFNumberCGFloatType, &floatval); + if (! num) + goto err; + CFDictionaryAddValue (traits, numeric_traits[i].trait, num); + CFRelease (num); + } } if (CFDictionaryGetCount (traits)) CFDictionaryAddValue (attributes, MAC_FONT_TRAITS_ATTRIBUTE, traits); if (charset) CFDictionaryAddValue (attributes, MAC_FONT_CHARACTER_SET_ATTRIBUTE, - charset); + charset); if (charset_string) CFDictionaryAddValue (attributes, MAC_FONT_CHARACTER_SET_STRING_ATTRIBUTE, - charset_string); + charset_string); if (langarray) CFDictionaryAddValue (attributes, MAC_FONT_LANGUAGES_ATTRIBUTE, langarray); @@ -1962,9 +1938,9 @@ static int macfont_variation_glyphs (struct font *, int c, if (otspec) { if (otspec->nfeatures[0] > 0) - free (otspec->features[0]); + free (otspec->features[0]); if (otspec->nfeatures[1] > 0) - free (otspec->features[1]); + free (otspec->features[1]); free (otspec); } @@ -1973,38 +1949,38 @@ static int macfont_variation_glyphs (struct font *, int c, static Boolean macfont_supports_charset_and_languages_p (FontDescriptorRef desc, - CFCharacterSetRef charset, - Lisp_Object chars, - CFArrayRef languages) + CFCharacterSetRef charset, + Lisp_Object chars, + CFArrayRef languages) { Boolean result = true; if (charset || VECTORP (chars)) { CFCharacterSetRef desc_charset = - mac_font_descriptor_copy_attribute (desc, - MAC_FONT_CHARACTER_SET_ATTRIBUTE); + mac_font_descriptor_copy_attribute (desc, + MAC_FONT_CHARACTER_SET_ATTRIBUTE); if (desc_charset == NULL) - result = false; + result = false; else - { - if (charset) - result = CFCharacterSetIsSupersetOfSet (desc_charset, charset); - else /* VECTORP (chars) */ - { - ptrdiff_t j; + { + if (charset) + result = CFCharacterSetIsSupersetOfSet (desc_charset, charset); + else /* VECTORP (chars) */ + { + ptrdiff_t j; - for (j = 0; j < ASIZE (chars); j++) - if (TYPE_RANGED_INTEGERP (UTF32Char, AREF (chars, j)) - && CFCharacterSetIsLongCharacterMember (desc_charset, - XFASTINT (AREF (chars, j)))) - break; - if (j == ASIZE (chars)) - result = false; - } - CFRelease (desc_charset); - } + for (j = 0; j < ASIZE (chars); j++) + if (TYPE_RANGED_INTEGERP (UTF32Char, AREF (chars, j)) + && CFCharacterSetIsLongCharacterMember (desc_charset, + XFASTINT (AREF (chars, j)))) + break; + if (j == ASIZE (chars)) + result = false; + } + CFRelease (desc_charset); + } } if (result && languages) result = mac_font_descriptor_supports_languages (desc, languages); @@ -2012,38 +1988,49 @@ static int macfont_variation_glyphs (struct font *, int c, return result; } -static CFIndex -macfont_closest_traits_index (CFArrayRef traits_array, - FontSymbolicTraits target) +static int +macfont_traits_distance (FontSymbolicTraits sym_traits1, + FontSymbolicTraits sym_traits2) { - CFIndex i, result = -1, count = CFArrayGetCount (traits_array); - int min_distance = (1 << 3); + FontSymbolicTraits diff = (sym_traits1 ^ sym_traits2); + int distance = 0; + + /* We prefer synthetic bold of italic to synthetic italic of bold + when both bold and italic are available but bold-italic is not + available. */ + if (diff & MAC_FONT_TRAIT_BOLD) + distance |= (1 << 0); + if (diff & MAC_FONT_TRAIT_ITALIC) + distance |= (1 << 1); + if (diff & MAC_FONT_TRAIT_MONO_SPACE) + distance |= (1 << 2); + + return distance; +} + +static Boolean +macfont_closest_traits_index_p (CFArrayRef traits_array, + FontSymbolicTraits target, + CFIndex index) +{ + CFIndex i, count = CFArrayGetCount (traits_array); + FontSymbolicTraits traits; + int my_distance; + + traits = ((FontSymbolicTraits) (uintptr_t) + CFArrayGetValueAtIndex (traits_array, index)); + my_distance = macfont_traits_distance (target, traits); for (i = 0; i < count; i++) - { - FontSymbolicTraits traits, diff; - int distance = 0; + if (i != index) + { + traits = ((FontSymbolicTraits) (uintptr_t) + CFArrayGetValueAtIndex (traits_array, i)); + if (macfont_traits_distance (target, traits) < my_distance) + return false; + } - traits = ((FontSymbolicTraits) (uintptr_t) - CFArrayGetValueAtIndex (traits_array, i)); - diff = (target ^ traits); - /* We prefer synthetic bold of italic to synthetic italic of - bold when both bold and italic are available but bold-italic - is not available. */ - if (diff & MAC_FONT_TRAIT_BOLD) - distance |= (1 << 0); - if (diff & MAC_FONT_TRAIT_ITALIC) - distance |= (1 << 1); - if (diff & MAC_FONT_TRAIT_MONO_SPACE) - distance |= (1 << 2); - if (distance < min_distance) - { - min_distance = distance; - result = i; - } - } - - return result; + return true; } static Lisp_Object @@ -2068,7 +2055,7 @@ static int macfont_variation_glyphs (struct font *, int c, { family_name = macfont_create_family_with_symbol (family); if (family_name == NULL) - goto finish; + goto finish; } attributes = macfont_create_attributes_with_spec (spec); @@ -2081,14 +2068,14 @@ static int macfont_variation_glyphs (struct font *, int c, spacing = XINT (AREF (spec, FONT_SPACING_INDEX)); traits = ((CFMutableDictionaryRef) - CFDictionaryGetValue (attributes, MAC_FONT_TRAITS_ATTRIBUTE)); + CFDictionaryGetValue (attributes, MAC_FONT_TRAITS_ATTRIBUTE)); n = FONT_SLANT_NUMERIC (spec); if (n < 0 || n == FONT_SLANT_SYNTHETIC_ITALIC) { synth_sym_traits |= MAC_FONT_TRAIT_ITALIC; if (traits) - CFDictionaryRemoveValue (traits, MAC_FONT_SLANT_TRAIT); + CFDictionaryRemoveValue (traits, MAC_FONT_SLANT_TRAIT); } n = FONT_WEIGHT_NUMERIC (spec); @@ -2096,7 +2083,7 @@ static int macfont_variation_glyphs (struct font *, int c, { synth_sym_traits |= MAC_FONT_TRAIT_BOLD; if (traits) - CFDictionaryRemoveValue (traits, MAC_FONT_WEIGHT_TRAIT); + CFDictionaryRemoveValue (traits, MAC_FONT_WEIGHT_TRAIT); } if (languages @@ -2105,15 +2092,15 @@ static int macfont_variation_glyphs (struct font *, int c, CFStringRef language = CFArrayGetValueAtIndex (languages, 0); if (CFStringHasPrefix (language, CFSTR ("ja")) - || CFStringHasPrefix (language, CFSTR ("ko")) - || CFStringHasPrefix (language, CFSTR ("zh"))) - synth_sym_traits |= MAC_FONT_TRAIT_MONO_SPACE; + || CFStringHasPrefix (language, CFSTR ("ko")) + || CFStringHasPrefix (language, CFSTR ("zh"))) + synth_sym_traits |= MAC_FONT_TRAIT_MONO_SPACE; } /* Create array of families. */ if (family_name) families = CFArrayCreate (NULL, (const void **) &family_name, - 1, &kCFTypeArrayCallBacks); + 1, &kCFTypeArrayCallBacks); else { CFStringRef pref_family; @@ -2121,46 +2108,46 @@ static int macfont_variation_glyphs (struct font *, int c, families = mac_font_create_available_families (); if (families == NULL) - goto err; + goto err; families_count = CFArrayGetCount (families); /* Move preferred family to the front if exists. */ pref_family = - mac_font_create_preferred_family_for_attributes (attributes); + mac_font_create_preferred_family_for_attributes (attributes); if (pref_family) - { - pref_family_index = - CFArrayGetFirstIndexOfValue (families, - CFRangeMake (0, families_count), - pref_family); - CFRelease (pref_family); - } + { + pref_family_index = + CFArrayGetFirstIndexOfValue (families, + CFRangeMake (0, families_count), + pref_family); + CFRelease (pref_family); + } if (pref_family_index > 0) - { - CFMutableArrayRef mutable_families = - CFArrayCreateMutable (NULL, families_count, &kCFTypeArrayCallBacks); + { + CFMutableArrayRef mutable_families = + CFArrayCreateMutable (NULL, families_count, &kCFTypeArrayCallBacks); - if (mutable_families) - { - CFArrayAppendValue (mutable_families, - CFArrayGetValueAtIndex (families, - pref_family_index)); - CFArrayAppendArray (mutable_families, families, - CFRangeMake (0, pref_family_index)); - if (pref_family_index + 1 < families_count) - CFArrayAppendArray (mutable_families, families, - CFRangeMake (pref_family_index + 1, - families_count - - (pref_family_index + 1))); - CFRelease (families); - families = mutable_families; - } - } + if (mutable_families) + { + CFArrayAppendValue (mutable_families, + CFArrayGetValueAtIndex (families, + pref_family_index)); + CFArrayAppendArray (mutable_families, families, + CFRangeMake (0, pref_family_index)); + if (pref_family_index + 1 < families_count) + CFArrayAppendArray (mutable_families, families, + CFRangeMake (pref_family_index + 1, + families_count + - (pref_family_index + 1))); + CFRelease (families); + families = mutable_families; + } + } } charset = CFDictionaryGetValue (attributes, - MAC_FONT_CHARACTER_SET_ATTRIBUTE); + MAC_FONT_CHARACTER_SET_ATTRIBUTE); if (charset) { CFRetain (charset); @@ -2170,11 +2157,11 @@ static int macfont_variation_glyphs (struct font *, int c, { val = assq_no_quit (QCscript, AREF (spec, FONT_EXTRA_INDEX)); if (! NILP (val)) - { - val = assq_no_quit (XCDR (val), Vscript_representative_chars); - if (CONSP (val) && VECTORP (XCDR (val))) - chars = XCDR (val); - } + { + val = assq_no_quit (XCDR (val), Vscript_representative_chars); + if (CONSP (val) && VECTORP (XCDR (val))) + chars = XCDR (val); + } val = Qnil; } @@ -2198,151 +2185,152 @@ static int macfont_variation_glyphs (struct font *, int c, int j; CFDictionarySetValue (attributes, MAC_FONT_FAMILY_NAME_ATTRIBUTE, - family_name); + family_name); pat_desc = mac_font_descriptor_create_with_attributes (attributes); if (! pat_desc) - goto err; + goto err; /* CTFontDescriptorCreateMatchingFontDescriptors on Mac OS X - 10.7 returns NULL if pat_desc represents the LastResort font. - So we use CTFontDescriptorCreateMatchingFontDescriptor (no - trailing "s") for such a font. */ + 10.7 returns NULL if pat_desc represents the LastResort font. + So we use CTFontDescriptorCreateMatchingFontDescriptor (no + trailing "s") for such a font. */ if (!CFEqual (family_name, CFSTR ("LastResort"))) - descs = mac_font_descriptor_create_matching_font_descriptors (pat_desc, - NULL); + descs = mac_font_descriptor_create_matching_font_descriptors (pat_desc, + NULL); else - { - FontDescriptorRef lr_desc = - mac_font_descriptor_create_matching_font_descriptor (pat_desc, - NULL); - if (lr_desc) - { - descs = CFArrayCreate (NULL, (const void **) &lr_desc, 1, - &kCFTypeArrayCallBacks); - CFRelease (lr_desc); - } - else - descs = NULL; - } + { + FontDescriptorRef lr_desc = + mac_font_descriptor_create_matching_font_descriptor (pat_desc, + NULL); + if (lr_desc) + { + descs = CFArrayCreate (NULL, (const void **) &lr_desc, 1, + &kCFTypeArrayCallBacks); + CFRelease (lr_desc); + } + else + descs = NULL; + } CFRelease (pat_desc); if (! descs) - goto err; + goto err; descs_count = CFArrayGetCount (descs); if (descs_count == 0 - || !macfont_supports_charset_and_languages_p (CFArrayGetValueAtIndex (descs, 0), - charset, chars, - languages)) - { - CFRelease (descs); - continue; - } + || !macfont_supports_charset_and_languages_p (CFArrayGetValueAtIndex (descs, 0), + charset, chars, + languages)) + { + CFRelease (descs); + continue; + } filtered_descs = - CFArrayCreateMutable (NULL, descs_count, &kCFTypeArrayCallBacks); + CFArrayCreateMutable (NULL, descs_count, &kCFTypeArrayCallBacks); traits_array = CFArrayCreateMutable (NULL, descs_count, NULL); for (j = 0; j < descs_count; j++) - { - FontDescriptorRef desc = CFArrayGetValueAtIndex (descs, j); - CFDictionaryRef dict; - CFNumberRef num; - FontSymbolicTraits sym_traits; + { + FontDescriptorRef desc = CFArrayGetValueAtIndex (descs, j); + CFDictionaryRef dict; + CFNumberRef num; + FontSymbolicTraits sym_traits; - dict = mac_font_descriptor_copy_attribute (desc, - MAC_FONT_TRAITS_ATTRIBUTE); - if (dict == NULL) - continue; + dict = mac_font_descriptor_copy_attribute (desc, + MAC_FONT_TRAITS_ATTRIBUTE); + if (dict == NULL) + continue; - num = CFDictionaryGetValue (dict, MAC_FONT_SYMBOLIC_TRAIT); - CFRelease (dict); - if (num == NULL - || !cfnumber_get_font_symbolic_traits_value (num, &sym_traits)) - continue; + num = CFDictionaryGetValue (dict, MAC_FONT_SYMBOLIC_TRAIT); + CFRelease (dict); + if (num == NULL + || !cfnumber_get_font_symbolic_traits_value (num, &sym_traits)) + continue; - if (spacing >= 0 - && !(synth_sym_traits & MAC_FONT_TRAIT_MONO_SPACE) - && (((sym_traits & MAC_FONT_TRAIT_MONO_SPACE) != 0) - != (spacing >= FONT_SPACING_MONO))) - continue; + if (spacing >= 0 + && !(synth_sym_traits & MAC_FONT_TRAIT_MONO_SPACE) + && (((sym_traits & MAC_FONT_TRAIT_MONO_SPACE) != 0) + != (spacing >= FONT_SPACING_MONO))) + continue; - /* Don't use a color bitmap font unless its family is - explicitly specified. */ - if ((sym_traits & MAC_FONT_TRAIT_COLOR_GLYPHS) && NILP (family)) - continue; + /* Don't use a color bitmap font unless its family is + explicitly specified. */ + if ((sym_traits & MAC_FONT_TRAIT_COLOR_GLYPHS) && NILP (family)) + continue; - if (j > 0 - && !macfont_supports_charset_and_languages_p (desc, charset, - chars, languages)) - continue; + if (j > 0 + && !macfont_supports_charset_and_languages_p (desc, charset, + chars, languages)) + continue; - CFArrayAppendValue (filtered_descs, desc); - CFArrayAppendValue (traits_array, - (const void *) (uintptr_t) sym_traits); - } + CFArrayAppendValue (filtered_descs, desc); + CFArrayAppendValue (traits_array, + (const void *) (uintptr_t) sym_traits); + } CFRelease (descs); descs = filtered_descs; descs_count = CFArrayGetCount (descs); for (j = 0; j < descs_count; j++) - { - FontDescriptorRef desc = CFArrayGetValueAtIndex (descs, j); - FontSymbolicTraits sym_traits = - ((FontSymbolicTraits) (uintptr_t) - CFArrayGetValueAtIndex (traits_array, j)); - FontSymbolicTraits mask_min, mask_max, imask, bmask, mmask; + { + FontDescriptorRef desc = CFArrayGetValueAtIndex (descs, j); + FontSymbolicTraits sym_traits = + ((FontSymbolicTraits) (uintptr_t) + CFArrayGetValueAtIndex (traits_array, j)); + FontSymbolicTraits mask_min, mask_max, imask, bmask, mmask; - mask_min = ((synth_sym_traits ^ sym_traits) - & (MAC_FONT_TRAIT_ITALIC | MAC_FONT_TRAIT_BOLD)); - if (FONT_SLANT_NUMERIC (spec) < 0) - mask_min &= ~MAC_FONT_TRAIT_ITALIC; - if (FONT_WEIGHT_NUMERIC (spec) < 0) - mask_min &= ~MAC_FONT_TRAIT_BOLD; + mask_min = ((synth_sym_traits ^ sym_traits) + & (MAC_FONT_TRAIT_ITALIC | MAC_FONT_TRAIT_BOLD)); + if (FONT_SLANT_NUMERIC (spec) < 0) + mask_min &= ~MAC_FONT_TRAIT_ITALIC; + if (FONT_WEIGHT_NUMERIC (spec) < 0) + mask_min &= ~MAC_FONT_TRAIT_BOLD; - mask_max = (synth_sym_traits & ~sym_traits); - /* Synthetic bold does not work for bitmap-only fonts on Mac - OS X 10.6. */ - if ((mask_min ^ mask_max) & MAC_FONT_TRAIT_BOLD) - { - CFNumberRef format = - mac_font_descriptor_copy_attribute (desc, - MAC_FONT_FORMAT_ATTRIBUTE); + mask_max = (synth_sym_traits & ~sym_traits); + /* Synthetic bold does not work for bitmap-only fonts on Mac + OS X 10.6. */ + if ((mask_min ^ mask_max) & MAC_FONT_TRAIT_BOLD) + { + CFNumberRef format = + mac_font_descriptor_copy_attribute (desc, + MAC_FONT_FORMAT_ATTRIBUTE); - if (format) - { - uint32_t format_val; + if (format) + { + uint32_t format_val; - if (CFNumberGetValue (format, kCFNumberSInt32Type, - &format_val) - && format_val == MAC_FONT_FORMAT_BITMAP) - mask_max &= ~MAC_FONT_TRAIT_BOLD; - } - } - if (spacing >= 0) - mask_min |= (mask_max & MAC_FONT_TRAIT_MONO_SPACE); + if (CFNumberGetValue (format, kCFNumberSInt32Type, + &format_val) + && format_val == MAC_FONT_FORMAT_BITMAP) + mask_max &= ~MAC_FONT_TRAIT_BOLD; + } + } + if (spacing >= 0) + mask_min |= (mask_max & MAC_FONT_TRAIT_MONO_SPACE); - for (mmask = (mask_min & MAC_FONT_TRAIT_MONO_SPACE); - mmask <= (mask_max & MAC_FONT_TRAIT_MONO_SPACE); - mmask += MAC_FONT_TRAIT_MONO_SPACE) - for (bmask = (mask_min & MAC_FONT_TRAIT_BOLD); - bmask <= (mask_max & MAC_FONT_TRAIT_BOLD); - bmask += MAC_FONT_TRAIT_BOLD) - for (imask = (mask_min & MAC_FONT_TRAIT_ITALIC); - imask <= (mask_max & MAC_FONT_TRAIT_ITALIC); - imask += MAC_FONT_TRAIT_ITALIC) - { - FontSymbolicTraits synth = (imask | bmask | mmask); + for (mmask = (mask_min & MAC_FONT_TRAIT_MONO_SPACE); + mmask <= (mask_max & MAC_FONT_TRAIT_MONO_SPACE); + mmask += MAC_FONT_TRAIT_MONO_SPACE) + for (bmask = (mask_min & MAC_FONT_TRAIT_BOLD); + bmask <= (mask_max & MAC_FONT_TRAIT_BOLD); + bmask += MAC_FONT_TRAIT_BOLD) + for (imask = (mask_min & MAC_FONT_TRAIT_ITALIC); + imask <= (mask_max & MAC_FONT_TRAIT_ITALIC); + imask += MAC_FONT_TRAIT_ITALIC) + { + FontSymbolicTraits synth = (imask | bmask | mmask); - if (synth == 0 - || j == macfont_closest_traits_index (traits_array, - (sym_traits | synth))) - { - entity = macfont_descriptor_entity (desc, extra, synth); - if (! NILP (entity)) - val = Fcons (entity, val); - } - } - } + if (synth == 0 + || macfont_closest_traits_index_p (traits_array, + (sym_traits | synth), + j)) + { + entity = macfont_descriptor_entity (desc, extra, synth); + if (! NILP (entity)) + val = Fcons (entity, val); + } + } + } CFRelease (traits_array); CFRelease (descs); @@ -2384,13 +2372,13 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no if (pat_desc) { desc = mac_font_descriptor_create_matching_font_descriptor (pat_desc, - NULL); + NULL); CFRelease (pat_desc); } if (desc) { entity = macfont_descriptor_entity (desc, AREF (spec, FONT_EXTRA_INDEX), - 0); + 0); CFRelease (desc); } unblock_input (); @@ -2413,7 +2401,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no CFIndex i, count = CFArrayGetCount (families); for (i = 0; i < count; i++) - list = Fcons (macfont_intern_prop_cfstring (CFArrayGetValueAtIndex (families, i)), list); + list = Fcons (macfont_intern_prop_cfstring (CFArrayGetValueAtIndex (families, i)), list); CFRelease (families); } @@ -2426,7 +2414,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no macfont_free_entity (Lisp_Object entity) { Lisp_Object val = assq_no_quit (QCfont_entity, - AREF (entity, FONT_EXTRA_INDEX)); + AREF (entity, FONT_EXTRA_INDEX)); CFStringRef name = XSAVE_POINTER (XCDR (val), 0); block_input (); @@ -2444,7 +2432,8 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no int size; FontRef macfont; FontSymbolicTraits sym_traits; - int i, total_width; + char name[256]; + int len, i, total_width; CGGlyph glyph; CGFloat ascent, descent, leading; @@ -2472,7 +2461,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no return Qnil; font_object = font_build_object (VECSIZE (struct macfont_info), - Qmac_ct, entity, size); + Qmac_ct, entity, size); font = XFONT_OBJECT (font_object); font->pixel_size = size; font->driver = &macfont_driver; @@ -2487,7 +2476,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no val = assq_no_quit (QCdestination, AREF (entity, FONT_EXTRA_INDEX)); if (CONSP (val) && EQ (XCDR (val), make_number (1))) macfont_info->screen_font = mac_screen_font_create_with_name (font_name, - size); + size); else macfont_info->screen_font = NULL; macfont_info->cache = macfont_lookup_cache (font_name); @@ -2507,8 +2496,8 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no if (sym_traits & MAC_FONT_TRAIT_MONO_SPACE) macfont_info->spacing = MACFONT_SPACING_MONO; else if (INTEGERP (AREF (entity, FONT_SPACING_INDEX)) - && (XINT (AREF (entity, FONT_SPACING_INDEX)) - == FONT_SPACING_SYNTHETIC_MONO)) + && (XINT (AREF (entity, FONT_SPACING_INDEX)) + == FONT_SPACING_SYNTHETIC_MONO)) macfont_info->spacing = MACFONT_SPACING_SYNTHETIC_MONO; if (macfont_info->synthetic_italic_p || macfont_info->synthetic_bold_p) macfont_info->antialias = MACFONT_ANTIALIAS_ON; @@ -2516,8 +2505,8 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no { val = assq_no_quit (QCantialias, AREF (entity, FONT_EXTRA_INDEX)); if (CONSP (val)) - macfont_info->antialias = - NILP (XCDR (val)) ? MACFONT_ANTIALIAS_OFF : MACFONT_ANTIALIAS_ON; + macfont_info->antialias = + NILP (XCDR (val)) ? MACFONT_ANTIALIAS_OFF : MACFONT_ANTIALIAS_ON; } macfont_info->color_bitmap_p = 0; if (sym_traits & MAC_FONT_TRAIT_COLOR_GLYPHS) @@ -2535,7 +2524,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no { glyph = macfont_get_glyph_for_character (font, ' ' + i); if (glyph == kCGFontIndexInvalid) - break; + break; total_width += macfont_glyph_extents (font, glyph, NULL, NULL, 0); } if (i == 95) @@ -2544,8 +2533,8 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no font->average_width = font->space_width; /* XXX */ if (!(macfont_info->screen_font - && mac_screen_font_get_metrics (macfont_info->screen_font, - &ascent, &descent, &leading))) + && mac_screen_font_get_metrics (macfont_info->screen_font, + &ascent, &descent, &leading))) { CFStringRef family_name; @@ -2553,21 +2542,21 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no descent = mac_font_get_descent (macfont); leading = mac_font_get_leading (macfont); /* AppKit and WebKit do some adjustment to the heights of - Courier, Helvetica, and Times. */ + Courier, Helvetica, and Times. */ family_name = mac_font_copy_family_name (macfont); if (family_name) - { - if (CFEqual (family_name, CFSTR ("Courier")) - || CFEqual (family_name, CFSTR ("Helvetica")) - || CFEqual (family_name, CFSTR ("Times"))) - ascent += (ascent + descent) * .15f; - else if (CFStringHasPrefix (family_name, CFSTR ("Hiragino"))) - { - leading *= .25f; - ascent += leading; - } - CFRelease (family_name); - } + { + if (CFEqual (family_name, CFSTR ("Courier")) + || CFEqual (family_name, CFSTR ("Helvetica")) + || CFEqual (family_name, CFSTR ("Times"))) + ascent += (ascent + descent) * .15f; + else if (CFStringHasPrefix (family_name, CFSTR ("Hiragino"))) + { + leading *= .25f; + ascent += leading; + } + CFRelease (family_name); + } } font->ascent = ascent + 0.5f; val = assq_no_quit (QCminspace, AREF (entity, FONT_EXTRA_INDEX)); @@ -2598,20 +2587,25 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no macfont_close (struct font *font) { struct macfont_info *macfont_info = (struct macfont_info *) font; - int i; - block_input (); - CFRelease (macfont_info->macfont); - CGFontRelease (macfont_info->cgfont); - if (macfont_info->screen_font) - CFRelease (macfont_info->screen_font); - macfont_release_cache (macfont_info->cache); - for (i = 0; i < macfont_info->metrics_nrows; i++) - if (macfont_info->metrics[i]) - xfree (macfont_info->metrics[i]); - if (macfont_info->metrics) - xfree (macfont_info->metrics); - unblock_input (); + if (macfont_info->cache) + { + int i; + + block_input (); + CFRelease (macfont_info->macfont); + CGFontRelease (macfont_info->cgfont); + if (macfont_info->screen_font) + CFRelease (macfont_info->screen_font); + macfont_release_cache (macfont_info->cache); + for (i = 0; i < macfont_info->metrics_nrows; i++) + if (macfont_info->metrics[i]) + xfree (macfont_info->metrics[i]); + if (macfont_info->metrics) + xfree (macfont_info->metrics); + macfont_info->cache = NULL; + unblock_input (); + } } static int @@ -2653,9 +2647,9 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no return glyph != kCGFontIndexInvalid ? glyph : FONT_INVALID_CODE; } -static int +static void macfont_text_extents (struct font *font, unsigned int *code, int nglyphs, - struct font_metrics *metrics) + struct font_metrics *metrics) { int width, i; @@ -2665,32 +2659,30 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no { struct font_metrics m; int w = macfont_glyph_extents (font, code[i], metrics ? &m : NULL, - NULL, 0); + NULL, 0); if (metrics) - { - if (width + m.lbearing < metrics->lbearing) - metrics->lbearing = width + m.lbearing; - if (width + m.rbearing > metrics->rbearing) - metrics->rbearing = width + m.rbearing; - if (m.ascent > metrics->ascent) - metrics->ascent = m.ascent; - if (m.descent > metrics->descent) - metrics->descent = m.descent; - } + { + if (width + m.lbearing < metrics->lbearing) + metrics->lbearing = width + m.lbearing; + if (width + m.rbearing > metrics->rbearing) + metrics->rbearing = width + m.rbearing; + if (m.ascent > metrics->ascent) + metrics->ascent = m.ascent; + if (m.descent > metrics->descent) + metrics->descent = m.descent; + } width += w; } unblock_input (); if (metrics) metrics->width = width; - - return width; } static int macfont_draw (struct glyph_string *s, int from, int to, int x, int y, - bool with_background) + bool with_background) { struct frame * f = s->f; struct macfont_info *macfont_info = (struct macfont_info *) s->font; @@ -2700,9 +2692,10 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no CGPoint *positions; CGFloat font_size = mac_font_get_size (macfont_info->macfont); bool no_antialias_p = - (macfont_info->antialias == MACFONT_ANTIALIAS_OFF + (NILP (ns_antialias_text) + || macfont_info->antialias == MACFONT_ANTIALIAS_OFF || (macfont_info->antialias == MACFONT_ANTIALIAS_DEFAULT - && font_size <= macfont_antialias_threshold)); + && font_size <= macfont_antialias_threshold)); int len = to - from; struct face *face = s->face; CGContextRef context; @@ -2712,29 +2705,29 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no if (with_background) background_rect = CGRectMake (x, y - FONT_BASE (s->font), s->width, FONT_HEIGHT (s->font)); - else + else background_rect = CGRectNull; - + text_position = CGPointMake (x, -y); glyphs = xmalloc (sizeof (CGGlyph) * len); { - CGFloat advance_delta; + CGFloat advance_delta = 0; int i; CGFloat total_width = 0; positions = xmalloc (sizeof (CGPoint) * len); for (i = 0; i < len; i++) { - int width; + int width; - glyphs[i] = s->char2b[from + i]; - width = (s->padding_p ? 1 - : macfont_glyph_extents (s->font, glyphs[i], - NULL, &advance_delta, - no_antialias_p)); - positions[i].x = total_width + advance_delta; - positions[i].y = 0; - total_width += width; + glyphs[i] = s->char2b[from + i]; + width = (s->padding_p ? 1 + : macfont_glyph_extents (s->font, glyphs[i], + NULL, &advance_delta, + no_antialias_p)); + positions[i].x = total_width + advance_delta; + positions[i].y = 0; + total_width += width; } } @@ -2743,7 +2736,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no if (!CGRectIsNull (background_rect)) { - if (s->hl == DRAW_MOUSE_FACE) + if (s->hl == DRAW_MOUSE_FACE) { face = FACE_FROM_ID (s->f, MOUSE_HL_INFO (s->f)->mouse_face_face_id); if (!face) @@ -2756,20 +2749,21 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no if (macfont_info->cgfont) { CGAffineTransform atfm; + CGContextScaleCTM (context, 1, -1); CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND (context, face, s->f); if (macfont_info->synthetic_italic_p) - atfm = synthetic_italic_atfm; + atfm = synthetic_italic_atfm; else - atfm = CGAffineTransformIdentity; - if (macfont_info->synthetic_bold_p) - { - CGContextSetTextDrawingMode (context, kCGTextFillStroke); - CGContextSetLineWidth (context, synthetic_bold_factor * font_size); - CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND (context, face, f); - } + atfm = CGAffineTransformIdentity; + if (macfont_info->synthetic_bold_p && ! no_antialias_p) + { + CGContextSetTextDrawingMode (context, kCGTextFillStroke); + CGContextSetLineWidth (context, synthetic_bold_factor * font_size); + CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND (context, face, f); + } if (no_antialias_p) - CGContextSetShouldAntialias (context, false); + CGContextSetShouldAntialias (context, false); CGContextSetTextMatrix (context, atfm); CGContextSetTextPosition (context, text_position.x, text_position.y); @@ -2777,23 +2771,23 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 if (macfont_info->color_bitmap_p #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 - && CTFontDrawGlyphs != NULL + && CTFontDrawGlyphs != NULL #endif - ) - { - if (len > 0) - { - CTFontDrawGlyphs (macfont_info->macfont, glyphs, positions, len, + ) + { + if (len > 0) + { + CTFontDrawGlyphs (macfont_info->macfont, glyphs, positions, len, context); - } - } + } + } else #endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 */ - { - CGContextSetFont (context, macfont_info->cgfont); - CGContextSetFontSize (context, font_size); - CGContextShowGlyphsAtPositions (context, glyphs, positions, len); - } + { + CGContextSetFont (context, macfont_info->cgfont); + CGContextSetFontSize (context, font_size); + CGContextShowGlyphsAtPositions (context, glyphs, positions, len); + } } @@ -2831,9 +2825,9 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no Lisp_Object lglyph = LGSTRING_GLYPH (lgstring, i); if (NILP (lglyph)) - break; + break; if (LGLYPH_CHAR (lglyph) >= 0x10000) - nonbmp_len++; + nonbmp_len++; } len = i; @@ -2848,25 +2842,25 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no UTF32Char c = LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, i)); if (macfont_store_utf32char_to_unichars (c, unichars + i + j) > 1) - { - nonbmp_indices[j] = i + j; - j++; - } + { + nonbmp_indices[j] = i + j; + j++; + } } nonbmp_indices[j] = len + j; /* sentinel */ block_input (); string = CFStringCreateWithCharactersNoCopy (NULL, unichars, len + nonbmp_len, - kCFAllocatorNull); + kCFAllocatorNull); if (string) { glyph_layouts = alloca (sizeof (struct mac_glyph_layout) * glyph_len); if (macfont_info->screen_font) - used = mac_screen_font_shape (macfont_info->screen_font, string, - glyph_layouts, glyph_len); + used = mac_screen_font_shape (macfont_info->screen_font, string, + glyph_layouts, glyph_len); else - used = mac_font_shape (macfont, string, glyph_layouts, glyph_len); + used = mac_font_shape (macfont, string, glyph_layouts, glyph_len); CFRelease (string); } @@ -2886,40 +2880,40 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no int xoff, yoff, wadjust; if (NILP (lglyph)) - { - lglyph = Fmake_vector (make_number (LGLYPH_SIZE), Qnil); - LGSTRING_SET_GLYPH (lgstring, i, lglyph); - } + { + lglyph = Fmake_vector (make_number (LGLYPH_SIZE), Qnil); + LGSTRING_SET_GLYPH (lgstring, i, lglyph); + } from = gl->comp_range.location; /* Convert UTF-16 index to UTF-32. */ j = 0; while (nonbmp_indices[j] < from) - j++; + j++; from -= j; LGLYPH_SET_FROM (lglyph, from); to = gl->comp_range.location + gl->comp_range.length; /* Convert UTF-16 index to UTF-32. */ while (nonbmp_indices[j] < to) - j++; + j++; to -= j; LGLYPH_SET_TO (lglyph, to - 1); /* LGLYPH_CHAR is used in `describe-char' for checking whether - the composition is trivial. */ + the composition is trivial. */ { - UTF32Char c; + UTF32Char c; - if (unichars[gl->string_index] >= 0xD800 - && unichars[gl->string_index] < 0xDC00) - c = (((unichars[gl->string_index] - 0xD800) << 10) - + (unichars[gl->string_index + 1] - 0xDC00) + 0x10000); - else - c = unichars[gl->string_index]; - if (macfont_get_glyph_for_character (font, c) != gl->glyph_id) - c = 0; - LGLYPH_SET_CHAR (lglyph, c); + if (unichars[gl->string_index] >= 0xD800 + && unichars[gl->string_index] < 0xDC00) + c = (((unichars[gl->string_index] - 0xD800) << 10) + + (unichars[gl->string_index + 1] - 0xDC00) + 0x10000); + else + c = unichars[gl->string_index]; + if (macfont_get_glyph_for_character (font, c) != gl->glyph_id) + c = 0; + LGLYPH_SET_CHAR (lglyph, c); } { @@ -2938,15 +2932,15 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no yoff = lround (- gl->baseline_delta); wadjust = lround (gl->advance); if (xoff != 0 || yoff != 0 || wadjust != metrics.width) - { - Lisp_Object vec; + { + Lisp_Object vec; - vec = Fmake_vector (make_number (3), Qnil); - ASET (vec, 0, make_number (xoff)); - ASET (vec, 1, make_number (yoff)); - ASET (vec, 2, make_number (wadjust)); - LGLYPH_SET_ADJUSTMENT (lglyph, vec); - } + vec = Fmake_vector (make_number (3), Qnil); + ASET (vec, 0, make_number (xoff)); + ASET (vec, 1, make_number (yoff)); + ASET (vec, 2, make_number (wadjust)); + LGLYPH_SET_ADJUSTMENT (lglyph, vec); + } } unblock_input (); @@ -2969,7 +2963,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no UInt32 length, num_var_selector_records; struct variation_selector_record variation_selector_records[1]; }; -#define SIZEOF_UVS_TABLE_HEADER \ +#define SIZEOF_UVS_TABLE_HEADER \ (sizeof (struct uvs_table) - sizeof (struct variation_selector_record)) struct unicode_value_range @@ -2981,7 +2975,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no UInt32 num_unicode_value_ranges; struct unicode_value_range unicode_value_ranges[1]; }; -#define SIZEOF_DEFAULT_UVS_TABLE_HEADER \ +#define SIZEOF_DEFAULT_UVS_TABLE_HEADER \ (sizeof (struct default_uvs_table) - sizeof (struct unicode_value_range)) struct uvs_mapping @@ -2994,7 +2988,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no UInt32 num_uvs_mappings; struct uvs_mapping uvs_mappings[1]; }; -#define SIZEOF_NON_DEFAULT_UVS_TABLE_HEADER \ +#define SIZEOF_NON_DEFAULT_UVS_TABLE_HEADER \ (sizeof (struct non_default_uvs_table) - sizeof (struct uvs_mapping)) #pragma pack(pop) @@ -3026,98 +3020,98 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no #if __LP64__ if (CFDataGetLength (cmap_table) > UINT32_MAX) - goto finish; + goto finish; #endif cmap_len = CFDataGetLength (cmap_table); if (sizeof_sfntCMapHeader > cmap_len) - goto finish; + goto finish; ntables = BUINT16_VALUE (cmap->numTables); if (ntables > ((cmap_len - sizeof_sfntCMapHeader) - / sizeof_sfntCMapEncoding)) - goto finish; + / sizeof_sfntCMapEncoding)) + goto finish; for (i = 0; i < ntables; i++) - if ((BUINT16_VALUE (cmap->encoding[i].platformID) - == kFontUnicodePlatform) - && (BUINT16_VALUE (cmap->encoding[i].scriptID) - == 5)) /* kFontUnicodeV4_0VariationSequenceSemantics */ - { - uvs_offset = BUINT32_VALUE (cmap->encoding[i].offset); - break; - } + if ((BUINT16_VALUE (cmap->encoding[i].platformID) + == kFontUnicodePlatform) + && (BUINT16_VALUE (cmap->encoding[i].scriptID) + == 5)) /* kFontUnicodeV4_0VariationSequenceSemantics */ + { + uvs_offset = BUINT32_VALUE (cmap->encoding[i].offset); + break; + } if (i == ntables - || uvs_offset > cmap_len - || SIZEOF_UVS_TABLE_HEADER > cmap_len - uvs_offset) - goto finish; + || uvs_offset > cmap_len + || SIZEOF_UVS_TABLE_HEADER > cmap_len - uvs_offset) + goto finish; uvs = (struct uvs_table *) ((UInt8 *) cmap + uvs_offset); uvs_len = BUINT32_VALUE (uvs->length); if (uvs_len > cmap_len - uvs_offset - || SIZEOF_UVS_TABLE_HEADER > uvs_len) - goto finish; + || SIZEOF_UVS_TABLE_HEADER > uvs_len) + goto finish; if (BUINT16_VALUE (uvs->format) != 14) - goto finish; + goto finish; nrecords = BUINT32_VALUE (uvs->num_var_selector_records); if (nrecords > ((uvs_len - SIZEOF_UVS_TABLE_HEADER) - / sizeof (struct variation_selector_record))) - goto finish; + / sizeof (struct variation_selector_record))) + goto finish; records = uvs->variation_selector_records; for (i = 0; i < nrecords; i++) - { - UInt32 default_uvs_offset, non_default_uvs_offset; + { + UInt32 default_uvs_offset, non_default_uvs_offset; - default_uvs_offset = BUINT32_VALUE (records[i].default_uvs_offset); - if (default_uvs_offset) - { - struct default_uvs_table *default_uvs; - UInt32 nranges; + default_uvs_offset = BUINT32_VALUE (records[i].default_uvs_offset); + if (default_uvs_offset) + { + struct default_uvs_table *default_uvs; + UInt32 nranges; - if (default_uvs_offset > uvs_len - || (SIZEOF_DEFAULT_UVS_TABLE_HEADER - > uvs_len - default_uvs_offset)) - goto finish; + if (default_uvs_offset > uvs_len + || (SIZEOF_DEFAULT_UVS_TABLE_HEADER + > uvs_len - default_uvs_offset)) + goto finish; - default_uvs = ((struct default_uvs_table *) - ((UInt8 *) uvs + default_uvs_offset)); - nranges = BUINT32_VALUE (default_uvs->num_unicode_value_ranges); - if (nranges > ((uvs_len - default_uvs_offset - - SIZEOF_DEFAULT_UVS_TABLE_HEADER) - / sizeof (struct unicode_value_range))) - goto finish; - /* Now 2 * nranges can't overflow, so we can safely use - `(lo + hi) / 2' instead of `lo + (hi - lo) / 2' in - mac_font_get_glyphs_for_variants. */ - } + default_uvs = ((struct default_uvs_table *) + ((UInt8 *) uvs + default_uvs_offset)); + nranges = BUINT32_VALUE (default_uvs->num_unicode_value_ranges); + if (nranges > ((uvs_len - default_uvs_offset + - SIZEOF_DEFAULT_UVS_TABLE_HEADER) + / sizeof (struct unicode_value_range))) + goto finish; + /* Now 2 * nranges can't overflow, so we can safely use + `(lo + hi) / 2' instead of `lo + (hi - lo) / 2' in + mac_font_get_glyphs_for_variants. */ + } - non_default_uvs_offset = - BUINT32_VALUE (records[i].non_default_uvs_offset); - if (non_default_uvs_offset) - { - struct non_default_uvs_table *non_default_uvs; - UInt32 nmappings; + non_default_uvs_offset = + BUINT32_VALUE (records[i].non_default_uvs_offset); + if (non_default_uvs_offset) + { + struct non_default_uvs_table *non_default_uvs; + UInt32 nmappings; - if (non_default_uvs_offset > uvs_len - || (SIZEOF_NON_DEFAULT_UVS_TABLE_HEADER - > uvs_len - non_default_uvs_offset)) - goto finish; + if (non_default_uvs_offset > uvs_len + || (SIZEOF_NON_DEFAULT_UVS_TABLE_HEADER + > uvs_len - non_default_uvs_offset)) + goto finish; - non_default_uvs = ((struct non_default_uvs_table *) - ((UInt8 *) uvs + non_default_uvs_offset)); - nmappings = BUINT32_VALUE (non_default_uvs->num_uvs_mappings); - if (nmappings > ((uvs_len - non_default_uvs_offset - - SIZEOF_NON_DEFAULT_UVS_TABLE_HEADER) - / sizeof (struct uvs_mapping))) - goto finish; - /* Now 2 * nmappings can't overflow, so we can safely - use `(lo + hi) / 2' instead of `lo + (hi - lo) / 2' - in mac_font_get_glyphs_for_variants. */ - } - } + non_default_uvs = ((struct non_default_uvs_table *) + ((UInt8 *) uvs + non_default_uvs_offset)); + nmappings = BUINT32_VALUE (non_default_uvs->num_uvs_mappings); + if (nmappings > ((uvs_len - non_default_uvs_offset + - SIZEOF_NON_DEFAULT_UVS_TABLE_HEADER) + / sizeof (struct uvs_mapping))) + goto finish; + /* Now 2 * nmappings can't overflow, so we can safely + use `(lo + hi) / 2' instead of `lo + (hi - lo) / 2' + in mac_font_get_glyphs_for_variants. */ + } + } uvs_table = CFDataCreate (NULL, (UInt8 *) uvs, uvs_len); @@ -3140,18 +3134,16 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no static void mac_font_get_glyphs_for_variants (CFDataRef uvs_table, UTF32Char c, - const UTF32Char selectors[], CGGlyph glyphs[], - CFIndex count) + const UTF32Char selectors[], CGGlyph glyphs[], + CFIndex count) { struct uvs_table *uvs = (struct uvs_table *) CFDataGetBytePtr (uvs_table); struct variation_selector_record *records = uvs->variation_selector_records; CFIndex i; UInt32 ir, nrecords; -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 dispatch_queue_t queue = dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_group_t group = dispatch_group_create (); -#endif nrecords = BUINT32_VALUE (uvs->num_var_selector_records); i = 0; @@ -3161,86 +3153,80 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no UInt32 default_uvs_offset, non_default_uvs_offset; if (selectors[i] < BUINT24_VALUE (records[ir].var_selector)) - { - glyphs[i++] = kCGFontIndexInvalid; - continue; - } + { + glyphs[i++] = kCGFontIndexInvalid; + continue; + } else if (selectors[i] > BUINT24_VALUE (records[ir].var_selector)) - { - ir++; - continue; - } + { + ir++; + continue; + } /* selectors[i] == BUINT24_VALUE (records[ir].var_selector) */ default_uvs_offset = BUINT32_VALUE (records[ir].default_uvs_offset); non_default_uvs_offset = - BUINT32_VALUE (records[ir].non_default_uvs_offset); -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 + BUINT32_VALUE (records[ir].non_default_uvs_offset); dispatch_group_async (group, queue, ^{ -#endif - glyphs[i] = kCGFontIndexInvalid; + glyphs[i] = kCGFontIndexInvalid; - if (default_uvs_offset) - { - struct default_uvs_table *default_uvs = - (struct default_uvs_table *) ((UInt8 *) uvs - + default_uvs_offset); - struct unicode_value_range *ranges = - default_uvs->unicode_value_ranges; - UInt32 lo, hi; + if (default_uvs_offset) + { + struct default_uvs_table *default_uvs = + (struct default_uvs_table *) ((UInt8 *) uvs + + default_uvs_offset); + struct unicode_value_range *ranges = + default_uvs->unicode_value_ranges; + UInt32 lo, hi; - lo = 0; - hi = BUINT32_VALUE (default_uvs->num_unicode_value_ranges); - while (lo < hi) - { - UInt32 mid = (lo + hi) / 2; + lo = 0; + hi = BUINT32_VALUE (default_uvs->num_unicode_value_ranges); + while (lo < hi) + { + UInt32 mid = (lo + hi) / 2; - if (c < BUINT24_VALUE (ranges[mid].start_unicode_value)) - hi = mid; - else - lo = mid + 1; - } - if (hi > 0 - && (c <= (BUINT24_VALUE (ranges[hi - 1].start_unicode_value) - + BUINT8_VALUE (ranges[hi - 1].additional_count)))) - glyphs[i] = 0; - } + if (c < BUINT24_VALUE (ranges[mid].start_unicode_value)) + hi = mid; + else + lo = mid + 1; + } + if (hi > 0 + && (c <= (BUINT24_VALUE (ranges[hi - 1].start_unicode_value) + + BUINT8_VALUE (ranges[hi - 1].additional_count)))) + glyphs[i] = 0; + } - if (glyphs[i] == kCGFontIndexInvalid && non_default_uvs_offset) - { - struct non_default_uvs_table *non_default_uvs = - (struct non_default_uvs_table *) ((UInt8 *) uvs - + non_default_uvs_offset); - struct uvs_mapping *mappings = non_default_uvs->uvs_mappings; - UInt32 lo, hi; + if (glyphs[i] == kCGFontIndexInvalid && non_default_uvs_offset) + { + struct non_default_uvs_table *non_default_uvs = + (struct non_default_uvs_table *) ((UInt8 *) uvs + + non_default_uvs_offset); + struct uvs_mapping *mappings = non_default_uvs->uvs_mappings; + UInt32 lo, hi; - lo = 0; - hi = BUINT32_VALUE (non_default_uvs->num_uvs_mappings); - while (lo < hi) - { - UInt32 mid = (lo + hi) / 2; + lo = 0; + hi = BUINT32_VALUE (non_default_uvs->num_uvs_mappings); + while (lo < hi) + { + UInt32 mid = (lo + hi) / 2; - if (c < BUINT24_VALUE (mappings[mid].unicode_value)) - hi = mid; - else - lo = mid + 1; - } - if (hi > 0 && - BUINT24_VALUE (mappings[hi - 1].unicode_value) == c) - glyphs[i] = BUINT16_VALUE (mappings[hi - 1].glyph_id); - } -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 - }); -#endif + if (c < BUINT24_VALUE (mappings[mid].unicode_value)) + hi = mid; + else + lo = mid + 1; + } + if (hi > 0 && + BUINT24_VALUE (mappings[hi - 1].unicode_value) == c) + glyphs[i] = BUINT16_VALUE (mappings[hi - 1].glyph_id); + } + }); i++; ir++; } while (i < count) glyphs[i++] = kCGFontIndexInvalid; -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 dispatch_group_wait (group, DISPATCH_TIME_FOREVER); dispatch_release (group); -#endif } static int @@ -3259,26 +3245,26 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no CGGlyph glyphs[256]; for (i = 0; i < 16; i++) - selectors[i] = 0xFE00 + i; + selectors[i] = 0xFE00 + i; for (; i < 256; i++) - selectors[i] = 0xE0100 + (i - 16); + selectors[i] = 0xE0100 + (i - 16); mac_font_get_glyphs_for_variants (uvs_table, c, selectors, glyphs, 256); for (i = 0; i < 256; i++) - { - CGGlyph glyph = glyphs[i]; + { + CGGlyph glyph = glyphs[i]; - if (uvs_collection != MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING - && glyph != kCGFontIndexInvalid) - glyph = macfont_get_glyph_for_cid (font, uvs_collection, glyph); - if (glyph == kCGFontIndexInvalid) - variations[i] = 0; - else - { - variations[i] = (glyph ? glyph - : macfont_get_glyph_for_character (font, c)); - n++; - } - } + if (uvs_collection != MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING + && glyph != kCGFontIndexInvalid) + glyph = macfont_get_glyph_for_cid (font, uvs_collection, glyph); + if (glyph == kCGFontIndexInvalid) + variations[i] = 0; + else + { + variations[i] = (glyph ? glyph + : macfont_get_glyph_for_character (font, c)); + n++; + } + } } unblock_input (); @@ -3306,7 +3292,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no static Boolean mac_ctfont_descriptor_supports_languages (CTFontDescriptorRef descriptor, - CFArrayRef languages) + CFArrayRef languages) { Boolean result = true; CFArrayRef desc_languages = @@ -3321,13 +3307,13 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no desc_languages_count = CFArrayGetCount (desc_languages); languages_count = CFArrayGetCount (languages); for (i = 0; i < languages_count; i++) - if (!CFArrayContainsValue (desc_languages, - CFRangeMake (0, desc_languages_count), - CFArrayGetValueAtIndex (languages, i))) - { - result = false; - break; - } + if (!CFArrayContainsValue (desc_languages, + CFRangeMake (0, desc_languages_count), + CFArrayGetValueAtIndex (languages, i))) + { + result = false; + break; + } CFRelease (desc_languages); } @@ -3345,79 +3331,79 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no { CFStringRef keys[] = { #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 - kCTLanguageAttributeName + kCTLanguageAttributeName #else - CFSTR ("NSLanguage") + CFSTR ("NSLanguage") #endif }; CFTypeRef values[] = {NULL}; CFIndex num_values = 0; CFArrayRef languages - = CFDictionaryGetValue (attributes, MAC_FONT_LANGUAGES_ATTRIBUTE); + = CFDictionaryGetValue (attributes, MAC_FONT_LANGUAGES_ATTRIBUTE); if (languages && CFArrayGetCount (languages) > 0) - { - if (CTGetCoreTextVersion () >= kCTVersionNumber10_9) - values[num_values++] = CFArrayGetValueAtIndex (languages, 0); - else - { - CFCharacterSetRef charset = - CFDictionaryGetValue (attributes, - MAC_FONT_CHARACTER_SET_ATTRIBUTE); + { + if (CTGetCoreTextVersion () >= kCTVersionNumber10_9) + values[num_values++] = CFArrayGetValueAtIndex (languages, 0); + else + { + CFCharacterSetRef charset = + CFDictionaryGetValue (attributes, + MAC_FONT_CHARACTER_SET_ATTRIBUTE); - result = mac_font_copy_default_name_for_charset_and_languages (charset, languages); - } - } + result = mac_font_copy_default_name_for_charset_and_languages (charset, languages); + } + } if (result == NULL) - { - CFAttributedStringRef attr_string = NULL; - CTLineRef ctline = NULL; - CFDictionaryRef attrs - = CFDictionaryCreate (NULL, (const void **) keys, - (const void **) values, num_values, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); + { + CFAttributedStringRef attr_string = NULL; + CTLineRef ctline = NULL; + CFDictionaryRef attrs + = CFDictionaryCreate (NULL, (const void **) keys, + (const void **) values, num_values, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); - if (attrs) - { - attr_string = CFAttributedStringCreate (NULL, charset_string, - attrs); - CFRelease (attrs); - } - if (attr_string) - { - ctline = CTLineCreateWithAttributedString (attr_string); - CFRelease (attr_string); - } - if (ctline) - { - CFArrayRef runs = CTLineGetGlyphRuns (ctline); - CFIndex i, nruns = CFArrayGetCount (runs); - CTFontRef font; + if (attrs) + { + attr_string = CFAttributedStringCreate (NULL, charset_string, + attrs); + CFRelease (attrs); + } + if (attr_string) + { + ctline = CTLineCreateWithAttributedString (attr_string); + CFRelease (attr_string); + } + if (ctline) + { + CFArrayRef runs = CTLineGetGlyphRuns (ctline); + CFIndex i, nruns = CFArrayGetCount (runs); + CTFontRef font; - for (i = 0; i < nruns; i++) - { - CTRunRef run = CFArrayGetValueAtIndex (runs, i); - CFDictionaryRef attributes = CTRunGetAttributes (run); - CTFontRef font_in_run; + for (i = 0; i < nruns; i++) + { + CTRunRef run = CFArrayGetValueAtIndex (runs, i); + CFDictionaryRef attributes = CTRunGetAttributes (run); + CTFontRef font_in_run; - if (attributes == NULL) - break; - font_in_run = - CFDictionaryGetValue (attributes, kCTFontAttributeName); - if (font_in_run == NULL) - break; - if (i == 0) - font = font_in_run; - else if (!mac_ctfont_equal_in_postscript_name (font, - font_in_run)) - break; - } - if (nruns > 0 && i == nruns) - result = CTFontCopyAttribute (font, kCTFontFamilyNameAttribute); - CFRelease (ctline); - } - } + if (attributes == NULL) + break; + font_in_run = + CFDictionaryGetValue (attributes, kCTFontAttributeName); + if (font_in_run == NULL) + break; + if (i == 0) + font = font_in_run; + else if (!mac_ctfont_equal_in_postscript_name (font, + font_in_run)) + break; + } + if (nruns > 0 && i == nruns) + result = CTFontCopyAttribute (font, kCTFontFamilyNameAttribute); + CFRelease (ctline); + } + } } return result; @@ -3427,14 +3413,14 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no mac_ctfont_get_advance_width_for_glyph (CTFontRef font, CGGlyph glyph) { return CTFontGetAdvancesForGlyphs (font, kCTFontDefaultOrientation, - &glyph, NULL, 1); + &glyph, NULL, 1); } static inline CGRect mac_ctfont_get_bounding_rect_for_glyph (CTFontRef font, CGGlyph glyph) { return CTFontGetBoundingRectsForGlyphs (font, kCTFontDefaultOrientation, - &glyph, NULL, 1); + &glyph, NULL, 1); } static CFArrayRef @@ -3442,83 +3428,31 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no { CFMutableArrayRef families = NULL; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 - if (CTFontManagerCopyAvailableFontFamilyNames != NULL) -#endif { CFArrayRef orig_families = CTFontManagerCopyAvailableFontFamilyNames (); if (orig_families) - { - CFIndex i, count = CFArrayGetCount (orig_families); + { + CFIndex i, count = CFArrayGetCount (orig_families); - families = CFArrayCreateMutable (NULL, count, &kCFTypeArrayCallBacks); - if (families) - for (i = 0; i < count; i++) - { - CFStringRef family = CFArrayGetValueAtIndex (orig_families, i); + families = CFArrayCreateMutable (NULL, count, &kCFTypeArrayCallBacks); + if (families) + for (i = 0; i < count; i++) + { + CFStringRef family = CFArrayGetValueAtIndex (orig_families, i); - if (!CFStringHasPrefix (family, CFSTR (".")) - && (CTFontManagerCompareFontFamilyNames (family, - CFSTR ("LastResort"), - NULL) - != kCFCompareEqualTo)) - CFArrayAppendValue (families, family); - } - CFRelease (orig_families); - } + if (!CFStringHasPrefix (family, CFSTR (".")) + && (CTFontManagerCompareFontFamilyNames (family, + CFSTR ("LastResort"), + NULL) + != kCFCompareEqualTo)) + CFArrayAppendValue (families, family); + } + CFRelease (orig_families); + } } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 - else /* CTFontManagerCopyAvailableFontFamilyNames == NULL */ -#endif -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 */ -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 - { - CTFontCollectionRef collection; - CFArrayRef descs = NULL; - collection = CTFontCollectionCreateFromAvailableFonts (NULL); - if (collection) - { - descs = CTFontCollectionCreateMatchingFontDescriptors (collection); - CFRelease (collection); - } - if (descs) - { - CFIndex i, count = CFArrayGetCount (descs); - - families = CFArrayCreateMutable (NULL, count, &kCFTypeArrayCallBacks); - if (families) - for (i = 0; i < count; i++) - { - FontDescriptorRef desc = CFArrayGetValueAtIndex (descs, i); - CFStringRef name = - mac_font_descriptor_copy_attribute (desc, - MAC_FONT_FAMILY_NAME_ATTRIBUTE); - - if (name) - { - CFIndex p, limit = CFArrayGetCount (families); - - p = CFArrayBSearchValues (families, CFRangeMake (0, limit), - (const void *) name, - mac_font_family_compare, NULL); - if (p >= limit) - CFArrayAppendValue (families, name); - else if (mac_font_family_compare - (CFArrayGetValueAtIndex (families, p), - name, NULL) != kCFCompareEqualTo) - CFArrayInsertValueAtIndex (families, p, name); - CFRelease (name); - } - } - CFRelease (descs); - } - } -#endif - - return families; + return families; } static Boolean @@ -3536,10 +3470,10 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no { name2 = CTFontCopyPostScriptName (font2); if (name2) - { - result = CFEqual (name1, name2); - CFRelease (name2); - } + { + result = CFEqual (name1, name2); + CFRelease (name2); + } CFRelease (name1); } @@ -3548,7 +3482,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no static CTLineRef mac_ctfont_create_line_with_string_and_font (CFStringRef string, - CTFontRef macfont) + CTFontRef macfont) { CFStringRef keys[] = {kCTFontAttributeName, kCTKernAttributeName}; CFTypeRef values[] = {NULL, NULL}; @@ -3562,10 +3496,10 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no if (values[1]) { attributes = CFDictionaryCreate (NULL, (const void **) keys, - (const void **) values, + (const void **) values, ARRAYELTS (keys), - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); CFRelease (values[1]); } if (attributes) @@ -3581,30 +3515,30 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no if (ctline) { /* Abandon if ctline contains some fonts other than the - specified one. */ + specified one. */ CFArrayRef runs = CTLineGetGlyphRuns (ctline); CFIndex i, nruns = CFArrayGetCount (runs); for (i = 0; i < nruns; i++) - { - CTRunRef run = CFArrayGetValueAtIndex (runs, i); - CFDictionaryRef attributes = CTRunGetAttributes (run); - CTFontRef font_in_run; + { + CTRunRef run = CFArrayGetValueAtIndex (runs, i); + CFDictionaryRef attributes = CTRunGetAttributes (run); + CTFontRef font_in_run; - if (attributes == NULL) - break; - font_in_run = - CFDictionaryGetValue (attributes, kCTFontAttributeName); - if (font_in_run == NULL) - break; - if (!mac_ctfont_equal_in_postscript_name (macfont, font_in_run)) - break; - } + if (attributes == NULL) + break; + font_in_run = + CFDictionaryGetValue (attributes, kCTFontAttributeName); + if (font_in_run == NULL) + break; + if (!mac_ctfont_equal_in_postscript_name (macfont, font_in_run)) + break; + } if (i < nruns) - { - CFRelease (ctline); - ctline = NULL; - } + { + CFRelease (ctline); + ctline = NULL; + } } return ctline; @@ -3612,7 +3546,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no static CFIndex mac_ctfont_shape (CTFontRef font, CFStringRef string, - struct mac_glyph_layout *glyph_layouts, CFIndex glyph_len) + struct mac_glyph_layout *glyph_layouts, CFIndex glyph_len) { CFIndex used, result = 0; CTLineRef ctline = mac_ctfont_create_line_with_string_and_font (string, font); @@ -3629,128 +3563,128 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no CFIndex total_glyph_count = 0; for (k = 0; k < ctrun_count; k++) - { - CTRunRef ctrun = CFArrayGetValueAtIndex (ctruns, k); - CFIndex i, min_location, glyph_count = CTRunGetGlyphCount (ctrun); - struct mac_glyph_layout *glbuf = glyph_layouts + total_glyph_count; - CFRange string_range, comp_range, range; - CFIndex *permutation; + { + CTRunRef ctrun = CFArrayGetValueAtIndex (ctruns, k); + CFIndex i, min_location, glyph_count = CTRunGetGlyphCount (ctrun); + struct mac_glyph_layout *glbuf = glyph_layouts + total_glyph_count; + CFRange string_range, comp_range, range; + CFIndex *permutation; - if (CTRunGetStatus (ctrun) & kCTRunStatusRightToLeft) - permutation = xmalloc (sizeof (CFIndex) * glyph_count); - else - permutation = NULL; + if (CTRunGetStatus (ctrun) & kCTRunStatusRightToLeft) + permutation = xmalloc (sizeof (CFIndex) * glyph_count); + else + permutation = NULL; #define RIGHT_TO_LEFT_P permutation - /* Now the `comp_range' member of struct mac_glyph_layout is - temporarily used as a work area such that: - glbuf[i].comp_range.location = - min {compRange[i + 1].location, ..., + /* Now the `comp_range' member of struct mac_glyph_layout is + temporarily used as a work area such that: + glbuf[i].comp_range.location = + min {compRange[i + 1].location, ..., compRange[glyph_count - 1].location, maxRange (stringRangeForCTRun)} - glbuf[i].comp_range.length = maxRange (compRange[i]) - where compRange[i] is the range of composed characters - containing i-th glyph. */ - string_range = CTRunGetStringRange (ctrun); - min_location = string_range.location + string_range.length; - for (i = 0; i < glyph_count; i++) - { - struct mac_glyph_layout *gl = glbuf + glyph_count - i - 1; - CFIndex glyph_index; - CFRange rng; + glbuf[i].comp_range.length = maxRange (compRange[i]) + where compRange[i] is the range of composed characters + containing i-th glyph. */ + string_range = CTRunGetStringRange (ctrun); + min_location = string_range.location + string_range.length; + for (i = 0; i < glyph_count; i++) + { + struct mac_glyph_layout *gl = glbuf + glyph_count - i - 1; + CFIndex glyph_index; + CFRange rng; - if (!RIGHT_TO_LEFT_P) - glyph_index = glyph_count - i - 1; - else - glyph_index = i; - CTRunGetStringIndices (ctrun, CFRangeMake (glyph_index, 1), - &gl->string_index); - rng = - CFStringGetRangeOfComposedCharactersAtIndex (string, - gl->string_index); - gl->comp_range.location = min_location; - gl->comp_range.length = rng.location + rng.length; - if (rng.location < min_location) - min_location = rng.location; - } + if (!RIGHT_TO_LEFT_P) + glyph_index = glyph_count - i - 1; + else + glyph_index = i; + CTRunGetStringIndices (ctrun, CFRangeMake (glyph_index, 1), + &gl->string_index); + rng = + CFStringGetRangeOfComposedCharactersAtIndex (string, + gl->string_index); + gl->comp_range.location = min_location; + gl->comp_range.length = rng.location + rng.length; + if (rng.location < min_location) + min_location = rng.location; + } - /* Fill the `comp_range' member of struct mac_glyph_layout, - and setup a permutation for right-to-left text. */ - comp_range = CFRangeMake (string_range.location, 0); - range = CFRangeMake (0, 0); - while (1) - { - struct mac_glyph_layout *gl = - glbuf + range.location + range.length; + /* Fill the `comp_range' member of struct mac_glyph_layout, + and setup a permutation for right-to-left text. */ + comp_range = CFRangeMake (string_range.location, 0); + range = CFRangeMake (0, 0); + while (1) + { + struct mac_glyph_layout *gl = + glbuf + range.location + range.length; - if (gl->comp_range.length - > comp_range.location + comp_range.length) - comp_range.length = gl->comp_range.length - comp_range.location; - min_location = gl->comp_range.location; - range.length++; + if (gl->comp_range.length + > comp_range.location + comp_range.length) + comp_range.length = gl->comp_range.length - comp_range.location; + min_location = gl->comp_range.location; + range.length++; - if (min_location >= comp_range.location + comp_range.length) - { - comp_range.length = min_location - comp_range.location; - for (i = 0; i < range.length; i++) - { - glbuf[range.location + i].comp_range = comp_range; - if (RIGHT_TO_LEFT_P) - permutation[range.location + i] = - range.location + range.length - i - 1; - } + if (min_location >= comp_range.location + comp_range.length) + { + comp_range.length = min_location - comp_range.location; + for (i = 0; i < range.length; i++) + { + glbuf[range.location + i].comp_range = comp_range; + if (RIGHT_TO_LEFT_P) + permutation[range.location + i] = + range.location + range.length - i - 1; + } - comp_range = CFRangeMake (min_location, 0); - range.location += range.length; - range.length = 0; - if (range.location == glyph_count) - break; - } - } + comp_range = CFRangeMake (min_location, 0); + range.location += range.length; + range.length = 0; + if (range.location == glyph_count) + break; + } + } - /* Then fill the remaining members. */ - for (range = CFRangeMake (0, 1); range.location < glyph_count; - range.location++) - { - struct mac_glyph_layout *gl; - CGPoint position; + /* Then fill the remaining members. */ + for (range = CFRangeMake (0, 1); range.location < glyph_count; + range.location++) + { + struct mac_glyph_layout *gl; + CGPoint position; - if (!RIGHT_TO_LEFT_P) - gl = glbuf + range.location; - else - { - CFIndex src, dest; + if (!RIGHT_TO_LEFT_P) + gl = glbuf + range.location; + else + { + CFIndex src, dest; - src = glyph_count - 1 - range.location; - dest = permutation[src]; - gl = glbuf + dest; - if (src < dest) - { - CFIndex tmp = gl->string_index; + src = glyph_count - 1 - range.location; + dest = permutation[src]; + gl = glbuf + dest; + if (src < dest) + { + CFIndex tmp = gl->string_index; - gl->string_index = glbuf[src].string_index; - glbuf[src].string_index = tmp; - } - } - CTRunGetGlyphs (ctrun, range, &gl->glyph_id); + gl->string_index = glbuf[src].string_index; + glbuf[src].string_index = tmp; + } + } + CTRunGetGlyphs (ctrun, range, &gl->glyph_id); - CTRunGetPositions (ctrun, range, &position); - gl->advance_delta = position.x - total_advance; - gl->baseline_delta = position.y; - gl->advance = (gl->advance_delta - + CTRunGetTypographicBounds (ctrun, range, - NULL, NULL, NULL)); - total_advance += gl->advance; - } + CTRunGetPositions (ctrun, range, &position); + gl->advance_delta = position.x - total_advance; + gl->baseline_delta = position.y; + gl->advance = (gl->advance_delta + + CTRunGetTypographicBounds (ctrun, range, + NULL, NULL, NULL)); + total_advance += gl->advance; + } - if (RIGHT_TO_LEFT_P) - xfree (permutation); + if (RIGHT_TO_LEFT_P) + xfree (permutation); #undef RIGHT_TO_LEFT_P - total_glyph_count += glyph_count; - } + total_glyph_count += glyph_count; + } result = used; } @@ -3765,7 +3699,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no #if USE_CT_GLYPH_INFO static CGGlyph mac_ctfont_get_glyph_for_cid (CTFontRef font, CTCharacterCollection collection, - CGFontIndex cid) + CGFontIndex cid) { CGGlyph result = kCGFontIndexInvalid; UniChar characters[] = {0xfffd}; @@ -3779,27 +3713,27 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no if (string) { CTGlyphInfoRef glyph_info = - CTGlyphInfoCreateWithCharacterIdentifier (cid, collection, string); + CTGlyphInfoCreateWithCharacterIdentifier (cid, collection, string); CFDictionaryRef attributes = NULL; if (glyph_info) - { - CFStringRef keys[] = {kCTFontAttributeName, - kCTGlyphInfoAttributeName}; - CFTypeRef values[] = {font, glyph_info}; + { + CFStringRef keys[] = {kCTFontAttributeName, + kCTGlyphInfoAttributeName}; + CFTypeRef values[] = {font, glyph_info}; - attributes = CFDictionaryCreate (NULL, (const void **) keys, - (const void **) values, + attributes = CFDictionaryCreate (NULL, (const void **) keys, + (const void **) values, ARRAYELTS (keys), - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - CFRelease (glyph_info); - } + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); + CFRelease (glyph_info); + } if (attributes) - { - attr_string = CFAttributedStringCreate (NULL, string, attributes); - CFRelease (attributes); - } + { + attr_string = CFAttributedStringCreate (NULL, string, attributes); + CFRelease (attributes); + } CFRelease (string); } if (attr_string) @@ -3812,24 +3746,24 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no CFArrayRef runs = CTLineGetGlyphRuns (ctline); if (CFArrayGetCount (runs) > 0) - { - CTRunRef run = CFArrayGetValueAtIndex (runs, 0); - CFDictionaryRef attributes = CTRunGetAttributes (run); + { + CTRunRef run = CFArrayGetValueAtIndex (runs, 0); + CFDictionaryRef attributes = CTRunGetAttributes (run); - if (attributes) - { - CTFontRef font_in_run = - CFDictionaryGetValue (attributes, kCTFontAttributeName); + if (attributes) + { + CTFontRef font_in_run = + CFDictionaryGetValue (attributes, kCTFontAttributeName); - if (font_in_run - && mac_ctfont_equal_in_postscript_name (font_in_run, font)) - { - CTRunGetGlyphs (run, CFRangeMake (0, 1), &result); - if (result >= CTFontGetGlyphCount (font)) - result = kCGFontIndexInvalid; - } - } - } + if (font_in_run + && mac_ctfont_equal_in_postscript_name (font_in_run, font)) + { + CTRunGetGlyphs (run, CFRangeMake (0, 1), &result); + if (result >= CTFontGetGlyphCount (font)) + result = kCGFontIndexInvalid; + } + } + } CFRelease (ctline); } @@ -3837,41 +3771,6 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no } #endif -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 -static inline int -mac_font_family_group (CFStringRef family) -{ - if (CFStringHasPrefix (family, CFSTR ("#"))) - return 2; - else - { - CFRange range; - - range = CFStringFind (family, CFSTR ("Apple"), - kCFCompareCaseInsensitive | kCFCompareAnchored); - if (range.location != kCFNotFound) - return 1; - - return 0; - } -} - -static CFComparisonResult -mac_font_family_compare (const void *val1, const void *val2, void *context) -{ - CFStringRef family1 = (CFStringRef) val1, family2 = (CFStringRef) val2; - int group1, group2; - - group1 = mac_font_family_group (family1); - group2 = mac_font_family_group (family2); - if (group1 < group2) - return kCFCompareLessThan; - if (group1 > group2) - return kCFCompareGreaterThan; - return CFStringCompare (family1, family2, kCFCompareCaseInsensitive); -} -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */ - static CFArrayRef mac_font_copy_default_descriptors_for_language (CFStringRef language) { @@ -3883,22 +3782,22 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no #endif { CTFontRef user_font = - CTFontCreateUIFontForLanguage (kCTFontUserFontType, 0, language); + CTFontCreateUIFontForLanguage (kCTFontUserFontType, 0, language); if (user_font) - { - CFArrayRef languages = - CFArrayCreate (NULL, (const void **) &language, 1, - &kCFTypeArrayCallBacks); + { + CFArrayRef languages = + CFArrayCreate (NULL, (const void **) &language, 1, + &kCFTypeArrayCallBacks); - if (languages) - { - result = CTFontCopyDefaultCascadeListForLanguages (user_font, - languages); - CFRelease (languages); - } - CFRelease (user_font); - } + if (languages) + { + result = CTFontCopyDefaultCascadeListForLanguages (user_font, + languages); + CFRelease (languages); + } + CFRelease (user_font); + } } #if MAC_OS_X_VERSION_MIN_REQUIRED < 1080 else /* CTFontCopyDefaultCascadeListForLanguages == NULL */ @@ -3909,55 +3808,55 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no CFIndex i; for (i = 0; macfont_language_default_font_names[i].language; i++) - { - if (CFEqual (macfont_language_default_font_names[i].language, + { + if (CFEqual (macfont_language_default_font_names[i].language, language)) - { - CFMutableArrayRef descriptors = - CFArrayCreateMutable (NULL, 0, &kCFTypeArrayCallBacks); + { + CFMutableArrayRef descriptors = + CFArrayCreateMutable (NULL, 0, &kCFTypeArrayCallBacks); - if (descriptors) - { - CFIndex j; + if (descriptors) + { + CFIndex j; - for (j = 0; - macfont_language_default_font_names[i].font_names[j]; - j++) - { - CFDictionaryRef attributes = - CFDictionaryCreate (NULL, - ((const void **) - &MAC_FONT_NAME_ATTRIBUTE), - ((const void **) - &macfont_language_default_font_names[i].font_names[j]), - 1, &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); + for (j = 0; + macfont_language_default_font_names[i].font_names[j]; + j++) + { + CFDictionaryRef attributes = + CFDictionaryCreate (NULL, + ((const void **) + &MAC_FONT_NAME_ATTRIBUTE), + ((const void **) + &macfont_language_default_font_names[i].font_names[j]), + 1, &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); - if (attributes) - { - FontDescriptorRef pat_desc = - mac_font_descriptor_create_with_attributes (attributes); + if (attributes) + { + FontDescriptorRef pat_desc = + mac_font_descriptor_create_with_attributes (attributes); - if (pat_desc) - { - FontDescriptorRef descriptor = - mac_font_descriptor_create_matching_font_descriptor (pat_desc, NULL); + if (pat_desc) + { + FontDescriptorRef descriptor = + mac_font_descriptor_create_matching_font_descriptor (pat_desc, NULL); - if (descriptor) - { - CFArrayAppendValue (descriptors, descriptor); - CFRelease (descriptor); - } - CFRelease (pat_desc); - } - CFRelease (attributes); - } - } - result = descriptors; - } - break; - } - } + if (descriptor) + { + CFArrayAppendValue (descriptors, descriptor); + CFRelease (descriptor); + } + CFRelease (pat_desc); + } + CFRelease (attributes); + } + } + result = descriptors; + } + break; + } + } } #endif @@ -3966,7 +3865,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no static CFStringRef mac_font_copy_default_name_for_charset_and_languages (CFCharacterSetRef charset, - CFArrayRef languages) + CFArrayRef languages) { CFStringRef result = NULL; CFStringRef language = CFArrayGetValueAtIndex (languages, 0); @@ -3978,29 +3877,29 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no CFIndex i, count = CFArrayGetCount (descriptors); for (i = 0; i < count; i++) - { - FontDescriptorRef descriptor = - CFArrayGetValueAtIndex (descriptors, i); + { + FontDescriptorRef descriptor = + CFArrayGetValueAtIndex (descriptors, i); - if (macfont_supports_charset_and_languages_p (descriptor, charset, - Qnil, languages)) - { - CFStringRef family = - mac_font_descriptor_copy_attribute (descriptor, - MAC_FONT_FAMILY_NAME_ATTRIBUTE); - if (family) - { - if (!CFStringHasPrefix (family, CFSTR (".")) - && !CFEqual (family, CFSTR ("LastResort"))) + if (macfont_supports_charset_and_languages_p (descriptor, charset, + Qnil, languages)) + { + CFStringRef family = + mac_font_descriptor_copy_attribute (descriptor, + MAC_FONT_FAMILY_NAME_ATTRIBUTE); + if (family) + { + if (!CFStringHasPrefix (family, CFSTR (".")) + && !CFEqual (family, CFSTR ("LastResort"))) { - result = family; - break; - } - else - CFRelease (family); - } - } - } + result = family; + break; + } + else + CFRelease (family); + } + } + } CFRelease (descriptors); } @@ -4022,13 +3921,10 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no register_font_driver (&macfont_driver, f); } -#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 - void syms_of_macfont (void) { -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 static struct font_driver mac_font_driver; DEFSYM (Qmac_ct, "mac-ct"); @@ -4037,5 +3933,4 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no DEFSYM (QCdestination, ":destination"); DEFSYM (QCminspace, ":minspace"); -#endif } diff --git a/src/macros.c b/src/macros.c index 4730a8becc9..c3d26d0d5c2 100644 --- a/src/macros.c +++ b/src/macros.c @@ -63,6 +63,8 @@ macro before appending to it. */) { current_kboard->kbd_macro_buffer = xmalloc (30 * word_size); current_kboard->kbd_macro_bufsize = 30; + current_kboard->kbd_macro_ptr = current_kboard->kbd_macro_buffer; + current_kboard->kbd_macro_end = current_kboard->kbd_macro_buffer; } update_mode_lines = 19; if (NILP (append)) diff --git a/src/marker.c b/src/marker.c index 91fcea5f25f..d377efbc4fa 100644 --- a/src/marker.c +++ b/src/marker.c @@ -455,21 +455,8 @@ attach_marker (struct Lisp_Marker *m, struct buffer *b, static struct buffer * live_buffer (Lisp_Object buffer) { - struct buffer *b; - - if (NILP (buffer)) - { - b = current_buffer; - eassert (BUFFER_LIVE_P (b)); - } - else - { - CHECK_BUFFER (buffer); - b = XBUFFER (buffer); - if (!BUFFER_LIVE_P (b)) - b = NULL; - } - return b; + struct buffer *b = decode_buffer (buffer); + return BUFFER_LIVE_P (b) ? b : NULL; } /* Internal function to set MARKER in BUFFER at POSITION. Non-zero diff --git a/src/menu.c b/src/menu.c index e0f226562f8..61163ae0216 100644 --- a/src/menu.c +++ b/src/menu.c @@ -354,7 +354,7 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk front of them. */ if (!have_boxes ()) { - Lisp_Object prefix = Qnil; + char const *prefix = 0; Lisp_Object type = AREF (item_properties, ITEM_PROPERTY_TYPE); if (!NILP (type)) { @@ -389,8 +389,11 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk { if (!submenu && SREF (tem, 0) != '\0' && SREF (tem, 0) != '-') - ASET (menu_items, idx + MENU_ITEMS_ITEM_NAME, - concat2 (build_string (" "), tem)); + { + AUTO_STRING (spaces, " "); + ASET (menu_items, idx + MENU_ITEMS_ITEM_NAME, + concat2 (spaces, tem)); + } idx += MENU_ITEMS_ITEM_LENGTH; } } @@ -399,24 +402,30 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk /* Calculate prefix, if any, for this item. */ if (EQ (type, QCtoggle)) - prefix = build_string (NILP (selected) ? "[ ] " : "[X] "); + prefix = NILP (selected) ? "[ ] " : "[X] "; else if (EQ (type, QCradio)) - prefix = build_string (NILP (selected) ? "( ) " : "(*) "); + prefix = NILP (selected) ? "( ) " : "(*) "; } /* Not a button. If we have earlier buttons, then we need a prefix. */ else if (!skp->notbuttons && SREF (item_string, 0) != '\0' && SREF (item_string, 0) != '-') - prefix = build_string (" "); + prefix = " "; - if (!NILP (prefix)) - item_string = concat2 (prefix, item_string); + if (prefix) + { + AUTO_STRING (prefix_obj, prefix); + item_string = concat2 (prefix_obj, item_string); + } } if ((FRAME_TERMCAP_P (XFRAME (Vmenu_updating_frame)) || FRAME_MSDOS_P (XFRAME (Vmenu_updating_frame))) && !NILP (map)) /* Indicate visually that this is a submenu. */ - item_string = concat2 (item_string, build_string (" >")); + { + AUTO_STRING (space_gt, " >"); + item_string = concat2 (item_string, space_gt); + } push_menu_item (item_string, enabled, key, AREF (item_properties, ITEM_PROPERTY_DEF), @@ -632,8 +641,9 @@ digest_single_submenu (int start, int end, bool top_level_items) widget_value **submenu_stack; bool panes_seen = 0; struct frame *f = XFRAME (Vmenu_updating_frame); + USE_SAFE_ALLOCA; - submenu_stack = alloca (menu_items_used * sizeof *submenu_stack); + SAFE_NALLOCA (submenu_stack, 1, menu_items_used); wv = make_widget_value ("menu", NULL, true, Qnil); wv->button_type = BUTTON_TYPE_NONE; first_wv = wv; @@ -835,11 +845,12 @@ digest_single_submenu (int start, int end, bool top_level_items) that was originally a button, return it by itself. */ if (top_level_items && first_wv->contents && first_wv->contents->next == 0) { - wv = first_wv->contents; - xfree (first_wv); - return wv; + wv = first_wv; + first_wv = first_wv->contents; + xfree (wv); } + SAFE_FREE (); return first_wv; } @@ -890,9 +901,10 @@ find_and_call_menu_selection (struct frame *f, int menu_bar_items_used, Lisp_Object *subprefix_stack; int submenu_depth = 0; int i; + USE_SAFE_ALLOCA; entry = Qnil; - subprefix_stack = alloca (menu_bar_items_used * sizeof *subprefix_stack); + SAFE_NALLOCA (subprefix_stack, 1, menu_bar_items_used); prefix = Qnil; i = 0; @@ -954,11 +966,13 @@ find_and_call_menu_selection (struct frame *f, int menu_bar_items_used, buf.arg = entry; kbd_buffer_store_event (&buf); - return; + break; } i += MENU_ITEMS_ITEM_LENGTH; } } + + SAFE_FREE (); } #endif /* USE_X_TOOLKIT || USE_GTK || HAVE_NS || HAVE_NTGUI */ @@ -973,10 +987,11 @@ find_and_return_menu_selection (struct frame *f, bool keymaps, void *client_data int i; Lisp_Object *subprefix_stack; int submenu_depth = 0; + USE_SAFE_ALLOCA; prefix = entry = Qnil; i = 0; - subprefix_stack = alloca (menu_items_used * word_size); + SAFE_ALLOCA_LISP (subprefix_stack, menu_items_used); while (i < menu_items_used) { @@ -1018,11 +1033,13 @@ find_and_return_menu_selection (struct frame *f, bool keymaps, void *client_data if (!NILP (subprefix_stack[j])) entry = Fcons (subprefix_stack[j], entry); } + SAFE_FREE (); return entry; } i += MENU_ITEMS_ITEM_LENGTH; } } + SAFE_FREE (); return Qnil; } #endif /* HAVE_NS */ @@ -1455,7 +1472,7 @@ emulate_dialog_with_menu (struct frame *f, Lisp_Object contents) their upper-left corner at the given position.) */ if (STRINGP (prompt)) x_coord -= SCHARS (prompt); - y_coord = FRAME_LINES (f); + y_coord = FRAME_TOTAL_LINES (f); } XSETFRAME (frame, f); diff --git a/src/menu.h b/src/menu.h index 30a89bead26..4dd7f17dca6 100644 --- a/src/menu.h +++ b/src/menu.h @@ -34,10 +34,6 @@ enum { MENU_KBD_NAVIGATION = 0x4 }; -extern void x_set_menu_bar_lines (struct frame *f, - Lisp_Object value, - Lisp_Object oldval); - extern void init_menu_items (void); extern void finish_menu_items (void) ATTRIBUTE_CONST; extern void discard_menu_items (void); diff --git a/src/minibuf.c b/src/minibuf.c index 93e19d5c120..27b5f7b7f36 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -713,8 +713,8 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, { XWINDOW (minibuf_window)->cursor.hpos = 0; XWINDOW (minibuf_window)->cursor.x = 0; - XWINDOW (minibuf_window)->must_be_updated_p = 1; - update_frame (XFRAME (selected_frame), 1, 1); + XWINDOW (minibuf_window)->must_be_updated_p = true; + update_frame (XFRAME (selected_frame), true, true); flush_frame (XFRAME (XWINDOW (minibuf_window)->frame)); } @@ -1123,7 +1123,7 @@ If `read-buffer-function' is non-nil, this works by calling it as a function, instead of the usual behavior. */) (Lisp_Object prompt, Lisp_Object def, Lisp_Object require_match) { - Lisp_Object args[4], result; + Lisp_Object result; char *s; ptrdiff_t len; ptrdiff_t count = SPECPDL_INDEX (); @@ -1157,10 +1157,10 @@ function, instead of the usual behavior. */) STRING_MULTIBYTE (prompt)); } - args[0] = build_string ("%s (default %s): "); - args[1] = prompt; - args[2] = CONSP (def) ? XCAR (def) : def; - prompt = Fformat (3, args); + AUTO_STRING (format, "%s (default %s): "); + prompt = Fformat (3, ((Lisp_Object []) + {format, prompt, + CONSP (def) ? XCAR (def) : def})); } result = Fcompleting_read (prompt, intern ("internal-complete-buffer"), @@ -1168,13 +1168,8 @@ function, instead of the usual behavior. */) Qbuffer_name_history, def, Qnil); } else - { - args[0] = Vread_buffer_function; - args[1] = prompt; - args[2] = def; - args[3] = require_match; - result = Ffuncall (4, args); - } + result = Ffuncall (4, ((Lisp_Object []) + { Vread_buffer_function, prompt, def, require_match })); return unbind_to (count, result); } diff --git a/src/msdos.c b/src/msdos.c index ccca371583f..14c2624114d 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -71,6 +71,7 @@ along with GNU Emacs. If not, see . */ #include "coding.h" #include "disptab.h" #include "window.h" +#include "menu.h" #include "buffer.h" #include "commands.h" #include "blockinput.h" @@ -1791,7 +1792,7 @@ internal_terminal_init (void) } Vinitial_window_system = Qpc; - Vwindow_system_version = make_number (24); /* RE Emacs version */ + Vwindow_system_version = make_number (25); /* RE Emacs version */ tty->terminal->type = output_msdos_raw; /* If Emacs was dumped on DOS/V machine, forget the stale VRAM @@ -4016,103 +4017,6 @@ unsetenv (const char *name) #endif -#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2 - -/* Augment DJGPP library POSIX signal functions. This is needed - as of DJGPP v2.01, but might be in the library in later releases. */ - -#include - -/* A counter to know when to re-initialize the static sets. */ -static int sigprocmask_count = -1; - -/* Which signals are currently blocked (initially none). */ -static sigset_t current_mask; - -/* Which signals are pending (initially none). */ -static sigset_t msdos_pending_signals; - -/* Previous handlers to restore when the blocked signals are unblocked. */ -typedef void (*sighandler_t)(int); -static sighandler_t prev_handlers[320]; - -/* A signal handler which just records that a signal occurred - (it will be raised later, if and when the signal is unblocked). */ -static void -sig_suspender (int signo) -{ - sigaddset (&msdos_pending_signals, signo); -} - -int -sigprocmask (int how, const sigset_t *new_set, sigset_t *old_set) -{ - int signo; - sigset_t new_mask; - - /* If called for the first time, initialize. */ - if (sigprocmask_count != __bss_count) - { - sigprocmask_count = __bss_count; - sigemptyset (&msdos_pending_signals); - sigemptyset (¤t_mask); - for (signo = 0; signo < 320; signo++) - prev_handlers[signo] = SIG_ERR; - } - - if (old_set) - *old_set = current_mask; - - if (new_set == 0) - return 0; - - if (how != SIG_BLOCK && how != SIG_UNBLOCK && how != SIG_SETMASK) - { - errno = EINVAL; - return -1; - } - - sigemptyset (&new_mask); - - /* DJGPP supports upto 320 signals. */ - for (signo = 0; signo < 320; signo++) - { - if (sigismember (¤t_mask, signo)) - sigaddset (&new_mask, signo); - else if (sigismember (new_set, signo) && how != SIG_UNBLOCK) - { - sigaddset (&new_mask, signo); - - /* SIGKILL is silently ignored, as on other platforms. */ - if (signo != SIGKILL && prev_handlers[signo] == SIG_ERR) - prev_handlers[signo] = signal (signo, sig_suspender); - } - if (( how == SIG_UNBLOCK - && sigismember (&new_mask, signo) - && sigismember (new_set, signo)) - || (how == SIG_SETMASK - && sigismember (&new_mask, signo) - && !sigismember (new_set, signo))) - { - sigdelset (&new_mask, signo); - if (prev_handlers[signo] != SIG_ERR) - { - signal (signo, prev_handlers[signo]); - prev_handlers[signo] = SIG_ERR; - } - if (sigismember (&msdos_pending_signals, signo)) - { - sigdelset (&msdos_pending_signals, signo); - raise (signo); - } - } - } - current_mask = new_mask; - return 0; -} - -#endif /* not __DJGPP_MINOR__ < 2 */ - #ifndef HAVE_SELECT #include "sysselect.h" @@ -4259,15 +4163,7 @@ msdos_abort (void) dos_ttcooked (); ScreenSetCursor (10, 0); cputs ("\r\n\nEmacs aborted!\r\n"); -#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2 - if (screen_virtual_segment) - dosv_refresh_virtual_screen (2 * 10 * screen_size_X, 4 * screen_size_X); - /* Generate traceback, so we could tell whodunit. */ - signal (SIGINT, SIG_DFL); - __asm__ __volatile__ ("movb $0x1b,%al;call ___djgpp_hw_exception"); -#else /* __DJGPP_MINOR__ >= 2 */ raise (SIGABRT); -#endif /* __DJGPP_MINOR__ >= 2 */ exit (2); } diff --git a/src/nsfns.m b/src/nsfns.m index 8bce1da2e5d..578ec12588c 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -46,10 +46,8 @@ Updated by Christian Limpach (chris@nice.ch) #ifdef NS_IMPL_COCOA #include -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 #include "macfont.h" #endif -#endif #if 0 int fns_trace_num = 1; @@ -135,7 +133,7 @@ Updated by Christian Limpach (chris@nice.ch) } else if (TERMINALP (object)) { - struct terminal *t = get_terminal (object, 1); + struct terminal *t = decode_live_terminal (object); if (t->type != output_ns) error ("Terminal %d is not a Nextstep display", t->id); @@ -197,7 +195,7 @@ Updated by Christian Limpach (chris@nice.ch) static NSString * ns_filename_from_panel (NSSavePanel *panel) { -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA NSURL *url = [panel URL]; NSString *str = [url path]; return str; @@ -209,7 +207,7 @@ Updated by Christian Limpach (chris@nice.ch) static NSString * ns_directory_from_panel (NSSavePanel *panel) { -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA NSURL *url = [panel directoryURL]; NSString *str = [url path]; return str; @@ -282,9 +280,14 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side NSColor *col; EmacsCGFloat r, g, b, alpha; + /* Must block_input, because ns_lisp_to_color does block/unblock_input + which means that col may be deallocated in its unblock_input if there + is user input, unless we also block_input. */ + block_input (); if (ns_lisp_to_color (arg, &col)) { store_frame_param (f, Qforeground_color, oldval); + unblock_input (); error ("Unknown color"); } @@ -301,8 +304,9 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side update_face_from_frame_parameter (f, Qforeground_color, arg); /*recompute_basic_faces (f); */ if (FRAME_VISIBLE_P (f)) - redraw_frame (f); + SET_FRAME_GARBAGED (f); } + unblock_input (); } @@ -314,9 +318,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side NSView *view = FRAME_NS_VIEW (f); EmacsCGFloat r, g, b, alpha; + block_input (); if (ns_lisp_to_color (arg, &col)) { store_frame_param (f, Qbackground_color, oldval); + unblock_input (); error ("Unknown color"); } @@ -353,8 +359,9 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side } if (FRAME_VISIBLE_P (f)) - redraw_frame (f); + SET_FRAME_GARBAGED (f); } + unblock_input (); } @@ -363,9 +370,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side { NSColor *col; + block_input (); if (ns_lisp_to_color (arg, &col)) { store_frame_param (f, Qcursor_color, oldval); + unblock_input (); error ("Unknown color"); } @@ -378,6 +387,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side x_update_cursor (f, 1); } update_face_from_frame_parameter (f, Qcursor_color, arg); + unblock_input (); } @@ -609,18 +619,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side fstr = [NSString stringWithUTF8String: SSDATA (encoded_filename)]; if (fstr == nil) fstr = @""; -#ifdef NS_IMPL_COCOA - /* work around a bug observed on 10.3 and later where - setTitleWithRepresentedFilename does not clear out previous state - if given filename does not exist */ - if (! [[NSFileManager defaultManager] fileExistsAtPath: fstr]) - [[view window] setRepresentedFilename: @""]; -#endif } else fstr = @""; - [[view window] setRepresentedFilename: fstr]; + ns_set_represented_filename (fstr, f); [[view window] setTitle: str]; fset_name (f, name); } @@ -631,18 +634,30 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side void -ns_set_doc_edited (struct frame *f, Lisp_Object arg) +ns_set_doc_edited (void) { - NSView *view = FRAME_NS_VIEW (f); NSAutoreleasePool *pool; - if (!MINI_WINDOW_P (XWINDOW (f->selected_window))) + Lisp_Object tail, frame; + block_input (); + pool = [[NSAutoreleasePool alloc] init]; + FOR_EACH_FRAME (tail, frame) { - block_input (); - pool = [[NSAutoreleasePool alloc] init]; - [[view window] setDocumentEdited: !NILP (arg)]; - [pool release]; - unblock_input (); + BOOL edited = NO; + struct frame *f = XFRAME (frame); + struct window *w; + NSView *view; + + if (! FRAME_NS_P (f)) continue; + w = XWINDOW (FRAME_SELECTED_WINDOW (f)); + view = FRAME_NS_VIEW (f); + if (!MINI_WINDOW_P (w)) + edited = ! NILP (Fbuffer_modified_p (w->contents)) && + ! NILP (Fbuffer_file_name (w->contents)); + [[view window] setDocumentEdited: edited]; } + + [pool release]; + unblock_input (); } @@ -721,7 +736,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side return; if (FRAME_X_WINDOW (f) != 0) - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qinternal_border_width); SET_FRAME_GARBAGED (f); } @@ -937,8 +952,8 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side Lisp_Object icon_x, icon_y; struct ns_display_info *dpyinfo = check_ns_display_info (Qnil); - f->output_data.ns->icon_top = Qnil; - f->output_data.ns->icon_left = Qnil; + f->output_data.ns->icon_top = -1; + f->output_data.ns->icon_left = -1; /* Set the position of the icon. */ icon_x = x_get_arg (dpyinfo, parms, Qicon_left, 0, 0, RES_TYPE_NUMBER); @@ -947,8 +962,8 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side { CHECK_NUMBER (icon_x); CHECK_NUMBER (icon_y); - f->output_data.ns->icon_top = icon_y; - f->output_data.ns->icon_left = icon_x; + f->output_data.ns->icon_top = XINT (icon_y); + f->output_data.ns->icon_left = XINT (icon_x); } else if (!EQ (icon_x, Qunbound) || !EQ (icon_y, Qunbound)) error ("Both left and top icon corners of icon must be specified"); @@ -1197,13 +1212,10 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side block_input (); #ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - if (CTGetCoreTextVersion != NULL - && CTGetCoreTextVersion () >= kCTVersionNumber10_5) mac_register_font_driver (f); +#else + register_font_driver (&nsfont_driver, f); #endif -#endif - register_font_driver (&nsfont_driver, f); x_default_parameter (f, parms, Qfont_backend, Qnil, "fontBackend", "FontBackend", RES_TYPE_STRING); @@ -1244,7 +1256,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side "verticalScrollBars", "VerticalScrollBars", RES_TYPE_SYMBOL); } - x_default_parameter (f, parms, Qhorizontal_scroll_bars, Qt, + x_default_parameter (f, parms, Qhorizontal_scroll_bars, Qnil, "horizontalScrollBars", "HorizontalScrollBars", RES_TYPE_SYMBOL); x_default_parameter (f, parms, Qforeground_color, build_string ("Black"), @@ -1267,11 +1279,8 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side init_frame_faces (f); /* Read comment about this code in corresponding place in xfns.c. */ - width = FRAME_TEXT_WIDTH (f); - height = FRAME_TEXT_HEIGHT (f); - FRAME_TEXT_HEIGHT (f) = 0; - SET_FRAME_WIDTH (f, 0); - change_frame_size (f, width, height, 1, 0, 0, 1); + adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f), + FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 5, 1, Qnil); /* The resources controlling the menu-bar and tool-bar are processed specially at startup, and reflected in the mode @@ -1342,11 +1351,10 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side x_default_parameter (f, parms, Qfullscreen, Qnil, "fullscreen", "Fullscreen", RES_TYPE_SYMBOL); - width = FRAME_TEXT_WIDTH (f); - height = FRAME_TEXT_HEIGHT (f); - FRAME_TEXT_HEIGHT (f) = 0; - SET_FRAME_WIDTH (f, 0); - change_frame_size (f, width, height, 1, 0, 0, 1); + /* Allow x_set_window_size, now. */ + f->can_x_set_window_size = true; + + adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f), 0, 1, Qnil); if (! f->output_data.ns->explicit_parent) { @@ -1418,13 +1426,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side id fm = [NSFontManager sharedFontManager]; struct font *font = f->output_data.ns->font; NSFont *nsfont; - if (EQ (font->driver->type, Qns)) - nsfont = ((struct nsfont_info *)font)->nsfont; -#ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - else - nsfont = (NSFont *) macfont_get_nsctfont (font); +#ifdef NS_IMPL_GNUSTEP + nsfont = ((struct nsfont_info *)font)->nsfont; #endif +#ifdef NS_IMPL_COCOA + nsfont = (NSFont *) macfont_get_nsctfont (font); #endif [fm setSelectedFont: nsfont isMultiple: NO]; [fm orderFrontFontPanel: NSApp]; @@ -1446,8 +1452,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side { id panel; BOOL ret; -#if ! defined (NS_IMPL_COCOA) || \ - MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_GNUSTEP NSString *dirS, *initS; BOOL no_types; #endif @@ -1457,8 +1462,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side ns_run_file_dialog (void) { if (ns_fd_data.panel == nil) return; -#if defined (NS_IMPL_COCOA) && \ - MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA ns_fd_data.ret = [ns_fd_data.panel runModal]; #else if (ns_fd_data.no_types) @@ -1538,8 +1542,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side block_input (); ns_fd_data.panel = panel; ns_fd_data.ret = NO; -#if defined (NS_IMPL_COCOA) && \ - MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA if (! NILP (mustmatch) || ! NILP (dir_only_p)) [panel setAllowedFileTypes: nil]; if (dirS) [panel setDirectoryURL: [NSURL fileURLWithPath: dirS]]; @@ -1999,7 +2002,7 @@ and GNUstep implementations ("distributor-specific release doc: /* List available Nextstep services by querying NSApp. */) (void) { -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA /* You can't get services like this in 10.6+. */ return Qnil; #else @@ -2333,11 +2336,16 @@ and GNUstep implementations ("distributor-specific release check_window_system (NULL); CHECK_STRING (color); + block_input (); if (ns_lisp_to_color (color, &col)) - return Qnil; + { + unblock_input (); + return Qnil; + } [[col colorUsingDefaultColorSpace] getRed: &red green: &green blue: &blue alpha: &alpha]; + unblock_input (); return list3i (lrint (red * 65280), lrint (green * 65280), lrint (blue * 65280)); } @@ -2555,7 +2563,7 @@ and GNUstep implementations ("distributor-specific release Internal use only, use `display-monitor-attributes-list' instead. */) (Lisp_Object terminal) { - struct terminal *term = get_terminal (terminal, 1); + struct terminal *term = decode_live_terminal (terminal); NSArray *screens; NSUInteger i, n_monitors; struct MonitorInfo *monitors; @@ -2963,8 +2971,7 @@ - (NSString *)panel: (id)sender userEnteredFilename: (NSString *)filename void syms_of_nsfns (void) { - Qfontsize = intern_c_string ("fontsize"); - staticpro (&Qfontsize); + DEFSYM (Qfontsize, "fontsize"); DEFVAR_LISP ("ns-icon-type-alist", Vns_icon_type_alist, doc: /* Alist of elements (REGEXP . IMAGE) for images of icons associated to frames. diff --git a/src/nsfont.m b/src/nsfont.m index 98c25fcdedd..13c7b0bce2c 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -627,8 +627,8 @@ static Lisp_Object nsfont_open (struct frame *f, Lisp_Object font_entity, static void nsfont_close (struct font *font); static int nsfont_has_char (Lisp_Object entity, int c); static unsigned int nsfont_encode_char (struct font *font, int c); -static int nsfont_text_extents (struct font *font, unsigned int *code, - int nglyphs, struct font_metrics *metrics); +static void nsfont_text_extents (struct font *font, unsigned int *code, + int nglyphs, struct font_metrics *metrics); static int nsfont_draw (struct glyph_string *s, int from, int to, int x, int y, bool with_background); @@ -988,9 +988,9 @@ when setting family in ns_spec_to_descriptor(). */ /* Perform the size computation of glyphs of FONT and fill in members of METRICS. The glyphs are specified by their glyph codes in CODE (length NGLYPHS). */ -static int -nsfont_text_extents (struct font *font, unsigned int *code, int nglyphs, - struct font_metrics *metrics) +static void +nsfont_text_extents (struct font *font, unsigned int *code, + int nglyphs, struct font_metrics *metrics) { struct nsfont_info *font_info = (struct nsfont_info *)font; struct font_metrics *pcm; @@ -1000,7 +1000,7 @@ when setting family in ns_spec_to_descriptor(). */ memset (metrics, 0, sizeof (struct font_metrics)); - for (i =0; iwidth = totalWidth; - - return totalWidth; /* not specified in doc, but xfont.c does it */ } @@ -1041,8 +1039,13 @@ is false when (FROM > 0 || TO < S->nchars). */ static unsigned char cbuf[1024]; unsigned char *c = cbuf; #ifdef NS_IMPL_GNUSTEP +#if GNUSTEP_GUI_MAJOR_VERSION > 0 || GNUSTEP_GUI_MINOR_VERSION > 22 + static CGFloat advances[1024]; + CGFloat *adv = advances; +#else static float advances[1024]; float *adv = advances; +#endif #else static CGSize advances[1024]; CGSize *adv = advances; diff --git a/src/nsimage.m b/src/nsimage.m index 6b68072b87a..640dfcbc113 100644 --- a/src/nsimage.m +++ b/src/nsimage.m @@ -160,25 +160,11 @@ Updated by Christian Limpach (chris@nice.ch) @implementation EmacsImage -static EmacsImage *ImageList = nil; - + allocInitFromFile: (Lisp_Object)file { - EmacsImage *image = ImageList; NSImageRep *imgRep; Lisp_Object found; - - /* look for an existing image of the same name */ - while (image != nil && - [[image name] compare: [NSString stringWithUTF8String: SSDATA (file)]] - != NSOrderedSame) - image = [image imageListNext]; - - if (image != nil) - { - [image reference]; - return image; - } + EmacsImage *image; /* Search bitmap-file-path for the file, if appropriate. */ found = x_find_image_file (file); @@ -188,7 +174,8 @@ @implementation EmacsImage image = [[EmacsImage alloc] initByReferencingFile: [NSString stringWithUTF8String: SSDATA (found)]]; -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 + image->bmRep = nil; +#ifdef NS_IMPL_COCOA imgRep = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]]; #else imgRep = [image bestRepresentationForDevice: nil]; @@ -205,54 +192,15 @@ @implementation EmacsImage [image setSize: NSMakeSize([imgRep pixelsWide], [imgRep pixelsHigh])]; [image setName: [NSString stringWithUTF8String: SSDATA (file)]]; - [image reference]; - ImageList = [image imageListSetNext: ImageList]; return image; } -- reference -{ - refCount++; - return self; -} - - -- imageListSetNext: (id)arg -{ - imageListNext = arg; - return self; -} - - -- imageListNext -{ - return imageListNext; -} - - - (void)dealloc { - id list = ImageList; - - if (refCount > 1) - { - refCount--; - return; - } - [stippleMask release]; - - if (list == self) - ImageList = imageListNext; - else - { - while (list != nil && [list imageListNext] != self) - list = [list imageListNext]; - [list imageListSetNext: imageListNext]; - } - + [bmRep release]; [super dealloc]; } @@ -299,6 +247,7 @@ - (void)dealloc if (s >= bits + length) { [bmRep release]; + bmRep = nil; return nil; } #define hexchar(x) ('0' <= (x) && (x) <= '9' ? (x) - '0' : (x) - 'a' + 10) @@ -402,7 +351,7 @@ - (void) setPixmapData { if ([rep respondsToSelector: @selector (getBitmapDataPlanes:)]) { - bmRep = (NSBitmapImageRep *) rep; + NSBitmapImageRep *bmRep = (NSBitmapImageRep *) rep; if ([bmRep numberOfPlanes] >= 3) [bmRep getBitmapDataPlanes: pixmapData]; diff --git a/src/nsmenu.m b/src/nsmenu.m index 778b068ef8b..ffd1e4db78a 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -492,11 +492,9 @@ x_activate_menubar (struct frame *f) { #ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 ns_update_menubar (f, true, nil); ns_check_pending_open_menu (); #endif -#endif } @@ -541,24 +539,15 @@ - (void)setFrame: (struct frame *)f frame = f; } -#ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 -extern NSString *NSMenuDidBeginTrackingNotification; -#endif -#endif - #ifdef NS_IMPL_COCOA -(void)trackingNotification:(NSNotification *)notification { /* Update menu in menuNeedsUpdate only while tracking menus. */ trackingMenu = ([notification name] == NSMenuDidBeginTrackingNotification ? 1 : 0); -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if (! trackingMenu) ns_check_menu_open (nil); -#endif } -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - (void)menuWillOpen:(NSMenu *)menu { ++trackingMenu; @@ -579,7 +568,6 @@ - (void)menuDidClose:(NSMenu *)menu { --trackingMenu; } -#endif /* OSX >= 10.5 */ #endif /* NS_IMPL_COCOA */ @@ -608,8 +596,7 @@ - (void)menuNeedsUpdate: (NSMenu *)menu if (trackingMenu == 0) return; /*fprintf (stderr, "Updating menu '%s'\n", [[self title] UTF8String]); NSLog (@"%@\n", event); */ -#if (! defined (NS_IMPL_COCOA) \ - || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5) +#ifdef NS_IMPL_GNUSTEP /* Don't know how to do this for anything other than OSX >= 10.5 This is wrong, as it might run Lisp code in the event loop. */ ns_update_menubar (frame, true, self); @@ -706,9 +693,7 @@ -(void)clear { NSMenuItem *item = [self itemAtIndex: n]; NSString *title = [item title]; - if (([title length] == 0 /* OSX 10.5 */ - || [ns_app_name isEqualToString: title] /* from 10.6 on */ - || [@"Apple" isEqualToString: title]) /* older */ + if ([ns_app_name isEqualToString: title] && ![item isSeparatorItem]) continue; [self removeItemAtIndex: n]; @@ -1041,10 +1026,13 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f EmacsView *view = FRAME_NS_VIEW (f); NSWindow *window = [view window]; EmacsToolbar *toolbar = [view toolbar]; + int oldh; if (view == nil || toolbar == nil) return; block_input (); + oldh = FRAME_TOOLBAR_HEIGHT (f); + #ifdef NS_IMPL_COCOA [toolbar clearActive]; #else @@ -1151,6 +1139,8 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f if (FRAME_TOOLBAR_HEIGHT (f) < 0) // happens if frame is fullscreen. FRAME_TOOLBAR_HEIGHT (f) = 0; + if (oldh != FRAME_TOOLBAR_HEIGHT (f)) + [view updateFrameSize:YES]; if (view->wait_for_tool_bar && FRAME_TOOLBAR_HEIGHT (f) > 0) { view->wait_for_tool_bar = NO; @@ -1886,6 +1876,5 @@ - (Lisp_Object)runDialogAt: (NSPoint)p defsubr (&Sns_reset_menu); defsubr (&Smenu_or_popup_active_p); - Qdebug_on_next_call = intern_c_string ("debug-on-next-call"); - staticpro (&Qdebug_on_next_call); + DEFSYM (Qdebug_on_next_call, "debug-on-next-call"); } diff --git a/src/nsselect.m b/src/nsselect.m index 038849c0aed..3b33a97ca73 100644 --- a/src/nsselect.m +++ b/src/nsselect.m @@ -26,7 +26,7 @@ Updated by Christian Limpach (chris@nice.ch) */ /* This should be the first include, as it may set up #defines affecting - interpretation of even the system includes. */ + interpretation of even the system includes. */ #include #include "lisp.h" @@ -34,17 +34,16 @@ Updated by Christian Limpach (chris@nice.ch) #include "termhooks.h" #include "keyboard.h" -Lisp_Object QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME; +static Lisp_Object QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME; static Lisp_Object Vselection_alist; -static Lisp_Object Qforeign_selection; - /* NSGeneralPboard is pretty much analogous to X11 CLIPBOARD */ -NSString *NXPrimaryPboard; -NSString *NXSecondaryPboard; +static NSString *NXPrimaryPboard; +static NSString *NXSecondaryPboard; +static NSMutableDictionary *pasteboard_changecount; /* ========================================================================== @@ -140,6 +139,29 @@ Updated by Christian Limpach (chris@nice.ch) [pb declareTypes: [NSArray array] owner: nil]; } +static void +ns_store_pb_change_count (id pb) +{ + [pasteboard_changecount + setObject: [NSNumber numberWithLong: [pb changeCount]] + forKey: [pb name]]; +} + +static NSInteger +ns_get_pb_change_count (Lisp_Object selection) +{ + id pb = ns_symbol_to_pb (selection); + return pb != nil ? [pb changeCount] : -1; +} + +static NSInteger +ns_get_our_change_count_for (Lisp_Object selection) +{ + NSNumber *num = [pasteboard_changecount + objectForKey: symbol_to_nsstring (selection)]; + return num != nil ? (NSInteger)[num longValue] : -1; +} + static void ns_string_to_pasteboard_internal (id pb, Lisp_Object str, NSString *gtype) @@ -161,8 +183,10 @@ Updated by Christian Limpach (chris@nice.ch) length: SBYTES (str) encoding: NSUTF8StringEncoding freeWhenDone: NO]; + // FIXME: Why those 2 different code paths? if (gtype == nil) { + // Used for ns_string_to_pasteboard [pb declareTypes: ns_send_types owner: nil]; tenum = [ns_send_types objectEnumerator]; while ( (type = [tenum nextObject]) ) @@ -170,61 +194,23 @@ Updated by Christian Limpach (chris@nice.ch) } else { + // Used for ns-own-selection-internal. + eassert (gtype == NSStringPboardType); [pb setString: nsStr forType: gtype]; } [nsStr release]; + ns_store_pb_change_count (pb); } } Lisp_Object ns_get_local_selection (Lisp_Object selection_name, - Lisp_Object target_type) + Lisp_Object target_type) { Lisp_Object local_value; - Lisp_Object handler_fn, value, check; - ptrdiff_t count; - local_value = assq_no_quit (selection_name, Vselection_alist); - - if (NILP (local_value)) return Qnil; - - count = specpdl_ptr - specpdl; - specbind (Qinhibit_quit, Qt); - CHECK_SYMBOL (target_type); - handler_fn = Fcdr (Fassq (target_type, Vselection_converter_alist)); - if (!NILP (handler_fn)) - value = call3 (handler_fn, selection_name, target_type, - XCAR (XCDR (local_value))); - else - value = Qnil; - unbind_to (count, Qnil); - - check = value; - if (CONSP (value) && SYMBOLP (XCAR (value))) - { - check = XCDR (value); - } - - if (STRINGP (check) || VECTORP (check) || SYMBOLP (check) - || INTEGERP (check) || NILP (value)) - return value; - - if (CONSP (check) - && INTEGERP (XCAR (check)) - && (INTEGERP (XCDR (check))|| - (CONSP (XCDR (check)) - && INTEGERP (XCAR (XCDR (check))) - && NILP (XCDR (XCDR (check)))))) - return value; - - // FIXME: Why `quit' rather than `error'? - Fsignal (Qquit, - list3 (build_string ("invalid data returned by" - " selection-conversion function"), - handler_fn, value)); - // FIXME: Beware, `quit' can return!! - return Qnil; + return local_value; } @@ -328,25 +314,19 @@ Updated by Christian Limpach (chris@nice.ch) ========================================================================== */ -DEFUN ("x-own-selection-internal", Fx_own_selection_internal, - Sx_own_selection_internal, 2, 3, 0, +DEFUN ("ns-own-selection-internal", Fns_own_selection_internal, + Sns_own_selection_internal, 2, 2, 0, doc: /* Assert an X selection of type SELECTION and value VALUE. SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. \(Those are literal upper-case symbol names, since that's what X expects.) VALUE is typically a string, or a cons of two markers, but may be -anything that the functions on `selection-converter-alist' know about. - -FRAME should be a frame that should own the selection. If omitted or -nil, it defaults to the selected frame. - -On Nextstep, FRAME is unused. */) - (Lisp_Object selection, Lisp_Object value, Lisp_Object frame) +anything that the functions on `selection-converter-alist' know about. */) + (Lisp_Object selection, Lisp_Object value) { id pb; - Lisp_Object old_value, new_value; NSString *type; Lisp_Object successful_p = Qnil, rest; - Lisp_Object target_symbol, data; + Lisp_Object target_symbol; check_window_system (NULL); CHECK_SYMBOL (selection); @@ -356,27 +336,28 @@ Updated by Christian Limpach (chris@nice.ch) if (pb == nil) return Qnil; ns_declare_pasteboard (pb); - old_value = assq_no_quit (selection, Vselection_alist); - new_value = list2 (selection, value); + { + Lisp_Object old_value = assq_no_quit (selection, Vselection_alist); + Lisp_Object new_value = list2 (selection, value); - if (NILP (old_value)) - Vselection_alist = Fcons (new_value, Vselection_alist); - else - Fsetcdr (old_value, Fcdr (new_value)); + if (NILP (old_value)) + Vselection_alist = Fcons (new_value, Vselection_alist); + else + Fsetcdr (old_value, Fcdr (new_value)); + } /* We only support copy of text. */ type = NSStringPboardType; target_symbol = ns_string_to_symbol (type); - data = ns_get_local_selection (selection, target_symbol); - if (!NILP (data)) + if (STRINGP (value)) { - if (STRINGP (data)) - ns_string_to_pasteboard_internal (pb, data, type); + ns_string_to_pasteboard_internal (pb, value, type); successful_p = Qt; } if (!EQ (Vns_sent_selection_hooks, Qunbound)) { + /* FIXME: Use run-hook-with-args! */ for (rest = Vns_sent_selection_hooks; CONSP (rest); rest = Fcdr (rest)) call3 (Fcar (rest), selection, target_symbol, successful_p); } @@ -385,26 +366,19 @@ Updated by Christian Limpach (chris@nice.ch) } -DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal, - Sx_disown_selection_internal, 1, 3, 0, +DEFUN ("ns-disown-selection-internal", Fns_disown_selection_internal, + Sns_disown_selection_internal, 1, 1, 0, doc: /* If we own the selection SELECTION, disown it. -Disowning it means there is no such selection. - -Sets the last-change time for the selection to TIME-OBJECT (by default -the time of the last event). - -TERMINAL should be a terminal object or a frame specifying the X -server to query. If omitted or nil, that stands for the selected -frame's display, or the first available X display. - -On Nextstep, the TIME-OBJECT and TERMINAL arguments are unused. -On MS-DOS, all this does is return non-nil if we own the selection. */) - (Lisp_Object selection, Lisp_Object time_object, Lisp_Object terminal) +Disowning it means there is no such selection. */) + (Lisp_Object selection) { id pb; check_window_system (NULL); CHECK_SYMBOL (selection); - if (NILP (assq_no_quit (selection, Vselection_alist))) return Qnil; + + if (ns_get_pb_change_count (selection) + != ns_get_our_change_count_for (selection)) + return Qnil; pb = ns_symbol_to_pb (selection); if (pb != nil) ns_undeclare_pasteboard (pb); @@ -412,7 +386,7 @@ Updated by Christian Limpach (chris@nice.ch) } -DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p, +DEFUN ("ns-selection-exists-p", Fns_selection_exists_p, Sns_selection_exists_p, 0, 2, 0, doc: /* Whether there is an owner for the given X selection. SELECTION should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (X expects @@ -443,7 +417,7 @@ Updated by Christian Limpach (chris@nice.ch) } -DEFUN ("x-selection-owner-p", Fx_selection_owner_p, Sx_selection_owner_p, +DEFUN ("ns-selection-owner-p", Fns_selection_owner_p, Sns_selection_owner_p, 0, 2, 0, doc: /* Whether the current Emacs process owns the given X Selection. The arg should be the name of the selection in question, typically one of @@ -463,12 +437,13 @@ Updated by Christian Limpach (chris@nice.ch) CHECK_SYMBOL (selection); if (EQ (selection, Qnil)) selection = QPRIMARY; if (EQ (selection, Qt)) selection = QSECONDARY; - return (NILP (Fassq (selection, Vselection_alist))) ? Qnil : Qt; + return ns_get_pb_change_count (selection) + == ns_get_our_change_count_for (selection); } -DEFUN ("x-get-selection-internal", Fx_get_selection_internal, - Sx_get_selection_internal, 2, 4, 0, +DEFUN ("ns-get-selection", Fns_get_selection, + Sns_get_selection, 2, 4, 0, doc: /* Return text selected from some X window. SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. \(Those are literal upper-case symbol names, since that's what X expects.) @@ -485,12 +460,15 @@ Updated by Christian Limpach (chris@nice.ch) (Lisp_Object selection_name, Lisp_Object target_type, Lisp_Object time_stamp, Lisp_Object terminal) { - Lisp_Object val; + Lisp_Object val = Qnil; check_window_system (NULL); CHECK_SYMBOL (selection_name); CHECK_SYMBOL (target_type); - val = ns_get_local_selection (selection_name, target_type); + + if (ns_get_pb_change_count (selection_name) + == ns_get_our_change_count_for (selection_name)) + val = ns_get_local_selection (selection_name, target_type); if (NILP (val)) val = ns_get_foreign_selection (selection_name, target_type); if (CONSP (val) && SYMBOLP (Fcar (val))) @@ -504,55 +482,38 @@ Updated by Christian Limpach (chris@nice.ch) } -DEFUN ("ns-get-selection-internal", Fns_get_selection_internal, - Sns_get_selection_internal, 1, 1, 0, - doc: /* Returns the value of SELECTION as a string. -SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. */) - (Lisp_Object selection) -{ - id pb; - check_window_system (NULL); - pb = ns_symbol_to_pb (selection); - return pb != nil ? ns_string_from_pasteboard (pb) : Qnil; -} - - -DEFUN ("ns-store-selection-internal", Fns_store_selection_internal, - Sns_store_selection_internal, 2, 2, 0, - doc: /* Sets the string value of SELECTION. -SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. */) - (Lisp_Object selection, Lisp_Object string) -{ - id pb; - check_window_system (NULL); - pb = ns_symbol_to_pb (selection); - if (pb != nil) ns_string_to_pasteboard (pb, string); - return Qnil; -} - - void nxatoms_of_nsselect (void) { NXPrimaryPboard = @"Selection"; NXSecondaryPboard = @"Secondary"; + + // This is a memory loss, never released. + pasteboard_changecount = + [[NSMutableDictionary + dictionaryWithObjectsAndKeys: + [NSNumber numberWithLong:0], NSGeneralPboard, + [NSNumber numberWithLong:0], NXPrimaryPboard, + [NSNumber numberWithLong:0], NXSecondaryPboard, + [NSNumber numberWithLong:0], NSStringPboardType, + [NSNumber numberWithLong:0], NSFilenamesPboardType, + [NSNumber numberWithLong:0], NSTabularTextPboardType, + nil] retain]; } void syms_of_nsselect (void) { - QCLIPBOARD = intern_c_string ("CLIPBOARD"); staticpro (&QCLIPBOARD); - QSECONDARY = intern_c_string ("SECONDARY"); staticpro (&QSECONDARY); - QTEXT = intern_c_string ("TEXT"); staticpro (&QTEXT); - QFILE_NAME = intern_c_string ("FILE_NAME"); staticpro (&QFILE_NAME); + DEFSYM (QCLIPBOARD, "CLIPBOARD"); + DEFSYM (QSECONDARY, "SECONDARY"); + DEFSYM (QTEXT, "TEXT"); + DEFSYM (QFILE_NAME, "FILE_NAME"); - defsubr (&Sx_disown_selection_internal); - defsubr (&Sx_get_selection_internal); - defsubr (&Sx_own_selection_internal); - defsubr (&Sx_selection_exists_p); - defsubr (&Sx_selection_owner_p); - defsubr (&Sns_get_selection_internal); - defsubr (&Sns_store_selection_internal); + defsubr (&Sns_disown_selection_internal); + defsubr (&Sns_get_selection); + defsubr (&Sns_own_selection_internal); + defsubr (&Sns_selection_exists_p); + defsubr (&Sns_selection_owner_p); Vselection_alist = Qnil; staticpro (&Vselection_alist); @@ -570,30 +531,4 @@ We might have failed (and declined the request) for any number of reasons,\n\ This hook doesn't let you change the behavior of Emacs's selection replies,\n\ it merely informs you that they have happened."); Vns_sent_selection_hooks = Qnil; - - DEFVAR_LISP ("selection-converter-alist", Vselection_converter_alist, - "An alist associating X Windows selection-types with functions.\n\ -These functions are called to convert the selection, with three args:\n\ -the name of the selection (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');\n\ -a desired type to which the selection should be converted;\n\ -and the local selection value (whatever was given to `x-own-selection').\n\ -\n\ -The function should return the value to send to the X server\n\ -\(typically a string). A return value of nil\n\ -means that the conversion could not be done.\n\ -A return value which is the symbol `NULL'\n\ -means that a side-effect was executed,\n\ -and there is no meaningful selection value."); - Vselection_converter_alist = Qnil; - - DEFVAR_LISP ("ns-lost-selection-hooks", Vns_lost_selection_hooks, - "A list of functions to be called when Emacs loses an X selection.\n\ -\(This happens when some other X client makes its own selection\n\ -or when a Lisp program explicitly clears the selection.)\n\ -The functions are called with one argument, the selection type\n\ -\(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD')."); - Vns_lost_selection_hooks = Qnil; - - Qforeign_selection = intern_c_string ("foreign-selection"); - staticpro (&Qforeign_selection); } diff --git a/src/nsterm.h b/src/nsterm.h index 00a0b54add9..c3841a40f59 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -27,12 +27,6 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_NS #ifdef NS_IMPL_COCOA -#ifndef MAC_OS_X_VERSION_10_4 -#define MAC_OS_X_VERSION_10_4 1040 -#endif -#ifndef MAC_OS_X_VERSION_10_5 -#define MAC_OS_X_VERSION_10_5 1050 -#endif #ifndef MAC_OS_X_VERSION_10_6 #define MAC_OS_X_VERSION_10_6 1060 #endif @@ -58,21 +52,7 @@ along with GNU Emacs. If not, see . */ versions. On Cocoa >= 10.5, functions expect CGFloat*. Make compatible type. */ #ifdef NS_IMPL_COCOA - -#ifndef NS_HAVE_NSINTEGER -#if defined (__LP64__) && __LP64__ -typedef double CGFloat; -typedef long NSInteger; -typedef unsigned long NSUInteger; -#else -typedef float CGFloat; -typedef int NSInteger; -typedef unsigned int NSUInteger; -#endif /* not LP64 */ -#endif /* not NS_HAVE_NSINTEGER */ - typedef CGFloat EmacsCGFloat; - #elif GNUSTEP_GUI_MAJOR_VERSION > 0 || GNUSTEP_GUI_MINOR_VERSION >= 22 typedef CGFloat EmacsCGFloat; #else @@ -139,7 +119,7 @@ typedef float EmacsCGFloat; @class EmacsToolbar; -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA @interface EmacsView : NSView #else @interface EmacsView : NSView @@ -217,7 +197,7 @@ typedef float EmacsCGFloat; ========================================================================== */ -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA @interface EmacsMenu : NSMenu #else @interface EmacsMenu : NSMenu @@ -249,7 +229,7 @@ typedef float EmacsCGFloat; @class EmacsImage; -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA @interface EmacsToolbar : NSToolbar #else @interface EmacsToolbar : NSToolbar @@ -305,7 +285,7 @@ typedef float EmacsCGFloat; - (void)timeout_handler: (NSTimer *)timedEntry; @end -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA @interface EmacsTooltip : NSObject #else @interface EmacsTooltip : NSObject @@ -358,16 +338,11 @@ typedef float EmacsCGFloat; @interface EmacsImage : NSImage { - id imageListNext; - int refCount; NSBitmapImageRep *bmRep; /* used for accessing pixel data */ unsigned char *pixmapData[5]; /* shortcut to access pixel data */ NSColor *stippleMask; } + allocInitFromFile: (Lisp_Object)file; -- reference; -- imageListSetNext: (id)arg; -- imageListNext; - (void)dealloc; - initFromXBM: (unsigned char *)bits width: (int)w height: (int)h flip: (BOOL)flip; @@ -393,7 +368,7 @@ typedef float EmacsCGFloat; @interface EmacsScroller : NSScroller { - Lisp_Object win; + struct window *window; struct frame *frame; NSResponder *prevResponder; @@ -401,7 +376,7 @@ typedef float EmacsCGFloat; CGFloat last_mouse_offset; float min_portion; int pixel_height; - int last_hit_part; + enum scroll_bar_part last_hit_part; BOOL condemned; @@ -417,13 +392,11 @@ typedef float EmacsCGFloat; - setPosition: (int) position portion: (int) portion whole: (int) whole; - (int) checkSamePosition: (int)position portion: (int)portion whole: (int)whole; -- (void) getMouseMotionPart: (int *)part window: (Lisp_Object *)window - x: (Lisp_Object *)x y: ( Lisp_Object *)y; - (void) sendScrollEventAtLoc: (float)loc fromEvent: (NSEvent *)e; - repeatScroll: (NSTimer *)sender; - condemn; - reprieve; -- judge; +- (bool)judge; @end @@ -687,8 +660,8 @@ struct ns_output value contains an ID of the fontset, else -1. */ int fontset; /* only used with font_backend */ - Lisp_Object icon_top; - Lisp_Object icon_left; + int icon_top; + int icon_left; /* The size of the extra width currently allotted for vertical scroll bars, in pixels. */ @@ -837,7 +810,7 @@ extern void nxatoms_of_nsselect (void); extern int ns_lisp_to_cursor_type (Lisp_Object arg); extern Lisp_Object ns_cursor_type_to_lisp (int arg); extern void ns_set_name_as_filename (struct frame *f); -extern void ns_set_doc_edited (struct frame *f, Lisp_Object arg); +extern void ns_set_doc_edited (void); extern bool ns_defined_color (struct frame *f, @@ -917,11 +890,15 @@ extern unsigned long ns_get_rgb_color (struct frame *f, extern void ns_init_events (); extern void ns_finish_events (); -/* From nsterm.m, needed in nsfont.m. */ #ifdef __OBJC__ +/* From nsterm.m, needed in nsfont.m. */ extern void ns_draw_text_decoration (struct glyph_string *s, struct face *face, NSColor *defaultCol, CGFloat width, CGFloat x); +/* Needed in nsfns.m. */ +extern void +ns_set_represented_filename (NSString* fstr, struct frame *f); + #endif #ifdef NS_IMPL_GNUSTEP diff --git a/src/nsterm.m b/src/nsterm.m index 47ad28aaa61..7f4b8b2608a 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -65,10 +65,8 @@ Updated by Christian Limpach (chris@nice.ch) #endif #ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 #include "macfont.h" #endif -#endif /* call tracing */ #if 0 @@ -295,6 +293,9 @@ - (NSColor *)colorUsingDefaultColorSpace NULL, 0, 0 }; +static NSString *represented_filename = nil; +static struct frame *represented_frame = 0; + #ifdef NS_IMPL_COCOA /* * State for pending menu activation: @@ -401,6 +402,13 @@ - (NSColor *)colorUsingDefaultColorSpace ========================================================================== */ +void +ns_set_represented_filename (NSString* fstr, struct frame *f) +{ + represented_filename = [fstr retain]; + represented_frame = f; +} + void ns_init_events (struct input_event* ev) { @@ -706,7 +714,6 @@ Free a pool and temporary objects it refers to (callable from C) ns_update_auto_hide_menu_bar (void) { #ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 block_input (); NSTRACE (ns_update_auto_hide_menu_bar); @@ -739,7 +746,6 @@ Free a pool and temporary objects it refers to (callable from C) unblock_input (); #endif -#endif } @@ -1076,7 +1082,7 @@ Free a pool and temporary objects it refers to (callable from C) static void -ns_frame_raise_lower (struct frame *f, int raise) +ns_frame_raise_lower (struct frame *f, bool raise) /* -------------------------------------------------------------------------- External (hook) -------------------------------------------------------------------------- */ @@ -1316,7 +1322,7 @@ Free a pool and temporary objects it refers to (callable from C) void x_set_window_size (struct frame *f, - int change_grav, + bool change_gravity, int width, int height, bool pixelwise) @@ -1896,51 +1902,37 @@ Free a pool and temporary objects it refers to (callable from C) block_input (); - if (dpyinfo->last_mouse_scroll_bar != nil && insist == 0) - { - /* TODO: we do not use this path at the moment because drag events will - go directly to the EmacsScroller. Leaving code in for now. */ - [dpyinfo->last_mouse_scroll_bar - getMouseMotionPart: (int *)part window: bar_window x: x y: y]; - if (time) - *time = dpyinfo->last_mouse_movement_time; - dpyinfo->last_mouse_scroll_bar = nil; - } + /* Clear the mouse-moved flag for every frame on this display. */ + FOR_EACH_FRAME (tail, frame) + if (FRAME_NS_P (XFRAME (frame)) + && FRAME_NS_DISPLAY (XFRAME (frame)) == FRAME_NS_DISPLAY (*fp)) + XFRAME (frame)->mouse_moved = 0; + + dpyinfo->last_mouse_scroll_bar = nil; + if (dpyinfo->last_mouse_frame + && FRAME_LIVE_P (dpyinfo->last_mouse_frame)) + f = dpyinfo->last_mouse_frame; else + f = dpyinfo->x_focus_frame ? dpyinfo->x_focus_frame : SELECTED_FRAME (); + + if (f && FRAME_NS_P (f)) { - /* Clear the mouse-moved flag for every frame on this display. */ - FOR_EACH_FRAME (tail, frame) - if (FRAME_NS_P (XFRAME (frame)) - && FRAME_NS_DISPLAY (XFRAME (frame)) == FRAME_NS_DISPLAY (*fp)) - XFRAME (frame)->mouse_moved = 0; + view = FRAME_NS_VIEW (*fp); - dpyinfo->last_mouse_scroll_bar = nil; - if (dpyinfo->last_mouse_frame - && FRAME_LIVE_P (dpyinfo->last_mouse_frame)) - f = dpyinfo->last_mouse_frame; - else - f = dpyinfo->x_focus_frame ? dpyinfo->x_focus_frame - : SELECTED_FRAME (); - - if (f && FRAME_NS_P (f)) - { - view = FRAME_NS_VIEW (*fp); - - position = [[view window] mouseLocationOutsideOfEventStream]; - position = [view convertPoint: position fromView: nil]; - remember_mouse_glyph (f, position.x, position.y, - &dpyinfo->last_mouse_glyph); + position = [[view window] mouseLocationOutsideOfEventStream]; + position = [view convertPoint: position fromView: nil]; + remember_mouse_glyph (f, position.x, position.y, + &dpyinfo->last_mouse_glyph); /*fprintf (stderr, "ns_mouse_position: %.0f, %.0f\n", position.x, position.y); */ - if (bar_window) *bar_window = Qnil; - if (part) *part = 0; /*scroll_bar_handle; */ + if (bar_window) *bar_window = Qnil; + if (part) *part = scroll_bar_above_handle; - if (x) XSETINT (*x, lrint (position.x)); - if (y) XSETINT (*y, lrint (position.y)); - if (time) - *time = dpyinfo->last_mouse_movement_time; - *fp = f; - } + if (x) XSETINT (*x, lrint (position.x)); + if (y) XSETINT (*y, lrint (position.y)); + if (time) + *time = dpyinfo->last_mouse_movement_time; + *fp = f; } unblock_input (); @@ -2347,8 +2339,19 @@ Free a pool and temporary objects it refers to (callable from C) to erase the whole background. */ [ns_lookup_indexed_color(face->background, f) set]; NSRectFill (r); - [img setXBMColor: ns_lookup_indexed_color(face->foreground, f)]; -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 + + { + NSColor *bm_color; + if (!p->cursor_p) + bm_color = ns_lookup_indexed_color(face->foreground, f); + else if (p->overlay_p) + bm_color = ns_lookup_indexed_color(face->background, f); + else + bm_color = f->output_data.ns->cursor_color; + [img setXBMColor: bm_color]; + } + +#ifdef NS_IMPL_COCOA [img drawInRect: r fromRect: NSZeroRect operation: NSCompositeSourceOver @@ -2431,7 +2434,10 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors. else if (cursor_type == HBAR_CURSOR) { cursor_height = (cursor_width < 1) ? lrint (0.25 * h) : cursor_width; - fy += h - cursor_height; + if (cursor_height > glyph_row->height) + cursor_height = glyph_row->height; + if (h > cursor_height) // Cursor smaller than line height, move down + fy += h - cursor_height; h = cursor_height; } @@ -3024,7 +3030,7 @@ Function modeled after x_draw_glyph_string_box (). /* Draw the image.. do we need to draw placeholder if img ==nil? */ if (img != nil) { -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA NSRect dr = NSMakeRect (x, y, s->slice.width, s->slice.height); NSRect ir = NSMakeRect (s->slice.x, s->slice.y, s->slice.width, s->slice.height); @@ -3381,6 +3387,21 @@ overwriting cursor (usually when cursor on a tab) */ /* Only post this event if we haven't already posted one. This will end the [NXApp run] main loop after having processed all events queued at this moment. */ + +#ifdef NS_IMPL_COCOA + if (! send_appdefined) + { + /* OSX 10.10.1 swallows the AppDefined event we are sending ourselves + in certain situations (rapid incoming events). + So check if we have one, if not add one. */ + NSEvent *appev = [NSApp nextEventMatchingMask:NSApplicationDefinedMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:NO]; + if (! appev) send_appdefined = YES; + } +#endif + if (send_appdefined) { NSEvent *nxev; @@ -3436,9 +3457,8 @@ overwriting cursor (usually when cursor on a tab) */ } #endif -/* GNUstep and OSX <= 10.4 does not have cancelTracking. */ -#if defined (NS_IMPL_COCOA) && \ - MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +/* GNUstep does not have cancelTracking. */ +#ifdef NS_IMPL_COCOA /* Check if menu open should be canceled or continued as normal. */ void ns_check_menu_open (NSMenu *menu) @@ -3501,7 +3521,16 @@ overwriting cursor (usually when cursor on a tab) */ menu_will_open_state = MENU_OPENING; } } -#endif /* NS_IMPL_COCOA) && >= MAC_OS_X_VERSION_10_5 */ +#endif /* NS_IMPL_COCOA */ + +static void +unwind_apploopnr (Lisp_Object not_used) +{ + --apploopnr; + n_emacs_events_pending = 0; + ns_finish_events (); + q_event_ptr = NULL; +} static int ns_read_socket (struct terminal *terminal, struct input_event *hold_quit) @@ -3560,6 +3589,7 @@ overwriting cursor (usually when cursor on a tab) */ } else { + ptrdiff_t specpdl_count = SPECPDL_INDEX (); /* Run and wait for events. We must always send one NX_APPDEFINED event to ourself, otherwise [NXApp run] will never exit. */ send_appdefined = YES; @@ -3569,8 +3599,9 @@ overwriting cursor (usually when cursor on a tab) */ { emacs_abort (); } + record_unwind_protect (unwind_apploopnr, Qt); [NSApp run]; - --apploopnr; + unbind_to (specpdl_count, Qnil); /* calls unwind_apploopnr */ } nevents = n_emacs_events_pending; @@ -3677,8 +3708,14 @@ overwriting cursor (usually when cursor on a tab) */ { emacs_abort (); } - [NSApp run]; - --apploopnr; + + { + ptrdiff_t specpdl_count = SPECPDL_INDEX (); + record_unwind_protect (unwind_apploopnr, Qt); + [NSApp run]; + unbind_to (specpdl_count, Qnil); /* calls unwind_apploopnr */ + } + ns_finish_events (); if (nr > 0 && readfds) { @@ -3747,6 +3784,7 @@ overwriting cursor (usually when cursor on a tab) */ EmacsScroller *bar; int window_y, window_height; int top, left, height, width; + BOOL update_p = YES; /* optimization; display engine sends WAY too many of these.. */ if (!NILP (window->vertical_scroll_bar)) @@ -3761,6 +3799,7 @@ overwriting cursor (usually when cursor on a tab) */ } else view->scrollbarsNeedingUpdate--; + update_p = NO; } } @@ -3789,6 +3828,7 @@ overwriting cursor (usually when cursor on a tab) */ bar = XNS_SCROLL_BAR (window->vertical_scroll_bar); [bar removeFromSuperview]; wset_vertical_scroll_bar (window, Qnil); + [bar release]; } ns_clear_frame_area (f, left, top, width, height); unblock_input (); @@ -3802,6 +3842,7 @@ overwriting cursor (usually when cursor on a tab) */ bar = [[EmacsScroller alloc] initFrame: r window: win]; wset_vertical_scroll_bar (window, make_save_ptr (bar)); + update_p = YES; } else { @@ -3817,7 +3858,8 @@ overwriting cursor (usually when cursor on a tab) */ } } - [bar setPosition: position portion: portion whole: whole]; + if (update_p) + [bar setPosition: position portion: portion whole: whole]; unblock_input (); } @@ -3837,6 +3879,7 @@ overwriting cursor (usually when cursor on a tab) */ int top, height, left, width; int window_x, window_width; int pixel_width = WINDOW_PIXEL_WIDTH (window); + BOOL update_p = YES; /* optimization; display engine sends WAY too many of these.. */ if (!NILP (window->horizontal_scroll_bar)) @@ -3851,6 +3894,7 @@ overwriting cursor (usually when cursor on a tab) */ } else view->scrollbarsNeedingUpdate--; + update_p = NO; } } @@ -3892,6 +3936,7 @@ overwriting cursor (usually when cursor on a tab) */ bar = [[EmacsScroller alloc] initFrame: r window: win]; wset_horizontal_scroll_bar (window, make_save_ptr (bar)); + update_p = YES; } else { @@ -3904,10 +3949,12 @@ overwriting cursor (usually when cursor on a tab) */ if (oldRect.origin.x != r.origin.x) ns_clear_frame_area (f, left, top, width, height); [bar setFrame: r]; + update_p = YES; } } - [bar setPosition: position portion: portion whole: whole]; + if (update_p) + [bar setPosition: position portion: portion whole: whole]; unblock_input (); } @@ -3975,8 +4022,8 @@ overwriting cursor (usually when cursor on a tab) */ { view = [subviews objectAtIndex: i]; if (![view isKindOfClass: [EmacsScroller class]]) continue; - [view judge]; - removed = YES; + if ([view judge]) + removed = YES; } if (removed) @@ -4489,15 +4536,15 @@ - (id)init #ifdef NS_IMPL_COCOA - (void)run { -#ifndef NSAppKitVersionNumber10_8 -#define NSAppKitVersionNumber10_8 1187 +#ifndef NSAppKitVersionNumber10_9 +#define NSAppKitVersionNumber10_9 1265 #endif - if (NSAppKitVersionNumber <= NSAppKitVersionNumber10_8) - { - [super run]; - return; - } + if ((int)NSAppKitVersionNumber != NSAppKitVersionNumber10_9) + { + [super run]; + return; + } NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; @@ -4515,6 +4562,7 @@ - (void)run untilDate:[NSDate distantFuture] inMode:NSDefaultRunLoopMode dequeue:YES]; + [self sendEvent:event]; [self updateWindows]; } while (shouldKeepRunning); @@ -4562,6 +4610,23 @@ - (void)sendEvent: (NSEvent *)theEvent } #endif + if (represented_filename != nil && represented_frame) + { + NSString *fstr = represented_filename; + NSView *view = FRAME_NS_VIEW (represented_frame); +#ifdef NS_IMPL_COCOA + /* work around a bug observed on 10.3 and later where + setTitleWithRepresentedFilename does not clear out previous state + if given filename does not exist */ + if (! [[NSFileManager defaultManager] fileExistsAtPath: fstr]) + [[view window] setRepresentedFilename: @""]; +#endif + [[view window] setRepresentedFilename: fstr]; + [represented_filename release]; + represented_filename = nil; + represented_frame = NULL; + } + if (type == NSApplicationDefined) { switch ([theEvent data2]) @@ -4690,13 +4755,11 @@ - (void)applicationDidFinishLaunching: (NSNotification *)notification [self antialiasThresholdDidChange:nil]; #ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(antialiasThresholdDidChange:) name:NSAntialiasThresholdChangedNotification object:nil]; -#endif #endif ns_send_appdefined (-2); @@ -4705,10 +4768,8 @@ - (void)applicationDidFinishLaunching: (NSNotification *)notification - (void)antialiasThresholdDidChange:(NSNotification *)notification { #ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 macfont_update_antialias_threshold (); #endif -#endif } @@ -5048,13 +5109,11 @@ - (void)changeFont: (id)sender if (!emacs_event) return; - if (EQ (font->driver->type, Qns)) - nsfont = ((struct nsfont_info *)font)->nsfont; -#ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - else - nsfont = (NSFont *) macfont_get_nsctfont (font); +#ifdef NS_IMPL_GNUSTEP + nsfont = ((struct nsfont_info *)font)->nsfont; #endif +#ifdef NS_IMPL_COCOA + nsfont = (NSFont *) macfont_get_nsctfont (font); #endif if ((newFont = [sender convertFont: nsfont])) @@ -5106,7 +5165,7 @@ - (void)keyDown: (NSEvent *)theEvent int code; unsigned fnKeysym = 0; static NSMutableArray *nsEvArray; -#if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_GNUSTEP static BOOL firstTime = YES; #endif int left_is_none; @@ -5337,7 +5396,7 @@ flag set (this is probably a bug in the OS). } -#if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_GNUSTEP /* if we get here we should send the key for input manager processing */ /* Disable warning, there is nothing a user can do about it anyway, and it does not seem to matter. */ @@ -5797,7 +5856,8 @@ - (void) updateFrameSize: (BOOL) delay; { #ifdef NS_IMPL_GNUSTEP // GNUstep does not always update the tool bar height. Force it. - if (toolbar) update_frame_tool_bar (emacsframe); + if (toolbar && [toolbar isVisible]) + update_frame_tool_bar (emacsframe); #endif extra = FRAME_NS_TITLEBAR_HEIGHT (emacsframe) @@ -5838,10 +5898,13 @@ - (void) updateFrameSize: (BOOL) delay; // Did resize increments change because of a font change? if (sz.width != FRAME_COLUMN_WIDTH (emacsframe) || - sz.height != FRAME_LINE_HEIGHT (emacsframe)) + sz.height != FRAME_LINE_HEIGHT (emacsframe) || + (frame_resize_pixelwise && sz.width != 1)) { - sz.width = FRAME_COLUMN_WIDTH (emacsframe); - sz.height = FRAME_LINE_HEIGHT (emacsframe); + sz.width = frame_resize_pixelwise + ? 1 : FRAME_COLUMN_WIDTH (emacsframe); + sz.height = frame_resize_pixelwise + ? 1 : FRAME_LINE_HEIGHT (emacsframe); [win setResizeIncrements: sz]; NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); @@ -6111,8 +6174,8 @@ - (BOOL)isOpaque [win setDelegate: self]; [win useOptimizedDrawing: YES]; - sz.width = FRAME_COLUMN_WIDTH (f); - sz.height = FRAME_LINE_HEIGHT (f); + sz.width = frame_resize_pixelwise ? 1 : FRAME_COLUMN_WIDTH (f); + sz.height = frame_resize_pixelwise ? 1 : FRAME_LINE_HEIGHT (f); [win setResizeIncrements: sz]; [[win contentView] addSubview: self]; @@ -6459,8 +6522,8 @@ - (void)toggleFullScreen: (id)sender (FRAME_DEFAULT_FACE (f)), f); - sz.width = FRAME_COLUMN_WIDTH (f); - sz.height = FRAME_LINE_HEIGHT (f); + sz.width = frame_resize_pixelwise ? 1 : FRAME_COLUMN_WIDTH (f); + sz.height = frame_resize_pixelwise ? 1 : FRAME_LINE_HEIGHT (f); if (fs_state != FULLSCREEN_BOTH) { @@ -6475,8 +6538,7 @@ - (void)toggleFullScreen: (id)sender /* Hide dock and menubar if we are on the primary screen. */ if (onFirstScreen) { -#if defined (NS_IMPL_COCOA) && \ - MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA NSApplicationPresentationOptions options = NSApplicationPresentationAutoHideDock | NSApplicationPresentationAutoHideMenuBar; @@ -6516,7 +6578,7 @@ - (void)toggleFullScreen: (id)sender [fw makeFirstResponder:self]; [w orderOut:self]; r = [fw frameRectForContentRect:[screen frame]]; - [fw setFrame: r display:YES animate:YES]; + [fw setFrame: r display:YES animate:ns_use_fullscreen_animation]; [self windowDidEnterFullScreen:nil]; [fw display]; } @@ -6528,8 +6590,7 @@ - (void)toggleFullScreen: (id)sender if (onFirstScreen) { -#if defined (NS_IMPL_COCOA) && \ - MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +#ifdef NS_IMPL_COCOA [NSApp setPresentationOptions: NSApplicationPresentationDefault]; #else [NSMenu setMenuBarVisible:YES]; @@ -6548,7 +6609,7 @@ - (void)toggleFullScreen: (id)sender FRAME_TOOLBAR_HEIGHT (f) = tobar_height; [self windowWillExitFullScreen:nil]; - [fw setFrame: [w frame] display:YES animate:YES]; + [fw setFrame: [w frame] display:YES animate:ns_use_fullscreen_animation]; [fw close]; [w makeKeyAndOrderFront:NSApp]; [self windowDidExitFullScreen:nil]; @@ -6854,7 +6915,7 @@ -(BOOL)performDragOperation: (id ) sender } else { - error ("Invalid data type in dragging pasteboard"); + fprintf (stderr, "Invalid data type in dragging pasteboard"); return NO; } } @@ -7044,7 +7105,7 @@ - (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen #endif #endif - for (i = 0; i < nr_screens; ++i) + for (i = 0; i < nr_screens; ++i) { NSScreen *s = [screens objectAtIndex: i]; NSRect scrrect = [s frame]; @@ -7143,13 +7204,13 @@ + (CGFloat) scrollerWidth [self setAutoresizingMask: NSViewMinXMargin | NSViewHeightSizable]; #endif - win = nwin; + window = XWINDOW (nwin); condemned = NO; pixel_height = NSHeight (r); if (pixel_height == 0) pixel_height = 1; min_portion = 20 / pixel_height; - frame = XFRAME (XWINDOW (win)->frame); + frame = XFRAME (window->frame); if (FRAME_LIVE_P (frame)) { int i; @@ -7179,11 +7240,20 @@ - (void)setFrame: (NSRect)newRect if (pixel_height == 0) pixel_height = 1; min_portion = 20 / pixel_height; [super setFrame: newRect]; - [self display]; /* unblock_input (); */ } +- (void)dealloc +{ + NSTRACE (EmacsScroller_dealloc); + if (window) + wset_vertical_scroll_bar (window, Qnil); + window = 0; + [super dealloc]; +} + + - condemn { NSTRACE (condemn); @@ -7200,9 +7270,10 @@ - (void)setFrame: (NSRect)newRect } -- judge +-(bool)judge { NSTRACE (judge); + bool ret = condemned; if (condemned) { EmacsView *view; @@ -7211,14 +7282,14 @@ - (void)setFrame: (NSRect)newRect view = (EmacsView *)FRAME_NS_VIEW (frame); if (view != nil) view->scrollbarsNeedingUpdate++; - if (!NILP (win)) - wset_vertical_scroll_bar (XWINDOW (win), Qnil); - win = Qnil; + if (window) + wset_vertical_scroll_bar (window, Qnil); + window = 0; [self removeFromSuperview]; [self release]; unblock_input (); } - return self; + return ret; } @@ -7251,7 +7322,7 @@ - (int) checkSamePosition: (int) position portion: (int) portion if (portion >= whole) { -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5 +#ifdef NS_IMPL_COCOA [self setKnobProportion: 1.0]; [self setDoubleValue: 1.0]; #else @@ -7265,7 +7336,7 @@ - (int) checkSamePosition: (int) position portion: (int) portion portion = max ((float)whole*min_portion/pixel_height, portion); pos = (float)position / (whole - portion); por = (CGFloat)portion/whole; -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5 +#ifdef NS_IMPL_COCOA [self setKnobProportion: por]; [self setDoubleValue: pos]; #else @@ -7273,38 +7344,20 @@ - (int) checkSamePosition: (int) position portion: (int) portion #endif } - /* Events may come here even if the event loop is not running. - If we don't enter the event loop, the scroll bar will not update. - So send SIGIO to ourselves. */ - if (apploopnr == 0) raise (SIGIO); - return self; } -/* FIXME: unused at moment (see ns_mouse_position) at the moment because - drag events will go directly to the EmacsScroller. Leaving in for now. */ --(void)getMouseMotionPart: (int *)part window: (Lisp_Object *)window - x: (Lisp_Object *)x y: ( Lisp_Object *)y -{ - *part = last_hit_part; - *window = win; - XSETINT (*y, pixel_height); - if ([self floatValue] > 0.999F) - XSETINT (*x, pixel_height); - else - XSETINT (*x, pixel_height * [self floatValue]); -} - - /* set up emacs_event */ - (void) sendScrollEventAtLoc: (float)loc fromEvent: (NSEvent *)e { + Lisp_Object win; if (!emacs_event) return; emacs_event->part = last_hit_part; emacs_event->code = 0; emacs_event->modifiers = EV_MODIFIERS (e) | down_modifier; + XSETWINDOW (win, window); emacs_event->frame_or_window = win; emacs_event->timestamp = EV_TIMESTAMP (e); emacs_event->kind = SCROLL_BAR_CLICK_EVENT; @@ -7491,7 +7544,7 @@ - (void)mouseUp: (NSEvent *)e [scroll_repeat_entry release]; scroll_repeat_entry = nil; } - last_hit_part = 0; + last_hit_part = scroll_bar_above_handle; } @@ -7569,8 +7622,8 @@ @implementation EmacsDocument /* Now make the frame display the given font. */ if (FRAME_NS_WINDOW (f) != 0 && ! [view isFullscreen]) - x_set_window_size (f, 0, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f), - FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 1); + x_set_window_size (f, false, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f), + FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), true); return font_object; } @@ -7752,6 +7805,12 @@ Nil means use fullscreen the old (< 10.7) way. The old way works better with #endif ns_last_use_native_fullscreen = ns_use_native_fullscreen; + DEFVAR_BOOL ("ns-use-fullscreen-animation", ns_use_fullscreen_animation, + doc: /*Non-nil means use animation on non-native fullscreen. +For native fullscreen, this does nothing. +Default is nil. */); + ns_use_fullscreen_animation = NO; + DEFVAR_BOOL ("ns-use-srgb-colorspace", ns_use_srgb_colorspace, doc: /*Non-nil means to use sRGB colorspace on OSX >= 10.7. Note that this does not apply to images. @@ -7789,14 +7848,12 @@ Nil means use fullscreen the old (< 10.7) way. The old way works better with DEFSYM (Qcocoa, "cocoa"); DEFSYM (Qgnustep, "gnustep"); - syms_of_nsfont (); #ifdef NS_IMPL_COCOA Fprovide (Qcocoa, Qnil); -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 syms_of_macfont (); -#endif #else Fprovide (Qgnustep, Qnil); + syms_of_nsfont (); #endif } diff --git a/src/print.c b/src/print.c index 8b98ea140dc..5eb46c15d68 100644 --- a/src/print.c +++ b/src/print.c @@ -60,6 +60,9 @@ static ptrdiff_t new_backquote_output; #define PRINT_CIRCLE 200 static Lisp_Object being_printed[PRINT_CIRCLE]; +/* Last char printed to stdout by printchar. */ +static unsigned int printchar_stdout_last; + /* When printing into a buffer, first we put the text in this block, then insert it all at once. */ static char *print_buffer; @@ -171,11 +174,13 @@ bool print_output_debug_flag EXTERNALLY_VISIBLE = 1; if (print_buffer_pos != print_buffer_pos_byte \ && NILP (BVAR (current_buffer, enable_multibyte_characters)))\ { \ - unsigned char *temp = alloca (print_buffer_pos + 1); \ + USE_SAFE_ALLOCA; \ + unsigned char *temp = SAFE_ALLOCA (print_buffer_pos + 1); \ copy_text ((unsigned char *) print_buffer, temp, \ print_buffer_pos_byte, 1, 0); \ insert_1_both ((char *) temp, print_buffer_pos, \ print_buffer_pos, 0, 1, 0); \ + SAFE_FREE (); \ } \ else \ insert_1_both (print_buffer, print_buffer_pos, \ @@ -238,6 +243,7 @@ printchar (unsigned int ch, Lisp_Object fun) } else if (noninteractive) { + printchar_stdout_last = ch; fwrite (str, 1, len, stdout); noninteractive_need_newline = 1; } @@ -515,19 +521,33 @@ static void print_preprocess (Lisp_Object); static void print_preprocess_string (INTERVAL, Lisp_Object); static void print_object (Lisp_Object, Lisp_Object, bool); -DEFUN ("terpri", Fterpri, Sterpri, 0, 1, 0, +DEFUN ("terpri", Fterpri, Sterpri, 0, 2, 0, doc: /* Output a newline to stream PRINTCHARFUN. +If ENSURE is non-nil only output a newline if not already at the +beginning of a line. Value is non-nil if a newline is printed. If PRINTCHARFUN is omitted or nil, the value of `standard-output' is used. */) - (Lisp_Object printcharfun) + (Lisp_Object printcharfun, Lisp_Object ensure) { - PRINTDECLARE; + Lisp_Object val = Qnil; + PRINTDECLARE; if (NILP (printcharfun)) printcharfun = Vstandard_output; PRINTPREPARE; - PRINTCHAR ('\n'); + + if (NILP (ensure)) + val = Qt; + /* Difficult to check if at line beginning so abort. */ + else if (FUNCTIONP (printcharfun)) + signal_error ("Unsupported function argument", printcharfun); + else if (noninteractive && !NILP (printcharfun)) + val = printchar_stdout_last == 10 ? Qnil : Qt; + else if (NILP (Fbolp ())) + val = Qt; + + if (!NILP (val)) PRINTCHAR ('\n'); PRINTFINISH; - return Qt; + return val; } DEFUN ("prin1", Fprin1, Sprin1, 1, 2, 0, @@ -583,7 +603,6 @@ A printed representation of an object is text which describes that object. */) { Lisp_Object printcharfun; bool prev_abort_on_gc; - /* struct gcpro gcpro1, gcpro2; */ Lisp_Object save_deactivate_mark; ptrdiff_t count = SPECPDL_INDEX (); struct buffer *previous; @@ -597,7 +616,6 @@ A printed representation of an object is text which describes that object. */) but we don't want to deactivate the mark just for that. No need for specbind, since errors deactivate the mark. */ save_deactivate_mark = Vdeactivate_mark; - /* GCPRO2 (object, save_deactivate_mark); */ prev_abort_on_gc = abort_on_gc; abort_on_gc = 1; @@ -621,7 +639,6 @@ A printed representation of an object is text which describes that object. */) set_buffer_internal (previous); Vdeactivate_mark = save_deactivate_mark; - /* UNGCPRO; */ abort_on_gc = prev_abort_on_gc; return unbind_to (count, object); @@ -2095,14 +2112,16 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag) for (i = 0; i < limit; i++) { Lisp_Object maybe = area[i]; + int valid = valid_lisp_object_p (maybe); - if (valid_lisp_object_p (maybe) > 0) + if (0 < valid) { PRINTCHAR (' '); print_object (maybe, printcharfun, escapeflag); } else - strout (" ", -1, -1, printcharfun); + strout (valid ? " " : " ", + -1, -1, printcharfun); } if (i == limit && i < amount) strout (" ...", 4, 4, printcharfun); diff --git a/src/process.c b/src/process.c index f34be69864a..c58ae3efd28 100644 --- a/src/process.c +++ b/src/process.c @@ -173,6 +173,9 @@ close_on_exec (int fd) return fd; } +# undef accept4 +# define accept4(sockfd, addr, addrlen, flags) \ + process_accept4 (sockfd, addr, addrlen, flags) static int accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags) { @@ -323,10 +326,10 @@ static int max_process_desc; /* The largest descriptor currently in use for input; -1 if none. */ static int max_input_desc; -/* Indexed by descriptor, gives the process (if any) for that descriptor */ +/* Indexed by descriptor, gives the process (if any) for that descriptor. */ static Lisp_Object chan_process[FD_SETSIZE]; -/* Alist of elements (NAME . PROCESS) */ +/* Alist of elements (NAME . PROCESS). */ static Lisp_Object Vprocess_alist; /* Buffered-ahead input char from process, indexed by channel. @@ -453,7 +456,7 @@ static struct fd_callback_data void *data; #define FOR_READ 1 #define FOR_WRITE 2 - int condition; /* mask of the defines above. */ + int condition; /* Mask of the defines above. */ } fd_callback_info[FD_SETSIZE]; @@ -596,7 +599,7 @@ status_message (struct Lisp_Process *p) Lisp_Object symbol; int code; bool coredump; - Lisp_Object string, string2; + Lisp_Object string; decode_status (status, &symbol, &code, &coredump); @@ -620,8 +623,8 @@ status_message (struct Lisp_Process *p) if (c1 != c2) Faset (string, make_number (0), make_number (c2)); } - string2 = build_string (coredump ? " (core dumped)\n" : "\n"); - return concat2 (string, string2); + AUTO_STRING (suffix, coredump ? " (core dumped)\n" : "\n"); + return concat2 (string, suffix); } else if (EQ (symbol, Qexit)) { @@ -629,17 +632,17 @@ status_message (struct Lisp_Process *p) return build_string (code == 0 ? "deleted\n" : "connection broken by remote peer\n"); if (code == 0) return build_string ("finished\n"); + AUTO_STRING (prefix, "exited abnormally with code "); string = Fnumber_to_string (make_number (code)); - string2 = build_string (coredump ? " (core dumped)\n" : "\n"); - return concat3 (build_string ("exited abnormally with code "), - string, string2); + AUTO_STRING (suffix, coredump ? " (core dumped)\n" : "\n"); + return concat3 (prefix, string, suffix); } else if (EQ (symbol, Qfailed)) { + AUTO_STRING (prefix, "failed with code "); string = Fnumber_to_string (make_number (code)); - string2 = build_string ("\n"); - return concat3 (build_string ("failed with code "), - string, string2); + AUTO_STRING (suffix, "\n"); + return concat3 (prefix, string, suffix); } else return Fcopy_sequence (Fsymbol_name (symbol)); @@ -688,8 +691,8 @@ allocate_pty (char pty_name[PTY_NAME_SIZE]) have a race condition between the PTY_OPEN and here. */ fcntl (fd, F_SETFD, FD_CLOEXEC); #endif - /* check to make certain that both sides are available - this avoids a nasty yet stupid bug in rlogins */ + /* Check to make certain that both sides are available + this avoids a nasty yet stupid bug in rlogins. */ #ifdef PTY_TTY_NAME_SPRINTF PTY_TTY_NAME_SPRINTF #else @@ -1302,30 +1305,34 @@ Returns nil if format of ADDRESS is invalid. */) ptrdiff_t size = p->header.size; Lisp_Object args[10]; int nargs, i; + char const *format; if (size == 4 || (size == 5 && !NILP (omit_port))) { - args[0] = build_string ("%d.%d.%d.%d"); + format = "%d.%d.%d.%d"; nargs = 4; } else if (size == 5) { - args[0] = build_string ("%d.%d.%d.%d:%d"); + format = "%d.%d.%d.%d:%d"; nargs = 5; } else if (size == 8 || (size == 9 && !NILP (omit_port))) { - args[0] = build_string ("%x:%x:%x:%x:%x:%x:%x:%x"); + format = "%x:%x:%x:%x:%x:%x:%x:%x"; nargs = 8; } else if (size == 9) { - args[0] = build_string ("[%x:%x:%x:%x:%x:%x:%x:%x]:%d"); + format = "[%x:%x:%x:%x:%x:%x:%x:%x]:%d"; nargs = 9; } else return Qnil; + AUTO_STRING (format_obj, format); + args[0] = format_obj; + for (i = 0; i < nargs; i++) { if (! RANGED_INTEGERP (0, p->contents[i], 65535)) @@ -1336,18 +1343,16 @@ Returns nil if format of ADDRESS is invalid. */) && XINT (p->contents[i]) > 255) return Qnil; - args[i+1] = p->contents[i]; + args[i + 1] = p->contents[i]; } - return Fformat (nargs+1, args); + return Fformat (nargs + 1, args); } if (CONSP (address)) { - Lisp_Object args[2]; - args[0] = build_string (""); - args[1] = Fcar (address); - return Fformat (2, args); + AUTO_STRING (format, ""); + return Fformat (2, (Lisp_Object []) {format, Fcar (address)}); } return Qnil; @@ -1386,9 +1391,10 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) (ptrdiff_t nargs, Lisp_Object *args) { Lisp_Object buffer, name, program, proc, current_dir, tem; - register unsigned char **new_argv; + unsigned char **new_argv; ptrdiff_t i; ptrdiff_t count = SPECPDL_INDEX (); + USE_SAFE_ALLOCA; buffer = args[1]; if (!NILP (buffer)) @@ -1464,7 +1470,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) val = Vcoding_system_for_read; if (NILP (val)) { - args2 = alloca ((nargs + 1) * sizeof *args2); + SAFE_ALLOCA_LISP (args2, nargs + 1); args2[0] = Qstart_process; for (i = 0; i < nargs; i++) args2[i + 1] = args[i]; GCPRO2 (proc, current_dir); @@ -1483,7 +1489,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) { if (EQ (coding_systems, Qt)) { - args2 = alloca ((nargs + 1) * sizeof *args2); + SAFE_ALLOCA_LISP (args2, nargs + 1); args2[0] = Qstart_process; for (i = 0; i < nargs; i++) args2[i + 1] = args[i]; GCPRO2 (proc, current_dir); @@ -1578,7 +1584,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) /* Now that everything is encoded we can collect the strings into NEW_ARGV. */ - new_argv = alloca ((nargs - 1) * sizeof *new_argv); + SAFE_NALLOCA (new_argv, 1, nargs - 1); new_argv[nargs - 2] = 0; for (i = nargs - 2; i-- != 0; ) @@ -1592,6 +1598,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) else create_pty (proc); + SAFE_FREE (); return unbind_to (count, proc); } @@ -1716,7 +1723,7 @@ create_process (Lisp_Object process, char **new_argv, Lisp_Object current_dir) if (inchannel > max_process_desc) max_process_desc = inchannel; - /* This may signal an error. */ + /* This may signal an error. */ setup_process_coding_systems (process); block_input (); @@ -1989,7 +1996,7 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len) { struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) sa; uint16_t *ip6 = (uint16_t *) &sin6->sin6_addr; - len = sizeof (sin6->sin6_addr)/2 + 1; + len = sizeof (sin6->sin6_addr) / 2 + 1; address = Fmake_vector (make_number (len), Qnil); p = XVECTOR (address); p->contents[--len] = make_number (ntohs (sin6->sin6_port)); @@ -2071,8 +2078,10 @@ get_lisp_to_sockaddr_size (Lisp_Object address, int *familyp) && VECTORP (XCDR (address))) { struct sockaddr *sa; - *familyp = XINT (XCAR (address)); p = XVECTOR (XCDR (address)); + if (MAX_ALLOCA - sizeof sa->sa_family < p->header.size) + return 0; + *familyp = XINT (XCAR (address)); return p->header.size + sizeof (sa->sa_family); } return 0; @@ -2198,14 +2207,14 @@ Returns nil upon error setting address, ADDRESS otherwise. */) static const struct socket_options { /* The name of this option. Should be lowercase version of option - name without SO_ prefix. */ + name without SO_ prefix. */ const char *name; - /* Option level SOL_... */ + /* Option level SOL_... */ int optlevel; - /* Option number SO_... */ + /* Option number SO_... */ int optnum; enum { SOPT_UNKNOWN, SOPT_BOOL, SOPT_INT, SOPT_IFNAME, SOPT_LINGER } opttype; - enum { OPIX_NONE=0, OPIX_MISC=1, OPIX_REUSEADDR=2 } optbit; + enum { OPIX_NONE = 0, OPIX_MISC = 1, OPIX_REUSEADDR = 2 } optbit; } socket_options[] = { #ifdef SO_BINDTODEVICE @@ -2281,7 +2290,7 @@ set_socket_option (int s, Lisp_Object opt, Lisp_Object val) #ifdef SO_BINDTODEVICE case SOPT_IFNAME: { - char devname[IFNAMSIZ+1]; + char devname[IFNAMSIZ + 1]; /* This is broken, at least in the Linux 2.4 kernel. To unbind, the arg must be a zero integer, not the empty string. @@ -2658,7 +2667,7 @@ usage: (make-serial-process &rest ARGS) */) exactly like a normal process when reading and writing. Primary differences are in status display and process deletion. A network connection has no PID; you cannot signal it. All you can do is - stop/continue it and deactivate/close it via delete-process */ + stop/continue it and deactivate/close it via delete-process. */ DEFUN ("make-network-process", Fmake_network_process, Smake_network_process, 0, MANY, 0, @@ -2862,7 +2871,7 @@ usage: (make-network-process &rest ARGS) */) GCPRO1 (contact); #ifdef WINDOWSNT - /* Ensure socket support is loaded if available. */ + /* Ensure socket support is loaded if available. */ init_winsock (TRUE); #endif @@ -2969,7 +2978,7 @@ usage: (make-network-process &rest ARGS) */) { if (EQ (host, Qlocal)) /* Depending on setup, "localhost" may map to different IPv4 and/or - IPv6 addresses, so it's better to be explicit. (Bug#6781) */ + IPv6 addresses, so it's better to be explicit (Bug#6781). */ host = build_string ("127.0.0.1"); CHECK_STRING (host); } @@ -2989,7 +2998,7 @@ usage: (make-network-process &rest ARGS) */) address_un.sun_family = AF_LOCAL; if (sizeof address_un.sun_path <= SBYTES (service)) error ("Service name too long"); - strcpy (address_un.sun_path, SSDATA (service)); + lispstpcpy (address_un.sun_path, service); ai.ai_addr = (struct sockaddr *) &address_un; ai.ai_addrlen = sizeof address_un; goto open_socket; @@ -3101,7 +3110,7 @@ usage: (make-network-process &rest ARGS) */) address_in.sin_family = family; } else - /* Attempt to interpret host as numeric inet address */ + /* Attempt to interpret host as numeric inet address. */ { unsigned long numeric_addr; numeric_addr = inet_addr (SSDATA (host)); @@ -3167,8 +3176,8 @@ usage: (make-network-process &rest ARGS) */) /* Parse network options in the arg list. We simply ignore anything which isn't a known option (including other keywords). An error is signaled if setting a known option fails. */ - for (optn = optbits = 0; optn < nargs-1; optn += 2) - optbits |= set_socket_option (s, args[optn], args[optn+1]); + for (optn = optbits = 0; optn < nargs - 1; optn += 2) + optbits |= set_socket_option (s, args[optn], args[optn + 1]); if (is_server) { @@ -3239,7 +3248,7 @@ usage: (make-network-process &rest ARGS) */) { /* Unlike most other syscalls connect() cannot be called again. (That would return EALREADY.) The proper way to - wait for completion is pselect(). */ + wait for completion is pselect(). */ int sc; socklen_t len; fd_set fdset; @@ -3617,7 +3626,7 @@ static const struct ifflag_def ifflag_table[] = { #endif #ifdef IFF_NOTRAILERS #ifdef NS_IMPL_COCOA - /* Really means smart, notrailers is obsolete */ + /* Really means smart, notrailers is obsolete. */ { IFF_NOTRAILERS, "smart" }, #else { IFF_NOTRAILERS, "notrailers" }, @@ -3645,19 +3654,19 @@ static const struct ifflag_def ifflag_table[] = { { IFF_DYNAMIC, "dynamic" }, #endif #ifdef IFF_OACTIVE - { IFF_OACTIVE, "oactive" }, /* OpenBSD: transmission in progress */ + { IFF_OACTIVE, "oactive" }, /* OpenBSD: transmission in progress. */ #endif #ifdef IFF_SIMPLEX - { IFF_SIMPLEX, "simplex" }, /* OpenBSD: can't hear own transmissions */ + { IFF_SIMPLEX, "simplex" }, /* OpenBSD: can't hear own transmissions. */ #endif #ifdef IFF_LINK0 - { IFF_LINK0, "link0" }, /* OpenBSD: per link layer defined bit */ + { IFF_LINK0, "link0" }, /* OpenBSD: per link layer defined bit. */ #endif #ifdef IFF_LINK1 - { IFF_LINK1, "link1" }, /* OpenBSD: per link layer defined bit */ + { IFF_LINK1, "link1" }, /* OpenBSD: per link layer defined bit. */ #endif #ifdef IFF_LINK2 - { IFF_LINK2, "link2" }, /* OpenBSD: per link layer defined bit */ + { IFF_LINK2, "link2" }, /* OpenBSD: per link layer defined bit. */ #endif { 0, 0 } }; @@ -3680,7 +3689,7 @@ network_interface_info (Lisp_Object ifname) if (sizeof rq.ifr_name <= SBYTES (ifname)) error ("interface name too long"); - strcpy (rq.ifr_name, SSDATA (ifname)); + lispstpcpy (rq.ifr_name, ifname); s = socket (AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0); if (s < 0) @@ -3873,7 +3882,7 @@ deactivate_process (Lisp_Object proc) } #endif - /* Beware SIGCHLD hereabouts. */ + /* Beware SIGCHLD hereabouts. */ for (i = 0; i < PROCESS_OPEN_FDS; i++) close_process_fd (&p->open_fd[i]); @@ -3988,10 +3997,10 @@ is nil, from any process) before the timeout expired. */) return ((wait_reading_process_output (secs, nsecs, 0, 0, - Qnil, - !NILP (process) ? XPROCESS (process) : NULL, - NILP (just_this_one) ? 0 : - !INTEGERP (just_this_one) ? 1 : -1) + Qnil, + !NILP (process) ? XPROCESS (process) : NULL, + (NILP (just_this_one) ? 0 + : !INTEGERP (just_this_one) ? 1 : -1)) <= 0) ? Qnil : Qt); } @@ -4005,7 +4014,7 @@ server_accept_connection (Lisp_Object server, int channel) { Lisp_Object proc, caller, name, buffer; Lisp_Object contact, host, service; - struct Lisp_Process *ps= XPROCESS (server); + struct Lisp_Process *ps = XPROCESS (server); struct Lisp_Process *p; int s; union u_sockaddr { @@ -4057,20 +4066,15 @@ server_accept_connection (Lisp_Object server, int channel) { case AF_INET: { - Lisp_Object args[5]; unsigned char *ip = (unsigned char *)&saddr.in.sin_addr.s_addr; - args[0] = build_string ("%d.%d.%d.%d"); - args[1] = make_number (*ip++); - args[2] = make_number (*ip++); - args[3] = make_number (*ip++); - args[4] = make_number (*ip++); - host = Fformat (5, args); - service = make_number (ntohs (saddr.in.sin_port)); - args[0] = build_string (" <%s:%d>"); - args[1] = host; - args[2] = service; - caller = Fformat (3, args); + AUTO_STRING (ipv4_format, "%d.%d.%d.%d"); + host = Fformat (5, ((Lisp_Object []) + { ipv4_format, make_number (ip[0]), + make_number (ip[1]), make_number (ip[2]), make_number (ip[3]) })); + service = make_number (ntohs (saddr.in.sin_port)); + AUTO_STRING (caller_format, " <%s:%d>"); + caller = Fformat (3, (Lisp_Object []) {caller_format, host, service}); } break; @@ -4080,16 +4084,15 @@ server_accept_connection (Lisp_Object server, int channel) Lisp_Object args[9]; uint16_t *ip6 = (uint16_t *)&saddr.in6.sin6_addr; int i; - args[0] = build_string ("%x:%x:%x:%x:%x:%x:%x:%x"); + + AUTO_STRING (ipv6_format, "%x:%x:%x:%x:%x:%x:%x:%x"); + args[0] = ipv6_format; for (i = 0; i < 8; i++) - args[i+1] = make_number (ntohs (ip6[i])); + args[i + 1] = make_number (ntohs (ip6[i])); host = Fformat (9, args); service = make_number (ntohs (saddr.in.sin_port)); - - args[0] = build_string (" <[%s]:%d>"); - args[1] = host; - args[2] = service; - caller = Fformat (3, args); + AUTO_STRING (caller_format, " <[%s]:%d>"); + caller = Fformat (3, (Lisp_Object []) {caller_format, host, service}); } break; #endif @@ -4099,7 +4102,9 @@ server_accept_connection (Lisp_Object server, int channel) #endif default: caller = Fnumber_to_string (make_number (connect_counter)); - caller = concat3 (build_string (" <"), caller, build_string (">")); + AUTO_STRING (space_less_than, " <"); + AUTO_STRING (greater_than, ">"); + caller = concat3 (space_less_than, caller, greater_than); break; } @@ -4196,16 +4201,18 @@ server_accept_connection (Lisp_Object server, int channel) p->inherit_coding_system_flag = (NILP (buffer) ? 0 : ps->inherit_coding_system_flag); - if (!NILP (ps->log)) - call3 (ps->log, server, proc, - concat3 (build_string ("accept from "), - (STRINGP (host) ? host : build_string ("-")), - build_string ("\n"))); + AUTO_STRING (dash, "-"); + AUTO_STRING (nl, "\n"); + Lisp_Object host_string = STRINGP (host) ? host : dash; - exec_sentinel (proc, - concat3 (build_string ("open from "), - (STRINGP (host) ? host : build_string ("-")), - build_string ("\n"))); + if (!NILP (ps->log)) + { + AUTO_STRING (accept_from, "accept from "); + call3 (ps->log, server, proc, concat3 (accept_from, host_string, nl)); + } + + AUTO_STRING (open_from, "open from "); + exec_sentinel (proc, concat3 (open_from, host_string, nl)); } /* This variable is different from waiting_for_input in keyboard.c. @@ -4316,7 +4323,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, while (1) { - bool timeout_reduced_for_timers = 0; + bool timeout_reduced_for_timers = false; /* If calling from keyboard input, do not quit since we want to return C-g as an input character. @@ -4340,7 +4347,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, { /* A negative timeout means gobble output available now - but don't wait at all. */ + but don't wait at all. */ timeout = make_timespec (0, 0); } @@ -4403,7 +4410,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, if (timespec_cmp (timer_delay, timeout) < 0) { timeout = timer_delay; - timeout_reduced_for_timers = 1; + timeout_reduced_for_timers = true; } } else @@ -4466,7 +4473,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, && ! EQ (wait_proc->status, Qrun) && ! EQ (wait_proc->status, Qconnect)) { - bool read_some_bytes = 0; + bool read_some_bytes = false; clear_waiting_for_input (); XSETPROCESS (proc, wait_proc); @@ -4499,11 +4506,11 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, break; } - /* Wait till there is something to do */ + /* Wait till there is something to do. */ if (wait_proc && just_wait_proc) { - if (wait_proc->infd < 0) /* Terminated */ + if (wait_proc->infd < 0) /* Terminated. */ break; FD_SET (wait_proc->infd, &Available); check_delay = 0; @@ -4634,7 +4641,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, } else { - /* Check this specific channel. */ + /* Check this specific channel. */ if (wait_proc->gnutls_p /* Check for valid process. */ && wait_proc->gnutls_state /* Do we have pending data? */ @@ -4654,7 +4661,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, xerrno = errno; - /* Make C-g and alarm signals set flags again */ + /* Make C-g and alarm signals set flags again. */ clear_waiting_for_input (); /* If we woke up due to SIGWINCH, actually change size now. */ @@ -4673,22 +4680,22 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, report_file_errno ("Failed select", Qnil, xerrno); } - /* Check for keyboard input */ + /* Check for keyboard input. */ /* If there is any, return immediately - to give it higher priority than subprocesses */ + to give it higher priority than subprocesses. */ if (read_kbd != 0) { unsigned old_timers_run = timers_run; struct buffer *old_buffer = current_buffer; Lisp_Object old_window = selected_window; - bool leave = 0; + bool leave = false; if (detect_input_pending_run_timers (do_display)) { swallow_events (do_display); if (detect_input_pending_run_timers (do_display)) - leave = 1; + leave = true; } /* If a timer has run, this might have changed buffers @@ -4973,18 +4980,17 @@ read_and_dispose_of_process_output (struct Lisp_Process *p, char *chars, for decoding. */ static int -read_process_output (Lisp_Object proc, register int channel) +read_process_output (Lisp_Object proc, int channel) { - register ssize_t nbytes; - char *chars; - register struct Lisp_Process *p = XPROCESS (proc); + ssize_t nbytes; + struct Lisp_Process *p = XPROCESS (proc); struct coding_system *coding = proc_decode_coding_system[channel]; int carryover = p->decoding_carryover; - int readmax = 4096; + enum { readmax = 4096 }; ptrdiff_t count = SPECPDL_INDEX (); Lisp_Object odeactivate; + char chars[sizeof coding->carryover + readmax]; - chars = alloca (carryover + readmax); if (carryover) /* See the comment above. */ memcpy (chars, SDATA (p->decoding_buf), carryover); @@ -5685,7 +5691,7 @@ return t unconditionally. */) return Qt; } -/* send a signal number SIGNO to PROCESS. +/* Send a signal number SIGNO to PROCESS. If CURRENT_GROUP is t, that means send to the process group that currently owns the terminal being used to communicate with PROCESS. This is used for various commands in shell mode. @@ -5788,11 +5794,11 @@ process_send_signal (Lisp_Object process, int signo, Lisp_Object current_group, Or perhaps this is vestigial. */ if (gid == -1) no_pgrp = 1; -#else /* ! defined (TIOCGPGRP ) */ +#else /* ! defined (TIOCGPGRP) */ /* Can't select pgrps on this system, so we know that the child itself heads the pgrp. */ gid = p->pid; -#endif /* ! defined (TIOCGPGRP ) */ +#endif /* ! defined (TIOCGPGRP) */ /* If current_group is lambda, and the shell owns the terminal, don't send any signal. */ @@ -5974,8 +5980,8 @@ SIGCODE may be an integer, or a symbol whose name is a signal name. */) Lisp_Object tem = Fget_process (process); if (NILP (tem)) { - Lisp_Object process_number = - string_to_number (SSDATA (process), 10, 1); + Lisp_Object process_number + = string_to_number (SSDATA (process), 10, 1); if (INTEGERP (process_number) || FLOATP (process_number)) tem = process_number; } @@ -6158,7 +6164,7 @@ static signal_handler_t volatile lib_child_handler; Inc. ** Malloc WARNING: This should never call malloc either directly or - indirectly; if it does, that is a bug */ + indirectly; if it does, that is a bug. */ static void handle_child_signal (int sig) @@ -6231,7 +6237,7 @@ handle_child_signal (int sig) #ifdef NS_IMPL_GNUSTEP /* NSTask in GNUstep sets its child handler each time it is called. So we must re-set ours. */ - catch_child_signal(); + catch_child_signal (); #endif } @@ -6595,7 +6601,7 @@ keyboard_bit_set (fd_set *mask) #else /* not subprocesses */ -/* Defined on msdos.c. */ +/* Defined in msdos.c. */ extern int sys_select (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *); @@ -6663,7 +6669,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, while (1) { - bool timeout_reduced_for_timers = 0; + bool timeout_reduced_for_timers = false; fd_set waitchannels; int xerrno; @@ -6730,7 +6736,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, if (timespec_cmp (timer_delay, timeout) < 0) { timeout = timer_delay; - timeout_reduced_for_timers = 1; + timeout_reduced_for_timers = true; } } } @@ -6763,7 +6769,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, xerrno = errno; - /* Make C-g and alarm signals set flags again */ + /* Make C-g and alarm signals set flags again. */ clear_waiting_for_input (); /* If we woke up due to SIGWINCH, actually change size now. */ @@ -6783,7 +6789,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, report_file_errno ("Failed select", Qnil, xerrno); } - /* Check for keyboard input */ + /* Check for keyboard input. */ if (read_kbd && detect_input_pending_run_timers (do_display)) @@ -6837,7 +6843,7 @@ add_timer_wait_descriptor (int fd) { FD_SET (fd, &input_wait_mask); FD_SET (fd, &non_keyboard_wait_mask); - FD_SET (fd, &non_process_wait_mask); + FD_SET (fd, &non_process_wait_mask); fd_callback_info[fd].func = timerfd_callback; fd_callback_info[fd].data = NULL; fd_callback_info[fd].condition |= FOR_READ; @@ -6852,7 +6858,7 @@ add_timer_wait_descriptor (int fd) void add_keyboard_wait_descriptor (int desc) { -#ifdef subprocesses /* actually means "not MSDOS" */ +#ifdef subprocesses /* Actually means "not MSDOS". */ FD_SET (desc, &input_wait_mask); FD_SET (desc, &non_process_wait_mask); if (desc > max_input_desc) @@ -6943,7 +6949,7 @@ the process output. */) } /* Kill all processes associated with `buffer'. - If `buffer' is nil, kill all processes */ + If `buffer' is nil, kill all processes. */ void kill_buffer_processes (Lisp_Object buffer) @@ -7086,7 +7092,8 @@ catch_child_signal (void) emacs_sigaction_init (&action, deliver_child_signal); block_child_signal (&oldset); sigaction (SIGCHLD, &action, &old_action); - eassert (! (old_action.sa_flags & SA_SIGINFO)); + eassert (old_action.sa_handler == SIG_DFL || old_action.sa_handler == SIG_IGN + || ! (old_action.sa_flags & SA_SIGINFO)); if (old_action.sa_handler != deliver_child_signal) lib_child_handler diff --git a/src/process.h b/src/process.h index 273ad9267d6..56c0f6d6302 100644 --- a/src/process.h +++ b/src/process.h @@ -162,6 +162,9 @@ struct Lisp_Process gnutls_session_t gnutls_state; gnutls_certificate_client_credentials gnutls_x509_cred; gnutls_anon_client_credentials_t gnutls_anon_cred; + gnutls_x509_crt_t gnutls_certificate; + unsigned int gnutls_peer_verification; + unsigned int gnutls_extra_peer_verification; int gnutls_log_level; int gnutls_handshakes_tried; bool_bf gnutls_p : 1; diff --git a/src/ralloc.c b/src/ralloc.c index c82cd4548d2..e63ed34c89b 100644 --- a/src/ralloc.c +++ b/src/ralloc.c @@ -35,9 +35,9 @@ along with GNU Emacs. If not, see . */ #define M_TOP_PAD -2 extern int mallopt (int, int); #else /* not DOUG_LEA_MALLOC */ -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC extern size_t __malloc_extra_blocks; -#endif /* SYSTEM_MALLOC */ +#endif /* not SYSTEM_MALLOC and not HYBRID_MALLOC */ #endif /* not DOUG_LEA_MALLOC */ #else /* not emacs */ @@ -95,7 +95,7 @@ static int extra_bytes; /* The hook `malloc' uses for the function which gets more space from the system. */ -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC extern void *(*__morecore) (ptrdiff_t); #endif @@ -1179,7 +1179,7 @@ r_alloc_init (void) r_alloc_initialized = 1; page_size = PAGE; -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC real_morecore = __morecore; __morecore = r_alloc_sbrk; @@ -1198,7 +1198,7 @@ r_alloc_init (void) mallopt (M_TOP_PAD, 64 * 4096); unblock_input (); #else -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC /* Give GNU malloc's morecore some hysteresis so that we move all the relocatable blocks much less often. The number used to be 64, but alloc.c would override that with 32 in code that was @@ -1211,7 +1211,7 @@ r_alloc_init (void) #endif #endif -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC first_heap->end = (void *) PAGE_ROUNDUP (first_heap->start); /* The extra call to real_morecore guarantees that the end of the diff --git a/src/regex.c b/src/regex.c index 1c1164da57d..85266458917 100644 --- a/src/regex.c +++ b/src/regex.c @@ -457,11 +457,17 @@ init_syntax_once (void) # endif /* not alloca */ -# define REGEX_ALLOCATE alloca +# ifdef emacs +# define REGEX_USE_SAFE_ALLOCA USE_SAFE_ALLOCA +# define REGEX_SAFE_FREE() SAFE_FREE () +# define REGEX_ALLOCATE SAFE_ALLOCA +# else +# define REGEX_ALLOCATE alloca +# endif /* Assumes a `char *destination' variable. */ # define REGEX_REALLOCATE(source, osize, nsize) \ - (destination = alloca (nsize), \ + (destination = REGEX_ALLOCATE (nsize), \ memcpy (destination, source, osize)) /* No need to do anything to free, after alloca. */ @@ -469,6 +475,11 @@ init_syntax_once (void) #endif /* not REGEX_MALLOC */ +#ifndef REGEX_USE_SAFE_ALLOCA +# define REGEX_USE_SAFE_ALLOCA ((void) 0) +# define REGEX_SAFE_FREE() ((void) 0) +#endif + /* Define how to allocate the failure stack. */ #if defined REL_ALLOC && defined REGEX_MALLOC @@ -482,22 +493,10 @@ init_syntax_once (void) #else /* not using relocating allocator */ -# ifdef REGEX_MALLOC +# define REGEX_ALLOCATE_STACK(size) REGEX_ALLOCATE (size) +# define REGEX_REALLOCATE_STACK(source, o, n) REGEX_REALLOCATE (source, o, n) +# define REGEX_FREE_STACK(ptr) REGEX_FREE (ptr) -# define REGEX_ALLOCATE_STACK malloc -# define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize) -# define REGEX_FREE_STACK free - -# else /* not REGEX_MALLOC */ - -# define REGEX_ALLOCATE_STACK alloca - -# define REGEX_REALLOCATE_STACK(source, osize, nsize) \ - REGEX_REALLOCATE (source, osize, nsize) -/* No need to explicitly free anything. */ -# define REGEX_FREE_STACK(arg) ((void)0) - -# endif /* not REGEX_MALLOC */ #endif /* not using relocating allocator */ @@ -516,10 +515,12 @@ init_syntax_once (void) #define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) -#undef MAX -#undef MIN -#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#ifndef emacs +# undef max +# undef min +# define max(a, b) ((a) > (b) ? (a) : (b)) +# define min(a, b) ((a) < (b) ? (a) : (b)) +#endif /* Type of source-pattern and string chars. */ #ifdef _MSC_VER @@ -1395,14 +1396,14 @@ typedef struct : ((fail_stack).stack \ = REGEX_REALLOCATE_STACK ((fail_stack).stack, \ (fail_stack).size * sizeof (fail_stack_elt_t), \ - MIN (re_max_failures * TYPICAL_FAILURE_SIZE, \ + min (re_max_failures * TYPICAL_FAILURE_SIZE, \ ((fail_stack).size * sizeof (fail_stack_elt_t) \ * FAIL_STACK_GROWTH_FACTOR))), \ \ (fail_stack).stack == NULL \ ? 0 \ : ((fail_stack).size \ - = (MIN (re_max_failures * TYPICAL_FAILURE_SIZE, \ + = (min (re_max_failures * TYPICAL_FAILURE_SIZE, \ ((fail_stack).size * sizeof (fail_stack_elt_t) \ * FAIL_STACK_GROWTH_FACTOR)) \ / sizeof (fail_stack_elt_t)), \ @@ -1631,7 +1632,7 @@ static boolean at_begline_loc_p (re_char *pattern, re_char *p, static boolean at_endline_loc_p (re_char *p, re_char *pend, reg_syntax_t syntax); static re_char *skip_one_char (re_char *p); -static int analyse_first (re_char *p, re_char *pend, +static int analyze_first (re_char *p, re_char *pend, char *fastmap, const int multibyte); /* Fetch the next character in the uncompiled pattern, with no @@ -2310,8 +2311,8 @@ set_image_of_range (struct range_table_work_area *work_area, cmin = c, cmax = c; else { - cmin = MIN (cmin, c); - cmax = MAX (cmax, c); + cmin = min (cmin, c); + cmax = max (cmax, c); } } } @@ -2687,7 +2688,7 @@ regex_compile (const_re_char *pattern, size_t size, reg_syntax_t syntax, size_t startoffset = 0; re_opcode_t ofj = /* Check if the loop can match the empty string. */ - (simple || !analyse_first (laststart, b, NULL, 0)) + (simple || !analyze_first (laststart, b, NULL, 0)) ? on_failure_jump : on_failure_jump_loop; assert (skip_one_char (laststart) <= b); @@ -2734,7 +2735,7 @@ regex_compile (const_re_char *pattern, size_t size, reg_syntax_t syntax, GET_BUFFER_SPACE (7); /* We might use less. */ if (many_times_ok) { - boolean emptyp = analyse_first (laststart, b, NULL, 0); + boolean emptyp = analyze_first (laststart, b, NULL, 0); /* The non-greedy multiple match looks like a repeat..until: we only need a conditional jump @@ -2990,7 +2991,7 @@ regex_compile (const_re_char *pattern, size_t size, reg_syntax_t syntax, #else /* emacs */ if (c < 128) { - ch = MIN (127, c1); + ch = min (127, c1); SETUP_ASCII_RANGE (range_table_work, c, ch); c = ch + 1; if (CHAR_BYTE8_P (c1)) @@ -3835,7 +3836,7 @@ group_in_compile_stack (compile_stack_type compile_stack, regnum_t regnum) return false; } -/* analyse_first. +/* analyze_first. If fastmap is non-NULL, go through the pattern and fill fastmap with all the possible leading chars. If fastmap is NULL, don't bother filling it up (obviously) and only return whether the @@ -3846,7 +3847,7 @@ group_in_compile_stack (compile_stack_type compile_stack, regnum_t regnum) Return -1 if fastmap was not updated accurately. */ static int -analyse_first (const_re_char *p, const_re_char *pend, char *fastmap, +analyze_first (const_re_char *p, const_re_char *pend, char *fastmap, const int multibyte) { int j, k; @@ -4088,7 +4089,7 @@ analyse_first (const_re_char *p, const_re_char *pend, char *fastmap, { /* We have to look down both arms. We first go down the "straight" path so as to minimize stack usage when going through alternatives. */ - int r = analyse_first (p, pend, fastmap, multibyte); + int r = analyze_first (p, pend, fastmap, multibyte); if (r) return r; p += j; } @@ -4138,7 +4139,7 @@ analyse_first (const_re_char *p, const_re_char *pend, char *fastmap, /* We reached the end without matching anything. */ return 1; -} /* analyse_first */ +} /* analyze_first */ /* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in BUFP. A fastmap records which of the (1 << BYTEWIDTH) possible @@ -4168,7 +4169,7 @@ re_compile_fastmap (struct re_pattern_buffer *bufp) memset (fastmap, 0, 1 << BYTEWIDTH); /* Assume nothing's valid. */ bufp->fastmap_accurate = 1; /* It will be when we're done. */ - analysis = analyse_first (bufp->buffer, bufp->buffer + bufp->used, + analysis = analyze_first (bufp->buffer, bufp->buffer + bufp->used, fastmap, RE_MULTIBYTE_P (bufp)); bufp->can_be_null = (analysis != 0); return 0; @@ -4579,6 +4580,7 @@ static int bcmp_translate (re_char *s1, re_char *s2, FREE_VAR (regend); \ FREE_VAR (best_regstart); \ FREE_VAR (best_regend); \ + REGEX_SAFE_FREE (); \ } while (0) #else # define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */ @@ -5018,6 +5020,8 @@ re_match_2_internal (struct re_pattern_buffer *bufp, const_re_char *string1, DEBUG_PRINT ("\n\nEntering re_match_2.\n"); + REGEX_USE_SAFE_ALLOCA; + INIT_FAIL_STACK (); #ifdef MATCH_MAY_ALLOCATE @@ -5208,7 +5212,7 @@ re_match_2_internal (struct re_pattern_buffer *bufp, const_re_char *string1, { /* No. So allocate them with malloc. We need one extra element beyond `num_regs' for the `-1' marker GNU code uses. */ - regs->num_regs = MAX (RE_NREGS, num_regs + 1); + regs->num_regs = max (RE_NREGS, num_regs + 1); regs->start = TALLOC (regs->num_regs, regoff_t); regs->end = TALLOC (regs->num_regs, regoff_t); if (regs->start == NULL || regs->end == NULL) @@ -5252,7 +5256,7 @@ re_match_2_internal (struct re_pattern_buffer *bufp, const_re_char *string1, /* Go through the first `min (num_regs, regs->num_regs)' registers, since that is all we initialized. */ - for (reg = 1; reg < MIN (num_regs, regs->num_regs); reg++) + for (reg = 1; reg < min (num_regs, regs->num_regs); reg++) { if (REG_UNSET (regstart[reg]) || REG_UNSET (regend[reg])) regs->start[reg] = regs->end[reg] = -1; diff --git a/src/regex.h b/src/regex.h index 1b064987eb7..0e25723a85e 100644 --- a/src/regex.h +++ b/src/regex.h @@ -172,6 +172,9 @@ extern reg_syntax_t re_syntax_options; extern Lisp_Object re_match_object; #endif +/* Roughly the maximum number of failure points on the stack. */ +extern size_t re_max_failures; + /* Define combinations of the above bits for the standard possibilities. (The [[[ comments delimit what gets put into the Texinfo file, so diff --git a/src/scroll.c b/src/scroll.c index 3da236ca8a6..7cb683c4577 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -90,7 +90,7 @@ calculate_scrolling (struct frame *frame, /* matrix is of size window_size + 1 on each side. */ struct matrix_elt *matrix, int window_size, int lines_below, - int *draw_cost, int *old_hash, int *new_hash, + int *draw_cost, unsigned *old_hash, unsigned *new_hash, int free_at_end) { register int i, j; @@ -245,18 +245,20 @@ do_scrolling (struct frame *frame, struct glyph_matrix *current_matrix, { struct matrix_elt *p; int i, j, k; + USE_SAFE_ALLOCA; /* True if we have set a terminal window with set_terminal_window. */ bool terminal_window_p = 0; /* A queue for line insertions to be done. */ struct queue { int count, pos; }; - struct queue *queue_start - = alloca (current_matrix->nrows * sizeof *queue_start); + struct queue *queue_start; + SAFE_NALLOCA (queue_start, 1, current_matrix->nrows); struct queue *queue = queue_start; - char *retained_p = alloca (window_size * sizeof *retained_p); - int *copy_from = alloca (window_size * sizeof *copy_from); + char *retained_p = SAFE_ALLOCA (window_size); + int *copy_from; + SAFE_NALLOCA (copy_from, 1, window_size); /* Zero means line is empty. */ memset (retained_p, 0, window_size * sizeof (char)); @@ -378,6 +380,7 @@ do_scrolling (struct frame *frame, struct glyph_matrix *current_matrix, if (terminal_window_p) set_terminal_window (frame, 0); + SAFE_FREE (); } @@ -427,7 +430,7 @@ calculate_direct_scrolling (struct frame *frame, struct matrix_elt *matrix, int window_size, int lines_below, int *draw_cost, int *old_draw_cost, - int *old_hash, int *new_hash, + unsigned *old_hash, unsigned *new_hash, int free_at_end) { register int i, j; @@ -649,10 +652,12 @@ do_direct_scrolling (struct frame *frame, struct glyph_matrix *current_matrix, { struct matrix_elt *p; int i, j; + USE_SAFE_ALLOCA; /* A queue of deletions and insertions to be performed. */ struct alt_queue { int count, pos, window; }; - struct alt_queue *queue_start = alloca (window_size * sizeof *queue_start); + struct alt_queue *queue_start; + SAFE_NALLOCA (queue_start, 1, window_size); struct alt_queue *queue = queue_start; /* True if a terminal window has been set with set_terminal_window. */ @@ -667,11 +672,12 @@ do_direct_scrolling (struct frame *frame, struct glyph_matrix *current_matrix, bool write_follows_p = 1; /* For each row in the new matrix what row of the old matrix it is. */ - int *copy_from = alloca (window_size * sizeof *copy_from); + int *copy_from; + SAFE_NALLOCA (copy_from, 1, window_size); /* Non-zero for each row in the new matrix that is retained from the old matrix. Lines not retained are empty. */ - char *retained_p = alloca (window_size * sizeof *retained_p); + char *retained_p = SAFE_ALLOCA (window_size); memset (retained_p, 0, window_size * sizeof (char)); @@ -787,6 +793,7 @@ do_direct_scrolling (struct frame *frame, struct glyph_matrix *current_matrix, if (terminal_window_p) set_terminal_window (frame, 0); + SAFE_FREE (); } @@ -794,10 +801,11 @@ do_direct_scrolling (struct frame *frame, struct glyph_matrix *current_matrix, void scrolling_1 (struct frame *frame, int window_size, int unchanged_at_top, int unchanged_at_bottom, int *draw_cost, int *old_draw_cost, - int *old_hash, int *new_hash, int free_at_end) + unsigned *old_hash, unsigned *new_hash, int free_at_end) { - struct matrix_elt *matrix - = alloca ((window_size + 1) * (window_size + 1) * sizeof *matrix); + USE_SAFE_ALLOCA; + struct matrix_elt *matrix; + SAFE_NALLOCA (matrix, window_size + 1, window_size + 1); if (FRAME_SCROLL_REGION_OK (frame)) { @@ -817,6 +825,8 @@ scrolling_1 (struct frame *frame, int window_size, int unchanged_at_top, frame->current_matrix, matrix, window_size, unchanged_at_top); } + + SAFE_FREE (); } @@ -829,12 +839,14 @@ scrolling_1 (struct frame *frame, int window_size, int unchanged_at_top, int scrolling_max_lines_saved (int start, int end, - int *oldhash, int *newhash, + unsigned *oldhash, unsigned *newhash, int *cost) { - struct { int hash; int count; } lines[01000]; - register int i, h; - register int matchcount = 0; + enum { LOG2_NLINES = 9 }; + enum { NLINES = 1 << LOG2_NLINES }; + struct { unsigned hash; int count; } lines[NLINES]; + int i, h; + int matchcount = 0; int avg_length = 0; int threshold; @@ -855,7 +867,7 @@ scrolling_max_lines_saved (int start, int end, { if (cost[i] > threshold) { - h = newhash[i] & 0777; + h = newhash[i] & (NLINES - 1); lines[h].hash = newhash[i]; lines[h].count++; } @@ -865,7 +877,7 @@ scrolling_max_lines_saved (int start, int end, matches between old lines and new. */ for (i = start; i < end; i++) { - h = oldhash[i] & 0777; + h = oldhash[i] & (NLINES - 1); if (oldhash[i] == lines[h].hash) { matchcount++; diff --git a/src/search.c b/src/search.c index ecfb2352144..c6ae9d7e922 100644 --- a/src/search.c +++ b/src/search.c @@ -985,6 +985,24 @@ scan_newline (ptrdiff_t start, ptrdiff_t start_byte, return shortage; } +/* Like above, but always scan from point and report the + resulting position in *CHARPOS and *BYTEPOS. */ + +ptrdiff_t +scan_newline_from_point (ptrdiff_t count, ptrdiff_t *charpos, + ptrdiff_t *bytepos) +{ + ptrdiff_t shortage; + + if (count <= 0) + *charpos = find_newline (PT, PT_BYTE, BEGV, BEGV_BYTE, count - 1, + &shortage, bytepos, 1); + else + *charpos = find_newline (PT, PT_BYTE, ZV, ZV_BYTE, count, + &shortage, bytepos, 1); + return shortage; +} + /* Like find_newline, but doesn't allow QUITting and doesn't return SHORTAGE. */ ptrdiff_t @@ -1318,6 +1336,7 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, translation. Otherwise set to zero later. */ int char_base = -1; bool boyer_moore_ok = 1; + USE_SAFE_ALLOCA; /* MULTIBYTE says whether the text to be searched is multibyte. We must convert PATTERN to match that, or we will not really @@ -1335,7 +1354,7 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, raw_pattern_size_byte = count_size_as_multibyte (SDATA (string), raw_pattern_size); - raw_pattern = alloca (raw_pattern_size_byte + 1); + raw_pattern = SAFE_ALLOCA (raw_pattern_size_byte + 1); copy_text (SDATA (string), raw_pattern, SCHARS (string), 0, 1); } @@ -1349,7 +1368,7 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, the chosen single-byte character set can possibly match. */ raw_pattern_size = SCHARS (string); raw_pattern_size_byte = SCHARS (string); - raw_pattern = alloca (raw_pattern_size + 1); + raw_pattern = SAFE_ALLOCA (raw_pattern_size + 1); copy_text (SDATA (string), raw_pattern, SBYTES (string), 1, 0); } @@ -1357,7 +1376,7 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, /* Copy and optionally translate the pattern. */ len = raw_pattern_size; len_byte = raw_pattern_size_byte; - patbuf = alloca (len * MAX_MULTIBYTE_LENGTH); + SAFE_NALLOCA (patbuf, MAX_MULTIBYTE_LENGTH, len); pat = patbuf; base_pat = raw_pattern; if (multibyte) @@ -1497,13 +1516,15 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, len_byte = pat - patbuf; pat = base_pat = patbuf; - if (boyer_moore_ok) - return boyer_moore (n, pat, len_byte, trt, inverse_trt, - pos_byte, lim_byte, - char_base); - else - return simple_search (n, pat, raw_pattern_size, len_byte, trt, - pos, pos_byte, lim, lim_byte); + EMACS_INT result + = (boyer_moore_ok + ? boyer_moore (n, pat, len_byte, trt, inverse_trt, + pos_byte, lim_byte, + char_base) + : simple_search (n, pat, raw_pattern_size, len_byte, trt, + pos, pos_byte, lim, lim_byte)); + SAFE_FREE (); + return result; } } @@ -2809,7 +2830,8 @@ Return value is undefined if the last search failed. */) prev = Qnil; - data = alloca ((2 * search_regs.num_regs + 1) * sizeof *data); + USE_SAFE_ALLOCA; + SAFE_NALLOCA (data, 1, 2 * search_regs.num_regs + 1); len = 0; for (i = 0; i < search_regs.num_regs; i++) @@ -2852,25 +2874,28 @@ Return value is undefined if the last search failed. */) /* If REUSE is not usable, cons up the values and return them. */ if (! CONSP (reuse)) - return Flist (len, data); - - /* If REUSE is a list, store as many value elements as will fit - into the elements of REUSE. */ - for (i = 0, tail = reuse; CONSP (tail); - i++, tail = XCDR (tail)) + reuse = Flist (len, data); + else { + /* If REUSE is a list, store as many value elements as will fit + into the elements of REUSE. */ + for (i = 0, tail = reuse; CONSP (tail); + i++, tail = XCDR (tail)) + { + if (i < len) + XSETCAR (tail, data[i]); + else + XSETCAR (tail, Qnil); + prev = tail; + } + + /* If we couldn't fit all value elements into REUSE, + cons up the rest of them and add them to the end of REUSE. */ if (i < len) - XSETCAR (tail, data[i]); - else - XSETCAR (tail, Qnil); - prev = tail; + XSETCDR (prev, Flist (len - i, data + i)); } - /* If we couldn't fit all value elements into REUSE, - cons up the rest of them and add them to the end of REUSE. */ - if (i < len) - XSETCDR (prev, Flist (len - i, data + i)); - + SAFE_FREE (); return reuse; } @@ -3075,7 +3100,8 @@ DEFUN ("regexp-quote", Fregexp_quote, Sregexp_quote, 1, 1, 0, CHECK_STRING (string); - temp = alloca (SBYTES (string) * 2); + USE_SAFE_ALLOCA; + SAFE_NALLOCA (temp, 2, SBYTES (string)); /* Now copy the data into the new string, inserting escapes. */ @@ -3093,10 +3119,13 @@ DEFUN ("regexp-quote", Fregexp_quote, Sregexp_quote, 1, 1, 0, *out++ = *in; } - return make_specified_string (temp, - SCHARS (string) + backslashes_added, - out - temp, - STRING_MULTIBYTE (string)); + Lisp_Object result + = make_specified_string (temp, + SCHARS (string) + backslashes_added, + out - temp, + STRING_MULTIBYTE (string)); + SAFE_FREE (); + return result; } /* Like find_newline, but doesn't use the cache, and only searches forward. */ diff --git a/src/sheap.c b/src/sheap.c index 5069744435b..956faa36aa1 100644 --- a/src/sheap.c +++ b/src/sheap.c @@ -44,6 +44,8 @@ int debug_sheap = 0; #define BLOCKSIZE 4096 char bss_sbrk_buffer[STATIC_HEAP_SIZE]; +/* The following is needed in gmalloc.c */ +void *bss_sbrk_buffer_end = bss_sbrk_buffer + STATIC_HEAP_SIZE; char *bss_sbrk_ptr; char *max_bss_sbrk_ptr; int bss_sbrk_did_unexec; diff --git a/src/sound.c b/src/sound.c index 7046f4e8e32..b49348f1256 100644 --- a/src/sound.c +++ b/src/sound.c @@ -86,8 +86,13 @@ along with GNU Emacs. If not, see . */ /* BEGIN: Windows Specific Includes */ #include #include +#include #include #include + +#include "coding.h" +#include "w32common.h" +#include "w32.h" /* END: Windows Specific Includes */ #endif /* WINDOWSNT */ @@ -564,12 +569,11 @@ wav_play (struct sound *s, struct sound_device *sd) SBYTES (s->data) - sizeof *header); else { - char *buffer; ptrdiff_t nbytes = 0; ptrdiff_t blksize = sd->period_size ? sd->period_size (sd) : 2048; ptrdiff_t data_left = header->data_length; - - buffer = alloca (blksize); + USE_SAFE_ALLOCA; + char *buffer = SAFE_ALLOCA (blksize); lseek (s->fd, sizeof *header, SEEK_SET); while (data_left > 0 && (nbytes = emacs_read (s->fd, buffer, blksize)) > 0) @@ -582,6 +586,7 @@ wav_play (struct sound *s, struct sound_device *sd) if (nbytes < 0) sound_perror ("Error reading sound file"); + SAFE_FREE (); } } @@ -656,19 +661,20 @@ au_play (struct sound *s, struct sound_device *sd) else { ptrdiff_t blksize = sd->period_size ? sd->period_size (sd) : 2048; - char *buffer; ptrdiff_t nbytes; /* Seek */ lseek (s->fd, header->data_offset, SEEK_SET); /* Copy sound data to the device. */ - buffer = alloca (blksize); + USE_SAFE_ALLOCA; + char *buffer = SAFE_ALLOCA (blksize); while ((nbytes = emacs_read (s->fd, buffer, blksize)) > 0) sd->write (sd, buffer, nbytes); if (nbytes < 0) sound_perror ("Error reading sound file"); + SAFE_FREE (); } } @@ -1203,38 +1209,83 @@ alsa_init (struct sound_device *sd) /* BEGIN: Windows specific functions */ -#define SOUND_WARNING(fun, error, text) \ - { \ - char buf[1024]; \ - char err_string[MAXERRORLENGTH]; \ - fun (error, err_string, sizeof (err_string)); \ - _snprintf (buf, sizeof (buf), "%s\nError: %s", \ - text, err_string); \ - sound_warning (buf); \ - } +#define SOUND_WARNING(func, error, text) \ + do { \ + char buf[1024]; \ + char err_string[MAXERRORLENGTH]; \ + func (error, err_string, sizeof (err_string)); \ + _snprintf (buf, sizeof (buf), "%s\nMCI Error: %s", \ + text, err_string); \ + message_with_string ("%s", build_string (buf), 1); \ + } while (0) static int do_play_sound (const char *psz_file, unsigned long ui_volume) { int i_result = 0; MCIERROR mci_error = 0; - char sz_cmd_buf[520] = {0}; - char sz_ret_buf[520] = {0}; + char sz_cmd_buf_a[520]; + char sz_ret_buf_a[520]; MMRESULT mm_result = MMSYSERR_NOERROR; unsigned long ui_volume_org = 0; BOOL b_reset_volume = FALSE; + char warn_text[560]; - memset (sz_cmd_buf, 0, sizeof (sz_cmd_buf)); - memset (sz_ret_buf, 0, sizeof (sz_ret_buf)); - sprintf (sz_cmd_buf, - "open \"%s\" alias GNUEmacs_PlaySound_Device wait", - psz_file); - mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, sizeof (sz_ret_buf), NULL); + /* Since UNICOWS.DLL includes only a stub for mciSendStringW, we + need to encode the file in the ANSI codepage on Windows 9X even + if w32_unicode_filenames is non-zero. */ + if (w32_major_version <= 4 || !w32_unicode_filenames) + { + char fname_a[MAX_PATH], shortname[MAX_PATH], *fname_to_use; + + filename_to_ansi (psz_file, fname_a); + fname_to_use = fname_a; + /* If the file name is not encodable in ANSI, try its short 8+3 + alias. This will only work if w32_unicode_filenames is + non-zero. */ + if (_mbspbrk ((const unsigned char *)fname_a, + (const unsigned char *)"?")) + { + if (w32_get_short_filename (psz_file, shortname, MAX_PATH)) + fname_to_use = shortname; + else + mci_error = MCIERR_FILE_NOT_FOUND; + } + + if (!mci_error) + { + memset (sz_cmd_buf_a, 0, sizeof (sz_cmd_buf_a)); + memset (sz_ret_buf_a, 0, sizeof (sz_ret_buf_a)); + sprintf (sz_cmd_buf_a, + "open \"%s\" alias GNUEmacs_PlaySound_Device wait", + fname_to_use); + mci_error = mciSendStringA (sz_cmd_buf_a, + sz_ret_buf_a, sizeof (sz_ret_buf_a), NULL); + } + } + else + { + wchar_t sz_cmd_buf_w[520]; + wchar_t sz_ret_buf_w[520]; + wchar_t fname_w[MAX_PATH]; + + filename_to_utf16 (psz_file, fname_w); + memset (sz_cmd_buf_w, 0, sizeof (sz_cmd_buf_w)); + memset (sz_ret_buf_w, 0, sizeof (sz_ret_buf_w)); + /* _swprintf is not available on Windows 9X, so we construct the + UTF-16 command string by hand. */ + wcscpy (sz_cmd_buf_w, L"open \""); + wcscat (sz_cmd_buf_w, fname_w); + wcscat (sz_cmd_buf_w, L"\" alias GNUEmacs_PlaySound_Device wait"); + mci_error = mciSendStringW (sz_cmd_buf_w, + sz_ret_buf_w, ARRAYELTS (sz_ret_buf_w) , NULL); + } if (mci_error != 0) { - SOUND_WARNING (mciGetErrorString, mci_error, - "The open mciSendString command failed to open " - "the specified sound file."); + strcpy (warn_text, + "mciSendString: 'open' command failed to open sound file "); + strcat (warn_text, psz_file); + SOUND_WARNING (mciGetErrorString, mci_error, warn_text); i_result = (int) mci_error; return i_result; } @@ -1248,44 +1299,47 @@ do_play_sound (const char *psz_file, unsigned long ui_volume) if (mm_result != MMSYSERR_NOERROR) { SOUND_WARNING (waveOutGetErrorText, mm_result, - "waveOutSetVolume failed to set the volume level " - "of the WAVE_MAPPER device.\n" - "As a result, the user selected volume level will " - "not be used."); + "waveOutSetVolume: failed to set the volume level" + " of the WAVE_MAPPER device.\n" + "As a result, the user selected volume level will" + " not be used."); } } else { SOUND_WARNING (waveOutGetErrorText, mm_result, - "waveOutGetVolume failed to obtain the original " - "volume level of the WAVE_MAPPER device.\n" - "As a result, the user selected volume level will " - "not be used."); + "waveOutGetVolume: failed to obtain the original" + " volume level of the WAVE_MAPPER device.\n" + "As a result, the user selected volume level will" + " not be used."); } } - memset (sz_cmd_buf, 0, sizeof (sz_cmd_buf)); - memset (sz_ret_buf, 0, sizeof (sz_ret_buf)); - strcpy (sz_cmd_buf, "play GNUEmacs_PlaySound_Device wait"); - mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, sizeof (sz_ret_buf), NULL); + memset (sz_cmd_buf_a, 0, sizeof (sz_cmd_buf_a)); + memset (sz_ret_buf_a, 0, sizeof (sz_ret_buf_a)); + strcpy (sz_cmd_buf_a, "play GNUEmacs_PlaySound_Device wait"); + mci_error = mciSendStringA (sz_cmd_buf_a, sz_ret_buf_a, sizeof (sz_ret_buf_a), + NULL); if (mci_error != 0) { - SOUND_WARNING (mciGetErrorString, mci_error, - "The play mciSendString command failed to play the " - "opened sound file."); + strcpy (warn_text, + "mciSendString: 'play' command failed to play sound file "); + strcat (warn_text, psz_file); + SOUND_WARNING (mciGetErrorString, mci_error, warn_text); i_result = (int) mci_error; } - memset (sz_cmd_buf, 0, sizeof (sz_cmd_buf)); - memset (sz_ret_buf, 0, sizeof (sz_ret_buf)); - strcpy (sz_cmd_buf, "close GNUEmacs_PlaySound_Device wait"); - mci_error = mciSendString (sz_cmd_buf, sz_ret_buf, sizeof (sz_ret_buf), NULL); + memset (sz_cmd_buf_a, 0, sizeof (sz_cmd_buf_a)); + memset (sz_ret_buf_a, 0, sizeof (sz_ret_buf_a)); + strcpy (sz_cmd_buf_a, "close GNUEmacs_PlaySound_Device wait"); + mci_error = mciSendStringA (sz_cmd_buf_a, sz_ret_buf_a, sizeof (sz_ret_buf_a), + NULL); if (b_reset_volume == TRUE) { mm_result = waveOutSetVolume ((HWAVEOUT) WAVE_MAPPER, ui_volume_org); if (mm_result != MMSYSERR_NOERROR) { SOUND_WARNING (waveOutGetErrorText, mm_result, - "waveOutSetVolume failed to reset the original volume " - "level of the WAVE_MAPPER device."); + "waveOutSetVolume: failed to reset the original" + " volume level of the WAVE_MAPPER device."); } } return i_result; @@ -1303,15 +1357,11 @@ Internal use only, use `play-sound' instead. */) { Lisp_Object attrs[SOUND_ATTR_SENTINEL]; ptrdiff_t count = SPECPDL_INDEX (); - -#ifndef WINDOWSNT Lisp_Object file; - struct gcpro gcpro1, gcpro2; Lisp_Object args[2]; -#else /* WINDOWSNT */ - int len = 0; - Lisp_Object lo_file = {0}; - char * psz_file = NULL; + struct gcpro gcpro1, gcpro2; + +#ifdef WINDOWSNT unsigned long ui_volume_tmp = UINT_MAX; unsigned long ui_volume = UINT_MAX; #endif /* WINDOWSNT */ @@ -1326,7 +1376,8 @@ Internal use only, use `play-sound' instead. */) current_sound_device = xzalloc (sizeof *current_sound_device); current_sound = xzalloc (sizeof *current_sound); record_unwind_protect_void (sound_cleanup); - current_sound->header = alloca (MAX_SOUND_HEADER_BYTES); + char headerbuf[MAX_SOUND_HEADER_BYTES]; + current_sound->header = headerbuf; if (STRINGP (attrs[SOUND_FILE])) { @@ -1383,10 +1434,8 @@ Internal use only, use `play-sound' instead. */) #else /* WINDOWSNT */ - lo_file = Fexpand_file_name (attrs[SOUND_FILE], Qnil); - len = XSTRING (lo_file)->size; - psz_file = alloca (len + 1); - strcpy (psz_file, XSTRING (lo_file)->data); + file = Fexpand_file_name (attrs[SOUND_FILE], Vdata_directory); + file = ENCODE_FILE (file); if (INTEGERP (attrs[SOUND_VOLUME])) { ui_volume_tmp = XFASTINT (attrs[SOUND_VOLUME]); @@ -1395,6 +1444,13 @@ Internal use only, use `play-sound' instead. */) { ui_volume_tmp = XFLOAT_DATA (attrs[SOUND_VOLUME]) * 100; } + + GCPRO2 (sound, file); + + args[0] = Qplay_sound_functions; + args[1] = sound; + Frun_hook_with_args (2, args); + /* Based on some experiments I have conducted, a value of 100 or less for the sound volume is much too low. You cannot even hear it. @@ -1408,7 +1464,9 @@ Internal use only, use `play-sound' instead. */) { ui_volume = ui_volume_tmp * (UINT_MAX / 100); } - do_play_sound (psz_file, ui_volume); + (void)do_play_sound (SSDATA (file), ui_volume); + + UNGCPRO; #endif /* WINDOWSNT */ diff --git a/src/syntax.c b/src/syntax.c index 4166ee211c7..dc84ca69fb7 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -825,7 +825,7 @@ back_comment (ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t stop, { from = comment_end; from_byte = comment_end_byte; - UPDATE_SYNTAX_TABLE_FORWARD (comment_end - 1); + UPDATE_SYNTAX_TABLE_FORWARD (comment_end); } /* If comstart_pos is set and we get here (ie. didn't jump to `lossage' or `done'), then we've found the beginning of the non-nested comment. */ @@ -1231,7 +1231,7 @@ DEFUN ("internal-describe-syntax-value", Finternal_describe_syntax_value, syntax_code = XINT (first) & INT_MAX; code = syntax_code & 0377; start1 = SYNTAX_FLAGS_COMSTART_FIRST (syntax_code); - start2 = SYNTAX_FLAGS_COMSTART_SECOND (syntax_code);; + start2 = SYNTAX_FLAGS_COMSTART_SECOND (syntax_code); end1 = SYNTAX_FLAGS_COMEND_FIRST (syntax_code); end2 = SYNTAX_FLAGS_COMEND_SECOND (syntax_code); prefix = SYNTAX_FLAGS_PREFIX (syntax_code); @@ -1567,6 +1567,7 @@ skip_chars (bool forwardp, Lisp_Object string, Lisp_Object lim, const unsigned char *str; int len; Lisp_Object iso_classes; + USE_SAFE_ALLOCA; CHECK_STRING (string); iso_classes = Qnil; @@ -1699,7 +1700,7 @@ skip_chars (bool forwardp, Lisp_Object string, Lisp_Object lim, memcpy (himap, fastmap + 0200, 0200); himap[0200] = 0; memset (fastmap + 0200, 0, 0200); - char_ranges = alloca (sizeof *char_ranges * 128 * 2); + SAFE_NALLOCA (char_ranges, 2, 128); i = 0; while ((p1 = memchr (himap + i, 1, 0200 - i))) @@ -1723,7 +1724,7 @@ skip_chars (bool forwardp, Lisp_Object string, Lisp_Object lim, } else /* STRING is multibyte */ { - char_ranges = alloca (sizeof *char_ranges * SCHARS (string) * 2); + SAFE_NALLOCA (char_ranges, 2, SCHARS (string)); while (i_byte < size_byte) { @@ -2032,6 +2033,7 @@ skip_chars (bool forwardp, Lisp_Object string, Lisp_Object lim, SET_PT_BOTH (pos, pos_byte); immediate_quit = 0; + SAFE_FREE (); return make_number (PT - start_point); } } @@ -2857,10 +2859,13 @@ scan_lists (EMACS_INT from, EMACS_INT count, EMACS_INT depth, bool sexpflag) case Smath: if (!sexpflag) break; - temp_pos = dec_bytepos (from_byte); - UPDATE_SYNTAX_TABLE_BACKWARD (from - 1); - if (from != stop && c == FETCH_CHAR_AS_MULTIBYTE (temp_pos)) - DEC_BOTH (from, from_byte); + if (from > BEGV) + { + temp_pos = dec_bytepos (from_byte); + UPDATE_SYNTAX_TABLE_BACKWARD (from - 1); + if (from != stop && c == FETCH_CHAR_AS_MULTIBYTE (temp_pos)) + DEC_BOTH (from, from_byte); + } if (mathexit) { mathexit = 0; diff --git a/src/sysdep.c b/src/sysdep.c index d5cfd5b88cf..24cc5cb0b40 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -19,6 +19,14 @@ along with GNU Emacs. If not, see . */ #include +/* If HYBRID_GET_CURRENT_DIR_NAME is defined in conf_post.h, then we + need the following before including unistd.h, in order to pick up + the right prototype for gget_current_dir_name. */ +#ifdef HYBRID_GET_CURRENT_DIR_NAME +#undef get_current_dir_name +#define get_current_dir_name gget_current_dir_name +#endif + #include #include "sysstdio.h" #ifdef HAVE_PWD_H @@ -46,7 +54,6 @@ along with GNU Emacs. If not, see . */ # include # undef frame -# include # include #endif @@ -72,6 +79,9 @@ along with GNU Emacs. If not, see . */ #include "msdos.h" #endif +#ifdef HAVE_SYS_RESOURCE_H +#include +#endif #include #include #include @@ -119,9 +129,8 @@ static const int baud_convert[] = 1800, 2400, 4800, 9600, 19200, 38400 }; - -#if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME) - +#if !defined HAVE_GET_CURRENT_DIR_NAME || defined BROKEN_GET_CURRENT_DIR_NAME \ + || (defined HYBRID_GET_CURRENT_DIR_NAME) /* Return the current working directory. Returns NULL on errors. Any other returned value must be freed with free. This is used only when get_current_dir_name is not defined on the system. */ @@ -1716,6 +1725,83 @@ handle_arith_signal (int sig) xsignal0 (Qarith_error); } +#ifdef HAVE_STACK_OVERFLOW_HANDLING + +/* -1 if stack grows down as expected on most OS/ABI variants, 1 otherwise. */ + +static int stack_direction; + +/* Alternate stack used by SIGSEGV handler below. */ + +static unsigned char sigsegv_stack[SIGSTKSZ]; + +/* Attempt to recover from SIGSEGV caused by C stack overflow. */ + +static void +handle_sigsegv (int sig, siginfo_t *siginfo, void *arg) +{ + /* Hard GC error may lead to stack overflow caused by + too nested calls to mark_object. No way to survive. */ + if (!gc_in_progress) + { + struct rlimit rlim; + + if (!getrlimit (RLIMIT_STACK, &rlim)) + { + enum { STACK_DANGER_ZONE = 16 * 1024 }; + char *beg, *end, *addr; + + beg = stack_bottom; + end = stack_bottom + stack_direction * rlim.rlim_cur; + if (beg > end) + addr = beg, beg = end, end = addr; + addr = (char *) siginfo->si_addr; + /* If we're somewhere on stack and too close to + one of its boundaries, most likely this is it. */ + if (beg < addr && addr < end + && (addr - beg < STACK_DANGER_ZONE + || end - addr < STACK_DANGER_ZONE)) + siglongjmp (return_to_command_loop, 1); + } + } + + /* Otherwise we can't do anything with this. */ + deliver_fatal_thread_signal (sig); +} + +/* Return true if we have successfully set up SIGSEGV handler on alternate + stack. Otherwise we just treat SIGSEGV among the rest of fatal signals. */ + +static bool +init_sigsegv (void) +{ + struct sigaction sa; + stack_t ss; + + stack_direction = ((char *) &ss < stack_bottom) ? -1 : 1; + + ss.ss_sp = sigsegv_stack; + ss.ss_size = sizeof (sigsegv_stack); + ss.ss_flags = 0; + if (sigaltstack (&ss, NULL) < 0) + return 0; + + sigfillset (&sa.sa_mask); + sa.sa_sigaction = handle_sigsegv; + sa.sa_flags = SA_SIGINFO | SA_ONSTACK | emacs_sigaction_flags (); + return sigaction (SIGSEGV, &sa, NULL) < 0 ? 0 : 1; +} + +#else /* not HAVE_STACK_OVERFLOW_HANDLING */ + +static bool +init_sigsegv (void) +{ + return 0; +} + +#endif /* HAVE_STACK_OVERFLOW_HANDLING */ + static void deliver_arith_signal (int sig) { @@ -1982,7 +2068,8 @@ init_signals (bool dumping) #ifdef SIGBUS sigaction (SIGBUS, &thread_fatal_action, 0); #endif - sigaction (SIGSEGV, &thread_fatal_action, 0); + if (!init_sigsegv ()) + sigaction (SIGSEGV, &thread_fatal_action, 0); #ifdef SIGSYS sigaction (SIGSYS, &thread_fatal_action, 0); #endif @@ -2370,7 +2457,7 @@ emacs_full_write (int fildes, char const *buf, ptrdiff_t nbyte, { if (errno == EINTR) { - /* I originally used `QUIT' but that might causes files to + /* I originally used `QUIT' but that might cause files to be truncated if you hit C-g in the middle of it. --Stef */ if (process_signals && pending_signals) process_pending_signals (); @@ -3513,3 +3600,208 @@ system_process_attributes (Lisp_Object pid) } #endif /* !defined (WINDOWSNT) */ + +/* Wide character string collation. */ + +#ifdef __STDC_ISO_10646__ +# include +# include + +# if defined HAVE_NEWLOCALE || defined HAVE_SETLOCALE +# include +# endif +# ifndef LC_COLLATE +# define LC_COLLATE 0 +# endif +# ifndef LC_COLLATE_MASK +# define LC_COLLATE_MASK 0 +# endif +# ifndef LC_CTYPE +# define LC_CTYPE 0 +# endif +# ifndef LC_CTYPE_MASK +# define LC_CTYPE_MASK 0 +# endif + +# ifndef HAVE_NEWLOCALE +# undef freelocale +# undef locale_t +# undef newlocale +# undef wcscoll_l +# undef towlower_l +# define freelocale emacs_freelocale +# define locale_t emacs_locale_t +# define newlocale emacs_newlocale +# define wcscoll_l emacs_wcscoll_l +# define towlower_l emacs_towlower_l + +typedef char const *locale_t; + +static locale_t +newlocale (int category_mask, char const *locale, locale_t loc) +{ + return locale; +} + +static void +freelocale (locale_t loc) +{ +} + +static char * +emacs_setlocale (int category, char const *locale) +{ +# ifdef HAVE_SETLOCALE + errno = 0; + char *loc = setlocale (category, locale); + if (loc || errno) + return loc; + errno = EINVAL; +# else + errno = ENOTSUP; +# endif + return 0; +} + +static int +wcscoll_l (wchar_t const *a, wchar_t const *b, locale_t loc) +{ + int result = 0; + char *oldloc = emacs_setlocale (LC_COLLATE, NULL); + int err; + + if (! oldloc) + err = errno; + else + { + USE_SAFE_ALLOCA; + char *oldcopy = SAFE_ALLOCA (strlen (oldloc) + 1); + strcpy (oldcopy, oldloc); + if (! emacs_setlocale (LC_COLLATE, loc)) + err = errno; + else + { + errno = 0; + result = wcscoll (a, b); + err = errno; + if (! emacs_setlocale (LC_COLLATE, oldcopy)) + err = errno; + } + SAFE_FREE (); + } + + errno = err; + return result; +} + +static wint_t +towlower_l (wint_t wc, locale_t loc) +{ + wint_t result = wc; + char *oldloc = emacs_setlocale (LC_CTYPE, NULL); + + if (oldloc) + { + USE_SAFE_ALLOCA; + char *oldcopy = SAFE_ALLOCA (strlen (oldloc) + 1); + strcpy (oldcopy, oldloc); + if (emacs_setlocale (LC_CTYPE, loc)) + { + result = towlower (wc); + emacs_setlocale (LC_COLLATE, oldcopy); + } + SAFE_FREE (); + } + + return result; +} +# endif + +int +str_collate (Lisp_Object s1, Lisp_Object s2, + Lisp_Object locale, Lisp_Object ignore_case) +{ + int res, err; + ptrdiff_t len, i, i_byte; + wchar_t *p1, *p2; + + USE_SAFE_ALLOCA; + + /* Convert byte stream to code points. */ + len = SCHARS (s1); i = i_byte = 0; + SAFE_NALLOCA (p1, 1, len + 1); + while (i < len) + FETCH_STRING_CHAR_ADVANCE (*(p1+i-1), s1, i, i_byte); + *(p1+len) = 0; + + len = SCHARS (s2); i = i_byte = 0; + SAFE_NALLOCA (p2, 1, len + 1); + while (i < len) + FETCH_STRING_CHAR_ADVANCE (*(p2+i-1), s2, i, i_byte); + *(p2+len) = 0; + + if (STRINGP (locale)) + { + locale_t loc = newlocale (LC_COLLATE_MASK | LC_CTYPE_MASK, + SSDATA (locale), 0); + if (!loc) + error ("Invalid locale %s: %s", SSDATA (locale), strerror (errno)); + + if (! NILP (ignore_case)) + for (int i = 1; i < 3; i++) + { + wchar_t *p = (i == 1) ? p1 : p2; + for (; *p; p++) + *p = towlower_l (*p, loc); + } + + errno = 0; + res = wcscoll_l (p1, p2, loc); + err = errno; + freelocale (loc); + } + else + { + if (! NILP (ignore_case)) + for (int i = 1; i < 3; i++) + { + wchar_t *p = (i == 1) ? p1 : p2; + for (; *p; p++) + *p = towlower (*p); + } + + errno = 0; + res = wcscoll (p1, p2); + err = errno; + } +# ifndef HAVE_NEWLOCALE + if (err) + error ("Invalid locale or string for collation: %s", strerror (err)); +# else + if (err) + error ("Invalid string for collation: %s", strerror (err)); +# endif + + SAFE_FREE (); + return res; +} +#endif /* __STDC_ISO_10646__ */ + +#ifdef WINDOWSNT +int +str_collate (Lisp_Object s1, Lisp_Object s2, + Lisp_Object locale, Lisp_Object ignore_case) +{ + + char *loc = STRINGP (locale) ? SSDATA (locale) : NULL; + int res, err = errno; + + errno = 0; + res = w32_compare_strings (SDATA (s1), SDATA (s2), loc, !NILP (ignore_case)); + if (errno) + error ("Invalid string for collation: %s", strerror (errno)); + + errno = err; + return res; +} +#endif /* WINDOWSNT */ diff --git a/src/systime.h b/src/systime.h index a834bce76dc..e0f7eec7977 100644 --- a/src/systime.h +++ b/src/systime.h @@ -86,13 +86,42 @@ extern void set_waiting_for_input (struct timespec *); happen when this files is used outside the src directory). Use GCPRO1 to determine if lisp.h was included. */ #ifdef GCPRO1 + +/* Emacs uses the integer list (HI LO US PS) to represent the time + (HI << LO_TIME_BITS) + LO + US / 1e6 + PS / 1e12. */ +enum { LO_TIME_BITS = 16 }; + +/* A Lisp time (HI LO US PS), sans the cons cells. */ +struct lisp_time +{ + EMACS_INT hi; + int lo, us, ps; +}; + /* defined in editfns.c */ extern Lisp_Object make_lisp_time (struct timespec); extern bool decode_time_components (Lisp_Object, Lisp_Object, Lisp_Object, - Lisp_Object, struct timespec *, double *); + Lisp_Object, struct lisp_time *, double *); +extern struct timespec lisp_to_timespec (struct lisp_time); extern struct timespec lisp_time_argument (Lisp_Object); #endif +#ifndef HAVE_TZALLOC +# undef mktime_z +# undef timezone_t +# undef tzalloc +# undef tzfree +# define mktime_z emacs_mktime_z +# define timezone_t emacs_timezone_t +# define tzalloc emacs_tzalloc +# define tzfree emacs_tzfree +typedef char const *timezone_t; +INLINE timezone_t tzalloc (char const *name) { return name; } +INLINE void tzfree (timezone_t tz) { } +/* Defined in editfns.c. */ +extern time_t mktime_z (timezone_t, struct tm *); +#endif + INLINE_HEADER_END #endif /* EMACS_SYSTIME_H */ diff --git a/src/term.c b/src/term.c index 8c004ccbecb..04f6e3318a0 100644 --- a/src/term.c +++ b/src/term.c @@ -77,7 +77,6 @@ static void tty_turn_off_highlight (struct tty_display_info *); static void tty_show_cursor (struct tty_display_info *); static void tty_hide_cursor (struct tty_display_info *); static void tty_background_highlight (struct tty_display_info *tty); -static struct terminal *get_tty_terminal (Lisp_Object, bool); static void clear_tty_hooks (struct terminal *terminal); static void set_tty_hooks (struct terminal *terminal); static void dissociate_if_controlling_tty (int fd); @@ -91,7 +90,7 @@ static _Noreturn void vfatal (const char *str, va_list ap) #define OUTPUT(tty, a) \ emacs_tputs ((tty), a, \ - FRAME_LINES (XFRAME (selected_frame)) - curY (tty), \ + FRAME_TOTAL_LINES (XFRAME (selected_frame)) - curY (tty), \ cmputc) #define OUTPUT1(tty, a) emacs_tputs ((tty), a, 1, cmputc) @@ -201,7 +200,7 @@ tty_set_terminal_modes (struct terminal *terminal) off the screen, so it won't be overwritten and lost. */ int i; current_tty = tty; - for (i = 0; i < FRAME_LINES (XFRAME (selected_frame)); i++) + for (i = 0; i < FRAME_TOTAL_LINES (XFRAME (selected_frame)); i++) cmputc ('\n'); } @@ -257,7 +256,7 @@ tty_set_terminal_window (struct frame *f, int size) { struct tty_display_info *tty = FRAME_TTY (f); - tty->specified_window = size ? size : FRAME_LINES (f); + tty->specified_window = size ? size : FRAME_TOTAL_LINES (f); if (FRAME_SCROLL_REGION_OK (f)) tty_set_scroll_region (f, 0, tty->specified_window); } @@ -272,9 +271,9 @@ tty_set_scroll_region (struct frame *f, int start, int stop) buf = tparam (tty->TS_set_scroll_region, 0, 0, start, stop - 1, 0, 0); else if (tty->TS_set_scroll_region_1) buf = tparam (tty->TS_set_scroll_region_1, 0, 0, - FRAME_LINES (f), start, - FRAME_LINES (f) - stop, - FRAME_LINES (f)); + FRAME_TOTAL_LINES (f), start, + FRAME_TOTAL_LINES (f) - stop, + FRAME_TOTAL_LINES (f)); else buf = tparam (tty->TS_set_window, 0, 0, start, 0, stop, FRAME_COLS (f)); @@ -446,7 +445,7 @@ tty_clear_to_end (struct frame *f) } else { - for (i = curY (tty); i < FRAME_LINES (f); i++) + for (i = curY (tty); i < FRAME_TOTAL_LINES (f); i++) { cursor_to (f, i, 0); clear_end_of_line (f, FRAME_COLS (f)); @@ -748,7 +747,7 @@ tty_write_glyphs (struct frame *f, struct glyph *string, int len) since that would scroll the whole frame on some terminals. */ if (AutoWrap (tty) - && curY (tty) + 1 == FRAME_LINES (f) + && curY (tty) + 1 == FRAME_TOTAL_LINES (f) && (curX (tty) + len) == FRAME_COLS (f)) len --; if (len <= 0) @@ -820,7 +819,7 @@ tty_write_glyphs_with_face (register struct frame *f, register struct glyph *str since that would scroll the whole frame on some terminals. */ if (AutoWrap (tty) - && curY (tty) + 1 == FRAME_LINES (f) + && curY (tty) + 1 == FRAME_TOTAL_LINES (f) && (curX (tty) + len) == FRAME_COLS (f)) len --; if (len <= 0) @@ -1009,7 +1008,7 @@ tty_ins_del_lines (struct frame *f, int vpos, int n) && vpos + i >= tty->specified_window) return; if (!FRAME_MEMORY_BELOW_FRAME (f) - && vpos + i >= FRAME_LINES (f)) + && vpos + i >= FRAME_TOTAL_LINES (f)) return; if (multi) @@ -1046,7 +1045,7 @@ tty_ins_del_lines (struct frame *f, int vpos, int n) && FRAME_MEMORY_BELOW_FRAME (f) && n < 0) { - cursor_to (f, FRAME_LINES (f) + n, 0); + cursor_to (f, FRAME_TOTAL_LINES (f) + n, 0); clear_to_end (f); } } @@ -1514,8 +1513,7 @@ append_glyph (struct it *it) if (it->bidi_p) { glyph->resolved_level = it->bidi_it.resolved_level; - if ((it->bidi_it.type & 7) != it->bidi_it.type) - emacs_abort (); + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); glyph->bidi_type = it->bidi_it.type; } else @@ -1711,8 +1709,7 @@ append_composite_glyph (struct it *it) if (it->bidi_p) { glyph->resolved_level = it->bidi_it.resolved_level; - if ((it->bidi_it.type & 7) != it->bidi_it.type) - emacs_abort (); + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); glyph->bidi_type = it->bidi_it.type; } else @@ -1796,8 +1793,7 @@ append_glyphless_glyph (struct it *it, int face_id, const char *str) if (it->bidi_p) { glyph->resolved_level = it->bidi_it.resolved_level; - if ((it->bidi_it.type & 7) != it->bidi_it.type) - emacs_abort (); + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); glyph->bidi_type = it->bidi_it.type; } else @@ -2032,11 +2028,9 @@ selected frame's terminal). This function always returns nil if TERMINAL does not refer to a text terminal. */) (Lisp_Object terminal) { - struct terminal *t = get_tty_terminal (terminal, 0); - if (!t) - return Qnil; - else - return t->display_info.tty->TN_max_colors > 0 ? Qt : Qnil; + struct terminal *t = decode_tty_terminal (terminal); + + return (t && t->display_info.tty->TN_max_colors > 0) ? Qt : Qnil; } /* Return the number of supported colors. */ @@ -2049,11 +2043,9 @@ selected frame's terminal). This function always returns 0 if TERMINAL does not refer to a text terminal. */) (Lisp_Object terminal) { - struct terminal *t = get_tty_terminal (terminal, 0); - if (!t) - return make_number (0); - else - return make_number (t->display_info.tty->TN_max_colors); + struct terminal *t = decode_tty_terminal (terminal); + + return make_number (t ? t->display_info.tty->TN_max_colors : 0); } #ifndef DOS_NT @@ -2168,52 +2160,6 @@ set_tty_color_mode (struct tty_display_info *tty, struct frame *f) #endif /* !DOS_NT */ - - -/* Return the tty display object specified by TERMINAL. */ - -static struct terminal * -get_tty_terminal (Lisp_Object terminal, bool throw) -{ - struct terminal *t = get_terminal (terminal, throw); - - if (t && t->type != output_termcap && t->type != output_msdos_raw) - { - if (throw) - error ("Device %d is not a termcap terminal device", t->id); - else - return NULL; - } - - return t; -} - -/* Return an active termcap device that uses the tty device with the - given name. - - This function ignores suspended devices. - - Returns NULL if the named terminal device is not opened. */ - -struct terminal * -get_named_tty (const char *name) -{ - struct terminal *t; - - eassert (name); - - for (t = terminal_list; t; t = t->next_terminal) - { - if ((t->type == output_termcap || t->type == output_msdos_raw) - && !strcmp (t->display_info.tty->name, name) - && TERMINAL_ACTIVE_P (t)) - return t; - } - - return 0; -} - - DEFUN ("tty-type", Ftty_type, Stty_type, 0, 1, 0, doc: /* Return the type of the tty device that TERMINAL uses. Returns nil if TERMINAL is not on a tty device. @@ -2222,15 +2168,10 @@ TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). */) (Lisp_Object terminal) { - struct terminal *t = get_terminal (terminal, 1); + struct terminal *t = decode_tty_terminal (terminal); - if (t->type != output_termcap && t->type != output_msdos_raw) - return Qnil; - - if (t->display_info.tty->type) - return build_string (t->display_info.tty->type); - else - return Qnil; + return (t && t->display_info.tty->type + ? build_string (t->display_info.tty->type) : Qnil); } DEFUN ("controlling-tty-p", Fcontrolling_tty_p, Scontrolling_tty_p, 0, 1, 0, @@ -2241,13 +2182,9 @@ selected frame's terminal). This function always returns nil if TERMINAL is not on a tty device. */) (Lisp_Object terminal) { - struct terminal *t = get_terminal (terminal, 1); + struct terminal *t = decode_tty_terminal (terminal); - if ((t->type != output_termcap && t->type != output_msdos_raw) - || strcmp (t->display_info.tty->name, DEV_TTY) != 0) - return Qnil; - else - return Qt; + return (t && !strcmp (t->display_info.tty->name, DEV_TTY) ? Qt : Qnil); } DEFUN ("tty-no-underline", Ftty_no_underline, Stty_no_underline, 0, 1, 0, @@ -2261,7 +2198,7 @@ selected frame's terminal). This function always returns nil if TERMINAL does not refer to a text terminal. */) (Lisp_Object terminal) { - struct terminal *t = get_terminal (terminal, 1); + struct terminal *t = decode_live_terminal (terminal); if (t->type == output_termcap) t->display_info.tty->TS_enter_underline_mode = 0; @@ -2276,7 +2213,7 @@ does not refer to a text terminal. Otherwise, it returns the top-most frame on the text terminal. */) (Lisp_Object terminal) { - struct terminal *t = get_terminal (terminal, 1); + struct terminal *t = decode_live_terminal (terminal); if (t->type == output_termcap) return t->display_info.tty->top_frame; @@ -2306,11 +2243,11 @@ suspended. A suspended tty may be resumed by calling `resume-tty' on it. */) (Lisp_Object tty) { - struct terminal *t = get_tty_terminal (tty, 1); + struct terminal *t = decode_tty_terminal (tty); FILE *f; if (!t) - error ("Unknown tty device"); + error ("Attempt to suspend a non-text terminal device"); f = t->display_info.tty->input; @@ -2366,15 +2303,15 @@ TTY may be a terminal object, a frame, or nil (meaning the selected frame's terminal). */) (Lisp_Object tty) { - struct terminal *t = get_tty_terminal (tty, 1); + struct terminal *t = decode_tty_terminal (tty); int fd; if (!t) - error ("Unknown tty device"); + error ("Attempt to resume a non-text terminal device"); if (!t->display_info.tty->input) { - if (get_named_tty (t->display_info.tty->name)) + if (get_named_terminal (t->display_info.tty->name)) error ("Cannot resume display while another display is active on the same device"); #ifdef MSDOS @@ -2405,13 +2342,14 @@ frame's terminal). */) struct frame *f = XFRAME (t->display_info.tty->top_frame); int width, height; int old_height = FRAME_COLS (f); - int old_width = FRAME_LINES (f); + int old_width = FRAME_TOTAL_LINES (f); /* Check if terminal/window size has changed while the frame was suspended. */ get_tty_size (fileno (t->display_info.tty->input), &width, &height); if (width != old_width || height != old_height) - change_frame_size (f, width, height - FRAME_MENU_BAR_LINES (f), 0, 0, 0, 0); + change_frame_size (f, width, height - FRAME_MENU_BAR_LINES (f), + 0, 0, 0, 0); SET_FRAME_VISIBLE (XFRAME (t->display_info.tty->top_frame), 1); } @@ -2539,7 +2477,7 @@ term_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window, (*fp)->mouse_moved = 0; *bar_window = Qnil; - *part = 0; + *part = scroll_bar_above_handle; XSETINT (*x, last_mouse_x); XSETINT (*y, last_mouse_y); @@ -2894,7 +2832,7 @@ tty_menu_display (tty_menu *menu, int x, int y, int pn, int *faces, /* Don't try to display more menu items than the console can display using the available screen lines. Exclude the echo area line, as it will be overwritten by the help-echo anyway. */ - int max_items = min (menu->count - first_item, FRAME_LINES (sf) - 1 - y); + int max_items = min (menu->count - first_item, FRAME_TOTAL_LINES (sf) - 1 - y); menu_help_message = NULL; @@ -3190,6 +3128,7 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx, Lisp_Object selectface; int first_item = 0; int col, row; + USE_SAFE_ALLOCA; /* Don't allow non-positive x0 and y0, lest the menu will wrap around the display. */ @@ -3198,7 +3137,7 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx, if (y0 <= 0) y0 = 1; - state = alloca (menu->panecount * sizeof (struct tty_menu_state)); + SAFE_NALLOCA (state, 1, menu->panecount); memset (state, 0, sizeof (*state)); faces[0] = lookup_derived_face (sf, intern ("tty-menu-disabled-face"), @@ -3274,7 +3213,7 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx, { mi_result input_status; int min_y = state[0].y; - int max_y = min (min_y + state[0].menu->count, FRAME_LINES (sf) - 1) - 1; + int max_y = min (min_y + state[0].menu->count, FRAME_TOTAL_LINES (sf) - 1) - 1; input_status = read_menu_input (sf, &x, &y, min_y, max_y, &first_time); if (input_status) @@ -3420,6 +3359,7 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx, discard_mouse_events (); if (!kbd_buffer_events_waiting ()) clear_input_pending (); + SAFE_FREE (); return result; } @@ -3605,6 +3545,7 @@ tty_menu_show (struct frame *f, int x, int y, int menuflags, item_y = y += f->top_pos; /* Create all the necessary panes and their items. */ + USE_SAFE_ALLOCA; maxwidth = maxlines = lines = i = 0; lpane = TTYM_FAILURE; while (i < menu_items_used) @@ -3673,9 +3614,7 @@ tty_menu_show (struct frame *f, int x, int y, int menuflags, if (!NILP (descrip)) { - /* If alloca is fast, use that to make the space, - to reduce gc needs. */ - item_data = (char *) alloca (maxwidth + SBYTES (descrip) + 1); + item_data = SAFE_ALLOCA (maxwidth + SBYTES (descrip) + 1); memcpy (item_data, SSDATA (item_name), SBYTES (item_name)); for (j = SCHARS (item_name); j < maxwidth; j++) item_data[j] = ' '; @@ -3828,6 +3767,7 @@ tty_menu_show (struct frame *f, int x, int y, int menuflags, tty_menu_end: + SAFE_FREE (); unbind_to (specpdl_count, Qnil); return entry; } @@ -3935,7 +3875,11 @@ set_tty_hooks (struct terminal *terminal) terminal->reset_terminal_modes_hook = &tty_reset_terminal_modes; terminal->set_terminal_modes_hook = &tty_set_terminal_modes; terminal->update_end_hook = &tty_update_end; +#ifdef MSDOS + terminal->menu_show_hook = &x_menu_show; +#else terminal->menu_show_hook = &tty_menu_show; +#endif terminal->set_terminal_window_hook = &tty_set_terminal_window; terminal->read_socket_hook = &tty_read_avail_input; /* keyboard.c */ terminal->delete_frame_hook = &tty_free_frame_resources; @@ -4000,7 +3944,7 @@ init_tty (const char *name, const char *terminal_type, bool must_succeed) /* XXX Perhaps this should be made explicit by having init_tty always create a new terminal and separating terminal and frame creation on Lisp level. */ - terminal = get_named_tty (name); + terminal = get_named_terminal (name); if (terminal) return terminal; diff --git a/src/termhooks.h b/src/termhooks.h index 3a72488e6e8..4672861603c 100644 --- a/src/termhooks.h +++ b/src/termhooks.h @@ -28,7 +28,7 @@ along with GNU Emacs. If not, see . */ INLINE_HEADER_BEGIN enum scroll_bar_part { - scroll_bar_nowhere = -1, + scroll_bar_nowhere, scroll_bar_above_handle, scroll_bar_handle, scroll_bar_below_handle, @@ -258,28 +258,36 @@ enum event_kind struct input_event { /* What kind of event was this? */ - enum event_kind kind; + ENUM_BF (event_kind) kind : 16; + + /* Used in scroll back click events. */ + ENUM_BF (scroll_bar_part) part : 16; /* For an ASCII_KEYSTROKE_EVENT and MULTIBYTE_CHAR_KEYSTROKE_EVENT, this is the character. For a NON_ASCII_KEYSTROKE_EVENT, this is the keysym code. - For a mouse event, this is the button number. - For a HELP_EVENT, this is the position within the object - (stored in ARG below) where the help was found. */ - ptrdiff_t code; - enum scroll_bar_part part; + For a mouse event, this is the button number. */ + unsigned code; - int modifiers; /* See enum below for interpretation. */ + /* See enum below for interpretation. */ + unsigned modifiers; + /* One would prefer C integers, but HELP_EVENT uses these to + record frame or window object and a help form, respectively. */ Lisp_Object x, y; + + /* Usually a time as reported by window system-specific event loop. + For a HELP_EVENT, this is the position within the object (stored + in ARG below) where the help was found. */ Time timestamp; /* This field is copied into a vector while the event is in the queue, so that garbage collections won't kill it. */ Lisp_Object frame_or_window; - /* Additional event argument. This is used for TOOL_BAR_EVENTs and - HELP_EVENTs and avoids calling Fcons during signal handling. */ + /* This additional argument is used in attempt to avoid extra consing + when building events. Unfortunately some events have to pass much + more data than it's reasonable to pack directly into this structure. */ Lisp_Object arg; }; @@ -446,7 +454,7 @@ struct terminal void (*delete_glyphs_hook) (struct frame *, int); void (*ring_bell_hook) (struct frame *f); - void (*toggle_invisible_pointer_hook) (struct frame *f, int invisible); + void (*toggle_invisible_pointer_hook) (struct frame *f, bool invisible); void (*reset_terminal_modes_hook) (struct terminal *); void (*set_terminal_modes_hook) (struct terminal *); @@ -491,10 +499,10 @@ struct terminal support overlapping frames, so there's no need to raise or lower anything. - If RAISE_FLAG is non-zero, F is brought to the front, before all other - windows. If RAISE_FLAG is zero, F is sent to the back, behind all other + If RAISE_FLAG, F is brought to the front, before all other + windows. If !RAISE_FLAG, F is sent to the back, behind all other windows. */ - void (*frame_raise_lower_hook) (struct frame *f, int raise_flag); + void (*frame_raise_lower_hook) (struct frame *f, bool raise_flag); /* If the value of the frame parameter changed, this hook is called. For example, if going from fullscreen to not fullscreen this hook @@ -676,7 +684,9 @@ extern struct terminal *terminal_list; (t->type == output_ns ? t->display_info.ns->name_list_element : Qnil) #endif -extern struct terminal *get_terminal (Lisp_Object terminal, bool); +extern struct terminal *decode_live_terminal (Lisp_Object); +extern struct terminal *decode_tty_terminal (Lisp_Object); +extern struct terminal *get_named_terminal (const char *); extern struct terminal *create_terminal (enum output_method, struct redisplay_interface *); extern void delete_terminal (struct terminal *); diff --git a/src/terminal.c b/src/terminal.c index a827677a58d..0cd6a0bf602 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -37,7 +37,9 @@ static int next_terminal_id; /* The initial terminal device, created by initial_term_init. */ struct terminal *initial_terminal; +Lisp_Object Qrun_hook_with_args; static Lisp_Object Qterminal_live_p; +static Lisp_Object Qdelete_terminal_functions; static void delete_initial_terminal (struct terminal *); @@ -194,34 +196,66 @@ ins_del_lines (struct frame *f, int vpos, int n) (*FRAME_TERMINAL (f)->ins_del_lines_hook) (f, vpos, n); } +/* Return the terminal object specified by TERMINAL. TERMINAL may + be a terminal object, a frame, or nil for the terminal device of + the current frame. If TERMINAL is neither from the above or the + resulting terminal object is deleted, return NULL. */ - - -/* Return the terminal object specified by TERMINAL. TERMINAL may be - a terminal object, a frame, or nil for the terminal device of the - current frame. If THROW is false, return NULL for failure, - otherwise throw an error. */ - -struct terminal * -get_terminal (Lisp_Object terminal, bool throw) +static struct terminal * +decode_terminal (Lisp_Object terminal) { - struct terminal *result = NULL; + struct terminal *t; if (NILP (terminal)) terminal = selected_frame; + t = (TERMINALP (terminal) + ? XTERMINAL (terminal) + : FRAMEP (terminal) ? FRAME_TERMINAL (XFRAME (terminal)) : NULL); + return t && t->name ? t : NULL; +} - if (TERMINALP (terminal)) - result = XTERMINAL (terminal); - else if (FRAMEP (terminal)) - result = FRAME_TERMINAL (XFRAME (terminal)); +/* Like above, but throw an error if TERMINAL is not valid or deleted. */ - if (result && !result->name) - result = NULL; +struct terminal * +decode_live_terminal (Lisp_Object terminal) +{ + struct terminal *t = decode_terminal (terminal); - if (result == NULL && throw) + if (!t) wrong_type_argument (Qterminal_live_p, terminal); + return t; +} - return result; +/* Like decode_terminal, but ensure that the resulting terminal object refers + to a text-based terminal device. */ + +struct terminal * +decode_tty_terminal (Lisp_Object terminal) +{ + struct terminal *t = decode_live_terminal (terminal); + + return (t->type == output_termcap || t->type == output_msdos_raw) ? t : NULL; +} + +/* Return an active (not suspended) text-based terminal device that uses + the tty device with the given NAME, or NULL if the named terminal device + is not opened. */ + +struct terminal * +get_named_terminal (const char *name) +{ + struct terminal *t; + + eassert (name); + + for (t = terminal_list; t; t = t->next_terminal) + { + if ((t->type == output_termcap || t->type == output_msdos_raw) + && !strcmp (t->display_info.tty->name, name) + && TERMINAL_ACTIVE_P (t)) + return t; + } + return NULL; } /* Create a new terminal object of TYPE and add it to the terminal list. RIF @@ -308,8 +342,6 @@ delete_terminal (struct terminal *terminal) } } -Lisp_Object Qrun_hook_with_args; -static Lisp_Object Qdelete_terminal_functions; DEFUN ("delete-terminal", Fdelete_terminal, Sdelete_terminal, 0, 2, 0, doc: /* Delete TERMINAL by deleting all frames on it and closing the terminal. TERMINAL may be a terminal object, a frame, or nil (meaning the @@ -319,7 +351,7 @@ Normally, you may not delete a display if all other displays are suspended, but if the second argument FORCE is non-nil, you may do so. */) (Lisp_Object terminal, Lisp_Object force) { - struct terminal *t = get_terminal (terminal, 0); + struct terminal *t = decode_terminal (terminal); if (!t) return Qnil; @@ -380,9 +412,7 @@ sort of output terminal it uses. See the documentation of `framep' for possible return values. */) (Lisp_Object object) { - struct terminal *t; - - t = get_terminal (object, 0); + struct terminal *t = decode_terminal (object); if (!t) return Qnil; @@ -429,8 +459,7 @@ TERMINAL may be a terminal object, a frame, or nil (meaning the selected frame's terminal). */) (Lisp_Object terminal) { - struct terminal *t - = TERMINALP (terminal) ? XTERMINAL (terminal) : get_terminal (terminal, 1); + struct terminal *t = decode_live_terminal (terminal); return t->name ? build_string (t->name) : Qnil; } @@ -467,9 +496,7 @@ TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). */) (Lisp_Object terminal) { - struct terminal *t - = TERMINALP (terminal) ? XTERMINAL (terminal) : get_terminal (terminal, 1); - return Fcopy_alist (t->param_alist); + return Fcopy_alist (decode_live_terminal (terminal)->param_alist); } DEFUN ("terminal-parameter", Fterminal_parameter, Sterminal_parameter, 2, 2, 0, @@ -478,12 +505,8 @@ TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). */) (Lisp_Object terminal, Lisp_Object parameter) { - Lisp_Object value; - struct terminal *t - = TERMINALP (terminal) ? XTERMINAL (terminal) : get_terminal (terminal, 1); CHECK_SYMBOL (parameter); - value = Fcdr (Fassq (parameter, t->param_alist)); - return value; + return Fcdr (Fassq (parameter, decode_live_terminal (terminal)->param_alist)); } DEFUN ("set-terminal-parameter", Fset_terminal_parameter, @@ -495,9 +518,7 @@ TERMINAL can be a terminal object, a frame or nil (meaning the selected frame's terminal). */) (Lisp_Object terminal, Lisp_Object parameter, Lisp_Object value) { - struct terminal *t - = TERMINALP (terminal) ? XTERMINAL (terminal) : get_terminal (terminal, 1); - return store_terminal_param (t, parameter, value); + return store_terminal_param (decode_live_terminal (terminal), parameter, value); } /* Initial frame has no device-dependent output data, but has diff --git a/src/textprop.c b/src/textprop.c index bd09304ba3b..7ecac62be98 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -660,6 +660,7 @@ get_char_property_and_overlay (Lisp_Object position, register Lisp_Object prop, set_buffer_temp (XBUFFER (object)); + USE_SAFE_ALLOCA; GET_OVERLAYS_AT (XINT (position), overlay_vec, noverlays, NULL, 0); noverlays = sort_overlays (overlay_vec, noverlays, w); @@ -674,9 +675,11 @@ get_char_property_and_overlay (Lisp_Object position, register Lisp_Object prop, if (overlay) /* Return the overlay we got the property from. */ *overlay = overlay_vec[noverlays]; + SAFE_FREE (); return tem; } } + SAFE_FREE (); } if (overlay) @@ -1314,9 +1317,11 @@ specify the property to add. If the optional fifth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. */) - (Lisp_Object start, Lisp_Object end, Lisp_Object property, Lisp_Object value, Lisp_Object object) + (Lisp_Object start, Lisp_Object end, Lisp_Object property, + Lisp_Object value, Lisp_Object object) { - Fadd_text_properties (start, end, list2 (property, value), object); + AUTO_LIST2 (properties, property, value); + Fadd_text_properties (start, end, properties, object); return Qnil; } @@ -1357,7 +1362,8 @@ into it. */) (Lisp_Object start, Lisp_Object end, Lisp_Object face, Lisp_Object append, Lisp_Object object) { - add_text_properties_1 (start, end, list2 (Qface, face), object, + AUTO_LIST2 (properties, Qface, face); + add_text_properties_1 (start, end, properties, object, (NILP (append) ? TEXT_PROPERTY_PREPEND : TEXT_PROPERTY_APPEND)); @@ -1906,7 +1912,8 @@ text_property_stickiness (Lisp_Object prop, Lisp_Object pos, Lisp_Object buffer) /* Note this can GC when DEST is a buffer. */ Lisp_Object -copy_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object src, Lisp_Object pos, Lisp_Object dest, Lisp_Object prop) +copy_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object src, + Lisp_Object pos, Lisp_Object dest, Lisp_Object prop) { INTERVAL i; Lisp_Object res; @@ -1959,12 +1966,10 @@ copy_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object src, Lisp_ plist = Fcdr (Fcdr (plist)); } if (! NILP (plist)) - { - /* Must defer modifications to the interval tree in case src - and dest refer to the same string or buffer. */ - stuff = Fcons (list3 (make_number (p), make_number (p + len), plist), - stuff); - } + /* Must defer modifications to the interval tree in case + src and dest refer to the same string or buffer. */ + stuff = Fcons (list3 (make_number (p), make_number (p + len), plist), + stuff); i = next_interval (i); if (!i) @@ -2293,6 +2298,11 @@ verify_interval_modification (struct buffer *buf, } } + if (i->position + LENGTH (i) < end + && (!NILP (BVAR (current_buffer, read_only)) + && NILP (Vinhibit_read_only))) + xsignal1 (Qbuffer_read_only, Fcurrent_buffer ()); + i = next_interval (i); } /* Keep going thru the interval containing the char before END. */ diff --git a/src/unexaix.c b/src/unexaix.c index c97d5cae2a8..fd36e4a73a6 100644 --- a/src/unexaix.c +++ b/src/unexaix.c @@ -55,7 +55,6 @@ what you give them. Help stamp out software-hoarding! */ #include #include #include -#include #include #include #include @@ -134,7 +133,7 @@ unexec (const char *new_name, const char *a_name) { PERROR (a_name); } - if ((new = emacs_open (new_name, O_WRONLY | O_CREAT | O_TRUNC, 0666)) < 0) + if ((new = emacs_open (new_name, O_WRONLY | O_CREAT | O_TRUNC, 0777)) < 0) { PERROR (new_name); } @@ -152,7 +151,6 @@ unexec (const char *new_name, const char *a_name) emacs_close (new); if (a_out >= 0) emacs_close (a_out); - mark_x (new_name); } /* **************************************************************** @@ -466,29 +464,6 @@ copy_sym (int new, int a_out, const char *a_name, const char *new_name) return 0; } -/* **************************************************************** - * mark_x - * - * After successfully building the new a.out, mark it executable - */ -static void -mark_x (const char *name) -{ - struct stat sbuf; - int um; - int new = 0; /* for PERROR */ - - um = umask (777); - umask (um); - if (stat (name, &sbuf) == -1) - { - PERROR (name); - } - sbuf.st_mode |= 0111 & ~um; - if (chmod (name, sbuf.st_mode) == -1) - PERROR (name); -} - static int adjust_lnnoptrs (int writedesc, int readdesc, const char *new_name) { diff --git a/src/unexcoff.c b/src/unexcoff.c index 0e47bdd8656..292c38f7ff7 100644 --- a/src/unexcoff.c +++ b/src/unexcoff.c @@ -97,7 +97,6 @@ struct aouthdr #include #endif /* makedev */ #include -#include #include #include @@ -439,29 +438,6 @@ copy_sym (int new, int a_out, const char *a_name, const char *new_name) return 0; } -/* **************************************************************** - * mark_x - * - * After successfully building the new a.out, mark it executable - */ -static void -mark_x (const char *name) -{ - struct stat sbuf; - int um; - int new = 0; /* for PERROR */ - - um = umask (777); - umask (um); - if (stat (name, &sbuf) == -1) - { - PERROR (name); - } - sbuf.st_mode |= 0111 & ~um; - if (chmod (name, sbuf.st_mode) == -1) - PERROR (name); -} - /* * If the COFF file contains a symbol table and a line number section, @@ -542,7 +518,7 @@ unexec (const char *new_name, const char *a_name) { PERROR (a_name); } - if ((new = emacs_open (new_name, O_WRONLY | O_CREAT | O_TRUNC, 0666)) < 0) + if ((new = emacs_open (new_name, O_WRONLY | O_CREAT | O_TRUNC, 0777)) < 0) { PERROR (new_name); } @@ -560,7 +536,6 @@ unexec (const char *new_name, const char *a_name) emacs_close (new); if (a_out >= 0) emacs_close (a_out); - mark_x (new_name); } #endif /* not CANNOT_DUMP */ diff --git a/src/unexcw.c b/src/unexcw.c index 7636b05a12e..cdeb899fd30 100644 --- a/src/unexcw.c +++ b/src/unexcw.c @@ -34,12 +34,6 @@ extern void report_sheap_usage (int); extern int bss_sbrk_did_unexec; -extern int __malloc_initialized; - -/* emacs symbols that indicate where bss and data end for emacs internals */ -extern char my_endbss[]; -extern char my_edata[]; - /* ** header for Windows executable files */ @@ -233,12 +227,9 @@ fixup_executable (int fd) lseek (fd, (long) (exe_header->section_header[i].s_scnptr), SEEK_SET); assert (ret != -1); - /* force the dumped emacs to reinitialize malloc */ - __malloc_initialized = 0; ret = write (fd, (char *) start_address, my_endbss - (char *) start_address); - __malloc_initialized = 1; assert (ret == (my_endbss - (char *) start_address)); if (debug_unexcw) printf (" .bss, mem start %#lx mem length %d\n", diff --git a/src/unexelf.c b/src/unexelf.c index 0983f8f23ab..34478e0edb7 100644 --- a/src/unexelf.c +++ b/src/unexelf.c @@ -665,7 +665,6 @@ unexec (const char *new_name, const char *old_name) #endif struct stat stat_buf; off_t old_file_size; - int mask; /* Open the old file, allocate a buffer of the right size, and read in the file contents. */ @@ -799,7 +798,7 @@ unexec (const char *new_name, const char *old_name) the image of the new file. Set pointers to various interesting objects. */ - new_file = emacs_open (new_name, O_RDWR | O_CREAT, 0666); + new_file = emacs_open (new_name, O_RDWR | O_CREAT, 0777); if (new_file < 0) fatal ("Can't creat (%s): %s", new_name, strerror (errno)); @@ -1319,13 +1318,4 @@ unexec (const char *new_name, const char *old_name) if (emacs_close (new_file) != 0) fatal ("Can't close (%s): %s", new_name, strerror (errno)); - - if (stat (new_name, &stat_buf) != 0) - fatal ("Can't stat (%s): %s", new_name, strerror (errno)); - - mask = umask (777); - umask (mask); - stat_buf.st_mode |= 0111 & ~mask; - if (chmod (new_name, stat_buf.st_mode) != 0) - fatal ("Can't chmod (%s): %s", new_name, strerror (errno)); } diff --git a/src/unexhp9k800.c b/src/unexhp9k800.c index 55db8071b76..cbf1835b9ee 100644 --- a/src/unexhp9k800.c +++ b/src/unexhp9k800.c @@ -72,7 +72,6 @@ run_time_remap (char *ignored) #undef roundup #define roundup(x,n) (((x) + ((n) - 1)) & ~((n) - 1)) /* n is power of 2 */ -#define min(x,y) (((x) < (y)) ? (x) : (y)) /* Report a fatal error and exit. */ static _Noreturn void diff --git a/src/unexmacosx.c b/src/unexmacosx.c index 8cd80a7a544..89971bb8a77 100644 --- a/src/unexmacosx.c +++ b/src/unexmacosx.c @@ -107,9 +107,6 @@ along with GNU Emacs. If not, see . */ #include #include #include -#if defined (__ppc__) -#include -#endif #ifdef HAVE_MALLOC_MALLOC_H #include #else @@ -826,7 +823,6 @@ copy_data_segment (struct load_command *lc) file. */ if (strncmp (sectp->sectname, SECT_DATA, 16) == 0) { - extern char my_edata[]; unsigned long my_size; /* The __data section is basically dumped from memory. But @@ -857,7 +853,6 @@ copy_data_segment (struct load_command *lc) } else if (strncmp (sectp->sectname, SECT_BSS, 16) == 0) { - extern char *my_endbss_static; unsigned long my_size; sectp->flags = S_REGULAR; @@ -881,6 +876,27 @@ copy_data_segment (struct load_command *lc) if (!unexec_write (header_offset, sectp, sizeof (struct section))) unexec_error ("cannot write section %.16s's header", sectp->sectname); } + else if (strncmp (sectp->sectname, "__bss", 5) == 0 + || strncmp (sectp->sectname, "__pu_bss", 8) == 0) + { + sectp->flags = S_REGULAR; + + /* These sections are produced by GCC 4.6+. + + FIXME: We possibly ought to clear uninitialized local + variables in statically linked libraries like for + SECT_BSS (__bss) above, but setting up the markers we + need in lastfile.c would be rather messy. See + darwin_output_aligned_bss () in gcc/config/darwin.c for + the root of the problem, keeping in mind that the + sections are numbered by their alignment in GCC 4.6, but + by log2(alignment) in GCC 4.7. */ + + if (!unexec_write (sectp->offset, (void *) sectp->addr, sectp->size)) + unexec_error ("cannot copy section %.16s", sectp->sectname); + if (!unexec_write (header_offset, sectp, sizeof (struct section))) + unexec_error ("cannot write section %.16s's header", sectp->sectname); + } else if (strncmp (sectp->sectname, "__la_symbol_ptr", 16) == 0 || strncmp (sectp->sectname, "__nl_symbol_ptr", 16) == 0 || strncmp (sectp->sectname, "__got", 16) == 0 @@ -892,6 +908,7 @@ copy_data_segment (struct load_command *lc) || strncmp (sectp->sectname, "__program_vars", 16) == 0 || strncmp (sectp->sectname, "__mod_init_func", 16) == 0 || strncmp (sectp->sectname, "__mod_term_func", 16) == 0 + || strncmp (sectp->sectname, "__static_data", 16) == 0 || strncmp (sectp->sectname, "__objc_", 7) == 0) { if (!unexec_copy (sectp->offset, old_file_offset, sectp->size)) @@ -1013,17 +1030,8 @@ unrelocate (const char *name, off_t reloff, int nrel, vm_address_t base) name, i, reloc_info.r_type); } else - switch (sc_reloc_info->r_type) - { -#if defined (__ppc__) - case PPC_RELOC_PB_LA_PTR: - /* nothing to do for prebound lazy pointer */ - break; -#endif - default: - unexec_error ("unrelocate: %s:%d cannot handle scattered type = %d", - name, i, sc_reloc_info->r_type); - } + unexec_error ("unrelocate: %s:%d cannot handle scattered type = %d", + name, i, sc_reloc_info->r_type); } if (nrel > 0) @@ -1031,35 +1039,6 @@ unrelocate (const char *name, off_t reloff, int nrel, vm_address_t base) unreloc_count, nrel, name); } -#if __ppc64__ -/* Rebase r_address in the relocation table. */ -static void -rebase_reloc_address (off_t reloff, int nrel, long linkedit_delta, long diff) -{ - int i; - struct relocation_info reloc_info; - struct scattered_relocation_info *sc_reloc_info - = (struct scattered_relocation_info *) &reloc_info; - - for (i = 0; i < nrel; i++, reloff += sizeof (reloc_info)) - { - if (lseek (infd, reloff - linkedit_delta, L_SET) - != reloff - linkedit_delta) - unexec_error ("rebase_reloc_table: cannot seek to reloc_info"); - if (!unexec_read (&reloc_info, sizeof (reloc_info))) - unexec_error ("rebase_reloc_table: cannot read reloc_info"); - - if (sc_reloc_info->r_scattered == 0 - && reloc_info.r_type == GENERIC_RELOC_VANILLA) - { - reloc_info.r_address -= diff; - if (!unexec_write (reloff, &reloc_info, sizeof (reloc_info))) - unexec_error ("rebase_reloc_table: cannot write reloc_info"); - } - } -} -#endif - /* Copy a LC_DYSYMTAB load command from the input file to the output file, adjusting the file offset fields. */ static void @@ -1069,28 +1048,8 @@ copy_dysymtab (struct load_command *lc, long delta) vm_address_t base; #ifdef _LP64 -#if __ppc64__ - { - int i; - - base = 0; - for (i = 0; i < nlc; i++) - if (lca[i]->cmd == LC_SEGMENT) - { - struct segment_command *scp = (struct segment_command *) lca[i]; - - if (scp->vmaddr + scp->vmsize > 0x100000000 - && (scp->initprot & VM_PROT_WRITE) != 0) - { - base = data_segment_scp->vmaddr; - break; - } - } - } -#else /* First writable segment address. */ base = data_segment_scp->vmaddr; -#endif #else /* First segment address in the file (unless MH_SPLIT_SEGS set). */ base = 0; @@ -1116,29 +1075,6 @@ copy_dysymtab (struct load_command *lc, long delta) unexec_error ("cannot write symtab command to header"); curr_header_offset += lc->cmdsize; - -#if __ppc64__ - /* Check if the relocation base needs to be changed. */ - if (base == 0) - { - vm_address_t newbase = 0; - int i; - - for (i = 0; i < num_unexec_regions; i++) - if (unexec_regions[i].range.address + unexec_regions[i].range.size - > 0x100000000) - { - newbase = data_segment_scp->vmaddr; - break; - } - - if (newbase) - { - rebase_reloc_address (dstp->locreloff, dstp->nlocrel, delta, newbase); - rebase_reloc_address (dstp->extreloff, dstp->nextrel, delta, newbase); - } - } -#endif } /* Copy a LC_TWOLEVEL_HINTS load command from the input file to the output @@ -1302,7 +1238,9 @@ dump_it (void) } if (curr_header_offset > text_seg_lowest_offset) - unexec_error ("not enough room for load commands for new __DATA segments"); + unexec_error ("not enough room for load commands for new __DATA segments" + " (increase headerpad_extra in configure.in to at least %lX)", + num_unexec_regions * sizeof (struct segment_command)); printf ("%ld unused bytes follow Mach-O header\n", text_seg_lowest_offset - curr_header_offset); @@ -1329,7 +1267,7 @@ unexec (const char *outfile, const char *infile) unexec_error ("cannot open input file `%s'", infile); } - outfd = emacs_open (outfile, O_WRONLY | O_TRUNC | O_CREAT, 0755); + outfd = emacs_open (outfile, O_WRONLY | O_TRUNC | O_CREAT, 0777); if (outfd < 0) { emacs_close (infd); diff --git a/src/unexw32.c b/src/unexw32.c index 7cbd95a46fe..5c1c1f3f391 100644 --- a/src/unexw32.c +++ b/src/unexw32.c @@ -43,19 +43,11 @@ PIMAGE_NT_HEADERS extern BOOL ctrl_c_handler (unsigned long type); extern char my_begdata[]; -extern char my_edata[]; extern char my_begbss[]; -extern char my_endbss[]; extern char *my_begbss_static; -extern char *my_endbss_static; #include "w32heap.h" -#undef min -#undef max -#define min(x, y) (((x) < (y)) ? (x) : (y)) -#define max(x, y) (((x) > (y)) ? (x) : (y)) - /* Basically, our "initialized" flag. */ BOOL using_dynamic_heap = FALSE; diff --git a/src/vm-limit.c b/src/vm-limit.c index 308613f7eb4..015f3ee2111 100644 --- a/src/vm-limit.c +++ b/src/vm-limit.c @@ -51,6 +51,15 @@ char data_start[1] = { 1 }; # endif #endif +/* From gmalloc.c. */ +extern void (* __after_morecore_hook) (void); +extern void *(*__morecore) (ptrdiff_t); + +/* From ralloc.c. */ +#ifdef REL_ALLOC +extern void *(*real_morecore) (ptrdiff_t); +#endif + /* Level number of warnings already issued. 0 -- no warnings issued. @@ -130,12 +139,9 @@ ret_lim_data (void) static void check_memory_limits (void) { -#ifdef REL_ALLOC - extern void *(*real_morecore) (ptrdiff_t); -#else +#ifndef REL_ALLOC void *(*real_morecore) (ptrdiff_t) = 0; #endif - extern void *(*__morecore) (ptrdiff_t); char *cp; size_t five_percent; @@ -203,8 +209,6 @@ check_memory_limits (void) void memory_warnings (void *start, void (*warnfun) (const char *)) { - extern void (* __after_morecore_hook) (void); /* From gmalloc.c */ - data_space_start = start ? start : data_start; warn_function = warnfun; diff --git a/src/w16select.c b/src/w16select.c index c229ba5816a..2403a9be1e0 100644 --- a/src/w16select.c +++ b/src/w16select.c @@ -625,9 +625,9 @@ DEFUN ("w16-get-clipboard-data", Fw16_get_clipboard_data, Sw16_get_clipboard_dat return (ret); } -/* Support checking for a clipboard selection. */ +/* Support checking for a clipboard selection. */ -DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p, +DEFUN ("w16-selection-exists-p", Fw16_selection_exists_p, Sw16_selection_exists_p, 0, 2, 0, doc: /* Whether there is an owner for the given X selection. SELECTION should be the name of the selection in question, typically @@ -677,7 +677,7 @@ syms_of_win16select (void) { defsubr (&Sw16_set_clipboard_data); defsubr (&Sw16_get_clipboard_data); - defsubr (&Sx_selection_exists_p); + defsubr (&Sw16_selection_exists_p); DEFVAR_LISP ("selection-coding-system", Vselection_coding_system, doc: /* Coding system for communicating with other programs. diff --git a/src/w32.c b/src/w32.c index 7cb9d8960c5..8d8f536ca40 100644 --- a/src/w32.c +++ b/src/w32.c @@ -72,7 +72,7 @@ along with GNU Emacs. If not, see . */ #include #include -/* MinGW64 (_W64) defines these in its _mingw.h. */ +/* MinGW64 defines these in its _mingw.h. */ #ifndef _ANONYMOUS_UNION # define _ANONYMOUS_UNION #endif @@ -151,7 +151,7 @@ typedef struct _PROCESS_MEMORY_COUNTERS_EX { #define SDDL_REVISION_1 1 #endif /* SDDL_REVISION_1 */ -#if defined(_MSC_VER) || defined(_W64) +#if defined(_MSC_VER) || defined(MINGW_W64) /* MSVC and MinGW64 don't provide the definition of REPARSE_DATA_BUFFER and the associated macros, except on ntifs.h, which cannot be included because it triggers conflicts with other @@ -309,6 +309,8 @@ static BOOL g_b_init_set_named_security_info_w; static BOOL g_b_init_set_named_security_info_a; static BOOL g_b_init_get_adapters_info; +BOOL g_b_init_compare_string_w; + /* BEGIN: Wrapper functions around OpenProcessToken and other functions in advapi32.dll that are only @@ -2292,7 +2294,7 @@ get_long_basename (char * name, char * buf, int size) /* Get long name for file, if possible (assumed to be absolute). */ BOOL -w32_get_long_filename (char * name, char * buf, int size) +w32_get_long_filename (const char * name, char * buf, int size) { char * o = buf; char * p; @@ -2343,7 +2345,7 @@ w32_get_long_filename (char * name, char * buf, int size) } unsigned int -w32_get_short_filename (char * name, char * buf, int size) +w32_get_short_filename (const char * name, char * buf, int size) { if (w32_unicode_filenames) { @@ -2389,6 +2391,8 @@ ansi_encode_filename (Lisp_Object filename) dostounix_filename (shortname); encoded_filename = build_string (shortname); } + else + encoded_filename = build_unibyte_string (fname); } else encoded_filename = build_unibyte_string (fname); @@ -7718,15 +7722,15 @@ fcntl (int s, int cmd, int options) if (cmd == F_DUPFD_CLOEXEC) return sys_dup (s); - if (winsock_lib == NULL) - { - errno = ENETDOWN; - return -1; - } - check_errno (); if (fd_info[s].flags & FILE_SOCKET) { + if (winsock_lib == NULL) + { + errno = ENETDOWN; + return -1; + } + if (cmd == F_SETFL && options == O_NONBLOCK) { unsigned long nblock = 1; @@ -7743,13 +7747,36 @@ fcntl (int s, int cmd, int options) return SOCKET_ERROR; } } + else if ((fd_info[s].flags & (FILE_PIPE | FILE_WRITE)) + == (FILE_PIPE | FILE_WRITE)) + { + /* Force our writes to pipes be non-blocking. */ + if (cmd == F_SETFL && options == O_NONBLOCK) + { + HANDLE h = (HANDLE)_get_osfhandle (s); + DWORD pipe_mode = PIPE_NOWAIT; + + if (!SetNamedPipeHandleState (h, &pipe_mode, NULL, NULL)) + { + DebPrint (("SetNamedPipeHandleState: %lu\n", GetLastError ())); + return SOCKET_ERROR; + } + fd_info[s].flags |= FILE_NDELAY; + return 0; + } + else + { + errno = EINVAL; + return SOCKET_ERROR; + } + } errno = ENOTSOCK; return SOCKET_ERROR; } /* Shadow main io functions: we need to handle pipes and sockets more - intelligently, and implement non-blocking mode as well. */ + intelligently. */ int sys_close (int fd) @@ -8234,11 +8261,11 @@ sys_read (int fd, char * buffer, unsigned int count) /* From w32xfns.c */ extern HANDLE interrupt_handle; -/* For now, don't bother with a non-blocking mode */ int sys_write (int fd, const void * buffer, unsigned int count) { int nchars; + USE_SAFE_ALLOCA; if (fd < 0) { @@ -8257,30 +8284,33 @@ sys_write (int fd, const void * buffer, unsigned int count) /* Perform text mode translation if required. */ if ((fd_info[fd].flags & FILE_BINARY) == 0) { - char * tmpbuf = alloca (count * 2); - unsigned char * src = (void *)buffer; - unsigned char * dst = tmpbuf; + char * tmpbuf; + const unsigned char * src = buffer; + unsigned char * dst; int nbytes = count; + SAFE_NALLOCA (tmpbuf, 2, count); + dst = tmpbuf; + while (1) { unsigned char *next; - /* copy next line or remaining bytes */ + /* Copy next line or remaining bytes. */ next = _memccpy (dst, src, '\n', nbytes); if (next) { - /* copied one line ending with '\n' */ + /* Copied one line ending with '\n'. */ int copied = next - dst; nbytes -= copied; src += copied; - /* insert '\r' before '\n' */ + /* Insert '\r' before '\n'. */ next[-1] = '\r'; next[0] = '\n'; dst = next + 1; count++; } else - /* copied remaining partial line -> now finished */ + /* Copied remaining partial line -> now finished. */ break; } buffer = tmpbuf; @@ -8294,31 +8324,44 @@ sys_write (int fd, const void * buffer, unsigned int count) HANDLE wait_hnd[2] = { interrupt_handle, ovl->hEvent }; DWORD active = 0; + /* This is async (a.k.a. "overlapped") I/O, so the return value + of FALSE from WriteFile means either an error or the output + will be completed asynchronously (ERROR_IO_PENDING). */ if (!WriteFile (hnd, buffer, count, (DWORD*) &nchars, ovl)) { if (GetLastError () != ERROR_IO_PENDING) { errno = EIO; - return -1; + nchars = -1; } - if (detect_input_pending ()) - active = MsgWaitForMultipleObjects (2, wait_hnd, FALSE, INFINITE, - QS_ALLINPUT); else - active = WaitForMultipleObjects (2, wait_hnd, FALSE, INFINITE); - if (active == WAIT_OBJECT_0) - { /* User pressed C-g, cancel write, then leave. Don't bother - cleaning up as we may only get stuck in buggy drivers. */ - PurgeComm (hnd, PURGE_TXABORT | PURGE_TXCLEAR); - CancelIo (hnd); - errno = EIO; - return -1; - } - if (active == WAIT_OBJECT_0 + 1 - && !GetOverlappedResult (hnd, ovl, (DWORD*) &nchars, TRUE)) { - errno = EIO; - return -1; + /* Wait for the write to complete, and watch C-g while + at that. */ + if (detect_input_pending ()) + active = MsgWaitForMultipleObjects (2, wait_hnd, FALSE, + INFINITE, QS_ALLINPUT); + else + active = WaitForMultipleObjects (2, wait_hnd, FALSE, INFINITE); + switch (active) + { + case WAIT_OBJECT_0: + /* User pressed C-g, cancel write, then leave. + Don't bother cleaning up as we may only get stuck + in buggy drivers. */ + PurgeComm (hnd, PURGE_TXABORT | PURGE_TXCLEAR); + CancelIo (hnd); + errno = EIO; /* Why not EINTR? */ + nchars = -1; + break; + case WAIT_OBJECT_0 + 1: + if (!GetOverlappedResult (hnd, ovl, (DWORD*) &nchars, TRUE)) + { + errno = EIO; + nchars = -1; + } + break; + } } } } @@ -8369,6 +8412,22 @@ sys_write (int fd, const void * buffer, unsigned int count) nchars += n; if (n < 0) { + /* When there's no buffer space in a pipe that is in the + non-blocking mode, _write returns ENOSPC. We return + EAGAIN instead, which should trigger the logic in + send_process that enters waiting loop and calls + wait_reading_process_output to allow process input to + be accepted during the wait. Those calls to + wait_reading_process_output allow sys_select to + notice when process input becomes available, thus + avoiding deadlock whereby each side of the pipe is + blocked on write, waiting for the other party to read + its end of the pipe. */ + if (errno == ENOSPC + && fd < MAXDESC + && ((fd_info[fd].flags & (FILE_PIPE | FILE_NDELAY)) + == (FILE_PIPE | FILE_NDELAY))) + errno = EAGAIN; nchars = n; break; } @@ -8379,6 +8438,7 @@ sys_write (int fd, const void * buffer, unsigned int count) } } + SAFE_FREE (); return nchars; } @@ -9068,6 +9128,7 @@ globals_of_w32 (void) g_b_init_set_named_security_info_w = 0; g_b_init_set_named_security_info_a = 0; g_b_init_get_adapters_info = 0; + g_b_init_compare_string_w = 0; num_of_processors = 0; /* The following sets a handler for shutdown notifications for console apps. This actually applies to Emacs in both console and diff --git a/src/w32.h b/src/w32.h index 94f7a962833..e0aedcbffa2 100644 --- a/src/w32.h +++ b/src/w32.h @@ -144,10 +144,10 @@ extern char * w32_strerror (int error_no); extern int w32_valid_pointer_p (void *, int); /* Get long (aka "true") form of file name, if it exists. */ -extern BOOL w32_get_long_filename (char * name, char * buf, int size); +extern BOOL w32_get_long_filename (const char * name, char * buf, int size); /* Get the short (a.k.a. "8+3") form of a file name. */ -extern unsigned int w32_get_short_filename (char *, char *, int); +extern unsigned int w32_get_short_filename (const char *, char *, int); /* Prepare our standard handles for proper inheritance by child processes. */ extern void prepare_standard_handles (int in, int out, @@ -210,6 +210,9 @@ extern int sys_link (const char *, const char *); extern int w32_memory_info (unsigned long long *, unsigned long long *, unsigned long long *, unsigned long long *); +/* Compare 2 UTF-8 strings in locale-dependent fashion. */ +extern int w32_compare_strings (const char *, const char *, char *, int); + #ifdef HAVE_GNUTLS #include diff --git a/src/w32console.c b/src/w32console.c index 98f68145191..82a7c041900 100644 --- a/src/w32console.c +++ b/src/w32console.c @@ -118,7 +118,7 @@ static void w32con_clear_to_end (struct frame *f) { w32con_clear_end_of_line (f, FRAME_COLS (f) - 1); - w32con_ins_del_lines (f, cursor_coords.Y, FRAME_LINES (f) - cursor_coords.Y - 1); + w32con_ins_del_lines (f, cursor_coords.Y, FRAME_TOTAL_LINES (f) - cursor_coords.Y - 1); } /* Clear the frame. */ @@ -133,7 +133,7 @@ w32con_clear_frame (struct frame *f) GetConsoleScreenBufferInfo (GetStdHandle (STD_OUTPUT_HANDLE), &info); /* Remember that the screen buffer might be wider than the window. */ - n = FRAME_LINES (f) * info.dwSize.X; + n = FRAME_TOTAL_LINES (f) * info.dwSize.X; dest.X = dest.Y = 0; FillConsoleOutputAttribute (cur_screen, char_attr_normal, n, dest, &r); @@ -175,18 +175,18 @@ w32con_ins_del_lines (struct frame *f, int vpos, int n) if (n < 0) { scroll.Top = vpos - n; - scroll.Bottom = FRAME_LINES (f); + scroll.Bottom = FRAME_TOTAL_LINES (f); dest.Y = vpos; } else { scroll.Top = vpos; - scroll.Bottom = FRAME_LINES (f) - n; + scroll.Bottom = FRAME_TOTAL_LINES (f) - n; dest.Y = vpos + n; } clip.Top = clip.Left = scroll.Left = 0; clip.Right = scroll.Right = FRAME_COLS (f); - clip.Bottom = FRAME_LINES (f); + clip.Bottom = FRAME_TOTAL_LINES (f); dest.X = 0; diff --git a/src/w32fns.c b/src/w32fns.c index ac0e693e1c0..17633708049 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -263,9 +263,9 @@ static unsigned int sound_type = 0xFFFFFFFF; the first display on the list. */ struct w32_display_info * -check_x_display_info (Lisp_Object frame) +check_x_display_info (Lisp_Object object) { - if (NILP (frame)) + if (NILP (object)) { struct frame *sf = XFRAME (selected_frame); @@ -274,14 +274,23 @@ check_x_display_info (Lisp_Object frame) else return &one_w32_display_info; } - else if (STRINGP (frame)) - return x_display_info_for_name (frame); + else if (TERMINALP (object)) + { + struct terminal *t = decode_live_terminal (object); + + if (t->type != output_w32) + error ("Terminal %d is not a W32 display", t->id); + + return t->display_info.w32; + } + else if (STRINGP (object)) + return x_display_info_for_name (object); else { struct frame *f; - CHECK_LIVE_FRAME (frame); - f = XFRAME (frame); + CHECK_LIVE_FRAME (object); + f = XFRAME (object); if (! FRAME_W32_P (f)) error ("Non-W32 frame used"); return FRAME_DISPLAY_INFO (f); @@ -1636,7 +1645,7 @@ x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldva if (FRAME_X_WINDOW (f) != 0) { - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qinternal_border_width); if (FRAME_VISIBLE_P (f)) x_clear_under_internal_border (f); @@ -1682,7 +1691,7 @@ x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) of the outer rectangle (including decorations) unchanged, and a second time because we want to keep the height of the inner rectangle (without the decorations unchanged). */ - adjust_frame_size (f, -1, -1, 2, 1); + adjust_frame_size (f, -1, -1, 2, 1, Qmenu_bar_lines); /* Not sure whether this is needed. */ x_clear_under_internal_border (f); @@ -1732,11 +1741,7 @@ x_change_tool_bar_height (struct frame *f, int height) /* Recalculate tool bar and frame text sizes. */ FRAME_TOOL_BAR_HEIGHT (f) = height; FRAME_TOOL_BAR_LINES (f) = lines; - FRAME_TEXT_HEIGHT (f) - = FRAME_PIXEL_TO_TEXT_HEIGHT (f, FRAME_PIXEL_HEIGHT (f)); - FRAME_LINES (f) - = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, FRAME_PIXEL_HEIGHT (f)); - /* Store the `tool-bar-lines' and `height' frame parameters. */ + /* Store `tool-bar-lines' and `height' frame parameters. */ store_frame_param (f, Qtool_bar_lines, make_number (lines)); store_frame_param (f, Qheight, make_number (FRAME_LINES (f))); @@ -1752,8 +1757,13 @@ x_change_tool_bar_height (struct frame *f, int height) /* Recalculate toolbar height. */ f->n_tool_bar_rows = 0; - adjust_frame_size (f, -1, -1, 4, 0); + adjust_frame_size (f, -1, -1, (old_height == 0 || height == 0) ? 2 : 4, 0, + Qtool_bar_lines); + /* adjust_frame_size might not have done anything, garbage frame + here. */ + adjust_frame_glyphs (f); + SET_FRAME_GARBAGED (f); if (FRAME_X_WINDOW (f)) x_clear_under_internal_border (f); } @@ -1956,13 +1966,12 @@ w32_createhscrollbar (struct frame *f, struct scroll_bar * bar) } static void -w32_createwindow (struct frame *f) +w32_createwindow (struct frame *f, int *coords) { HWND hwnd; RECT rect; - Lisp_Object top = Qunbound; - Lisp_Object left = Qunbound; - struct w32_display_info *dpyinfo = &one_w32_display_info; + int top; + int left; rect.left = rect.top = 0; rect.right = FRAME_PIXEL_WIDTH (f); @@ -1977,25 +1986,21 @@ w32_createwindow (struct frame *f) if (f->size_hint_flags & USPosition || f->size_hint_flags & PPosition) { - XSETINT (left, f->left_pos); - XSETINT (top, f->top_pos); + left = f->left_pos; + top = f->top_pos; } - else if (EQ (left, Qunbound) && EQ (top, Qunbound)) + else { - /* When called with RES_TYPE_NUMBER, w32_get_arg will return zero - for anything that is not a number and is not Qunbound. */ - left = x_get_arg (dpyinfo, Qnil, Qleft, "left", "Left", RES_TYPE_NUMBER); - top = x_get_arg (dpyinfo, Qnil, Qtop, "top", "Top", RES_TYPE_NUMBER); + left = coords[0]; + top = coords[1]; } FRAME_W32_WINDOW (f) = hwnd = CreateWindow (EMACS_CLASS, f->namebuf, f->output_data.w32->dwStyle | WS_CLIPCHILDREN, - EQ (left, Qunbound) ? CW_USEDEFAULT : XINT (left), - EQ (top, Qunbound) ? CW_USEDEFAULT : XINT (top), - rect.right - rect.left, - rect.bottom - rect.top, + left, top, + rect.right - rect.left, rect.bottom - rect.top, NULL, NULL, hinst, @@ -2516,7 +2521,8 @@ w32_msg_pump (deferred_msg * msg_buf) the patch for XP is not publicly available until XP SP3, and older versions will never be patched. */ CoInitialize (NULL); - w32_createwindow ((struct frame *) msg.wParam); + w32_createwindow ((struct frame *) msg.wParam, + (int *) msg.lParam); if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) emacs_abort (); break; @@ -4136,8 +4142,25 @@ static void my_create_window (struct frame * f) { MSG msg; + static int coords[2]; + Lisp_Object left, top; + struct w32_display_info *dpyinfo = &one_w32_display_info; - if (!PostThreadMessage (dwWindowsThreadId, WM_EMACS_CREATEWINDOW, (WPARAM)f, 0)) + /* When called with RES_TYPE_NUMBER, x_get_arg will return zero for + anything that is not a number and is not Qunbound. */ + left = x_get_arg (dpyinfo, Qnil, Qleft, "left", "Left", RES_TYPE_NUMBER); + top = x_get_arg (dpyinfo, Qnil, Qtop, "top", "Top", RES_TYPE_NUMBER); + if (EQ (left, Qunbound)) + coords[0] = CW_USEDEFAULT; + else + coords[0] = XINT (left); + if (EQ (top, Qunbound)) + coords[1] = CW_USEDEFAULT; + else + coords[1] = XINT (top); + + if (!PostThreadMessage (dwWindowsThreadId, WM_EMACS_CREATEWINDOW, + (WPARAM)f, (LPARAM)coords)) emacs_abort (); GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE); } @@ -4569,7 +4592,7 @@ This function is an internal primitive--use `make-frame' instead. */) NULL, NULL, RES_TYPE_NUMBER); x_default_parameter (f, parameters, Qvertical_scroll_bars, Qright, "verticalScrollBars", "ScrollBars", RES_TYPE_SYMBOL); - x_default_parameter (f, parameters, Qhorizontal_scroll_bars, Qbottom, + x_default_parameter (f, parameters, Qhorizontal_scroll_bars, Qnil, "horizontalScrollBars", "ScrollBars", RES_TYPE_SYMBOL); /* Also do the stuff which must be set before the window exists. */ @@ -4607,7 +4630,7 @@ This function is an internal primitive--use `make-frame' instead. */) had one frame line vs one toolbar line which left us with a zero root window height which was obviously wrong as well ... */ adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f), - FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 5, 1); + FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 5, 1, Qnil); /* The X resources controlling the menu-bar and tool-bar are processed specially at startup, and reflected in the mode @@ -4672,10 +4695,10 @@ This function is an internal primitive--use `make-frame' instead. */) x_default_parameter (f, parameters, Qscroll_bar_height, Qnil, "scrollBarHeight", "ScrollBarHeight", RES_TYPE_NUMBER); - /* Consider frame official, now. */ - f->official = true; + /* Allow x_set_window_size, now. */ + f->can_x_set_window_size = true; - adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f), 0, 1); + adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f), 0, 1, Qnil); /* Tell the server what size and position, etc, we want, and how badly we want them. This should be done after we have the menu @@ -5012,7 +5035,7 @@ If omitted or nil, that stands for the selected frame's display. */) return Qnil; } -static BOOL CALLBACK +static BOOL CALLBACK ALIGN_STACK w32_monitor_enum (HMONITOR monitor, HDC hdc, RECT *rcMonitor, LPARAM dwData) { Lisp_Object *monitor_list = (Lisp_Object *) dwData; @@ -5339,7 +5362,7 @@ terminate Emacs if we can't open the connection. { char basename[ MAX_PATH ], *str; - strcpy (basename, SDATA (Vinvocation_name)); + lispstpcpy (basename, Vinvocation_name); str = strrchr (basename, '.'); if (str) *str = 0; Vinvocation_name = build_string (basename); @@ -5640,7 +5663,8 @@ x_create_tip_frame (struct w32_display_info *dpyinfo, f->wants_modeline = 0; XSETFRAME (frame, f); - buffer = Fget_buffer_create (build_string (" *tip*")); + AUTO_STRING (tip, " *tip*"); + buffer = Fget_buffer_create (tip); /* Use set_window_buffer instead of Fset_window_buffer (see discussion of bug#11984, bug#12025, bug#12026). */ set_window_buffer (FRAME_ROOT_WINDOW (f), buffer, 0, 0); @@ -5774,7 +5798,7 @@ x_create_tip_frame (struct w32_display_info *dpyinfo, SET_FRAME_COLS (f, 0); SET_FRAME_LINES (f, 0); adjust_frame_size (f, width * FRAME_COLUMN_WIDTH (f), - height * FRAME_LINE_HEIGHT (f), 0, 1); + height * FRAME_LINE_HEIGHT (f), 0, 1, Qnil); /* Add `tooltip' frame parameter's default value. */ if (NILP (Fframe_parameter (frame, Qtooltip))) @@ -5819,7 +5843,7 @@ x_create_tip_frame (struct w32_display_info *dpyinfo, below. And the frame needs to be on Vframe_list or making it visible won't work. */ Vframe_list = Fcons (frame, Vframe_list); - f->official = true; + f->can_x_set_window_size = true; /* Setting attributes of faces of the tooltip frame from resources and similar will increment face_change_count, which leads to the @@ -6228,8 +6252,8 @@ Text larger than the specified size is clipped. */) } /* Draw into the window. */ - w->must_be_updated_p = 1; - update_single_window (w, 1); + w->must_be_updated_p = true; + update_single_window (w); unblock_input (); @@ -6987,7 +7011,14 @@ a ShowWindow flag: Lisp_Object absdoc_encoded = ENCODE_FILE (absdoc); if (faccessat (AT_FDCWD, SSDATA (absdoc_encoded), F_OK, AT_EACCESS) == 0) - document = absdoc_encoded; + { + /* ShellExecute fails if DOCUMENT is a UNC with forward + slashes (expand-file-name above converts all backslashes + to forward slashes). Now that we know DOCUMENT is a + file, we can mirror all forward slashes into backslashes. */ + unixtodos_filename (SSDATA (absdoc_encoded)); + document = absdoc_encoded; + } else document = ENCODE_FILE (document); } @@ -7343,6 +7374,37 @@ This is a direct interface to the Windows API FindWindow function. */) return Qt; } +DEFUN ("w32-frame-menu-bar-size", Fw32_frame_menu_bar_size, Sw32_frame_menu_bar_size, 0, 1, 0, + doc: /* Return sizes of menu bar on frame FRAME. +The return value is a list of four elements: The current width and +height of FRAME's menu bar in pixels, the height of one menu bar line in +a wrapped menu bar in pixels, and the height of a single line menu bar +in pixels. + +If FRAME is omitted or nil, the selected frame is used. */) + (Lisp_Object frame) +{ + struct frame *f = decode_any_frame (frame); + MENUBARINFO menu_bar; + int width, height, single_height, wrapped_height; + + block_input (); + + single_height = GetSystemMetrics (SM_CYMENU); + wrapped_height = GetSystemMetrics (SM_CYMENUSIZE); + menu_bar.cbSize = sizeof (menu_bar); + menu_bar.rcBar.right = menu_bar.rcBar.left = 0; + menu_bar.rcBar.top = menu_bar.rcBar.bottom = 0; + GetMenuBarInfo (FRAME_W32_WINDOW (f), 0xFFFFFFFD, 0, &menu_bar); + width = menu_bar.rcBar.right - menu_bar.rcBar.left; + height = menu_bar.rcBar.bottom - menu_bar.rcBar.top; + + unblock_input (); + + return list4 (make_number (width), make_number (height), + make_number (wrapped_height), make_number (single_height)); +} + DEFUN ("w32-frame-rect", Fw32_frame_rect, Sw32_frame_rect, 0, 2, 0, doc: /* Return boundary rectangle of FRAME in screen coordinates. FRAME must be a live frame and defaults to the selected one. @@ -7357,15 +7419,131 @@ title bar and decorations. */) struct frame *f = decode_live_frame (frame); RECT rect; + block_input (); + if (!NILP (client)) GetClientRect (FRAME_W32_WINDOW (f), &rect); else GetWindowRect (FRAME_W32_WINDOW (f), &rect); + unblock_input (); + return list4 (make_number (rect.left), make_number (rect.top), make_number (rect.right), make_number (rect.bottom)); } +DEFUN ("x-frame-geometry", Fx_frame_geometry, Sx_frame_geometry, 0, 1, 0, + doc: /* Return geometric attributes of frame FRAME. +FRAME must be a live frame and defaults to the selected one. + +The return value is an association list containing the following +elements (all size values are in pixels). + +- `frame-outer-size' is a cons of the outer width and height of FRAME. + The outer size includes the title bar and the external borders as well + as any menu and/or tool bar of frame. + +- `border' is a cons of the horizontal and vertical width of FRAME's + external borders. + +- `title-bar-height' is the height of the title bar of FRAME. + +- `menu-bar-external' if `t' means the menu bar is by default external + (not included in the inner size of FRAME). + +- `menu-bar-size' is a cons of the width and height of the menu bar of + FRAME. + +- `tool-bar-external' if `t' means the tool bar is by default external + (not included in the inner size of FRAME). + +- `tool-bar-side' tells tells on which side the tool bar on FRAME is by + default and can be one of `left', `top', `right' or `bottom'. + +- `tool-bar-size' is a cons of the width and height of the tool bar of + FRAME. + +- `frame-inner-size' is a cons of the inner width and height of FRAME. + This excludes FRAME's title bar and external border as well as any + external menu and/or tool bar. */) + (Lisp_Object frame) +{ + struct frame *f = decode_live_frame (frame); + Lisp_Object geometry = Qnil; + RECT frame_outer_edges, frame_inner_edges; + MENUBARINFO menu_bar; + int border_width, border_height, title_height; + int single_bar_height, wrapped_bar_height, menu_bar_height; + Lisp_Object fullscreen = Fframe_parameter (frame, Qfullscreen); + + block_input (); + + /* Outer frame rectangle, including outer borders and title bar. */ + GetWindowRect (FRAME_W32_WINDOW (f), &frame_outer_edges); + /* Inner frame rectangle, excluding borders and title bar. */ + GetClientRect (FRAME_W32_WINDOW (f), &frame_inner_edges); + /* Outer border. */ + border_width = GetSystemMetrics (SM_CXFRAME); + border_height = GetSystemMetrics (SM_CYFRAME); + /* Title bar. */ + title_height = GetSystemMetrics (SM_CYCAPTION); + /* Menu bar. */ + menu_bar.cbSize = sizeof (menu_bar); + menu_bar.rcBar.right = menu_bar.rcBar.left = 0; + menu_bar.rcBar.top = menu_bar.rcBar.bottom = 0; + GetMenuBarInfo (FRAME_W32_WINDOW (f), 0xFFFFFFFD, 0, &menu_bar); + single_bar_height = GetSystemMetrics (SM_CYMENU); + wrapped_bar_height = GetSystemMetrics (SM_CYMENUSIZE); + unblock_input (); + + menu_bar_height = menu_bar.rcBar.bottom - menu_bar.rcBar.top; + /* Fix menu bar height reported by GetMenuBarInfo. */ + if (menu_bar_height > single_bar_height) + /* A wrapped menu bar. */ + menu_bar_height += single_bar_height - wrapped_bar_height; + else if (menu_bar_height > 0) + /* A single line menu bar. */ + menu_bar_height = single_bar_height; + + return + listn (CONSTYPE_PURE, 10, + Fcons (Qframe_position, + Fcons (make_number (frame_outer_edges.left), + make_number (frame_outer_edges.top))), + Fcons (Qframe_outer_size, + Fcons (make_number + (frame_outer_edges.right - frame_outer_edges.left), + make_number + (frame_outer_edges.bottom - frame_outer_edges.top))), + Fcons (Qexternal_border_size, + ((EQ (fullscreen, Qfullboth) || EQ (fullscreen, Qfullscreen)) + ? Fcons (make_number (0), make_number (0)) + : Fcons (make_number (border_width), + make_number (border_height)))), + Fcons (Qtitle_height, + ((EQ (fullscreen, Qfullboth) || EQ (fullscreen, Qfullscreen)) + ? make_number (0) + : make_number (title_height))), + Fcons (Qmenu_bar_external, Qt), + Fcons (Qmenu_bar_size, + Fcons (make_number + (menu_bar.rcBar.right - menu_bar.rcBar.left), + make_number (menu_bar_height))), + Fcons (Qtool_bar_external, Qnil), + Fcons (Qtool_bar_position, Qtop), + Fcons (Qtool_bar_size, + Fcons (make_number (FRAME_TOOL_BAR_LINES (f) + ? (FRAME_PIXEL_WIDTH (f) + - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) + : 0), + make_number (FRAME_TOOL_BAR_HEIGHT (f)))), + Fcons (Qframe_inner_size, + Fcons (make_number + (frame_inner_edges.right - frame_inner_edges.left), + make_number + (frame_inner_edges.bottom - frame_inner_edges.top)))); +} + DEFUN ("w32-battery-status", Fw32_battery_status, Sw32_battery_status, 0, 0, 0, doc: /* Get power status information from Windows system. @@ -8360,6 +8538,7 @@ only be necessary if the default setting causes problems. */); defsubr (&Sx_open_connection); defsubr (&Sx_close_connection); defsubr (&Sx_display_list); + defsubr (&Sx_frame_geometry); defsubr (&Sx_synchronize); /* W32 specific functions */ @@ -8376,6 +8555,7 @@ only be necessary if the default setting causes problems. */); defsubr (&Sw32_toggle_lock_key); defsubr (&Sw32_window_exists_p); defsubr (&Sw32_frame_rect); + defsubr (&Sw32_frame_menu_bar_size); defsubr (&Sw32_battery_status); #ifdef WINDOWSNT diff --git a/src/w32font.c b/src/w32font.c index 81e25eb0856..895931843ba 100644 --- a/src/w32font.c +++ b/src/w32font.c @@ -115,15 +115,15 @@ static void compute_metrics (HDC, struct w32font_info *, unsigned int, static Lisp_Object w32_registry (LONG, DWORD); /* EnumFontFamiliesEx callbacks. */ -static int CALLBACK add_font_entity_to_list (ENUMLOGFONTEX *, - NEWTEXTMETRICEX *, - DWORD, LPARAM); -static int CALLBACK add_one_font_entity_to_list (ENUMLOGFONTEX *, - NEWTEXTMETRICEX *, - DWORD, LPARAM); -static int CALLBACK add_font_name_to_list (ENUMLOGFONTEX *, - NEWTEXTMETRICEX *, - DWORD, LPARAM); +static int CALLBACK ALIGN_STACK add_font_entity_to_list (ENUMLOGFONTEX *, + NEWTEXTMETRICEX *, + DWORD, LPARAM); +static int CALLBACK ALIGN_STACK add_one_font_entity_to_list (ENUMLOGFONTEX *, + NEWTEXTMETRICEX *, + DWORD, LPARAM); +static int CALLBACK ALIGN_STACK add_font_name_to_list (ENUMLOGFONTEX *, + NEWTEXTMETRICEX *, + DWORD, LPARAM); /* struct passed in as LPARAM arg to EnumFontFamiliesEx, for keeping track of what we really want. */ @@ -287,11 +287,11 @@ Lisp_Object intern_font_name (char * string) { Lisp_Object str = DECODE_SYSTEM (build_string (string)); - int len = SCHARS (str); + ptrdiff_t len = SCHARS (str); Lisp_Object obarray = check_obarray (Vobarray); Lisp_Object tem = oblookup (obarray, SDATA (str), len, len); /* This code is similar to intern function from lread.c. */ - return SYMBOLP (tem) ? tem : Fintern (str, obarray); + return SYMBOLP (tem) ? tem : intern_driver (str, obarray, XINT (tem)); } /* w32 implementation of get_cache for font backend. @@ -473,7 +473,7 @@ w32font_encode_char (struct font *font, int c) of METRICS. The glyphs are specified by their glyph codes in CODE (length NGLYPHS). Apparently metrics can be NULL, in this case just return the overall width. */ -int +void w32font_text_extents (struct font *font, unsigned *code, int nglyphs, struct font_metrics *metrics) { @@ -487,84 +487,80 @@ w32font_text_extents (struct font *font, unsigned *code, struct w32font_info *w32_font = (struct w32font_info *) font; - if (metrics) + memset (metrics, 0, sizeof (struct font_metrics)); + metrics->ascent = font->ascent; + metrics->descent = font->descent; + + for (i = 0; i < nglyphs; i++) { - memset (metrics, 0, sizeof (struct font_metrics)); - metrics->ascent = font->ascent; - metrics->descent = font->descent; + struct w32_metric_cache *char_metric; + int block = *(code + i) / CACHE_BLOCKSIZE; + int pos_in_block = *(code + i) % CACHE_BLOCKSIZE; - for (i = 0; i < nglyphs; i++) - { - struct w32_metric_cache *char_metric; - int block = *(code + i) / CACHE_BLOCKSIZE; - int pos_in_block = *(code + i) % CACHE_BLOCKSIZE; - - if (block >= w32_font->n_cache_blocks) - { - if (!w32_font->cached_metrics) - w32_font->cached_metrics - = xmalloc ((block + 1) - * sizeof (struct w32_metric_cache *)); - else - w32_font->cached_metrics - = xrealloc (w32_font->cached_metrics, - (block + 1) - * sizeof (struct w32_metric_cache *)); - memset (w32_font->cached_metrics + w32_font->n_cache_blocks, 0, - ((block + 1 - w32_font->n_cache_blocks) - * sizeof (struct w32_metric_cache *))); - w32_font->n_cache_blocks = block + 1; - } - - if (!w32_font->cached_metrics[block]) - { - w32_font->cached_metrics[block] - = xzalloc (CACHE_BLOCKSIZE * sizeof (struct w32_metric_cache)); - } - - char_metric = w32_font->cached_metrics[block] + pos_in_block; - - if (char_metric->status == W32METRIC_NO_ATTEMPT) - { - if (dc == NULL) - { - /* TODO: Frames can come and go, and their fonts - outlive them. So we can't cache the frame in the - font structure. Use selected_frame until the API - is updated to pass in a frame. */ - f = XFRAME (selected_frame); - - dc = get_frame_dc (f); - old_font = SelectObject (dc, w32_font->hfont); - } - compute_metrics (dc, w32_font, *(code + i), char_metric); - } - - if (char_metric->status == W32METRIC_SUCCESS) - { - metrics->lbearing = min (metrics->lbearing, - metrics->width + char_metric->lbearing); - metrics->rbearing = max (metrics->rbearing, - metrics->width + char_metric->rbearing); - metrics->width += char_metric->width; - } + if (block >= w32_font->n_cache_blocks) + { + if (!w32_font->cached_metrics) + w32_font->cached_metrics + = xmalloc ((block + 1) + * sizeof (struct w32_metric_cache *)); else - /* If we couldn't get metrics for a char, - use alternative method. */ - break; + w32_font->cached_metrics + = xrealloc (w32_font->cached_metrics, + (block + 1) + * sizeof (struct w32_metric_cache *)); + memset (w32_font->cached_metrics + w32_font->n_cache_blocks, 0, + ((block + 1 - w32_font->n_cache_blocks) + * sizeof (struct w32_metric_cache *))); + w32_font->n_cache_blocks = block + 1; } - /* If we got through everything, return. */ - if (i == nglyphs) - { - if (dc != NULL) - { - /* Restore state and release DC. */ - SelectObject (dc, old_font); - release_frame_dc (f, dc); - } - return metrics->width; - } + if (!w32_font->cached_metrics[block]) + { + w32_font->cached_metrics[block] + = xzalloc (CACHE_BLOCKSIZE * sizeof (struct w32_metric_cache)); + } + + char_metric = w32_font->cached_metrics[block] + pos_in_block; + + if (char_metric->status == W32METRIC_NO_ATTEMPT) + { + if (dc == NULL) + { + /* TODO: Frames can come and go, and their fonts + outlive them. So we can't cache the frame in the + font structure. Use selected_frame until the API + is updated to pass in a frame. */ + f = XFRAME (selected_frame); + + dc = get_frame_dc (f); + old_font = SelectObject (dc, w32_font->hfont); + } + compute_metrics (dc, w32_font, *(code + i), char_metric); + } + + if (char_metric->status == W32METRIC_SUCCESS) + { + metrics->lbearing = min (metrics->lbearing, + metrics->width + char_metric->lbearing); + metrics->rbearing = max (metrics->rbearing, + metrics->width + char_metric->rbearing); + metrics->width += char_metric->width; + } + else + /* If we couldn't get metrics for a char, + use alternative method. */ + break; + } + /* If we got through everything, return. */ + if (i == nglyphs) + { + if (dc != NULL) + { + /* Restore state and release DC. */ + SelectObject (dc, old_font); + release_frame_dc (f, dc); + } + return; } /* For non-truetype fonts, GetGlyphOutlineW is not supported, so @@ -620,18 +616,13 @@ w32font_text_extents (struct font *font, unsigned *code, } /* Give our best estimate of the metrics, based on what we know. */ - if (metrics) - { - metrics->width = total_width - w32_font->metrics.tmOverhang; - metrics->lbearing = 0; - metrics->rbearing = total_width; - } + metrics->width = total_width - w32_font->metrics.tmOverhang; + metrics->lbearing = 0; + metrics->rbearing = total_width; /* Restore state and release DC. */ SelectObject (dc, old_font); release_frame_dc (f, dc); - - return total_width; } /* w32 implementation of draw for font backend. @@ -1009,7 +1000,7 @@ w32font_open_internal (struct frame *f, Lisp_Object font_entity, /* Callback function for EnumFontFamiliesEx. * Adds the name of a font to a Lisp list (passed in as the lParam arg). */ -static int CALLBACK +static int CALLBACK ALIGN_STACK add_font_name_to_list (ENUMLOGFONTEX *logical_font, NEWTEXTMETRICEX *physical_font, DWORD font_type, LPARAM list_object) @@ -1455,7 +1446,7 @@ check_face_name (LOGFONT *font, char *full_name) * and if so, adds it to a list. Both the data we are checking against * and the list to which the fonts are added are passed in via the * lparam argument, in the form of a font_callback_data struct. */ -static int CALLBACK +static int CALLBACK ALIGN_STACK add_font_entity_to_list (ENUMLOGFONTEX *logical_font, NEWTEXTMETRICEX *physical_font, DWORD font_type, LPARAM lParam) @@ -1574,7 +1565,7 @@ add_font_entity_to_list (ENUMLOGFONTEX *logical_font, /* Callback function for EnumFontFamiliesEx. * Terminates the search once we have a match. */ -static int CALLBACK +static int CALLBACK ALIGN_STACK add_one_font_entity_to_list (ENUMLOGFONTEX *logical_font, NEWTEXTMETRICEX *physical_font, DWORD font_type, LPARAM lParam) diff --git a/src/w32font.h b/src/w32font.h index 1be49bb91c2..5ce3ac7a5f9 100644 --- a/src/w32font.h +++ b/src/w32font.h @@ -74,8 +74,8 @@ int w32font_open_internal (struct frame *f, Lisp_Object font_entity, int pixel_size, Lisp_Object font_object); void w32font_close (struct font *font); int w32font_has_char (Lisp_Object entity, int c); -int w32font_text_extents (struct font *font, unsigned *code, int nglyphs, - struct font_metrics *metrics); +void w32font_text_extents (struct font *font, unsigned *code, int nglyphs, + struct font_metrics *metrics); int w32font_draw (struct glyph_string *s, int from, int to, int x, int y, bool with_background); diff --git a/src/w32heap.c b/src/w32heap.c index c431b87e0c2..2a766419b25 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -214,7 +214,7 @@ dumped_data_commit (PVOID Base, PVOID *CommitAddress, PSIZE_T CommitSize) /* We want to turn on Low Fragmentation Heap for XP and older systems. MinGW32 lacks those definitions. */ -#ifndef _W64 +#ifndef MINGW_W64 typedef enum _HEAP_INFORMATION_CLASS { HeapCompatibilityInformation } HEAP_INFORMATION_CLASS; @@ -244,7 +244,7 @@ init_heap (void) /* Create the private heap. */ heap = HeapCreate (0, 0, 0); -#ifndef _W64 +#ifndef MINGW_W64 /* Set the low-fragmentation heap for OS before Vista. */ HMODULE hm_kernel32dll = LoadLibrary ("kernel32.dll"); HeapSetInformation_Proc s_pfn_Heap_Set_Information = (HeapSetInformation_Proc) GetProcAddress (hm_kernel32dll, "HeapSetInformation"); diff --git a/src/w32inevt.c b/src/w32inevt.c index ccb5a900a16..7d10d88155c 100644 --- a/src/w32inevt.c +++ b/src/w32inevt.c @@ -411,7 +411,7 @@ w32_console_mouse_position (struct frame **f, *f = get_frame (); *bar_window = Qnil; - *part = 0; + *part = scroll_bar_above_handle; SELECTED_FRAME ()->mouse_moved = 0; XSETINT (*x, movement_pos.X); @@ -605,7 +605,7 @@ maybe_generate_resize_event (void) change_frame_size (f, 1 + info.srWindow.Right - info.srWindow.Left, 1 + info.srWindow.Bottom - info.srWindow.Top - - FRAME_MENU_BAR_LINES (f), 0, 0, 0, 0); + - FRAME_MENU_BAR_LINES (f), 0, 1, 0, 0); } #if HAVE_W32NOTIFY diff --git a/src/w32inevt.h b/src/w32inevt.h index 9117453e721..c4836211bc9 100644 --- a/src/w32inevt.h +++ b/src/w32inevt.h @@ -27,6 +27,6 @@ extern void w32_console_mouse_position (struct frame **f, int insist, Lisp_Object *bar_window, enum scroll_bar_part *part, Lisp_Object *x, Lisp_Object *y, - unsigned long *time); + Time *time); #endif /* EMACS_W32INEVT_H */ diff --git a/src/w32menu.c b/src/w32menu.c index 9f777167bf0..6633ffddbcf 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -504,7 +504,7 @@ set_frame_menubar (struct frame *f, bool first_time, bool deep_p) area remains the same, if menubar has just been created. */ if (old_widget == NULL) adjust_frame_size (f, FRAME_TEXT_WIDTH (f), - FRAME_TEXT_HEIGHT (f), 2, 0); + FRAME_TEXT_HEIGHT (f), 2, 0, Qmenu_bar_lines); } unblock_input (); diff --git a/src/w32notify.c b/src/w32notify.c index 86412b8a974..4f8c79a1f3a 100644 --- a/src/w32notify.c +++ b/src/w32notify.c @@ -118,7 +118,7 @@ BYTE file_notifications[16384]; DWORD notifications_size; void *notifications_desc; -static Lisp_Object Qfile_name, Qdirectory_name, Qattributes, Qsize; +static Lisp_Object Qfile_name, Qdirectory_name, Qattributes; static Lisp_Object Qlast_write_time, Qlast_access_time, Qcreation_time; static Lisp_Object Qsecurity_desc, Qsubtree, watch_list; @@ -642,7 +642,6 @@ syms_of_w32notify (void) DEFSYM (Qfile_name, "file-name"); DEFSYM (Qdirectory_name, "directory-name"); DEFSYM (Qattributes, "attributes"); - DEFSYM (Qsize, "size"); DEFSYM (Qlast_write_time, "last-write-time"); DEFSYM (Qlast_access_time, "last-access-time"); DEFSYM (Qcreation_time, "creation-time"); diff --git a/src/w32proc.c b/src/w32proc.c index 426a656f566..09e0c0530a4 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -32,6 +32,7 @@ along with GNU Emacs. If not, see . */ #include #include #include +#include /* must include CRT headers *before* config.h */ #include @@ -1077,6 +1078,7 @@ create_child (char *exe, char *cmdline, char *env, int is_gui_app, DWORD flags; char dir[ MAX_PATH ]; char *p; + const char *ext; if (cp == NULL) emacs_abort (); @@ -1115,6 +1117,15 @@ create_child (char *exe, char *cmdline, char *env, int is_gui_app, if (*p == '/') *p = '\\'; + /* CreateProcess handles batch files as exe specially. This special + handling fails when both the batch file and arguments are quoted. + We pass NULL as exe to avoid the special handling. */ + if (exe && cmdline[0] == '"' && + (ext = strrchr (exe, '.')) && + (xstrcasecmp (ext, ".bat") == 0 + || xstrcasecmp (ext, ".cmd") == 0)) + exe = NULL; + flags = (!NILP (Vw32_start_process_share_console) ? CREATE_NEW_PROCESS_GROUP : CREATE_NEW_CONSOLE); @@ -1604,6 +1615,15 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) program = ENCODE_FILE (full); cmdname = SDATA (program); } + else + { + char *p = alloca (strlen (cmdname) + 1); + + /* Don't change the command name we were passed by our caller + (unixtodos_filename below will destructively mirror forward + slashes). */ + cmdname = strcpy (p, cmdname); + } /* make sure argv[0] and cmdname are both in DOS format */ unixtodos_filename (cmdname); @@ -1646,7 +1666,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) strcpy (cmdname, egetenv ("CMDPROXY")); else { - strcpy (cmdname, SDATA (Vinvocation_directory)); + lispstpcpy (cmdname, Vinvocation_directory); strcat (cmdname, "cmdproxy.exe"); } @@ -2908,7 +2928,7 @@ int_from_hex (char * s) function isn't given a context pointer. */ Lisp_Object Vw32_valid_locale_ids; -static BOOL CALLBACK +static BOOL CALLBACK ALIGN_STACK enum_locale_fn (LPTSTR localeNum) { DWORD id = int_from_hex (localeNum); @@ -2972,7 +2992,7 @@ If successful, the new locale id is returned, otherwise nil. */) function isn't given a context pointer. */ Lisp_Object Vw32_valid_codepages; -static BOOL CALLBACK +static BOOL CALLBACK ALIGN_STACK enum_codepage_fn (LPTSTR codepageNum) { DWORD id = atoi (codepageNum); @@ -3144,6 +3164,190 @@ If successful, the new layout id is returned, otherwise nil. */) return Fw32_get_keyboard_layout (); } +/* Two variables to interface between get_lcid and the EnumLocales + callback function below. */ +#ifndef LOCALE_NAME_MAX_LENGTH +# define LOCALE_NAME_MAX_LENGTH 85 +#endif +static LCID found_lcid; +static char lname[3 * LOCALE_NAME_MAX_LENGTH + 1 + 1]; + +/* Callback function for EnumLocales. */ +static BOOL CALLBACK +get_lcid_callback (LPTSTR locale_num_str) +{ + char *endp; + char locval[2 * LOCALE_NAME_MAX_LENGTH + 1 + 1]; + LCID try_lcid = strtoul (locale_num_str, &endp, 16); + + if (GetLocaleInfo (try_lcid, LOCALE_SABBREVLANGNAME, + locval, LOCALE_NAME_MAX_LENGTH)) + { + /* This is for when they only specify the language, as in "ENU". */ + if (stricmp (locval, lname) == 0) + { + found_lcid = try_lcid; + return FALSE; + } + strcat (locval, "_"); + if (GetLocaleInfo (try_lcid, LOCALE_SABBREVCTRYNAME, + locval + strlen (locval), LOCALE_NAME_MAX_LENGTH)) + { + size_t locval_len = strlen (locval); + + if (strnicmp (locval, lname, locval_len) == 0 + && (lname[locval_len] == '.' + || lname[locval_len] == '\0')) + { + found_lcid = try_lcid; + return FALSE; + } + } + } + return TRUE; +} + +/* Return the Locale ID (LCID) number given the locale's name, a + string, in LOCALE_NAME. This works by enumerating all the locales + supported by the system, until we find one whose name matches + LOCALE_NAME. */ +static LCID +get_lcid (const char *locale_name) +{ + /* A simple cache. */ + static LCID last_lcid; + static char last_locale[1000]; + + /* The code below is not thread-safe, as it uses static variables. + But this function is called only from the Lisp thread. */ + if (last_lcid > 0 && strcmp (locale_name, last_locale) == 0) + return last_lcid; + + strncpy (lname, locale_name, sizeof (lname) - 1); + lname[sizeof (lname) - 1] = '\0'; + found_lcid = 0; + EnumSystemLocales (get_lcid_callback, LCID_SUPPORTED); + if (found_lcid > 0) + { + last_lcid = found_lcid; + strcpy (last_locale, locale_name); + } + return found_lcid; +} + +#ifndef _NSLCMPERROR +# define _NSLCMPERROR INT_MAX +#endif +#ifndef LINGUISTIC_IGNORECASE +# define LINGUISTIC_IGNORECASE 0x00000010 +#endif + +int +w32_compare_strings (const char *s1, const char *s2, char *locname, + int ignore_case) +{ + LCID lcid = GetThreadLocale (); + wchar_t *string1_w, *string2_w; + int val, needed; + extern BOOL g_b_init_compare_string_w; + static int (WINAPI *pCompareStringW)(LCID, DWORD, LPCWSTR, int, LPCWSTR, int); + DWORD flags = 0; + + USE_SAFE_ALLOCA; + + /* The LCID machinery doesn't seem to support the "C" locale, so we + need to do that by hand. */ + if (locname + && ((locname[0] == 'C' && (locname[1] == '\0' || locname[1] == '.')) + || strcmp (locname, "POSIX") == 0)) + return (ignore_case ? stricmp (s1, s2) : strcmp (s1, s2)); + + if (!g_b_init_compare_string_w) + { + if (os_subtype == OS_9X) + { + pCompareStringW = GetProcAddress (LoadLibrary ("Unicows.dll"), + "CompareStringW"); + if (!pCompareStringW) + { + errno = EINVAL; + /* This return value is compatible with wcscoll and + other MS CRT functions. */ + return _NSLCMPERROR; + } + } + else + pCompareStringW = CompareStringW; + + g_b_init_compare_string_w = 1; + } + + needed = pMultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, s1, -1, NULL, 0); + if (needed > 0) + { + SAFE_NALLOCA (string1_w, 1, needed + 1); + pMultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, s1, -1, + string1_w, needed); + } + else + { + errno = EINVAL; + return _NSLCMPERROR; + } + + needed = pMultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, s2, -1, NULL, 0); + if (needed > 0) + { + SAFE_NALLOCA (string2_w, 1, needed + 1); + pMultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, s2, -1, + string2_w, needed); + } + else + { + SAFE_FREE (); + errno = EINVAL; + return _NSLCMPERROR; + } + + if (locname) + { + /* Convert locale name string to LCID. We don't want to use + LocaleNameToLCID because (a) it is only available since + Vista, and (b) it doesn't accept locale names returned by + 'setlocale' and 'GetLocaleInfo'. */ + LCID new_lcid = get_lcid (locname); + + if (new_lcid > 0) + lcid = new_lcid; + else + error ("Invalid locale %s: Invalid argument", locname); + } + + if (ignore_case) + { + /* NORM_IGNORECASE ignores any tertiary distinction, not just + case variants. LINGUISTIC_IGNORECASE is more selective, and + is sensitive to the locale's language, but it is not + available before Vista. */ + if (w32_major_version >= 6) + flags |= LINGUISTIC_IGNORECASE; + else + flags |= NORM_IGNORECASE; + } + /* This approximates what glibc collation functions do when the + locale's codeset is UTF-8. */ + if (!NILP (Vw32_collate_ignore_punctuation)) + flags |= NORM_IGNORESYMBOLS; + val = pCompareStringW (lcid, flags, string1_w, -1, string2_w, -1); + SAFE_FREE (); + if (!val) + { + errno = EINVAL; + return _NSLCMPERROR; + } + return val - 2; +} + void syms_of_ntproc (void) @@ -3254,6 +3458,20 @@ Any other non-nil value means do this even on remote and removable drives where the performance impact may be noticeable even on modern hardware. */); Vw32_get_true_file_attributes = Qlocal; + DEFVAR_LISP ("w32-collate-ignore-punctuation", + Vw32_collate_ignore_punctuation, + doc: /* Non-nil causes string collation functions ignore punctuation on MS-Windows. +On Posix platforms, `string-collate-lessp' and `string-collate-equalp' +ignore punctuation characters when they compare strings, if the +locale's codeset is UTF-8, as in \"en_US.UTF-8\". Binding this option +to a non-nil value will achieve a similar effect on MS-Windows, where +locales with UTF-8 codeset are not supported. + +Note that setting this to non-nil will also ignore blanks and symbols +in the strings. So do NOT use this option when comparing file names +for equality, only when you need to sort them. */); + Vw32_collate_ignore_punctuation = Qnil; + staticpro (&Vw32_valid_locale_ids); staticpro (&Vw32_valid_codepages); } diff --git a/src/w32select.c b/src/w32select.c index 7c21dde01a5..b1419e52ac9 100644 --- a/src/w32select.c +++ b/src/w32select.c @@ -95,8 +95,8 @@ static Lisp_Object render_locale (void); static Lisp_Object render_all (Lisp_Object ignore); static void run_protected (Lisp_Object (*code) (Lisp_Object), Lisp_Object arg); static Lisp_Object lisp_error_handler (Lisp_Object error); -static LRESULT CALLBACK owner_callback (HWND win, UINT msg, - WPARAM wp, LPARAM lp); +static LRESULT CALLBACK ALIGN_STACK owner_callback (HWND win, UINT msg, + WPARAM wp, LPARAM lp); static HWND create_owner (void); static void setup_config (void); @@ -420,7 +420,7 @@ lisp_error_handler (Lisp_Object error) } -static LRESULT CALLBACK +static LRESULT CALLBACK ALIGN_STACK owner_callback (HWND win, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) @@ -1013,9 +1013,9 @@ DEFUN ("w32-get-clipboard-data", Fw32_get_clipboard_data, return (ret); } -/* Support checking for a clipboard selection. */ +/* Support checking for a clipboard selection. */ -DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p, +DEFUN ("w32-selection-exists-p", Fw32_selection_exists_p, Sw32_selection_exists_p, 0, 2, 0, doc: /* Whether there is an owner for the given X selection. SELECTION should be the name of the selection in question, typically @@ -1031,7 +1031,7 @@ frame's display, or the first available X display. */) CHECK_SYMBOL (selection); /* Return nil for PRIMARY and SECONDARY selections; for CLIPBOARD, check - if the clipboard currently has valid text format contents. */ + if the clipboard currently has valid text format contents. */ if (EQ (selection, QCLIPBOARD)) { @@ -1060,14 +1060,14 @@ frame's display, or the first available X display. */) } /* One-time init. Called in the un-dumped Emacs, but not in the - dumped version. */ + dumped version. */ void syms_of_w32select (void) { defsubr (&Sw32_set_clipboard_data); defsubr (&Sw32_get_clipboard_data); - defsubr (&Sx_selection_exists_p); + defsubr (&Sw32_selection_exists_p); DEFVAR_LISP ("selection-coding-system", Vselection_coding_system, doc: /* Coding system for communicating with other programs. diff --git a/src/w32term.c b/src/w32term.c index dfda29fb903..fb8648ca4f9 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -101,10 +101,10 @@ extern Cursor w32_load_cursor (LPCTSTR name); struct w32_display_info one_w32_display_info; struct w32_display_info *x_display_list; -#if _WIN32_WINNT < 0x0500 && !defined(_W64) +#if _WIN32_WINNT < 0x0500 && !defined(MINGW_W64) /* Pre Windows 2000, this was not available, but define it here so that Emacs compiled on such a platform will run on newer versions. - MinGW64 (_W64) defines these unconditionally, so avoid redefining. */ + MinGW64 defines these unconditionally, so avoid redefining. */ typedef struct tagWCRANGE { @@ -185,7 +185,7 @@ void x_lower_frame (struct frame *); void x_scroll_bar_clear (struct frame *); void x_wm_set_size_hint (struct frame *, long, bool); void x_raise_frame (struct frame *); -void x_set_window_size (struct frame *, int, int, int, bool); +void x_set_window_size (struct frame *, bool, int, int, bool); void x_wm_set_window_state (struct frame *, int); void x_wm_set_icon_pixmap (struct frame *, int); static void w32_initialize (void); @@ -2228,7 +2228,7 @@ x_draw_stretch_glyph_string (struct glyph_string *s) { /* In R2L rows, draw the cursor on the right edge of the stretch glyph. */ - int right_x = window_box_right_offset (s->w, TEXT_AREA); + int right_x = window_box_right (s->w, TEXT_AREA); if (x + background_width > right_x) background_width -= x - right_x; @@ -3344,11 +3344,11 @@ static struct scroll_bar *x_window_to_scroll_bar (Window, int); static void x_scroll_bar_report_motion (struct frame **, Lisp_Object *, enum scroll_bar_part *, Lisp_Object *, Lisp_Object *, - unsigned long *); + Time *); static void x_horizontal_scroll_bar_report_motion (struct frame **, Lisp_Object *, enum scroll_bar_part *, Lisp_Object *, Lisp_Object *, - unsigned long *); + Time *); static void x_check_fullscreen (struct frame *); static void @@ -3380,7 +3380,7 @@ w32_define_cursor (Window window, Cursor cursor) static void w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window, enum scroll_bar_part *part, Lisp_Object *x, Lisp_Object *y, - unsigned long *time) + Time *time) { struct frame *f1; struct w32_display_info *dpyinfo = FRAME_DISPLAY_INFO (*fp); @@ -3448,7 +3448,7 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window, dpyinfo->last_mouse_glyph_frame = f1; *bar_window = Qnil; - *part = 0; + *part = scroll_bar_above_handle; *fp = f1; XSETINT (*x, pt.x); XSETINT (*y, pt.y); @@ -4166,17 +4166,24 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg, int y; int dragging = bar->dragging; SCROLLINFO si; + int sb_event = LOWORD (msg->msg.wParam); si.cbSize = sizeof (si); - si.fMask = SIF_POS; + if (sb_event == SB_THUMBTRACK) + si.fMask = SIF_TRACKPOS; + else + si.fMask = SIF_POS; GetScrollInfo ((HWND) msg->msg.lParam, SB_CTL, &si); - y = si.nPos; + if (sb_event == SB_THUMBTRACK) + y = si.nTrackPos; + else + y = si.nPos; bar->dragging = 0; FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos = msg->msg.wParam; - switch (LOWORD (msg->msg.wParam)) + switch (sb_event) { case SB_LINEDOWN: emacs_event->part = scroll_bar_down_arrow; @@ -4200,8 +4207,6 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg, break; case SB_THUMBTRACK: case SB_THUMBPOSITION: - if (VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height) <= 0xffff) - y = HIWORD (msg->msg.wParam); bar->dragging = 1; /* ??????? */ emacs_event->part = scroll_bar_handle; @@ -4272,20 +4277,28 @@ w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg, { int left_range = HORIZONTAL_SCROLL_BAR_LEFT_RANGE (f, bar->width); - int x; + int x, y; int dragging = bar->dragging; SCROLLINFO si; + int sb_event = LOWORD (msg->msg.wParam); si.cbSize = sizeof (si); - si.fMask = SIF_POS; + if (sb_event == SB_THUMBTRACK) + si.fMask = SIF_TRACKPOS | SIF_PAGE | SIF_RANGE; + else + si.fMask = SIF_POS | SIF_PAGE | SIF_RANGE; GetScrollInfo ((HWND) msg->msg.lParam, SB_CTL, &si); - x = si.nPos; + if (sb_event == SB_THUMBTRACK) + x = si.nTrackPos; + else + x = si.nPos; + y = si.nMax - si.nPage; bar->dragging = 0; FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos = msg->msg.wParam; - switch (LOWORD (msg->msg.wParam)) + switch (sb_event) { case SB_LINELEFT: emacs_event->part = scroll_bar_left_arrow; @@ -4309,8 +4322,6 @@ w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg, break; case SB_THUMBTRACK: case SB_THUMBPOSITION: - if (HORIZONTAL_SCROLL_BAR_LEFT_RANGE (f, bar->width) <= 0xffff) - x = HIWORD (msg->msg.wParam); bar->dragging = 1; emacs_event->part = scroll_bar_horizontal_handle; @@ -4339,12 +4350,9 @@ w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg, int end = bar->end; si.cbSize = sizeof (si); -/** si.fMask = SIF_PAGE | SIF_POS; **/ si.fMask = SIF_POS; -/** si.nPage = end - start + HORIZONTAL_SCROLL_BAR_MIN_HANDLE; **/ si.nPos = min (last_scroll_bar_drag_pos, XWINDOW (bar->window)->hscroll_whole - 1); -/** si.nPos = last_scroll_bar_drag_pos; **/ SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si, TRUE); } /* fall through */ @@ -4354,7 +4362,7 @@ w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg, } XSETINT (emacs_event->x, x); - XSETINT (emacs_event->y, left_range); + XSETINT (emacs_event->y, y); return TRUE; } @@ -4366,7 +4374,7 @@ static void x_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window, enum scroll_bar_part *part, Lisp_Object *x, Lisp_Object *y, - unsigned long *time) + Time *time) { struct w32_display_info *dpyinfo = FRAME_DISPLAY_INFO (*fp); struct scroll_bar *bar = dpyinfo->last_mouse_scroll_bar; @@ -4375,6 +4383,7 @@ x_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window, int pos; int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height); SCROLLINFO si; + int sb_event = LOWORD (dpyinfo->last_mouse_scroll_bar_pos); block_input (); @@ -4382,28 +4391,21 @@ x_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window, *bar_window = bar->window; si.cbSize = sizeof (si); - si.fMask = SIF_POS | SIF_PAGE | SIF_RANGE; + if (sb_event == SB_THUMBTRACK) + si.fMask = SIF_TRACKPOS | SIF_PAGE | SIF_RANGE; + else + si.fMask = SIF_POS | SIF_PAGE | SIF_RANGE; GetScrollInfo (w, SB_CTL, &si); - pos = si.nPos; + if (sb_event == SB_THUMBTRACK) + pos = si.nTrackPos; + else + pos = si.nPos; top_range = si.nMax - si.nPage + 1; - switch (LOWORD (dpyinfo->last_mouse_scroll_bar_pos)) - { - case SB_THUMBPOSITION: - case SB_THUMBTRACK: - *part = scroll_bar_handle; - if (VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height) <= 0xffff) - pos = HIWORD (dpyinfo->last_mouse_scroll_bar_pos); - break; - case SB_LINEDOWN: - *part = scroll_bar_handle; - pos++; - break; - default: - *part = scroll_bar_handle; - break; - } + *part = scroll_bar_handle; + if (sb_event == SB_LINEDOWN) + pos++; XSETINT (*x, pos); XSETINT (*y, top_range); @@ -4422,7 +4424,7 @@ static void x_horizontal_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window, enum scroll_bar_part *part, Lisp_Object *x, Lisp_Object *y, - unsigned long *time) + Time *time) { struct w32_display_info *dpyinfo = FRAME_DISPLAY_INFO (*fp); struct scroll_bar *bar = dpyinfo->last_mouse_scroll_bar; @@ -4431,6 +4433,7 @@ x_horizontal_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_windo int pos; int left_range = HORIZONTAL_SCROLL_BAR_LEFT_RANGE (f, bar->width); SCROLLINFO si; + int sb_event = LOWORD (dpyinfo->last_mouse_scroll_bar_pos); block_input (); @@ -4438,28 +4441,22 @@ x_horizontal_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_windo *bar_window = bar->window; si.cbSize = sizeof (si); - si.fMask = SIF_POS | SIF_PAGE | SIF_RANGE; + if (sb_event == SB_THUMBTRACK) + si.fMask = SIF_TRACKPOS | SIF_PAGE | SIF_RANGE; + else + si.fMask = SIF_POS | SIF_PAGE | SIF_RANGE; GetScrollInfo (w, SB_CTL, &si); - pos = si.nPos; + if (sb_event == SB_THUMBTRACK) + pos = si.nTrackPos; + else + pos = si.nPos; left_range = si.nMax - si.nPage + 1; - switch (LOWORD (dpyinfo->last_mouse_scroll_bar_pos)) - { - case SB_THUMBPOSITION: - case SB_THUMBTRACK: - *part = scroll_bar_handle; - if (HORIZONTAL_SCROLL_BAR_LEFT_RANGE (f, bar->width) <= 0xffff) - pos = HIWORD (dpyinfo->last_mouse_scroll_bar_pos); - break; - case SB_LINERIGHT: - *part = scroll_bar_handle; - pos++; - break; - default: - *part = scroll_bar_handle; - break; - } + *part = scroll_bar_handle; + if (sb_event == SB_LINERIGHT) + pos++; + XSETINT (*y, pos); XSETINT (*x, left_range); @@ -5147,30 +5144,38 @@ w32_read_socket (struct terminal *terminal, RECT rect; int rows, columns, width, height, text_width, text_height; - GetClientRect (msg.msg.hwnd, &rect); - - height = rect.bottom - rect.top; - width = rect.right - rect.left; - text_width = FRAME_PIXEL_TO_TEXT_WIDTH (f, width); - text_height = FRAME_PIXEL_TO_TEXT_HEIGHT (f, height); - /* rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, height); */ - /* columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width); */ - - /* TODO: Clip size to the screen dimensions. */ - - /* Even if the number of character rows and columns has - not changed, the font size may have changed, so we need - to check the pixel dimensions as well. */ - - if (width != FRAME_PIXEL_WIDTH (f) - || height != FRAME_PIXEL_HEIGHT (f) - || text_width != FRAME_TEXT_WIDTH (f) - || text_height != FRAME_TEXT_HEIGHT (f)) + if (GetClientRect (msg.msg.hwnd, &rect) + /* GetClientRect evidently returns (0, 0, 0, 0) if + called on a minimized frame. Such "dimensions" + aren't useful anyway. */ + && !(rect.bottom == 0 + && rect.top == 0 + && rect.left == 0 + && rect.right == 0)) { - change_frame_size (f, text_width, text_height, 0, 1, 0, 1); - SET_FRAME_GARBAGED (f); - cancel_mouse_face (f); - f->win_gravity = NorthWestGravity; + height = rect.bottom - rect.top; + width = rect.right - rect.left; + text_width = FRAME_PIXEL_TO_TEXT_WIDTH (f, width); + text_height = FRAME_PIXEL_TO_TEXT_HEIGHT (f, height); + /* rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, height); */ + /* columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width); */ + + /* TODO: Clip size to the screen dimensions. */ + + /* Even if the number of character rows and columns + has not changed, the font size may have changed, + so we need to check the pixel dimensions as well. */ + + if (width != FRAME_PIXEL_WIDTH (f) + || height != FRAME_PIXEL_HEIGHT (f) + || text_width != FRAME_TEXT_WIDTH (f) + || text_height != FRAME_TEXT_HEIGHT (f)) + { + change_frame_size (f, text_width, text_height, 0, 1, 0, 1); + SET_FRAME_GARBAGED (f); + cancel_mouse_face (f); + f->win_gravity = NorthWestGravity; + } } } @@ -5475,6 +5480,12 @@ x_draw_hollow_cursor (struct window *w, struct glyph_row *row) /* Compute frame-relative coordinates for phys cursor. */ get_phys_cursor_geometry (w, row, cursor_glyph, &left, &top, &h); rect.left = left; + /* When on R2L character, show cursor at the right edge of the + glyph, unless the cursor box is as wide as the glyph or wider + (the latter happens when x-stretch-cursor is non-nil). */ + if ((cursor_glyph->resolved_level & 1) != 0 + && cursor_glyph->pixel_width > w->phys_cursor_width) + rect.left += cursor_glyph->pixel_width - w->phys_cursor_width; rect.top = top; rect.bottom = rect.top + h; rect.right = rect.left + w->phys_cursor_width; @@ -5556,7 +5567,7 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y), width, row->height); } - else + else /* HBAR_CURSOR */ { int dummy_x, dummy_y, dummy_h; @@ -5567,6 +5578,9 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, get_phys_cursor_geometry (w, row, cursor_glyph, &dummy_x, &dummy_y, &dummy_h); + if ((cursor_glyph->resolved_level & 1) != 0 + && cursor_glyph->pixel_width > w->phys_cursor_width) + x += cursor_glyph->pixel_width - w->phys_cursor_width; w32_fill_area (f, hdc, cursor_color, x, WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y + row->height - width), @@ -5702,7 +5716,7 @@ w32_draw_window_cursor (struct window *w, struct glyph_row *glyph_row, /* Icons. */ -int +bool x_bitmap_icon (struct frame *f, Lisp_Object icon) { HANDLE main_icon; @@ -5829,7 +5843,7 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset) problems because the tip frame has no widget. */ if (NILP (tip_frame) || XFRAME (tip_frame) != f) adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f), - FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 3, 0); + FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 3, 0, Qfont); } /* X version sets font of input methods here also. */ @@ -6082,12 +6096,13 @@ w32fullscreen_hook (struct frame *f) } /* Call this to change the size of frame F's x-window. - If CHANGE_GRAVITY is 1, we change to top-left-corner window gravity + If CHANGE_GRAVITY, change to top-left-corner window gravity for this size change and subsequent size changes. Otherwise we leave the window gravity unchanged. */ void -x_set_window_size (struct frame *f, int change_gravity, int width, int height, bool pixelwise) +x_set_window_size (struct frame *f, bool change_gravity, + int width, int height, bool pixelwise) { int pixelwidth, pixelheight; RECT rect; @@ -6105,6 +6120,30 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height); } + if (w32_add_wrapped_menu_bar_lines) + { + /* When the menu bar wraps sending a SetWindowPos shrinks the + height of the frame when the wrapped menu bar lines are not + accounted for (Bug#15174 and Bug#18720). Here we add these + extra lines to the frame height. */ + MENUBARINFO info; + int default_menu_bar_height; + int menu_bar_height; + + /* Why is (apparently) SM_CYMENUSIZE needed here instead of + SM_CYMENU ?? */ + default_menu_bar_height = GetSystemMetrics (SM_CYMENUSIZE); + info.cbSize = sizeof (info); + info.rcBar.top = info.rcBar.bottom = 0; + GetMenuBarInfo (FRAME_W32_WINDOW (f), 0xFFFFFFFD, 0, &info); + menu_bar_height = info.rcBar.bottom - info.rcBar.top; + + if ((default_menu_bar_height > 0) + && (menu_bar_height > default_menu_bar_height) + && ((menu_bar_height % default_menu_bar_height) == 0)) + pixelheight = pixelheight + menu_bar_height - default_menu_bar_height; + } + f->win_gravity = NorthWestGravity; x_wm_set_size_hint (f, (long) 0, 0); @@ -6293,7 +6332,7 @@ x_lower_frame (struct frame *f) } static void -w32_frame_raise_lower (struct frame *f, int raise_flag) +w32_frame_raise_lower (struct frame *f, bool raise_flag) { if (! FRAME_W32_P (f)) return; @@ -6333,7 +6372,7 @@ x_make_frame_visible (struct frame *f) RECT window_rect; /* Adjust vertical window position in order to avoid being - covered by a task bar placed at the bottom of the desktop. */ + covered by a taskbar placed at the bottom of the desktop. */ SystemParametersInfo (SPI_GETWORKAREA, 0, &workarea_rect, 0); GetWindowRect (FRAME_W32_WINDOW (f), &window_rect); if (window_rect.bottom > workarea_rect.bottom @@ -7066,6 +7105,21 @@ systems of the NT family, including W2K, XP, Vista, Windows 7 and Windows 8. It is set to nil on Windows 9X. */); w32_unicode_filenames = 0; + + /* FIXME: The following two variables will be (hopefully) removed + before Emacs 25.1 gets released. */ + + DEFVAR_BOOL ("w32-add-wrapped-menu-bar-lines", + w32_add_wrapped_menu_bar_lines, + doc: /* Non-nil means frame resizing accounts for wrapped menu bar lines. +A value of nil means frame resizing does not add the height of wrapped +menu bar lines when sending a frame resize request to the Windows API. +This usually means that the resulting frame height is off by the number +of wrapped menu bar lines. If this is non-nil, Emacs adds the height of +wrapped menu bar lines when sending frame resize requests to the Windows +API. */); + w32_add_wrapped_menu_bar_lines = 1; + DEFVAR_BOOL ("w32-enable-frame-resize-hack", w32_enable_frame_resize_hack, doc: /* Non-nil means enable hack for frame resizing on Windows. diff --git a/src/w32term.h b/src/w32term.h index 0fabe12819c..f02d7ce0a68 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -22,6 +22,22 @@ along with GNU Emacs. If not, see . */ #include "frame.h" #include "atimer.h" +/* Stack alignment stuff. Every CALLBACK function should have the + ALIGN_STACK attribute if it manipulates Lisp objects, because + Windows x86 32-bit ABI only guarantees 4-byte stack alignment, and + that is what we will get when a Windows function calls us. The + ALIGN_STACK attribute forces GCC to emit a preamble code to + re-align the stack at function entry. Further details about this + can be found in http://www.peterstock.co.uk/games/mingw_sse/. */ +#ifdef __GNUC__ +# if USE_STACK_LISP_OBJECTS && !defined _WIN64 && !defined __x86_64__ \ + && __GNUC__ + (__GNUC_MINOR__ > 1) >= 5 +# define ALIGN_STACK __attribute__((force_align_arg_pointer)) +# else +# define ALIGN_STACK +# endif /* USE_STACK_LISP_OBJECTS */ +#endif + #define BLACK_PIX_DEFAULT(f) PALETTERGB(0,0,0) #define WHITE_PIX_DEFAULT(f) PALETTERGB(255,255,255) @@ -224,7 +240,7 @@ extern struct w32_display_info *w32_term_init (Lisp_Object, char *, char *); extern int w32_defined_color (struct frame *f, const char *color, XColor *color_def, int alloc); -extern void x_set_window_size (struct frame *f, int change_grav, +extern void x_set_window_size (struct frame *f, bool change_gravity, int width, int height, bool pixelwise); extern int x_display_pixel_height (struct w32_display_info *); extern int x_display_pixel_width (struct w32_display_info *); @@ -241,7 +257,7 @@ extern void x_set_internal_border_width (struct frame *f, Lisp_Object value, Lisp_Object oldval); extern void x_activate_menubar (struct frame *); -extern int x_bitmap_icon (struct frame *, Lisp_Object); +extern bool x_bitmap_icon (struct frame *, Lisp_Object); extern void initialize_frame_menubar (struct frame *); extern void x_free_frame_resources (struct frame *); extern void x_real_positions (struct frame *, int *, int *); diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c index d06586f973a..1c7b256988c 100644 --- a/src/w32uniscribe.c +++ b/src/w32uniscribe.c @@ -52,9 +52,9 @@ extern Lisp_Object Quniscribe; extern Lisp_Object Qopentype; /* EnumFontFamiliesEx callback. */ -static int CALLBACK add_opentype_font_name_to_list (ENUMLOGFONTEX *, - NEWTEXTMETRICEX *, - DWORD, LPARAM); +static int CALLBACK ALIGN_STACK add_opentype_font_name_to_list (ENUMLOGFONTEX *, + NEWTEXTMETRICEX *, + DWORD, LPARAM); /* Used by uniscribe_otf_capability. */ static Lisp_Object otf_features (HDC context, char *table); @@ -591,8 +591,8 @@ uniscribe_encode_char (struct font *font, int c) Lisp_Object uniscribe_get_cache (Lisp_Object frame); void uniscribe_free_entity (Lisp_Object font_entity); int uniscribe_has_char (Lisp_Object entity, int c); - int uniscribe_text_extents (struct font *font, unsigned *code, - int nglyphs, struct font_metrics *metrics); + void uniscribe_text_extents (struct font *font, unsigned *code, + int nglyphs, struct font_metrics *metrics); int uniscribe_draw (struct glyph_string *s, int from, int to, int x, int y, int with_background); @@ -613,7 +613,7 @@ uniscribe_encode_char (struct font *font, int c) /* Callback function for EnumFontFamiliesEx. Adds the name of opentype fonts to a Lisp list (passed in as the lParam arg). */ -static int CALLBACK +static int CALLBACK ALIGN_STACK add_opentype_font_name_to_list (ENUMLOGFONTEX *logical_font, NEWTEXTMETRICEX *physical_font, DWORD font_type, LPARAM list_object) diff --git a/src/widget.c b/src/widget.c index 45118a88730..ecf145199f2 100644 --- a/src/widget.c +++ b/src/widget.c @@ -53,30 +53,11 @@ along with GNU Emacs. If not, see . */ #include "character.h" #include "font.h" -/* This sucks: this is the first default that x-faces.el tries. This won't - be used unless neither the "Emacs.EmacsFrame" resource nor the - "Emacs.EmacsFrame" resource is set; the frame - may have the wrong default size if this font doesn't exist, but some other - font that x-faces.el does. The workaround is to specify some font in the - resource database; I don't know a solution other than duplicating the font- - searching code from x-faces.el in this file. - - This also means that if "Emacs.EmacsFrame" is specified as a non- - existent font, then Xt is going to substitute "XtDefaultFont" for it, - which is a different size than this one. The solution for this is to - make x-faces.el try to use XtDefaultFont. The problem with that is that - XtDefaultFont is almost certainly variable-width. - - #### Perhaps we could have this code explicitly set XtDefaultFont to this? - */ -#define DEFAULT_FACE_FONT "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*" - static void EmacsFrameInitialize (Widget request, Widget new, ArgList dum1, Cardinal *dum2); static void EmacsFrameDestroy (Widget widget); static void EmacsFrameRealize (Widget widget, XtValueMask *mask, XSetWindowAttributes *attrs); static void EmacsFrameResize (Widget widget); -static Boolean EmacsFrameSetValues (Widget cur_widget, Widget req_widget, Widget new_widget, ArgList dum1, Cardinal *dum2); static XtGeometryResult EmacsFrameQueryGeometry (Widget widget, XtWidgetGeometry *request, XtWidgetGeometry *result); @@ -102,8 +83,6 @@ static XtResource resources[] = { offset (internal_border_width), XtRImmediate, (XtPointer)4}, {XtNinterline, XtCInterline, XtRInt, sizeof (int), offset (interline), XtRImmediate, (XtPointer)0}, - {XtNfont, XtCFont, XtRFontStruct, sizeof (struct font *), - offset (font),XtRString, DEFAULT_FACE_FONT}, {XtNforeground, XtCForeground, XtRPixel, sizeof (Pixel), offset (foreground_pixel), XtRString, "XtDefaultForeground"}, {XtNcursorColor, XtCForeground, XtRPixel, sizeof (Pixel), @@ -157,7 +136,10 @@ static EmacsFrameClassRec emacsFrameClassRec = { /* destroy */ EmacsFrameDestroy, /* resize */ EmacsFrameResize, /* expose */ XtInheritExpose, - /* set_values */ EmacsFrameSetValues, + + /* Emacs never does XtSetvalues on this widget, so we have no code + for it. */ + /* set_values */ 0, /* Not supported */ /* set_values_hook */ 0, /* set_values_almost */ XtInheritSetValuesAlmost, /* get_values_hook */ 0, @@ -502,91 +484,6 @@ widget_update_wm_size_hints (Widget widget) update_wm_hints (ew); } -static char setup_frame_cursor_bits[] = -{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static void -setup_frame_gcs (EmacsFrame ew) -{ - XGCValues gc_values; - struct frame* s = ew->emacs_frame.frame; - Pixmap blank_stipple, blank_tile; - unsigned long valuemask = (GCForeground | GCBackground | GCGraphicsExposures - | GCStipple | GCTile); - Lisp_Object font; - - XSETFONT (font, ew->emacs_frame.font); - font = Ffont_xlfd_name (font, Qnil); - if (STRINGP (font)) - { - XFontStruct *xfont = XLoadQueryFont (FRAME_DISPLAY_INFO (s)->display, - SSDATA (font)); - if (xfont) - { - gc_values.font = xfont->fid; - valuemask |= GCFont; - } - } - - /* We have to initialize all of our GCs to have a stipple/tile, otherwise - XGetGCValues returns uninitialized data when we query the stipple - (instead of None or something sensible) and it makes things hard. - - This should be fixed for real by not querying the GCs but instead having - some GC-based cache instead of the current face-based cache which doesn't - effectively cache all of the GC settings we need to use. - */ - - blank_stipple - = XCreateBitmapFromData (XtDisplay (ew), - RootWindowOfScreen (XtScreen (ew)), - setup_frame_cursor_bits, 2, 2); - - /* use fg = 0, bg = 1 below, but it's irrelevant since this pixmap should - never actually get used as a background tile! - */ - blank_tile - = XCreatePixmapFromBitmapData (XtDisplay (ew), - RootWindowOfScreen (XtScreen (ew)), - setup_frame_cursor_bits, 2, 2, - 0, 1, ew->core.depth); - - /* Normal video */ - gc_values.foreground = ew->emacs_frame.foreground_pixel; - gc_values.background = ew->core.background_pixel; - gc_values.graphics_exposures = False; - gc_values.stipple = blank_stipple; - gc_values.tile = blank_tile; - XChangeGC (XtDisplay (ew), s->output_data.x->normal_gc, - valuemask, &gc_values); - - /* Reverse video style. */ - gc_values.foreground = ew->core.background_pixel; - gc_values.background = ew->emacs_frame.foreground_pixel; - gc_values.graphics_exposures = False; - gc_values.stipple = blank_stipple; - gc_values.tile = blank_tile; - XChangeGC (XtDisplay (ew), s->output_data.x->reverse_gc, - valuemask, &gc_values); - - /* Cursor has to have an empty stipple. */ - gc_values.foreground = ew->core.background_pixel; - gc_values.background = ew->emacs_frame.cursor_color; - gc_values.graphics_exposures = False; - gc_values.tile = blank_tile; - gc_values.stipple - = XCreateBitmapFromData (XtDisplay (ew), - RootWindowOfScreen (XtScreen (ew)), - setup_frame_cursor_bits, 16, 16); - XChangeGC (XtDisplay (ew), s->output_data.x->cursor_gc, - valuemask, &gc_values); -} - static void update_various_frame_slots (EmacsFrame ew) { @@ -614,7 +511,6 @@ update_from_various_frame_slots (EmacsFrame ew) ew->core.width = FRAME_PIXEL_WIDTH (f); ew->core.background_pixel = FRAME_BACKGROUND_PIXEL (f); ew->emacs_frame.internal_border_width = f->internal_border_width; - ew->emacs_frame.font = x->font; ew->emacs_frame.foreground_pixel = FRAME_FOREGROUND_PIXEL (f); ew->emacs_frame.cursor_color = x->cursor_pixel; ew->core.border_pixel = x->border_pixel; @@ -683,15 +579,6 @@ EmacsFrameResize (Widget widget) if (true || frame_resize_pixelwise) { int width, height; -/** int width = (ew->core.width **/ -/** - FRAME_SCROLL_BAR_AREA_WIDTH (f) **/ -/** - FRAME_TOTAL_FRINGE_WIDTH (f) **/ -/** - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); **/ - -/** int height = (ew->core.height **/ -/** - FRAME_TOOLBAR_HEIGHT (f) **/ -/** - FRAME_SCROLL_BAR_AREA_HEIGHT (f) **/ -/** - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); **/ pixel_to_text_size (ew, ew->core.width, ew->core.height, &width, &height); change_frame_size (f, width, height, 0, 1, 0, 1); @@ -721,80 +608,6 @@ EmacsFrameResize (Widget widget) } } -static Boolean -EmacsFrameSetValues (Widget cur_widget, Widget req_widget, Widget new_widget, ArgList dum1, Cardinal *dum2) -{ - EmacsFrame cur = (EmacsFrame)cur_widget; - EmacsFrame new = (EmacsFrame)new_widget; - - Boolean needs_a_refresh = False; - Boolean has_to_recompute_size; - Boolean has_to_recompute_gcs; - Boolean has_to_update_hints; - - int char_width, char_height; - Dimension pixel_width; - Dimension pixel_height; - - /* AFAIK, this function is never called. -- Jan D, Oct 2009. */ - has_to_recompute_gcs = (cur->emacs_frame.font != new->emacs_frame.font - || (cur->emacs_frame.foreground_pixel - != new->emacs_frame.foreground_pixel) - || (cur->core.background_pixel - != new->core.background_pixel) - ); - - has_to_recompute_size = (cur->emacs_frame.font != new->emacs_frame.font - && cur->core.width == new->core.width - && cur->core.height == new->core.height); - - has_to_update_hints = (cur->emacs_frame.font != new->emacs_frame.font); - - if (has_to_recompute_gcs) - { - setup_frame_gcs (new); - needs_a_refresh = True; - } - - if (has_to_recompute_size) - { - /* Don't do this pixelwise, hopefully. */ - pixel_width = new->core.width; - pixel_height = new->core.height; - pixel_to_char_size (new, pixel_width, pixel_height, &char_width, - &char_height); - char_to_pixel_size (new, char_width, char_height, &pixel_width, - &pixel_height); - new->core.width = pixel_width; - new->core.height = pixel_height; - - change_frame_size (new->emacs_frame.frame, char_width, char_height, - 1, 0, 0, 0); - needs_a_refresh = True; - } - - if (has_to_update_hints) - update_wm_hints (new); - - update_various_frame_slots (new); - - /* #### This doesn't work, I haven't been able to find ANY kludge that - will let (x-create-frame '((iconic . t))) work. It seems that changes - to wm_shell's iconic slot have no effect after it has been realized, - and calling XIconifyWindow doesn't work either (even though the window - has been created.) Perhaps there is some property we could smash - directly, but I'm sick of this for now. - */ - if (cur->emacs_frame.iconic != new->emacs_frame.iconic) - { - Widget wmshell = get_wm_shell ((Widget) cur); - XtVaSetValues (wmshell, XtNiconic, - (XtArgVal) new->emacs_frame.iconic, NULL); - } - - return needs_a_refresh; -} - static XtGeometryResult EmacsFrameQueryGeometry (Widget widget, XtWidgetGeometry *request, XtWidgetGeometry *result) { @@ -831,7 +644,8 @@ EmacsFrameSetCharSize (Widget widget, int columns, int rows) EmacsFrame ew = (EmacsFrame) widget; struct frame *f = ew->emacs_frame.frame; - if (!frame_inhibit_resize (f, 0) && !frame_inhibit_resize (f, 1)) + if (!frame_inhibit_resize (f, 0, Qfont) + && !frame_inhibit_resize (f, 1, Qfont)) x_set_window_size (f, 0, columns, rows, 0); } diff --git a/src/widgetprv.h b/src/widgetprv.h index c0a5238743e..f5e2eb549a1 100644 --- a/src/widgetprv.h +++ b/src/widgetprv.h @@ -43,7 +43,6 @@ typedef struct { int internal_border_width; /* internal borders */ int interline; /* skips between lines */ - struct font* font; /* font */ Pixel foreground_pixel; /* foreground */ Pixel cursor_color; /* text cursor color */ diff --git a/src/window.c b/src/window.c index 36133362c1b..b6afa527c68 100644 --- a/src/window.c +++ b/src/window.c @@ -335,7 +335,7 @@ DEFUN ("windowp", Fwindowp, Swindowp, 1, 1, 0, DEFUN ("window-valid-p", Fwindow_valid_p, Swindow_valid_p, 1, 1, 0, doc: /* Return t if OBJECT is a valid window and nil otherwise. A valid window is either a window that displays a buffer or an internal -window. Deleted windows are not live. */) +window. Windows that have been deleted are not valid. */) (Lisp_Object object) { return WINDOW_VALID_P (object) ? Qt : Qnil; @@ -816,7 +816,12 @@ total width of WINDOW. */) DEFUN ("window-new-total", Fwindow_new_total, Swindow_new_total, 0, 1, 0, doc: /* Return the new total size of window WINDOW. -WINDOW must be a valid window and defaults to the selected one. */) +WINDOW must be a valid window and defaults to the selected one. + +The new total size of WINDOW is the value set by the last call of +`set-window-new-total' for WINDOW. If it is valid, it will be shortly +installed as WINDOW's total height (see `window-total-height') or total +width (see `window-total-width'). */) (Lisp_Object window) { return decode_valid_window (window)->new_total; @@ -825,7 +830,25 @@ WINDOW must be a valid window and defaults to the selected one. */) DEFUN ("window-normal-size", Fwindow_normal_size, Swindow_normal_size, 0, 2, 0, doc: /* Return the normal height of window WINDOW. WINDOW must be a valid window and defaults to the selected one. -If HORIZONTAL is non-nil, return the normal width of WINDOW. */) +If HORIZONTAL is non-nil, return the normal width of WINDOW. + +The normal height of a frame's root window or a window that is +horizontally combined (a window that has a left or right sibling) is +1.0. The normal height of a window that is vertically combined (has a +sibling above or below) is the fraction of the window's height with +respect to its parent. The sum of the normal heights of all windows in a +vertical combination equals 1.0. + +Similarly, the normal width of a frame's root window or a window that is +vertically combined equals 1.0. The normal width of a window that is +horizontally combined is the fraction of the window's width with respect +to its parent. The sum of the normal widths of all windows in a +horizontal combination equals 1.0. + +The normal sizes of windows are used to restore the proportional sizes +of windows after they have been shrunk to their minimum sizes; for +example when a frame is temporarily made very small and afterwards gets +re-enlarged to its previous size. */) (Lisp_Object window, Lisp_Object horizontal) { struct window *w = decode_valid_window (window); @@ -835,7 +858,11 @@ If HORIZONTAL is non-nil, return the normal width of WINDOW. */) DEFUN ("window-new-normal", Fwindow_new_normal, Swindow_new_normal, 0, 1, 0, doc: /* Return new normal size of window WINDOW. -WINDOW must be a valid window and defaults to the selected one. */) +WINDOW must be a valid window and defaults to the selected one. + +The new normal size of WINDOW is the value set by the last call of +`set-window-new-normal' for WINDOW. If valid, it will be shortly +installed as WINDOW's normal size (see `window-normal-size'). */) (Lisp_Object window) { return decode_valid_window (window)->new_normal; @@ -843,7 +870,12 @@ WINDOW must be a valid window and defaults to the selected one. */) DEFUN ("window-new-pixel", Fwindow_new_pixel, Swindow_new_pixel, 0, 1, 0, doc: /* Return new pixel size of window WINDOW. -WINDOW must be a valid window and defaults to the selected one. */) +WINDOW must be a valid window and defaults to the selected one. + +The new pixel size of WINDOW is the value set by the last call of +`set-window-new-pixel' for WINDOW. If it is valid, it will be shortly +installed as WINDOW's pixel height (see `window-pixel-height') or pixel +width (see `window-pixel-width'). */) (Lisp_Object window) { return decode_valid_window (window)->new_pixel; @@ -3311,7 +3343,9 @@ run_window_configuration_change_hook (struct frame *f) = Fdefault_value (Qwindow_configuration_change_hook); XSETFRAME (frame, f); - if (NILP (Vrun_hooks) || !(f->official)) + if (NILP (Vrun_hooks) + || !(f->can_x_set_window_size) + || !(f->can_run_window_configuration_change_hook)) return; /* Use the right buffer. Matters when running the local hooks. */ @@ -3711,6 +3745,10 @@ Return SIZE. Optional argument ADD non-nil means add SIZE to the new pixel size of WINDOW and return the sum. +The new pixel size of WINDOW, if valid, will be shortly installed as +WINDOW's pixel height (see `window-pixel-height') or pixel width (see +`window-pixel-width'). + Note: This function does not operate on any child windows of WINDOW. */) (Lisp_Object window, Lisp_Object size, Lisp_Object add) { @@ -3735,6 +3773,10 @@ Return SIZE. Optional argument ADD non-nil means add SIZE to the new total size of WINDOW and return the sum. +The new total size of WINDOW, if valid, will be shortly installed as +WINDOW's total height (see `window-total-height') or total width (see +`window-total-width'). + Note: This function does not operate on any child windows of WINDOW. */) (Lisp_Object window, Lisp_Object size, Lisp_Object add) { @@ -3754,6 +3796,9 @@ DEFUN ("set-window-new-normal", Fset_window_new_normal, Sset_window_new_normal, WINDOW must be a valid window and defaults to the selected one. Return SIZE. +The new normal size of WINDOW, if valid, will be shortly installed as +WINDOW's normal size (see `window-normal-size'). + Note: This function does not operate on any child windows of WINDOW. */) (Lisp_Object window, Lisp_Object size) { @@ -4018,9 +4063,14 @@ If FRAME is omitted or nil, it defaults to the selected frame. Optional argument HORIZONTAL omitted or nil means apply requested height values. HORIZONTAL non-nil means apply requested width values. -This function checks whether the requested values sum up to a valid -window layout, recursively assigns the new sizes of all child windows -and calculates and assigns the new start positions of these windows. +The requested size values are those set by `set-window-new-pixel' and +`set-window-new-normal'. This function checks whether the requested +values sum up to a valid window layout, recursively assigns the new +sizes of all child windows and calculates and assigns the new start +positions of these windows. + +Return t if the requested values have been applied correctly, nil +otherwise. Note: This function does not check any of `window-fixed-size-p', `window-min-height' or `window-min-width'. All these checks have to @@ -4091,11 +4141,7 @@ values. */) /* Resize frame F's windows when number of lines of F is set to SIZE. HORFLAG 1 means resize windows when number of columns of F is set to - SIZE. PIXELWISE 1 means to interpret SIZE as pixels. - - This function can delete all windows but the selected one in order to - satisfy the request. The result will be meaningful if and only if - F's windows have meaningful sizes when you call this. */ + SIZE. PIXELWISE 1 means to interpret SIZE as pixels. */ void resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise) { @@ -4121,7 +4167,6 @@ resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise) new_pixel_size = max (horflag ? size : (size -/** - FRAME_TOP_MARGIN_HEIGHT (f) **/ - ((FRAME_HAS_MINIBUF_P (f) && !FRAME_MINIBUF_ONLY_P (f)) ? FRAME_LINE_HEIGHT (f) : 0)), @@ -4133,7 +4178,6 @@ resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise) new_size = max (horflag ? size : (size -/** - FRAME_TOP_MARGIN (f) **/ - ((FRAME_HAS_MINIBUF_P (f) && !FRAME_MINIBUF_ONLY_P (f)) ? 1 : 0)), @@ -4757,10 +4801,10 @@ DEFUN ("resize-mini-window-internal", Fresize_mini_window_internal, Sresize_mini block_input (); window_resize_apply (r, 0); - w->total_lines = XFASTINT (w->new_total); - w->top_line = r->top_line + r->total_lines; w->pixel_height = XFASTINT (w->new_pixel); + w->total_lines = w->pixel_height / FRAME_LINE_HEIGHT (f); w->pixel_top = r->pixel_top + r->pixel_height; + w->top_line = r->top_line + r->total_lines; fset_redisplay (f); FRAME_WINDOW_SIZES_CHANGED (f) = 1; @@ -4830,11 +4874,16 @@ window_internal_height (struct window *w) static void window_scroll (Lisp_Object window, EMACS_INT n, bool whole, int noerror) { + ptrdiff_t count = SPECPDL_INDEX (); + immediate_quit = 1; n = clip_to_bounds (INT_MIN, n, INT_MAX); wset_redisplay (XWINDOW (window)); + if (whole && Vfast_but_imprecise_scrolling) + specbind (Qfontification_functions, Qnil); + /* If we must, use the pixel-based version which is much slower than the line-based one but can handle varying line heights. */ if (FRAME_WINDOW_P (XFRAME (XWINDOW (window)->frame))) @@ -4842,6 +4891,8 @@ window_scroll (Lisp_Object window, EMACS_INT n, bool whole, int noerror) else window_scroll_line_based (window, n, whole, noerror); + unbind_to (count, Qnil); + /* Bug#15957. */ XWINDOW (window)->window_end_valid = 0; immediate_quit = 0; @@ -4893,8 +4944,8 @@ window_scroll_pixel_based (Lisp_Object window, int n, bool whole, int noerror) /* The function move_iterator_vertically may move over more than the specified y-distance. If it->w is small, e.g. a mini-buffer window, we may end up in front of the window's - display area. This is the case when Start displaying at the - start of the line containing PT in this case. */ + display area. Start displaying at the start of the line + containing PT in this case. */ if (it.current_y <= 0) { init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID); @@ -4911,9 +4962,14 @@ window_scroll_pixel_based (Lisp_Object window, int n, bool whole, int noerror) { int px; int dy = frame_line_height; + /* In the below we divide the window box height by the + frame's line height to make the result predictable when + the window box is not an integral multiple of the line + height. This is important to ensure we get back to the + same position when scrolling up, then down. */ if (whole) - dy = max ((window_box_height (w) - - next_screen_context_lines * dy), + dy = max ((window_box_height (w) / dy + - next_screen_context_lines) * dy, dy); dy *= n; @@ -4995,9 +5051,12 @@ window_scroll_pixel_based (Lisp_Object window, int n, bool whole, int noerror) { ptrdiff_t start_pos = IT_CHARPOS (it); int dy = frame_line_height; - - dy = max ((window_box_height (w) - - next_screen_context_lines * dy), + /* In the below we divide the window box height by the frame's + line height to make the result predictable when the window + box is not an integral multiple of the line height. This is + important to ensure we get back to the same position when + scrolling up, then down. */ + dy = max ((window_box_height (w) / dy - next_screen_context_lines) * dy, dy) * n; /* Note that move_it_vertically always moves the iterator to the @@ -5877,6 +5936,8 @@ and redisplay normally--don't erase and redraw the frame. */) w->start_at_line_beg = (bytepos == BEGV_BYTE || FETCH_BYTE (bytepos - 1) == '\n'); + wset_redisplay (w); + return Qnil; } @@ -6085,6 +6146,7 @@ the return value is nil. Otherwise the value is t. */) Lisp_Object frame; struct frame *f; ptrdiff_t old_point = -1; + USE_SAFE_ALLOCA; CHECK_WINDOW_CONFIGURATION (configuration); @@ -6164,8 +6226,8 @@ the return value is nil. Otherwise the value is t. */) call1 (Qrecord_window_buffer, window); } - /* Consider frame unofficial, temporarily. */ - f->official = false; + /* Disallow x_set_window_size, temporarily. */ + f->can_x_set_window_size = false; /* The mouse highlighting code could get screwed up if it runs during this. */ block_input (); @@ -6192,8 +6254,8 @@ the return value is nil. Otherwise the value is t. */) really like to do is to free only those matrices not reused below. */ root_window = XWINDOW (FRAME_ROOT_WINDOW (f)); - leaf_windows = alloca (count_windows (root_window) - * sizeof *leaf_windows); + int nwindows = count_windows (root_window); + SAFE_NALLOCA (leaf_windows, 1, nwindows); n_leaf_windows = get_leaf_windows (root_window, leaf_windows, 0); /* Kludge Alert! @@ -6374,10 +6436,10 @@ the return value is nil. Otherwise the value is t. */) ++n; } - /* Make frame official again and apply frame size changes if + /* Allow x_set_window_size again and apply frame size changes if needed. */ - f->official = true; - adjust_frame_size (f, -1, -1, 1, 0); + f->can_x_set_window_size = true; + adjust_frame_size (f, -1, -1, 1, 0, Qnil); adjust_frame_glyphs (f); unblock_input (); @@ -6417,424 +6479,11 @@ the return value is nil. Otherwise the value is t. */) Vminibuf_scroll_window = data->minibuf_scroll_window; minibuf_selected_window = data->minibuf_selected_window; + SAFE_FREE (); return (FRAME_LIVE_P (f) ? Qt : Qnil); } -#if 0 -DEFUN ("set-window-configuration", Fset_window_configuration, - Sset_window_configuration, 1, 1, 0, - doc: /* Set the configuration of windows and buffers as specified by CONFIGURATION. -CONFIGURATION must be a value previously returned -by `current-window-configuration' (which see). -If CONFIGURATION was made from a frame that is now deleted, -only frame-independent values can be restored. In this case, -the return value is nil. Otherwise the value is t. */) - (Lisp_Object configuration) -{ - register struct save_window_data *data; - struct Lisp_Vector *saved_windows; - Lisp_Object new_current_buffer; - Lisp_Object frame; - struct frame *f; - ptrdiff_t old_point = -1; - - CHECK_WINDOW_CONFIGURATION (configuration); - - data = (struct save_window_data *) XVECTOR (configuration); - saved_windows = XVECTOR (data->saved_windows); - - new_current_buffer = data->current_buffer; - if (!BUFFER_LIVE_P (XBUFFER (new_current_buffer))) - new_current_buffer = Qnil; - else - { - if (XBUFFER (new_current_buffer) == current_buffer) - /* The code further down "preserves point" by saving here PT in - old_point and then setting it later back into PT. When the - current-selected-window and the final-selected-window both show - the current buffer, this suffers from the problem that the - current PT is the window-point of the current-selected-window, - while the final PT is the point of the final-selected-window, so - this copy from one PT to the other would end up moving the - window-point of the final-selected-window to the window-point of - the current-selected-window. So we have to be careful which - point of the current-buffer we copy into old_point. */ - if (EQ (XWINDOW (data->current_window)->contents, new_current_buffer) - && WINDOWP (selected_window) - && EQ (XWINDOW (selected_window)->contents, new_current_buffer) - && !EQ (selected_window, data->current_window)) - old_point = marker_position (XWINDOW (data->current_window)->pointm); - else - old_point = PT; - else - /* BUF_PT (XBUFFER (new_current_buffer)) gives us the position of - point in new_current_buffer as of the last time this buffer was - used. This can be non-deterministic since it can be changed by - things like jit-lock by mere temporary selection of some random - window that happens to show this buffer. - So if possible we want this arbitrary choice of "which point" to - be the one from the to-be-selected-window so as to prevent this - window's cursor from being copied from another window. */ - if (EQ (XWINDOW (data->current_window)->contents, new_current_buffer) - /* If current_window = selected_window, its point is in BUF_PT. */ - && !EQ (selected_window, data->current_window)) - old_point = marker_position (XWINDOW (data->current_window)->pointm); - else - old_point = BUF_PT (XBUFFER (new_current_buffer)); - } - - frame = XWINDOW (SAVED_WINDOW_N (saved_windows, 0)->window)->frame; - f = XFRAME (frame); - - /* If f is a dead frame, don't bother rebuilding its window tree. - However, there is other stuff we should still try to do below. */ - if (FRAME_LIVE_P (f)) - { - Lisp_Object window; - Lisp_Object dead_windows = Qnil; - register Lisp_Object tem, par, pers; - register struct window *w; - register struct saved_window *p; - struct window *root_window; - struct window **leaf_windows; - int n_leaf_windows; - ptrdiff_t k; - int i, n; - ptrdiff_t count = SPECPDL_INDEX (); - /* If the frame has been resized since this window configuration was - made, we change the frame to the size specified in the - configuration, restore the configuration, and then resize it - back. We keep track of the prevailing height in these variables. */ - int previous_frame_text_height = FRAME_TEXT_HEIGHT (f); - int previous_frame_text_width = FRAME_TEXT_WIDTH (f); - /* int previous_frame_menu_bar_height = FRAME_MENU_BAR_HEIGHT (f); */ - /* int previous_frame_tool_bar_height = FRAME_TOOL_BAR_HEIGHT (f); */ - /* int previous_frame_lines = FRAME_LINES (f); */ - /* int previous_frame_cols = FRAME_COLS (f); */ - int previous_frame_menu_bar_lines = FRAME_MENU_BAR_LINES (f); - int previous_frame_tool_bar_lines = FRAME_TOOL_BAR_LINES (f); - - /* Don't do this within the main loop below: This may call Lisp - code and is thus potentially unsafe while input is blocked. */ - for (k = 0; k < saved_windows->header.size; k++) - { - p = SAVED_WINDOW_N (saved_windows, k); - window = p->window; - w = XWINDOW (window); - if (BUFFERP (w->contents) - && !EQ (w->contents, p->buffer) - && BUFFER_LIVE_P (XBUFFER (p->buffer))) - /* If a window we restore gets another buffer, record the - window's old buffer. */ - call1 (Qrecord_window_buffer, window); - } - - /* Consider frame unofficial, temporarily. */ - f->official = false; - /* The mouse highlighting code could get screwed up - if it runs during this. */ - block_input (); - - if (data->frame_text_width != previous_frame_text_width - || data->frame_text_height != previous_frame_text_height) - /* Make frame size fit the one in data, so window sizes restored - from data match those of the frame. */ - adjust_frame_size (f, data->frame_text_width, - data->frame_text_height, 5, 0); - - if (data->frame_menu_bar_lines != previous_frame_menu_bar_lines) - { -#ifdef HAVE_WINDOW_SYSTEM - if (FRAME_WINDOW_P (f)) - x_set_menu_bar_lines (f, make_number (data->frame_menu_bar_lines), - make_number (0)); - else /* TTY or MSDOS */ -#endif - set_menu_bar_lines (f, make_number (data->frame_menu_bar_lines), - make_number (0)); - } -#ifdef HAVE_WINDOW_SYSTEM - if (data->frame_tool_bar_lines != previous_frame_tool_bar_lines) - x_set_tool_bar_lines (f, make_number (data->frame_tool_bar_lines), - make_number (0)); -#endif - - /* "Swap out" point from the selected window's buffer - into the window itself. (Normally the pointm of the selected - window holds garbage.) We do this now, before - restoring the window contents, and prevent it from - being done later on when we select a new window. */ - if (! NILP (XWINDOW (selected_window)->contents)) - { - w = XWINDOW (selected_window); - set_marker_both (w->pointm, - w->contents, - BUF_PT (XBUFFER (w->contents)), - BUF_PT_BYTE (XBUFFER (w->contents))); - } - - fset_redisplay (f); - FRAME_WINDOW_SIZES_CHANGED (f) = 1; - - /* Problem: Freeing all matrices and later allocating them again - is a serious redisplay flickering problem. What we would - really like to do is to free only those matrices not reused - below. */ - root_window = XWINDOW (FRAME_ROOT_WINDOW (f)); - leaf_windows = alloca (count_windows (root_window) - * sizeof *leaf_windows); - n_leaf_windows = get_leaf_windows (root_window, leaf_windows, 0); - - /* Kludge Alert! - Mark all windows now on frame as "deleted". - Restoring the new configuration "undeletes" any that are in it. - - Save their current buffers in their height fields, since we may - need it later, if a buffer saved in the configuration is now - dead. */ - delete_all_child_windows (FRAME_ROOT_WINDOW (f)); - - for (k = 0; k < saved_windows->header.size; k++) - { - p = SAVED_WINDOW_N (saved_windows, k); - window = p->window; - w = XWINDOW (window); - wset_next (w, Qnil); - - if (!NILP (p->parent)) - wset_parent - (w, SAVED_WINDOW_N (saved_windows, XFASTINT (p->parent))->window); - else - wset_parent (w, Qnil); - - if (!NILP (p->prev)) - { - wset_prev - (w, SAVED_WINDOW_N (saved_windows, XFASTINT (p->prev))->window); - wset_next (XWINDOW (w->prev), p->window); - } - else - { - wset_prev (w, Qnil); - if (!NILP (w->parent)) - wset_combination (XWINDOW (w->parent), - (XINT (p->total_cols) - != XWINDOW (w->parent)->total_cols), - p->window); - } - - /* If we squirreled away the buffer, restore it now. */ - if (BUFFERP (w->combination_limit)) - wset_buffer (w, w->combination_limit); - w->pixel_left = XFASTINT (p->pixel_left); - w->pixel_top = XFASTINT (p->pixel_top); - w->pixel_width = XFASTINT (p->pixel_width); - w->pixel_height = XFASTINT (p->pixel_height); - w->left_col = XFASTINT (p->left_col); - w->top_line = XFASTINT (p->top_line); - w->total_cols = XFASTINT (p->total_cols); - w->total_lines = XFASTINT (p->total_lines); - wset_normal_cols (w, p->normal_cols); - wset_normal_lines (w, p->normal_lines); - w->hscroll = XFASTINT (p->hscroll); - w->suspend_auto_hscroll = !NILP (p->suspend_auto_hscroll); - w->min_hscroll = XFASTINT (p->min_hscroll); - w->hscroll_whole = XFASTINT (p->hscroll_whole); - wset_display_table (w, p->display_table); - w->left_margin_cols = XINT (p->left_margin_cols); - w->right_margin_cols = XINT (p->right_margin_cols); - w->left_fringe_width = XINT (p->left_fringe_width); - w->right_fringe_width = XINT (p->right_fringe_width); - w->fringes_outside_margins = !NILP (p->fringes_outside_margins); - w->scroll_bar_width = XINT (p->scroll_bar_width); - w->scroll_bar_height = XINT (p->scroll_bar_height); - wset_vertical_scroll_bar_type (w, p->vertical_scroll_bar_type); - wset_horizontal_scroll_bar_type (w, p->horizontal_scroll_bar_type); - wset_dedicated (w, p->dedicated); - wset_combination_limit (w, p->combination_limit); - /* Restore any window parameters that have been saved. - Parameters that have not been saved are left alone. */ - for (tem = p->window_parameters; CONSP (tem); tem = XCDR (tem)) - { - pers = XCAR (tem); - if (CONSP (pers)) - { - if (NILP (XCDR (pers))) - { - par = Fassq (XCAR (pers), w->window_parameters); - if (CONSP (par) && !NILP (XCDR (par))) - /* Reset a parameter to nil if and only if it - has a non-nil association. Don't make new - associations. */ - Fsetcdr (par, Qnil); - } - else - /* Always restore a non-nil value. */ - Fset_window_parameter (window, XCAR (pers), XCDR (pers)); - } - } - - if (BUFFERP (p->buffer) && BUFFER_LIVE_P (XBUFFER (p->buffer))) - /* If saved buffer is alive, install it. */ - { - wset_buffer (w, p->buffer); - w->start_at_line_beg = !NILP (p->start_at_line_beg); - set_marker_restricted (w->start, p->start, w->contents); - set_marker_restricted (w->pointm, p->pointm, w->contents); - set_marker_restricted (w->old_pointm, p->old_pointm, w->contents); - /* As documented in Fcurrent_window_configuration, don't - restore the location of point in the buffer which was - current when the window configuration was recorded. */ - if (!EQ (p->buffer, new_current_buffer) - && XBUFFER (p->buffer) == current_buffer) - Fgoto_char (w->pointm); - } - else if (BUFFERP (w->contents) && BUFFER_LIVE_P (XBUFFER (w->contents))) - /* Keep window's old buffer; make sure the markers are real. */ - { - /* Set window markers at start of visible range. */ - if (XMARKER (w->start)->buffer == 0) - set_marker_restricted_both (w->start, w->contents, 0, 0); - if (XMARKER (w->pointm)->buffer == 0) - set_marker_restricted_both - (w->pointm, w->contents, - BUF_PT (XBUFFER (w->contents)), - BUF_PT_BYTE (XBUFFER (w->contents))); - if (XMARKER (w->old_pointm)->buffer == 0) - set_marker_restricted_both - (w->old_pointm, w->contents, - BUF_PT (XBUFFER (w->contents)), - BUF_PT_BYTE (XBUFFER (w->contents))); - w->start_at_line_beg = 1; - } - else if (!NILP (w->start)) - /* Leaf window has no live buffer, get one. */ - { - /* Get the buffer via other_buffer_safely in order to - avoid showing an unimportant buffer and, if necessary, to - recreate *scratch* in the course (part of Juanma's bs-show - scenario from March 2011). */ - wset_buffer (w, other_buffer_safely (Fcurrent_buffer ())); - /* This will set the markers to beginning of visible - range. */ - set_marker_restricted_both (w->start, w->contents, 0, 0); - set_marker_restricted_both (w->pointm, w->contents, 0, 0); - set_marker_restricted_both (w->old_pointm, w->contents, 0, 0); - w->start_at_line_beg = 1; - if (!NILP (w->dedicated)) - /* Record this window as dead. */ - dead_windows = Fcons (window, dead_windows); - /* Make sure window is no more dedicated. */ - wset_dedicated (w, Qnil); - } - } - - fset_root_window (f, data->root_window); - /* Arrange *not* to restore point in the buffer that was - current when the window configuration was saved. */ - if (EQ (XWINDOW (data->current_window)->contents, new_current_buffer)) - set_marker_restricted (XWINDOW (data->current_window)->pointm, - make_number (old_point), - XWINDOW (data->current_window)->contents); - - /* In the following call to `select-window', prevent "swapping out - point" in the old selected window using the buffer that has - been restored into it. We already swapped out that point from - that window's old buffer. - - Do not record the buffer here. We do that in a separate call - to select_window below. See also Bug#16207. */ - select_window (data->current_window, Qt, 1); - BVAR (XBUFFER (XWINDOW (selected_window)->contents), - last_selected_window) - = selected_window; - - if (NILP (data->focus_frame) - || (FRAMEP (data->focus_frame) - && FRAME_LIVE_P (XFRAME (data->focus_frame)))) - Fredirect_frame_focus (frame, data->focus_frame); - - /* Set the frame size to the value it had before this function. */ - if (previous_frame_text_width != FRAME_TEXT_WIDTH (f) - || previous_frame_text_height != FRAME_TEXT_HEIGHT (f)) - adjust_frame_size (f, previous_frame_text_width, - previous_frame_text_height, 5, 0); - - if (previous_frame_menu_bar_lines != FRAME_MENU_BAR_LINES (f)) - { -#ifdef HAVE_WINDOW_SYSTEM - if (FRAME_WINDOW_P (f)) - x_set_menu_bar_lines (f, - make_number (previous_frame_menu_bar_lines), - make_number (0)); - else /* TTY or MSDOS */ -#endif - set_menu_bar_lines (f, make_number (previous_frame_menu_bar_lines), - make_number (0)); - } -#ifdef HAVE_WINDOW_SYSTEM - if (previous_frame_tool_bar_lines != FRAME_TOOL_BAR_LINES (f)) - x_set_tool_bar_lines (f, make_number (previous_frame_tool_bar_lines), - make_number (0)); -#endif - - /* Now, free glyph matrices in windows that were not reused. */ - for (i = n = 0; i < n_leaf_windows; ++i) - { - if (NILP (leaf_windows[i]->contents)) - free_window_matrices (leaf_windows[i]); - else if (EQ (leaf_windows[i]->contents, new_current_buffer)) - ++n; - } - - /* Make frame official again and apply frame size changes if - needed. */ - f->official = true; - adjust_frame_size (f, -1, -1, 1, 0); - - adjust_frame_glyphs (f); - unblock_input (); - - /* Scan dead buffer windows. */ - for (; CONSP (dead_windows); dead_windows = XCDR (dead_windows)) - { - window = XCAR (dead_windows); - if (WINDOW_LIVE_P (window) && !EQ (window, FRAME_ROOT_WINDOW (f))) - delete_deletable_window (window); - } - - /* Record the selected window's buffer here. The window should - already be the selected one from the call above. */ - select_window (data->current_window, Qnil, 0); - - /* Fselect_window will have made f the selected frame, so we - reselect the proper frame here. Fhandle_switch_frame will change the - selected window too, but that doesn't make the call to - Fselect_window above totally superfluous; it still sets f's - selected window. */ - if (FRAME_LIVE_P (XFRAME (data->selected_frame))) - do_switch_frame (data->selected_frame, 0, 0, Qnil); - - run_window_configuration_change_hook (f); - } - - if (!NILP (new_current_buffer)) - { - Fset_buffer (new_current_buffer); - /* If the new current buffer doesn't appear in the selected - window, go to its old point (see bug#12208). */ - if (!EQ (XWINDOW (data->current_window)->contents, new_current_buffer)) - Fgoto_char (make_number (old_point)); - } - - Vminibuf_scroll_window = data->minibuf_scroll_window; - minibuf_selected_window = data->minibuf_selected_window; - - return (FRAME_LIVE_P (f) ? Qt : Qnil); -} -#endif - void restore_window_configuration (Lisp_Object configuration) { @@ -7308,7 +6957,6 @@ set_window_scroll_bars (struct window *w, Lisp_Object width, Lisp_Object horizontal_type) { int iwidth = (NILP (width) ? -1 : (CHECK_NATNUM (width), XINT (width))); - int iheight = (NILP (height) ? -1 : (CHECK_NATNUM (height), XINT (height))); bool changed = 0; if (iwidth == 0) @@ -7336,29 +6984,37 @@ set_window_scroll_bars (struct window *w, Lisp_Object width, } } - if (MINI_WINDOW_P (w) || iheight == 0) - horizontal_type = Qnil; +#if USE_HORIZONTAL_SCROLL_BARS + { + int iheight = (NILP (height) ? -1 : (CHECK_NATNUM (height), XINT (height))); - if (!(NILP (horizontal_type) - || EQ (horizontal_type, Qbottom) - || EQ (horizontal_type, Qt))) - error ("Invalid type of horizontal scroll bar"); + if (MINI_WINDOW_P (w) || iheight == 0) + horizontal_type = Qnil; - if (w->scroll_bar_height != iheight - || !EQ (w->horizontal_scroll_bar_type, horizontal_type)) - { - /* Don't change anything if new scroll bar won't fit. */ - if ((WINDOW_PIXEL_HEIGHT (w) - - WINDOW_HEADER_LINE_HEIGHT (w) - - WINDOW_MODE_LINE_HEIGHT (w) - - max (iheight, 0)) - >= MIN_SAFE_WINDOW_PIXEL_HEIGHT (w)) - { - w->scroll_bar_height = iheight; - wset_horizontal_scroll_bar_type (w, horizontal_type); - changed = 1; - } - } + if (!(NILP (horizontal_type) + || EQ (horizontal_type, Qbottom) + || EQ (horizontal_type, Qt))) + error ("Invalid type of horizontal scroll bar"); + + if (w->scroll_bar_height != iheight + || !EQ (w->horizontal_scroll_bar_type, horizontal_type)) + { + /* Don't change anything if new scroll bar won't fit. */ + if ((WINDOW_PIXEL_HEIGHT (w) + - WINDOW_HEADER_LINE_HEIGHT (w) + - WINDOW_MODE_LINE_HEIGHT (w) + - max (iheight, 0)) + >= MIN_SAFE_WINDOW_PIXEL_HEIGHT (w)) + { + w->scroll_bar_height = iheight; + wset_horizontal_scroll_bar_type (w, horizontal_type); + changed = 1; + } + } + } +#else + wset_horizontal_scroll_bar_type (w, Qnil); +#endif return changed ? w : NULL; } @@ -7368,16 +7024,17 @@ DEFUN ("set-window-scroll-bars", Fset_window_scroll_bars, doc: /* Set width and type of scroll bars of window WINDOW. WINDOW must be a live window and defaults to the selected one. -Second parameter WIDTH specifies the pixel width for the scroll bar. +Second parameter WIDTH specifies the pixel width for the vertical scroll +bar. If WIDTH is nil, use the scroll-bar width of WINDOW's frame. Third parameter VERTICAL-TYPE specifies the type of the vertical scroll -bar: left, right, or nil. If WIDTH is nil, use the frame's scroll-bar -width. If VERTICAL-TYPE is t, use the frame's scroll-bar type. +bar: left, right, or nil. If VERTICAL-TYPE is t, this means use the +frame's scroll-bar type. -Fourth parameter HEIGHT specifies the pixel height for the scroll bar. -Fifth parameter HORIZONTAL-TYPE specifies the type of the vertical -scroll bar: nil, bottom, or t. If HEIGHT is nil, use the frame's -scroll-bar height. If HORIZONTAL-TYPE is t, use the frame's scroll-bar -type. +Fourth parameter HEIGHT specifies the pixel height for the horizontal +scroll bar. If HEIGHT is nil, use the scroll-bar height of WINDOW's +frame. Fifth parameter HORIZONTAL-TYPE specifies the type of the +horizontal scroll bar: nil, bottom, or t. If HORIZONTAL-TYPE is t, this +means to use the frame's horizontal scroll-bar type. Return t if scroll bars were actually changed and nil otherwise. */) (Lisp_Object window, Lisp_Object width, Lisp_Object vertical_type, @@ -7395,17 +7052,22 @@ DEFUN ("window-scroll-bars", Fwindow_scroll_bars, Swindow_scroll_bars, doc: /* Get width and type of scroll bars of window WINDOW. WINDOW must be a live window and defaults to the selected one. -Value is a list of the form (WIDTH COLS VERTICAL-TYPE HEIGHT LINES -HORIZONTAL-TYPE). If WIDTH or HEIGHT is nil or TYPE is t, the window is -using the frame's corresponding value. */) +Value is a list of the form (WIDTH COLUMNS VERTICAL-TYPE HEIGHT LINES +HORIZONTAL-TYPE). If WIDTH or HEIGHT is nil or VERTICAL-TYPE or +HORIZONTAL-TYPE is t, the window is using the frame's corresponding +value. */) (Lisp_Object window) { struct window *w = decode_live_window (window); - return Fcons (make_number (WINDOW_SCROLL_BAR_AREA_WIDTH (w)), + return Fcons (((w->scroll_bar_width >= 0) + ? make_number (w->scroll_bar_width) + : Qnil), list5 (make_number (WINDOW_SCROLL_BAR_COLS (w)), w->vertical_scroll_bar_type, - make_number (WINDOW_SCROLL_BAR_AREA_HEIGHT (w)), + ((w->scroll_bar_height >= 0) + ? make_number (w->scroll_bar_height) + : Qnil), make_number (WINDOW_SCROLL_BAR_LINES (w)), w->horizontal_scroll_bar_type)); } @@ -7695,7 +7357,7 @@ the buffer; `temp-buffer-show-hook' is not run unless this function runs it. */ doc: /* Non-nil means to use `mode-line-inactive' face in non-selected windows. If the minibuffer is active, the `minibuffer-scroll-window' mode line is displayed in the `mode-line' face. */); - mode_line_in_non_selected_windows = 1; + mode_line_in_non_selected_windows = true; DEFVAR_LISP ("other-window-scroll-buffer", Vother_window_scroll_buffer, doc: /* If this is a live buffer, \\[scroll-other-window] should scroll its window. */); @@ -7703,7 +7365,7 @@ is displayed in the `mode-line' face. */); DEFVAR_BOOL ("auto-window-vscroll", auto_window_vscroll_p, doc: /* Non-nil means to automatically adjust `window-vscroll' to view tall lines. */); - auto_window_vscroll_p = 1; + auto_window_vscroll_p = true; DEFVAR_INT ("next-screen-context-lines", next_screen_context_lines, doc: /* Number of lines of continuity when scrolling by screenfuls. */); @@ -7826,7 +7488,18 @@ all functions that symmetrically resize a parent window. Note that when a frame's pixel size is not a multiple of the frame's character size, at least one window may get resized pixelwise even if this option is nil. */); - window_resize_pixelwise = 0; + window_resize_pixelwise = false; + + DEFVAR_BOOL ("fast-but-imprecise-scrolling", + Vfast_but_imprecise_scrolling, + doc: /* When non-nil, accelerate scrolling operations. +This comes into play when scrolling rapidly over previously +unfontified buffer regions. Only those portions of the buffer which +are actually going to be displayed get fontified. + +Note that this optimization can cause the portion of the buffer +displayed after a scrolling operation to be somewhat inaccurate. */); + Vfast_but_imprecise_scrolling = false; defsubr (&Sselected_window); defsubr (&Sminibuffer_window); diff --git a/src/window.h b/src/window.h index cdf8da93138..4e4c65b83e6 100644 --- a/src/window.h +++ b/src/window.h @@ -519,7 +519,7 @@ wset_next_buffers (struct window *w, Lisp_Object val) #define WINDOW_FRAME_COLUMN_WIDTH(W) \ (FRAME_COLUMN_WIDTH (WINDOW_XFRAME ((W)))) -/* Return the canonical column width of the frame of window W. */ +/* Return the canonical line height of the frame of window W. */ #define WINDOW_FRAME_LINE_HEIGHT(W) \ (FRAME_LINE_HEIGHT (WINDOW_XFRAME ((W)))) @@ -785,9 +785,17 @@ wset_next_buffers (struct window *w, Lisp_Object val) (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (W) \ || WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (W)) +#if (defined (HAVE_WINDOW_SYSTEM) \ + && ((defined (USE_TOOLKIT_SCROLL_BARS) && !defined (HAVE_NS)) \ + || defined (HAVE_NTGUI))) +# define USE_HORIZONTAL_SCROLL_BARS true +#else +# define USE_HORIZONTAL_SCROLL_BARS false +#endif + /* Say whether horizontal scroll bars are currently enabled for window W. Horizontal scrollbars exist for toolkit versions only. */ -#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NTGUI) +#if USE_HORIZONTAL_SCROLL_BARS #define WINDOW_HAS_HORIZONTAL_SCROLL_BAR(W) \ ((WINDOW_PSEUDO_P (W) || MINI_NON_ONLY_WINDOW_P (W)) \ ? false \ diff --git a/src/xdisp.c b/src/xdisp.c index 7a00e29a191..707418218f0 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -351,7 +351,7 @@ Lisp_Object Qtext; /* Holds the list (error). */ static Lisp_Object list_of_error; -static Lisp_Object Qfontification_functions; +Lisp_Object Qfontification_functions; static Lisp_Object Qwrap_prefix; static Lisp_Object Qline_prefix; @@ -909,7 +909,7 @@ static void iterate_out_of_display_property (struct it *); static void pop_it (struct it *); static void sync_frame_with_window_matrix_rows (struct window *); static void redisplay_internal (void); -static int echo_area_display (int); +static bool echo_area_display (bool); static void redisplay_windows (Lisp_Object); static void redisplay_window (Lisp_Object, bool); static Lisp_Object redisplay_window_error (Lisp_Object); @@ -1151,7 +1151,7 @@ window_box_left_offset (struct window *w, enum glyph_row_area area) area AREA of window W. ANY_AREA means return the right edge of the whole window, to the left of the right fringe of W. */ -int +static int window_box_right_offset (struct window *w, enum glyph_row_area area) { /* Don't return more than the window's pixel width. */ @@ -1462,15 +1462,19 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y, glyph. */ int top_x = it.current_x; int top_y = it.current_y; - /* Calling line_bottom_y may change it.method, it.position, etc. */ - enum it_method it_method = it.method; - int bottom_y = (last_height = 0, line_bottom_y (&it)); int window_top_y = WINDOW_HEADER_LINE_HEIGHT (w); + int bottom_y; + struct it save_it; + void *save_it_data = NULL; + /* Calling line_bottom_y may change it.method, it.position, etc. */ + SAVE_IT (save_it, it, save_it_data); + last_height = 0; + bottom_y = line_bottom_y (&it); if (top_y < window_top_y) visible_p = bottom_y > window_top_y; else if (top_y < it.last_visible_y) - visible_p = true; + visible_p = 1; if (bottom_y >= it.last_visible_y && it.bidi_p && it.bidi_it.scan_dir == -1 && IT_CHARPOS (it) < charpos) @@ -1483,7 +1487,6 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y, move_it_to again with a slightly larger vertical limit, and see if it actually moved vertically; if it did, we didn't really reach CHARPOS, which is beyond window end. */ - struct it save_it = it; /* Why 10? because we don't know how many canonical lines will the height of the next line(s) be. So we guess. */ int ten_more_lines = 10 * default_line_pixel_height (w); @@ -1493,11 +1496,11 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y, if (it.current_y > top_y) visible_p = 0; - it = save_it; } + RESTORE_IT (&it, &save_it, save_it_data); if (visible_p) { - if (it_method == GET_FROM_DISPLAY_VECTOR) + if (it.method == GET_FROM_DISPLAY_VECTOR) { /* We stopped on the last glyph of a display vector. Try and recompute. Hack alert! */ @@ -2181,7 +2184,10 @@ get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int if (s->x > r.x) { - r.width -= s->x - r.x; + if (r.width >= s->x - r.x) + r.width -= s->x - r.x; + else /* R2L hscrolled row with cursor outside text area */ + r.width = 0; r.x = s->x; } r.width = min (r.width, glyph->pixel_width); @@ -2303,10 +2309,7 @@ get_phys_cursor_geometry (struct window *w, struct glyph_row *row, glyph, and `x-stretch-block-cursor' is nil, don't draw a rectangle as wide as the glyph, but use a canonical character width instead. */ - wd = glyph->pixel_width - 1; -#if defined (HAVE_NTGUI) || defined (HAVE_NS) - wd++; /* Why? */ -#endif + wd = glyph->pixel_width; x = w->phys_cursor.x; if (x < 0) @@ -2542,7 +2545,7 @@ remember_mouse_glyph (struct frame *f, int gx, int gy, NativeRectangle *rect) gy = 0; /* The bottom divider prevails. */ height = WINDOW_PIXEL_HEIGHT (w) - WINDOW_BOTTOM_DIVIDER_WIDTH (w); - goto add_edge;; + goto add_edge; case ON_BOTTOM_DIVIDER: gx = 0; @@ -2630,15 +2633,14 @@ safe__call (bool inhibit_quit, ptrdiff_t nargs, Lisp_Object func, va_list ap) { ptrdiff_t i; ptrdiff_t count = SPECPDL_INDEX (); - struct gcpro gcpro1; - Lisp_Object *args = alloca (nargs * word_size); + Lisp_Object *args; + USE_SAFE_ALLOCA; + SAFE_ALLOCA_LISP (args, nargs); args[0] = func; for (i = 1; i < nargs; i++) args[i] = va_arg (ap, Lisp_Object); - GCPRO1 (args[0]); - gcpro1.nvars = nargs; specbind (Qinhibit_redisplay, Qt); if (inhibit_quit) specbind (Qinhibit_quit, Qt); @@ -2646,7 +2648,7 @@ safe__call (bool inhibit_quit, ptrdiff_t nargs, Lisp_Object func, va_list ap) so there is no possibility of wanting to redisplay. */ val = internal_condition_case_n (Ffuncall, nargs, args, Qt, safe_eval_handler); - UNGCPRO; + SAFE_FREE (); val = unbind_to (count, val); } @@ -2978,10 +2980,6 @@ init_iterator (struct it *it, struct window *w, it->glyph_row = row; it->area = TEXT_AREA; - /* Forget any previous info about this row being reversed. */ - if (it->glyph_row) - it->glyph_row->reversed_p = 0; - /* Get the dimensions of the display area. The display area consists of the visible window area plus a horizontally scrolled part to the left of the window. All x-values are relative to the @@ -3001,12 +2999,8 @@ init_iterator (struct it *it, struct window *w, /* If we truncate lines, leave room for the truncation glyph(s) at the right margin. Otherwise, leave room for the continuation - glyph(s). Done only if the window has no fringes. Since we - don't know at this point whether there will be any R2L lines in - the window, we reserve space for truncation/continuation glyphs - even if only one of the fringes is absent. */ - if (WINDOW_RIGHT_FRINGE_WIDTH (it->w) == 0 - || (it->bidi_p && WINDOW_LEFT_FRINGE_WIDTH (it->w) == 0)) + glyph(s). Done only if the window has no right fringe. */ + if (WINDOW_RIGHT_FRINGE_WIDTH (it->w) == 0) { if (it->line_wrap == TRUNCATE) it->last_visible_x -= it->truncation_pixel_width; @@ -3071,6 +3065,19 @@ init_iterator (struct it *it, struct window *w, iterator. */ if (it->bidi_p) { + /* Since we don't know at this point whether there will be + any R2L lines in the window, we reserve space for + truncation/continuation glyphs even if only the left + fringe is absent. */ + if (base_face_id == DEFAULT_FACE_ID + && WINDOW_LEFT_FRINGE_WIDTH (it->w) == 0 + && WINDOW_RIGHT_FRINGE_WIDTH (it->w) != 0) + { + if (it->line_wrap == TRUNCATE) + it->last_visible_x -= it->truncation_pixel_width; + else + it->last_visible_x -= it->continuation_pixel_width; + } /* Note the paragraph direction that this buffer wants to use. */ if (EQ (BVAR (current_buffer, bidi_paragraph_direction), @@ -3424,6 +3431,48 @@ handle_stop (struct it *it) if (it->selective_display_ellipsis_p) it->saved_face_id = it->face_id; + /* Here's the description of the semantics of, and the logic behind, + the various HANDLED_* statuses: + + HANDLED_NORMALLY means the handler did its job, and the loop + should proceed to calling the next handler in order. + + HANDLED_RECOMPUTE_PROPS means the handler caused a significant + change in the properties and overlays at current position, so the + loop should be restarted, to re-invoke the handlers that were + already called. This happens when fontification-functions were + called by handle_fontified_prop, and actually fontified + something. Another case where HANDLED_RECOMPUTE_PROPS is + returned is when we discover overlay strings that need to be + displayed right away. The loop below will continue for as long + as the status is HANDLED_RECOMPUTE_PROPS. + + HANDLED_RETURN means return immediately to the caller, to + continue iteration without calling any further handlers. This is + used when we need to act on some property right away, for example + when we need to display the ellipsis or a replacing display + property, such as display string or image. + + HANDLED_OVERLAY_STRING_CONSUMED means an overlay string was just + consumed, and the handler switched to the next overlay string. + This signals the loop below to refrain from looking for more + overlays before all the overlay strings of the current overlay + are processed. + + Some of the handlers called by the loop push the iterator state + onto the stack (see 'push_it'), and arrange for the iteration to + continue with another object, such as an image, a display string, + or an overlay string. In most such cases, it->stop_charpos is + set to the first character of the string, so that when the + iteration resumes, this function will immediately be called + again, to examine the properties at the beginning of the string. + + When a display or overlay string is exhausted, the iterator state + is popped (see 'pop_it'), and iteration continues with the + previous object. Again, in many such cases this function is + called again to find the next position where properties might + change. */ + do { handled = HANDLED_NORMALLY; @@ -3625,6 +3674,7 @@ next_overlay_change (ptrdiff_t pos) ptrdiff_t i, noverlays; ptrdiff_t endpos; Lisp_Object *overlays; + USE_SAFE_ALLOCA; /* Get all overlays at the given position. */ GET_OVERLAYS_AT (pos, overlays, noverlays, &endpos, 1); @@ -3641,6 +3691,7 @@ next_overlay_change (ptrdiff_t pos) endpos = min (endpos, oendpos); } + SAFE_FREE (); return endpos; } @@ -5065,6 +5116,11 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, iterate_out_of_display_property (it); *position = it->position; } + /* If we were to display this fringe bitmap, + next_element_from_image would have reset this flag. + Do the same, to avoid affecting overlays that + follow. */ + it->ignore_overlay_strings_at_pos_p = 0; return 1; } } @@ -5084,12 +5140,15 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, iterate_out_of_display_property (it); *position = it->position; } + if (it) + /* Reset this flag like next_element_from_image would. */ + it->ignore_overlay_strings_at_pos_p = 0; return 1; } if (it) { - int face_id = lookup_basic_face (it->f, DEFAULT_FACE_ID);; + int face_id = lookup_basic_face (it->f, DEFAULT_FACE_ID); if (CONSP (XCDR (XCDR (spec)))) { @@ -5721,10 +5780,11 @@ load_overlay_strings (struct it *it, ptrdiff_t charpos) Lisp_Object overlay, window, str, invisible; struct Lisp_Overlay *ov; ptrdiff_t start, end; - ptrdiff_t size = 20; ptrdiff_t n = 0, i, j; int invis_p; - struct overlay_entry *entries = alloca (size * sizeof *entries); + struct overlay_entry entriesbuf[20]; + ptrdiff_t size = ARRAYELTS (entriesbuf); + struct overlay_entry *entries = entriesbuf; USE_SAFE_ALLOCA; if (charpos <= 0) @@ -6920,7 +6980,8 @@ get_next_display_element (struct it *it) is R..." */ /* FIXME: Do we need an exception for characters from display tables? */ - if (it->bidi_p && it->bidi_it.type == STRONG_R) + if (it->bidi_p && it->bidi_it.type == STRONG_R + && !inhibit_bidi_mirroring) it->c = bidi_mirror_char (it->c); /* Map via display table or translate control characters. IT->c, IT->len etc. have been set to the next character by @@ -8332,6 +8393,10 @@ next_element_from_buffer (struct it *it) unsigned char *p; ptrdiff_t stop; + /* We moved to the next buffer position, so any info about + previously seen overlays is no longer valid. */ + it->ignore_overlay_strings_at_pos_p = 0; + /* Maybe run the redisplay end trigger hook. Performance note: This doesn't seem to cost measurable time. */ if (it->redisplay_end_trigger_charpos @@ -8785,12 +8850,7 @@ move_it_in_display_line_to (struct it *it, doesn't fit on the line, e.g. a wide image. */ it->hpos == 0 || (new_x == it->last_visible_x - && FRAME_WINDOW_P (it->f) - /* When word-wrap is ON and we have a valid - wrap point, we don't allow the last glyph - to "just barely fit" on the line. */ - && (it->line_wrap != WORD_WRAP - || wrap_it.sp < 0))) + && FRAME_WINDOW_P (it->f))) { ++it->hpos; it->current_x = new_x; @@ -8857,7 +8917,8 @@ move_it_in_display_line_to (struct it *it, } if (ITERATOR_AT_END_OF_LINE_P (it) && (it->line_wrap != WORD_WRAP - || wrap_it.sp < 0)) + || wrap_it.sp < 0 + || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))) { result = MOVE_NEWLINE_OR_CR; break; @@ -9753,6 +9814,7 @@ move_it_by_lines (struct it *it, ptrdiff_t dvpos) back_to_previous_visible_line_start (it); it->vpos--; } + reseat_1 (it, it->current.pos, 1); } else RESTORE_IT (it, it, it2data); @@ -10206,9 +10268,9 @@ message3 (Lisp_Object m) { ptrdiff_t nbytes = SBYTES (m); bool multibyte = STRING_MULTIBYTE (m); + char *buffer; USE_SAFE_ALLOCA; - char *buffer = SAFE_ALLOCA (nbytes); - memcpy (buffer, SDATA (m), nbytes); + SAFE_ALLOCA_STRING (buffer, m); message_dolog (buffer, nbytes, 1, multibyte); SAFE_FREE (); } @@ -10269,9 +10331,9 @@ message3_nolog (Lisp_Object m) else clear_message (true, true); - do_pending_window_change (0); - echo_area_display (1); - do_pending_window_change (0); + do_pending_window_change (false); + echo_area_display (true); + do_pending_window_change (false); if (FRAME_TERMINAL (f)->frame_up_to_date_hook) (*FRAME_TERMINAL (f)->frame_up_to_date_hook) (f); } @@ -10410,11 +10472,13 @@ vmessage (const char *m, va_list ap) { ptrdiff_t len; ptrdiff_t maxsize = FRAME_MESSAGE_BUF_SIZE (f); - char *message_buf = alloca (maxsize + 1); + USE_SAFE_ALLOCA; + char *message_buf = SAFE_ALLOCA (maxsize + 1); len = doprnt (message_buf, maxsize, m, 0, ap); message3 (make_string (message_buf, len)); + SAFE_FREE (); } else message1 (0); @@ -11240,13 +11304,13 @@ clear_garbaged_frames (void) is non-zero update selected_frame. Value is non-zero if the mini-windows height has been changed. */ -static int -echo_area_display (int update_frame_p) +static bool +echo_area_display (bool update_frame_p) { Lisp_Object mini_window; struct window *w; struct frame *f; - int window_height_changed_p = 0; + bool window_height_changed_p = false; struct frame *sf = SELECTED_FRAME (); mini_window = FRAME_MINIBUF_WINDOW (sf); @@ -11309,11 +11373,11 @@ echo_area_display (int update_frame_p) /* Window configuration is the same as before. Can do with a display update of the echo area, unless we displayed some mode lines. */ - update_single_window (w, 1); + update_single_window (w); flush_frame (f); } else - update_frame (f, 1, 1); + update_frame (f, true, true); /* If cursor is in the echo area, make sure that the next redisplay displays the minibuffer, so that the cursor will @@ -11784,12 +11848,6 @@ prepare_menu_bars (void) menu_bar_hooks_run = update_menu_bar (f, 0, menu_bar_hooks_run); #ifdef HAVE_WINDOW_SYSTEM update_tool_bar (f, 0); -#endif -#ifdef HAVE_NS - if (windows_or_buffers_changed - && FRAME_NS_P (f)) - ns_set_doc_edited - (f, Fbuffer_modified_p (XWINDOW (f->selected_window)->contents)); #endif UNGCPRO; } @@ -12046,11 +12104,11 @@ static void build_desired_tool_bar_string (struct frame *f) { int i, size, size_needed; - struct gcpro gcpro1, gcpro2, gcpro3; - Lisp_Object image, plist, props; + struct gcpro gcpro1, gcpro2; + Lisp_Object image, plist; - image = plist = props = Qnil; - GCPRO3 (image, plist, props); + image = plist = Qnil; + GCPRO2 (image, plist); /* Prepare F->desired_tool_bar_string. If we can reuse it, do so. Otherwise, make a new string. */ @@ -12069,9 +12127,12 @@ build_desired_tool_bar_string (struct frame *f) (f, Fmake_string (make_number (size_needed), make_number (' '))); else { - props = list4 (Qdisplay, Qnil, Qmenu_item, Qnil); + AUTO_LIST4 (props, Qdisplay, Qnil, Qmenu_item, Qnil); + struct gcpro gcpro1; + GCPRO1 (props); Fremove_text_properties (make_number (0), make_number (size), props, f->desired_tool_bar_string); + UNGCPRO; } /* Put a `display' property on the string for the images to display, @@ -12182,8 +12243,10 @@ build_desired_tool_bar_string (struct frame *f) the start of this item's properties in the tool-bar items vector. */ image = Fcons (Qimage, plist); - props = list4 (Qdisplay, image, - Qmenu_item, make_number (i * TOOL_BAR_ITEM_NSLOTS)); + AUTO_LIST4 (props, Qdisplay, image, Qmenu_item, + make_number (i * TOOL_BAR_ITEM_NSLOTS)); + struct gcpro gcpro1; + GCPRO1 (props); /* Let the last image hide all remaining spaces in the tool bar string. The string can be longer than needed when we reuse a @@ -12194,6 +12257,7 @@ build_desired_tool_bar_string (struct frame *f) end = i + 1; Fadd_text_properties (make_number (i), make_number (end), props, f->desired_tool_bar_string); + UNGCPRO; #undef PROP } @@ -12350,6 +12414,7 @@ tool_bar_height (struct frame *f, int *n_rows, bool pixelwise) /* Initialize an iterator for iteration over F->desired_tool_bar_string in the tool-bar window of frame F. */ init_iterator (&it, w, -1, -1, temp_row, TOOL_BAR_FACE_ID); + temp_row->reversed_p = false; it.first_visible_x = 0; it.last_visible_x = WINDOW_PIXEL_WIDTH (w); reseat_to_string (&it, NULL, f->desired_tool_bar_string, 0, 0, 0, -1); @@ -12434,6 +12499,7 @@ redisplay_tool_bar (struct frame *f) it.first_visible_x = 0; it.last_visible_x = WINDOW_PIXEL_WIDTH (w); row = it.glyph_row; + row->reversed_p = false; /* Build a string that represents the contents of the tool-bar. */ build_desired_tool_bar_string (f); @@ -13425,7 +13491,7 @@ redisplay_internal (void) struct window *w = XWINDOW (selected_window); struct window *sw; struct frame *fr; - int pending; + bool pending; bool must_finish = 0, match_p; struct text_pos tlbufpos, tlendpos; int number_of_visible_frames; @@ -13485,7 +13551,7 @@ redisplay_internal (void) /* Remember the currently selected window. */ sw = w; - pending = 0; + pending = false; last_escape_glyph_frame = NULL; last_escape_glyph_face_id = (1 << FACE_ID_BITS); last_glyphless_glyph_frame = NULL; @@ -13537,7 +13603,7 @@ redisplay_internal (void) } /* Notice any pending interrupt request to change frame size. */ - do_pending_window_change (1); + do_pending_window_change (true); /* do_pending_window_change could change the selected_window due to frame resizing which makes the selected window too small. */ @@ -13563,6 +13629,12 @@ redisplay_internal (void) if (mode_line_update_needed (w)) w->update_mode_line = 1; + + /* If reconsider_clip_changes above decided that the narrowing + in the current buffer changed, make sure all other windows + showing that buffer will be redisplayed. */ + if (current_buffer->clip_changed) + bset_update_mode_line (current_buffer); } /* Normally the message* functions will have already displayed and @@ -13578,7 +13650,7 @@ redisplay_internal (void) echo-area doesn't show through. */ && !MINI_WINDOW_P (XWINDOW (selected_window)))) { - int window_height_changed_p = echo_area_display (0); + int window_height_changed_p = echo_area_display (false); if (message_cleared_p) update_miniwindow_p = true; @@ -13793,7 +13865,7 @@ redisplay_internal (void) { if (!must_finish) { - do_pending_window_change (1); + do_pending_window_change (true); /* If selected_window changed, redisplay again. */ if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw) @@ -13910,14 +13982,14 @@ redisplay_internal (void) if (f->fonts_changed) { adjust_frame_glyphs (f); - f->fonts_changed = 0; + f->fonts_changed = false; goto retry_frame; } /* See if we have to hscroll. */ if (!f->already_hscrolled_p) { - f->already_hscrolled_p = 1; + f->already_hscrolled_p = true; if (hscroll_windows (f->root_window)) goto retry_frame; } @@ -13929,9 +14001,9 @@ redisplay_internal (void) unrequest_sigio (); STOP_POLLING; - pending |= update_frame (f, 0, 0); - f->cursor_type_changed = 0; - f->updated_p = 1; + pending |= update_frame (f, false, false); + f->cursor_type_changed = false; + f->updated_p = true; } } } @@ -13992,8 +14064,8 @@ redisplay_internal (void) goto retry; XWINDOW (selected_window)->must_be_updated_p = true; - pending = update_frame (sf, 0, 0); - sf->cursor_type_changed = 0; + pending = update_frame (sf, false, false); + sf->cursor_type_changed = false; } /* We may have called echo_area_display at the top of this @@ -14007,8 +14079,8 @@ redisplay_internal (void) if (mini_frame != sf && FRAME_WINDOW_P (mini_frame)) { XWINDOW (mini_window)->must_be_updated_p = true; - pending |= update_frame (mini_frame, 0, 0); - mini_frame->cursor_type_changed = 0; + pending |= update_frame (mini_frame, false, false); + mini_frame->cursor_type_changed = false; if (!pending && hscroll_windows (mini_window)) goto retry; } @@ -14085,7 +14157,7 @@ redisplay_internal (void) } /* Change frame size now if a change is pending. */ - do_pending_window_change (1); + do_pending_window_change (true); /* If we just did a pending size change, or have additional visible frames, or selected_window changed, redisplay again. */ @@ -14101,7 +14173,7 @@ redisplay_internal (void) if (clear_face_cache_count > CLEAR_FACE_CACHE_COUNT) { - clear_face_cache (0); + clear_face_cache (false); clear_face_cache_count = 0; } @@ -14114,6 +14186,9 @@ redisplay_internal (void) #endif /* HAVE_WINDOW_SYSTEM */ end_of_redisplay: +#ifdef HAVE_NS + ns_set_doc_edited (); +#endif if (interrupt_input && interrupts_deferred) request_sigio (); @@ -14142,9 +14217,9 @@ redisplay_preserve_echo_area (int from_where) { /* We have a previously displayed message, but no current message. Redisplay the previous message. */ - display_last_displayed_message_p = 1; + display_last_displayed_message_p = true; redisplay_internal (); - display_last_displayed_message_p = 0; + display_last_displayed_message_p = false; } else redisplay_internal (); @@ -14993,6 +15068,10 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp) If FORCE_P is non-zero, return 0 even if partial visible cursor row is higher than window. + If CURRENT_MATRIX_P is non-zero, use the information from the + window's current glyph matrix; otherwise use the desired glyph + matrix. + A value of 0 means the caller should do scrolling as if point had gone off the screen. */ @@ -15188,8 +15267,8 @@ try_scrolling (Lisp_Object window, int just_this_one_p, non-zero margins, because scroll_up_aggressively means put point that fraction of window height _from_the_bottom_margin_. */ - if (aggressive_scroll + 2*this_scroll_margin > height) - aggressive_scroll = height - 2*this_scroll_margin; + if (aggressive_scroll + 2 * this_scroll_margin > height) + aggressive_scroll = height - 2 * this_scroll_margin; amount_to_scroll = dy + aggressive_scroll; } } @@ -15282,8 +15361,8 @@ try_scrolling (Lisp_Object window, int just_this_one_p, start_display (&it, w, startp); if (arg_scroll_conservatively) - amount_to_scroll = max (dy, frame_line_height * - max (scroll_step, temp_scroll_step)); + amount_to_scroll = max (dy, frame_line_height + * max (scroll_step, temp_scroll_step)); else if (scroll_step || temp_scroll_step) amount_to_scroll = scroll_max; else @@ -15300,8 +15379,8 @@ try_scrolling (Lisp_Object window, int just_this_one_p, bottom of the window, if the value of scroll_down_aggressively happens to be too large. */ - if (aggressive_scroll + 2*this_scroll_margin > height) - aggressive_scroll = height - 2*this_scroll_margin; + if (aggressive_scroll + 2 * this_scroll_margin > height) + aggressive_scroll = height - 2 * this_scroll_margin; amount_to_scroll = dy + aggressive_scroll; } } @@ -15842,7 +15921,7 @@ set_vertical_scroll_bar (struct window *w) void set_horizontal_scroll_bar (struct window *w) { - int start, end, whole, box_width; + int start, end, whole, portion; if (!MINI_WINDOW_P (w) || (w == XWINDOW (minibuf_window) @@ -15869,27 +15948,38 @@ set_horizontal_scroll_bar (struct window *w) MOVE_TO_POS | MOVE_TO_X | MOVE_TO_Y); */ start = w->hscroll * FRAME_COLUMN_WIDTH (WINDOW_XFRAME (w)); - box_width = window_box_width (w, TEXT_AREA); - end = start + box_width; + end = start + window_box_width (w, TEXT_AREA); + portion = end - start; + /* After enlarging a horizontally scrolled window such that it + gets at least as wide as the text it contains, make sure that + the thumb doesn't fill the entire scroll bar so we can still + drag it back to see the entire text. */ + whole = max (whole, end); - /* The following is needed to ensure that if after maximizing a - window we get hscroll > 0, we can still drag the thumb to the - left. */ - whole = max (whole, w->hscroll + box_width); - whole = max (whole, end - start); + if (it.bidi_p) + { + Lisp_Object pdir; + + pdir = Fcurrent_bidi_paragraph_direction (Qnil); + if (EQ (pdir, Qright_to_left)) + { + start = whole - end; + end = start + portion; + } + } if (old_buffer) set_buffer_internal (old_buffer); } else - start = end = whole = 0; + start = end = whole = portion = 0; w->hscroll_whole = whole; /* Indicate what this scroll bar ought to be displaying now. */ if (FRAME_TERMINAL (XFRAME (w->frame))->set_horizontal_scroll_bar_hook) (*FRAME_TERMINAL (XFRAME (w->frame))->set_horizontal_scroll_bar_hook) - (w, end - start, whole, start); + (w, portion, whole, start); } @@ -16155,26 +16245,48 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) /* If someone specified a new starting point but did not insist, check whether it can be used. */ - if (w->optional_new_start + if ((w->optional_new_start || window_frozen_p (w)) && CHARPOS (startp) >= BEGV && CHARPOS (startp) <= ZV) { + ptrdiff_t it_charpos; + w->optional_new_start = 0; start_display (&it, w, startp); move_it_to (&it, PT, 0, it.last_visible_y, -1, MOVE_TO_POS | MOVE_TO_X | MOVE_TO_Y); - if (IT_CHARPOS (it) == PT) - w->force_start = 1; - /* IT may overshoot PT if text at PT is invisible. */ - else if (IT_CHARPOS (it) > PT && CHARPOS (startp) <= PT) - w->force_start = 1; + /* Record IT's position now, since line_bottom_y might change + that. */ + it_charpos = IT_CHARPOS (it); + /* Make sure we set the force_start flag only if the cursor row + will be fully visible. Otherwise, the code under force_start + label below will try to move point back into view, which is + not what the code which sets optional_new_start wants. */ + if ((it.current_y == 0 || line_bottom_y (&it) < it.last_visible_y) + && !w->force_start) + { + if (it_charpos == PT) + w->force_start = 1; + /* IT may overshoot PT if text at PT is invisible. */ + else if (it_charpos > PT && CHARPOS (startp) <= PT) + w->force_start = 1; +#ifdef GLYPH_DEBUG + if (w->force_start) + { + if (window_frozen_p (w)) + debug_method_add (w, "set force_start from frozen window start"); + else + debug_method_add (w, "set force_start from optional_new_start"); + } +#endif + } } force_start: /* Handle case where place to start displaying has been specified, unless the specified location is outside the accessible range. */ - if (w->force_start || window_frozen_p (w)) + if (w->force_start) { /* We set this later on if we have to adjust point. */ int new_vpos = -1; @@ -16219,7 +16331,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) goto need_larger_matrices; } - if (w->cursor.vpos < 0 && !window_frozen_p (w)) + if (w->cursor.vpos < 0) { /* If point does not appear, try to move point so it does appear. The desired matrix has been built above, so we @@ -16301,16 +16413,29 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) set_cursor_from_row (w, row, w->desired_matrix, 0, 0, 0, 0); - /* If we are highlighting the region, then we just changed - the region, so redisplay to show it. */ - /* FIXME: We need to (re)run pre-redisplay-function! */ - /* if (markpos_of_region () >= 0) + /* Re-run pre-redisplay-function so it can update the region + according to the new position of point. */ + /* Other than the cursor, w's redisplay is done so we can set its + redisplay to false. Also the buffer's redisplay can be set to + false, since propagate_buffer_redisplay should have already + propagated its info to `w' anyway. */ + w->redisplay = false; + XBUFFER (w->contents)->text->redisplay = false; + safe__call1 (true, Vpre_redisplay_function, Fcons (window, Qnil)); + + if (w->redisplay || XBUFFER (w->contents)->text->redisplay) { + /* pre-redisplay-function made changes (e.g. move the region) + that require another round of redisplay. */ clear_glyph_matrix (w->desired_matrix); if (!try_window (window, startp, 0)) goto need_larger_matrices; } - */ + } + if (w->cursor.vpos < 0 || !cursor_row_fully_visible_p (w, 0, 0)) + { + clear_glyph_matrix (w->desired_matrix); + goto try_to_scroll; } #ifdef GLYPH_DEBUG @@ -16376,7 +16501,8 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) || CHARPOS (startp) == BEGV || !window_outdated (w))) { - int d1, d2, d3, d4, d5, d6; + int d1, d2, d5, d6; + int rtop, rbot; /* If first window line is a continuation line, and window start is inside the modified region, but the first change is before @@ -16401,14 +16527,20 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) && compute_window_start_on_continuation_line (w) /* It doesn't make sense to force the window start like we do at label force_start if it is already known that point - will not be visible in the resulting window, because + will not be fully visible in the resulting window, because doing so will move point from its correct position instead of scrolling the window to bring point into view. See bug#9324. */ - && pos_visible_p (w, PT, &d1, &d2, &d3, &d4, &d5, &d6)) + && pos_visible_p (w, PT, &d1, &d2, &rtop, &rbot, &d5, &d6) + /* A very tall row could need more than the window height, + in which case we accept that it is partially visible. */ + && (rtop != 0) == (rbot != 0)) { w->force_start = 1; SET_TEXT_POS_FROM_MARKER (startp, w->start); +#ifdef GLYPH_DEBUG + debug_method_add (w, "recomputed window start in continuation line"); +#endif goto force_start; } @@ -16519,8 +16651,8 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) { int window_total_lines = WINDOW_TOTAL_LINES (w) * FRAME_LINE_HEIGHT (f) / frame_line_height; - int margin = - scroll_margin > 0 + int margin + = scroll_margin > 0 ? min (scroll_margin, window_total_lines / 4) : 0; ptrdiff_t margin_pos = CHARPOS (startp); @@ -16950,6 +17082,7 @@ try_window (Lisp_Object window, struct text_pos pos, int flags) /* Initialize iterator and info to start at POS. */ start_display (&it, w, pos); + it.glyph_row->reversed_p = false; @@ -17147,6 +17280,7 @@ try_window_reusing_current_matrix (struct window *w) && it.current.dpvec_index < 0) break; + it.glyph_row->reversed_p = false; if (display_line (&it)) last_text_row = it.glyph_row - 1; @@ -18174,6 +18308,11 @@ try_window_id (struct window *w) w->cursor.vpos = -1; last_text_row = NULL; overlay_arrow_seen = 0; + if (it.current_y < it.last_visible_y + && !f->fonts_changed + && (first_unchanged_at_end_row == NULL + || IT_CHARPOS (it) < stop_pos)) + it.glyph_row->reversed_p = false; while (it.current_y < it.last_visible_y && !f->fonts_changed && (first_unchanged_at_end_row == NULL @@ -18741,10 +18880,10 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs) else if (glyphs == 1) { int area; + char s[SHRT_MAX + 4]; for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) { - char *s = alloca (row->used[area] + 4); int i; for (i = 0; i < row->used[area]; ++i) @@ -18779,7 +18918,10 @@ DEFUN ("dump-glyph-matrix", Fdump_glyph_matrix, doc: /* Dump the current matrix of the selected window to stderr. Shows contents of glyph row structures. With non-nil parameter GLYPHS, dump glyphs as well. If GLYPHS is 1 show -glyphs in short form, otherwise show glyphs in long form. */) +glyphs in short form, otherwise show glyphs in long form. + +Interactively, no argument means show glyphs in short form; +with numeric argument, its value is passed as the GLYPHS flag. */) (Lisp_Object glyphs) { struct window *w = XWINDOW (selected_window); @@ -18797,11 +18939,16 @@ glyphs in short form, otherwise show glyphs in long form. */) DEFUN ("dump-frame-glyph-matrix", Fdump_frame_glyph_matrix, - Sdump_frame_glyph_matrix, 0, 0, "", doc: /* */) + Sdump_frame_glyph_matrix, 0, 0, "", doc: /* Dump the current glyph matrix of the selected frame to stderr. +Only text-mode frames have frame glyph matrices. */) (void) { struct frame *f = XFRAME (selected_frame); - dump_glyph_matrix (f->current_matrix, 1); + + if (f->current_matrix) + dump_glyph_matrix (f->current_matrix, 1); + else + fprintf (stderr, "*** This frame doesn't have a frame glyph matrix ***\n"); return Qnil; } @@ -18897,7 +19044,7 @@ get_overlay_arrow_glyph_row (struct window *w, Lisp_Object overlay_arrow_string) struct buffer *buffer = XBUFFER (w->contents); struct buffer *old = current_buffer; const unsigned char *arrow_string = SDATA (overlay_arrow_string); - int arrow_len = SCHARS (overlay_arrow_string); + ptrdiff_t arrow_len = SCHARS (overlay_arrow_string); const unsigned char *arrow_end = arrow_string + arrow_len; const unsigned char *p; struct it it; @@ -18906,6 +19053,7 @@ get_overlay_arrow_glyph_row (struct window *w, Lisp_Object overlay_arrow_string) set_buffer_temp (buffer); init_iterator (&it, w, -1, -1, &scratch_glyph_row, DEFAULT_FACE_ID); + scratch_glyph_row.reversed_p = false; it.glyph_row->used[TEXT_AREA] = 0; SET_TEXT_POS (it.position, 0, 0); @@ -19417,7 +19565,18 @@ extend_face_to_end_of_line (struct it *it) for (row_width = 0, g = row_start; g < row_end; g++) row_width += g->pixel_width; - stretch_width = window_box_width (it->w, TEXT_AREA) - row_width; + + /* FIXME: There are various minor display glitches in R2L + rows when only one of the fringes is missing. The + strange condition below produces the least bad effect. */ + if ((WINDOW_LEFT_FRINGE_WIDTH (it->w) == 0) + == (WINDOW_RIGHT_FRINGE_WIDTH (it->w) == 0) + || WINDOW_RIGHT_FRINGE_WIDTH (it->w) != 0) + stretch_width = window_box_width (it->w, TEXT_AREA); + else + stretch_width = it->last_visible_x - it->first_visible_x; + stretch_width -= row_width; + if (stretch_width > 0) { stretch_ascent = @@ -19444,6 +19603,12 @@ extend_face_to_end_of_line (struct it *it) it->face_id = saved_face_id; it->start_of_box_run_p = saved_box_start; } + /* If stretch_width comes out negative, it means that the + last glyph is only partially visible. In R2L rows, we + want the leftmost glyph to be partially visible, so we + need to give the row the corresponding left offset. */ + if (stretch_width < 0) + it->glyph_row->x = stretch_width; } #endif /* HAVE_WINDOW_SYSTEM */ } @@ -20070,6 +20235,7 @@ display_line (struct it *it) int cvpos; ptrdiff_t min_pos = ZV + 1, max_pos = 0; ptrdiff_t min_bpos IF_LINT (= 0), max_bpos IF_LINT (= 0); + bool pending_handle_line_prefix = false; /* We always start displaying at hpos zero even if hscrolled. */ eassert (it->hpos == 0 && it->current_x == 0); @@ -20130,12 +20296,22 @@ display_line (struct it *it) min_pos = CHARPOS (this_line_min_pos); min_bpos = BYTEPOS (this_line_min_pos); } + else if (it->area == TEXT_AREA) + { + /* We only do this when not calling move_it_in_display_line_to + above, because that function calls itself handle_line_prefix. */ + handle_line_prefix (it); + } else { - /* We only do this when not calling `move_it_in_display_line_to' - above, because move_it_in_display_line_to calls - handle_line_prefix itself. */ - handle_line_prefix (it); + /* Line-prefix and wrap-prefix are always displayed in the text + area. But if this is the first call to display_line after + init_iterator, the iterator might have been set up to write + into a marginal area, e.g. if the line begins with some + display property that writes to the margins. So we need to + wait with the call to handle_line_prefix until whatever + writes to the margin has done its job. */ + pending_handle_line_prefix = true; } /* Get the initial row height. This is either the height of the @@ -20268,6 +20444,14 @@ display_line (struct it *it) row->extra_line_spacing = max (row->extra_line_spacing, it->max_extra_line_spacing); set_iterator_to_next (it, 1); + /* If we didn't handle the line/wrap prefix above, and the + call to set_iterator_to_next just switched to TEXT_AREA, + process the prefix now. */ + if (it->area == TEXT_AREA && pending_handle_line_prefix) + { + pending_handle_line_prefix = false; + handle_line_prefix (it); + } continue; } @@ -20297,7 +20481,12 @@ display_line (struct it *it) it->max_phys_ascent + it->max_phys_descent); row->extra_line_spacing = max (row->extra_line_spacing, it->max_extra_line_spacing); - if (it->current_x - it->pixel_width < it->first_visible_x) + if (it->current_x - it->pixel_width < it->first_visible_x + /* In R2L rows, we arrange in extend_face_to_end_of_line + to add a right offset to the line, by a suitable + change to the stretch glyph that is the leftmost + glyph of the line. */ + && !row->reversed_p) row->x = x - it->first_visible_x; /* Record the maximum and minimum buffer positions seen so far in glyphs that will be displayed by this row. */ @@ -20311,7 +20500,13 @@ display_line (struct it *it) for (i = 0; i < nglyphs; ++i, x = new_x) { - glyph = row->glyphs[TEXT_AREA] + n_glyphs_before + i; + /* Identify the glyphs added by the last call to + PRODUCE_GLYPHS. In R2L rows, they are prepended to + the previous glyphs. */ + if (!row->reversed_p) + glyph = row->glyphs[TEXT_AREA] + n_glyphs_before + i; + else + glyph = row->glyphs[TEXT_AREA] + nglyphs - 1 - i; new_x = x + glyph->pixel_width; if (/* Lines are continued. */ @@ -20346,7 +20541,8 @@ display_line (struct it *it) { /* If line-wrap is on, check if a previous wrap point was found. */ - if (wrap_row_used > 0 + if (!IT_OVERFLOW_NEWLINE_INTO_FRINGE (it) + && wrap_row_used > 0 /* Even if there is a previous wrap point, continue the line here as usual, if (i) the previous character @@ -20376,6 +20572,18 @@ display_line (struct it *it) row->continued_p = 0; row->exact_window_width_line_p = 1; } + /* If line-wrap is on, check if a + previous wrap point was found. */ + else if (wrap_row_used > 0 + /* Even if there is a previous wrap + point, continue the line here as + usual, if (i) the previous character + was a space or tab AND (ii) the + current character is not. */ + && (!may_wrap + || IT_DISPLAYING_WHITESPACE (it))) + goto back_to_wrap; + } } else if (it->bidi_p) @@ -20511,10 +20719,28 @@ display_line (struct it *it) if (it->bidi_p) RECORD_MAX_MIN_POS (it); - if (x < it->first_visible_x) + if (x < it->first_visible_x && !row->reversed_p) /* Glyph is partially visible, i.e. row starts at - negative X position. */ + negative X position. Don't do that in R2L + rows, where we arrange to add a right offset to + the line in extend_face_to_end_of_line, by a + suitable change to the stretch glyph that is + the leftmost glyph of the line. */ row->x = x - it->first_visible_x; + /* When the last glyph of an R2L row only fits + partially on the line, we need to set row->x to a + negative offset, so that the leftmost glyph is + the one that is partially visible. But if we are + going to produce the truncation glyph, this will + be taken care of in produce_special_glyphs. */ + if (row->reversed_p + && new_x > it->last_visible_x + && !(it->line_wrap == TRUNCATE + && WINDOW_LEFT_FRINGE_WIDTH (it->w) == 0)) + { + eassert (FRAME_WINDOW_P (it->f)); + row->x = it->last_visible_x - new_x; + } } else { @@ -20588,7 +20814,10 @@ display_line (struct it *it) that they are cropped at the right edge of the window, so an image glyph will always end exactly at last_visible_x, even if there's no right fringe. */ - && (WINDOW_RIGHT_FRINGE_WIDTH (it->w) || it->what == IT_IMAGE)) + && ((row->reversed_p + ? WINDOW_LEFT_FRINGE_WIDTH (it->w) + : WINDOW_RIGHT_FRINGE_WIDTH (it->w)) + || it->what == IT_IMAGE)) ? (it->current_x >= it->last_visible_x) : (it->current_x > it->last_visible_x))) { @@ -20665,10 +20894,15 @@ display_line (struct it *it) row->truncated_on_right_p = 1; it->continuation_lines_width = 0; reseat_at_next_visible_line_start (it, 0); - if (IT_BYTEPOS (*it) <= BEG_BYTE) - row->ends_at_zv_p = true; + /* We insist below that IT's position be at ZV because in + bidi-reordered lines the character at visible line start + might not be the character that follows the newline in + the logical order. */ + if (IT_BYTEPOS (*it) > BEG_BYTE) + row->ends_at_zv_p = + IT_BYTEPOS (*it) >= ZV_BYTE && FETCH_BYTE (ZV_BYTE - 1) != '\n'; else - row->ends_at_zv_p = FETCH_BYTE (IT_BYTEPOS (*it) - 1) != '\n'; + row->ends_at_zv_p = false; break; } } @@ -20871,7 +21105,8 @@ See also `bidi-paragraph-direction'. */) the previous non-empty line. */ if (pos >= ZV && pos > BEGV) DEC_BOTH (pos, bytepos); - if (fast_looking_at (build_string ("[\f\t ]*\n"), + AUTO_STRING (trailing_white_space, "[\f\t ]*\n"); + if (fast_looking_at (trailing_white_space, pos, bytepos, ZV, ZV_BYTE, Qnil) > 0) { while ((c = FETCH_BYTE (bytepos)) == '\n' @@ -20913,6 +21148,143 @@ See also `bidi-paragraph-direction'. */) } } +DEFUN ("bidi-find-overridden-directionality", + Fbidi_find_overridden_directionality, + Sbidi_find_overridden_directionality, 2, 3, 0, + doc: /* Return position between FROM and TO where directionality was overridden. + +This function returns the first character position in the specified +region of OBJECT where there is a character whose `bidi-class' property +is `L', but which was forced to display as `R' by a directional +override, and likewise with characters whose `bidi-class' is `R' +or `AL' that were forced to display as `L'. + +If no such character is found, the function returns nil. + +OBJECT is a Lisp string or buffer to search for overridden +directionality, and defaults to the current buffer if nil or omitted. +OBJECT can also be a window, in which case the function will search +the buffer displayed in that window. Passing the window instead of +a buffer is preferable when the buffer is displayed in some window, +because this function will then be able to correctly account for +window-specific overlays, which can affect the results. + +Strong directional characters `L', `R', and `AL' can have their +intrinsic directionality overridden by directional override +control characters RLO \(u+202e) and LRO \(u+202d). See the +function `get-char-code-property' for a way to inquire about +the `bidi-class' property of a character. */) + (Lisp_Object from, Lisp_Object to, Lisp_Object object) +{ + struct buffer *buf = current_buffer; + struct buffer *old = buf; + struct window *w = NULL; + bool frame_window_p = FRAME_WINDOW_P (SELECTED_FRAME ()); + struct bidi_it itb; + ptrdiff_t from_pos, to_pos, from_bpos; + void *itb_data; + + if (!NILP (object)) + { + if (BUFFERP (object)) + buf = XBUFFER (object); + else if (WINDOWP (object)) + { + w = decode_live_window (object); + buf = XBUFFER (w->contents); + frame_window_p = FRAME_WINDOW_P (XFRAME (w->frame)); + } + else + CHECK_STRING (object); + } + + if (STRINGP (object)) + { + /* Characters in unibyte strings are always treated by bidi.c as + strong LTR. */ + if (!STRING_MULTIBYTE (object) + /* When we are loading loadup.el, the character property + tables needed for bidi iteration are not yet + available. */ + || !NILP (Vpurify_flag)) + return Qnil; + + validate_subarray (object, from, to, SCHARS (object), &from_pos, &to_pos); + if (from_pos >= SCHARS (object)) + return Qnil; + + /* Set up the bidi iterator. */ + itb_data = bidi_shelve_cache (); + itb.paragraph_dir = NEUTRAL_DIR; + itb.string.lstring = object; + itb.string.s = NULL; + itb.string.schars = SCHARS (object); + itb.string.bufpos = 0; + itb.string.from_disp_str = 0; + itb.string.unibyte = 0; + itb.w = w; + bidi_init_it (0, 0, frame_window_p, &itb); + } + else + { + /* Nothing this fancy can happen in unibyte buffers, or in a + buffer that disabled reordering, or if FROM is at EOB. */ + if (NILP (BVAR (buf, bidi_display_reordering)) + || NILP (BVAR (buf, enable_multibyte_characters)) + /* When we are loading loadup.el, the character property + tables needed for bidi iteration are not yet + available. */ + || !NILP (Vpurify_flag)) + return Qnil; + + set_buffer_temp (buf); + validate_region (&from, &to); + from_pos = XINT (from); + to_pos = XINT (to); + if (from_pos >= ZV) + return Qnil; + + /* Set up the bidi iterator. */ + itb_data = bidi_shelve_cache (); + from_bpos = CHAR_TO_BYTE (from_pos); + if (from_pos == BEGV) + { + itb.charpos = BEGV; + itb.bytepos = BEGV_BYTE; + } + else if (FETCH_CHAR (from_bpos - 1) == '\n') + { + itb.charpos = from_pos; + itb.bytepos = from_bpos; + } + else + itb.charpos = find_newline_no_quit (from_pos, CHAR_TO_BYTE (from_pos), + -1, &itb.bytepos); + itb.paragraph_dir = NEUTRAL_DIR; + itb.string.s = NULL; + itb.string.lstring = Qnil; + itb.string.bufpos = 0; + itb.string.from_disp_str = 0; + itb.string.unibyte = 0; + itb.w = w; + bidi_init_it (itb.charpos, itb.bytepos, frame_window_p, &itb); + } + + ptrdiff_t found; + do { + /* For the purposes of this function, the actual base direction of + the paragraph doesn't matter, so just set it to L2R. */ + bidi_paragraph_init (L2R, &itb, 0); + while ((found = bidi_find_first_overridden (&itb)) < from_pos) + ; + } while (found == ZV && itb.ch == '\n' && itb.charpos < to_pos); + + bidi_unshelve_cache (itb_data, 0); + set_buffer_temp (old); + + return (from_pos <= found && found < to_pos) ? make_number (found) : Qnil; +} + DEFUN ("move-point-visually", Fmove_point_visually, Smove_point_visually, 1, 1, 0, doc: /* Move point in the visual order in the specified DIRECTION. @@ -20982,7 +21354,7 @@ Value is the new character position of point. */) if ((gpt->resolved_level - row->reversed_p) % 2 == 0) new_pos += (row->reversed_p ? -dir : dir); else - new_pos -= (row->reversed_p ? -dir : dir);; + new_pos -= (row->reversed_p ? -dir : dir); } else if (BUFFERP (g->object)) new_pos = g->charpos; @@ -21372,6 +21744,114 @@ Value is the new character position of point. */) #undef ROW_GLYPH_NEWLINE_P } +DEFUN ("bidi-resolved-levels", Fbidi_resolved_levels, + Sbidi_resolved_levels, 0, 1, 0, + doc: /* Return the resolved bidirectional levels of characters at VPOS. + +The resolved levels are produced by the Emacs bidi reordering engine +that implements the UBA, the Unicode Bidirectional Algorithm. Please +read the Unicode Standard Annex 9 (UAX#9) for background information +about these levels. + +VPOS is the zero-based number of the current window's screen line +for which to produce the resolved levels. If VPOS is nil or omitted, +it defaults to the screen line of point. If the window displays a +header line, VPOS of zero will report on the header line, and first +line of text in the window will have VPOS of 1. + +Value is an array of resolved levels, indexed by glyph number. +Glyphs are numbered from zero starting from the beginning of the +screen line, i.e. the left edge of the window for left-to-right lines +and from the right edge for right-to-left lines. The resolved levels +are produced only for the window's text area; text in display margins +is not included. + +If the selected window's display is not up-to-date, or if the specified +screen line does not display text, this function returns nil. It is +highly recommended to bind this function to some simple key, like F8, +in order to avoid these problems. + +This function exists mainly for testing the correctness of the +Emacs UBA implementation, in particular with the test suite. */) + (Lisp_Object vpos) +{ + struct window *w = XWINDOW (selected_window); + struct buffer *b = XBUFFER (w->contents); + int nrow; + struct glyph_row *row; + + if (NILP (vpos)) + { + int d1, d2, d3, d4, d5; + + pos_visible_p (w, PT, &d1, &d2, &d3, &d4, &d5, &nrow); + } + else + { + CHECK_NUMBER_COERCE_MARKER (vpos); + nrow = XINT (vpos); + } + + /* We require up-to-date glyph matrix for this window. */ + if (w->window_end_valid + && !windows_or_buffers_changed + && b + && !b->clip_changed + && !b->prevent_redisplay_optimizations_p + && !window_outdated (w) + && nrow >= 0 + && nrow < w->current_matrix->nrows + && (row = MATRIX_ROW (w->current_matrix, nrow))->enabled_p + && MATRIX_ROW_DISPLAYS_TEXT_P (row)) + { + struct glyph *g, *e, *g1; + int nglyphs, i; + Lisp_Object levels; + + if (!row->reversed_p) /* Left-to-right glyph row. */ + { + g = g1 = row->glyphs[TEXT_AREA]; + e = g + row->used[TEXT_AREA]; + + /* Skip over glyphs at the start of the row that was + generated by redisplay for its own needs. */ + while (g < e + && INTEGERP (g->object) + && g->charpos < 0) + g++; + g1 = g; + + /* Count the "interesting" glyphs in this row. */ + for (nglyphs = 0; g < e && !INTEGERP (g->object); g++) + nglyphs++; + + /* Create and fill the array. */ + levels = make_uninit_vector (nglyphs); + for (i = 0; g1 < g; i++, g1++) + ASET (levels, i, make_number (g1->resolved_level)); + } + else /* Right-to-left glyph row. */ + { + g = row->glyphs[TEXT_AREA] + row->used[TEXT_AREA] - 1; + e = row->glyphs[TEXT_AREA] - 1; + while (g > e + && INTEGERP (g->object) + && g->charpos < 0) + g--; + g1 = g; + for (nglyphs = 0; g > e && !INTEGERP (g->object); g--) + nglyphs++; + levels = make_uninit_vector (nglyphs); + for (i = 0; g1 > g; i++, g1--) + ASET (levels, i, make_number (g1->resolved_level)); + } + return levels; + } + else + return Qnil; +} + + /*********************************************************************** Menu Bar @@ -21450,6 +21930,7 @@ display_menu_bar (struct window *w) clear_glyph_row (row); row->enabled_p = true; row->full_width_p = 1; + row->reversed_p = false; } /* Display all items of the menu bar. */ @@ -22683,10 +23164,8 @@ decode_mode_spec_coding (Lisp_Object coding_system, register char *buf, int eol_ } else if (CHARACTERP (eoltype)) { - unsigned char *tmp = alloca (MAX_MULTIBYTE_LENGTH); int c = XFASTINT (eoltype); - eol_str_len = CHAR_STRING (c, tmp); - eol_str = tmp; + return buf + CHAR_STRING (c, (unsigned char *) buf); } else { @@ -22822,7 +23301,7 @@ decode_mode_spec (struct window *w, register int c, int field_width, } case 'e': -#ifndef SYSTEM_MALLOC +#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC { if (NILP (Vmemory_full)) return ""; @@ -24637,7 +25116,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, int backward_p) face_id = (row)->glyphs[area][START].face_id; \ \ s = alloca (sizeof *s); \ - char2b = alloca ((END - START) * sizeof *char2b); \ + SAFE_NALLOCA (char2b, 1, (END) - (START)); \ INIT_GLYPH_STRING (s, char2b, w, row, area, START, HL); \ append_glyph_string (&HEAD, &TAIL, s); \ s->x = (X); \ @@ -24665,7 +25144,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, int backward_p) struct glyph_string *first_s = NULL; \ int n; \ \ - char2b = alloca (cmp->glyph_len * sizeof *char2b); \ + SAFE_NALLOCA (char2b, 1, cmp->glyph_len); \ \ /* Make glyph_strings for each glyph sequence that is drawable by \ the same face, and append them to HEAD/TAIL. */ \ @@ -24700,7 +25179,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, int backward_p) gstring = (composition_gstring_from_id \ ((row)->glyphs[area][START].u.cmp.id)); \ s = alloca (sizeof *s); \ - char2b = alloca (LGSTRING_GLYPH_LEN (gstring) * sizeof *char2b); \ + SAFE_NALLOCA (char2b, 1, LGSTRING_GLYPH_LEN (gstring)); \ INIT_GLYPH_STRING (s, char2b, w, row, area, START, HL); \ append_glyph_string (&(HEAD), &(TAIL), s); \ s->x = (X); \ @@ -24871,6 +25350,7 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, BUILD_GLYPH_STRINGS will modify its start parameter. That's the reason we use a separate variable `i'. */ i = start; + USE_SAFE_ALLOCA; BUILD_GLYPH_STRINGS (i, end, head, tail, hl, x, last_x); if (tail) x_reached = tail->x + tail->background_width; @@ -25070,6 +25550,7 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, RELEASE_HDC (hdc, f); + SAFE_FREE (); return x_reached; } @@ -25155,8 +25636,7 @@ append_glyph (struct it *it) if (it->bidi_p) { glyph->resolved_level = it->bidi_it.resolved_level; - if ((it->bidi_it.type & 7) != it->bidi_it.type) - emacs_abort (); + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); glyph->bidi_type = it->bidi_it.type; } else @@ -25239,8 +25719,7 @@ append_composite_glyph (struct it *it) if (it->bidi_p) { glyph->resolved_level = it->bidi_it.resolved_level; - if ((it->bidi_it.type & 7) != it->bidi_it.type) - emacs_abort (); + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); glyph->bidi_type = it->bidi_it.type; } ++it->glyph_row->used[area]; @@ -25428,8 +25907,7 @@ produce_image_glyph (struct it *it) if (it->bidi_p) { glyph->resolved_level = it->bidi_it.resolved_level; - if ((it->bidi_it.type & 7) != it->bidi_it.type) - emacs_abort (); + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); glyph->bidi_type = it->bidi_it.type; } ++it->glyph_row->used[area]; @@ -25549,6 +26027,24 @@ append_stretch_glyph (struct it *it, Lisp_Object object, for (g = glyph - 1; g >= it->glyph_row->glyphs[area]; g--) g[1] = *g; glyph = it->glyph_row->glyphs[area]; + + /* Decrease the width of the first glyph of the row that + begins before first_visible_x (e.g., due to hscroll). + This is so the overall width of the row becomes smaller + by the scroll amount, and the stretch glyph appended by + extend_face_to_end_of_line will be wider, to shift the + row glyphs to the right. (In L2R rows, the corresponding + left-shift effect is accomplished by setting row->x to a + negative value, which won't work with R2L rows.) + + This must leave us with a positive value of WIDTH, since + otherwise the call to move_it_in_display_line_to at the + beginning of display_line would have got past the entire + first glyph, and then it->current_x would have been + greater or equal to it->first_visible_x. */ + if (it->current_x < it->first_visible_x) + width -= it->first_visible_x - it->current_x; + eassert (width > 0); } glyph->charpos = CHARPOS (it->position); glyph->object = object; @@ -25582,8 +26078,7 @@ append_stretch_glyph (struct it *it, Lisp_Object object, if (it->bidi_p) { glyph->resolved_level = it->bidi_it.resolved_level; - if ((it->bidi_it.type & 7) != it->bidi_it.type) - emacs_abort (); + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); glyph->bidi_type = it->bidi_it.type; } else @@ -25878,14 +26373,13 @@ produce_special_glyphs (struct it *it, enum display_element_type what) temp_it.dp = NULL; temp_it.what = IT_CHARACTER; - temp_it.len = 1; temp_it.c = temp_it.char_to_display = GLYPH_CHAR (glyph); temp_it.face_id = GLYPH_FACE (glyph); temp_it.len = CHAR_BYTES (temp_it.c); PRODUCE_GLYPHS (&temp_it); it->pixel_width = temp_it.pixel_width; - it->nglyphs = temp_it.pixel_width; + it->nglyphs = temp_it.nglyphs; } #ifdef HAVE_WINDOW_SYSTEM @@ -26043,8 +26537,7 @@ append_glyphless_glyph (struct it *it, int face_id, int for_no_font, int len, if (it->bidi_p) { glyph->resolved_level = it->bidi_it.resolved_level; - if ((it->bidi_it.type & 7) != it->bidi_it.type) - emacs_abort (); + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); glyph->bidi_type = it->bidi_it.type; } ++it->glyph_row->used[area]; @@ -27542,7 +28035,7 @@ erase_phys_cursor (struct window *w) /* Maybe clear the display under the cursor. */ if (w->phys_cursor_type == HOLLOW_BOX_CURSOR) { - int x, y, left_x; + int x, y; int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w); int width; @@ -27551,13 +28044,15 @@ erase_phys_cursor (struct window *w) goto mark_cursor_off; width = cursor_glyph->pixel_width; - left_x = window_box_left_offset (w, TEXT_AREA); x = w->phys_cursor.x; - if (x < left_x) - width -= left_x - x; + if (x < 0) + { + width += x; + x = 0; + } width = min (width, window_box_width (w, TEXT_AREA) - x); y = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, cursor_row->y)); - x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, max (x, left_x)); + x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, x); if (width > 0) FRAME_RIF (f)->clear_frame_area (f, x, y, width, cursor_row->visible_height); @@ -27633,6 +28128,10 @@ display_and_set_cursor (struct window *w, bool on, && (!on || w->phys_cursor.x != x || w->phys_cursor.y != y + /* HPOS can be negative in R2L rows whose + exact_window_width_line_p flag is set (i.e. their newline + would "overflow into the fringe"). */ + || hpos < 0 || new_cursor_type != w->phys_cursor_type || ((new_cursor_type == BAR_CURSOR || new_cursor_type == HBAR_CURSOR) && new_cursor_width != w->phys_cursor_width))) @@ -27879,7 +28378,7 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) #ifdef HAVE_WINDOW_SYSTEM /* Change the mouse cursor. */ - if (FRAME_WINDOW_P (f)) + if (FRAME_WINDOW_P (f) && NILP (do_mouse_tracking)) { #if ! defined (USE_GTK) && ! defined (HAVE_NS) if (draw == DRAW_NORMAL_TEXT @@ -29407,6 +29906,8 @@ note_mouse_highlight (struct frame *f, int x, int y) /* Is this char mouse-active or does it have help-echo? */ position = make_number (pos); + USE_SAFE_ALLOCA; + if (BUFFERP (object)) { /* Put all the overlays we want in a vector in overlay_vec. */ @@ -29688,6 +30189,7 @@ note_mouse_highlight (struct frame *f, int x, int y) BEGV = obegv; ZV = ozv; current_buffer = obuf; + SAFE_FREE (); } set_cursor: @@ -30207,8 +30709,6 @@ expose_frame (struct frame *f, int x, int y, int w, int h) r.x = r.y = 0; r.width = FRAME_TEXT_WIDTH (f); r.height = FRAME_TEXT_HEIGHT (f); -/** r.width = FRAME_COLUMN_WIDTH (f) * FRAME_COLS (f); **/ -/** r.height = FRAME_LINE_HEIGHT (f) * FRAME_LINES (f); **/ } else { @@ -30361,6 +30861,7 @@ syms_of_xdisp (void) defsubr (&Scurrent_bidi_paragraph_direction); defsubr (&Swindow_text_pixel_size); defsubr (&Smove_point_visually); + defsubr (&Sbidi_find_overridden_directionality); DEFSYM (Qmenu_bar_update_hook, "menu-bar-update-hook"); DEFSYM (Qoverriding_terminal_local_map, "overriding-terminal-local-map"); @@ -30463,6 +30964,7 @@ syms_of_xdisp (void) DEFSYM (Qright_to_left, "right-to-left"); DEFSYM (Qleft_to_right, "left-to-right"); + defsubr (&Sbidi_resolved_levels); #ifdef HAVE_WINDOW_SYSTEM DEFVAR_BOOL ("x-stretch-cursor", x_stretch_cursor_p, @@ -30642,9 +31144,12 @@ all the functions in the list are called, with the frame as argument. */); DEFVAR_LISP ("window-scroll-functions", Vwindow_scroll_functions, doc: /* List of functions to call before redisplaying a window with scrolling. Each function is called with two arguments, the window and its new -display-start position. Note that these functions are also called by -`set-window-buffer'. Also note that the value of `window-end' is not -valid when these functions are called. +display-start position. +These functions are called whenever the `window-start' marker is modified, +either to point into another buffer (e.g. via `set-window-buffer') or another +place in the same buffer. +Note that the value of `window-end' is not valid when these functions are +called. Warning: Do not use this feature to alter the way the window is scrolled. It is not designed for that, and such use probably won't @@ -30869,6 +31374,12 @@ To add a prefix to continuation lines, use `wrap-prefix'. */); doc: /* Non-nil means don't free realized faces. Internal use only. */); inhibit_free_realized_faces = 0; + DEFVAR_BOOL ("inhibit-bidi-mirroring", inhibit_bidi_mirroring, + doc: /* Non-nil means don't mirror characters even when bidi context requires that. +Intended for use during debugging and for testing bidi display; +see biditest.el in the test suite. */); + inhibit_bidi_mirroring = 0; + #ifdef GLYPH_DEBUG DEFVAR_BOOL ("inhibit-try-window-id", inhibit_try_window_id, doc: /* Inhibit try_window_id display optimization. */); diff --git a/src/xfaces.c b/src/xfaces.c index 34895123db9..fbdd3c8bfe8 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -732,7 +732,7 @@ recompute_basic_faces (struct frame *f) try to free unused fonts, too. */ void -clear_face_cache (int clear_fonts_p) +clear_face_cache (bool clear_fonts_p) { #ifdef HAVE_WINDOW_SYSTEM Lisp_Object tail, frame; @@ -1068,7 +1068,7 @@ tty_color_name (struct frame *f, int idx) return XCAR (coldesc); } #ifdef MSDOS - /* We can have an MSDOG frame under -nw for a short window of + /* We can have an MS-DOS frame under -nw for a short window of opportunity before internal_terminal_init is called. DTRT. */ if (FRAME_MSDOS_P (f) && !inhibit_window_system) return msdos_stdcolor_name (idx); @@ -3112,17 +3112,26 @@ FRAME 0 means change the face on all frames, and change the default f = XFRAME (selected_frame); else f = XFRAME (frame); - if (! FONT_OBJECT_P (value)) - { - Lisp_Object *attrs = XVECTOR (lface)->contents; - Lisp_Object font_object; - font_object = font_load_for_lface (f, attrs, value); - if (NILP (font_object)) - signal_error ("Font not available", value); - value = font_object; - } - set_lface_from_font (f, lface, value, 1); + /* FIXME: + If frame is t, and selected frame is a tty frame, the font + can't be realized. An improvement would be to loop over frames + for a non-tty frame and use that. See discussion in Bug#18573. + For a daemon, frame may be an initial frame (Bug#18869). */ + if (FRAME_WINDOW_P (f)) + { + if (! FONT_OBJECT_P (value)) + { + Lisp_Object *attrs = XVECTOR (lface)->contents; + Lisp_Object font_object; + + font_object = font_load_for_lface (f, attrs, value); + if (NILP (font_object)) + signal_error ("Font not available", value); + value = font_object; + } + set_lface_from_font (f, lface, value, 1); + } } else ASET (lface, LFACE_FONT_INDEX, value); @@ -3398,7 +3407,8 @@ set_font_frame_param (Lisp_Object frame, Lisp_Object lface) ASET (lface, LFACE_FONT_INDEX, font); } f->default_face_done_p = 0; - Fmodify_frame_parameters (frame, list1 (Fcons (Qfont, font))); + AUTO_FRAME_ARG (arg, Qfont, font); + Fmodify_frame_parameters (frame, arg); } } @@ -3787,18 +3797,23 @@ Default face attributes override any local face attributes. */) && newface->font) { Lisp_Object name = newface->font->props[FONT_NAME_INDEX]; - Fmodify_frame_parameters (frame, list1 (Fcons (Qfont, name))); + AUTO_FRAME_ARG (arg, Qfont, name); + Fmodify_frame_parameters (frame, arg); } if (STRINGP (gvec[LFACE_FOREGROUND_INDEX])) - Fmodify_frame_parameters (frame, - list1 (Fcons (Qforeground_color, - gvec[LFACE_FOREGROUND_INDEX]))); + { + AUTO_FRAME_ARG (arg, Qforeground_color, + gvec[LFACE_FOREGROUND_INDEX]); + Fmodify_frame_parameters (frame, arg); + } if (STRINGP (gvec[LFACE_BACKGROUND_INDEX])) - Fmodify_frame_parameters (frame, - list1 (Fcons (Qbackground_color, - gvec[LFACE_BACKGROUND_INDEX]))); + { + AUTO_FRAME_ARG (arg, Qbackground_color, + gvec[LFACE_BACKGROUND_INDEX]); + Fmodify_frame_parameters (frame, arg); + } } } @@ -5980,6 +5995,7 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos, endpos = XINT (end); /* Look at properties from overlays. */ + USE_SAFE_ALLOCA; { ptrdiff_t next_overlay; @@ -6006,7 +6022,10 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos, /* Optimize common cases where we can use the default face. */ if (noverlays == 0 && NILP (prop)) - return default_face->id; + { + SAFE_FREE (); + return default_face->id; + } /* Begin with attributes from the default face. */ memcpy (attrs, default_face->lface, sizeof attrs); @@ -6034,6 +6053,8 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos, *endptr = endpos; + SAFE_FREE (); + /* Look up a realized face with the given face attributes, or realize a new one for ASCII characters. */ return lookup_face (f, attrs); diff --git a/src/xfns.c b/src/xfns.c index 1787d0297e6..1b17311f99c 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -159,7 +159,7 @@ check_x_display_info (Lisp_Object object) } else if (TERMINALP (object)) { - struct terminal *t = get_terminal (object, 1); + struct terminal *t = decode_live_terminal (object); if (t->type != output_x_window) error ("Terminal %d is not an X display", t->id); @@ -965,7 +965,7 @@ x_set_icon_name (struct frame *f, Lisp_Object arg, Lisp_Object oldval) } -void +static void x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) { int nlines; @@ -1009,7 +1009,7 @@ x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) #else /* not USE_X_TOOLKIT && not USE_GTK */ FRAME_MENU_BAR_LINES (f) = nlines; FRAME_MENU_BAR_HEIGHT (f) = nlines * FRAME_LINE_HEIGHT (f); - adjust_frame_size (f, -1, -1, 2, 1); + adjust_frame_size (f, -1, -1, 2, 1, Qmenu_bar_lines); if (FRAME_X_WINDOW (f)) x_clear_under_internal_border (f); @@ -1060,7 +1060,7 @@ x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) height of all windows on frame F to match the new tool bar height. The frame's height doesn't change. */ -void +static void x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) { int nlines; @@ -1112,10 +1112,6 @@ x_change_tool_bar_height (struct frame *f, int height) /* Recalculate tool bar and frame text sizes. */ FRAME_TOOL_BAR_HEIGHT (f) = height; FRAME_TOOL_BAR_LINES (f) = lines; - FRAME_TEXT_HEIGHT (f) - = FRAME_PIXEL_TO_TEXT_HEIGHT (f, FRAME_PIXEL_HEIGHT (f)); - FRAME_LINES (f) - = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, FRAME_PIXEL_HEIGHT (f)); /* Store the `tool-bar-lines' and `height' frame parameters. */ store_frame_param (f, Qtool_bar_lines, make_number (lines)); store_frame_param (f, Qheight, make_number (FRAME_LINES (f))); @@ -1138,18 +1134,21 @@ x_change_tool_bar_height (struct frame *f, int height) /* Recalculate toolbar height. */ f->n_tool_bar_rows = 0; - adjust_frame_size (f, -1, -1, 4, 0); + adjust_frame_size (f, -1, -1, (old_height == 0 || height == 0) ? 2 : 4, 0, + Qtool_bar_lines); -/** #if !defined USE_X_TOOLKIT **/ + /* adjust_frame_size might not have done anything, garbage frame + here. */ + adjust_frame_glyphs (f); + SET_FRAME_GARBAGED (f); if (FRAME_X_WINDOW (f)) x_clear_under_internal_border (f); -/** #endif **/ #endif /* USE_GTK */ } -void +static void x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval) { int border; @@ -1168,11 +1167,11 @@ x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldva if (FRAME_X_WINDOW (f) != 0) { - adjust_frame_size (f, -1, -1, 3, 0); + adjust_frame_size (f, -1, -1, 3, 0, Qinternal_border_width); #ifdef USE_GTK xg_clear_under_internal_border (f); -#else +#else x_clear_under_internal_border (f); #endif } @@ -1571,13 +1570,14 @@ x_default_scroll_bar_color_parameter (struct frame *f, /* See if an X resource for the scroll bar color has been specified. */ - tem = display_x_get_resource (dpyinfo, - build_string (foreground_p - ? "foreground" - : "background"), - empty_unibyte_string, - build_string ("verticalScrollBar"), - empty_unibyte_string); + AUTO_STRING (foreground, "foreground"); + AUTO_STRING (background, "foreground"); + AUTO_STRING (verticalScrollBar, "verticalScrollBar"); + tem = (display_x_get_resource + (dpyinfo, foreground_p ? foreground : background, + empty_unibyte_string, + verticalScrollBar, + empty_unibyte_string)); if (!STRINGP (tem)) { /* If nothing has been specified, scroll bars will use a @@ -1595,7 +1595,8 @@ x_default_scroll_bar_color_parameter (struct frame *f, #endif /* not USE_TOOLKIT_SCROLL_BARS */ } - x_set_frame_parameters (f, list1 (Fcons (prop, tem))); + AUTO_FRAME_ARG (arg, prop, tem); + x_set_frame_parameters (f, arg); return tem; } @@ -1786,7 +1787,7 @@ xic_create_fontsetname (const char *base_fontname, int motif) len = p - base_fontname + strlen (allcs) + 1; font_allcs = alloca (len); memcpy (font_allcs, base_fontname, p - base_fontname); - strcat (font_allcs, allcs); + strcpy (font_allcs + (p - base_fontname), allcs); /* Build the font spec that matches all families and add-styles. */ @@ -1794,7 +1795,7 @@ xic_create_fontsetname (const char *base_fontname, int motif) font_allfamilies = alloca (len); strcpy (font_allfamilies, allfamilies); memcpy (font_allfamilies + strlen (allfamilies), p1, p - p1); - strcat (font_allfamilies, allcs); + strcpy (font_allfamilies + strlen (allfamilies) + (p - p1), allcs); /* Build the font spec that matches all. */ len = p - p2 + strlen (allcs) + strlen (all) + strlen (allfamilies) + 1; @@ -1802,7 +1803,8 @@ xic_create_fontsetname (const char *base_fontname, int motif) strcpy (font_all, allfamilies); strcat (font_all, all); memcpy (font_all + strlen (all) + strlen (allfamilies), p2, p - p2); - strcat (font_all, allcs); + strcpy (font_all + strlen (all) + strlen (allfamilies) + (p - p2), + allcs); /* Build the actual font set name. */ len = strlen (base_fontname) + strlen (font_allcs) @@ -2846,7 +2848,8 @@ x_default_font_parameter (struct frame *f, Lisp_Object parms) { /* Remember the explicit font parameter, so we can re-apply it after we've applied the `default' face settings. */ - x_set_frame_parameters (f, list1 (Fcons (Qfont_param, font_param))); + AUTO_FRAME_ARG (arg, Qfont_param, font_param); + x_set_frame_parameters (f, arg); } /* This call will make X resources override any system font setting. */ @@ -3112,15 +3115,9 @@ This function is an internal primitive--use `make-frame' instead. */) #endif "verticalScrollBars", "ScrollBars", RES_TYPE_SYMBOL); - x_default_parameter (f, parms, Qhorizontal_scroll_bars, -#if defined (USE_GTK) && defined (USE_TOOLKIT_SCROLL_BARS) - Qt, -#else - Qnil, -#endif + x_default_parameter (f, parms, Qhorizontal_scroll_bars, Qnil, "horizontalScrollBars", "ScrollBars", RES_TYPE_SYMBOL); - /* Also do the stuff which must be set before the window exists. */ x_default_parameter (f, parms, Qforeground_color, build_string ("black"), "foreground", "Foreground", RES_TYPE_STRING); @@ -3167,7 +3164,7 @@ This function is an internal primitive--use `make-frame' instead. */) had one frame line vs one toolbar line which left us with a zero root window height which was obviously wrong as well ... */ adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f), - FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 5, 1); + FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 5, 1, Qnil); /* Set the menu-bar-lines and tool-bar-lines parameters. We don't look up the X resources controlling the menu-bar and tool-bar @@ -3239,9 +3236,9 @@ This function is an internal primitive--use `make-frame' instead. */) "alpha", "Alpha", RES_TYPE_NUMBER); /* Consider frame official, now. */ - f->official = true; + f->can_x_set_window_size = true; - adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f), 0, 1); + adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f), 0, 1, Qnil); #if defined (USE_X_TOOLKIT) || defined (USE_GTK) /* Create the menu bar. */ @@ -4225,6 +4222,124 @@ Internal use only, use `display-monitor-attributes-list' instead. */) return attributes_list; } +DEFUN ("x-frame-geometry", Fx_frame_geometry, Sx_frame_geometry, 0, 1, 0, + doc: /* Return geometric attributes of frame FRAME. + +FRAME must be a live frame and defaults to the selected one. + +The return value is an association list containing the following +elements (all size values are in pixels). + +- `frame-outer-size' is a cons of the outer width and height of FRAME. + The outer size include the title bar and the external borders as well + as any menu and/or tool bar of frame. + +- `border' is a cons of the horizontal and vertical width of FRAME's + external borders. + +- `title-bar-height' is the height of the title bar of FRAME. + +- `menu-bar-external' if `t' means the menu bar is external (not + included in the inner edges of FRAME). + +- `menu-bar-size' is a cons of the width and height of the menu bar of + FRAME. + +- `tool-bar-external' if `t' means the tool bar is external (not + included in the inner edges of FRAME). + +- `tool-bar-side' tells tells on which side the tool bar on FRAME is and + can be one of `left', `top', `right' or `bottom'. + +- `tool-bar-size' is a cons of the width and height of the tool bar of + FRAME. + +- `frame-inner-size' is a cons of the inner width and height of FRAME. + This excludes FRAME's title bar and external border as well as any + external menu and/or tool bar. */) + (Lisp_Object frame) +{ + struct frame *f = decode_live_frame (frame); + int inner_width = FRAME_PIXEL_WIDTH (f); + int inner_height = FRAME_PIXEL_HEIGHT (f); + int outer_width, outer_height, border, title; + Lisp_Object fullscreen = Fframe_parameter (frame, Qfullscreen); + int menu_bar_height, menu_bar_width, tool_bar_height, tool_bar_width; + + border = FRAME_OUTER_TO_INNER_DIFF_X (f); + title = FRAME_X_OUTPUT (f)->y_pixels_outer_diff - border; + + outer_width = FRAME_PIXEL_WIDTH (f) + 2 * border; + outer_height = (FRAME_PIXEL_HEIGHT (f) + + FRAME_OUTER_TO_INNER_DIFF_Y (f) + + FRAME_OUTER_TO_INNER_DIFF_X (f)); + +#if defined (USE_GTK) + { + bool tool_bar_left_right = (EQ (FRAME_TOOL_BAR_POSITION (f), Qleft) + || EQ (FRAME_TOOL_BAR_POSITION (f), Qright)); + + tool_bar_width = (tool_bar_left_right + ? FRAME_TOOLBAR_WIDTH (f) + : FRAME_PIXEL_WIDTH (f)); + tool_bar_height = (tool_bar_left_right + ? FRAME_PIXEL_HEIGHT (f) + : FRAME_TOOLBAR_HEIGHT (f)); + if (tool_bar_left_right) + /* For some reason FRAME_OUTER_TO_INNER_DIFF_X does not count the + width of a tool bar. */ + outer_width += FRAME_TOOLBAR_WIDTH (f); + } +#else + tool_bar_height = FRAME_TOOL_BAR_HEIGHT (f); + tool_bar_width = ((tool_bar_height > 0) + ? outer_width - 2 * FRAME_INTERNAL_BORDER_WIDTH (f) + : 0); +#endif + +#if defined (USE_X_TOOLKIT) || defined (USE_GTK) + menu_bar_height = FRAME_MENUBAR_HEIGHT (f); +#else + menu_bar_height = FRAME_MENU_BAR_HEIGHT (f); +#endif + + menu_bar_width = ((menu_bar_height > 0) + ? outer_width - 2 * border + : 0); + + if (!FRAME_EXTERNAL_MENU_BAR (f)) + inner_height -= menu_bar_height; + if (!FRAME_EXTERNAL_TOOL_BAR (f)) + inner_height -= tool_bar_height; + + return + listn (CONSTYPE_PURE, 10, + Fcons (Qframe_position, + Fcons (make_number (f->left_pos), make_number (f->top_pos))), + Fcons (Qframe_outer_size, + Fcons (make_number (outer_width), make_number (outer_height))), + Fcons (Qexternal_border_size, + ((EQ (fullscreen, Qfullboth) || EQ (fullscreen, Qfullscreen)) + ? Fcons (make_number (0), make_number (0)) + : Fcons (make_number (border), make_number (border)))), + Fcons (Qtitle_height, + ((EQ (fullscreen, Qfullboth) || EQ (fullscreen, Qfullscreen)) + ? make_number (0) + : make_number (title))), + Fcons (Qmenu_bar_external, FRAME_EXTERNAL_MENU_BAR (f) ? Qt : Qnil), + Fcons (Qmenu_bar_size, + Fcons (make_number (menu_bar_width), + make_number (menu_bar_height))), + Fcons (Qtool_bar_external, FRAME_EXTERNAL_TOOL_BAR (f) ? Qt : Qnil), + Fcons (Qtool_bar_position, FRAME_TOOL_BAR_POSITION (f)), + Fcons (Qtool_bar_size, + Fcons (make_number (tool_bar_width), + make_number (tool_bar_height))), + Fcons (Qframe_inner_size, + Fcons (make_number (inner_width), + make_number (inner_height)))); +} + /************************************************************************ X Displays ************************************************************************/ @@ -4279,13 +4394,13 @@ select_visual (struct x_display_info *dpyinfo) { Display *dpy = dpyinfo->display; Screen *screen = dpyinfo->screen; - Lisp_Object value; /* See if a visual is specified. */ - value = display_x_get_resource (dpyinfo, - build_string ("visualClass"), - build_string ("VisualClass"), - Qnil, Qnil); + AUTO_STRING (visualClass, "visualClass"); + AUTO_STRING (VisualClass, "VisualClass"); + Lisp_Object value = display_x_get_resource (dpyinfo, visualClass, + VisualClass, Qnil, Qnil); + if (STRINGP (value)) { /* VALUE should be of the form CLASS-DEPTH, where CLASS is one @@ -4296,7 +4411,7 @@ select_visual (struct x_display_info *dpyinfo) int i, class = -1; XVisualInfo vinfo; - strcpy (s, SSDATA (value)); + lispstpcpy (s, value); dash = strchr (s, '-'); if (dash) { @@ -4833,7 +4948,8 @@ x_create_tip_frame (struct x_display_info *dpyinfo, f = make_frame (1); XSETFRAME (frame, f); - buffer = Fget_buffer_create (build_string (" *tip*")); + AUTO_STRING (tip, " *tip*"); + buffer = Fget_buffer_create (tip); /* Use set_window_buffer instead of Fset_window_buffer (see discussion of bug#11984, bug#12025, bug#12026). */ set_window_buffer (FRAME_ROOT_WINDOW (f), buffer, 0, 0); @@ -5043,7 +5159,10 @@ x_create_tip_frame (struct x_display_info *dpyinfo, /* Add `tooltip' frame parameter's default value. */ if (NILP (Fframe_parameter (frame, Qtooltip))) - Fmodify_frame_parameters (frame, list1 (Fcons (Qtooltip, Qt))); + { + AUTO_FRAME_ARG (arg, Qtooltip, Qt); + Fmodify_frame_parameters (frame, arg); + } /* FIXME - can this be done in a similar way to normal frames? http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00641.html */ @@ -5061,7 +5180,10 @@ x_create_tip_frame (struct x_display_info *dpyinfo, disptype = intern ("color"); if (NILP (Fframe_parameter (frame, Qdisplay_type))) - Fmodify_frame_parameters (frame, list1 (Fcons (Qdisplay_type, disptype))); + { + AUTO_FRAME_ARG (arg, Qdisplay_type, disptype); + Fmodify_frame_parameters (frame, arg); + } } /* Set up faces after all frame parameters are known. This call @@ -5080,7 +5202,10 @@ x_create_tip_frame (struct x_display_info *dpyinfo, call2 (Qface_set_after_frame_default, frame, Qnil); if (!EQ (bg, Fframe_parameter (frame, Qbackground_color))) - Fmodify_frame_parameters (frame, list1 (Fcons (Qbackground_color, bg))); + { + AUTO_FRAME_ARG (arg, Qbackground_color, bg); + Fmodify_frame_parameters (frame, arg); + } } f->no_split = 1; @@ -5096,7 +5221,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo, below. And the frame needs to be on Vframe_list or making it visible won't work. */ Vframe_list = Fcons (frame, Vframe_list); - f->official = true; + f->can_x_set_window_size = true; /* Setting attributes of faces of the tooltip frame from resources and similar will increment face_change_count, which leads to the @@ -5452,8 +5577,8 @@ Text larger than the specified size is clipped. */) unblock_input (); /* Draw into the window. */ - w->must_be_updated_p = 1; - update_single_window (w, 1); + w->must_be_updated_p = true; + update_single_window (w); /* Restore original current buffer. */ set_buffer_internal_1 (old_buffer); @@ -6156,12 +6281,6 @@ If more space for files in the file chooser dialog is wanted, set this to nil to turn the additional text off. */); x_gtk_file_dialog_help_text = 1; - DEFVAR_BOOL ("x-gtk-whole-detached-tool-bar", x_gtk_whole_detached_tool_bar, - doc: /* If non-nil, a detached tool bar is shown in full. -The default is to just show an arrow and pressing on that arrow shows -the tool bar buttons. */); - x_gtk_whole_detached_tool_bar = 0; - DEFVAR_BOOL ("x-gtk-use-system-tooltips", x_gtk_use_system_tooltips, doc: /* If non-nil with a Gtk+ built Emacs, the Gtk+ tooltip is used. Otherwise use Emacs own tooltip implementation. @@ -6224,6 +6343,7 @@ When using Gtk+ tooltips, the tooltip face is not used. */); defsubr (&Sx_display_backing_store); defsubr (&Sx_display_save_under); defsubr (&Sx_display_monitor_attributes_list); + defsubr (&Sx_frame_geometry); defsubr (&Sx_wm_set_size_hint); defsubr (&Sx_create_frame); defsubr (&Sx_open_connection); diff --git a/src/xfont.c b/src/xfont.c index 8996783541b..06a44794364 100644 --- a/src/xfont.c +++ b/src/xfont.c @@ -124,8 +124,8 @@ static void xfont_close (struct font *); static void xfont_prepare_face (struct frame *, struct face *); static int xfont_has_char (Lisp_Object, int); static unsigned xfont_encode_char (struct font *, int); -static int xfont_text_extents (struct font *, unsigned *, int, - struct font_metrics *); +static void xfont_text_extents (struct font *, unsigned *, int, + struct font_metrics *); static int xfont_draw (struct glyph_string *, int, int, int, int, bool); static int xfont_check (struct frame *, struct font *); @@ -386,7 +386,7 @@ xfont_list_pattern (Display *display, const char *pattern, { char **indices = alloca (sizeof (char *) * num_fonts); Lisp_Object *props = XVECTOR (xfont_scratch_props)->contents; - Lisp_Object scripts = Qnil; + Lisp_Object scripts = Qnil, entity = Qnil; for (i = 0; i < ASIZE (xfont_scratch_props); i++) ASET (xfont_scratch_props, i, Qnil); @@ -397,11 +397,11 @@ xfont_list_pattern (Display *display, const char *pattern, for (i = 0; i < num_fonts; i++) { ptrdiff_t len; - Lisp_Object entity; if (i > 0 && xstrcasecmp (indices[i - 1], indices[i]) == 0) continue; - entity = font_make_entity (); + if (NILP (entity)) + entity = font_make_entity (); len = xfont_decode_coding_xlfd (indices[i], -1, buf); if (font_parse_xlfd (buf, len, entity) < 0) continue; @@ -459,7 +459,7 @@ xfont_list_pattern (Display *display, const char *pattern, { if (NILP (script) || xfont_chars_supported (chars, NULL, encoding, repertory)) - list = Fcons (entity, list); + list = Fcons (entity, list), entity = Qnil; continue; } if (memcmp (props, aref_addr (entity, FONT_FOUNDRY_INDEX), @@ -474,7 +474,7 @@ xfont_list_pattern (Display *display, const char *pattern, } if (NILP (script) || ! NILP (Fmemq (script, scripts))) - list = Fcons (entity, list); + list = Fcons (entity, list), entity = Qnil; } XFreeFontNames (names); } @@ -541,7 +541,7 @@ xfont_list (struct frame *f, Lisp_Object spec) if (STRINGP (XCAR (alter)) && ((r - name) + SBYTES (XCAR (alter))) < 256) { - strcpy (r, SSDATA (XCAR (alter))); + lispstpcpy (r, XCAR (alter)); list = xfont_list_pattern (display, name, registry, script); if (! NILP (list)) break; @@ -975,15 +975,14 @@ xfont_encode_char (struct font *font, int c) return (xfont_get_pcm (xfont, &char2b) ? code : FONT_INVALID_CODE); } -static int -xfont_text_extents (struct font *font, unsigned int *code, int nglyphs, struct font_metrics *metrics) +static void +xfont_text_extents (struct font *font, unsigned int *code, + int nglyphs, struct font_metrics *metrics) { XFontStruct *xfont = ((struct xfont_info *) font)->xfont; - int width = 0; - int i, first; + int i, width = 0; + bool first; - if (metrics) - memset (metrics, 0, sizeof (struct font_metrics)); for (i = 0, first = 1; i < nglyphs; i++) { XChar2b char2b; @@ -997,34 +996,27 @@ xfont_text_extents (struct font *font, unsigned int *code, int nglyphs, struct f continue; if (first) { - if (metrics) - { - metrics->lbearing = pcm->lbearing; - metrics->rbearing = pcm->rbearing; - metrics->ascent = pcm->ascent; - metrics->descent = pcm->descent; - } + metrics->lbearing = pcm->lbearing; + metrics->rbearing = pcm->rbearing; + metrics->ascent = pcm->ascent; + metrics->descent = pcm->descent; first = 0; } else { - if (metrics) - { - if (metrics->lbearing > width + pcm->lbearing) - metrics->lbearing = width + pcm->lbearing; - if (metrics->rbearing < width + pcm->rbearing) - metrics->rbearing = width + pcm->rbearing; - if (metrics->ascent < pcm->ascent) - metrics->ascent = pcm->ascent; - if (metrics->descent < pcm->descent) - metrics->descent = pcm->descent; - } + if (metrics->lbearing > width + pcm->lbearing) + metrics->lbearing = width + pcm->lbearing; + if (metrics->rbearing < width + pcm->rbearing) + metrics->rbearing = width + pcm->rbearing; + if (metrics->ascent < pcm->ascent) + metrics->ascent = pcm->ascent; + if (metrics->descent < pcm->descent) + metrics->descent = pcm->descent; } width += pcm->width; } - if (metrics) - metrics->width = width; - return width; + + metrics->width = width; } static int diff --git a/src/xftfont.c b/src/xftfont.c index 9726a3b9911..0a883a7b87b 100644 --- a/src/xftfont.c +++ b/src/xftfont.c @@ -557,8 +557,9 @@ xftfont_encode_char (struct font *font, int c) return (code ? code : FONT_INVALID_CODE); } -static int -xftfont_text_extents (struct font *font, unsigned int *code, int nglyphs, struct font_metrics *metrics) +static void +xftfont_text_extents (struct font *font, unsigned int *code, + int nglyphs, struct font_metrics *metrics) { struct xftfont_info *xftfont_info = (struct xftfont_info *) font; XGlyphInfo extents; @@ -567,15 +568,12 @@ xftfont_text_extents (struct font *font, unsigned int *code, int nglyphs, struct XftGlyphExtents (xftfont_info->display, xftfont_info->xftfont, code, nglyphs, &extents); unblock_input (); - if (metrics) - { - metrics->lbearing = - extents.x; - metrics->rbearing = - extents.x + extents.width; - metrics->width = extents.xOff; - metrics->ascent = extents.y; - metrics->descent = extents.height - extents.y; - } - return extents.xOff; + + metrics->lbearing = - extents.x; + metrics->rbearing = - extents.x + extents.width; + metrics->width = extents.xOff; + metrics->ascent = extents.y; + metrics->descent = extents.height - extents.y; } static XftDraw * diff --git a/src/xgselect.c b/src/xgselect.c index bf889a90e97..7e883eb53c6 100644 --- a/src/xgselect.c +++ b/src/xgselect.c @@ -55,19 +55,28 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set *efds, GPollFD *gfds = gfds_buf; int gfds_size = ARRAYELTS (gfds_buf); int n_gfds, retval = 0, our_fds = 0, max_fds = fds_lim - 1; + bool context_acquired = false; int i, nfds, tmo_in_millisec; bool need_to_dispatch; USE_SAFE_ALLOCA; context = g_main_context_default (); + context_acquired = g_main_context_acquire (context); + /* FIXME: If we couldn't acquire the context, we just silently proceed + because this function handles more than just glib file descriptors. + Note that, as implemented, this failure is completely silent: there is + no feedback to the caller. */ if (rfds) all_rfds = *rfds; else FD_ZERO (&all_rfds); if (wfds) all_wfds = *wfds; else FD_ZERO (&all_wfds); - n_gfds = g_main_context_query (context, G_PRIORITY_LOW, &tmo_in_millisec, - gfds, gfds_size); + n_gfds = (context_acquired + ? g_main_context_query (context, G_PRIORITY_LOW, &tmo_in_millisec, + gfds, gfds_size) + : -1); + if (gfds_size < n_gfds) { SAFE_NALLOCA (gfds, sizeof *gfds, n_gfds); @@ -93,7 +102,7 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set *efds, SAFE_FREE (); - if (tmo_in_millisec >= 0) + if (n_gfds >= 0 && tmo_in_millisec >= 0) { tmo = make_timespec (tmo_in_millisec / 1000, 1000 * 1000 * (tmo_in_millisec % 1000)); @@ -152,6 +161,9 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set *efds, errno = pselect_errno; } + if (context_acquired) + g_main_context_release (context); + /* To not have to recalculate timeout, return like this. */ if ((our_fds > 0 || (nfds == 0 && tmop == &tmo)) && (retval == 0)) { diff --git a/src/xmenu.c b/src/xmenu.c index a7d47188ef5..0f69ee28e84 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -627,7 +627,6 @@ update_frame_menubar (struct frame *f) xg_update_frame_menubar (f); #else struct x_output *x; -/** int columns, rows; **/ eassert (FRAME_X_P (f)); @@ -637,10 +636,6 @@ update_frame_menubar (struct frame *f) return; block_input (); - /* Save the size of the frame because the pane widget doesn't accept - to resize itself. So force it. */ -/** columns = FRAME_COLS (f); **/ -/** rows = FRAME_LINES (f); **/ /* Do the voodoo which means "I'm changing lots of things, don't try to refigure sizes until I'm done." */ @@ -661,11 +656,16 @@ update_frame_menubar (struct frame *f) XtManageChild (x->edit_widget); lw_refigure_widget (x->column_widget, True); - /* Force the pane widget to resize itself with the right values. */ -/** EmacsFrameSetCharSize (x->edit_widget, columns, rows); **/ - adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f), 2, 0); + /* Force the pane widget to resize itself. */ +#ifdef USE_LUCID + /* For reasons I don't know Lucid wants to add one pixel to the frame + height when adding the menu bar. Compensate that here. */ + adjust_frame_size (f, -1, FRAME_TEXT_HEIGHT (f) - 1, 2, 0, Qmenu_bar_lines); +#else + adjust_frame_size (f, -1, -1, 2, 0, Qmenu_bar_lines); +#endif /* USE_LUCID */ unblock_input (); -#endif +#endif /* USE_GTK */ } #ifdef USE_LUCID @@ -739,12 +739,6 @@ set_frame_menubar (struct frame *f, bool first_time, bool deep_p) f->output_data.x->saved_menu_event->type = 0; } -#ifdef USE_GTK - /* If we have detached menus, we must update deep so detached menus - also gets updated. */ - deep_p = deep_p || xg_have_tear_offs (f); -#endif - if (deep_p) { /* Make a widget-value tree representing the entire menu trees. */ @@ -1062,6 +1056,12 @@ void free_frame_menubar (struct frame *f) { Widget menubar_widget; +#ifdef USE_MOTIF + /* Motif automatically shrinks the frame in lw_destroy_all_widgets. + If we want to preserve the old height, calculate it now so we can + restore it below. */ + int old_height = FRAME_TEXT_HEIGHT (f) + FRAME_MENUBAR_HEIGHT (f); +#endif eassert (FRAME_X_P (f)); @@ -1099,17 +1099,20 @@ free_frame_menubar (struct frame *f) XtVaGetValues (f->output_data.x->widget, XtNx, &x1, XtNy, &y1, NULL); if (x1 == 0 && y1 == 0) XtVaSetValues (f->output_data.x->widget, XtNx, x0, XtNy, y0, NULL); -#endif - adjust_frame_size (f, FRAME_TEXT_WIDTH (f), - FRAME_TEXT_HEIGHT (f), 2, 0); - /* - if (frame_inhibit_resize (f, 0)) - change_frame_size (f, 0, 0, 0, 0, 0, 1); + if (frame_inhibit_resize (f, 0, Qmenu_bar_lines)) + adjust_frame_size (f, -1, old_height, 1, 0, Qmenu_bar_lines); else - x_set_window_size (f, 0, FRAME_TEXT_WIDTH (f), - FRAME_TEXT_HEIGHT (f), 1); - */ +#endif /* USE_MOTIF */ + adjust_frame_size (f, -1, -1, 2, 0, Qmenu_bar_lines); } + else + { +#ifdef USE_MOTIF + if (frame_inhibit_resize (f, 0, Qmenu_bar_lines)) + adjust_frame_size (f, -1, old_height, 1, 0, Qmenu_bar_lines); +#endif + } + unblock_input (); } } @@ -2023,7 +2026,8 @@ x_menu_show (struct frame *f, int x, int y, int menuflags, Window root; XMenu *menu; int pane, selidx, lpane, status; - Lisp_Object entry, pane_prefix; + Lisp_Object entry = Qnil; + Lisp_Object pane_prefix; char *datap; int ulx, uly, width, height; int dispwidth, dispheight; @@ -2045,6 +2049,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags, return Qnil; } + USE_SAFE_ALLOCA; block_input (); /* Figure out which root window F is on. */ @@ -2057,8 +2062,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags, if (menu == NULL) { *error_name = "Can't create menu"; - unblock_input (); - return Qnil; + goto return_entry; } /* Don't GC while we prepare and show the menu, @@ -2101,8 +2105,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags, { XMenuDestroy (FRAME_X_DISPLAY (f), menu); *error_name = "Can't create pane"; - unblock_input (); - return Qnil; + goto return_entry; } i += MENU_ITEMS_PANE_LENGTH; @@ -2146,9 +2149,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags, if (!NILP (descrip)) { - /* if alloca is fast, use that to make the space, - to reduce gc needs. */ - item_data = alloca (maxwidth + SBYTES (descrip) + 1); + item_data = SAFE_ALLOCA (maxwidth + SBYTES (descrip) + 1); memcpy (item_data, SSDATA (item_name), SBYTES (item_name)); for (j = SCHARS (item_name); j < maxwidth; j++) item_data[j] = ' '; @@ -2166,8 +2167,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags, { XMenuDestroy (FRAME_X_DISPLAY (f), menu); *error_name = "Can't add selection to menu"; - unblock_input (); - return Qnil; + goto return_entry; } i += MENU_ITEMS_ITEM_LENGTH; lines++; @@ -2241,7 +2241,7 @@ x_menu_show (struct frame *f, int x, int y, int menuflags, status = XMenuActivate (FRAME_X_DISPLAY (f), menu, &pane, &selidx, x, y, ButtonReleaseMask, &datap, menu_help_callback); - entry = pane_prefix = Qnil; + pane_prefix = Qnil; switch (status) { @@ -2300,10 +2300,10 @@ x_menu_show (struct frame *f, int x, int y, int menuflags, break; } + return_entry: unblock_input (); - unbind_to (specpdl_count, Qnil); - - return entry; + SAFE_FREE (); + return unbind_to (specpdl_count, entry); } #endif /* not USE_X_TOOLKIT */ diff --git a/src/xml.c b/src/xml.c index feabe00efab..d418202182b 100644 --- a/src/xml.c +++ b/src/xml.c @@ -175,7 +175,7 @@ make_dom (xmlNode *node) } static Lisp_Object -parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int htmlp) +parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments, int htmlp) { xmlDoc *doc; Lisp_Object result = Qnil; @@ -214,21 +214,24 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int html if (doc != NULL) { - /* If the document is just comments, then this should get us the - nodes anyway. */ - xmlNode *n = doc->children->next; Lisp_Object r = Qnil; + if (NILP(discard_comments)) + { + /* If the document has toplevel comments, then this should + get us the nodes and the comments. */ + xmlNode *n = doc->children; - while (n) { - if (!NILP (r)) - result = Fcons (r, result); - r = make_dom (n); - n = n->next; - } + while (n) { + if (!NILP (r)) + result = Fcons (r, result); + r = make_dom (n); + n = n->next; + } + } if (NILP (result)) { - /* The document isn't just comments, so get the tree the - proper way. */ + /* The document doesn't have toplevel comments or we discarded + them. Get the tree the proper way. */ xmlNode *node = fn_xmlDocGetRootElement (doc); if (node != NULL) result = make_dom (node); @@ -251,25 +254,27 @@ xml_cleanup_parser (void) DEFUN ("libxml-parse-html-region", Flibxml_parse_html_region, Slibxml_parse_html_region, - 2, 3, 0, + 2, 4, 0, doc: /* Parse the region as an HTML document and return the parse tree. -If BASE-URL is non-nil, it is used to expand relative URLs. */) - (Lisp_Object start, Lisp_Object end, Lisp_Object base_url) +If BASE-URL is non-nil, it is used to expand relative URLs. +If DISCARD-COMMENTS is non-nil, all HTML comments are discarded. */) + (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments) { if (init_libxml2_functions ()) - return parse_region (start, end, base_url, 1); + return parse_region (start, end, base_url, discard_comments, 1); return Qnil; } DEFUN ("libxml-parse-xml-region", Flibxml_parse_xml_region, Slibxml_parse_xml_region, - 2, 3, 0, + 2, 4, 0, doc: /* Parse the region as an XML document and return the parse tree. -If BASE-URL is non-nil, it is used to expand relative URLs. */) - (Lisp_Object start, Lisp_Object end, Lisp_Object base_url) +If BASE-URL is non-nil, it is used to expand relative URLs. +If DISCARD-COMMENTS is non-nil, all HTML comments are discarded. */) + (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments) { if (init_libxml2_functions ()) - return parse_region (start, end, base_url, 0); + return parse_region (start, end, base_url, discard_comments, 0); return Qnil; } diff --git a/src/xselect.c b/src/xselect.c index 23310b0f867..92e89822293 100644 --- a/src/xselect.c +++ b/src/xselect.c @@ -96,13 +96,6 @@ static Lisp_Object Qx_lost_selection_functions, Qx_sent_selection_functions; is not necessarily sizeof (long). */ #define X_LONG_SIZE 4 -/* Extreme 'short' and 'long' values suitable for libX11. */ -#define X_SHRT_MAX 0x7fff -#define X_SHRT_MIN (-1 - X_SHRT_MAX) -#define X_LONG_MAX 0x7fffffff -#define X_LONG_MIN (-1 - X_LONG_MAX) -#define X_ULONG_MAX 0xffffffffUL - /* If this is a smaller number than the max-request-size of the display, emacs will use INCR selection transfer when the selection is larger than this. The max-request-size is usually around 64k, so if you want @@ -1908,7 +1901,7 @@ frame_for_x_selection (Lisp_Object object) } else if (TERMINALP (object)) { - struct terminal *t = get_terminal (object, 1); + struct terminal *t = decode_live_terminal (object); if (t->type == output_x_window) FOR_EACH_FRAME (tail, frame) @@ -2159,11 +2152,9 @@ x_clipboard_manager_save (Lisp_Object frame) static Lisp_Object x_clipboard_manager_error_1 (Lisp_Object err) { - Lisp_Object args[2]; - args[0] = build_string ("X clipboard manager error: %s\n\ + AUTO_STRING (format, "X clipboard manager error: %s\n\ If the problem persists, set `x-select-enable-clipboard-manager' to nil."); - args[1] = CAR (CDR (err)); - Fmessage (2, args); + Fmessage (2, (Lisp_Object []) {format, CAR (CDR (err))}); return Qnil; } @@ -2230,10 +2221,8 @@ x_clipboard_manager_save_all (void) local_frame = XCAR (XCDR (XCDR (XCDR (local_selection)))); if (FRAME_LIVE_P (XFRAME (local_frame))) { - Lisp_Object args[1]; - args[0] = build_string ("Saving clipboard to X clipboard manager..."); - Fmessage (1, args); - + AUTO_STRING (saving, "Saving clipboard to X clipboard manager..."); + Fmessage (1, &saving); internal_condition_case_1 (x_clipboard_manager_save, local_frame, Qt, x_clipboard_manager_error_2); } @@ -2288,10 +2277,10 @@ x_check_property_data (Lisp_Object data) void x_fill_property_data (Display *dpy, Lisp_Object data, void *ret, int format) { - long val; - long *d32 = (long *) ret; - short *d16 = (short *) ret; - char *d08 = (char *) ret; + unsigned long val; + unsigned long *d32 = (unsigned long *) ret; + unsigned short *d16 = (unsigned short *) ret; + unsigned char *d08 = (unsigned char *) ret; Lisp_Object iter; for (iter = data; CONSP (iter); iter = XCDR (iter)) @@ -2299,7 +2288,22 @@ x_fill_property_data (Display *dpy, Lisp_Object data, void *ret, int format) Lisp_Object o = XCAR (iter); if (INTEGERP (o) || FLOATP (o) || CONSP (o)) - val = cons_to_signed (o, LONG_MIN, LONG_MAX); + { + if (CONSP (o) + && RANGED_INTEGERP (X_LONG_MIN >> 16, XCAR (o), X_LONG_MAX >> 16) + && RANGED_INTEGERP (- (1 << 15), XCDR (o), -1)) + { + /* cons_to_x_long does not handle negative values for v2. + For XDnd, v2 might be y of a window, and can be negative. + The XDnd spec. is not explicit about negative values, + but let's assume negative v2 is sent modulo 2**16. */ + unsigned long v1 = XINT (XCAR (o)) & 0xffff; + unsigned long v2 = XINT (XCDR (o)) & 0xffff; + val = (v1 << 16) | v2; + } + else + val = cons_to_x_long (o); + } else if (STRINGP (o)) { block_input (); @@ -2311,17 +2315,15 @@ x_fill_property_data (Display *dpy, Lisp_Object data, void *ret, int format) if (format == 8) { - if (CHAR_MIN <= val && val <= CHAR_MAX) - *d08++ = val; - else + if ((1 << 8) < val && val <= X_ULONG_MAX - (1 << 7)) error ("Out of 'char' range"); + *d08++ = val; } else if (format == 16) { - if (SHRT_MIN <= val && val <= SHRT_MAX) - *d16++ = val; - else + if ((1 << 16) < val && val <= X_ULONG_MAX - (1 << 15)) error ("Out of 'short' range"); + *d16++ = val; } else *d32++ = val; @@ -2627,12 +2629,14 @@ syms_of_xselect (void) converted_selections = NULL; conversion_fail_tag = None; + /* FIXME: Duplicate definition in nsselect.c. */ DEFVAR_LISP ("selection-converter-alist", Vselection_converter_alist, doc: /* An alist associating X Windows selection-types with functions. These functions are called to convert the selection, with three args: the name of the selection (typically `PRIMARY', `SECONDARY', or `CLIPBOARD'); a desired type to which the selection should be converted; -and the local selection value (whatever was given to `x-own-selection'). +and the local selection value (whatever was given to +`x-own-selection-internal'). The function should return the value to send to the X server \(typically a string). A return value of nil diff --git a/src/xsmfns.c b/src/xsmfns.c index 81b012690f9..cd4f9ce57fa 100644 --- a/src/xsmfns.c +++ b/src/xsmfns.c @@ -49,7 +49,7 @@ static struct input_event emacs_event; /* The descriptor that we use to check for data from the session manager. */ -static int ice_fd; +static int ice_fd = -1; /* A flag that says if we are in shutdown interactions or not. */ @@ -415,11 +415,11 @@ x_session_initialize (struct x_display_info *dpyinfo) /* This malloc will not be freed, but it is only done once, and hopefully not very large */ emacs_program = xmalloc (name_len + 1); - emacs_program[0] = '\0'; + char *z = emacs_program; if (! EQ (Vinvocation_directory, Qnil)) - strcpy (emacs_program, SSDATA (Vinvocation_directory)); - strcat (emacs_program, SSDATA (Vinvocation_name)); + z = lispstpcpy (z, Vinvocation_directory); + lispstpcpy (z, Vinvocation_name); /* The SM protocol says all callbacks are mandatory, so set up all here and in the mask passed to SmcOpenConnection. */ diff --git a/src/xterm.c b/src/xterm.c index 20d3afb0003..f3b9cbe9a0f 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -223,7 +223,7 @@ enum xembed_message }; static bool x_alloc_nearest_color_1 (Display *, Colormap, XColor *); -static void x_set_window_size_1 (struct frame *, int, int, int, bool); +static void x_set_window_size_1 (struct frame *, bool, int, int, bool); static void x_raise_frame (struct frame *); static void x_lower_frame (struct frame *); static const XColor *x_color_cells (Display *, int *); @@ -258,10 +258,10 @@ static void x_horizontal_scroll_bar_report_motion (struct frame **, Lisp_Object enum scroll_bar_part *, Lisp_Object *, Lisp_Object *, Time *); -static int x_handle_net_wm_state (struct frame *, const XPropertyEvent *); +static bool x_handle_net_wm_state (struct frame *, const XPropertyEvent *); static void x_check_fullscreen (struct frame *); static void x_check_expected_move (struct frame *, int, int); -static void x_sync_with_move (struct frame *, int, int, int); +static void x_sync_with_move (struct frame *, int, int, bool); static int handle_one_xevent (struct x_display_info *, const XEvent *, int *, struct input_event *); @@ -275,7 +275,7 @@ static void x_wm_set_window_state (struct frame *, int); static void x_wm_set_icon_pixmap (struct frame *, ptrdiff_t); static void x_initialize (void); -static int get_current_wm_state (struct frame *, Window, int *, int *); +static bool get_current_wm_state (struct frame *, Window, int *, bool *); /* Flush display of frame F. */ @@ -308,7 +308,7 @@ x_flush (struct frame *f) Debugging ***********************************************************************/ -#if 0 +#if false /* This is a function useful for recording debugging information about the sequence of occurrences in this file. */ @@ -334,7 +334,7 @@ record_event (char *locus, int type) event_record_index++; } -#endif /* 0 */ +#endif @@ -482,7 +482,7 @@ x_update_window_begin (struct window *w) if (f == hlinfo->mouse_face_mouse_frame) { /* Don't do highlighting for mouse motion during the update. */ - hlinfo->mouse_face_defer = 1; + hlinfo->mouse_face_defer = true; /* If F needs to be redrawn, simply forget about any prior mouse highlighting. */ @@ -586,11 +586,11 @@ x_update_window_end (struct window *w, bool cursor_on_p, block_input (); if (cursor_on_p) - display_and_set_cursor (w, 1, + display_and_set_cursor (w, true, w->output_cursor.hpos, w->output_cursor.vpos, w->output_cursor.x, w->output_cursor.y); - if (draw_window_fringes (w, 1)) + if (draw_window_fringes (w, true)) { if (WINDOW_RIGHT_DIVIDER_WIDTH (w)) x_draw_right_divider (w); @@ -621,7 +621,7 @@ static void x_update_end (struct frame *f) { /* Mouse highlight may be displayed again. */ - MOUSE_HL_INFO (f)->mouse_face_defer = 0; + MOUSE_HL_INFO (f)->mouse_face_defer = false; #ifndef XFlush block_input (); @@ -678,7 +678,7 @@ x_after_update_window_line (struct window *w, struct glyph_row *desired_row) eassert (w); if (!desired_row->mode_line_p && !w->pseudo_window_p) - desired_row->redraw_fringe_bitmaps_p = 1; + desired_row->redraw_fringe_bitmaps_p = true; #ifdef USE_X_TOOLKIT /* When a window has disappeared, make sure that no rest of @@ -820,10 +820,10 @@ static void x_draw_image_foreground_1 (struct glyph_string *, Pixmap); static void x_clear_glyph_string_rect (struct glyph_string *, int, int, int, int); static void x_draw_relief_rect (struct frame *, int, int, int, int, - int, int, int, int, int, int, + int, bool, bool, bool, bool, bool, XRectangle *); static void x_draw_box_rect (struct glyph_string *, int, int, int, int, - int, int, int, XRectangle *); + int, bool, bool, XRectangle *); static void x_scroll_bar_clear (struct frame *); #ifdef GLYPH_DEBUG @@ -965,7 +965,7 @@ x_set_glyph_string_gc (struct glyph_string *s) else if (s->hl == DRAW_CURSOR) { x_set_cursor_gc (s); - s->stippled_p = 0; + s->stippled_p = false; } else if (s->hl == DRAW_MOUSE_FACE) { @@ -1097,7 +1097,7 @@ x_draw_glyph_string_background (struct glyph_string *s, bool force_p) s->background_width, s->height - 2 * box_line_width); XSetFillStyle (s->display, s->gc, FillSolid); - s->background_filled_p = 1; + s->background_filled_p = true; } else if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width || s->font_not_found_p @@ -1107,7 +1107,7 @@ x_draw_glyph_string_background (struct glyph_string *s, bool force_p) x_clear_glyph_string_rect (s, s->x, s->y + box_line_width, s->background_width, s->height - 2 * box_line_width); - s->background_filled_p = 1; + s->background_filled_p = true; } } } @@ -1153,11 +1153,11 @@ x_draw_glyph_string_foreground (struct glyph_string *s) y = s->ybase - boff; if (s->for_overlaps || (s->background_filled_p && s->hl != DRAW_CURSOR)) - font->driver->draw (s, 0, s->nchars, x, y, 0); + font->driver->draw (s, 0, s->nchars, x, y, false); else - font->driver->draw (s, 0, s->nchars, x, y, 1); + font->driver->draw (s, 0, s->nchars, x, y, true); if (s->face->overstrike) - font->driver->draw (s, 0, s->nchars, x + 1, y, 0); + font->driver->draw (s, 0, s->nchars, x + 1, y, false); } } @@ -1202,9 +1202,9 @@ x_draw_composite_glyph_string_foreground (struct glyph_string *s) int xx = x + s->cmp->offsets[j * 2]; int yy = y - s->cmp->offsets[j * 2 + 1]; - font->driver->draw (s, j, j + 1, xx, yy, 0); + font->driver->draw (s, j, j + 1, xx, yy, false); if (s->face->overstrike) - font->driver->draw (s, j, j + 1, xx + 1, yy, 0); + font->driver->draw (s, j, j + 1, xx + 1, yy, false); } } else @@ -1225,17 +1225,18 @@ x_draw_composite_glyph_string_foreground (struct glyph_string *s) if (j < i) { - font->driver->draw (s, j, i, x, y, 0); + font->driver->draw (s, j, i, x, y, false); if (s->face->overstrike) - font->driver->draw (s, j, i, x + 1, y, 0); + font->driver->draw (s, j, i, x + 1, y, false); x += width; } xoff = LGLYPH_XOFF (glyph); yoff = LGLYPH_YOFF (glyph); wadjust = LGLYPH_WADJUST (glyph); - font->driver->draw (s, i, i + 1, x + xoff, y + yoff, 0); + font->driver->draw (s, i, i + 1, x + xoff, y + yoff, false); if (s->face->overstrike) - font->driver->draw (s, i, i + 1, x + xoff + 1, y + yoff, 0); + font->driver->draw (s, i, i + 1, x + xoff + 1, y + yoff, + false); x += wadjust; j = i + 1; width = 0; @@ -1243,9 +1244,9 @@ x_draw_composite_glyph_string_foreground (struct glyph_string *s) } if (j < i) { - font->driver->draw (s, j, i, x, y, 0); + font->driver->draw (s, j, i, x, y, false); if (s->face->overstrike) - font->driver->draw (s, j, i, x + 1, y, 0); + font->driver->draw (s, j, i, x + 1, y, false); } } } @@ -1313,11 +1314,11 @@ x_draw_glyphless_glyph_string_foreground (struct glyph_string *s) s->font->driver->draw (s, 0, upper_len, x + glyph->slice.glyphless.upper_xoff, s->ybase + glyph->slice.glyphless.upper_yoff, - 0); + false); s->font->driver->draw (s, upper_len, len, x + glyph->slice.glyphless.lower_xoff, s->ybase + glyph->slice.glyphless.lower_yoff, - 0); + false); } if (glyph->u.glyphless.method != GLYPHLESS_DISPLAY_THIN_SPACE) XDrawRectangle (s->display, s->window, s->gc, @@ -1784,7 +1785,7 @@ x_alloc_lighter_color (struct frame *f, Display *display, Colormap cmap, success_p = x_alloc_nearest_color (f, cmap, &new); } else - success_p = 1; + success_p = true; *pixel = new.pixel; } @@ -1879,16 +1880,17 @@ x_setup_relief_colors (struct glyph_string *s) /* Draw a relief on frame F inside the rectangle given by LEFT_X, TOP_Y, RIGHT_X, and BOTTOM_Y. WIDTH is the thickness of the relief - to draw, it must be >= 0. RAISED_P non-zero means draw a raised - relief. LEFT_P non-zero means draw a relief on the left side of - the rectangle. RIGHT_P non-zero means draw a relief on the right + to draw, it must be >= 0. RAISED_P means draw a raised + relief. LEFT_P means draw a relief on the left side of + the rectangle. RIGHT_P means draw a relief on the right side of the rectangle. CLIP_RECT is the clipping rectangle to use when drawing. */ static void x_draw_relief_rect (struct frame *f, - int left_x, int top_y, int right_x, int bottom_y, int width, - int raised_p, int top_p, int bot_p, int left_p, int right_p, + int left_x, int top_y, int right_x, int bottom_y, + int width, bool raised_p, bool top_p, bool bot_p, + bool left_p, bool right_p, XRectangle *clip_rect) { Display *dpy = FRAME_X_DISPLAY (f); @@ -1912,8 +1914,8 @@ x_draw_relief_rect (struct frame *f, { if (width == 1) XDrawLine (dpy, window, gc, - left_x + (left_p ? 1 : 0), top_y, - right_x + (right_p ? 0 : 1), top_y); + left_x + left_p, top_y, + right_x + !right_p, top_y); for (i = 1; i < width; ++i) XDrawLine (dpy, window, gc, @@ -1948,8 +1950,8 @@ x_draw_relief_rect (struct frame *f, /* Outermost top line. */ if (top_p) XDrawLine (dpy, window, gc, - left_x + (left_p ? 1 : 0), top_y, - right_x + (right_p ? 0 : 1), top_y); + left_x + left_p, top_y, + right_x + !right_p, top_y); /* Outermost left line. */ if (left_p) @@ -1960,8 +1962,8 @@ x_draw_relief_rect (struct frame *f, if (bot_p) { XDrawLine (dpy, window, gc, - left_x + (left_p ? 1 : 0), bottom_y, - right_x + (right_p ? 0 : 1), bottom_y); + left_x + left_p, bottom_y, + right_x + !right_p, bottom_y); for (i = 1; i < width; ++i) XDrawLine (dpy, window, gc, left_x + i * left_p, bottom_y - i, @@ -1985,15 +1987,15 @@ x_draw_relief_rect (struct frame *f, /* Draw a box on frame F inside the rectangle given by LEFT_X, TOP_Y, RIGHT_X, and BOTTOM_Y. WIDTH is the thickness of the lines to - draw, it must be >= 0. LEFT_P non-zero means draw a line on the - left side of the rectangle. RIGHT_P non-zero means draw a line + draw, it must be >= 0. LEFT_P means draw a line on the + left side of the rectangle. RIGHT_P means draw a line on the right side of the rectangle. CLIP_RECT is the clipping rectangle to use when drawing. */ static void x_draw_box_rect (struct glyph_string *s, int left_x, int top_y, int right_x, int bottom_y, int width, - int left_p, int right_p, XRectangle *clip_rect) + bool left_p, bool right_p, XRectangle *clip_rect) { XGCValues xgcv; @@ -2029,8 +2031,8 @@ x_draw_box_rect (struct glyph_string *s, static void x_draw_glyph_string_box (struct glyph_string *s) { - int width, left_x, right_x, top_y, bottom_y, last_x, raised_p; - int left_p, right_p; + int width, left_x, right_x, top_y, bottom_y, last_x; + bool raised_p, left_p, right_p; struct glyph *last_glyph; XRectangle clip_rect; @@ -2070,7 +2072,8 @@ x_draw_glyph_string_box (struct glyph_string *s) { x_setup_relief_colors (s); x_draw_relief_rect (s->f, left_x, top_y, right_x, bottom_y, - width, raised_p, 1, 1, left_p, right_p, &clip_rect); + width, raised_p, true, true, left_p, right_p, + &clip_rect); } } @@ -2169,7 +2172,8 @@ x_draw_image_foreground (struct glyph_string *s) static void x_draw_image_relief (struct glyph_string *s) { - int x1, y1, thick, raised_p, top_p, bot_p, left_p, right_p; + int x1, y1, thick; + bool raised_p, top_p, bot_p, left_p, right_p; int extra_x, extra_y; XRectangle r; int x = s->x; @@ -2218,16 +2222,16 @@ x_draw_image_relief (struct glyph_string *s) extra_x = extra_y = XINT (Vtool_bar_button_margin); } - top_p = bot_p = left_p = right_p = 0; + top_p = bot_p = left_p = right_p = false; if (s->slice.x == 0) - x -= thick + extra_x, left_p = 1; + x -= thick + extra_x, left_p = true; if (s->slice.y == 0) - y -= thick + extra_y, top_p = 1; + y -= thick + extra_y, top_p = true; if (s->slice.x + s->slice.width == s->img->width) - x1 += thick + extra_x, right_p = 1; + x1 += thick + extra_x, right_p = true; if (s->slice.y + s->slice.height == s->img->height) - y1 += thick + extra_y, bot_p = 1; + y1 += thick + extra_y, bot_p = true; x_setup_relief_colors (s); get_glyph_string_clip_rect (s, &r); @@ -2425,7 +2429,7 @@ x_draw_image_glyph_string (struct glyph_string *s) x_draw_glyph_string_bg_rect (s, x, y, width, height); } - s->background_filled_p = 1; + s->background_filled_p = true; } /* Draw the foreground. */ @@ -2477,7 +2481,7 @@ x_draw_stretch_glyph_string (struct glyph_string *s) { /* In R2L rows, draw the cursor on the right edge of the stretch glyph. */ - int right_x = window_box_right_offset (s->w, TEXT_AREA); + int right_x = window_box_right (s->w, TEXT_AREA); if (x + background_width > right_x) background_width -= x - right_x; @@ -2549,7 +2553,7 @@ x_draw_stretch_glyph_string (struct glyph_string *s) x_draw_glyph_string_bg_rect (s, x, s->y, background_width, s->height); } - s->background_filled_p = 1; + s->background_filled_p = true; } /* @@ -2567,7 +2571,8 @@ static void x_draw_underwave (struct glyph_string *s) { int wave_height = 3, wave_length = 2; - int dx, dy, x0, y0, width, x1, y1, x2, y2, odd, xmax; + int dx, dy, x0, y0, width, x1, y1, x2, y2, xmax; + bool odd; XRectangle wave_clip, string_clip, final_clip; dx = wave_length; @@ -2594,7 +2599,7 @@ x_draw_underwave (struct glyph_string *s) x1 = x0 - (x0 % dx); x2 = x1 + dx; - odd = (x1/dx) % 2; + odd = (x1 / dx) & 1; y1 = y2 = y0; if (odd) @@ -2623,7 +2628,7 @@ x_draw_underwave (struct glyph_string *s) static void x_draw_glyph_string (struct glyph_string *s) { - bool relief_drawn_p = 0; + bool relief_drawn_p = false; /* If S draws into the background of its successors, draw the background of the successors first so that S can draw into it. @@ -2643,7 +2648,7 @@ x_draw_glyph_string (struct glyph_string *s) if (next->first_glyph->type == STRETCH_GLYPH) x_draw_stretch_glyph_string (next); else - x_draw_glyph_string_background (next, 1); + x_draw_glyph_string_background (next, true); next->num_clips = 0; } } @@ -2660,10 +2665,10 @@ x_draw_glyph_string (struct glyph_string *s) { x_set_glyph_string_clipping (s); - x_draw_glyph_string_background (s, 1); + x_draw_glyph_string_background (s, true); x_draw_glyph_string_box (s); x_set_glyph_string_clipping (s); - relief_drawn_p = 1; + relief_drawn_p = true; } else if (!s->clip_head /* draw_glyphs didn't specify a clip mask. */ && !s->clip_tail @@ -2694,26 +2699,26 @@ x_draw_glyph_string (struct glyph_string *s) case CHAR_GLYPH: if (s->for_overlaps) - s->background_filled_p = 1; + s->background_filled_p = true; else - x_draw_glyph_string_background (s, 0); + x_draw_glyph_string_background (s, false); x_draw_glyph_string_foreground (s); break; case COMPOSITE_GLYPH: if (s->for_overlaps || (s->cmp_from > 0 && ! s->first_glyph->u.cmp.automatic)) - s->background_filled_p = 1; + s->background_filled_p = true; else - x_draw_glyph_string_background (s, 1); + x_draw_glyph_string_background (s, true); x_draw_composite_glyph_string_foreground (s); break; case GLYPHLESS_GLYPH: if (s->for_overlaps) - s->background_filled_p = 1; + s->background_filled_p = true; else - x_draw_glyph_string_background (s, 1); + x_draw_glyph_string_background (s, true); x_draw_glyphless_glyph_string_foreground (s); break; @@ -2980,7 +2985,7 @@ x_show_hourglass (struct frame *f) if (FRAME_OUTER_WINDOW (f)) #endif { - x->hourglass_p = 1; + x->hourglass_p = true; if (!x->hourglass_window) { @@ -3018,7 +3023,7 @@ x_hide_hourglass (struct frame *f) /* Sync here because XTread_socket looks at the hourglass_p flag that is reset to zero below. */ XSync (FRAME_X_DISPLAY (f), False); - x->hourglass_p = 0; + x->hourglass_p = false; } } @@ -3043,7 +3048,7 @@ XTflash (struct frame *f) cairo_rectangle (cr, x, y, w, h); \ cairo_fill (cr); \ } \ - while (0) + while (false) #else /* ! HAVE_GTK3 */ GdkGCValues vals; GdkGC *gc; @@ -3166,7 +3171,7 @@ XTflash (struct frame *f) static void -XTtoggle_invisible_pointer (struct frame *f, int invisible) +XTtoggle_invisible_pointer (struct frame *f, bool invisible) { block_input (); FRAME_DISPLAY_INFO (f)->toggle_visible_pointer (f, invisible); @@ -3286,7 +3291,7 @@ frame_highlight (struct frame *f) f->output_data.x->border_pixel); x_uncatch_errors (); unblock_input (); - x_update_cursor (f, 1); + x_update_cursor (f, true); x_set_frame_alpha (f); } @@ -3304,7 +3309,7 @@ frame_unhighlight (struct frame *f) f->output_data.x->border_tile); x_uncatch_errors (); unblock_input (); - x_update_cursor (f, 1); + x_update_cursor (f, true); x_set_frame_alpha (f); } @@ -3389,7 +3394,7 @@ x_focus_changed (int type, int state, struct x_display_info *dpyinfo, struct fra XUnsetICFocus (FRAME_XIC (frame)); #endif if (frame->pointer_invisible) - XTtoggle_invisible_pointer (frame, 0); + XTtoggle_invisible_pointer (frame, false); } } @@ -3702,11 +3707,11 @@ x_find_modifier_meanings (struct x_display_info *dpyinfo) Alt keysyms are on. */ { int row, col; /* The row and column in the modifier table. */ - int found_alt_or_meta; + bool found_alt_or_meta; for (row = 3; row < 8; row++) { - found_alt_or_meta = 0; + found_alt_or_meta = false; for (col = 0; col < mods->max_keypermod; col++) { KeyCode code = mods->modifiermap[(row * mods->max_keypermod) + col]; @@ -3727,13 +3732,13 @@ x_find_modifier_meanings (struct x_display_info *dpyinfo) { case XK_Meta_L: case XK_Meta_R: - found_alt_or_meta = 1; + found_alt_or_meta = true; dpyinfo->meta_mod_mask |= (1 << row); break; case XK_Alt_L: case XK_Alt_R: - found_alt_or_meta = 1; + found_alt_or_meta = true; dpyinfo->alt_mod_mask |= (1 << row); break; @@ -3912,14 +3917,14 @@ construct_mouse_click (struct input_event *result, the mainstream emacs code by setting mouse_moved. If not, ask for another motion event, so we can check again the next time it moves. */ -static int +static bool note_mouse_movement (struct frame *frame, const XMotionEvent *event) { XRectangle *r; struct x_display_info *dpyinfo; if (!FRAME_X_OUTPUT (frame)) - return 0; + return false; dpyinfo = FRAME_DISPLAY_INFO (frame); dpyinfo->last_mouse_movement_time = event->time; @@ -3929,11 +3934,11 @@ note_mouse_movement (struct frame *frame, const XMotionEvent *event) if (event->window != FRAME_X_WINDOW (frame)) { - frame->mouse_moved = 1; + frame->mouse_moved = true; dpyinfo->last_mouse_scroll_bar = NULL; note_mouse_highlight (frame, -1, -1); dpyinfo->last_mouse_glyph_frame = NULL; - return 1; + return true; } @@ -3943,16 +3948,16 @@ note_mouse_movement (struct frame *frame, const XMotionEvent *event) || event->x < r->x || event->x >= r->x + r->width || event->y < r->y || event->y >= r->y + r->height) { - frame->mouse_moved = 1; + frame->mouse_moved = true; dpyinfo->last_mouse_scroll_bar = NULL; note_mouse_highlight (frame, event->x, event->y); /* Remember which glyph we're now on. */ remember_mouse_glyph (frame, event->x, event->y, r); dpyinfo->last_mouse_glyph_frame = frame; - return 1; + return true; } - return 0; + return false; } /* Return the current position of the mouse. @@ -4008,7 +4013,7 @@ XTmouse_position (struct frame **fp, int insist, Lisp_Object *bar_window, FOR_EACH_FRAME (tail, frame) if (FRAME_X_P (XFRAME (frame)) && FRAME_X_DISPLAY (XFRAME (frame)) == FRAME_X_DISPLAY (*fp)) - XFRAME (frame)->mouse_moved = 0; + XFRAME (frame)->mouse_moved = false; dpyinfo->last_mouse_scroll_bar = NULL; @@ -4069,7 +4074,7 @@ XTmouse_position (struct frame **fp, int insist, Lisp_Object *bar_window, } else { - while (1) + while (true) { XTranslateCoordinates (FRAME_X_DISPLAY (*fp), @@ -4166,7 +4171,7 @@ XTmouse_position (struct frame **fp, int insist, Lisp_Object *bar_window, dpyinfo->last_mouse_glyph_frame = f1; *bar_window = Qnil; - *part = 0; + *part = scroll_bar_above_handle; *fp = f1; XSETINT (*x, win_x); XSETINT (*y, win_y); @@ -4259,7 +4264,8 @@ x_window_to_menu_bar (Window window) #ifdef USE_TOOLKIT_SCROLL_BARS -static void x_send_scroll_bar_event (Lisp_Object, int, int, int, bool); +static void x_send_scroll_bar_event (Lisp_Object, enum scroll_bar_part, + int, int, bool); /* Lisp window being scrolled. Set when starting to interact with a toolkit scroll bar, reset to nil when ending the interaction. */ @@ -4292,7 +4298,7 @@ static void xt_action_hook (Widget widget, XtPointer client_data, String action_name, XEvent *event, String *params, Cardinal *num_params) { - int scroll_bar_p; + bool scroll_bar_p; const char *end_action; #ifdef USE_MOTIF @@ -4311,7 +4317,7 @@ xt_action_hook (Widget widget, XtPointer client_data, String action_name, struct scroll_bar *bar; x_send_scroll_bar_event (window_being_scrolled, - scroll_bar_end_scroll, 0, 0, 0); + scroll_bar_end_scroll, 0, 0, false); w = XWINDOW (window_being_scrolled); bar = XSCROLL_BAR (w->vertical_scroll_bar); @@ -4326,7 +4332,7 @@ xt_action_hook (Widget widget, XtPointer client_data, String action_name, bar->last_seen_part = scroll_bar_nowhere; #endif /* Xt timeouts no longer needed. */ - toolkit_scroll_bar_interaction = 0; + toolkit_scroll_bar_interaction = false; } } @@ -4335,7 +4341,7 @@ static void xt_horizontal_action_hook (Widget widget, XtPointer client_data, String action_name, XEvent *event, String *params, Cardinal *num_params) { - int scroll_bar_p; + bool scroll_bar_p; const char *end_action; #ifdef USE_MOTIF @@ -4354,7 +4360,7 @@ xt_horizontal_action_hook (Widget widget, XtPointer client_data, String action_n struct scroll_bar *bar; x_send_scroll_bar_event (window_being_scrolled, - scroll_bar_end_scroll, 0, 0, 1); + scroll_bar_end_scroll, 0, 0, true); w = XWINDOW (window_being_scrolled); bar = XSCROLL_BAR (w->horizontal_scroll_bar); @@ -4369,7 +4375,7 @@ xt_horizontal_action_hook (Widget widget, XtPointer client_data, String action_n bar->last_seen_part = scroll_bar_nowhere; #endif /* Xt timeouts no longer needed. */ - toolkit_scroll_bar_interaction = 0; + toolkit_scroll_bar_interaction = false; } } #endif /* not USE_GTK */ @@ -4380,7 +4386,8 @@ xt_horizontal_action_hook (Widget widget, XtPointer client_data, String action_n amount to scroll of a whole of WHOLE. */ static void -x_send_scroll_bar_event (Lisp_Object window, int part, int portion, int whole, bool horizontal) +x_send_scroll_bar_event (Lisp_Object window, enum scroll_bar_part part, + int portion, int whole, bool horizontal) { XEvent event; XClientMessageEvent *ev = &event.xclient; @@ -4415,7 +4422,7 @@ x_send_scroll_bar_event (Lisp_Object window, int part, int portion, int whole, b /* Make Xt timeouts work while the scroll bar is active. */ #ifdef USE_X_TOOLKIT - toolkit_scroll_bar_interaction = 1; + toolkit_scroll_bar_interaction = true; x_activate_timeout_atimer (); #endif @@ -4513,8 +4520,9 @@ xm_scroll_callback (Widget widget, XtPointer client_data, XtPointer call_data) { struct scroll_bar *bar = client_data; XmScrollBarCallbackStruct *cs = call_data; - int part = -1, whole = 0, portion = 0; - int horizontal = bar->horizontal; + enum scroll_bar_part part = scroll_bar_nowhere; + bool horizontal = bar->horizontal; + int whole = 0, portion = 0; switch (cs->reason) { @@ -4558,12 +4566,9 @@ xm_scroll_callback (Widget widget, XtPointer client_data, XtPointer call_data) if (horizontal) { - whole = bar->whole; - portion = (((float) cs->value - / (XM_SB_MAX - slider_size)) - * (whole - - ((float) slider_size / XM_SB_MAX) * whole)); - portion = max (0, portion); + portion = bar->whole * ((float)cs->value / XM_SB_MAX); + whole = bar->whole * ((float)(XM_SB_MAX - slider_size) / XM_SB_MAX); + portion = min (portion, whole); part = scroll_bar_horizontal_handle; } else @@ -4581,10 +4586,11 @@ xm_scroll_callback (Widget widget, XtPointer client_data, XtPointer call_data) break; }; - if (part >= 0) + if (part != scroll_bar_nowhere) { window_being_scrolled = bar->window; - x_send_scroll_bar_event (bar->window, part, portion, whole, bar->horizontal); + x_send_scroll_bar_event (bar->window, part, portion, whole, + bar->horizontal); } } @@ -4599,8 +4605,9 @@ xg_scroll_callback (GtkRange *range, gdouble value, gpointer user_data) { + int whole = 0, portion = 0; struct scroll_bar *bar = user_data; - int part = -1, whole = 0, portion = 0; + enum scroll_bar_part part = scroll_bar_nowhere; GtkAdjustment *adj = GTK_ADJUSTMENT (gtk_range_get_adjustment (range)); struct frame *f = g_object_get_data (G_OBJECT (range), XG_FRAME_DATA); @@ -4653,10 +4660,11 @@ xg_scroll_callback (GtkRange *range, break; } - if (part >= 0) + if (part != scroll_bar_nowhere) { window_being_scrolled = bar->window; - x_send_scroll_bar_event (bar->window, part, portion, whole, bar->horizontal); + x_send_scroll_bar_event (bar->window, part, portion, whole, + bar->horizontal); } return FALSE; @@ -4696,24 +4704,51 @@ xaw_jump_callback (Widget widget, XtPointer client_data, XtPointer call_data) float *top_addr = call_data; float top = *top_addr; float shown; - int whole, portion, height; + int whole, portion, height, width; enum scroll_bar_part part; - int horizontal = bar->horizontal; + bool horizontal = bar->horizontal; - /* Get the size of the thumb, a value between 0 and 1. */ - block_input (); - XtVaGetValues (widget, XtNshown, &shown, XtNheight, &height, NULL); - unblock_input (); if (horizontal) { - whole = bar->whole; - portion = (top * (whole - (shown * whole))) / (1 - shown); - portion = max (0, portion); + /* Get the size of the thumb, a value between 0 and 1. */ + block_input (); + XtVaGetValues (widget, XtNshown, &shown, XtNwidth, &width, NULL); + unblock_input (); + + if (shown < 1) + { + whole = bar->whole - (shown * bar->whole); + portion = min (top * bar->whole, whole); + } + else + { + whole = bar->whole; + portion = 0; + } + part = scroll_bar_horizontal_handle; } else - part = scroll_bar_handle; + { + /* Get the size of the thumb, a value between 0 and 1. */ + block_input (); + XtVaGetValues (widget, XtNshown, &shown, XtNheight, &height, NULL); + unblock_input (); + + whole = 10000000; + portion = shown < 1 ? top * whole : 0; + + if (shown < 1 && (eabs (top + shown - 1) < 1.0f / height)) + /* Some derivatives of Xaw refuse to shrink the thumb when you reach + the bottom, so we force the scrolling whenever we see that we're + too close to the bottom (in x_set_toolkit_scroll_bar_thumb + we try to ensure that we always stay two pixels away from the + bottom). */ + part = scroll_bar_down_arrow; + else + part = scroll_bar_handle; + } window_being_scrolled = bar->window; bar->dragging = portion; @@ -4736,28 +4771,56 @@ xaw_scroll_callback (Widget widget, XtPointer client_data, XtPointer call_data) struct scroll_bar *bar = client_data; /* The position really is stored cast to a pointer. */ int position = (intptr_t) call_data; - Dimension height; + Dimension height, width; enum scroll_bar_part part; - /* Get the height of the scroll bar. */ - block_input (); - XtVaGetValues (widget, XtNheight, &height, NULL); - unblock_input (); + if (bar->horizontal) + { + /* Get the width of the scroll bar. */ + block_input (); + XtVaGetValues (widget, XtNwidth, &width, NULL); + unblock_input (); - if (eabs (position) >= height) - part = (position < 0) ? scroll_bar_above_handle : scroll_bar_below_handle; + if (eabs (position) >= width) + part = (position < 0) ? scroll_bar_before_handle : scroll_bar_after_handle; - /* If Xaw3d was compiled with ARROW_SCROLLBAR, - it maps line-movement to call_data = max(5, height/20). */ - else if (xaw3d_arrow_scroll && eabs (position) <= max (5, height / 20)) - part = (position < 0) ? scroll_bar_up_arrow : scroll_bar_down_arrow; + /* If Xaw3d was compiled with ARROW_SCROLLBAR, + it maps line-movement to call_data = max(5, height/20). */ + else if (xaw3d_arrow_scroll && eabs (position) <= max (5, width / 20)) + part = (position < 0) ? scroll_bar_left_arrow : scroll_bar_right_arrow; + else + part = scroll_bar_move_ratio; + + window_being_scrolled = bar->window; + bar->dragging = -1; + bar->last_seen_part = part; + x_send_scroll_bar_event (bar->window, part, position, width, + bar->horizontal); + } else - part = scroll_bar_move_ratio; + { - window_being_scrolled = bar->window; - bar->dragging = -1; - bar->last_seen_part = part; - x_send_scroll_bar_event (bar->window, part, position, height, bar->horizontal); + /* Get the height of the scroll bar. */ + block_input (); + XtVaGetValues (widget, XtNheight, &height, NULL); + unblock_input (); + + if (eabs (position) >= height) + part = (position < 0) ? scroll_bar_above_handle : scroll_bar_below_handle; + + /* If Xaw3d was compiled with ARROW_SCROLLBAR, + it maps line-movement to call_data = max(5, height/20). */ + else if (xaw3d_arrow_scroll && eabs (position) <= max (5, height / 20)) + part = (position < 0) ? scroll_bar_up_arrow : scroll_bar_down_arrow; + else + part = scroll_bar_move_ratio; + + window_being_scrolled = bar->window; + bar->dragging = -1; + bar->last_seen_part = part; + x_send_scroll_bar_event (bar->window, part, position, height, + bar->horizontal); + } } #endif /* not USE_GTK and not USE_MOTIF */ @@ -4989,7 +5052,7 @@ x_create_toolkit_scroll_bar (struct frame *f, struct scroll_bar *bar) xwindow = XtWindow (widget); bar->x_window = xwindow; bar->whole = 1; - bar->horizontal = 0; + bar->horizontal = false; unblock_input (); } @@ -5189,7 +5252,7 @@ x_create_horizontal_toolkit_scroll_bar (struct frame *f, struct scroll_bar *bar) xwindow = XtWindow (widget); bar->x_window = xwindow; bar->whole = 1; - bar->horizontal = 1; + bar->horizontal = true; unblock_input (); } @@ -5364,7 +5427,7 @@ x_set_toolkit_horizontal_scroll_bar_thumb (struct scroll_bar *bar, int portion, XtNheight, &height, NULL); -#if 0 +#if false /* Massage the top+shown values. */ if (bar->dragging == -1 || bar->last_seen_part == scroll_bar_down_arrow) top = max (0, min (1, top)); @@ -5387,7 +5450,7 @@ x_set_toolkit_horizontal_scroll_bar_thumb (struct scroll_bar *bar, int portion, work, check that 'NARROWPROTO' is defined in src/config.h. If this is not so, most likely you need to fix configure. */ XawScrollbarSetThumb (widget, top, shown); -#if 0 +#if false if (top != old_top || shown != old_shown) { if (bar->dragging == -1) @@ -5423,7 +5486,8 @@ x_set_toolkit_horizontal_scroll_bar_thumb (struct scroll_bar *bar, int portion, scroll bar. */ static struct scroll_bar * -x_scroll_bar_create (struct window *w, int top, int left, int width, int height, bool horizontal) +x_scroll_bar_create (struct window *w, int top, int left, + int width, int height, bool horizontal) { struct frame *f = XFRAME (w->frame); struct scroll_bar *bar @@ -5483,6 +5547,7 @@ x_scroll_bar_create (struct window *w, int top, int left, int width, int height, bar->start = 0; bar->end = 0; bar->dragging = -1; + bar->horizontal = horizontal; #if defined (USE_TOOLKIT_SCROLL_BARS) && defined (USE_LUCID) bar->last_seen_part = scroll_bar_nowhere; #endif @@ -5525,7 +5590,7 @@ x_scroll_bar_create (struct window *w, int top, int left, int width, int height, /* Draw BAR's handle in the proper position. If the handle is already drawn from START to END, don't bother - redrawing it, unless REBUILD is non-zero; in that case, always + redrawing it, unless REBUILD; in that case, always redraw it. (REBUILD is handy for drawing the handle after expose events.) @@ -5536,7 +5601,8 @@ x_scroll_bar_create (struct window *w, int top, int left, int width, int height, to move to the very end of the buffer. */ static void -x_scroll_bar_set_handle (struct scroll_bar *bar, int start, int end, int rebuild) +x_scroll_bar_set_handle (struct scroll_bar *bar, int start, int end, + bool rebuild) { bool dragging = bar->dragging != -1; Window w = bar->x_window; @@ -5686,7 +5752,7 @@ XTset_vertical_scroll_bar (struct window *w, int portion, int whole, int positio unblock_input (); } - bar = x_scroll_bar_create (w, top, left, width, max (height, 1), 0); + bar = x_scroll_bar_create (w, top, left, width, max (height, 1), false); } else { @@ -5760,12 +5826,12 @@ XTset_vertical_scroll_bar (struct window *w, int portion, int whole, int positio int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, height); if (whole == 0) - x_scroll_bar_set_handle (bar, 0, top_range, 0); + x_scroll_bar_set_handle (bar, 0, top_range, false); else { int start = ((double) position * top_range) / whole; int end = ((double) (position + portion) * top_range) / whole; - x_scroll_bar_set_handle (bar, start, end, 0); + x_scroll_bar_set_handle (bar, start, end, false); } } #endif /* not USE_TOOLKIT_SCROLL_BARS */ @@ -5806,7 +5872,7 @@ XTset_horizontal_scroll_bar (struct window *w, int portion, int whole, int posit unblock_input (); } - bar = x_scroll_bar_create (w, top, left, width, height, 1); + bar = x_scroll_bar_create (w, top, left, width, height, true); } else { @@ -5892,12 +5958,12 @@ XTset_horizontal_scroll_bar (struct window *w, int portion, int whole, int posit int left_range = HORIZONTAL_SCROLL_BAR_LEFT_RANGE (f, width); if (whole == 0) - x_scroll_bar_set_handle (bar, 0, left_range, 0); + x_scroll_bar_set_handle (bar, 0, left_range, false); else { int start = ((double) position * left_range) / whole; int end = ((double) (position + portion) * left_range) / whole; - x_scroll_bar_set_handle (bar, start, end, 0); + x_scroll_bar_set_handle (bar, start, end, false); } } #endif /* not USE_TOOLKIT_SCROLL_BARS */ @@ -6071,7 +6137,7 @@ x_scroll_bar_expose (struct scroll_bar *bar, const XEvent *event) block_input (); - x_scroll_bar_set_handle (bar, bar->start, bar->end, 1); + x_scroll_bar_set_handle (bar, bar->start, bar->end, true); /* Switch to scroll bar foreground color. */ if (f->output_data.x->scroll_bar_foreground_pixel != -1) @@ -6142,10 +6208,10 @@ x_scroll_bar_handle_click (struct scroll_bar *bar, /* If the user has released the handle, set it to its final position. */ if (event->type == ButtonRelease && bar->dragging != -1) { - int new_start = - bar->dragging; + int new_start = - bar->dragging; int new_end = new_start + bar->end - bar->start; - x_scroll_bar_set_handle (bar, new_start, new_end, 0); + x_scroll_bar_set_handle (bar, new_start, new_end, false); bar->dragging = -1; } #endif @@ -6176,7 +6242,7 @@ x_scroll_bar_handle_click (struct scroll_bar *bar, int new_start = y - bar->dragging; int new_end = new_start + bar->end - bar->start; - x_scroll_bar_set_handle (bar, new_start, new_end, 0); + x_scroll_bar_set_handle (bar, new_start, new_end, false); bar->dragging = -1; } #endif @@ -6202,7 +6268,7 @@ x_scroll_bar_note_movement (struct scroll_bar *bar, dpyinfo->last_mouse_movement_time = event->time; dpyinfo->last_mouse_scroll_bar = bar; - f->mouse_moved = 1; + f->mouse_moved = true; /* If we're dragging the bar, display it. */ if (bar->dragging != -1) @@ -6214,7 +6280,7 @@ x_scroll_bar_note_movement (struct scroll_bar *bar, { int new_end = new_start + bar->end - bar->start; - x_scroll_bar_set_handle (bar, new_start, new_end, 0); + x_scroll_bar_set_handle (bar, new_start, new_end, false); } } } @@ -6281,7 +6347,7 @@ x_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window, XSETINT (*x, win_y); XSETINT (*y, top_range); - f->mouse_moved = 0; + f->mouse_moved = false; dpyinfo->last_mouse_scroll_bar = NULL; *timestamp = dpyinfo->last_mouse_movement_time; } @@ -6350,7 +6416,7 @@ x_horizontal_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_windo XSETINT (*y, win_x); XSETINT (*x, left_range); - f->mouse_moved = 0; + f->mouse_moved = false; dpyinfo->last_mouse_scroll_bar = NULL; *timestamp = dpyinfo->last_mouse_movement_time; } @@ -6506,9 +6572,9 @@ x_net_wm_state (struct frame *f, Window window) { int value = FULLSCREEN_NONE; Lisp_Object lval = Qnil; - int sticky = 0; + bool sticky = false; - (void)get_current_wm_state (f, window, &value, &sticky); + get_current_wm_state (f, window, &value, &sticky); switch (value) { @@ -6591,7 +6657,8 @@ handle_one_xevent (struct x_display_info *dpyinfo, if (f && FRAME_XIC (f)) XSetICFocus (FRAME_XIC (f)); #endif -#if 0 /* Emacs sets WM hints whose `input' field is `true'. This +#if false + /* Emacs sets WM hints whose `input' field is `true'. This instructs the WM to set the input focus automatically for Emacs with a call to XSetInputFocus. Setting WM_TAKE_FOCUS tells the WM to send us a ClientMessage WM_TAKE_FOCUS after @@ -6624,7 +6691,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, x_uncatch_errors (); } /* Not certain about handling scroll bars here */ -#endif /* 0 */ +#endif goto done; } @@ -6757,7 +6824,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, break; case SelectionNotify: - dpyinfo->last_user_time = event->xselection.time; + x_display_set_last_user_time (dpyinfo, event->xselection.time); #ifdef USE_X_TOOLKIT if (! x_window_to_frame (dpyinfo, event->xselection.requestor)) goto OTHER; @@ -6766,7 +6833,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, break; case SelectionClear: /* Someone has grabbed ownership. */ - dpyinfo->last_user_time = event->xselectionclear.time; + x_display_set_last_user_time (dpyinfo, event->xselectionclear.time); #ifdef USE_X_TOOLKIT if (! x_window_to_frame (dpyinfo, event->xselectionclear.window)) goto OTHER; @@ -6782,7 +6849,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, break; case SelectionRequest: /* Someone wants our selection. */ - dpyinfo->last_user_time = event->xselectionrequest.time; + x_display_set_last_user_time (dpyinfo, event->xselectionrequest.time); #ifdef USE_X_TOOLKIT if (!x_window_to_frame (dpyinfo, event->xselectionrequest.owner)) goto OTHER; @@ -6801,23 +6868,30 @@ handle_one_xevent (struct x_display_info *dpyinfo, break; case PropertyNotify: - dpyinfo->last_user_time = event->xproperty.time; + x_display_set_last_user_time (dpyinfo, event->xproperty.time); f = x_top_window_to_frame (dpyinfo, event->xproperty.window); if (f && event->xproperty.atom == dpyinfo->Xatom_net_wm_state) - if (x_handle_net_wm_state (f, &event->xproperty) - && FRAME_ICONIFIED_P (f) - && f->output_data.x->net_wm_state_hidden_seen) - { - /* Gnome shell does not iconify us when C-z is pressed. - It hides the frame. So if our state says we aren't - hidden anymore, treat it as deiconified. */ - SET_FRAME_VISIBLE (f, 1); - SET_FRAME_ICONIFIED (f, 0); - f->output_data.x->has_been_visible = 1; - f->output_data.x->net_wm_state_hidden_seen = 0; - inev.ie.kind = DEICONIFY_EVENT; - XSETFRAME (inev.ie.frame_or_window, f); - } + { + bool not_hidden = x_handle_net_wm_state (f, &event->xproperty); + if (not_hidden && FRAME_ICONIFIED_P (f)) + { + /* Gnome shell does not iconify us when C-z is pressed. + It hides the frame. So if our state says we aren't + hidden anymore, treat it as deiconified. */ + SET_FRAME_VISIBLE (f, 1); + SET_FRAME_ICONIFIED (f, false); + f->output_data.x->has_been_visible = true; + inev.ie.kind = DEICONIFY_EVENT; + XSETFRAME (inev.ie.frame_or_window, f); + } + else if (! not_hidden && ! FRAME_ICONIFIED_P (f)) + { + SET_FRAME_VISIBLE (f, 0); + SET_FRAME_ICONIFIED (f, true); + inev.ie.kind = ICONIFY_EVENT; + XSETFRAME (inev.ie.frame_or_window, f); + } + } x_handle_property_notify (&event->xproperty); xft_settings_event (dpyinfo, event); @@ -6845,8 +6919,8 @@ handle_one_xevent (struct x_display_info *dpyinfo, if (!FRAME_VISIBLE_P (f)) { SET_FRAME_VISIBLE (f, 1); - SET_FRAME_ICONIFIED (f, 0); - f->output_data.x->has_been_visible = 1; + SET_FRAME_ICONIFIED (f, false); + f->output_data.x->has_been_visible = true; SET_FRAME_GARBAGED (f); } else @@ -6941,7 +7015,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, and that way, we know the window is not iconified now. */ if (visible || FRAME_ICONIFIED_P (f)) { - SET_FRAME_ICONIFIED (f, 1); + SET_FRAME_ICONIFIED (f, true); inev.ie.kind = ICONIFY_EVENT; XSETFRAME (inev.ie.frame_or_window, f); } @@ -6968,8 +7042,8 @@ handle_one_xevent (struct x_display_info *dpyinfo, x_check_fullscreen (f); SET_FRAME_VISIBLE (f, 1); - SET_FRAME_ICONIFIED (f, 0); - f->output_data.x->has_been_visible = 1; + SET_FRAME_ICONIFIED (f, false); + f->output_data.x->has_been_visible = true; if (iconified) { @@ -6989,7 +7063,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, case KeyPress: - dpyinfo->last_user_time = event->xkey.time; + x_display_set_last_user_time (dpyinfo, event->xkey.time); ignore_next_mouse_click_timeout = 0; #if defined (USE_X_TOOLKIT) || defined (USE_GTK) @@ -7008,7 +7082,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, || !EQ (f->tool_bar_window, hlinfo->mouse_face_window))) { clear_mouse_face (hlinfo); - hlinfo->mouse_face_hidden = 1; + hlinfo->mouse_face_hidden = true; } #endif @@ -7269,8 +7343,8 @@ handle_one_xevent (struct x_display_info *dpyinfo, which depends on which X*LookupString function we used just above and the locale. */ setup_coding_system (coding_system, &coding); - coding.src_multibyte = 0; - coding.dst_multibyte = 1; + coding.src_multibyte = false; + coding.dst_multibyte = true; /* The input is converted to events, thus we can't handle composition. Anyway, there's no XIM that gives us composition information. */ @@ -7323,7 +7397,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, #endif case KeyRelease: - dpyinfo->last_user_time = event->xkey.time; + x_display_set_last_user_time (dpyinfo, event->xkey.time); #ifdef HAVE_X_I18N /* Don't dispatch this event since XtDispatchEvent calls XFilterEvent, and two calls in a row may freeze the @@ -7334,7 +7408,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, #endif case EnterNotify: - dpyinfo->last_user_time = event->xcrossing.time; + x_display_set_last_user_time (dpyinfo, event->xcrossing.time); x_detect_focus_change (dpyinfo, any, event, &inev.ie); f = any; @@ -7359,7 +7433,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, goto OTHER; case LeaveNotify: - dpyinfo->last_user_time = event->xcrossing.time; + x_display_set_last_user_time (dpyinfo, event->xcrossing.time); x_detect_focus_change (dpyinfo, any, event, &inev.ie); f = x_top_window_to_frame (dpyinfo, event->xcrossing.window); @@ -7393,7 +7467,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, case MotionNotify: { - dpyinfo->last_user_time = event->xmotion.time; + x_display_set_last_user_time (dpyinfo, event->xmotion.time); previous_help_echo_string = help_echo_string; help_echo_string = Qnil; @@ -7402,7 +7476,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, if (hlinfo->mouse_face_hidden) { - hlinfo->mouse_face_hidden = 0; + hlinfo->mouse_face_hidden = false; clear_mouse_face (hlinfo); } @@ -7419,7 +7493,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, { static Lisp_Object last_mouse_window; Lisp_Object window = window_from_coordinates - (f, event->xmotion.x, event->xmotion.y, 0, 0); + (f, event->xmotion.x, event->xmotion.y, 0, false); /* Window will be selected only when it is not selected now and last mouse movement event was not in it. Minibuffer window @@ -7500,14 +7574,11 @@ handle_one_xevent (struct x_display_info *dpyinfo, || event->xconfigure.width != FRAME_PIXEL_WIDTH (f) || event->xconfigure.height != FRAME_PIXEL_HEIGHT (f)) { - change_frame_size (f, width, height, 0, 1, 0, 1); + change_frame_size (f, width, height, false, true, false, true); x_clear_under_internal_border (f); SET_FRAME_GARBAGED (f); cancel_mouse_face (f); } - -/** FRAME_PIXEL_WIDTH (f) = event->xconfigure.width; **/ -/** FRAME_PIXEL_HEIGHT (f) = event->xconfigure.height; **/ #endif /* not USE_GTK */ #endif @@ -7532,11 +7603,11 @@ handle_one_xevent (struct x_display_info *dpyinfo, { /* If we decide we want to generate an event to be seen by the rest of Emacs, we put it here. */ - bool tool_bar_p = 0; + bool tool_bar_p = false; memset (&compose_status, 0, sizeof (compose_status)); dpyinfo->last_mouse_glyph_frame = NULL; - dpyinfo->last_user_time = event->xbutton.time; + x_display_set_last_user_time (dpyinfo, event->xbutton.time); f = (x_mouse_grabbed (dpyinfo) ? dpyinfo->last_mouse_frame : x_window_to_frame (dpyinfo, event->xbutton.window)); @@ -7556,7 +7627,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, int x = event->xbutton.x; int y = event->xbutton.y; - window = window_from_coordinates (f, x, y, 0, 1); + window = window_from_coordinates (f, x, y, 0, true); tool_bar_p = EQ (window, f->tool_bar_window); if (tool_bar_p && event->xbutton.button < 4) @@ -7625,7 +7696,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, any subsequent mouse-movement Emacs events should reflect only motion after the ButtonPress/Release. */ if (f != 0) - f->mouse_moved = 0; + f->mouse_moved = false; #if defined (USE_X_TOOLKIT) || defined (USE_GTK) f = x_menubar_window_to_frame (dpyinfo, event); @@ -7717,7 +7788,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, if (do_help > 0) { - any_help_event_p = 1; + any_help_event_p = true; gen_help_event (help_echo_string, frame, help_echo_window, help_echo_object, help_echo_pos); } @@ -7764,7 +7835,7 @@ static int XTread_socket (struct terminal *terminal, struct input_event *hold_quit) { int count = 0; - int event_found = 0; + bool event_found = false; struct x_display_info *dpyinfo = terminal->display_info.x; block_input (); @@ -7789,7 +7860,7 @@ XTread_socket (struct terminal *terminal, struct input_event *hold_quit) if (x_filter_event (dpyinfo, &event)) continue; #endif - event_found = 1; + event_found = true; count += handle_one_xevent (dpyinfo, &event, &finish, hold_quit); @@ -7913,7 +7984,7 @@ x_draw_hollow_cursor (struct window *w, struct glyph_row *row) /* Compute frame-relative coordinates for phys cursor. */ get_phys_cursor_geometry (w, row, cursor_glyph, &x, &y, &h); - wd = w->phys_cursor_width; + wd = w->phys_cursor_width - 1; /* The foreground of cursor_gc is typically the same as the normal background color, which can cause the cursor box to be invisible. */ @@ -7925,6 +7996,16 @@ x_draw_hollow_cursor (struct window *w, struct glyph_row *row) GCForeground, &xgcv); gc = dpyinfo->scratch_cursor_gc; + /* When on R2L character, show cursor at the right edge of the + glyph, unless the cursor box is as wide as the glyph or wider + (the latter happens when x-stretch-cursor is non-nil). */ + if ((cursor_glyph->resolved_level & 1) != 0 + && cursor_glyph->pixel_width > wd) + { + x += cursor_glyph->pixel_width - wd; + if (wd > 0) + wd -= 1; + } /* Set clipping, draw the rectangle, and reset clipping again. */ x_clip_to_row (w, row, TEXT_AREA, gc); XDrawRectangle (dpy, FRAME_X_WINDOW (f), gc, x, y, wd, h - 1); @@ -7984,7 +8065,7 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, int width, enum text xgcv.background = xgcv.foreground = face->foreground; else xgcv.background = xgcv.foreground = f->output_data.x->cursor_pixel; - xgcv.graphics_exposures = 0; + xgcv.graphics_exposures = False; if (gc) XChangeGC (dpy, gc, mask, &xgcv); @@ -8015,9 +8096,10 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, int width, enum text WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y), width, row->height); } - else + else /* HBAR_CURSOR */ { int dummy_x, dummy_y, dummy_h; + int x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); if (width < 0) width = row->height; @@ -8027,11 +8109,13 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, int width, enum text get_phys_cursor_geometry (w, row, cursor_glyph, &dummy_x, &dummy_y, &dummy_h); - XFillRectangle (dpy, window, gc, - WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x), + if ((cursor_glyph->resolved_level & 1) != 0 + && cursor_glyph->pixel_width > w->phys_cursor_width - 1) + x += cursor_glyph->pixel_width - w->phys_cursor_width + 1; + XFillRectangle (dpy, window, gc, x, WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y + row->height - width), - w->phys_cursor_width, width); + w->phys_cursor_width - 1, width); } XSetClipMask (dpy, gc, None); @@ -8077,14 +8161,14 @@ x_draw_window_cursor (struct window *w, struct glyph_row *glyph_row, int x, if (on_p) { w->phys_cursor_type = cursor_type; - w->phys_cursor_on_p = 1; + w->phys_cursor_on_p = true; if (glyph_row->exact_window_width_line_p && (glyph_row->reversed_p ? (w->phys_cursor.hpos < 0) : (w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA]))) { - glyph_row->cursor_in_fringe_p = 1; + glyph_row->cursor_in_fringe_p = true; draw_fringe_bitmap (w, glyph_row, glyph_row->reversed_p); } else @@ -8131,13 +8215,13 @@ x_draw_window_cursor (struct window *w, struct glyph_row *glyph_row, int x, /* Make the x-window of frame F use the gnu icon bitmap. */ -int +bool x_bitmap_icon (struct frame *f, Lisp_Object file) { ptrdiff_t bitmap_id; if (FRAME_X_WINDOW (f) == 0) - return 1; + return true; /* Free up our existing icon bitmap and mask if any. */ if (f->output_data.x->icon_bitmap > 0) @@ -8150,7 +8234,7 @@ x_bitmap_icon (struct frame *f, Lisp_Object file) /* Use gtk_window_set_icon_from_file () if available, It's not restricted to bitmaps */ if (xg_set_icon (f, file)) - return 0; + return false; #endif /* USE_GTK */ bitmap_id = x_create_bitmap_from_file (f, file); x_create_bitmap_mask (f, bitmap_id); @@ -8164,12 +8248,11 @@ x_bitmap_icon (struct frame *f, Lisp_Object file) #ifdef USE_GTK - if (FRAME_DISPLAY_INFO (f)->icon_bitmap_id == -2 - || xg_set_icon (f, xg_default_icon_file) + if (xg_set_icon (f, xg_default_icon_file) || xg_set_icon_from_xpm_data (f, gnu_xpm_bits)) { FRAME_DISPLAY_INFO (f)->icon_bitmap_id = -2; - return 0; + return false; } #elif defined (HAVE_XPM) && defined (HAVE_X_WINDOWS) @@ -8186,7 +8269,7 @@ x_bitmap_icon (struct frame *f, Lisp_Object file) rc = x_create_bitmap_from_data (f, (char *) gnu_xbm_bits, gnu_xbm_width, gnu_xbm_height); if (rc == -1) - return 1; + return true; FRAME_DISPLAY_INFO (f)->icon_bitmap_id = rc; x_create_bitmap_mask (f, FRAME_DISPLAY_INFO (f)->icon_bitmap_id); @@ -8205,18 +8288,18 @@ x_bitmap_icon (struct frame *f, Lisp_Object file) x_wm_set_icon_pixmap (f, bitmap_id); f->output_data.x->icon_bitmap = bitmap_id; - return 0; + return false; } /* Make the x-window of frame F use a rectangle with text. Use ICON_NAME as the text. */ -int +bool x_text_icon (struct frame *f, const char *icon_name) { if (FRAME_X_WINDOW (f) == 0) - return 1; + return true; { XTextProperty text; @@ -8232,7 +8315,7 @@ x_text_icon (struct frame *f, const char *icon_name) f->output_data.x->icon_bitmap = 0; x_wm_set_icon_pixmap (f, 0); - return 0; + return false; } #define X_ERROR_MESSAGE_SIZE 200 @@ -8350,7 +8433,8 @@ x_clear_errors (Display *dpy) x_error_message->string[0] = 0; } -#if 0 /* See comment in unwind_to_catch why calling this is a bad +#if false + /* See comment in unwind_to_catch why calling this is a bad * idea. --lorentey */ /* Close off all unclosed x_catch_errors calls. */ @@ -8362,13 +8446,13 @@ x_fully_uncatch_errors (void) } #endif -#if 0 +#if false static unsigned int x_wire_count; x_trace_wire (void) { fprintf (stderr, "Lib call: %d\n", ++x_wire_count); } -#endif /* ! 0 */ +#endif /************************************************************************ @@ -8584,8 +8668,7 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset) FRAME_COLUMN_WIDTH (f) = font->average_width; FRAME_LINE_HEIGHT (f) = FONT_HEIGHT (font); -#ifndef USE_X_TOOLKIT \ -/** FRAME_TOOL_BAR_HEIGHT (f) = FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f); **/ +#ifndef USE_X_TOOLKIT FRAME_MENU_BAR_HEIGHT (f) = FRAME_MENU_BAR_LINES (f) * FRAME_LINE_HEIGHT (f); #endif @@ -8606,8 +8689,9 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset) doing it because it's done in Fx_show_tip, and it leads to problems because the tip frame has no widget. */ if (NILP (tip_frame) || XFRAME (tip_frame) != f) - x_set_window_size (f, 0, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f), - FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 1); + adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f), + FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 3, + false, Qfont); } #ifdef HAVE_X_I18N @@ -8897,7 +8981,7 @@ x_set_offset (struct frame *f, register int xoff, register int yoff, int change_ x_calc_absolute_position (f); block_input (); - x_wm_set_size_hint (f, 0, 0); + x_wm_set_size_hint (f, 0, false); modified_left = f->left_pos; modified_top = f->top_pos; @@ -8915,8 +8999,7 @@ x_set_offset (struct frame *f, register int xoff, register int yoff, int change_ modified_left, modified_top); x_sync_with_move (f, f->left_pos, f->top_pos, - FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN - ? 1 : 0); + FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN); /* change_gravity is non-zero when this function is called from Lisp to programmatically move a frame. In that case, we call @@ -8928,32 +9011,33 @@ x_set_offset (struct frame *f, register int xoff, register int yoff, int change_ either the window manager type (A/B) is unknown or it is Type A but we need to compute the top/left offset adjustment for this frame. */ - if (change_gravity != 0 && - (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN - || (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A - && (FRAME_X_OUTPUT (f)->move_offset_left == 0 - && FRAME_X_OUTPUT (f)->move_offset_top == 0)))) + if (change_gravity != 0 + && (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_UNKNOWN + || (FRAME_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A + && (FRAME_X_OUTPUT (f)->move_offset_left == 0 + && FRAME_X_OUTPUT (f)->move_offset_top == 0)))) x_check_expected_move (f, modified_left, modified_top); unblock_input (); } -/* Return non-zero if _NET_SUPPORTING_WM_CHECK window exists and _NET_SUPPORTED +/* Return true if _NET_SUPPORTING_WM_CHECK window exists and _NET_SUPPORTED on the root window for frame F contains ATOMNAME. This is how a WM check shall be done according to the Window Manager Specification/Extended Window Manager Hints at http://freedesktop.org/wiki/Specifications/wm-spec. */ -static int +static bool wm_supports (struct frame *f, Atom want_atom) { Atom actual_type; unsigned long actual_size, bytes_remaining; int i, rc, actual_format; + bool ret; Window wmcheck_window; struct x_display_info *dpyinfo = FRAME_DISPLAY_INFO (f); Window target_window = dpyinfo->root_window; - long max_len = 65536; + int max_len = 65536; Display *dpy = FRAME_X_DISPLAY (f); unsigned char *tmp_data = NULL; Atom target_type = XA_WINDOW; @@ -8972,7 +9056,7 @@ wm_supports (struct frame *f, Atom want_atom) if (tmp_data) XFree (tmp_data); x_uncatch_errors (); unblock_input (); - return 0; + return false; } wmcheck_window = *(Window *) tmp_data; @@ -8985,7 +9069,7 @@ wm_supports (struct frame *f, Atom want_atom) { x_uncatch_errors (); unblock_input (); - return 0; + return false; } if (dpyinfo->net_supported_window != wmcheck_window) @@ -9010,7 +9094,7 @@ wm_supports (struct frame *f, Atom want_atom) if (tmp_data) XFree (tmp_data); x_uncatch_errors (); unblock_input (); - return 0; + return false; } dpyinfo->net_supported_atoms = (Atom *)tmp_data; @@ -9018,19 +9102,19 @@ wm_supports (struct frame *f, Atom want_atom) dpyinfo->net_supported_window = wmcheck_window; } - rc = 0; + ret = false; - for (i = 0; rc == 0 && i < dpyinfo->nr_net_supported_atoms; ++i) - rc = dpyinfo->net_supported_atoms[i] == want_atom; + for (i = 0; !ret && i < dpyinfo->nr_net_supported_atoms; ++i) + ret = dpyinfo->net_supported_atoms[i] == want_atom; x_uncatch_errors (); unblock_input (); - return rc; + return ret; } static void -set_wm_state (Lisp_Object frame, int add, Atom atom, Atom value) +set_wm_state (Lisp_Object frame, bool add, Atom atom, Atom value) { struct x_display_info *dpyinfo = FRAME_DISPLAY_INFO (XFRAME (frame)); @@ -9039,7 +9123,7 @@ set_wm_state (Lisp_Object frame, int add, Atom atom, Atom value) make_number (32), /* 1 = add, 0 = remove */ Fcons - (make_number (add ? 1 : 0), + (make_number (add), Fcons (make_fixnum_or_float (atom), (value != 0 @@ -9055,32 +9139,33 @@ x_set_sticky (struct frame *f, Lisp_Object new_value, Lisp_Object old_value) XSETFRAME (frame, f); - set_wm_state (frame, NILP (new_value) ? 0 : 1, + set_wm_state (frame, !NILP (new_value), dpyinfo->Xatom_net_wm_state_sticky, None); } /* Return the current _NET_WM_STATE. SIZE_STATE is set to one of the FULLSCREEN_* values. - STICKY is set to 1 if the sticky state is set, 0 if not. + Set *STICKY to the sticky state. - Return non-zero if we are not hidden, zero if we are. */ + Return true iff we are not hidden. */ -static int +static bool get_current_wm_state (struct frame *f, Window window, int *size_state, - int *sticky) + bool *sticky) { Atom actual_type; unsigned long actual_size, bytes_remaining; - int i, rc, actual_format, is_hidden = 0; + int i, rc, actual_format; + bool is_hidden = false; struct x_display_info *dpyinfo = FRAME_DISPLAY_INFO (f); long max_len = 65536; Display *dpy = FRAME_X_DISPLAY (f); unsigned char *tmp_data = NULL; Atom target_type = XA_ATOM; - *sticky = 0; + *sticky = false; *size_state = FULLSCREEN_NONE; block_input (); @@ -9104,10 +9189,7 @@ get_current_wm_state (struct frame *f, { Atom a = ((Atom*)tmp_data)[i]; if (a == dpyinfo->Xatom_net_wm_state_hidden) - { - is_hidden = 1; - f->output_data.x->net_wm_state_hidden_seen = 1; - } + is_hidden = true; else if (a == dpyinfo->Xatom_net_wm_state_maximized_horz) { if (*size_state == FULLSCREEN_HEIGHT) @@ -9125,7 +9207,7 @@ get_current_wm_state (struct frame *f, else if (a == dpyinfo->Xatom_net_wm_state_fullscreen) *size_state = FULLSCREEN_BOTH; else if (a == dpyinfo->Xatom_net_wm_state_sticky) - *sticky = 1; + *sticky = true; } if (tmp_data) XFree (tmp_data); @@ -9135,14 +9217,15 @@ get_current_wm_state (struct frame *f, /* Do fullscreen as specified in extended window manager hints */ -static int +static bool do_ewmh_fullscreen (struct frame *f) { struct x_display_info *dpyinfo = FRAME_DISPLAY_INFO (f); - int have_net_atom = wm_supports (f, dpyinfo->Xatom_net_wm_state); - int cur, dummy; + bool have_net_atom = wm_supports (f, dpyinfo->Xatom_net_wm_state); + int cur; + bool dummy; - (void)get_current_wm_state (f, FRAME_OUTER_WINDOW (f), &cur, &dummy); + get_current_wm_state (f, FRAME_OUTER_WINDOW (f), &cur, &dummy); /* Some window managers don't say they support _NET_WM_STATE, but they do say they support _NET_WM_STATE_FULLSCREEN. Try that also. */ @@ -9163,37 +9246,45 @@ do_ewmh_fullscreen (struct frame *f) case FULLSCREEN_BOTH: if (cur == FULLSCREEN_WIDTH || cur == FULLSCREEN_MAXIMIZED || cur == FULLSCREEN_HEIGHT) - set_wm_state (frame, 0, dpyinfo->Xatom_net_wm_state_maximized_horz, + set_wm_state (frame, false, + dpyinfo->Xatom_net_wm_state_maximized_horz, dpyinfo->Xatom_net_wm_state_maximized_vert); - set_wm_state (frame, 1, dpyinfo->Xatom_net_wm_state_fullscreen, None); + set_wm_state (frame, true, + dpyinfo->Xatom_net_wm_state_fullscreen, None); break; case FULLSCREEN_WIDTH: if (cur == FULLSCREEN_BOTH || cur == FULLSCREEN_HEIGHT || cur == FULLSCREEN_MAXIMIZED) - set_wm_state (frame, 0, dpyinfo->Xatom_net_wm_state_fullscreen, + set_wm_state (frame, false, dpyinfo->Xatom_net_wm_state_fullscreen, dpyinfo->Xatom_net_wm_state_maximized_vert); if (cur != FULLSCREEN_MAXIMIZED) - set_wm_state (frame, 1, dpyinfo->Xatom_net_wm_state_maximized_horz, None); + set_wm_state (frame, true, + dpyinfo->Xatom_net_wm_state_maximized_horz, None); break; case FULLSCREEN_HEIGHT: if (cur == FULLSCREEN_BOTH || cur == FULLSCREEN_WIDTH || cur == FULLSCREEN_MAXIMIZED) - set_wm_state (frame, 0, dpyinfo->Xatom_net_wm_state_fullscreen, + set_wm_state (frame, false, dpyinfo->Xatom_net_wm_state_fullscreen, dpyinfo->Xatom_net_wm_state_maximized_horz); if (cur != FULLSCREEN_MAXIMIZED) - set_wm_state (frame, 1, dpyinfo->Xatom_net_wm_state_maximized_vert, None); + set_wm_state (frame, true, + dpyinfo->Xatom_net_wm_state_maximized_vert, None); break; case FULLSCREEN_MAXIMIZED: if (cur == FULLSCREEN_BOTH) - set_wm_state (frame, 0, dpyinfo->Xatom_net_wm_state_fullscreen, None); - set_wm_state (frame, 1, dpyinfo->Xatom_net_wm_state_maximized_horz, + set_wm_state (frame, false, dpyinfo->Xatom_net_wm_state_fullscreen, + None); + set_wm_state (frame, true, + dpyinfo->Xatom_net_wm_state_maximized_horz, dpyinfo->Xatom_net_wm_state_maximized_vert); break; case FULLSCREEN_NONE: if (cur == FULLSCREEN_BOTH) - set_wm_state (frame, 0, dpyinfo->Xatom_net_wm_state_fullscreen, None); + set_wm_state (frame, false, dpyinfo->Xatom_net_wm_state_fullscreen, + None); else - set_wm_state (frame, 0, dpyinfo->Xatom_net_wm_state_maximized_horz, + set_wm_state (frame, false, + dpyinfo->Xatom_net_wm_state_maximized_horz, dpyinfo->Xatom_net_wm_state_maximized_vert); } @@ -9217,13 +9308,13 @@ XTfullscreen_hook (struct frame *f) } -static int +static bool x_handle_net_wm_state (struct frame *f, const XPropertyEvent *event) { int value = FULLSCREEN_NONE; Lisp_Object lval; - int sticky = 0; - int not_hidden = get_current_wm_state (f, event->window, &value, &sticky); + bool sticky = false; + bool not_hidden = get_current_wm_state (f, event->window, &value, &sticky); lval = Qnil; switch (value) @@ -9325,7 +9416,7 @@ x_check_expected_move (struct frame *f, int expected_left, int expected_top) XMoveWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), adjusted_left, adjusted_top); - x_sync_with_move (f, expected_left, expected_top, 0); + x_sync_with_move (f, expected_left, expected_top, false); } else /* It's a "Type B" window manager. We don't have to adjust the @@ -9342,7 +9433,7 @@ x_check_expected_move (struct frame *f, int expected_left, int expected_top) of an exact comparison. */ static void -x_sync_with_move (struct frame *f, int left, int top, int fuzzy) +x_sync_with_move (struct frame *f, int left, int top, bool fuzzy) { int count = 0; @@ -9373,7 +9464,7 @@ x_sync_with_move (struct frame *f, int left, int top, int fuzzy) /* As a last resort, just wait 0.5 seconds and hope that XGetGeometry will then return up-to-date position info. */ - wait_reading_process_output (0, 500000000, 0, 0, Qnil, NULL, 0); + wait_reading_process_output (0, 500000000, 0, false, Qnil, NULL, 0); } @@ -9396,7 +9487,7 @@ x_wait_for_event (struct frame *f, int eventtype) while (f->wait_event_type) { - pending_signals = 1; + pending_signals = true; totally_unblock_input (); /* XTread_socket is called after unblock. */ block_input (); @@ -9419,27 +9510,16 @@ x_wait_for_event (struct frame *f, int eventtype) /* Change the size of frame F's X window to WIDTH/HEIGHT in the case F - doesn't have a widget. If CHANGE_GRAVITY is 1, we change to + doesn't have a widget. If CHANGE_GRAVITY, change to top-left-corner window gravity for this size change and subsequent - size changes. Otherwise we leave the window gravity unchanged. */ + size changes. Otherwise leave the window gravity unchanged. */ static void -x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height, bool pixelwise) +x_set_window_size_1 (struct frame *f, bool change_gravity, + int width, int height, bool pixelwise) { int pixelwidth, pixelheight; -/** if (pixelwise) **/ -/** { **/ -/** pixelwidth = FRAME_TEXT_TO_PIXEL_WIDTH (f, width); **/ -/** pixelheight = FRAME_TEXT_TO_PIXEL_HEIGHT (f, height); **/ -/** } **/ -/** else **/ -/** { **/ -/** pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width); **/ -/** pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height); **/ -/** } **/ - -/** FRAME_TOOL_BAR_HEIGHT (f) = FRAME_TOOLBAR_HEIGHT (f); **/ pixelwidth = (pixelwise ? FRAME_TEXT_TO_PIXEL_WIDTH (f, width) : FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width)); @@ -9447,18 +9527,8 @@ x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height, ? FRAME_TEXT_TO_PIXEL_HEIGHT (f, height) : FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height))); -/** pixelwidth = ((pixelwise ? width : (width * FRAME_COLUMN_WIDTH (f))) **/ -/** + FRAME_SCROLL_BAR_AREA_WIDTH (f) **/ -/** + FRAME_TOTAL_FRINGE_WIDTH (f) **/ -/** + 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); **/ - -/** pixelheight = ((pixelwise ? height : (height * FRAME_LINE_HEIGHT (f))) **/ -/** + FRAME_TOOLBAR_HEIGHT (f) **/ -/** + FRAME_SCROLL_BAR_AREA_HEIGHT (f) **/ -/** + 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); **/ - if (change_gravity) f->win_gravity = NorthWestGravity; - x_wm_set_size_hint (f, 0, 0); + x_wm_set_size_hint (f, 0, false); XResizeWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), pixelwidth, pixelheight + FRAME_MENUBAR_HEIGHT (f)); @@ -9480,7 +9550,7 @@ x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height, wouldn't be reported in the frame parameters until some random point in the future when the ConfigureNotify event arrives. - We pass 1 for DELAY since we can't run Lisp code inside of + Pass true for DELAY since we can't run Lisp code inside of a BLOCK_INPUT. */ /* But the ConfigureNotify may in fact never arrive, and then this is @@ -9490,25 +9560,26 @@ x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height, x_wait_for_event (f, ConfigureNotify); else { - change_frame_size (f, pixelwidth, pixelheight, 0, 1, 0, 1); + change_frame_size (f, pixelwidth, pixelheight, false, true, false, true); x_sync (f); } } /* Call this to change the size of frame F's x-window. - If CHANGE_GRAVITY is 1, we change to top-left-corner window gravity + If CHANGE_GRAVITY, change to top-left-corner window gravity for this size change and subsequent size changes. Otherwise we leave the window gravity unchanged. */ void -x_set_window_size (struct frame *f, int change_gravity, int width, int height, bool pixelwise) +x_set_window_size (struct frame *f, bool change_gravity, + int width, int height, bool pixelwise) { block_input (); /* The following breaks our calculations. If it's really needed, think of something else. */ -#if 0 +#if false if (NILP (tip_frame) || XFRAME (tip_frame) != f) { int text_width, text_height; @@ -9529,7 +9600,7 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b text_width = FRAME_PIXEL_TO_TEXT_WIDTH (f, FRAME_PIXEL_WIDTH (f)); text_height = FRAME_PIXEL_TO_TEXT_HEIGHT (f, pixelh); - change_frame_size (f, text_width, text_height, 0, 1, 0, 1); + change_frame_size (f, text_width, text_height, false, true, false, true); } #endif @@ -9560,7 +9631,7 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b unblock_input (); - do_pending_window_change (0); + do_pending_window_change (false); } /* Move the mouse to position pixel PIX_X, PIX_Y relative to frame F. */ @@ -9635,7 +9706,7 @@ x_ewmh_activate_frame (struct frame *f) } static void -XTframe_raise_lower (struct frame *f, int raise_flag) +XTframe_raise_lower (struct frame *f, bool raise_flag) { if (raise_flag) x_raise_frame (f); @@ -9717,7 +9788,7 @@ x_make_frame_visible (struct frame *f) && ! f->output_data.x->asked_for_visible) x_set_offset (f, f->left_pos, f->top_pos, 0); - f->output_data.x->asked_for_visible = 1; + f->output_data.x->asked_for_visible = true; if (! EQ (Vx_no_window_manager, Qt)) x_wm_set_window_state (f, NormalState); @@ -9752,7 +9823,7 @@ x_make_frame_visible (struct frame *f) /* This must be before UNBLOCK_INPUT since events that arrive in response to the actions above will set it when they are handled. */ - int previously_visible = f->output_data.x->has_been_visible; + bool previously_visible = f->output_data.x->has_been_visible; original_left = f->left_pos; original_top = f->top_pos; @@ -9867,7 +9938,7 @@ x_make_frame_invisible (struct frame *f) program-specified, so that when the window is mapped again, it will be placed at the same location, without forcing the user to position it by hand again (they have already done that once for this window.) */ - x_wm_set_size_hint (f, 0, 1); + x_wm_set_size_hint (f, 0, true); #ifdef USE_GTK if (FRAME_GTK_OUTER_WIDGET (f)) @@ -9894,7 +9965,7 @@ x_make_frame_invisible (struct frame *f) FRAME_SAMPLE_VISIBILITY set this. So do it by hand, and synchronize with the server to make sure we agree. */ SET_FRAME_VISIBLE (f, 0); - SET_FRAME_ICONIFIED (f, 0); + SET_FRAME_ICONIFIED (f, false); x_sync (f); @@ -9929,7 +10000,7 @@ x_iconify_frame (struct frame *f) gtk_window_iconify (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f))); SET_FRAME_VISIBLE (f, 0); - SET_FRAME_ICONIFIED (f, 1); + SET_FRAME_ICONIFIED (f, true); unblock_input (); return; } @@ -9947,7 +10018,7 @@ x_iconify_frame (struct frame *f) that an invisible frame was changed to an icon, so we have to record it here. */ SET_FRAME_VISIBLE (f, 0); - SET_FRAME_ICONIFIED (f, 1); + SET_FRAME_ICONIFIED (f, true); unblock_input (); return; } @@ -9960,7 +10031,7 @@ x_iconify_frame (struct frame *f) if (!result) error ("Can't notify window manager of iconification"); - SET_FRAME_ICONIFIED (f, 1); + SET_FRAME_ICONIFIED (f, true); SET_FRAME_VISIBLE (f, 0); block_input (); @@ -10010,7 +10081,7 @@ x_iconify_frame (struct frame *f) XMapRaised (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f)); } - SET_FRAME_ICONIFIED (f, 1); + SET_FRAME_ICONIFIED (f, true); SET_FRAME_VISIBLE (f, 0); XFlush (FRAME_X_DISPLAY (f)); @@ -10432,7 +10503,7 @@ static XrmOptionDescRec emacs_options[] = { /* Whether atimer for Xt timeouts is activated or not. */ -static int x_timeout_atimer_activated_flag; +static bool x_timeout_atimer_activated_flag; #endif /* USE_X_TOOLKIT */ @@ -10440,10 +10511,10 @@ static int x_initialized; /* Test whether two display-name strings agree up to the dot that separates the screen number from the server number. */ -static int +static bool same_x_server (const char *name1, const char *name2) { - int seen_colon = 0; + bool seen_colon = false; const char *system_name = SSDATA (Vsystem_name); ptrdiff_t system_name_length = SBYTES (Vsystem_name); ptrdiff_t length_until_period = 0; @@ -10475,9 +10546,9 @@ same_x_server (const char *name1, const char *name2) for (; *name1 != '\0' && *name1 == *name2; name1++, name2++) { if (*name1 == ':') - seen_colon = 1; + seen_colon = true; if (seen_colon && *name1 == '.') - return 1; + return true; } return (seen_colon && (*name1 == '.' || *name1 == '\0') @@ -10509,14 +10580,17 @@ get_bits_and_offset (unsigned long mask, int *bits, int *offset) *bits = nr; } -/* Return 1 if display DISPLAY is available for use, 0 otherwise. +/* Return true iff display DISPLAY is available for use. But don't permanently open it, just test its availability. */ bool x_display_ok (const char *display) { Display *dpy = XOpenDisplay (display); - return dpy ? (XCloseDisplay (dpy), 1) : 0; + if (!dpy) + return false; + XCloseDisplay (dpy); + return true; } #ifdef USE_GTK @@ -10630,7 +10704,6 @@ static unsigned x_display_id; struct x_display_info * x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) { - int connection; Display *dpy; struct terminal *terminal; struct x_display_info *dpyinfo; @@ -10682,10 +10755,6 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) XSetLocaleModifiers (""); - /* Emacs can only handle core input events, so make sure - Gtk doesn't use Xinput or Xinput2 extensions. */ - xputenv ("GDK_CORE_DEVICE_EVENTS=1"); - /* Work around GLib bug that outputs a faulty warning. See https://bugzilla.gnome.org/show_bug.cgi?id=563627. */ id = g_log_set_handler ("GLib", G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL @@ -10750,12 +10819,12 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) argv[argc++] = "-xrm"; argv[argc++] = xrm_option; } - turn_on_atimers (0); + turn_on_atimers (false); dpy = XtOpenDisplay (Xt_app_con, SSDATA (display_name), resource_name, EMACS_CLASS, emacs_options, XtNumber (emacs_options), &argc, argv); - turn_on_atimers (1); + turn_on_atimers (true); #ifdef HAVE_X11XTR6 /* I think this is to compensate for XtSetLanguageProc. */ @@ -10833,13 +10902,14 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) dpyinfo->name_list_element = Fcons (display_name, Qnil); dpyinfo->display = dpy; + dpyinfo->connection = ConnectionNumber (dpyinfo->display); /* Set the name of the terminal. */ terminal->name = xlispstrdup (display_name); -#if 0 +#if false XSetAfterFunction (x_current_display, x_trace_wire); -#endif /* ! 0 */ +#endif lim = min (PTRDIFF_MAX, SIZE_MAX) - sizeof "@"; if (lim - SBYTES (Vinvocation_name) < SBYTES (Vsystem_name)) @@ -10847,8 +10917,9 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) dpyinfo->x_id = ++x_display_id; dpyinfo->x_id_name = xmalloc (SBYTES (Vinvocation_name) + SBYTES (Vsystem_name) + 2); - strcat (strcat (strcpy (dpyinfo->x_id_name, SSDATA (Vinvocation_name)), "@"), - SSDATA (Vsystem_name)); + char *nametail = lispstpcpy (dpyinfo->x_id_name, Vinvocation_name); + *nametail++ = '@'; + lispstpcpy (nametail, Vsystem_name); /* Figure out which modifier bits mean what. */ x_find_modifier_meanings (dpyinfo); @@ -10902,11 +10973,11 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) { if (dpyinfo->visual->class == PseudoColor) { - Lisp_Object value; - value = display_x_get_resource (dpyinfo, - build_string ("privateColormap"), - build_string ("PrivateColormap"), - Qnil, Qnil); + AUTO_STRING (privateColormap, "privateColormap"); + AUTO_STRING (PrivateColormap, "PrivateColormap"); + Lisp_Object value + = display_x_get_resource (dpyinfo, privateColormap, + PrivateColormap, Qnil, Qnil); if (STRINGP (value) && (!strcmp (SSDATA (value), "true") || !strcmp (SSDATA (value), "on"))) @@ -11030,11 +11101,11 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) }; int i; - const int atom_count = ARRAYELTS (atom_refs); - /* 1 for _XSETTINGS_SN */ - const int total_atom_count = 1 + atom_count; - Atom *atoms_return = xmalloc (total_atom_count * sizeof *atoms_return); - char **atom_names = xmalloc (total_atom_count * sizeof *atom_names); + enum { atom_count = ARRAYELTS (atom_refs) }; + /* 1 for _XSETTINGS_SN. */ + enum { total_atom_count = 1 + atom_count }; + Atom atoms_return[total_atom_count]; + char *atom_names[total_atom_count]; static char const xsettings_fmt[] = "_XSETTINGS_S%d"; char xsettings_atom_name[sizeof xsettings_fmt - 2 + INT_STRLEN_BOUND (int)]; @@ -11042,7 +11113,7 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) for (i = 0; i < atom_count; i++) atom_names[i] = (char *) atom_refs[i].name; - /* Build _XSETTINGS_SN atom name */ + /* Build _XSETTINGS_SN atom name. */ sprintf (xsettings_atom_name, xsettings_fmt, XScreenNumberOfScreen (dpyinfo->screen)); atom_names[i] = xsettings_atom_name; @@ -11053,11 +11124,8 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) for (i = 0; i < atom_count; i++) *(Atom *) ((char *) dpyinfo + atom_refs[i].offset) = atoms_return[i]; - /* Manual copy of last atom */ + /* Manually copy last atom. */ dpyinfo->Xatom_xsettings_sel = atoms_return[i]; - - xfree (atom_names); - xfree (atoms_return); } dpyinfo->x_dnd_atoms_size = 8; @@ -11076,22 +11144,19 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) xsettings_initialize (dpyinfo); - connection = ConnectionNumber (dpyinfo->display); - /* This is only needed for distinguishing keyboard and process input. */ - if (connection != 0) - add_keyboard_wait_descriptor (connection); + if (dpyinfo->connection != 0) + add_keyboard_wait_descriptor (dpyinfo->connection); #ifdef F_SETOWN - fcntl (connection, F_SETOWN, getpid ()); + fcntl (dpyinfo->connection, F_SETOWN, getpid ()); #endif /* ! defined (F_SETOWN) */ if (interrupt_input) - init_sigio (connection); + init_sigio (dpyinfo->connection); #ifdef USE_LUCID { - XFontStruct *xfont = NULL; XrmValue d, fr, to; Font font; @@ -11105,10 +11170,10 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) x_catch_errors (dpy); if (!XtCallConverter (dpy, XtCvtStringToFont, &d, 1, &fr, &to, NULL)) emacs_abort (); - if (x_had_errors_p (dpy) || !((xfont = XQueryFont (dpy, font)))) + if (x_had_errors_p (dpy) || !XQueryFont (dpy, font)) XrmPutLineResource (&xrdb, "Emacs.dialog.*.font: 9x15"); - if (xfont) - XFreeFont (dpy, xfont); + /* Do not free XFontStruct returned by the above call to XQueryFont. + This leads to X protocol errors at XtCloseDisplay (Bug#18403). */ x_uncatch_errors (); } #endif @@ -11116,11 +11181,10 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) /* See if we should run in synchronous mode. This is useful for debugging X code. */ { - Lisp_Object value; - value = display_x_get_resource (dpyinfo, - build_string ("synchronous"), - build_string ("Synchronous"), - Qnil, Qnil); + AUTO_STRING (synchronous, "synchronous"); + AUTO_STRING (Synchronous, "Synchronous"); + Lisp_Object value = display_x_get_resource (dpyinfo, synchronous, + Synchronous, Qnil, Qnil); if (STRINGP (value) && (!strcmp (SSDATA (value), "true") || !strcmp (SSDATA (value), "on"))) @@ -11128,11 +11192,10 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) } { - Lisp_Object value; - value = display_x_get_resource (dpyinfo, - build_string ("useXIM"), - build_string ("UseXIM"), - Qnil, Qnil); + AUTO_STRING (useXIM, "useXIM"); + AUTO_STRING (UseXIM, "UseXIM"); + Lisp_Object value = display_x_get_resource (dpyinfo, useXIM, UseXIM, + Qnil, Qnil); #ifdef USE_XIM if (STRINGP (value) && (!strcmp (SSDATA (value), "false") @@ -11149,8 +11212,8 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) #ifdef HAVE_X_SM /* Only do this for the very first display in the Emacs session. Ignore X session management when Emacs was first started on a - tty. */ - if (terminal->id == 1) + tty or started as a daemon. */ + if (terminal->id == 1 && ! IS_DAEMON) x_session_initialize (dpyinfo); #endif @@ -11212,7 +11275,7 @@ static void x_process_timeouts (struct atimer *timer) { block_input (); - x_timeout_atimer_activated_flag = 0; + x_timeout_atimer_activated_flag = false; if (toolkit_scroll_bar_interaction || popup_activated ()) { while (XtAppPending (Xt_app_con) & XtIMTimer) @@ -11239,7 +11302,7 @@ x_activate_timeout_atimer (void) { struct timespec interval = make_timespec (0, 100 * 1000 * 1000); start_atimer (ATIMER_RELATIVE, interval, x_process_timeouts, 0); - x_timeout_atimer_activated_flag = 1; + x_timeout_atimer_activated_flag = true; } unblock_input (); } @@ -11285,7 +11348,6 @@ void x_delete_terminal (struct terminal *terminal) { struct x_display_info *dpyinfo = terminal->display_info.x; - int connection = -1; /* Protect against recursive calls. delete_frame in delete_terminal calls us back when it deletes our last frame. */ @@ -11300,12 +11362,9 @@ x_delete_terminal (struct terminal *terminal) xim_close_dpy (dpyinfo); #endif - /* If called from x_connection_closed, the display may already be closed - and dpyinfo->display was set to 0 to indicate that. */ + /* Normally, the display is available... */ if (dpyinfo->display) { - connection = ConnectionNumber (dpyinfo->display); - x_destroy_all_bitmaps (dpyinfo); XSetCloseDownMode (dpyinfo->display, DestroyAll); @@ -11323,7 +11382,7 @@ x_delete_terminal (struct terminal *terminal) don't destroy the database here in order to avoid the crash in the above situations for now, though that may cause memory leaks in other situations. */ -#if 0 +#if false #ifdef HAVE_XRMSETDATABASE XrmSetDatabase (dpyinfo->display, NULL); #else @@ -11344,14 +11403,23 @@ x_delete_terminal (struct terminal *terminal) XCloseDisplay (dpyinfo->display); #endif #endif /* ! USE_GTK */ + /* Do not close the connection here because it's already closed + by X(t)CloseDisplay (Bug#18403). */ + dpyinfo->display = NULL; } - /* No more input on this descriptor. */ - if (connection != -1) - delete_keyboard_wait_descriptor (connection); + /* ...but if called from x_connection_closed, the display may already + be closed and dpyinfo->display was set to 0 to indicate that. Since + X server is most likely gone, explicit close is the only reliable + way to continue and avoid Bug#19147. */ + else if (dpyinfo->connection >= 0) + emacs_close (dpyinfo->connection); + /* No more input on this descriptor. */ + delete_keyboard_wait_descriptor (dpyinfo->connection); /* Mark as dead. */ - dpyinfo->display = NULL; + dpyinfo->connection = -1; + x_delete_display (dpyinfo); unblock_input (); } @@ -11406,7 +11474,7 @@ x_initialize (void) baud_rate = 19200; x_noop_count = 0; - any_help_event_p = 0; + any_help_event_p = false; ignore_next_mouse_click_timeout = 0; #ifdef USE_GTK @@ -11445,6 +11513,15 @@ x_initialize (void) XSetIOErrorHandler (x_io_error_quitter); } +#ifdef USE_GTK +void +init_xterm (void) +{ + /* Emacs can handle only core input events, so make sure + Gtk doesn't use Xinput or Xinput2 extensions. */ + xputenv ("GDK_CORE_DEVICE_EVENTS=1"); +} +#endif void syms_of_xterm (void) @@ -11469,7 +11546,7 @@ UNDERLINE_POSITION font properties, for example 7x13 on XFree prior to 4.1, set this to nil. You can also use `underline-minimum-offset' to override the font's UNDERLINE_POSITION for small font display sizes. */); - x_use_underline_position_properties = 1; + x_use_underline_position_properties = true; DEFVAR_BOOL ("x-underline-at-descent-line", x_underline_at_descent_line, @@ -11477,7 +11554,7 @@ sizes. */); A value of nil means to draw the underline according to the value of the variable `x-use-underline-position-properties', which is usually at the baseline level. The default value is nil. */); - x_underline_at_descent_line = 0; + x_underline_at_descent_line = false; DEFVAR_BOOL ("x-mouse-click-focus-ignore-position", x_mouse_click_focus_ignore_position, @@ -11487,7 +11564,7 @@ click on a frame to select it (give it focus). In that case, a value of nil, means that the selected window and cursor position changes to reflect the mouse click position, while a non-nil value means that the selected window or cursor position is preserved. */); - x_mouse_click_focus_ignore_position = 0; + x_mouse_click_focus_ignore_position = false; DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars, doc: /* Which toolkit scroll bars Emacs uses, if any. diff --git a/src/xterm.h b/src/xterm.h index 3e92ebd2317..31c3261e3b9 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -138,6 +138,9 @@ struct x_display_info /* This says how to access this display in Xlib. */ Display *display; + /* A connection number (file descriptor) for the display. */ + int connection; + /* This is a cons cell of the form (NAME . FONT-LIST-CACHE). */ Lisp_Object name_list_element; @@ -431,7 +434,7 @@ extern void select_visual (struct x_display_info *); struct x_output { -#if defined (USE_X_TOOLKIT) || defined (USE_GTK) +#if defined (USE_X_TOOLKIT) || defined (USE_GTK) /* Height of menu bar widget, in pixels. This value is not meaningful if the menubar is turned off. */ int menubar_height; @@ -496,10 +499,6 @@ struct x_output GtkWidget *menubar_widget; /* The tool bar in this frame */ GtkWidget *toolbar_widget; -#ifdef HAVE_GTK_HANDLE_BOX_NEW -/* The handle box that makes the tool bar detachable. */ - GtkWidget *handlebox_widget; -#endif /* True if tool bar is packed into the hbox widget (i.e. vertical). */ bool_bf toolbar_in_hbox : 1; bool_bf toolbar_is_packed : 1; @@ -610,9 +609,6 @@ struct x_output false, tell Xt not to wait. */ bool_bf wait_for_wm : 1; - /* True if _NET_WM_STATE_HIDDEN is set for this frame. */ - bool_bf net_wm_state_hidden_seen : 1; - #ifdef HAVE_X_I18N /* Input context (currently, this means Compose key handler setup). */ XIC xic; @@ -651,6 +647,13 @@ struct x_output int move_offset_left; }; +/* Extreme 'short' and 'long' values suitable for libX11. */ +#define X_SHRT_MAX 0x7fff +#define X_SHRT_MIN (-1 - X_SHRT_MAX) +#define X_LONG_MAX 0x7fffffff +#define X_LONG_MIN (-1 - X_LONG_MAX) +#define X_ULONG_MAX 0xffffffffUL + #define No_Cursor (None) enum @@ -831,7 +834,7 @@ struct scroll_bar int whole; #endif - /* 1 if the scroll bar is horizontal. */ + /* True if the scroll bar is horizontal. */ bool horizontal; }; @@ -976,7 +979,7 @@ XrmDatabase x_load_resources (Display *, const char *, const char *, /* Defined in xterm.c */ -extern int x_text_icon (struct frame *, const char *); +extern bool x_text_icon (struct frame *, const char *); extern void x_catch_errors (Display *); extern void x_check_errors (Display *, const char *) ATTRIBUTE_FORMAT_PRINTF (2, 0); @@ -1019,6 +1022,15 @@ x_display_pixel_width (struct x_display_info *dpyinfo) return WidthOfScreen (dpyinfo->screen); } +INLINE void +x_display_set_last_user_time (struct x_display_info *dpyinfo, Time t) +{ +#ifdef ENABLE_CHECKING + eassert (t <= X_ULONG_MAX); +#endif + dpyinfo->last_user_time = t; +} + extern void x_set_sticky (struct frame *, Lisp_Object, Lisp_Object); extern void x_wait_for_event (struct frame *, int); extern void x_clear_under_internal_border (struct frame *f); diff --git a/test/BidiCharacterTest.txt b/test/BidiCharacterTest.txt new file mode 100644 index 00000000000..ee6432f3cf7 --- /dev/null +++ b/test/BidiCharacterTest.txt @@ -0,0 +1,96392 @@ +# BidiCharacterTest-7.0.0.txt +# Date: 2014-02-07, 02:00:00 GMT [LI] +# +# Unicode Character Database +# Copyright (c) 1991-2014 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# This file provides a conformance test for implementations of the +# Unicode Bidirectional Algorithm, specified in UAX #9: Unicode +# Bidirectional Algorithm, at http://www.unicode.org/unicode/reports/tr9/ +# +# The test data has been generated with a few constraints. Each test case +# is a single paragraph, so the test data does not contain any characters +# with Bidi_Class property value Paragraph_Separator and rule P1 of the +# algorithm is out of scope. Each test case further constitutes a single +# line of text; reordering is applied within a single line and independently +# of a rendering engine, and rules L3 and L4 are also out of scope. +# Therefore, the test data can be used for verifying conformance to the +# Unicode Bidirectional Algorithm implemented through rule L2 inclusively. +# +# The file contains test sequences of explicit character code points. +# Each line consists of five fields separated by a semicolon. +# +# Field 0: A sequence of hexadecimal code point values separated by space +# Field 1: A value representing the paragraph direction, as follows: +# 0 represents left-to-right +# 1 represents right-to-left +# 2 represents auto-LTR according to rules P2 and P3 of the algorithm +# Field 2: The resolved paragraph embedding level +# Field 3: A list of resolved levels; characters removed in rule X9 are +# indicated with an 'x' +# Field 4: A list of indices showing the resulting visual ordering from +# left to right; characters with a resolved level of 'x' are skipped +# +# Comment lines start with '#'. + +# Examples from UAX #9 + +# Examples from Section 3.3.5 +05D0 05D1 0028 05D2 05D3 005B 0026 0065 0066 005D 002E 0029 0067 0068;0;0;1 1 0 1 1 0 0 0 0 0 0 0 0 0;1 0 2 4 3 5 6 7 8 9 10 11 12 13 +05D0 05D1 0028 05D2 05D3 005B 0026 0065 0066 005D 002E 0029 0067 0068;1;1;1 1 1 1 1 1 1 2 2 1 1 1 2 2;12 13 11 10 9 7 8 6 5 4 3 2 1 0 +0061 0062 0063 0020 0028 0064 0065 0066 0020 0627 0628 062C 0029 0020 05D0 05D1 05D2;0;0;0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1;0 1 2 3 4 5 6 7 8 11 10 9 12 13 16 15 14 +0061 0062 0063 0020 0028 0064 0065 0066 0020 0627 0628 062C 0029 0020 05D0 05D1 05D2;1;1;2 2 2 1 1 2 2 2 1 1 1 1 1 1 1 1 1;16 15 14 13 12 11 10 9 8 5 6 7 4 3 0 1 2 +05D0 05D1 05D2 0020 0028 0064 0065 0066 0020 0627 0628 062C 0029 0020 0061 0062 0063;0;0;1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 8 11 10 9 12 13 14 15 16 +05D0 05D1 05D2 0020 0028 0064 0065 0066 0020 0627 0628 062C 0029 0020 0061 0062 0063;1;1;1 1 1 1 1 2 2 2 1 1 1 1 1 1 2 2 2;14 15 16 13 12 11 10 9 8 5 6 7 4 3 2 1 0 +0061 0062 0063 0020 0028 0627 0628 062C 0020 0064 0065 0066 0029 0020 05D0 05D1 05D2;0;0;0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 8 9 10 11 12 13 16 15 14 +0061 0062 0063 0020 0028 0627 0628 062C 0020 0064 0065 0066 0029 0020 05D0 05D1 05D2;1;1;2 2 2 1 1 1 1 1 1 2 2 2 1 1 1 1 1;16 15 14 13 12 9 10 11 8 7 6 5 4 3 0 1 2 +05D0 05D1 05D2 0020 0028 0627 0628 062C 0020 0064 0065 0066 0029 0020 0061 0062 0063;0;0;1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0;2 1 0 3 4 7 6 5 8 9 10 11 12 13 14 15 16 +05D0 05D1 05D2 0020 0028 0627 0628 062C 0020 0064 0065 0066 0029 0020 0061 0062 0063;1;1;1 1 1 1 1 1 1 1 1 2 2 2 1 1 2 2 2;14 15 16 13 12 9 10 11 8 7 6 5 4 3 2 1 0 +0627 0628 062C 0020 0062 006F 006F 006B 0028 0073 0029;0;0;1 1 1 0 0 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 9 10 +0627 0628 062C 0020 0062 006F 006F 006B 0028 0073 0029;1;1;1 1 1 1 2 2 2 2 2 2 2;4 5 6 7 8 9 10 3 2 1 0 + +# Miscellaneous test cases + +# Various sequences +061C;0;0;1;0 +05D0 2067 202A 0041;1;1;1 1 x 4;3 1 0 +062A 0031 002F 0032;2;1;1 2 2 2;1 2 3 0 +062A 0031 002F 0032;0;0;1 2 2 2;1 2 3 0 +062A 0031 002F 0032;1;1;1 2 2 2;1 2 3 0 +05D0 2066 202A 2069 05D1;0;0;1 1 x 1 1;4 3 1 0 +05D0 2066 202B 2069 05D1;0;0;1 1 x 1 1;4 3 1 0 +05D0 2066 202C 2069 05D1;0;0;1 1 x 1 1;4 3 1 0 +05D0 2066 202D 2069 05D1;0;0;1 1 x 1 1;4 3 1 0 +05D0 2066 202E 2069 05D1;0;0;1 1 x 1 1;4 3 1 0 +05D0 2066 2060 2069 05D1;0;0;1 1 x 1 1;4 3 1 0 +0061 2067 202A 2069 0062;1;1;2 2 x 2 2;0 1 3 4 +0061 2067 202C 202E 2069 0062;1;1;2 2 x x 2 2;0 1 4 5 +05D0 0029 2066 202B 2069 0627;0;0;1 1 1 x 1 1;5 4 2 1 0 +0661 002D 0031;0;0;2 0 0;0 1 2 +0061 0020 0031 0020 0032 002D 0033;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +05D0 0020 0031 002D 0032;0;0;1 1 2 2 2;2 3 4 1 0 +061C 0020 0031 002D 0032;0;0;1 1 2 1 2;4 3 2 1 0 +061C 0020 06F1 0020 06F2 002D 06F3;0;0;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# Sequences containing directional formatting characters +0061 202D 202C 0020 0031 0020 0032 002D 0033;1;1;2 x x 2 2 2 2 2 2;0 3 4 5 6 7 8 +0061 202D 002A 202C 0020 0031 0020 0032 002D 0033;1;1;2 x 2 x 2 2 2 2 2 2;0 2 4 5 6 7 8 9 +0061 202D 0062 202C 0020 0031 0020 0032 002D 0033;1;1;2 x 2 x 2 2 2 2 2 2;0 2 4 5 6 7 8 9 +0061 202D 05D0 202C 0020 0031 0020 0032 002D 0033;1;1;2 x 2 x 2 2 2 2 2 2;0 2 4 5 6 7 8 9 +0061 202E 202C 0020 0031 0020 0032 002D 0033;1;1;2 x x 2 2 2 2 2 2;0 3 4 5 6 7 8 +0061 202E 002A 202C 0020 0031 0020 0032 002D 0033;1;1;2 x 3 x 1 2 1 2 2 2;7 8 9 6 5 4 0 2 +0061 202E 0062 202C 0020 0031 0020 0032 002D 0033;1;1;2 x 3 x 1 2 1 2 2 2;7 8 9 6 5 4 0 2 +0061 202E 05D0 202C 0020 0031 0020 0032 002D 0033;1;1;2 x 3 x 1 2 1 2 2 2;7 8 9 6 5 4 0 2 +0627 202A 202C 0020 0031 002D 0032;0;0;1 x x 1 2 1 2;6 5 4 3 0 +0627 202A 002A 202C 0020 0031 002D 0032;0;0;1 x 2 x 0 0 0 0;2 0 4 5 6 7 +0627 202B 202C 0020 0031 002D 0032;0;0;1 x x 1 2 1 2;6 5 4 3 0 +0627 202B 002A 202C 0020 0031 002D 0032;0;0;1 x 1 x 1 2 2 2;5 6 7 4 2 0 +05D0 202A 0062 202C 0020 0031 0020 0032;0;0;1 x 2 x 0 0 0 0;2 0 4 5 6 7 +05D0 202A 05D1 202C 0020 0031 0020 0032;0;0;1 x 3 x 0 0 0 0;2 0 4 5 6 7 +05D0 202A 202A 202C 202C 0020 0031 0020 0032;0;0;1 x x x x 1 2 1 2;8 7 6 5 0 +05D0 202B 0062 202C 0020 0031 0020 0032;0;0;1 x 2 x 1 2 1 2;7 6 5 4 2 0 +05D0 202B 05D1 202C 0020 0031 0020 0032;0;0;1 x 1 x 1 2 1 2;7 6 5 4 2 0 +0061 202A 0062 202C 0020 0031 0020 0032;0;0;0 x 2 x 0 0 0 0;0 2 4 5 6 7 +0061 202A 05D1 202C 0020 0031 0020 0032;0;0;0 x 3 x 0 0 0 0;0 2 4 5 6 7 +0061 202B 0062 202C 0020 0031 0020 0032;0;0;0 x 2 x 1 2 1 2;0 7 6 5 4 2 +0061 202B 05D1 202C 0020 0031 0020 0032;0;0;0 x 1 x 1 2 1 2;0 7 6 5 4 2 +05D0 202A 0062 202C 0020 0031 0020 0032;1;1;1 x 2 x 2 2 2 2;2 4 5 6 7 0 +05D0 202A 05D1 202C 0020 0031 0020 0032;1;1;1 x 3 x 2 2 2 2;2 4 5 6 7 0 +05D0 202B 0062 202C 0020 0031 0020 0032;1;1;1 x 4 x 1 2 1 2;7 6 5 4 2 0 +05D0 202B 05D1 202C 0020 0031 0020 0032;1;1;1 x 3 x 1 2 1 2;7 6 5 4 2 0 +0061 202A 0062 202C 0020 0031 0020 0032;1;1;2 x 2 x 2 2 2 2;0 2 4 5 6 7 +0061 202A 05D1 202C 0020 0031 0020 0032;1;1;2 x 3 x 2 2 2 2;0 2 4 5 6 7 +0061 202B 0062 202C 0020 0031 0020 0032;1;1;2 x 4 x 1 2 1 2;7 6 5 4 0 2 +0061 202B 05D1 202C 0020 0031 0020 0032;1;1;2 x 3 x 1 2 1 2;7 6 5 4 0 2 +0061 202B 202B 202C 202C 0020 0031 0020 0032;1;1;2 x x x x 2 2 2 2;0 5 6 7 8 + +# Sequences containing paired brackets +0061 0028 05D0 005B 05D1 005D 0021 0029 0062;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 005B 05D1 005D 0021 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0062 005D 0021 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 005B 0062 005D 0021 0029 05D1;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0061 0028 0028 007B 0062 2680 005B 005D 0029 007D 005B 0063 005B 005D 005D 05D0 0029;0;0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +0061 0028 0028 007B 0062 2680 005B 005D 0029 007D 005B 0063 005B 005D 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1;16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +05D0 0028 0028 007B 05D1 2680 005B 005D 0029 007D 005B 05D2 005B 005D 005D 0061 0029;0;0;1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +05D0 0028 0028 007B 05D1 2680 005B 005D 0029 007D 005B 05D2 005B 005D 005D 0061 0029;1;1;1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1;16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +0028 0061 005B 005B 005D 05D0 005D 007B 0028 005B 005D 2680 05D1 007D 0029 0029 05D2;0;0;0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +0028 0061 005B 005B 005D 05D0 005D 007B 0028 005B 005D 2680 05D1 007D 0029 0029 05D2;1;1;1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +0028 05D0 005B 005B 005D 0061 005D 007B 0028 005B 005D 2680 0062 007D 0029 0029 0063;0;0;0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +0028 05D0 005B 005B 005D 0061 005D 007B 0028 005B 005D 2680 0062 007D 0029 0029 0063;1;1;1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 2;16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 + +# Sequences containing paired brackets and numbers +0061 0028 0031 0029;0;0;0 0 0 0;0 1 2 3 +0061 0028 0031 0029;1;1;2 2 2 2;0 1 2 3 +0061 0028 0661 0029;0;0;0 0 2 0;0 1 2 3 +0061 0028 0661 0029;1;1;2 1 2 1;3 2 1 0 +0031 0028 0061 0029;0;0;0 0 0 0;0 1 2 3 +0031 0028 0061 0029;1;1;2 1 2 1;3 2 1 0 +0661 0028 0061 0029;0;0;2 0 0 0;0 1 2 3 +0661 0028 0061 0029;1;1;2 1 2 1;3 2 1 0 +0028 0031 0029 0061;0;0;0 0 0 0;0 1 2 3 +0028 0031 0029 0061;1;1;1 2 1 2;3 2 1 0 +0028 0661 0029 0061;0;0;0 2 0 0;0 1 2 3 +0028 0661 0029 0061;1;1;1 2 1 2;3 2 1 0 +0028 0061 0029 0031;0;0;0 0 0 0;0 1 2 3 +0028 0061 0029 0031;1;1;1 2 1 2;3 2 1 0 +0028 0061 0029 0661;0;0;0 0 0 2;0 1 2 3 +0028 0061 0029 0661;1;1;1 2 1 2;3 2 1 0 +05D0 0028 0031 0029;0;0;1 1 2 1;3 2 1 0 +05D0 0028 0031 0029;1;1;1 1 2 1;3 2 1 0 +05D0 0028 0661 0029;0;0;1 1 2 1;3 2 1 0 +05D0 0028 0661 0029;1;1;1 1 2 1;3 2 1 0 +0031 0028 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0031 0028 05D0 0029;1;1;2 1 1 1;3 2 1 0 +0661 0028 05D0 0029;0;0;2 1 1 1;3 2 1 0 +0661 0028 05D0 0029;1;1;2 1 1 1;3 2 1 0 +0028 0031 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0028 0031 0029 05D0;1;1;1 2 1 1;3 2 1 0 +0028 0661 0029 05D0;0;0;0 2 0 1;0 1 2 3 +0028 0661 0029 05D0;1;1;1 2 1 1;3 2 1 0 +0028 05D0 0029 0031;0;0;0 1 0 2;0 1 2 3 +0028 05D0 0029 0031;1;1;1 1 1 2;3 2 1 0 +0028 05D0 0029 0661;0;0;0 1 0 2;0 1 2 3 +0028 05D0 0029 0661;1;1;1 1 1 2;3 2 1 0 +0028 05D0 0029 0020 0031 002E 0032;0;0;0 1 0 0 2 2 2;0 1 2 3 4 5 6 +0028 05D0 0029 0020 0031 002A 0032;0;0;0 1 0 0 2 1 2;0 1 2 3 6 5 4 +0028 05D0 0029 0020 0031 002D 0032;0;0;0 1 0 0 2 2 2;0 1 2 3 4 5 6 +0028 05D0 0627 0029 0020 0031 002D 0032;0;0;0 1 1 0 0 2 1 2;0 2 1 3 4 7 6 5 +0028 05D0 0627 0029 0020 0031 002D 0032;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0627 0028 0661 0029;0;0;1 1 2 1;3 2 1 0 +0627 0028 0661 0029;1;1;1 1 2 1;3 2 1 0 +0627 0028 06F1 0029;0;0;1 1 2 1;3 2 1 0 +0627 0028 06F1 0029;1;1;1 1 2 1;3 2 1 0 +0661 0028 0627 0029;0;0;2 1 1 1;3 2 1 0 +0661 0028 0627 0029;1;1;2 1 1 1;3 2 1 0 +06F1 0028 0627 0029;0;0;0 0 1 0;0 1 2 3 +06F1 0028 0627 0029;1;1;2 1 1 1;3 2 1 0 +0028 0661 0029 0627;0;0;0 2 0 1;0 1 2 3 +0028 0661 0029 0627;1;1;1 2 1 1;3 2 1 0 +0028 06F1 0029 0627;0;0;0 0 0 1;0 1 2 3 +0028 06F1 0029 0627;1;1;1 2 1 1;3 2 1 0 +0028 0627 0029 0661;0;0;0 1 0 2;0 1 2 3 +0028 0627 0029 0661;1;1;1 1 1 2;3 2 1 0 +0028 0627 0029 06F1;0;0;0 1 0 2;0 1 2 3 +0028 0627 0029 06F1;1;1;1 1 1 2;3 2 1 0 +0028 0627 0029 0020 0031 002E 0032;0;0;0 1 0 0 2 2 2;0 1 2 3 4 5 6 +0028 0627 0029 0020 0031 002A 0032;0;0;0 1 0 0 2 1 2;0 1 2 3 6 5 4 +0028 0627 0029 0020 0031 002D 0032;0;0;0 1 0 0 2 1 2;0 1 2 3 6 5 4 +0028 0627 05D0 0029 0020 0031 002D 0032;0;0;0 1 1 0 0 2 2 2;0 2 1 3 4 5 6 7 +0028 0627 05D0 0029 0020 0031 002D 0032;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0031 0661 0028 0627 0029;0;0;0 2 1 1 1;0 4 3 2 1 +002B 0661 0028 0662 0029;2;0;0 2 1 2 1;0 4 3 2 1 +0025 0661 0028 0662 0029;2;0;0 2 1 2 1;0 4 3 2 1 +0661 0009 0028 0662 0029;2;0;2 0 1 2 1;0 1 4 3 2 +0661 0020 0028 0662 0029;2;0;2 1 1 2 1;4 3 2 1 0 +05D0 0029 0020 0028 0661 0029;0;0;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0029 0028 0301 0031 0029;0;0;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0029 0028 0301 0661 0029;0;0;1 1 1 1 2 1;5 4 3 2 1 0 +0627 0028 0661 003F 0020 0029 005D;0;0;1 1 2 1 1 1 0;5 4 3 2 1 0 6 + +# Combinations of paired brackets, numbers, and directional formatting characters +202A 0661 0028 05D0 0029;2;1;x 4 3 3 3;4 3 2 1 +202A 0661 0028 0662 0029;2;0;x 4 3 4 3;4 3 2 1 +202C 0661 0028 0662 0029;2;0;x 2 1 2 1;4 3 2 1 +0661 202C 0028 05D0 0029;0;0;2 x 1 1 1;4 3 2 0 +0661 0028 05D0 202C 0029;0;0;2 1 1 x 1;4 2 1 0 +0661 2069 0028 0662 0029;2;0;2 1 1 2 1;4 3 2 1 0 +0661 0028 05D0 2069 0029;0;0;2 1 1 1 1;4 3 2 1 0 +0661 0028 0627 2069 0029;0;0;2 1 1 1 1;4 3 2 1 0 +05D0 202C 0028 0031 0029;0;0;1 x 1 2 1;4 3 2 0 +05D0 202C 0028 0661 0029;0;0;1 x 1 2 1;4 3 2 0 +05D0 2066 202D 2069 0031;0;0;1 1 x 1 2;4 3 1 0 +05D0 0028 005D 2069 0031 0029;0;0;1 1 1 1 2 1;5 4 3 2 1 0 +2066 0029 0029 0661 0028 0627 0029;1;1;1 2 2 4 3 3 3;1 2 6 5 4 3 0 +2066 0029 0029 0661 0028 0662 0029;1;1;1 2 2 4 3 4 3;1 2 6 5 4 3 0 +2066 0029 2066 0661 0028 05D0 0029;1;1;1 2 2 6 5 5 5;1 2 6 5 4 3 0 +00AD 0028 2069 0661 0025 0029 0662;2;0;x 0 0 2 0 0 2;1 2 3 4 5 6 +0061 0028 0062 005B 0063 05D0 0064 005D 0065 0029 0066;0;0;0 0 0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 9 10 +0061 0028 0062 005B 0063 05D0 0064 005D 0065 0029 0066;1;1;2 1 2 1 2 1 2 1 2 1 2;10 9 8 7 6 5 4 3 2 1 0 +0061 0028 0062 005B 0063 2068 05D0 2069 0064 005D 0065 0029 0066;0;0;0 0 0 0 0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 9 10 11 12 +0061 0028 0062 005B 0063 2068 05D0 2069 0064 005D 0065 0029 0066;1;1;2 2 2 2 2 2 3 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 9 10 11 12 +05D0 0028 05D1 005B 05D2 0061 05D3 005D 05D4 0029 05D5;0;0;1 0 1 0 1 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 9 10 +05D0 0028 05D1 005B 05D2 0061 05D3 005D 05D4 0029 05D5;1;1;1 1 1 1 1 2 1 1 1 1 1;10 9 8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 2068 0061 2069 05D3 005D 05D4 0029 05D5;0;0;1 1 1 1 1 1 2 1 1 1 1 1 1;12 11 10 9 8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 2068 0061 2069 05D3 005D 05D4 0029 05D5;1;1;1 1 1 1 1 1 2 1 1 1 1 1 1;12 11 10 9 8 7 6 5 4 3 2 1 0 +0061 0028 0062 202B 202C 0029 0020 0031 0020 0032;1;1;2 2 2 x x 2 2 2 2 2;0 1 2 5 6 7 8 9 +0061 0028 0062 202B 202C 0029 0020 05D0;1;1;2 2 2 x x 2 1 1;7 6 0 1 2 5 +0061 0028 0062 202B 05D0 202C 0029 0020 05D1;1;1;2 2 2 x 3 x 1 1 1;8 7 6 0 1 2 4 +0061 0028 0062 202B 05D0 202C 0029 0020 0031;1;1;2 2 2 x 3 x 1 1 2;8 7 6 0 1 2 4 +0061 0028 0062 202B 0063 202C 0029 0020 0031;1;1;2 2 2 x 4 x 1 1 2;8 7 6 0 1 2 4 +0061 0028 0062 2067 05D0 0066 2069 05D4 0029 05D5;0;0;0 0 0 0 1 2 0 1 0 1;0 1 2 3 5 4 6 7 8 9 +0061 0028 0062 2067 05D0 0066 2069 05D4 0029 05D5;1;1;2 1 2 1 3 4 1 1 1 1;9 8 7 6 5 4 3 2 1 0 +0061 0028 0062 2067 05D0 005B 05D1 2066 0063 05D3 2069 0065 005D 0066 2069 05D4 0029 05D5;0;0;0 0 0 0 1 1 1 1 2 3 1 2 1 2 0 1 0 1;0 1 2 3 13 12 11 10 8 9 7 6 5 4 14 15 16 17 +0061 0028 0062 2067 05D0 005B 05D1 2066 0063 05D3 2069 0065 005D 0066 2069 05D4 0029 05D5;1;1;2 1 2 1 3 3 3 3 4 5 3 4 3 4 1 1 1 1;17 16 15 14 13 12 11 10 8 9 7 6 5 4 3 2 1 0 +0061 0028 0062 2067 05D0 005B 05D1 2066 0063 007B 0064 202B 007D 0020 007B 202C 05D2 007D 05D3 2069 0065 005D 0066 2069 05D4 0029 05D5;0;0;0 0 0 0 1 1 1 1 2 2 2 x 3 3 3 x 3 3 3 1 2 1 2 0 1 0 1;0 1 2 3 22 21 20 19 8 9 10 18 17 16 14 13 12 7 6 5 4 23 24 25 26 +0061 0028 0062 2067 05D0 005B 05D1 2066 0063 007B 0064 202B 007D 0020 007B 202C 05D2 007D 05D3 2069 0065 005D 0066 2069 05D4 0029 05D5;1;1;2 1 2 1 3 3 3 3 4 4 4 x 5 5 5 x 5 5 5 3 4 3 4 1 1 1 1;26 25 24 23 22 21 20 19 8 9 10 18 17 16 14 13 12 7 6 5 4 3 2 1 0 +05D0 0028 05D1 202A 202C 0029 0020 0031 0020 0032;0;0;1 1 1 x x 1 1 2 1 2;9 8 7 6 5 2 1 0 +05D0 0028 05D1 202A 202C 0029 0020 0062;0;0;1 1 1 x x 1 0 0;5 2 1 0 6 7 +05D0 0028 05D1 202A 0061 202C 0029 0020 0062;0;0;1 1 1 x 2 x 0 0 0;4 2 1 0 6 7 8 +05D0 0028 05D1 202A 0061 202C 0029 0020 0031;0;0;1 1 1 x 2 x 0 0 0;4 2 1 0 6 7 8 +05D0 0028 05D1 202A 05D2 202C 0029 0020 0031;0;0;1 1 1 x 3 x 0 0 0;4 2 1 0 6 7 8 +05D0 0028 05D1 2066 0061 05D5 2069 0065 0029 0066;0;0;1 0 1 0 2 3 0 0 0 0;0 1 2 3 4 5 6 7 8 9 +05D0 0028 05D1 2066 0061 05D5 2069 0065 0029 0066;1;1;1 1 1 1 2 3 1 2 1 2;9 8 7 6 4 5 3 2 1 0 +05D0 0028 05D1 2066 0061 005B 0062 2067 05D2 0064 2069 05D4 005D 05D5 2069 0065 0029 0066;0;0;1 0 1 0 2 2 2 2 3 4 2 3 2 3 0 0 0 0;0 1 2 3 4 5 6 7 9 8 10 11 12 13 14 15 16 17 +05D0 0028 05D1 2066 0061 005B 0062 2067 05D2 0064 2069 05D4 005D 05D5 2069 0065 0029 0066;1;1;1 1 1 1 2 2 2 2 3 4 2 3 2 3 1 2 1 2;17 16 15 14 4 5 6 7 9 8 10 11 12 13 3 2 1 0 +05D0 0028 05D1 2066 0061 005B 0062 2067 05D2 007B 05D3 202A 007D 0020 007B 202C 0063 007D 0064 2069 05D4 005D 05D5 2069 0065 0029 0066;0;0;1 0 1 0 2 2 2 2 3 3 3 x 4 4 4 x 4 4 4 2 3 2 3 0 0 0 0;0 1 2 3 4 5 6 7 12 13 14 16 17 18 10 9 8 19 20 21 22 23 24 25 26 +05D0 0028 05D1 2066 0061 005B 0062 2067 05D2 007B 05D3 202A 007D 0020 007B 202C 0063 007D 0064 2069 05D4 005D 05D5 2069 0065 0029 0066;1;1;1 1 1 1 2 2 2 2 3 3 3 x 4 4 4 x 4 4 4 2 3 2 3 1 2 1 2;26 25 24 23 4 5 6 7 12 13 14 16 17 18 10 9 8 19 20 21 22 3 2 1 0 + +# Sequences containing paired brackets that have canonical equivalents +0061 0020 2329 0062 002E 0031 232A;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0020 3008 0062 002E 0031 3009;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0020 2329 0062 002E 0031 3009;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0020 3008 0062 002E 0031 232A;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +05D0 0020 2329 05D1 002E 0031 232A;0;0;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0020 3008 05D1 002E 0031 3009;0;0;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0020 2329 05D1 002E 0031 3009;0;0;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0020 3008 05D1 002E 0031 232A;0;0;1 1 1 1 1 2 1;6 5 4 3 2 1 0 + +# Permutations of sequences containing paired brackets + +# The sequences in this section consist of permutation patterns of three +# bidirectional types (ON, L, and R) of length between 0 and 4, interleaved +# with several patterns of paired brackets (both balanced and unbalanced), +# in two paragraph directions. + +# () +0028 0029;0;0;0 0;0 1 +0028 0029;1;1;1 1;1 0 + +# ON and () +2680 0028 0029;0;0;0 0 0;0 1 2 +2680 0028 0029;1;1;1 1 1;2 1 0 +0028 2680 0029;0;0;0 0 0;0 1 2 +0028 2680 0029;1;1;1 1 1;2 1 0 +0028 0029 2680;0;0;0 0 0;0 1 2 +0028 0029 2680;1;1;1 1 1;2 1 0 + +# L and () +0061 0028 0029;0;0;0 0 0;0 1 2 +0061 0028 0029;1;1;2 1 1;2 1 0 +0028 0061 0029;0;0;0 0 0;0 1 2 +0028 0061 0029;1;1;1 2 1;2 1 0 +0028 0029 0061;0;0;0 0 0;0 1 2 +0028 0029 0061;1;1;1 1 2;2 1 0 + +# R and () +05D0 0028 0029;0;0;1 0 0;0 1 2 +05D0 0028 0029;1;1;1 1 1;2 1 0 +0028 05D0 0029;0;0;0 1 0;0 1 2 +0028 05D0 0029;1;1;1 1 1;2 1 0 +0028 0029 05D0;0;0;0 0 1;0 1 2 +0028 0029 05D0;1;1;1 1 1;2 1 0 + +# ON, ON and () +2680 0028 2681 0029;0;0;0 0 0 0;0 1 2 3 +2680 0028 2681 0029;1;1;1 1 1 1;3 2 1 0 +2680 0028 0029 2681;0;0;0 0 0 0;0 1 2 3 +2680 0028 0029 2681;1;1;1 1 1 1;3 2 1 0 +0028 2680 0029 2681;0;0;0 0 0 0;0 1 2 3 +0028 2680 0029 2681;1;1;1 1 1 1;3 2 1 0 + +# ON, L and () +2680 0028 0061 0029;0;0;0 0 0 0;0 1 2 3 +2680 0028 0061 0029;1;1;1 1 2 1;3 2 1 0 +2680 0028 0029 0061;0;0;0 0 0 0;0 1 2 3 +2680 0028 0029 0061;1;1;1 1 1 2;3 2 1 0 +0028 2680 0061 0029;0;0;0 0 0 0;0 1 2 3 +0028 2680 0061 0029;1;1;1 1 2 1;3 2 1 0 +0028 2680 0029 0061;0;0;0 0 0 0;0 1 2 3 +0028 2680 0029 0061;1;1;1 1 1 2;3 2 1 0 +0028 0029 2680 0061;0;0;0 0 0 0;0 1 2 3 +0028 0029 2680 0061;1;1;1 1 1 2;3 2 1 0 + +# ON, R and () +2680 0028 05D0 0029;0;0;0 0 1 0;0 1 2 3 +2680 0028 05D0 0029;1;1;1 1 1 1;3 2 1 0 +2680 0028 0029 05D0;0;0;0 0 0 1;0 1 2 3 +2680 0028 0029 05D0;1;1;1 1 1 1;3 2 1 0 +0028 2680 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0028 2680 05D0 0029;1;1;1 1 1 1;3 2 1 0 +0028 2680 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0028 2680 0029 05D0;1;1;1 1 1 1;3 2 1 0 +0028 0029 2680 05D0;0;0;0 0 0 1;0 1 2 3 +0028 0029 2680 05D0;1;1;1 1 1 1;3 2 1 0 + +# L, ON and () +0061 2680 0028 0029;0;0;0 0 0 0;0 1 2 3 +0061 2680 0028 0029;1;1;2 1 1 1;3 2 1 0 +0061 0028 2680 0029;0;0;0 0 0 0;0 1 2 3 +0061 0028 2680 0029;1;1;2 1 1 1;3 2 1 0 +0061 0028 0029 2680;0;0;0 0 0 0;0 1 2 3 +0061 0028 0029 2680;1;1;2 1 1 1;3 2 1 0 +0028 0061 2680 0029;0;0;0 0 0 0;0 1 2 3 +0028 0061 2680 0029;1;1;1 2 1 1;3 2 1 0 +0028 0061 0029 2680;0;0;0 0 0 0;0 1 2 3 +0028 0061 0029 2680;1;1;1 2 1 1;3 2 1 0 + +# L, L and () +0061 0028 0062 0029;0;0;0 0 0 0;0 1 2 3 +0061 0028 0062 0029;1;1;2 2 2 2;0 1 2 3 +0061 0028 0029 0062;0;0;0 0 0 0;0 1 2 3 +0061 0028 0029 0062;1;1;2 2 2 2;0 1 2 3 +0028 0061 0029 0062;0;0;0 0 0 0;0 1 2 3 +0028 0061 0029 0062;1;1;1 2 1 2;3 2 1 0 + +# L, R and () +0061 0028 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0061 0028 05D0 0029;1;1;2 1 1 1;3 2 1 0 +0061 0028 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0061 0028 0029 05D0;1;1;2 1 1 1;3 2 1 0 +0028 0061 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0028 0061 05D0 0029;1;1;1 2 1 1;3 2 1 0 +0028 0061 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0028 0061 0029 05D0;1;1;1 2 1 1;3 2 1 0 + +# R, ON and () +05D0 2680 0028 0029;0;0;1 0 0 0;0 1 2 3 +05D0 2680 0028 0029;1;1;1 1 1 1;3 2 1 0 +05D0 0028 2680 0029;0;0;1 0 0 0;0 1 2 3 +05D0 0028 2680 0029;1;1;1 1 1 1;3 2 1 0 +05D0 0028 0029 2680;0;0;1 0 0 0;0 1 2 3 +05D0 0028 0029 2680;1;1;1 1 1 1;3 2 1 0 +0028 05D0 2680 0029;0;0;0 1 0 0;0 1 2 3 +0028 05D0 2680 0029;1;1;1 1 1 1;3 2 1 0 +0028 05D0 0029 2680;0;0;0 1 0 0;0 1 2 3 +0028 05D0 0029 2680;1;1;1 1 1 1;3 2 1 0 + +# R, L and () +05D0 0028 0061 0029;0;0;1 0 0 0;0 1 2 3 +05D0 0028 0061 0029;1;1;1 1 2 1;3 2 1 0 +05D0 0028 0029 0061;0;0;1 0 0 0;0 1 2 3 +05D0 0028 0029 0061;1;1;1 1 1 2;3 2 1 0 +0028 05D0 0061 0029;0;0;0 1 0 0;0 1 2 3 +0028 05D0 0061 0029;1;1;1 1 2 1;3 2 1 0 +0028 05D0 0029 0061;0;0;0 1 0 0;0 1 2 3 +0028 05D0 0029 0061;1;1;1 1 1 2;3 2 1 0 + +# R, R and () +05D0 0028 05D1 0029;0;0;1 1 1 1;3 2 1 0 +05D0 0028 05D1 0029;1;1;1 1 1 1;3 2 1 0 +05D0 0028 0029 05D1;0;0;1 1 1 1;3 2 1 0 +05D0 0028 0029 05D1;1;1;1 1 1 1;3 2 1 0 +0028 05D0 0029 05D1;0;0;0 1 0 1;0 1 2 3 +0028 05D0 0029 05D1;1;1;1 1 1 1;3 2 1 0 + +# ON, ON, ON and () +2680 0028 2681 0029 2682;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 0029 2682;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, L and () +2680 0028 2681 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 2681 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +2680 0028 0029 2681 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 2681 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 0029 2681 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 2681 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, ON, R and () +2680 0028 2681 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 2681 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 2681 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 2681 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 2681 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 0029 2681 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 2681 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 0029 2681 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L, ON and () +2680 0028 0061 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 2681 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 0061 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 0029 2681;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0061 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 2681 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0061 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 0029 2681;1;1;1 1 2 1 1;4 3 2 1 0 + +# ON, L, L and () +2680 0028 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 +0028 2680 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 + +# ON, L, R and () +2680 0028 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 2680 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# ON, R, ON and () +2680 0028 05D0 2681 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 05D0 0029 2681;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 2681 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 0029 2681;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, R, L and () +2680 0028 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 2680 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R, R and () +2680 0028 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +2680 0028 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +0028 2680 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON, ON and () +0061 2680 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 2681 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 2680 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 0029 2681;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 0029 2681;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 0029 2681;1;1;1 2 1 1 1;4 3 2 1 0 + +# L, ON, L and () +0061 2680 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 0062 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 2680 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 2680 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 0062 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 2680 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 0029 2680 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 2680 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0028 0061 2680 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 0062 0029;1;1;1 2 2 2 1;4 1 2 3 0 +0028 0061 2680 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 0029 0062;1;1;1 2 1 1 2;4 3 2 1 0 +0028 0061 0029 2680 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 2680 0062;1;1;1 2 1 1 2;4 3 2 1 0 + +# L, ON, R and () +0061 2680 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 2680 0028 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 2680 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 2680 0028 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 2680 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 2680 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 0029 2680 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0061 2680 05D0 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 2680 0029 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 0029 2680 05D0;1;1;1 2 1 1 1;4 3 2 1 0 + +# L, L, ON and () +0061 0028 0062 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 2680 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 0062 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 0029 2680;1;1;2 2 2 2 1;4 0 1 2 3 + +# L, L, L and () +0061 0028 0062 0029 0063;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 0029 0063;1;1;2 2 2 2 2;0 1 2 3 4 + +# L, L, R and () +0061 0028 0062 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 0062 05D0 0029;1;1;2 1 2 1 1;4 3 2 1 0 +0061 0028 0062 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 0062 0029 05D0;1;1;2 2 2 2 1;4 0 1 2 3 + +# L, R, ON and () +0061 0028 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 2680 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 0029 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 2680 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 0029 2680;1;1;1 2 1 1 1;4 3 2 1 0 + +# L, R, L and () +0061 0028 05D0 0062 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 0062 0029;1;1;2 1 1 2 1;4 3 2 1 0 +0061 0028 05D0 0029 0062;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 0029 0062;1;1;2 1 1 1 2;4 3 2 1 0 +0028 0061 05D0 0062 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 0062 0029;1;1;1 2 1 2 1;4 3 2 1 0 +0028 0061 05D0 0029 0062;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 0029 0062;1;1;1 2 1 1 2;4 3 2 1 0 + +# L, R, R and () +0061 0028 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +0061 0028 05D0 0029 05D1;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +0028 0061 05D0 0029 05D1;1;1;1 2 1 1 1;4 3 2 1 0 + +# R, ON, ON and () +05D0 2680 0028 2681 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 2680 0028 0029 2681;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 0029 2681;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 0029 2681;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, ON, L and () +05D0 2680 0028 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 2680 0028 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +05D0 0028 2680 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 2680 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +05D0 0028 0029 2680 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 2680 0061 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 05D0 2680 0029 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 0029 2680 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, ON, R and () +05D0 2680 0028 05D1 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 2680 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 2680 0028 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 2680 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 05D1 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 2680 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 2680 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 05D1 0029;0;0;0 1 1 1 0;0 3 2 1 4 +0028 05D0 2680 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 0029 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 2680 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 2680 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 0029 2680 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L, ON and () +05D0 0028 0061 2680 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 0061 0029 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0061 2680 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0061 0029 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, L, L and () +05D0 0028 0061 0029 0062;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 +0028 05D0 0061 0029 0062;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 + +# R, L, R and () +05D0 0028 0061 05D1 0029;0;0;1 0 0 1 0;0 1 2 3 4 +05D0 0028 0061 05D1 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 0061 0029 05D1;0;0;1 0 0 0 1;0 1 2 3 4 +05D0 0028 0061 0029 05D1;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0061 05D1 0029;0;0;0 1 0 1 0;0 1 2 3 4 +0028 05D0 0061 05D1 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0061 0029 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 0061 0029 05D1;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, R, ON and () +05D0 0028 05D1 2680 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 05D1 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 05D1 0029 2680;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 05D1 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, R, L and () +05D0 0028 05D1 0061 0029;0;0;1 0 1 0 0;0 1 2 3 4 +05D0 0028 05D1 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 05D1 0029 0061;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 05D1 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R, R and () +05D0 0028 05D1 0029 05D2;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON, L and () +2680 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, ON, R and () +2680 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L, ON and () +2680 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 2682 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 0029 2682;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, ON, L, L and () +2680 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# ON, ON, L, R and () +2680 0028 2681 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 2681 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, ON, R, ON and () +2680 0028 2681 05D0 2682 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 05D0 0029 2682;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, R, L and () +2680 0028 2681 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R, R and () +2680 0028 2681 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +2680 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON, ON and () +2680 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 0029 2682;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 0029 2682;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# ON, L, ON, L and () +2680 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +2680 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +2680 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 2681 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 2681 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# ON, L, ON, R and () +2680 0028 0061 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0061 2681 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 2681 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 0029 2681 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0061 2681 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 2681 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 0029 2681 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# ON, L, R, ON and () +2680 0028 0061 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# ON, L, R, L and () +2680 0028 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# ON, L, R, R and () +2680 0028 0061 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +2680 0028 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 2680 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# ON, R, ON, ON and () +2680 0028 05D0 2681 0029 2682;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 0029 2682;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, ON, L and () +2680 0028 05D0 2681 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, ON, R and () +2680 0028 05D0 2681 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +2680 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 2681 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 2681 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 2681 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L, ON and () +2680 0028 05D0 0061 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 0061 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0061 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, L, L and () +2680 0028 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# ON, R, L, R and () +2680 0028 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +2680 0028 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 2680 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# L, ON, ON, ON and () +0061 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 0029 2682;1;1;2 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON, L and () +0061 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 2681 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 2681 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 2681 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 + +# L, ON, ON, R and () +0061 2680 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 2681 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 2681 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 0029 2681 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 0029 2681 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 0029 2681 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 + +# L, ON, L, ON and () +0061 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 2681 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 0029 2681;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 2681 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 0029 2681;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0028 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 2681 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 0029 2681;1;1;1 2 2 2 1 1;5 4 1 2 3 0 + +# L, ON, L, L and () +0061 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 0029 0063;1;1;1 2 2 2 1 2;5 4 1 2 3 0 + +# L, ON, L, R and () +0061 2680 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 0062 05D0 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 0062 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 2680 0062 05D0 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 0062 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0028 0061 2680 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 2680 0062 05D0 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 0062 0029 05D0;1;1;1 2 2 2 1 1;5 4 1 2 3 0 + +# L, ON, R, ON and () +0061 2680 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 2681 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 + +# L, ON, R, L and () +0061 2680 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 + +# L, ON, R, R and () +0061 2680 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 2680 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 0028 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0061 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 + +# L, L, ON, ON and () +0061 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 0029 2681;1;1;2 2 2 2 2 1;5 0 1 2 3 4 + +# L, L, ON, L and () +0061 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 0063 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 2680 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 + +# L, L, ON, R and () +0061 0028 0062 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0062 2680 05D0 0029;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 2680 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 0029 2680 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 + +# L, L, R, ON and () +0061 0028 0062 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 2680 0029;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 0029 2680;1;1;2 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, R, L and () +0061 0028 0062 05D0 0063 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 0063 0029;1;1;2 1 2 1 2 1;5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0063;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 0029 0063;1;1;2 1 2 1 1 2;5 4 3 2 1 0 + +# L, L, R, R and () +0061 0028 0062 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 0028 0062 05D0 0029 05D1;1;1;2 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, ON, ON and () +0061 0028 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 + +# L, R, ON, L and () +0061 0028 05D0 2680 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 2680 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 2680 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 + +# L, R, ON, R and () +0061 0028 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0061 0028 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 2680 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 2680 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 0061 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 2680 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 + +# L, R, L, ON and () +0061 0028 05D0 0062 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 2680 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 0062 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 0029 2680;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 2680 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0062 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 0029 2680;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, R, L, L and () +0061 0028 05D0 0062 0029 0063;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 0029 0063;1;1;2 1 1 2 1 2;5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0063;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 0029 0063;1;1;1 2 1 2 1 2;5 4 3 2 1 0 + +# L, R, L, R and () +0061 0028 05D0 0062 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0061 0028 05D0 0062 05D1 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 0062 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 0062 0029 05D1;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0061 05D0 0062 05D1 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0062 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 0062 0029 05D1;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# R, ON, ON, ON and () +05D0 2680 0028 2681 0029 2682;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, ON, L and () +05D0 2680 0028 2681 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, ON, R and () +05D0 2680 0028 2681 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 2681 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 2681 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 2681 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 2681 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L, ON and () +05D0 2680 0028 0061 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 0061 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0061 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0061 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, ON, L, L and () +05D0 2680 0028 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# R, ON, L, R and () +05D0 2680 0028 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 2680 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 2680 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 2680 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 2680 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 2680 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0061 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 2680 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, ON, R, ON and () +05D0 2680 0028 05D1 2681 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 2681;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 2681;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 2681;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, R, L and () +05D0 2680 0028 05D1 0061 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 2680 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 2680 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0061;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R, R and () +05D0 2680 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 05D2;0;0;0 1 1 1 0 1;0 3 2 1 4 5 +0028 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON, ON and () +05D0 0028 0061 2680 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, L, ON, L and () +05D0 0028 0061 2680 0062 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +05D0 0028 0061 2680 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 2680 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 0061 2680 0062 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 05D0 0061 2680 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 2680 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# R, L, ON, R and () +05D0 0028 0061 2680 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0061 2680 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 2680 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 2680 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 2680 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 0029 2680 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0061 2680 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 2680 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 2680 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 0029 2680 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, L, R, ON and () +05D0 0028 0061 05D1 2680 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 2680;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 2680;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, L, R, L and () +05D0 0028 0061 05D1 0062 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0062;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0062;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# R, L, R, R and () +05D0 0028 0061 05D1 0029 05D2;0;0;1 0 0 1 0 1;0 1 2 3 4 5 +05D0 0028 0061 05D1 0029 05D2;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 05D2;0;0;0 1 0 1 0 1;0 1 2 3 4 5 +0028 05D0 0061 05D1 0029 05D2;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, R, ON, ON and () +05D0 0028 05D1 2680 0029 2681;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, ON, L and () +05D0 0028 05D1 2680 0061 0029;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, ON, R and () +05D0 0028 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L, ON and () +05D0 0028 05D1 0061 2680 0029;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 2680;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, L, L and () +05D0 0028 05D1 0061 0029 0062;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# R, R, L, R and () +05D0 0028 05D1 0061 05D2 0029;0;0;1 0 1 0 1 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 05D2 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 05D2;0;0;1 0 1 0 0 1;0 1 2 3 4 5 +05D0 0028 05D1 0061 0029 05D2;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ()() +0028 0029 0028 0029;0;0;0 0 0 0;0 1 2 3 +0028 0029 0028 0029;1;1;1 1 1 1;3 2 1 0 + +# ON and ()() +2680 0028 0029 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# L and ()() +0061 0028 0029 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 0029 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R and ()() +05D0 0028 0029 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON and ()() +2680 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L and ()() +2680 0028 0061 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0028 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 0028 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0061 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0028 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 0028 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 0061 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0028 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 2680 0028 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 0028 2680 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 0028 2680 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 0028 0029 2680 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R and ()() +2680 0028 05D0 0029 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 0028 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 0028 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 0028 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 0028 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 2680 0028 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 0028 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 0028 2680 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0028 2680 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0028 0029 2680 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON and ()() +0061 2680 0028 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 0028 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0028 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 0028 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0028 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 0028 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0028 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 0028 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0028 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 0028 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 0028 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0028 0061 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 0028 0061 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# L, L and ()() +0061 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 0028 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0028 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0028 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# L, R and ()() +0061 0028 05D0 0029 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 0028 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 0028 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, ON and ()() +05D0 2680 0028 0029 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0028 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0028 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0028 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0028 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0028 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0028 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0028 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0028 05D0 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0028 05D0 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L and ()() +05D0 0028 0061 0029 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0028 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 0028 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R and ()() +05D0 0028 05D1 0029 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0028 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON and ()() +2680 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L and ()() +2680 0028 2681 0061 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0028 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0028 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0028 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0028 2680 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R and ()() +2680 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0028 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 0028 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0028 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 0028 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0028 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0028 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0028 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 0028 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0028 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0028 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0028 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0028 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0028 2680 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON and ()() +2680 0028 0061 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L and ()() +2680 0028 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, L, R and ()() +2680 0028 0061 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 0028 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 0028 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0028 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 0028 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 0028 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0028 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 0028 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 0028 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0028 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0028 2680 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, ON and ()() +2680 0028 05D0 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L and ()() +2680 0028 05D0 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0028 2680 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R and ()() +2680 0028 05D0 0029 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0029 0028 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON and ()() +0061 2680 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L and ()() +0061 2680 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0028 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 0029 2680 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 0028 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 2680 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 0028 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 0028 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 0028 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0028 0061 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 0028 0061 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 0028 0061 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R and ()() +0061 2680 0028 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0028 0029 2680 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0028 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 0028 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0028 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 0028 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 2680 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0028 2680 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0028 0029 2680 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 2680 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 0028 2680 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 0028 0029 2680 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 2680 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0028 0061 2680 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 0061 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0028 0061 0029 2680 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON and ()() +0061 0028 0062 2680 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 2680 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 0029 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 2680 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 0029 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0028 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 0062 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0028 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 0062 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 0029 0062 2680 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 0028 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# L, L, L and ()() +0061 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 0063 0029;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 0029 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, L, R and ()() +0061 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0028 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 0029 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 05D0 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 0029 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0028 0062 0029 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# L, R, ON and ()() +0061 0028 05D0 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0028 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0028 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0028 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0028 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 05D0 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 05D0 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0028 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0028 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0028 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0028 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 05D0 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 05D0 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 05D0 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 05D0 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 05D0 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 05D0 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, L and ()() +0061 0028 05D0 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, R, R and ()() +0061 0028 05D0 0029 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0029 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0029 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON and ()() +05D0 2680 0028 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 05D0 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L and ()() +05D0 2680 0028 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0028 0029 2680 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0028 0029 2680 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0028 0029 2680 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 05D0 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 05D0 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0028 05D0 0029 2680 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 05D0 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R and ()() +05D0 2680 0028 05D1 0029 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 0029 2680 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0028 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0028 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 0028 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 0028 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 0028 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 0028 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 0028 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 0028 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON and ()() +05D0 0028 0061 2680 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0028 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0028 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0028 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0028 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0028 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0028 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 05D0 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 05D0 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L and ()() +05D0 0028 0061 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0029 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0029 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, L, R and ()() +05D0 0028 0061 05D1 0029 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, ON and ()() +05D0 0028 05D1 2680 0029 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0028 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0029 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0028 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0028 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0029 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0028 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0029 0028 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0028 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0028 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 0028 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0029 05D0 0028 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L and ()() +05D0 0028 05D1 0061 0029 0028 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0061 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0029 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0029 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R and ()() +05D0 0028 05D1 0029 05D2 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 05D2 0029;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0029 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, ON and ()() +2680 0028 2681 0029 2682 0028 2683 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 0028 2683 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0028 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 0028 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, ON, L and ()() +2680 0028 2681 0029 2682 0061 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0028 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0028 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, ON, R and ()() +2680 0028 2681 0029 2682 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, ON and ()() +2680 0028 2681 0061 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 2682 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 2682 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 0028 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 0028 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 2682 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 0028 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 0028 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 2682 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 0028 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 0028 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 2682 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 0028 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 0028 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, L and ()() +2680 0028 2681 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 2681 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 2681 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0029 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0029 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0029 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0029 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, L, R and ()() +2680 0028 2681 0061 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 05D0 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, ON and ()() +2680 0028 2681 05D0 2682 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 2682 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 2682 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 2682 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 2682 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, L and ()() +2680 0028 2681 05D0 0061 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0061 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0061 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0061 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0061 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, R, R and ()() +2680 0028 2681 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 2681 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 2681 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0029 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0029 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0029 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0029 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, ON and ()() +2680 0028 0061 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 2682 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 0028 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 0028 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 0028 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 0028 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 2682 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 0028 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 0028 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 0028 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 0028 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 0028 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 0028 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, L and ()() +2680 0028 0061 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0062 0029 0028 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 2681 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 2681 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 0062 0028 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +2680 0028 0029 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 0028 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 0028 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 2681 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 2681 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 0029 2681 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +2680 0028 0029 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0062 0029 0028 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 2681 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 2681 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 0062 0028 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 2680 0029 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 0028 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 0028 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 2681 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 2681 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 0029 2681 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 2680 0029 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 0062 0028 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0029 2680 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 0028 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 0028 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 2681 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 2681 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 0029 2681 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0029 2680 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0029 0028 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, ON, R and ()() +2680 0028 0061 2681 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L, ON and ()() +2680 0028 0061 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 2681 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 0028 2681 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 0028 0029 2681;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 0062 2681 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 0062 0029 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 0062 2681 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 0062 0029 2681;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 0061 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 2681 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 0028 2681 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 0028 0029 2681;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 0062 2681 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 0062 0029 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 0062 2681 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 0062 0029 2681;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0029 2680 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 0062 2681 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 0062 0029 2681;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# ON, L, L, L and ()() +2680 0028 0061 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 0028 0063 0029;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0061 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 0028 0029 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0061 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 0062 0029 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0061 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 0028 0063 0029;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0061 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 0028 0029 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0061 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 0062 0029 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 0062 0029 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# ON, L, L, R and ()() +2680 0028 0061 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 05D0 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 0028 05D0 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 0028 0029 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 0062 0029 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 0062 0029 05D0;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 0061 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 05D0 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 0028 05D0 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 0028 0029 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 0062 0029 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 0062 0029 05D0;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0029 2680 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 0062 0029 05D0;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# ON, L, R, ON and ()() +2680 0028 0061 05D0 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, R, L and ()() +2680 0028 0061 05D0 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0062 0029 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0062 0029 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, R, R and ()() +2680 0028 0061 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0061 0029 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0061 0029 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0029 0061 05D0 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0029 0061 05D0 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 0028 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0061 0029 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0061 0029 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0029 0061 05D0 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0029 0061 05D0 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 0028 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 2680 0061 05D0 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 2680 0061 05D0 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 0028 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, ON and ()() +2680 0028 05D0 2681 0029 2682 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 2682 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, L and ()() +2680 0028 05D0 2681 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0061 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0061 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0061 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, ON, R and ()() +2680 0028 05D0 2681 05D1 0029 0028 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 05D1 0028 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +2680 0028 0029 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0029 2681 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +2680 0028 0029 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0029 0028 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 05D1 0028 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 2680 0029 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0029 2681 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 2680 0029 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 05D1 0028 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 2680 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0029 2681 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0029 2680 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0029 0028 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, ON and ()() +2680 0028 05D0 0061 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, L and ()() +2680 0028 05D0 0061 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 05D0 0029 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 05D0 0029 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0029 05D0 0061 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0029 05D0 0028 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 05D0 0029 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 05D0 0029 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0029 05D0 0061 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0029 05D0 0028 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 2680 05D0 0061 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 2680 05D0 0028 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, R, L, R and ()() +2680 0028 05D0 0061 05D1 0029 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0028 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0029 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0028 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0028 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 2680 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, ON and ()() +2680 0028 05D0 0029 05D1 2681 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0028 2681 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0028 0029 2681;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 05D1 2681 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 05D1 0029 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 05D1 2681 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 05D1 0029 2681;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0029 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 2681 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 2681 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 0029 2681;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 05D1 2681 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 05D1 0029 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 05D1 2681 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 05D1 0029 2681;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0029 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 05D1 2681 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 05D1 0029 2681;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0029 2680 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, L and ()() +2680 0028 05D0 0029 05D1 0061 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0028 0061 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0028 0029 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 05D1 0029 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 05D1 0029 0061;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0061 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 0061 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 0029 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 05D1 0029 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 05D1 0029 0061;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 05D1 0029 0061;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0029 2680 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, R, R and ()() +2680 0028 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 05D0 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 05D0 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 05D0 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 05D0 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, ON and ()() +0061 2680 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 2682 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0028 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0028 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0028 2682 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0028 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, L and ()() +0061 2680 0028 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0062 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0062 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0062 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0062 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 2681 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 2681 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 2681 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 2681 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 0029 2681 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0028 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, ON, R and ()() +0061 2680 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 05D0 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0028 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0028 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, L, ON and ()() +0061 2680 0028 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 2681 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 2681 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0028 2681 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0028 0029 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 2681 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 0028 2681 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 0028 0029 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 2681 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 2681 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0028 2681 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0028 0029 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 2681 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 0028 2681 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 0028 0029 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 2681 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 0028 2681 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 0028 0029 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 2681 0029 0028 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 2681 0028 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0028 2681 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0028 0029 2681;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 2681 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 0028 2681 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 0028 0029 2681;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 0062 2681 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 0062 0029 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 2681 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 0028 2681 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 0028 0029 2681;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 0062 2681 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 0062 0029 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 0062 2681 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 0062 0029 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 2681 0028 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 0028 2681 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 0028 0029 2681;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 0062 0029 2681;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 0061 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 0062 2681 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 0062 0029 2681;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 0028 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 0062 2681 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0029 0028 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 0062 0029 2681;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, L, L and ()() +0061 2680 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0063 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0063 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0063 0028 0029;1;1;1 2 2 2 1 2 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0028 0063 0029;1;1;1 2 2 2 1 1 2 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0028 0029 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 0028 0063 0029;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 2680 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 0028 0029 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 2680 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 0028 0063 0029;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 0029 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 0028 0029 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 0029 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 0028 0063 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 0028 0029 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 0062 0029 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0028 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 0062 0029 0063;1;1;1 1 1 2 2 2 1 2;7 6 3 4 5 2 1 0 + +# L, ON, L, R and ()() +0061 2680 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 05D0 0029 0028 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 05D0 0029 0028 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 05D0 0029 0028 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 05D0 0028 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0028 05D0 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0028 0029 05D0;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 05D0 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 0028 05D0 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 0028 0029 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 0062 05D0 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 0062 0029 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 05D0 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 0028 05D0 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 0028 0029 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 0062 05D0 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 0062 0029 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 0062 05D0 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 0062 0029 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 05D0 0028 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 0028 05D0 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 0028 0029 05D0;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 0061 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 0062 0029 05D0;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 0028 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 0062 05D0 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0029 0028 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 0062 0029 05D0;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, R, ON and ()() +0061 2680 0028 05D0 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 2681 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, R, L and ()() +0061 2680 0028 05D0 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0062 0029 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0062 0029 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0062 0029 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, R, R and ()() +0061 2680 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 2680 0028 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 2680 0028 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 2680 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 2680 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0029 2680 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0029 2680 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 2680 0029 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 2680 0029 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0029 2680 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0029 2680 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 0061 2680 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 0061 2680 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 2680 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON, ON and ()() +0061 0028 0062 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 2681 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0028 2681 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0028 0029 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0028 2681 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0028 0029 2681;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 2680 0029 2681;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0028 2681 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0028 0029 2681;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 2680 0029 2681;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 2680 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0028 2681 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0028 0029 2681;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 2680 0029 2681;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 2680 0029 2681;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 2680 0029 2681;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 + +# L, L, ON, L and ()() +0061 0028 0062 2680 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0063 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0063 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0063 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 0029 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0063 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0029 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0063 0028 0029;1;1;1 2 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0061 0029 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0028 0063 0029;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0028 0029 0063;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 2680 0063 0029;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 2680 0029 0063;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 0029 2680 0063;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 2680 0063 0029;1;1;1 2 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0061 0029 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 2680 0029 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 0029 2680 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 2680 0063 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 2680 0029 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 0029 2680 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 + +# L, L, ON, R and ()() +0061 0028 0062 2680 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 05D0 0029 0028 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 05D0 0028 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0028 05D0 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0028 0029 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 2680 05D0 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 2680 0029 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0029 2680 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 05D0 0028 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0028 05D0 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0028 0029 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 2680 05D0 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 2680 0029 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0029 2680 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 2680 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 0029 2680 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 0029 0062 2680 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 05D0 0028 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0028 05D0 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0028 0029 05D0;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 2680 05D0 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 2680 0029 05D0;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 0029 2680 05D0;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 2680 05D0 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 2680 0029 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 0029 2680 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 2680 05D0 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 2680 0029 05D0;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 0061 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 0029 2680 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 + +# L, L, L, ON and ()() +0061 0028 0062 0029 0063 2680 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 2680 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 0028 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 0028 2680 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 0028 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 0028 0029 2680;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0063 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0063 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 0063 2680 0029;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 0063 0029 2680;1;1;1 2 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# L, L, L, L and ()() +0061 0028 0062 0029 0063 0028 0064 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 0028 0064 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 0028 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 0028 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 0063 0029 0064;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# L, L, L, R and ()() +0061 0028 0062 0029 0063 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0063 05D0 0029;1;1;2 2 2 2 1 2 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0063 05D0 0029;1;1;2 2 2 2 1 2 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 0063 05D0 0029;1;1;1 2 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 0063 0029 05D0;1;1;1 2 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# L, L, R, ON and ()() +0061 0028 0062 05D0 2680 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 2680 0029 0028 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 2680 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 2680 0028 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 0028 2680 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 0028 0029 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 2680 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 2680 0028 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0028 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 0028 2680 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0028 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 0028 0029 2680;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 05D0 2680 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 05D0 0029 2680;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 2680 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 2680 0028 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 0028 2680 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 0028 0029 2680;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 05D0 2680 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 05D0 0029 2680;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0028 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 05D0 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 05D0 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 2680 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 2680 0028 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0028 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 0028 2680 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0028 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 0028 0029 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 05D0 2680 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 05D0 0029 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 05D0 2680 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 05D0 0029 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 05D0 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 05D0 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, R, L and ()() +0061 0028 0062 05D0 0063 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0063 0029 0028 0029;1;1;2 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0063 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 0063 0028 0029;1;1;2 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 0028 0063 0029;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 0028 0029 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0063 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 0063 0028 0029;1;1;2 2 2 2 1 2 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0028 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 0028 0063 0029;1;1;2 2 2 2 1 1 2 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0028 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 0028 0029 0063;1;1;2 2 2 2 1 1 1 2;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 05D0 0063 0029;1;1;2 2 2 2 1 1 2 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 05D0 0029 0063;1;1;2 2 2 2 1 1 1 2;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0063 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 0063 0028 0029;1;1;2 2 2 2 1 2 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 0028 0063 0029;1;1;2 2 2 2 1 1 2 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 0028 0029 0063;1;1;2 2 2 2 1 1 1 2;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 05D0 0063 0029;1;1;2 2 2 2 1 1 2 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 05D0 0029 0063;1;1;2 2 2 2 1 1 1 2;7 6 5 4 0 1 2 3 +0061 0028 0029 0028 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 05D0 0063 0029;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 05D0 0029 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0063 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 0063 0028 0029;1;1;1 2 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0028 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 0028 0063 0029;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0028 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 0028 0029 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 05D0 0063 0029;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 05D0 0029 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 05D0 0063 0029;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 05D0 0029 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 05D0 0063 0029;1;1;1 1 2 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 05D0 0029 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, L, R, R and ()() +0061 0028 0062 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 05D1 0028 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 0028 05D1 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 0028 0029 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0062 0029 05D0 0028 05D1 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0062 0029 05D0 0028 0029 05D1;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0028 05D0 0029 05D1;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0029 0062 05D0 0028 05D1 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0029 0062 05D0 0028 0029 05D1;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 0028 05D0 0029 05D1;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 0062 05D0 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0029 0062 05D0 0028 05D1 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0029 0062 05D0 0028 0029 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 0028 05D0 0029 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 0062 05D0 0029 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 0062 05D0 0029 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, ON and ()() +0061 0028 05D0 2680 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, L and ()() +0061 0028 05D0 2680 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0062 0029 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0062 0029 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, ON, R and ()() +0061 0028 05D0 2680 05D1 0029 0028 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 2680 05D1 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 05D1 0028 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 0028 0029 05D0 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0029 2680 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0061 0028 0029 0028 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0029 0028 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 2680 05D1 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 05D1 0028 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0061 0029 05D0 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0029 2680 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0061 0029 0028 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 05D1 0028 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 0061 05D0 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0029 2680 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0029 0061 0028 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0029 0028 0061 05D0 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, ON and ()() +0061 0028 05D0 0062 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 2680 0029 0028 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 2680 0028 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 0028 2680 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 0028 0029 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 2680 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 0028 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 0028 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 2680 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 2680 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 0028 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 0028 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 2680 0029 0028 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 2680 0028 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 0028 2680 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 0028 0029 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 2680 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 0028 2680 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 0028 0029 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 2680 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 2680 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 0028 2680 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 0028 0029 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 2680 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 2680 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 0028 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 0028 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, L and ()() +0061 0028 05D0 0062 0029 0063 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 0063 0028 0029;1;1;2 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 0028 0063 0029;1;1;2 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 0028 0029 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 0028 0063 0029;1;1;2 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0061 0028 05D0 0029 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 0028 0029 0063;1;1;2 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0061 0028 05D0 0029 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 0028 0063 0029;1;1;2 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0061 0028 0029 05D0 0062 0028 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 0028 0029 0063;1;1;2 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0061 0028 0029 05D0 0028 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0063 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 0063 0028 0029;1;1;1 2 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 0028 0063 0029;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 0028 0029 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 0028 0063 0029;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 05D0 0029 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 0028 0029 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 05D0 0029 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 0028 0063 0029;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 0029 05D0 0062 0028 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 0028 0029 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 0029 05D0 0028 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 0028 0063 0029;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 0061 05D0 0062 0028 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 0028 0029 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 0061 05D0 0028 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# L, R, L, R and ()() +0061 0028 05D0 0062 05D1 0029 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 05D1 0029 0028 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 05D1 0028 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 0028 05D1 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 0028 0029 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 05D1 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 0028 05D1 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 0028 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 05D1 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 0028 05D1 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 0028 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 0028 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0028 05D0 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0029 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 05D1 0029 0028 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 05D1 0028 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 0028 05D1 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 0028 0029 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 05D1 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 0028 05D1 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 0028 0029 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 05D1 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 0028 05D1 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 0028 0029 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0028 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0028 05D0 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 05D1 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 0028 05D1 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 0028 0029 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 0062 05D1 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 0062 0029 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 0062 05D1 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 0028 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 0028 05D0 0062 0029 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 0061 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 0061 05D0 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, ON and ()() +0061 0028 05D0 0029 05D1 2680 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 2680 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0028 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 0028 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0028 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 0028 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 05D1 2680 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 05D1 0029 2680;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0029 05D0 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 2680 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 2680 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 0028 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 0028 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 05D1 2680 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 05D1 0029 2680;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 0029 05D0 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 05D1 2680 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 05D1 0029 2680;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0029 0061 05D0 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, L and ()() +0061 0028 05D0 0029 05D1 0062 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0028 0062 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0028 0029 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 05D1 0062 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 05D1 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 05D1 0029 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0028 05D1 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 05D1 0029 0062;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0029 05D0 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0062 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 0062 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 0029 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 05D1 0062 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 05D1 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 05D1 0029 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0028 05D1 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 05D1 0029 0062;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 0029 05D0 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0028 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 05D1 0029 0062;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0029 0061 05D0 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, R, R and ()() +0061 0028 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 05D0 0029 05D1 0028 05D2 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 05D0 0029 05D1 0028 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 05D0 0029 05D1 0028 05D2 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 05D0 0029 05D1 0028 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, ON and ()() +05D0 2680 0028 2681 0029 2682 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 2682 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, L and ()() +05D0 2680 0028 2681 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0061 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, ON, R and ()() +05D0 2680 0028 2681 05D1 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 05D1 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 05D1 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 05D1 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0029 2681 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, ON and ()() +05D0 2680 0028 0061 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, L and ()() +05D0 2680 0028 0061 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 2680 0028 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 2680 0028 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 2680 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 2680 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0029 2680 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0029 2680 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 2680 0029 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 2680 0029 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0029 2680 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0029 2680 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 05D0 2680 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 05D0 2680 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, ON, L, R and ()() +05D0 2680 0028 0061 05D1 0029 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0029 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0029 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, ON and ()() +05D0 2680 0028 05D1 2681 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 2681 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 2681 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 0029 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 2681 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 2681 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 0029 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 2681 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 2681 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 0029 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 2681 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 2681 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 0029 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 2681 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 2681 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 0029 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0029 0028 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 2681 0028 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 2681 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 0029 2681;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 2681 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 2681 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 0029 2681;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 05D1 2681 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 05D1 0029 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 2681 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 2681 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 0029 2681;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 05D1 2681 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 05D1 0029 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 05D1 2681 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 05D1 0029 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 2681 0028 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 2681 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 0029 2681;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 05D1 2681 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 05D1 0029 2681;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 05D1 2681 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 0028 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 05D1 0029 2681;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 0028 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, L and ()() +05D0 2680 0028 05D1 0061 0029 0028 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0029 0028 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0029 0028 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0061 0028 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 0061 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 0029 0061;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0061 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 0061 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 0029 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 05D1 0061 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 05D1 0029 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0061 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 0061 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 0029 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 05D1 0061 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 05D1 0029 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 05D1 0061 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 05D1 0029 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0061 0028 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 0061 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 0029 0061;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 05D1 0029 0061;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 05D1 0061 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 0028 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 05D1 0029 0061;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 0028 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, R, R and ()() +05D0 2680 0028 05D1 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 05D2 0028 0029;0;0;0 1 1 1 0 1 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 05D2 0029;0;0;0 1 1 1 0 0 1 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 0029 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 05D2 0029;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 2680 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 0029 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 2680 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 05D2 0029;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0029 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 0029 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0029 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 2680 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 2680 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 2680 05D1 0029 05D2;0;0;0 0 0 1 1 1 0 1;0 1 2 5 4 3 6 7 +0028 0029 0028 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, ON and ()() +05D0 0028 0061 2680 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, L and ()() +05D0 0028 0061 2680 0062 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0062 0029 0028 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 2680 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 0062 0028 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 0028 0029 0061 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 0028 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 0028 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 2680 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 2680 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 0029 2680 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0028 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +05D0 0028 0029 0028 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0062 0029 0028 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 2680 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 0062 0028 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 05D0 0029 0061 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 0028 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 0028 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 2680 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 2680 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 0029 2680 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0028 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 05D0 0029 0028 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 0062 0028 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0029 05D0 0061 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 0028 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 0028 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 2680 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 2680 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 0029 2680 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0028 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0029 05D0 0028 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0029 0028 05D0 0061 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, ON, R and ()() +05D0 0028 0061 2680 05D1 0029 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0029 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, L, ON and ()() +05D0 0028 0061 0029 0062 2680 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 2680 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 0028 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 0028 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 0028 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 0028 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 0062 2680 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 0062 0029 2680;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 0061 0029 0062 2680 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 2680 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0028 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 0028 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0028 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 0028 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 0062 2680 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 0062 0029 2680;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0029 05D0 0061 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 0062 2680 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 0062 0029 2680;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# R, L, L, L and ()() +05D0 0028 0061 0029 0062 0028 0063 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 0028 0063 0029;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0061 0029 0062 0028 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 0028 0029 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0061 0029 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 0062 0029 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0061 0029 0062 0028 0063 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 0028 0063 0029;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0061 0029 0062 0028 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 0028 0029 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0061 0029 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 0062 0029 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 0062 0029 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# R, L, L, R and ()() +05D0 0028 0061 0029 0062 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 05D1 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 0028 05D1 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 0028 0029 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0062 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 0062 05D1 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 0062 0029 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0062 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 0062 0029 05D1;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 0061 0029 0062 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 05D1 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 0028 05D1 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 0028 0029 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0062 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 0062 05D1 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 0062 0029 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0062 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 0062 0029 05D1;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0029 05D0 0061 0028 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 0062 0029 05D1;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# R, L, R, ON and ()() +05D0 0028 0061 05D1 2680 0029 0028 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 2680 0028 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 2680 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 0029 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 2680 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 2680 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 2680 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 0028 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 0028 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0029 0028 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 2680 0028 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 2680 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 0029 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 2680 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 2680 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 0029 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 2680 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 2680 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 2680 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 0028 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 0029 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 0028 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 2680 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 2680 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 0028 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 0028 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, R, L and ()() +05D0 0028 0061 05D1 0062 0029 0028 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0062 0029 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0062 0028 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 0062 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 0029 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0062 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 0062 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0062 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 0062 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0029 0028 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0062 0029 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0062 0028 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 0062 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 0029 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0062 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 0062 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 0029 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0062 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 0062 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 0029 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0062 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 0062 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 0029 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 05D1 0062 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 05D1 0029 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 05D1 0062 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 05D1 0029 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, R, R and ()() +05D0 0028 0061 05D1 0029 05D2 0028 0029;0;0;1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 05D2 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 05D2 0029;0;0;1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 0029 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 05D2 0029;0;0;1 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +05D0 0028 0061 0029 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 0029 05D2;0;0;1 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +05D0 0028 0061 0029 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 05D2 0029;0;0;1 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +05D0 0028 0029 0061 05D1 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 0029 05D2;0;0;1 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +05D0 0028 0029 0061 05D1 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 0028 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 0061 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 05D2 0028 0029;0;0;0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 05D2 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 05D2 0029;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 0029 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 05D2 0029;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0061 0029 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 0029 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0061 0029 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 05D2 0029;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0029 0061 05D1 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 0029 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0029 0061 05D1 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 0028 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 0061 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 05D2 0029;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 05D0 0061 05D1 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 0029 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 05D0 0061 05D1 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 0028 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 0061 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0028 05D0 0061 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0028 05D0 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, ON and ()() +05D0 0028 05D1 2680 0029 2681 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 2681 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 0029 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 2681 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 0029 2681;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 0029 2681;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 2681 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 0029 2681;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 0029 2681;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 2681 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 0029 2681;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680 0029 2681;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 2680 0029 2681;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 2680 0029 2681;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, L and ()() +05D0 0028 05D1 2680 0061 0029 0028 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0061 0028 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 0061 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 0029 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 0061 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 0029 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0029 2680 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0061 0028 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 0061 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 0029 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 0061 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 0029 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0029 2680 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029 2680 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0029 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0061 0028 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 0061 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 0029 0061;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680 0061 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680 0029 0061;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0029 2680 0061;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 2680 0061 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 2680 0029 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0029 2680 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 2680 0061 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 2680 0029 0061;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0029 2680 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0029 05D0 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, ON, R and ()() +05D0 0028 05D1 2680 05D2 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 2680 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 2680 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 05D2 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 0029 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 05D2 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0029 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 05D2 0028 0029;0;0;0 1 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 05D0 0029 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 05D2 0029;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 0029 05D2;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680 05D2 0029;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680 0029 05D2;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0029 2680 05D2;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 2680 05D2 0029;0;0;0 1 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 05D0 0029 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 2680 0029 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0029 2680 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 2680 05D2 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 2680 0029 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0029 2680 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, ON and ()() +05D0 0028 05D1 0061 2680 0029 0028 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 2680 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 2680 0028 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 2680 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 2680 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 0028 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 0029 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 0028 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 2680 0028 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 2680 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 2680 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 0028 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 0029 2680;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 0028 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0061 2680 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0061 0029 2680;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 2680 0028 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 2680 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 2680 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 0028 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 0029 2680;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 0028 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0061 2680 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0061 0029 2680;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0061 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0061 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 2680 0028 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 2680 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 2680 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 0028 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 0029 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 0028 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0061 2680 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0061 0029 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0061 2680 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0061 0029 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0061 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0061 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, L and ()() +05D0 0028 05D1 0061 0029 0062 0028 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 0062 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 0029 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 0062 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 0029 0062;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 05D1 0029 0028 0061 0029 0062;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 0062 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 0029 0062;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0029 05D1 0028 0061 0029 0062;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0061 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 0062 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 0029 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0029 05D1 0028 0061 0029 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0061 0029 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0061 0029 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, R, L, R and ()() +05D0 0028 05D1 0061 05D2 0029 0028 0029;0;0;1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 05D2 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 05D2 0028 0029;0;0;1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 05D2 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 05D2 0029;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 0029 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 05D2 0028 0029;0;0;1 1 1 1 0 1 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 05D2 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 05D2 0029;0;0;1 1 1 1 0 0 1 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 0029 05D2;0;0;1 1 1 1 0 0 0 1;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0061 05D2 0029;0;0;1 1 1 1 0 0 1 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0061 0029 05D2;0;0;1 1 1 1 0 0 0 1;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 05D2 0028 0029;0;0;1 1 1 1 0 1 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 05D2 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 05D2 0029;0;0;1 1 1 1 0 0 1 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 0029 05D2;0;0;1 1 1 1 0 0 0 1;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0061 05D2 0029;0;0;1 1 1 1 0 0 1 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0061 0029 05D2;0;0;1 1 1 1 0 0 0 1;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0061 05D2 0029;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0028 05D1 0061 0029 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 05D2 0028 0029;0;0;0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 05D2 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 05D2 0029;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 0029 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0061 05D2 0029;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0061 0029 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0061 05D2 0029;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0028 05D1 0061 0029 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0061 05D2 0029;0;0;0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0028 05D1 0061 0029 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, ON and ()() +05D0 0028 05D1 0029 05D2 2680 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 2680 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 2680 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 0028 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 0029 2680;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 0028 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0029 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 05D2 2680 0029;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 05D2 0029 2680;0;0;0 1 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 05D0 0029 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, L and ()() +05D0 0028 05D1 0029 05D2 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 0061 0029;0;0;1 1 1 1 0 1 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0029 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 0061 0029;0;0;1 1 1 1 0 1 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 05D2 0061 0029;0;0;0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 05D2 0029 0061;0;0;0 1 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 05D0 0029 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, R, R and ()() +05D0 0028 05D1 0029 05D2 0028 05D3 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 05D3 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 05D2 0029 05D3;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# (()) +0028 0028 0029 0029;0;0;0 0 0 0;0 1 2 3 +0028 0028 0029 0029;1;1;1 1 1 1;3 2 1 0 + +# ON and (()) +2680 0028 0028 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0028 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0028 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0028 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 2680 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 2680 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 0029 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0029 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 0029 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0029 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# L and (()) +0061 0028 0028 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0028 0029 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 0028 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0028 0029 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0028 0061 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0061 0029 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0028 0029 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0029 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0028 0029 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0029 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R and (()) +05D0 0028 0028 0029 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0028 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0028 0029 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0028 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 05D0 0029 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0028 05D0 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 0029 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0028 0029 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 0029 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0028 0029 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON and (()) +2680 0028 2681 0028 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0028 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 2681 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 2681 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 0029 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0029 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 0029 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0029 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 2681 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 2681 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0029 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0029 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0029 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0029 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 0029 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0029 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 0029 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0029 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L and (()) +2680 0028 0061 0028 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0028 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0028 0061 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0028 0029 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0028 0029 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0061 0028 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0028 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0061 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0028 0029 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0028 0029 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 2680 0061 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 2680 0029 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 2680 0029 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 0029 2680 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 0029 2680 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 0029 0029 2680 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R and (()) +2680 0028 05D0 0028 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0028 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0028 05D0 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0028 0029 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0028 0029 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0028 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0028 05D0 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0028 0029 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0028 0029 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 2680 05D0 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 2680 0029 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 2680 0029 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 0029 2680 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 0029 2680 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 0029 0029 2680 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON and (()) +0061 2680 0028 0028 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0028 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0028 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0028 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 2680 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 2680 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 0029 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0029 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 0029 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0029 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0028 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0028 0029 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 2680 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 2680 0029 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 0029 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0029 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 0029 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0029 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 2680 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 2680 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0061 0029 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 0029 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0061 0029 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 0029 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0029 0061 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 0029 0061 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# L, L and (()) +0061 0028 0062 0028 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0028 0029 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0028 0062 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0062 0029 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0028 0029 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0029 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0028 0029 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0029 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 0028 0062 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0062 0029 0029;1;1;1 2 2 2 2 1;5 1 2 3 4 0 +0028 0061 0028 0029 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0029 0062 0029;1;1;1 2 2 2 2 1;5 1 2 3 4 0 +0028 0061 0028 0029 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0029 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0028 0061 0029 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 0029 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 0028 0061 0029 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 0029 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 0028 0029 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# L, R and (()) +0061 0028 05D0 0028 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0028 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0028 05D0 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0028 0029 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0028 0029 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0028 0029 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0028 05D0 0029 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0028 0029 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0028 0029 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0061 05D0 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 0061 0029 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0061 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 0061 0029 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 0029 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 0029 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 0029 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, ON and (()) +05D0 2680 0028 0028 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0028 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0028 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 2680 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0029 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0029 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0028 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 2680 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0029 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0029 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0029 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 2680 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0029 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 0029 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0029 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0029 05D0 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0029 05D0 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L and (()) +05D0 0028 0061 0028 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0028 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0028 0029 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0028 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0028 0029 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 05D0 0029 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0029 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 0029 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0029 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R and (()) +05D0 0028 05D1 0028 0029 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0029;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 0028 05D1 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0029;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 0028 0029 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0029 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0028 0029 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0028 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 0029 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0028 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0028 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON and (()) +2680 0028 2681 0028 2682 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 2682 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L and (()) +2680 0028 2681 0061 0028 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0028 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 0029 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 0029 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0029 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 2680 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R and (()) +2680 0028 2681 05D0 0028 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0028 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 05D0 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 05D0 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0029 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0029 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 05D0 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0029 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0029 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0029 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0029 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 2680 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON and (()) +2680 0028 0061 2681 0028 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0028 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 2681 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 2681 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0028 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 2681 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 2681 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 2681 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L and (()) +2680 0028 0061 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0062 0029 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0062 0029 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, L, R and (()) +2680 0028 0061 05D0 0028 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0028 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 05D0 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 05D0 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0029 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0028 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 05D0 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 05D0 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0029 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 05D0 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0029 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 2680 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, ON and (()) +2680 0028 05D0 2681 0028 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0028 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0028 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L and (()) +2680 0028 05D0 0061 0028 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0028 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0028 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R and (()) +2680 0028 05D0 0028 05D1 0029 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 0029 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON and (()) +0061 2680 0028 2681 0028 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 2681 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L and (()) +0061 2680 0028 0062 0028 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0029 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0029 2680 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 0029 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0062 0029 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 0062 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0062 0029 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 0062 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 2680 0062 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 0029 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0061 2680 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0062 0029 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0061 0029 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 0061 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R and (()) +0061 2680 0028 05D0 0028 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0028 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 05D0 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0028 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 05D0 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 05D0 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0029 0029 2680 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0028 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 05D0 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 05D0 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 2680 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0029 2680 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0029 0029 2680 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 05D0 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 2680 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 0029 2680 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 0029 0029 2680 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 2680 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 0061 2680 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 0061 0029 2680 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON and (()) +0061 0028 0062 2680 0028 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 0062 2680 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 0029 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 0028 0062 2680 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 0029 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 2680 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0029 2680;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0062 2680 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0062 0029 2680;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, L, L and (()) +0061 0028 0062 0028 0063 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 0029 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0063 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0029 0063;1;1;1 2 2 2 2 1 2;6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0062 0029 0063;1;1;1 2 2 2 2 1 2;6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0062 0029 0063;1;1;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# L, L, R and (()) +0061 0028 0062 05D0 0028 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0028 0029 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 05D0 0029 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0028 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 05D0 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 0062 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 05D0 0029 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 0029 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 0028 0062 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 05D0 0029 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 05D0 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0029 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0062 05D0 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0029 0062 0029 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 0029 0062 0029 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, ON and (()) +0061 0028 05D0 2680 0028 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0028 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 2680 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0029 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0029 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 2680 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 05D0 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 05D0 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0028 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 2680 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0029 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0029 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 2680 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 05D0 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 05D0 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 2680 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 05D0 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 05D0 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 05D0 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 05D0 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, L and (()) +0061 0028 05D0 0062 0028 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0028 0029 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0062 0029 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0029 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0029 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0062 0029 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0028 0029 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0062 0029 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0029 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0029 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0062 0029 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0062 0029 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, R, R and (()) +0061 0028 05D0 0028 05D1 0029 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 0028 05D1 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 0028 0029 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0029 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0029 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 0028 05D1 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 0028 0029 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0029 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0029 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 0061 0029 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 0029 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON and (()) +05D0 2680 0028 2681 0028 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0028 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L and (()) +05D0 2680 0028 0061 0028 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0028 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0028 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0029 2680 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0028 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0029 2680 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0029 2680 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0029 2680 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R and (()) +05D0 2680 0028 05D1 0028 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0029 2680 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0028 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 2680 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 2680 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 0029 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 0029 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0028 05D0 2680 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0029 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0028 0029 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON and (()) +05D0 0028 0061 2680 0028 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0028 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 2680 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 2680 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0028 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 2680 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 2680 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 2680 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L and (()) +05D0 0028 0061 0028 0062 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0062 0029 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0062 0029 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, L, R and (()) +05D0 0028 0061 05D1 0028 0029 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0028 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 05D1 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 05D1 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0028 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 05D1 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 05D1 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 05D1 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, ON and (()) +05D0 0028 05D1 2680 0028 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 0028 0029 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 05D1 0029 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 0029 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 05D1 2680 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 05D1 0029 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0029 2680;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 05D1 0029 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 0029 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0029 2680;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 0029 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L and (()) +05D0 0028 05D1 0061 0028 0029 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0028 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0028 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0028 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 0028 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 05D1 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 05D1 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 05D1 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 05D1 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0029 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 0029 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0029 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0029 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R and (()) +05D0 0028 05D1 0028 05D2 0029 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0029 05D2;0;0;0 1 1 1 1 0 1;0 4 3 2 1 5 6 +0028 05D0 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0029 05D2;0;0;0 1 1 1 1 0 1;0 4 3 2 1 5 6 +0028 05D0 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0029 05D2;0;0;0 0 1 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, ON and (()) +2680 0028 2681 0028 2682 0029 2683 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 0029 2683 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 0029 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, ON, L and (()) +2680 0028 2681 0028 2682 0061 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, ON, R and (()) +2680 0028 2681 0028 2682 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 05D0 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 0029 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 0029 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, ON and (()) +2680 0028 2681 0061 2682 0028 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 2682 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 2682 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 2682 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 0029 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 0029 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 2682 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 2682 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 0029 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 0029 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 2682 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 2682 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 0029 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 0029 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 2682 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 2682 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 0029 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 0029 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, L and (()) +2680 0028 2681 0061 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 0062 0029 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 2681 0061 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 0029 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 2681 0061 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, L, R and (()) +2680 0028 2681 0061 05D0 0028 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 05D0 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 05D0 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 0029 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 0029 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 05D0 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 0029 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 0029 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 05D0 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 0029 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 0029 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 05D0 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 0029 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 0029 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, ON and (()) +2680 0028 2681 05D0 2682 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 2682 0028 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 2682 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 2682 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 2682 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 2682 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 2682 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 2682 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 2682 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 2682 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, L and (()) +2680 0028 2681 05D0 0061 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0061 0028 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0061 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0061 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0061 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0061 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, R, R and (()) +2680 0028 2681 05D0 0028 05D1 0029 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 2681 05D0 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 2681 05D0 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, ON and (()) +2680 0028 0061 2681 0028 2682 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 2682 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 0029 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 0029 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 0029 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 0029 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 0029 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 0029 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 2682 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 2682 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 0029 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 0029 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 0029 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 0029 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 0029 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 0029 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 0029 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 0029 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, L and (()) +2680 0028 0061 2681 0062 0028 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0062 0028 0029 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 2681 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 0062 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 2681 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 0029 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 2681 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 0062 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 0028 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 0029 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 0028 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 2681 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 0028 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 2681 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 0062 0029 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +2680 0028 0028 0061 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 2681 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 2681 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +2680 0028 0028 0029 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 0028 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0062 0028 0029 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 2681 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 0062 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 2681 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 0029 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 2681 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 0062 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 0028 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 0029 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 0028 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 2681 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 0028 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 2681 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 0062 0029 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 2680 0028 0061 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 2681 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 2681 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 2680 0028 0029 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 0062 0029 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 2680 0061 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 2681 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 2681 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0028 2680 0029 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0028 0029 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, ON, R and (()) +2680 0028 0061 2681 05D0 0028 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 05D0 0028 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 05D0 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 0029 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 0029 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 05D0 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 0029 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 0029 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 05D0 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 0029 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 0029 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0028 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 05D0 0028 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 05D0 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 0029 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 0029 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 05D0 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 0029 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 0029 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 05D0 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 0029 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 0029 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 05D0 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 0029 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 0029 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L, ON and (()) +2680 0028 0061 0028 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 2681 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 0028 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 0029 2681 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 0029 0029 2681;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0062 2681 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0062 0029 2681;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0028 0061 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0062 2681 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0062 0029 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 2681 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 0028 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 0029 2681 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 0029 0029 2681;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0062 2681 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0062 0029 2681;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0028 0061 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0062 2681 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0062 0029 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0062 2681 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0062 0029 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L, L and (()) +2680 0028 0061 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 0029 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 0029 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +2680 0028 0028 0061 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 0029 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 0029 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 2680 0028 0061 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, L, L, R and (()) +2680 0028 0061 0028 0062 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 05D0 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0062 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 0029 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 0029 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0062 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0062 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0028 0061 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0062 0029 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 05D0 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 0029 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 0029 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0062 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0062 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0028 0061 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0062 0029 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0062 0029 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, R, ON and (()) +2680 0028 0061 05D0 2681 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 2681 0028 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 2681 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 2681 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 2681 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 2681 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 2681 0028 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 2681 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 2681 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 2681 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 2681 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 2681 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, R, L and (()) +2680 0028 0061 05D0 0062 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0062 0028 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0062 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 0062 0029 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0062 0028 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0062 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 0062 0029 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 0062 0029 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, R, R and (()) +2680 0028 0061 05D0 0028 05D1 0029 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0061 05D0 0028 05D1 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0061 05D0 0028 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 05D1 0029 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0061 05D0 0028 05D1 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0061 05D0 0028 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, ON and (()) +2680 0028 05D0 2681 0028 2682 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 2682 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 2682 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 2682 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, L and (()) +2680 0028 05D0 2681 0061 0028 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0061 0028 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0061 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0061 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0061 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0028 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0061 0028 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0061 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0061 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0061 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0061 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, ON, R and (()) +2680 0028 05D0 2681 05D1 0028 0029 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 2681 05D1 0028 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 05D1 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 2681 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 2681 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 05D1 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 0028 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 0028 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 0028 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 05D1 0029 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +2680 0028 0028 05D0 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +2680 0028 0028 0029 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0028 0029 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 2681 05D1 0028 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 05D1 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 2681 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 2681 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 05D1 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 0028 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 0028 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 0028 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 05D1 0029 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 2680 0028 05D0 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 2680 0028 0029 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 05D1 0029 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 2680 05D0 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0028 2680 0029 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0028 0029 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, ON and (()) +2680 0028 05D0 0061 2681 0028 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 2681 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 2681 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 2681 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 2681 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 2681 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0028 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 2681 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 2681 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 2681 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 2681 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 2681 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 2681 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, L and (()) +2680 0028 05D0 0061 0028 0062 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 0062 0029 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 05D0 0061 0028 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 0029 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 05D0 0061 0028 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0062 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 0062 0029 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 05D0 0061 0028 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 0029 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 05D0 0061 0028 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, R, L, R and (()) +2680 0028 05D0 0061 05D1 0028 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 05D1 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 05D1 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 05D1 0029 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0028 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 05D1 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 05D1 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 05D1 0029 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 05D1 0029 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, ON and (()) +2680 0028 05D0 0028 05D1 2681 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 0028 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 2681 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0029 2681;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 2681 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0029 2681;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 2681 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0029 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 2681 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 0028 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 2681 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0029 2681;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 2681 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0029 2681;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 2681 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0029 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 2681 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0029 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, L and (()) +2680 0028 05D0 0028 05D1 0061 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 05D1 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 05D1 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0029 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0061 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 05D1 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 05D1 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0029 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0029 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, R, R and (()) +2680 0028 05D0 0028 05D1 0029 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, ON and (()) +0061 2680 0028 2681 0028 2682 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 2682 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0029 2682 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0029 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 2681 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 2681 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, L and (()) +0061 2680 0028 2681 0062 0028 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0062 0028 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0062 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0062 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0062 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0062 0029 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0028 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0029 0062 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0028 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0029 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 2681 0062 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0028 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 2681 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 2681 0062 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 2681 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 2681 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 2681 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, ON, R and (()) +0061 2680 0028 2681 05D0 0028 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 05D0 0028 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 05D0 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 05D0 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 05D0 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 05D0 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0029 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0029 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, L, ON and (()) +0061 2680 0028 0062 2681 0028 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 2681 0028 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 2681 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 2681 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0028 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 2681 0028 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 2681 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 2681 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 2681 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0028 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 2681 0028 0029 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 2681 0029 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0029 2681 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0029 0029 2681;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 2681 0029 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0028 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 0029 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 0029 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0062 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0062 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 2681 0029 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 0029 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 0029 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0062 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0062 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0062 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0062 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0028 0061 2680 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 2681 0029 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 0029 2681 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 0029 0029 2681;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0062 2681 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0062 0029 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0062 2681 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0062 0029 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0062 2681 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0062 0029 2681;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, L, L and (()) +0061 2680 0028 0062 0028 0063 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0063 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0063 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0063 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0063 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0063 0029 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0062 0028 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0029 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0062 0028 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0029 0029 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 0029 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 0029 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0062 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 0029 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 0029 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0062 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0062 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0028 0061 2680 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 0029 0063 0029;1;1;1 1 2 2 2 1 2 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 0029 0029 0063;1;1;1 1 2 2 2 1 1 2;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0062 0029 0063;1;1;1 1 1 2 2 2 1 2;7 6 3 4 5 2 1 0 + +# L, ON, L, R and (()) +0061 2680 0028 0062 05D0 0028 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 05D0 0028 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 0028 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 05D0 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 0028 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 05D0 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0028 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 05D0 0028 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 0028 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 05D0 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 0028 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 05D0 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 05D0 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0028 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 05D0 0028 0029 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 05D0 0029 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0029 05D0 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0029 0029 05D0;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 05D0 0029 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0062 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 0029 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 0029 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0062 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0062 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 05D0 0029 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 0029 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 0029 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0062 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0062 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0062 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0062 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0028 0061 2680 0062 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 05D0 0029 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 0029 05D0 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 0029 0029 05D0;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0062 0029 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0062 0029 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0062 05D0 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0062 0029 05D0;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, R, ON and (()) +0061 2680 0028 05D0 2681 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 2681 0028 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 2681 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 2681 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 0029 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 0029 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 2681 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 0029 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 0029 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 2681 0028 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 2681 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 2681 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 0029 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 0029 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 2681 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 0029 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 0029 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 2681 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 0029 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 0029 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 2681 0028 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 2681 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 2681 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 0029 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 0029 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 2681 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 0029 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 0029 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 2681 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 0029 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 0029 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 2681 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 2681 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, R, L and (()) +0061 2680 0028 05D0 0062 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0062 0028 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0062 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0062 0028 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0062 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0062 0028 0029 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0062 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 0062 0029 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 0029 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 0029 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 0062 0029 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 0029 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 0029 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 0062 0029 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 0029 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 0029 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0062 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, R, R and (()) +0061 2680 0028 05D0 0028 05D1 0029 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 2680 0028 05D0 0028 05D1 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 2680 0028 05D0 0028 0029 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 0029 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 0029 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 0029 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 05D1 0029 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 2680 05D0 0028 05D1 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 2680 05D0 0028 0029 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 0029 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 0029 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 0029 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 0029 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 0029 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 05D1 0029 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 2680 05D0 0028 05D1 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 2680 05D0 0028 0029 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 0029 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 0029 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 0029 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 0029 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 0029 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON, ON and (()) +0061 0028 0062 2680 0028 2681 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 2681 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 2680 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 2680 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 2680 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 0029 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0029 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 2680 0029 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0029 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 2680 0029 2681;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 2680 0029 2681;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 2680 0029 2681;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON, L and (()) +0061 0028 0062 2680 0063 0028 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0063 0028 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0063 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0063 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0063 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0063 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0063 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0063 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0063 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0063 0029 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 0062 2680 0029 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0029 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 0062 2680 0029 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0029 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 2680 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 0062 0029 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 2680 0029 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0029 2680 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 2680 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 0029 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 2680 0029 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 0029 2680 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 2680 0063 0029;1;1;1 1 2 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0028 0061 0029 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 2680 0029 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 0029 2680 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, L, ON, R and (()) +0061 0028 0062 2680 05D0 0028 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 05D0 0028 0029 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 0028 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 05D0 0029 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 0028 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 05D0 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 0028 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 05D0 0029 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 2680 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 05D0 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 2680 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 2680 05D0 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 0029 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 2680 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0029 2680 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 0062 2680 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 05D0 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 2680 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 2680 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0029 2680 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 0029 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 2680 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0029 2680 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 0028 0062 2680 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 05D0 0029 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 2680 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0029 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 2680 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0029 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 2680 05D0 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 2680 0029 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0029 2680 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 2680 05D0 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 2680 0029 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 0029 2680 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 2680 05D0 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 2680 0029 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 0029 2680 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, L, ON and (()) +0061 0028 0062 0028 0063 2680 0029 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 2680 0029 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0063 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0063 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 2680 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 0029 2680;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 + +# L, L, L, L and (()) +0061 0028 0062 0028 0063 0029 0064 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 0064 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0063 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 0029 0064;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 + +# L, L, L, R and (()) +0061 0028 0062 0028 0063 05D0 0029 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 05D0 0029 0029;1;1;2 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 0063 0029 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 05D0 0029;1;1;2 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0061 0028 0062 0028 0063 0029 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0063 05D0 0029;1;1;2 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0061 0028 0062 0028 0029 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0063 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 05D0 0029;1;1;2 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 + +# L, L, R, ON and (()) +0061 0028 0062 05D0 2680 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 2680 0028 0029 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0028 2680 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 2680 0029 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0028 0029 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 0029 2680 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0028 0029 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 0029 0029 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 2680 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 2680 0029 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 0029 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 0029 2680 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 0029 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 0029 0029 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 0029 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 05D0 2680 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 0029 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 05D0 0029 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 2680 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 2680 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 0029 2680 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 0029 0029 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 05D0 2680 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 05D0 0029 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 05D0 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 05D0 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 2680 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 2680 0029 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 0029 2680 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 0029 0029 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 05D0 2680 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 05D0 0029 2680;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 05D0 2680 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 05D0 0029 2680;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 05D0 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 05D0 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, R, L and (()) +0061 0028 0062 05D0 0063 0028 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0063 0028 0029 0029;1;1;2 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0028 0063 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 0063 0029 0029;1;1;2 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0028 0029 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 0029 0063 0029;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0028 0029 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 0029 0029 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 0063 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 0063 0029 0029;1;1;2 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 0029 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 0029 0063 0029;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 0029 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 0029 0029 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 0029 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 05D0 0063 0029;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 0029 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 05D0 0029 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0063 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 0063 0029 0029;1;1;2 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 0029 0063 0029;1;1;2 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 0029 0029 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 05D0 0063 0029;1;1;2 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 05D0 0029 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 05D0 0063 0029;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 05D0 0029 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0063 0029 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 0063 0029 0029;1;1;1 2 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 0029 0063 0029;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 0029 0029 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 05D0 0063 0029;1;1;1 2 2 2 2 1 2 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 05D0 0029 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 05D0 0063 0029;1;1;1 2 2 2 2 1 2 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 05D0 0029 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 05D0 0063 0029;1;1;1 1 2 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 05D0 0029 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, L, R, R and (()) +0061 0028 0062 05D0 0028 05D1 0029 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0062 05D0 0028 05D1 0029 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0028 0029 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0062 05D0 0028 0029 05D1 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0028 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 0029 0029 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 0029 05D1 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 0029 0029 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 05D0 0029 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 0029 05D1 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 0029 0029 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 05D0 0029 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 05D0 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 0029 05D1 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 0029 0029 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 05D0 0029 05D1;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 05D0 0029 05D1;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0028 0061 0029 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 05D0 0029 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, ON and (()) +0061 0028 05D0 2680 0028 2681 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 2681 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 0029 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 0029 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 0029 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 0029 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 0029 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 0029 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 2681 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 2681 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 0029 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 0029 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 0029 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 0029 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 0029 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 0029 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, L and (()) +0061 0028 05D0 2680 0062 0028 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0062 0028 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0062 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0062 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0062 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0028 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0062 0028 0029 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0062 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 0062 0029 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 0029 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 0029 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0062 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 0062 0029 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 0029 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 0029 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0062 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 0062 0029 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 0029 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 0029 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0062 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, ON, R and (()) +0061 0028 05D0 2680 05D1 0028 0029 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 2680 05D1 0028 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 05D1 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 2680 0028 05D1 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 2680 0028 0029 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 0029 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 05D1 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 0028 2680 05D1 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 0028 2680 0029 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 0029 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 0028 0029 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 05D1 0029 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 0028 0028 05D0 2680 05D1 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 0029 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 0029 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0061 0028 0028 0029 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0028 0029 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 2680 05D1 0028 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 05D1 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 2680 0028 05D1 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 2680 0028 0029 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 0029 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 05D1 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 0028 2680 05D1 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 0028 2680 0029 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 0029 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 0028 0029 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 05D1 0029 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0061 0028 05D0 2680 05D1 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 0029 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 0029 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0061 0028 0029 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 05D1 0029 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 0061 05D0 2680 05D1 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0028 0061 0029 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0028 0029 0061 05D0 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, ON and (()) +0061 0028 05D0 0062 2680 0028 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 2680 0028 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 2680 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 2680 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 0029 2680 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 0029 0029 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 2680 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 2680 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 0029 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 0029 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 2680 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 2680 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 0029 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 0029 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0028 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 2680 0028 0029 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 2680 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 2680 0029 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 0029 2680 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 0029 0029 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 2680 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 2680 0029 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 0029 2680 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 0029 0029 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 2680 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 2680 0029 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 0029 2680 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 0029 0029 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 2680 0029 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 2680 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 0029 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 0029 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, L and (()) +0061 0028 05D0 0062 0028 0063 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 0063 0029 0029;1;1;2 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0061 0028 05D0 0062 0028 0029 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 0029 0063 0029;1;1;2 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0061 0028 05D0 0062 0028 0029 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 0029 0029 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 0029 0063 0029;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 0029 0029 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 0029 0063 0029;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 0029 0029 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0063 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 0063 0029 0029;1;1;1 2 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0061 05D0 0062 0028 0029 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 0029 0063 0029;1;1;1 2 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0061 05D0 0062 0028 0029 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 0029 0029 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 0029 0063 0029;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 0029 0029 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 0029 0063 0029;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 0029 0029 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 0029 0063 0029;1;1;1 1 2 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 0029 0029 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# L, R, L, R and (()) +0061 0028 05D0 0062 05D1 0028 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 05D1 0028 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 05D1 0029 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 0029 05D1 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 0029 0029 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 05D1 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 0029 05D1 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 0029 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 05D1 0029 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 05D1 0029 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 0029 05D1 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 0029 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0028 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 05D1 0028 0029 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 05D1 0029 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 0029 05D1 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 0029 0029 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 05D1 0029 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 0029 05D1 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 0029 0029 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 05D1 0029 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 05D1 0029 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 0029 05D1 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 0029 0029 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 05D1 0029 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 05D1 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 0029 05D1 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 0029 0029 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0062 05D1 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0062 0029 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0062 05D1 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0062 0029 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, ON and (()) +0061 0028 05D0 0028 05D1 2680 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 0028 05D1 2680 0029 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 05D1 0029 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 05D1 0029 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 0029 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 0029 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 2680 0029 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 0028 05D1 2680 0029 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 05D1 0029 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 05D1 0029 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 0029 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 0029 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, L and (()) +0061 0028 05D0 0028 05D1 0062 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 05D1 0062 0029 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0062 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 05D1 0029 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0029 0062;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 05D1 0029 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0062 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 0029 05D1 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0029 0062;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 0029 05D1 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 05D1 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 05D1 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0062 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 05D1 0062 0029 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0062 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 05D1 0029 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0029 0062;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 05D1 0029 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0062 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 0029 05D1 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0029 0062;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 0029 05D1 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 05D1 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 05D1 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, R, R and (()) +0061 0028 05D0 0028 05D1 0029 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 0028 05D1 0029 05D2 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 05D1 0029 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 0029 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 0028 05D1 0029 05D2 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 05D1 0029 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 0029 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, ON and (()) +05D0 2680 0028 2681 0028 2682 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 2682 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 2682 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, L and (()) +05D0 2680 0028 2681 0061 0028 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0061 0028 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0061 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0061 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 2681 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 2681 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0061 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 2681 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 2681 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0061 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, ON, R and (()) +05D0 2680 0028 2681 05D1 0028 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 05D1 0028 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 05D1 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 05D1 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 05D1 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 05D1 0029 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 0028 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 05D1 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 0028 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 05D1 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 0028 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 05D1 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 2680 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, ON and (()) +05D0 2680 0028 0061 2681 0028 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 2681 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 2681 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 2681 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 2681 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0028 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 2681 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 2681 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 2681 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 2681 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 2681 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0028 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 2681 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 2681 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 2681 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 2681 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 2681 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 2681 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 2681 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 0029 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 0029 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, L and (()) +05D0 2680 0028 0061 0028 0062 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 0062 0029 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 2680 0028 0061 0028 0029 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 0029 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 2680 0028 0061 0028 0029 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0062 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 0062 0029 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 2680 0061 0028 0029 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 0029 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 2680 0061 0028 0029 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0062 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 0062 0029 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 2680 0061 0028 0029 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 0029 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 2680 0061 0028 0029 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, ON, L, R and (()) +05D0 2680 0028 0061 05D1 0028 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 05D1 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 05D1 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0028 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 05D1 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 05D1 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0028 0029 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 05D1 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 05D1 0029 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 05D1 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 05D1 0029 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 05D1 0029 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 05D1 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 0029 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 0029 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, ON and (()) +05D0 2680 0028 05D1 2681 0028 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 2681 0028 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 2681 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 05D1 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 2681 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0028 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0028 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0028 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0028 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 2681 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 05D1 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 2681 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0028 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0028 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 2681 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 2680 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 2680 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 0029 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0028 0029 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 2681 0028 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 2681 0029 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 2681 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0029 2681;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 2681 0029 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 0028 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 2681 0029 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 2680 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 0029 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 0029 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 2681 0029 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 2681 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0029 2681;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 2681 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0029 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 2681 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0029 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 2681 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 0029 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0029 2681;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 0029 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, L and (()) +05D0 2680 0028 05D1 0061 0028 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 0061 0028 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0061 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 0028 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 0028 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 05D1 0028 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0061 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 05D1 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 05D1 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0028 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 0061 0028 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0061 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 0028 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 0028 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 05D1 0028 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0061 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 05D1 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 05D1 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0061 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 05D1 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 05D1 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 2680 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 2680 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 0029 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0028 0029 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0061 0028 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0061 0029 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0061 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0029 0061;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0061 0029 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 05D1 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 05D1 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0061 0029 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 05D1 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 05D1 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 0029 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 0029 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0061 0029 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0061 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0029 0061;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0029 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0029 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0061 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 0029 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0029 0061;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 0029 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, R, R and (()) +05D0 2680 0028 05D1 0028 05D2 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 05D2 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 05D2 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 05D2 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 05D2 0029 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 05D1 0028 05D2 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 05D1 0028 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0029 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 2680 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 0028 0029 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 05D2 0029;0;0;0 0 1 1 1 0 1 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0029 05D2;0;0;0 0 1 1 1 0 0 1;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0029 05D2;0;0;0 0 0 1 1 1 0 1;0 1 2 5 4 3 6 7 +0028 0028 0029 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, ON and (()) +05D0 0028 0061 2680 0028 2681 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 2681 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 2681 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 2681 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 0029 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 0029 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 0029 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 0029 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, L and (()) +05D0 0028 0061 2680 0062 0028 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0062 0028 0029 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 2680 0028 0062 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 0062 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 2680 0028 0029 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 0029 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 2680 0028 0029 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0062 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 0062 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 2680 0029 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 0029 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 2680 0029 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 2680 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 0029 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0062 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 0062 0029 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 2680 0029 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 0028 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0062 0028 0029 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 2680 0028 0062 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 0062 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 2680 0028 0029 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 0029 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 2680 0028 0029 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0062 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 0062 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 2680 0029 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 0029 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 2680 0029 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 2680 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 0029 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0062 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 0062 0029 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 2680 0029 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0062 0029 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 0062 0029 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 2680 0029 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, ON, R and (()) +05D0 0028 0061 2680 05D1 0028 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 05D1 0028 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 05D1 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 05D1 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 05D1 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0028 0029 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 05D1 0028 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 05D1 0029 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 05D1 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 05D1 0029 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 05D1 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 0029 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 0029 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 05D1 0029 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 05D1 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 05D1 0029 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 05D1 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 0029 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 0029 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, L, ON and (()) +05D0 0028 0061 0028 0062 2680 0029 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 2680 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 0062 0029 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 0029 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0062 0029 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 0029 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0062 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0062 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0028 0061 0029 0062 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0062 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 2680 0029 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 2680 0029 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 0062 0029 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 0029 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0062 0029 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 0029 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0062 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0062 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0028 0061 0029 0062 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0062 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, L, L and (()) +05D0 0028 0061 0028 0062 0029 0063 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 0029 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 0062 0029 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 0029 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +05D0 0028 0028 0061 0029 0062 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 0029 0063 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 0029 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 0062 0029 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 0029 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 05D0 0028 0061 0029 0062 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, L, L, R and (()) +05D0 0028 0061 0028 0062 05D1 0029 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 05D1 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0062 0029 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 0029 05D1 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0062 0029 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 0029 0029 05D1;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0062 05D1 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0062 0029 05D1;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0028 0061 0029 0062 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0062 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 05D1 0029 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 05D1 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 0029 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 0029 05D1 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0062 0029 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 0029 0029 05D1;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0062 05D1 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0062 0029 05D1;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0028 0061 0029 0062 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0062 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, R, ON and (()) +05D0 0028 0061 05D1 2680 0028 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 2680 0028 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 2680 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 2680 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 2680 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 0029 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0029 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 0029 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 2680 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 2680 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 0029 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 0029 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 2680 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 2680 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 0029 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 0029 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0028 0029 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 2680 0028 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 2680 0029 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 2680 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 2680 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 0029 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0029 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 0029 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 2680 0029 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 2680 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 2680 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 0029 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0029 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 0029 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 2680 0029 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 2680 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 2680 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 0029 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0029 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 0029 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 2680 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 2680 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 0029 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 0029 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, R, L and (()) +05D0 0028 0061 05D1 0062 0028 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0062 0028 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0062 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0062 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0029 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0062 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0062 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0062 0029 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 0062 0029 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0062 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0028 0029 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0062 0028 0029 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0062 0029 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0062 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0029 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0062 0029 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 0062 0029 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0062 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 0029 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0029 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 0029 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0062 0029 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 0062 0029 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0062 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0029 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0062 0029 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 0062 0029 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0062 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 0029 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0029 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0062 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0029 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0062 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0029 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, R, R and (()) +05D0 0028 0061 05D1 0028 05D2 0029 0029;0;0;1 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +05D0 0028 0061 05D1 0028 05D2 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 05D2 0029;0;0;1 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +05D0 0028 0061 05D1 0028 0029 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0029 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 0029 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 05D2 0029;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 0029 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0029 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 0029 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 05D2 0029;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 0029 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0029 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 0029 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 05D2 0029 0029;0;0;0 1 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 05D0 0061 05D1 0028 05D2 0029 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 05D2 0029;0;0;0 1 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 05D0 0061 05D1 0028 0029 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0029 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 0029 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 05D2 0029;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 0029 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0029 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 0029 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 05D2 0029;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 0029 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0029 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 0029 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 05D2 0029;0;0;0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 0029 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0029 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 0029 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, ON and (()) +05D0 0028 05D1 2680 0028 2681 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 2681 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 2680 0028 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 2680 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 0029 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 2680 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 0029 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 0029 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 2680 0029 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 2680 0029 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0029 2681;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0029 2681;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0029 2681;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, L and (()) +05D0 0028 05D1 2680 0061 0028 0029 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 0061 0028 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0061 0029 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 0028 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0061 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 0028 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 2680 0028 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0061 0029 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 2680 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0061 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 2680 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 2680 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0061 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0029 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 0029 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0029 2680 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 0028 0029 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0061 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 2680 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 2680 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 2680 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0029 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 0029 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029 2680 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 05D1 0029 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 0029 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029 2680 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 0029 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0061 0029 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 2680 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 2680 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 2680 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0061 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0029 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0029 2680 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0061 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0029 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0029 2680 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0061 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0029 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0029 2680 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, ON, R and (()) +05D0 0028 05D1 2680 05D2 0028 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 05D2 0028 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 05D2 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 05D2 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 05D2 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 05D2 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 05D2 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 05D2 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 05D2 0029 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 2680 05D2 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 2680 0029 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 2680 0029 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 0029 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0029 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0029 2680 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 0029 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0029 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0029 2680 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 05D2 0029;0;0;0 0 1 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0028 05D0 0029 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0029 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0029 2680 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, ON and (()) +05D0 0028 05D1 0061 2680 0028 0029 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 2680 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 2680 0029 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 2680 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 2680 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 0029 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 0029 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 0029 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 2680 0029 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0061 2680 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 2680 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0061 0029 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0029 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0061 0029 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 2680 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0029 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 2680 0029 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 2680 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 2680 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 0029 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0029 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 0029 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 2680 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0029 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0029 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0029 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 2680 0029 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 2680 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 2680 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 0029 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0029 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 0029 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 2680 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0029 2680;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 2680 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0029 2680;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, L and (()) +05D0 0028 05D1 0061 0028 0062 0029 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 0062 0029 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 05D1 0061 0028 0029 0062 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 0029 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 05D1 0061 0028 0029 0029 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 0029 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0062 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0029 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0029 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0062 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0029 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0029 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0062 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 0029 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0029 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 0029 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0029 0062;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0029 0062;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0029 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, R, L, R and (()) +05D0 0028 05D1 0061 05D2 0028 0029 0029;0;0;1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 05D2 0028 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 05D2 0029 0029;0;0;1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 05D2 0029 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 05D2 0029;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 0029 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 0029 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0028 0029 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 05D2 0029 0029;0;0;1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0061 05D2 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 05D2 0029;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0061 0029 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0029 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0061 0029 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 05D2 0029;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0029 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 05D2 0029 0029;0;0;1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 05D2 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 05D2 0029;0;0;1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 0029 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0029 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 0029 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 05D2 0029;0;0;1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0029 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0029 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0029 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 05D2 0029;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0029 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 05D2 0029 0029;0;0;0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 05D2 0029 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 05D2 0029;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 0029 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0029 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 0029 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 05D2 0029;0;0;0 1 1 1 1 0 1 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0029 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 05D2 0029;0;0;0 1 1 1 1 0 1 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0029 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 05D2 0029;0;0;0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0029 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, ON and (()) +05D0 0028 05D1 0028 05D2 2680 0029 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 2680 0029 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 05D2 0029 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 0029 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 0029 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 2680 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 0029 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0029 2680;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 0029 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, L and (()) +05D0 0028 05D1 0028 05D2 0061 0029 0029;0;0;1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0028 05D2 0061 0029 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0061 0029;0;0;1 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +05D0 0028 05D1 0028 05D2 0029 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 05D2 0029 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0061 0029;0;0;1 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +05D0 0028 05D1 0028 0029 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 0029 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0061 0029;0;0;1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0029 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 0029 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 0029 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 0029 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, R, R and (()) +05D0 0028 05D1 0028 05D2 0029 05D3 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 05D3 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0029 05D3;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 0029 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ()[] +0028 0029 005B 005D;0;0;0 0 0 0;0 1 2 3 +0028 0029 005B 005D;1;1;1 1 1 1;3 2 1 0 + +# ON and ()[] +2680 0028 0029 005B 005D;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 005B 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 005B 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 005B 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 005B 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 005B 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 005B 2680 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 005B 2680 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 005B 005D 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 005B 005D 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# L and ()[] +0061 0028 0029 005B 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 005B 005D;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 0029 005B 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 005B 005D;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 005B 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 005B 005D;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 005B 0061 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 005B 0061 005D;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 005B 005D 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 005B 005D 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R and ()[] +05D0 0028 0029 005B 005D;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 005B 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 005B 005D;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 005B 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 005B 005D;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 005B 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 005B 05D0 005D;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 005B 05D0 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 005B 005D 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 005B 005D 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON and ()[] +2680 0028 2681 0029 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 005B 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 005B 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 005B 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 005B 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 005B 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 005B 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 005B 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 005B 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 005B 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 005B 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 005B 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 005B 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 005B 2680 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 005B 2680 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L and ()[] +2680 0028 0061 0029 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 005B 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 005B 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 005B 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 005B 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 005B 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 005B 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0061 0029 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 005B 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 005B 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 005B 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 005B 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 005B 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 005B 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 0061 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 005B 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 005B 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 005B 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 2680 005B 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 005B 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 005B 2680 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 005B 2680 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 005B 2680 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 005B 2680 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 005B 005D 2680 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 005B 005D 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R and ()[] +2680 0028 05D0 0029 005B 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 005B 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 005B 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 005B 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 005B 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 005B 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 005B 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 005B 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 005B 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 005B 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 005B 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 005B 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 005B 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 005B 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 2680 005B 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 005B 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 005B 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 005B 2680 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 005B 2680 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 005B 2680 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 005B 2680 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 005B 005D 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 005B 005D 2680 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON and ()[] +0061 2680 0028 0029 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 005B 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 005B 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 005B 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 005B 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 005B 2680 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 005B 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 005B 005D 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 005B 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 005B 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 005B 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 005B 2680 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 005B 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 005B 005D 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 005B 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 005B 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 005B 2680 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 005B 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 005B 005D 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 005B 0061 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 005B 0061 2680 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 005B 0061 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 005B 0061 005D 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# L, L and ()[] +0061 0028 0062 0029 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 005B 005D;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 005B 005D;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 005B 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 005B 0062 005D;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 005B 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 005B 005D 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 0029 0062 005B 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 005B 005D;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 005B 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 005B 0062 005D;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 005B 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 005B 005D 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 005B 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 005B 0062 005D;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 0029 0061 005B 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 005B 005D 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 0029 005B 0061 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 005B 0061 005D 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# L, R and ()[] +0061 0028 05D0 0029 005B 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 005B 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 005B 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 005B 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 005B 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 005B 05D0 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 005B 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 005B 005D 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 005B 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 005B 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 005B 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 005B 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 005B 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 005B 05D0 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 005B 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 005B 005D 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 005B 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 005B 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 005B 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 0061 005B 05D0 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 005B 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 005B 005D 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 005B 0061 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 005B 0061 05D0 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 005B 0061 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 005B 0061 005D 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, ON and ()[] +05D0 2680 0028 0029 005B 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005B 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005B 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 2680 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 005B 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 005D 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 005B 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 005B 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 005B 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 005B 2680 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 005B 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 005B 005D 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 005B 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 005B 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 005B 2680 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 005B 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 005B 005D 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 005B 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 005B 05D0 2680 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 005B 05D0 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 005B 05D0 005D 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 005B 05D0 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L and ()[] +05D0 0028 0061 0029 005B 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 005B 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 005B 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 005B 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 0061 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 005B 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 005B 005D 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 005B 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0061 0029 005B 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 005B 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 005B 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 005B 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 005B 0061 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 005B 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 005B 005D 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 005B 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 0061 005B 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 005B 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 005B 0061 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 005B 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 05D0 005B 005D 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 005B 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 005B 05D0 0061 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 005B 05D0 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 005B 05D0 005D 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 005B 05D0 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R and ()[] +05D0 0028 05D1 0029 005B 005D;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 005D;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 005D 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 005D;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 005B 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 005D;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 005B 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 005B 005D 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 005B 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 005D;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 005B 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 005B 005D 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 005B 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 005B 05D0 005D 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0029 005B 05D0 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON and ()[] +2680 0028 2681 0029 2682 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 005B 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 005B 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L and ()[] +2680 0028 2681 0061 0029 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 005B 005D 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 005B 005D 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 005B 005D 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 005B 2680 005D 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R and ()[] +2680 0028 2681 05D0 0029 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 005B 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 005B 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 005B 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 005B 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 2681 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 005B 2681 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 005B 005D 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 005B 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 005B 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 2681 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 005B 2681 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 005B 005D 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 2681 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 005B 2681 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 005B 005D 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 005B 2680 005D 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON and ()[] +2680 0028 0061 2681 0029 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 005B 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 005B 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 005B 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 005B 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 005B 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 005B 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 005B 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 005B 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 005B 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 005B 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L and ()[] +2680 0028 0061 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 005B 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 005B 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 005B 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 005B 0062 005D;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 0029 0061 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 005B 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 0029 005B 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 0061 005D 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 005B 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 005B 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 005B 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 005B 0062 005D;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0029 0061 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 005B 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0029 005B 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 0061 005D 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 005B 0062 005D;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 005B 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 005B 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 0061 005D 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 0061 005D 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, L, R and ()[] +2680 0028 0061 05D0 0029 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 005B 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 005B 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 005B 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 005B 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 005B 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 005B 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 005B 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 005B 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 005B 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 005B 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 005B 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 005B 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 005B 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 005B 2680 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, ON and ()[] +2680 0028 05D0 2681 0029 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 05D0 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 05D0 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 05D0 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 05D0 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 05D0 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 05D0 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 05D0 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 05D0 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L and ()[] +2680 0028 05D0 0061 0029 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 005B 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 005B 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 005B 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 005B 2680 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R and ()[] +2680 0028 05D0 0029 05D1 005B 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 05D1 005D;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 0029 005B 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 05D1 005D;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 0029 005B 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 05D1 005D;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 005D 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0029 2680 005B 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 005D 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0029 005B 2680 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON and ()[] +0061 2680 0028 2681 0029 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 005B 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 005B 2681 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 005B 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 005B 2681 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 005B 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 2680 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 005B 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 005B 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 2680 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 2680 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L and ()[] +0061 2680 0028 0062 0029 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 005B 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005B 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 0062 005D;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 005B 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005B 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 0062 005D;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005B 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 0062 005D;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 0062 005D;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 005B 005D 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 005D 2680 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 005B 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 005B 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 005B 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 005B 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 005B 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 005B 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 005B 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 2680 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 2680 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 005B 005D 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 005D 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 005B 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 005B 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 005B 0062 005D;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 2680 005B 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 005B 005D 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 005B 2680 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 2680 0062 005D;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 005B 2680 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 2680 005D 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 005B 005D 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 005D 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 005B 0061 2680 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 2680 0062 005D;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 005B 0061 2680 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 2680 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 005B 0061 005D 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 005D 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R and ()[] +0061 2680 0028 05D0 0029 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 005B 005D 2680 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 005B 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 005B 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 005B 05D0 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 005B 005D 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 005B 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 005B 05D0 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 005B 005D 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 2680 05D0 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 005B 2680 005D 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 005B 005D 2680 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 005B 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 005B 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 2680 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 005B 2680 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 005B 005D 2680 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 2680 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 005B 0061 2680 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 0061 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 005B 0061 005D 2680 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON and ()[] +0061 0028 0062 2680 0029 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 005B 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 005B 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 2680 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 005D 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 005B 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 2680 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 005D 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 005B 0062 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 0062 2680 005D;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 005B 0062 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 0062 005D 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 0029 0062 2680 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 005B 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 2680 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 005D 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 0062 2680 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 0062 005D 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 0062 2680 005D;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 0029 0061 005B 0062 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 0062 005D 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# L, L, L and ()[] +0061 0028 0062 0029 0063 005B 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 005B 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 005B 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 0063 005D;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 0063 005D;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 0062 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 0063 005D;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 0029 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 005D 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 0029 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 0062 005D 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 0062 005D 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, L, R and ()[] +0061 0028 0062 05D0 0029 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 005B 005D;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 005B 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 05D0 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 005D 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 005B 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 05D0 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 005D 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 005B 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 0062 05D0 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 005B 0062 005D 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 0029 0062 05D0 005B 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 005B 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 05D0 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 005D 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 0062 05D0 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 005B 0062 005D 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 0062 05D0 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 005B 0062 005D 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# L, R, ON and ()[] +0061 0028 05D0 2680 0029 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005B 2680 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005B 005D 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 005B 2680 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 005B 005D 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 05D0 2680 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 05D0 005D 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 005B 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 005B 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005B 2680 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005B 005D 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 005B 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 005B 2680 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 005B 005D 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 05D0 2680 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 05D0 005D 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 005B 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 005B 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 05D0 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 05D0 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 05D0 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 05D0 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, L and ()[] +0061 0028 05D0 0062 0029 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 005B 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 005B 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005B 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005B 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 005B 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 005B 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 005B 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 05D0 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 005B 05D0 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 005B 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 005B 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005B 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005B 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 005B 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 005B 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 005B 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 05D0 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 005B 05D0 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 005B 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 005B 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 005B 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 05D0 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 005B 05D0 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 05D0 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 005B 0061 05D0 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, R, R and ()[] +0061 0028 05D0 0029 05D1 005B 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 005B 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005B 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005B 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 05D1 005D;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 005B 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 005B 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 0029 005B 05D0 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 005B 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005B 05D1 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005B 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 05D1 005D;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 005B 05D1 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 005B 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 0029 005B 05D0 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 05D1 005D;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 005B 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 005B 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 005D 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0029 0061 005B 05D0 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 005D 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0029 005B 0061 05D0 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON and ()[] +05D0 2680 0028 2681 0029 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 005B 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 005B 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 05D0 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L and ()[] +05D0 2680 0028 0061 0029 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 005B 005D 2680 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 0061 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 005D 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 0061 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 005D 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 0061 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 005D 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 005B 005D 2680 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 005B 005D 2680 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 05D0 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 05D0 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 005B 05D0 005D 2680 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 05D0 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R and ()[] +05D0 2680 0028 05D1 0029 005B 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 005D;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 005D;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 005D;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 005D;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 005D 2680 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 005D 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 2680 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 005B 2680 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 005D 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 005B 005D 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 05D1 005D;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 005B 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 005D 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 005B 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 05D1 005D;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 005B 2680 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 005D 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 005B 2680 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 005D 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 005B 005D 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 05D1 005D;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 005B 05D0 2680 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 005B 05D0 2680 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 005D 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 005B 05D0 005D 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON and ()[] +05D0 0028 0061 2680 0029 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005B 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 005D 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005B 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 2680 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005B 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 005D 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005B 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 2680 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 005D 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005B 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 005D 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005B 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005B 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 2680 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005B 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 005D 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005B 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 2680 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 005D 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005B 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005B 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005B 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 05D0 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 05D0 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L and ()[] +05D0 0028 0061 0029 0062 005B 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 005B 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005B 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005B 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005B 0062 005D;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 0029 0061 005B 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005B 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 0029 005B 0061 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 0061 005D 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005B 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 005B 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 0062 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005B 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005B 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 0062 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005B 0062 005D;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0029 0061 005B 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005B 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0029 005B 0061 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 0061 005D 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005B 0062 005D;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 005B 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005B 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 005B 0061 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 0061 005D 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 005B 05D0 0061 005D 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, L, R and ()[] +05D0 0028 0061 05D1 0029 005B 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005B 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005B 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005B 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005B 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 005B 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 005B 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005B 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005B 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005B 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005B 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 005B 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005B 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005B 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 005B 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 005B 05D0 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 005B 05D0 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, ON and ()[] +05D0 0028 05D1 2680 0029 005B 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 005B 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 005D 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 005B 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 005B 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 005D 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 005B 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 005D;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0029 005B 05D1 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 005B 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 005D 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 005B 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 2680 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 05D1 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 005D 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 05D1 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 2680 005D;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 005B 05D1 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 005D 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0029 05D0 005B 05D1 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L and ()[] +05D0 0028 05D1 0061 0029 005B 005D;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 005B 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 0061 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 005D 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 0061 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 005D 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 0061 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 005B 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0029 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 005B 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 0061 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 005B 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 005D 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 0061 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 005D 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 0061 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 005B 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 005D 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0029 05D0 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R and ()[] +05D0 0028 05D1 0029 05D2 005B 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 005B 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 005D;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 005D;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 05D2 005D;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 005D 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 005D 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 005D 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, ON and ()[] +2680 0028 2681 0029 2682 005B 2683 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 005B 2683 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005B 005D 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 005B 005D 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682 005D 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 2682 005D 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682 005D 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 2682 005D 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682 005D 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 2682 005D 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, ON, L and ()[] +2680 0028 2681 0029 2682 0061 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005B 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005B 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 2682 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 2682 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 2682 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 2682 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 2682 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 2682 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, ON, R and ()[] +2680 0028 2681 0029 2682 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 05D0 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 005B 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 2682 005B 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, ON and ()[] +2680 0028 2681 0061 2682 0029 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 2682 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 2682 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 2682 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 005B 2682 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 005B 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 2682 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 2682 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 005B 2682 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 005B 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 2682 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 2682 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 005B 2682 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 005B 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 2682 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 2682 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 005B 2682 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 005B 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, L and ()[] +2680 0028 2681 0061 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 2681 0029 0061 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 2681 0029 005B 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0029 2681 0061 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0029 2681 005B 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0029 2681 0061 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0029 2681 005B 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, L, R and ()[] +2680 0028 2681 0061 05D0 0029 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 05D0 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 05D0 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 005B 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0029 005B 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 05D0 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 005B 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 0061 005B 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 05D0 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 005B 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 0061 005B 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 05D0 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 005B 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 0061 005B 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, ON and ()[] +2680 0028 2681 05D0 2682 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 2682 0029 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 2682 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 2682 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 2682 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 2682 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 2682 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 2682 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 2682 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 2682 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 2682 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 2682 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 2682 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 2682 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, L and ()[] +2680 0028 2681 05D0 0061 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0061 0029 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0061 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0061 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 05D0 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0061 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 05D0 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0061 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 05D0 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, R, R and ()[] +2680 0028 2681 05D0 0029 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 2681 0029 05D0 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 2681 0029 05D0 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0029 005B 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0029 2681 05D0 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0029 2681 05D0 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 2681 005B 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 2681 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0029 2681 05D0 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0029 2681 05D0 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 2681 005B 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 2681 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 2681 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, ON and ()[] +2680 0028 0061 2681 0029 2682 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 2682 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 005B 2682 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 005B 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 005B 2682 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 005B 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 2681 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 005B 2682 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 005B 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 2681 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 2681 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 2682 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 2682 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 005B 2682 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 005B 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 005B 2682 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 005B 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 2681 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 005B 2682 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 005B 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 2681 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 2681 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 005B 2682 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 005B 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 2681 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 2681 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 2681 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, L and ()[] +2680 0028 0061 2681 0062 0029 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0062 0029 005B 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 2681 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 2681 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 2681 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 005D 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 0062 005B 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +2680 0028 0029 0061 2681 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 005B 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 2681 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 005B 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 2681 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 2681 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 005D 2681 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 005B 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 2681 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +2680 0028 0029 005B 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 2681 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 005D 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 0029 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0062 0029 005B 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 2681 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 2681 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 2681 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 005D 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 0062 005B 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 2680 0029 0061 2681 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 005B 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 2681 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 005B 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 2681 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 2681 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 005D 2681 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 005B 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 2681 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 2680 0029 005B 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 2681 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 005D 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 0062 005B 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0029 2680 0061 2681 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 005B 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 2681 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 005B 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 2681 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 2681 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 005D 2681 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 005B 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 2681 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0029 2680 005B 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 2681 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 005D 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 2681 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0029 005B 2680 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 2681 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 005D 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, ON, R and ()[] +2680 0028 0061 2681 05D0 0029 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 05D0 0029 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 05D0 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 005B 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0029 005B 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 05D0 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 005B 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 2681 005B 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 05D0 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 005B 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 2681 005B 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0029 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 05D0 0029 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 05D0 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 005B 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0029 005B 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 05D0 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 005B 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 2681 005B 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 05D0 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 005B 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 2681 005B 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 05D0 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 005B 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 2681 005B 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L, ON and ()[] +2680 0028 0061 0029 0062 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 2681 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 005B 2681 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 005B 005D 2681;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 0062 2681 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 0062 005D 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 0062 2681 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +2680 0028 0029 0061 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 0062 005D 2681;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 0061 0029 0062 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 2681 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 005B 2681 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 005B 005D 2681;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 0062 2681 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 0062 005D 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 0062 2681 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0029 0061 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 0062 005D 2681;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0029 2680 0061 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 0062 2681 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 0062 005D 2681;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# ON, L, L, L and ()[] +2680 0028 0061 0029 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 005B 0063 005D;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0061 0029 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 005B 005D 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0061 0029 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 0062 005D 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 0062 005D 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 2680 0061 0029 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 005B 0063 005D;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0061 0029 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 005B 005D 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0061 0029 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 0062 005D 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 0062 005D 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 2680 0061 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 0062 005D 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# ON, L, L, R and ()[] +2680 0028 0061 0029 0062 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 05D0 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 005B 05D0 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 0062 005B 005D 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 0062 005D 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 0062 05D0 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 0062 005D 05D0;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 0061 0029 0062 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 05D0 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 005B 05D0 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 0062 005B 005D 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 0062 005D 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 0062 05D0 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 0062 005D 05D0;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0029 2680 0061 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 0062 05D0 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 0062 005D 05D0;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# ON, L, R, ON and ()[] +2680 0028 0061 05D0 2681 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 2681 0029 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 2681 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 2681 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 2681 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 2681 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 2681 0029 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 2681 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 2681 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 2681 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 2681 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 2681 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, R, L and ()[] +2680 0028 0061 05D0 0062 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0062 0029 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0062 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 05D0 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 05D0 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0062 0029 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0062 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 05D0 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 05D0 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 05D0 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, R, R and ()[] +2680 0028 0061 05D0 0029 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 05D1 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0029 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0061 0029 05D0 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0061 0029 05D0 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0029 005B 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0029 0061 05D0 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0029 0061 05D0 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 0061 005B 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 05D1 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0029 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0061 0029 05D0 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0061 0029 05D0 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0029 005B 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0029 0061 05D0 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0029 0061 05D0 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 0061 005B 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 2680 0061 05D0 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 2680 0061 05D0 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 0061 005B 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, ON and ()[] +2680 0028 05D0 2681 0029 2682 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 2682 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 2682 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 2682 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 2682 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 2681 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 2682 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 2682 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 2682 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 2682 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 2682 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 2681 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 2682 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 2681 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 2681 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, L and ()[] +2680 0028 05D0 2681 0061 0029 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0061 0029 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0061 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0061 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 005D 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0061 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 2681 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 005D 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 2681 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 2681 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 005D 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0029 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0061 0029 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0061 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0061 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 005D 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0061 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 2681 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 005D 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 2681 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 2681 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 005D 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0061 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 2681 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 005D 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 2681 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 2681 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 005D 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 2681 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 2681 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 005D 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, ON, R and ()[] +2680 0028 05D0 2681 05D1 0029 005B 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 2681 05D1 0029 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 2681 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 005D 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 05D1 005B 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +2680 0028 0029 05D0 2681 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 2681 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 2681 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 005D 2681 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 2681 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +2680 0028 0029 005B 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 2681 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 005D 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0029 005B 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 2681 05D1 0029 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 2681 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 005D 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 05D1 005B 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 2680 0029 05D0 2681 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 2681 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 2681 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 005D 2681 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 2681 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 2680 0029 005B 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 2681 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 005D 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 05D1 005B 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 2680 05D0 2681 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 2681 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 2681 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 005D 2681 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 2681 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0029 2680 005B 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 2681 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 005D 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 2681 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0029 005B 2680 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 2681 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 005D 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, ON and ()[] +2680 0028 05D0 0061 2681 0029 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 2681 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 2681 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 2681 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 2681 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 0061 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 0061 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 2681 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 0061 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 0061 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 0061 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 0061 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0029 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 2681 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 2681 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 2681 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 2681 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 0061 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 0061 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 2681 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 0061 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 0061 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 0061 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 0061 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 2681 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 0061 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 0061 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 0061 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 0061 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 0061 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 0061 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, L and ()[] +2680 0028 05D0 0061 0029 0062 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 05D0 0029 0061 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 05D0 0029 005B 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0029 05D0 0061 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0029 05D0 005B 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0062 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 05D0 0029 0061 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 05D0 0029 005B 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0029 05D0 0061 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0029 05D0 005B 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 2680 05D0 0061 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 2680 05D0 005B 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, R, L, R and ()[] +2680 0028 05D0 0061 05D1 0029 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 05D1 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 05D1 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0029 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 005B 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0029 005B 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0029 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 05D1 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 05D1 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0029 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 005B 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0029 005B 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 005B 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 2680 005B 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 2680 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 2680 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, ON and ()[] +2680 0028 05D0 0029 05D1 2681 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005B 2681 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005B 005D 2681;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 05D1 2681 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 05D1 005D 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 05D1 2681 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 05D1 005D 2681;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0029 05D0 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 2681 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 2681 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 005D 2681;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 05D1 2681 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 05D1 005D 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 05D1 2681 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 05D1 005D 2681;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0029 05D0 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 05D1 2681 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 05D1 005D 2681;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0029 2680 05D0 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, L and ()[] +2680 0028 05D0 0029 05D1 0061 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005B 0061 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005B 005D 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 05D1 005D 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 05D1 0061 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0029 05D0 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 05D1 005D 0061;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0029 05D0 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0061 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 0061 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 005D 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 05D1 005D 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 05D1 0061 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0029 05D0 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 05D1 005D 0061;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0029 05D0 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 05D1 0061 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 2680 05D0 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 05D1 005D 0061;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0029 2680 05D0 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, R, R and ()[] +2680 0028 05D0 0029 05D1 005B 05D2 005D;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 05D0 0029 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005B 005D 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 05D0 0029 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 05D1 005D 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0029 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 05D1 005D 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +2680 0028 0029 05D0 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 05D2 005D;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 05D0 0029 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 005D 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 05D0 0029 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 05D1 005D 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0029 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 05D1 005D 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 2680 0029 05D0 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 05D1 005D 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 2680 05D0 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, ON and ()[] +0061 2680 0028 2681 0029 2682 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 2682 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 005B 2682 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 005B 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 005B 2682 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 005B 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 2681 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 005B 2682 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 005B 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 2681 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 2681 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 005B 2682 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 005B 005D 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 2681 005D 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 2681 005D 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 2681 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, L and ()[] +0061 2680 0028 2681 0062 0029 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0062 0029 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 0062 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 005B 0062 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 005B 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 0062 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0029 2681 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 005B 0062 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 005B 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 2681 0062 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 2681 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 005D 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 0062 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0029 2681 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 005B 0062 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 005B 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 2681 0062 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 2681 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 005D 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 2681 0062 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 2681 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 005D 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 005D 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0062 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 0062 005B 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 005B 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 005B 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 2681 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 2681 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 005D 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 2681 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 2681 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 005D 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 005D 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 2681 0062 005D;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 005B 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 2681 005D 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 005B 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 005D 2681 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 005B 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 005D 2681 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 005B 0061 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 005D 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, ON, R and ()[] +0061 2680 0028 2681 05D0 0029 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 05D0 0029 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 05D0 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 005B 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0029 005B 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 05D0 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 005B 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 2681 005B 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 05D0 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 005B 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 2681 005B 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 05D0 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 005B 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 2681 005B 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 2681 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 2681 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 2681 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 2681 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, L, ON and ()[] +0061 2680 0028 0062 2681 0029 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 2681 0029 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 2681 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 005B 2681 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 005B 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 2681 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 005B 2681 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 005B 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 0062 2681 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 0062 005D 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0029 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 2681 0029 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 2681 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 005B 2681 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 005B 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 2681 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 005B 2681 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 005B 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 0062 2681 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 0062 005D 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 2681 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 005B 2681 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 005B 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 0062 2681 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 0062 005D 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 0062 2681 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 0062 005D 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0029 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 2681 0029 005B 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 2681 005B 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 005B 2681 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 005B 005D 2681;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 2681 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 005B 2681 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 005B 005D 2681;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 0062 2681 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 0062 005D 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 2681 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 005B 2681 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 005B 005D 2681;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 0062 2681 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 0062 005D 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 0062 2681 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 0062 005D 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 2681 005B 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 005B 2681 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 005B 005D 2681;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 005B 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 0062 2681 005D;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 005B 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 0062 005D 2681;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 0061 005B 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 0062 2681 005D;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 005B 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 0062 005D 2681;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 005B 0061 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 0062 2681 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0029 005B 0061 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 0062 005D 2681;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, L, L and ()[] +0061 2680 0028 0062 0029 0063 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 0063 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 005B 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 005B 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 005B 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 005B 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0063 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 0063 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 005B 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 005B 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 005B 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 005B 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 005B 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 005B 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0063 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 0063 005B 005D;1;1;1 2 2 2 1 2 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 005B 0063 005D;1;1;1 2 2 2 1 1 2 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 005B 005D 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 005B 0063 005D;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 2680 0029 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 005B 005D 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 2680 0029 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 0062 005D 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 005B 0063 005D;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 0029 2680 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 005B 005D 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 0029 2680 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 0062 005D 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 0062 005D 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 005B 0063 005D;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 0062 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 005B 005D 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 2680 005B 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 0062 005D 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 005B 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 0062 005D 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 005B 0061 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 0062 005D 0063;1;1;1 1 1 2 2 2 1 2;7 6 3 4 5 2 1 0 + +# L, ON, L, R and ()[] +0061 2680 0028 0062 05D0 0029 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 05D0 0029 005B 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 0029 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 05D0 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 005B 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0029 005B 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 05D0 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 005B 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 0062 005B 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 2680 0028 0029 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 0062 05D0 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0029 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 05D0 0029 005B 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 0029 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 05D0 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 005B 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0029 005B 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 05D0 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 005B 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 0062 005B 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 2680 0029 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 0062 05D0 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 05D0 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 005B 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 0062 005B 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0029 2680 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 0062 05D0 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 005B 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 0062 05D0 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0029 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 05D0 0029 005B 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 05D0 005B 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 005B 05D0 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0029 005B 005D 05D0;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 05D0 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 005B 05D0 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 0062 005B 005D 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 0062 05D0 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 0062 005D 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 05D0 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 005B 05D0 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 0062 005B 005D 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 0062 05D0 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 0062 005D 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 0062 05D0 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 0062 005D 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 05D0 005B 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 005B 05D0 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 0062 005B 005D 05D0;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0029 0061 2680 005B 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 0062 005D 05D0;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 0061 005B 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 0062 005D 05D0;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 005B 0061 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 0062 05D0 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0029 005B 0061 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 0062 005D 05D0;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, R, ON and ()[] +0061 2680 0028 05D0 2681 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 2681 0029 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 2681 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 2681 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 005B 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 005B 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 2681 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 005B 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 005B 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 2681 0029 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 2681 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 2681 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 005B 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 005B 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 2681 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 005B 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 005B 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 2681 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 005B 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 005B 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 2681 0029 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 2681 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 2681 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 005B 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 005B 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 2681 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 005B 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 005B 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 2681 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 005B 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 005B 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 2681 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 2681 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, R, L and ()[] +0061 2680 0028 05D0 0062 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0062 0029 005B 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0062 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 05D0 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0062 0029 005B 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0062 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 05D0 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 05D0 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0062 0029 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0062 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 0062 005B 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 005B 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 005B 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 0062 005B 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 005B 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 05D0 005B 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 05D0 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 05D0 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 0062 005B 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 005B 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 05D0 005B 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 05D0 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 05D0 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 05D0 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 05D0 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0062 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 05D0 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, R, R and ()[] +0061 2680 0028 05D0 0029 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 05D1 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 005B 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0029 005B 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 2680 0028 0029 05D0 005B 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 2680 0028 0029 05D0 005B 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0029 005B 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 05D1 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 005B 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0029 005B 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 2680 0029 05D0 005B 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 2680 0029 05D0 005B 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0029 005B 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0029 2680 05D0 005B 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0029 2680 05D0 005B 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 2680 005B 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 2680 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 05D1 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 005B 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0029 005B 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 2680 0029 05D0 005B 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 2680 0029 05D0 005B 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0029 005B 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0029 2680 05D0 005B 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0029 2680 05D0 005B 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 2680 005B 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 2680 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 0061 2680 05D0 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 0061 2680 05D0 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 2680 005B 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 2680 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 2680 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON, ON and ()[] +0061 0028 0062 2680 0029 2681 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 2681 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 005B 2681 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 005B 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 005B 2681 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 005B 005D 2681;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 2680 005D 2681;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 005B 2681 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 005B 005D 2681;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 2680 005D 2681;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 005B 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 2680 005D 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 005B 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 005B 2681 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 005B 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 005B 005D 2681;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 2680 005D 2681;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 2680 005D 2681;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 2680 005D 2681;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 + +# L, L, ON, L and ()[] +0061 0028 0062 2680 0063 0029 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0063 0029 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0063 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 0063 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 005B 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 005B 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0063 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 0063 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 0029 2680 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 005B 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 005B 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 2680 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 2680 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 005D 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0063 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 0063 005B 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0029 0062 2680 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 005B 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 005B 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 2680 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 2680 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 005D 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 2680 0063 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 2680 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 005D 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0063 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 0063 005B 005D;1;1;1 2 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0061 0029 0062 2680 005B 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 005B 0063 005D;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 2680 005B 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 005B 005D 0063;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 005B 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 2680 0063 005D;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 005B 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 2680 005D 0063;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 005B 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 005D 2680 0063;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 005B 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 2680 0063 005D;1;1;1 2 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0061 0029 005B 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 2680 005D 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 005D 2680 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 2680 0063 005D;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 005B 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 2680 005D 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 0029 0061 005B 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 005D 2680 0063;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 + +# L, L, ON, R and ()[] +0061 0028 0062 2680 05D0 0029 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 05D0 0029 005B 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 0029 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 05D0 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 005B 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0029 005B 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 05D0 005B 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 005B 05D0 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 2680 005B 005D 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 2680 05D0 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 2680 005D 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 005D 2680 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 05D0 005B 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 005B 05D0 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 2680 005B 005D 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 2680 05D0 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 2680 005D 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 005D 2680 05D0;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 005B 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 2680 05D0 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 2680 005D 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 005B 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 005D 2680 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 0029 0062 2680 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 05D0 005B 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 005B 05D0 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 2680 005B 005D 05D0;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 2680 05D0 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 2680 005D 05D0;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 005D 2680 05D0;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 2680 05D0 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 2680 005D 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 005D 2680 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 2680 05D0 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 2680 005D 05D0;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0029 0061 005B 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 005D 2680 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 + +# L, L, L, ON and ()[] +0061 0028 0062 0029 0063 2680 005B 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 2680 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 005B 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 005B 2680 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 005B 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 005B 005D 2680;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 005B 0063 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 0063 2680 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 0063 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 0063 005D 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 0063 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 0063 2680 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 0063 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 0063 005D 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 0063 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 0063 2680 005D;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0061 0029 0062 005B 0063 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 0063 005D 2680;1;1;1 2 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# L, L, L, L and ()[] +0061 0028 0062 0029 0063 005B 0064 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 005B 0064 005D;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 005B 005D 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 005B 005D 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 0063 005D 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 0063 005D 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 0063 005D 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 0063 005D 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 0063 005D 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 0063 005D 0064;1;1;1 2 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# L, L, L, R and ()[] +0061 0028 0062 0029 0063 05D0 005B 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 05D0 005B 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 005B 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 005B 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 005B 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 0063 005B 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 0029 005B 0063 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 0063 05D0 005D;1;1;2 2 2 2 1 2 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 0063 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 0063 005D 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 0063 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 0063 05D0 005D;1;1;2 2 2 2 1 2 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 0063 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 0063 005D 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 0063 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 0063 05D0 005D;1;1;1 2 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 0063 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 0063 005D 05D0;1;1;1 2 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# L, L, R, ON and ()[] +0061 0028 0062 05D0 2680 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 2680 0029 005B 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 2680 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 2680 005B 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 005B 2680 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 005B 005D 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 2680 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 2680 005B 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005B 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 005B 2680 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005B 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 005B 005D 2680;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 05D0 2680 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 05D0 005D 2680;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 2680 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 2680 005B 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 005B 2680 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 005B 005D 2680;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 05D0 2680 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 05D0 005D 2680;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 005B 0062 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 05D0 2680 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 0062 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 05D0 005D 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 2680 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 2680 005B 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005B 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 005B 2680 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005B 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 005B 005D 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 05D0 2680 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 05D0 005D 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 05D0 2680 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 05D0 005D 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 05D0 2680 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 05D0 005D 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, R, L and ()[] +0061 0028 0062 05D0 0063 0029 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0063 0029 005B 005D;1;1;2 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0063 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 0063 005B 005D;1;1;2 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 0063 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 005B 0063 005D;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 005B 005D 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0063 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 0063 005B 005D;1;1;2 2 2 2 1 2 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005B 0063 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 005B 0063 005D;1;1;2 2 2 2 1 1 2 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005B 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 05D0 005B 005D 0063;1;1;2 2 2 2 1 1 1 2;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 05D0 0063 005D;1;1;2 2 2 2 1 1 2 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 05D0 005D 0063;1;1;2 2 2 2 1 1 1 2;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0063 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 0063 005B 005D;1;1;2 2 2 2 1 2 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 0063 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 005B 0063 005D;1;1;2 2 2 2 1 1 2 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 05D0 005B 005D 0063;1;1;2 2 2 2 1 1 1 2;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 05D0 0063 005D;1;1;2 2 2 2 1 1 2 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 05D0 005D 0063;1;1;2 2 2 2 1 1 1 2;7 6 5 4 0 1 2 3 +0061 0028 0029 005B 0062 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 05D0 0063 005D;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 0062 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 05D0 005D 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0063 005B 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 0063 005B 005D;1;1;1 2 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005B 0063 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 005B 0063 005D;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005B 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 05D0 005B 005D 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 05D0 0063 005D;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 05D0 005D 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 05D0 0063 005D;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 05D0 005D 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 05D0 0063 005D;1;1;1 1 2 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 05D0 005D 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, L, R, R and ()[] +0061 0028 0062 05D0 0029 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 05D1 005B 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 005B 05D1 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0029 005B 005D 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0062 0029 05D0 005B 05D1 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0062 0029 05D0 005B 005D 05D1;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0029 005B 05D0 005D 05D1;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0029 0062 05D0 005B 05D1 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0029 0062 05D0 005B 005D 05D1;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 0062 005B 05D0 005D 05D1;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 0029 005B 0062 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 0062 05D0 005D 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005B 05D1 005D;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0029 0062 05D0 005B 05D1 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005B 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0029 0062 05D0 005B 005D 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 0062 005B 05D0 005D 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 0062 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 0062 05D0 005D 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 0062 05D0 005D 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 0062 05D0 005D 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, ON and ()[] +0061 0028 05D0 2680 0029 2681 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 2681 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 005B 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 005B 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 005B 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 005B 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 2680 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 005B 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 005B 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 2680 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 2680 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 2681 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 2681 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 005B 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 005B 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 005B 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 005B 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 2680 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 005B 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 005B 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 2680 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 2680 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, L and ()[] +0061 0028 05D0 2680 0062 0029 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0062 0029 005B 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0062 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0062 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 2680 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 2680 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 005D 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 005D 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0062 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 2680 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 2680 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 2680 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 005D 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 005D 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 2680 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 2680 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 2680 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 2680 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 005D 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 005D 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0029 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0062 0029 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0062 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 0062 005B 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 005B 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 005B 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0062 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 0062 005B 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 005B 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 005B 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 2680 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 2680 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 005D 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 005D 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0062 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 0062 005B 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 005B 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 2680 005B 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 2680 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 2680 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 005D 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 005D 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 2680 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 2680 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 2680 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 2680 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 005D 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 005D 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0062 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 2680 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 005D 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 2680 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 2680 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 005D 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 2680 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 2680 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 2680 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 2680 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 005D 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 005D 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, ON, R and ()[] +0061 0028 05D0 2680 05D1 0029 005B 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 2680 05D1 0029 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 05D1 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 005B 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0029 005B 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 05D1 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 005B 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 2680 005B 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 05D1 005B 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 0028 0029 05D0 2680 05D1 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 2680 005B 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 2680 005B 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 005B 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 005B 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 005D 2680 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 005B 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0061 0028 0029 005B 05D0 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 2680 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 005D 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0029 005B 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 2680 05D1 0029 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 05D1 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 005B 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0029 005B 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 05D1 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 005B 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 2680 005B 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 05D1 005B 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0061 0029 05D0 2680 05D1 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 2680 005B 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 2680 005B 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 005B 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 005B 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 005D 2680 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 005B 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0061 0029 005B 05D0 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 2680 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 005D 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 05D1 005B 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 0061 05D0 2680 05D1 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 2680 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 2680 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680 05D1 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 005B 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680 005D 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 005B 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 005D 2680 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 005B 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0029 0061 005B 05D0 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 2680 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 005D 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0029 005B 0061 05D0 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 2680 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 005D 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, ON and ()[] +0061 0028 05D0 0062 2680 0029 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 2680 0029 005B 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 2680 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 2680 005B 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 005B 2680 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 005B 005D 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 2680 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 2680 005B 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 005B 2680 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 005B 005D 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 0062 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 0062 2680 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 0062 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 0062 005D 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 2680 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 2680 005B 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 005B 2680 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 005B 005D 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 0062 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 0062 2680 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 0062 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 0062 005D 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 0062 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 0062 2680 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 0062 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 0062 005D 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0029 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 2680 0029 005B 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 2680 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 2680 005B 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 005B 2680 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 005B 005D 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 2680 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 2680 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 005B 2680 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 005B 005D 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 0062 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 0062 2680 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 0062 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 0062 005D 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 2680 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 2680 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 005B 2680 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 005B 005D 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 0062 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 0062 2680 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 0062 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 0062 005D 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 0062 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 0062 2680 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 0062 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 0062 005D 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 2680 005B 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 2680 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 005B 2680 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 005B 005D 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 0062 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 0062 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 0062 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 0062 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 0062 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 0062 2680 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 0062 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 0062 005D 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, L and ()[] +0061 0028 05D0 0062 0029 0063 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 0063 005B 005D;1;1;2 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 0063 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 005B 0063 005D;1;1;2 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 005B 005D 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 0063 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 005B 0063 005D;1;1;2 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0061 0028 05D0 0029 0062 005B 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 005B 005D 0063;1;1;2 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0061 0028 05D0 0029 005B 0062 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 0062 005D 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B 0063 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 005B 0063 005D;1;1;2 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0061 0028 0029 05D0 0062 005B 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 005B 005D 0063;1;1;2 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0061 0028 0029 05D0 005B 0062 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 0062 005D 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 0062 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 0062 005D 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0063 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 0063 005B 005D;1;1;1 2 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 0063 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 005B 0063 005D;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 005B 005D 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 0063 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 005B 0063 005D;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 05D0 0029 0062 005B 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 005B 005D 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 05D0 0029 005B 0062 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 0062 005D 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B 0063 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 005B 0063 005D;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 0029 05D0 0062 005B 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 005B 005D 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 0029 05D0 005B 0062 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 0062 005D 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 0062 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 0062 005D 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B 0063 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 005B 0063 005D;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 0061 05D0 0062 005B 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 005B 005D 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 0061 05D0 005B 0062 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 0062 005D 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 0062 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 0062 005D 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 0062 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 0062 005D 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# L, R, L, R and ()[] +0061 0028 05D0 0062 05D1 0029 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 05D1 0029 005B 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 05D1 005B 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 005B 05D1 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0029 005B 005D 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 05D1 005B 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 005B 05D1 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 0062 005B 005D 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 0062 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 0062 05D1 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 0062 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 0062 005D 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 05D1 005B 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 005B 05D1 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 0062 005B 005D 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 0062 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 0062 05D1 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 0062 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 0062 005D 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 0062 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 0062 05D1 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 005B 05D0 0062 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0029 005B 05D0 0062 005D 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0029 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 05D1 0029 005B 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 05D1 005B 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 005B 05D1 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0029 005B 005D 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 05D1 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 005B 05D1 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 0062 005B 005D 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 0062 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 0062 05D1 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 0062 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 0062 005D 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 05D1 005B 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 005B 05D1 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 0062 005B 005D 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 0062 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 0062 05D1 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 0062 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 0062 005D 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 0062 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 0062 05D1 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 005B 05D0 0062 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0029 005B 05D0 0062 005D 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 05D1 005B 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 05D1 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 005B 05D1 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 0062 005B 005D 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 0062 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 0062 05D1 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 0062 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 0062 005D 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 0062 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 0062 05D1 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 005B 05D0 0062 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 0061 005B 05D0 0062 005D 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 0062 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 0062 05D1 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 0061 05D0 0062 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 0061 05D0 0062 005D 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, ON and ()[] +0061 0028 05D0 0029 05D1 2680 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 2680 005B 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005B 2680 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 005B 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005B 005D 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 005B 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 05D1 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 05D1 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 05D1 2680 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 005B 05D1 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 05D1 005D 2680;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0029 05D0 005B 05D1 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 2680 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 2680 005B 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 2680 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 005B 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 005D 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 005B 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 05D1 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 05D1 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 05D1 2680 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 005B 05D1 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 05D1 005D 2680;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 0029 05D0 005B 05D1 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 05D1 2680 005D;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 005B 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 05D1 005D 2680;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0029 0061 05D0 005B 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, L and ()[] +0061 0028 05D0 0029 05D1 0062 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 0062 005B 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005B 0062 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 005B 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005B 005D 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 05D1 005B 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 05D1 0062 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 05D1 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 05D1 005D 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 05D1 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 05D1 0062 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0029 05D0 005B 05D1 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 05D1 005D 0062;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0029 05D0 005B 05D1 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0062 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 0062 005B 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 0062 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 005B 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 005D 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 05D1 005B 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 05D1 0062 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 05D1 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 05D1 005D 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 05D1 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 05D1 0062 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0029 05D0 005B 05D1 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 05D1 005D 0062;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 0029 05D0 005B 05D1 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 05D1 0062 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 0061 05D0 005B 05D1 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 05D1 005D 0062;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0029 0061 05D0 005B 05D1 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, R, R and ()[] +0061 0028 05D0 0029 05D1 005B 05D2 005D;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 05D0 0029 05D1 005B 05D2 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005B 005D 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 05D0 0029 05D1 005B 005D 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 05D1 005D 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0029 005B 05D1 005D 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 05D1 005D 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0061 0028 0029 05D0 005B 05D1 005D 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 05D2 005D;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 05D0 0029 05D1 005B 05D2 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 005D 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 05D0 0029 05D1 005B 005D 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 05D1 005D 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0029 005B 05D1 005D 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 05D1 005D 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0061 0029 05D0 005B 05D1 005D 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 05D1 005D 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0029 0061 05D0 005B 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, ON and ()[] +05D0 2680 0028 2681 0029 2682 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 2682 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 2682 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 2682 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 2682 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 2682 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 005B 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 005D 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 005B 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681 005D 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681 005D 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, L and ()[] +05D0 2680 0028 2681 0061 0029 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0061 0029 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0061 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0029 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0061 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 2681 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 005D 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0061 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 2681 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 005D 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 005D 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 005D 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0061 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 005D 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 005D 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 005D 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 005D 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 005D 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 005D 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, ON, R and ()[] +05D0 2680 0028 2681 05D1 0029 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 2681 05D1 0029 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 05D1 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 2681 0029 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 05D1 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 05D1 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 0029 2681 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 05D1 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 05D1 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 05D1 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 0029 2681 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 05D1 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 05D1 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 05D1 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 05D1 005B 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 05D1 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 005B 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 2681 005B 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 005D 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 005D 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 005D 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681 05D1 005D;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 005B 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681 005D 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 005B 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 005D 2681 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 005B 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 005D 2681 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 005B 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 005D 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, ON and ()[] +05D0 2680 0028 0061 2681 0029 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 2681 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 2681 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 2681 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 2681 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 0061 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 0061 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0029 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 2681 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 2681 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 2681 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 2681 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 0061 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 0061 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 2681 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 0061 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 0061 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 0061 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 0061 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0029 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 2681 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 2681 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 2681 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 2681 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 0061 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 0061 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 2681 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 0061 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 0061 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 0061 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 0061 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 2681 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 2681 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 005B 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 005B 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 0061 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 0061 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 0061 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 0061 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 0061 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 0061 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, L and ()[] +05D0 2680 0028 0061 0029 0062 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 2680 0028 0029 0061 005B 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 2680 0028 0029 005B 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0062 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 2680 0029 0061 005B 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 2680 0029 005B 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0029 2680 0061 005B 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0029 2680 005B 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 2680 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0062 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 2680 0029 0061 005B 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 2680 0029 005B 0061 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0029 2680 0061 005B 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0029 2680 005B 0061 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 0061 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 05D0 2680 0061 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0029 05D0 2680 005B 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 2680 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 2680 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, ON, L, R and ()[] +05D0 2680 0028 0061 05D1 0029 005B 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 05D1 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 05D1 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0029 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0029 005B 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 05D1 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 05D1 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0029 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 2680 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 2680 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0029 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 05D1 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 05D1 005B 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 05D1 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0029 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 05D1 005B 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 0061 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 0061 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 05D1 005B 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 0061 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 0061 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 0061 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 0061 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 05D1 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 005B 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 0061 005B 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 2680 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 2680 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 2680 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 2680 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, ON and ()[] +05D0 2680 0028 05D1 2681 0029 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 05D1 2681 0029 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 2681 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 2681 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 2681 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 2681 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 2681 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0029 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0029 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 05D1 2681 0029 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 2681 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 2681 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 2681 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 2681 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 2681 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0029 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 2681 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 2681 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 2681 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 2680 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 2681 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 005B 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0029 005B 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 2681 0029 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 2681 005B 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 2681 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 005D 2681;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 2681 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 2681 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 005D 2681;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 05D1 2681 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 05D1 005D 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 2681 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 2681 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 005D 2681;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 05D1 2681 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 05D1 005D 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 05D1 2681 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 05D1 005D 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 2681 005B 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 2681 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 005D 2681;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 05D1 2681 005D;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 005B 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 05D1 005D 2681;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 2680 005B 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 05D1 2681 005D;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 005B 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 05D1 005D 2681;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 005B 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 05D1 2681 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 005B 05D0 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 05D1 005D 2681;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 005B 05D0 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, L and ()[] +05D0 2680 0028 05D1 0061 0029 005B 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 0061 0029 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0061 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 05D1 0029 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0061 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 2680 0028 0029 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 0061 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0029 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0029 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0029 005B 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 0061 0029 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0061 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 05D1 0029 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0061 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 2680 0029 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 0061 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0029 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0029 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0061 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0029 2680 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 0061 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 2680 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 2680 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 0061 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 005B 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0029 005B 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0061 0029 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0061 005B 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 0061 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 005D 0061;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0061 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 0061 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 005D 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 05D1 0061 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 05D1 005D 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0061 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 0061 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 005D 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 05D1 0061 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 05D1 005D 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 05D1 0061 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 05D1 005D 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0061 005B 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 0061 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 005D 0061;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0029 05D0 2680 05D1 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 2680 005B 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 05D1 005D 0061;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 2680 005B 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 05D1 005D 0061;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 005B 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 05D1 0061 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 005B 05D0 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 05D1 005D 0061;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0029 005B 05D0 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, R, R and ()[] +05D0 2680 0028 05D1 0029 05D2 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 05D1 0029 05D2 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 05D2 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 05D1 0029 05D2 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 05D2 005B 005D;0;0;0 1 1 1 0 1 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 05D2 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 05D2 005D;0;0;0 1 1 1 0 0 1 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 005D 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0029 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 05D2 005D;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 2680 0029 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 005D 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 2680 0029 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 05D1 005D 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0029 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 05D2 005D;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0029 2680 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 005D 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0029 2680 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 05D1 005D 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 2680 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 2680 05D1 005D 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 05D2 005D;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 05D1 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 005D 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 05D1 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 05D1 005D 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 2680 005B 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 2680 05D1 005D 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 005B 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 2680 05D1 005D 05D2;0;0;0 0 0 1 1 1 0 1;0 1 2 5 4 3 6 7 +0028 0029 005B 05D0 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, ON and ()[] +05D0 0028 0061 2680 0029 2681 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 2681 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005B 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005B 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 2680 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 2680 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 2681 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 2681 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 005B 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 005B 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005B 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005B 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 2680 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 2680 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005B 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 005B 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005B 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 005B 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, L and ()[] +05D0 0028 0061 2680 0062 0029 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0062 0029 005B 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 2680 0029 0062 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0062 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 005D 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0062 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 0062 005B 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 0028 0029 0061 2680 005B 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 005B 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 2680 005B 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 005B 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 005B 2680 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 2680 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 005B 2680 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 2680 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 005B 005D 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 005D 2680 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 005B 0061 2680 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +05D0 0028 0029 005B 0061 2680 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 2680 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 005D 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 005D 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 0029 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0062 0029 005B 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 2680 0029 0062 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0062 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 005D 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0062 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 0062 005B 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 05D0 0029 0061 2680 005B 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 005B 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 2680 005B 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 005B 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 005B 2680 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 2680 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 005B 2680 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 2680 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 005B 005D 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 005D 2680 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 005B 0061 2680 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 05D0 0029 005B 0061 2680 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 2680 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 005D 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 005D 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0062 005B 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 0062 005B 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0029 05D0 0061 2680 005B 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 005B 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 2680 005B 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 005B 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 005B 2680 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 2680 0062 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 005B 2680 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 2680 005D 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 005B 005D 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 005D 2680 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 005B 0061 2680 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0029 05D0 005B 0061 2680 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 2680 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 005D 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 005D 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 2680 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0029 005B 05D0 0061 2680 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 2680 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 005D 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 005D 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, ON, R and ()[] +05D0 0028 0061 2680 05D1 0029 005B 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 05D1 0029 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 05D1 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0029 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 05D1 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 2680 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 005D 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 05D1 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 2680 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 2680 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 2680 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 005D 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 2680 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 2680 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 005D 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0029 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 05D1 0029 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 05D1 005B 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 05D1 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0029 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 05D1 005B 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 05D1 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 005B 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 2680 005B 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 005D 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 05D1 005B 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 05D1 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005B 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005B 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 2680 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 2680 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 2680 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 005D 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 2680 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 2680 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 005D 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 05D1 005B 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 05D1 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005B 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 005B 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005B 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 2680 005B 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 2680 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 2680 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 005D 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, L, ON and ()[] +05D0 0028 0061 0029 0062 2680 005B 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 2680 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 005B 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 005B 2680 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 005B 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 005B 005D 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 0062 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 0062 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 0062 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 0062 2680 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +05D0 0028 0029 0061 005B 0062 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 0062 005D 2680;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 0061 0029 0062 2680 005B 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 2680 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005B 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 005B 2680 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005B 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 005B 005D 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 0062 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 0062 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 0062 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 0062 2680 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0029 0061 005B 0062 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 0062 005D 2680;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0029 05D0 0061 005B 0062 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 0062 2680 005D;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 005B 0062 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 0062 005D 2680;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# R, L, L, L and ()[] +05D0 0028 0061 0029 0062 005B 0063 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 005B 0063 005D;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0061 0029 0062 005B 005D 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 005B 005D 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0061 0029 005B 0062 005D 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 0062 005D 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 0062 005D 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 0062 005D 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 05D0 0061 0029 0062 005B 0063 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 005B 0063 005D;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0061 0029 0062 005B 005D 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 005B 005D 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0061 0029 005B 0062 005D 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 0062 005D 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 0062 005D 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 0062 005D 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0029 05D0 0061 005B 0062 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 0062 005D 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# R, L, L, R and ()[] +05D0 0028 0061 0029 0062 05D1 005B 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 05D1 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 005B 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 005B 05D1 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 005B 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 0062 005B 005D 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 0062 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 0062 05D1 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 0062 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 0062 005D 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 0062 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 0062 05D1 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 0062 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 0062 005D 05D1;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 0061 0029 0062 05D1 005B 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 05D1 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005B 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 005B 05D1 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005B 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 0062 005B 005D 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 0062 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 0062 05D1 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 0062 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 0062 005D 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 0062 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 0062 05D1 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 0062 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 0062 005D 05D1;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0029 05D0 0061 005B 0062 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 0062 05D1 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 0062 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 0062 005D 05D1;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# R, L, R, ON and ()[] +05D0 0028 0061 05D1 2680 0029 005B 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 2680 0029 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 2680 005B 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 2680 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 2680 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 005B 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 005D 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 005B 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 2680 005B 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 2680 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 2680 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 005B 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 005D 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 005B 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 05D1 2680 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 05D1 005D 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 2680 005B 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 2680 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 2680 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 005B 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 005D 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 005B 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 05D1 2680 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 05D1 005D 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 05D1 2680 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 05D1 005D 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0029 005B 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 2680 0029 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 2680 005B 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 2680 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 2680 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 005B 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 005D 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 005B 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 2680 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 2680 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 2680 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 005B 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 005D 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 005B 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 05D1 2680 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 05D1 005D 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 2680 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 2680 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 2680 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 005B 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 005D 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 005B 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 05D1 2680 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 05D1 005D 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 05D1 2680 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 05D1 005D 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 2680 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 2680 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 2680 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 005B 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 005D 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 005B 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 05D1 2680 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 05D1 005D 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, R, L and ()[] +05D0 0028 0061 05D1 0062 0029 005B 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0062 0029 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0062 005B 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 0062 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 005D 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0062 005B 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 0062 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 005D 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 05D1 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 05D1 0062 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 05D1 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 05D1 005D 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 05D1 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0062 005B 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 0062 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 005D 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 05D1 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 05D1 0062 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 05D1 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 05D1 005D 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 05D1 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 05D1 0062 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 05D1 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 05D1 005D 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 05D1 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0029 005B 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0062 0029 005B 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0062 005B 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 0062 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 005D 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0062 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 0062 005B 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 0062 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 005B 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 005D 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 05D1 005B 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 05D1 0062 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 05D1 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 05D1 005D 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 05D1 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0062 005B 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 0062 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 005D 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 05D1 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 05D1 0062 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 05D1 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 05D1 005D 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 05D1 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 05D1 0062 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 05D1 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 05D1 005D 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 05D1 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0062 005B 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 0062 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 005D 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 05D1 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 05D1 0062 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 05D1 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 05D1 005D 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 05D1 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 05D1 0062 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 05D1 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 05D1 005D 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 05D1 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 05D1 0062 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 05D1 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 05D1 005D 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 05D1 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, R, R and ()[] +05D0 0028 0061 05D1 0029 05D2 005B 005D;0;0;1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 05D2 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 05D2 005D;0;0;1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 005B 05D2 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 005D 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0029 005B 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 05D2 005D;0;0;1 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +05D0 0028 0061 0029 05D1 005B 05D2 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 005D 05D2;0;0;1 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +05D0 0028 0061 0029 05D1 005B 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 05D1 005D 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0029 005B 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 05D2 005D;0;0;1 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +05D0 0028 0029 0061 05D1 005B 05D2 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 005D 05D2;0;0;1 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +05D0 0028 0029 0061 05D1 005B 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 05D1 005D 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 0061 005B 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 0061 05D1 005D 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 0061 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 05D2 005B 005D;0;0;0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 05D2 005B 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 05D2 005D;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 005B 05D2 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 005D 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0029 005B 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 05D2 005D;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0061 0029 05D1 005B 05D2 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 005D 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0061 0029 05D1 005B 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 05D1 005D 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0029 005B 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 05D2 005D;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0029 0061 05D1 005B 05D2 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 005D 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 0029 0061 05D1 005B 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 05D1 005D 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 0061 005B 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 0061 05D1 005D 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 0061 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 05D2 005D;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 05D0 0061 05D1 005B 05D2 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 005D 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0029 05D0 0061 05D1 005B 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 05D1 005D 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 0061 005B 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 0061 05D1 005D 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 0061 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 005B 05D0 0061 05D1 005D 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0029 005B 05D0 0061 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, ON and ()[] +05D0 0028 05D1 2680 0029 2681 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 2681 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 2681 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 2681 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 005D 2681;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 005D 2681;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 2681 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 005D 2681;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 005D 2681;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 005D 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 005B 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 2681 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 005B 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 005D 2681;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 005B 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680 005D 2681;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 2680 005D 2681;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 2680 005D 2681;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 005B 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, L and ()[] +05D0 0028 05D1 2680 0061 0029 005B 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 0061 0029 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0061 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 2680 0029 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0061 005B 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 0061 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 005D 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 2680 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 0061 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 005D 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 005D 2680 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0061 005B 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 0061 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 005D 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 2680 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 0061 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 005D 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 005D 2680 0061;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 0061 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 005D 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 005B 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D 2680 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0029 005B 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0061 005B 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 0061 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 005D 0061;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 2680 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680 0061 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680 005D 0061;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 005D 2680 0061;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 2680 0061 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 2680 005D 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 005D 2680 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 2680 0061 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 2680 005D 0061;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0029 05D0 005B 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 005D 2680 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0029 05D0 005B 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, ON, R and ()[] +05D0 0028 05D1 2680 05D2 0029 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 2680 05D2 0029 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 05D2 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 2680 0029 05D2 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 05D2 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 0029 2680 05D2 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 05D2 005B 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0029 05D1 2680 05D2 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 05D2 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 05D2 005B 005D;0;0;0 1 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 05D0 0029 05D1 2680 05D2 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 05D2 005D;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 2680 005B 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 005D 05D2;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 2680 005B 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680 05D2 005D;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 005B 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680 005D 05D2;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 005B 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 005D 2680 05D2;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 005B 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 2680 05D2 005D;0;0;0 1 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 05D0 0029 005B 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 2680 005D 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 005D 2680 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 2680 05D2 005D;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 005B 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 2680 005D 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 005B 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 005D 2680 05D2;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0029 05D0 005B 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, ON and ()[] +05D0 0028 05D1 0061 2680 0029 005B 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 2680 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 2680 005B 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 2680 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 2680 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 005B 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 005D 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 005B 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 2680 005B 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 2680 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 2680 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 005B 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 005D 2680;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 005B 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 0061 2680 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 0061 005D 2680;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 2680 005B 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 2680 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 2680 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 005B 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 005D 2680;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 005B 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 0061 2680 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 0061 005D 2680;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 0061 2680 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 05D1 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 0061 005D 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 05D1 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 2680 005B 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 2680 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 2680 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 005B 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 005D 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 005B 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 0061 2680 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 0061 005D 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 0061 2680 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 0061 005D 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 0061 2680 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 05D1 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 0061 005D 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 05D1 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, L and ()[] +05D0 0028 05D1 0061 0029 0062 005B 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 0062 005B 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 0062 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 005B 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 005D 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 005B 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 0062 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 005D 0062;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 05D1 0029 005B 0061 005D 0062;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 0062 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 005D 0062;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0029 05D1 005B 0061 005D 0062;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 0061 005D 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 05D1 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 0062 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 005B 0062 005D;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 005D 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 005B 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0029 05D1 005B 0061 005D 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 0061 005D 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 0061 005D 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 05D1 0061 005D 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, R, L, R and ()[] +05D0 0028 05D1 0061 05D2 0029 005B 005D;0;0;1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 05D2 0029 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 05D2 005B 005D;0;0;1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 05D2 005B 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 05D2 005D;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 005B 05D2 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 005D 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 0029 005B 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 05D2 005B 005D;0;0;1 1 1 1 0 1 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 05D2 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 05D2 005D;0;0;1 1 1 1 0 0 1 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 005B 05D2 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 005D 05D2;0;0;1 1 1 1 0 0 0 1;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 0061 005B 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 0061 05D2 005D;0;0;1 1 1 1 0 0 1 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 0061 005D 05D2;0;0;1 1 1 1 0 0 0 1;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 05D2 005B 005D;0;0;1 1 1 1 0 1 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 05D2 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 05D2 005D;0;0;1 1 1 1 0 0 1 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 005B 05D2 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 005D 05D2;0;0;1 1 1 1 0 0 0 1;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 0061 005B 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 0061 05D2 005D;0;0;1 1 1 1 0 0 1 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 0061 005D 05D2;0;0;1 1 1 1 0 0 0 1;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 0061 05D2 005D;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 05D1 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 005B 05D1 0061 005D 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0029 005B 05D1 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 05D2 005B 005D;0;0;0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 05D2 005B 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 05D2 005D;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 005B 05D2 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 005D 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 0061 005B 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 0061 05D2 005D;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 0061 005D 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 0061 05D2 005D;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 005B 05D1 0061 005D 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0029 005B 05D1 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 0061 05D2 005D;0;0;0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 05D1 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0029 05D0 005B 05D1 0061 005D 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0029 05D0 005B 05D1 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, ON and ()[] +05D0 0028 05D1 0029 05D2 2680 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 2680 005B 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 2680 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 005B 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 005D 2680;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 005B 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 2680 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 005D 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0029 005B 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 2680 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 005D 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 05D1 005B 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 05D2 2680 005D;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 005B 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 05D2 005D 2680;0;0;0 1 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 05D0 0029 05D1 005B 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, L and ()[] +05D0 0028 05D1 0029 05D2 0061 005B 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 0061 005B 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 005B 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 0029 05D2 005B 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 0061 005D;0;0;1 1 1 1 0 1 0 0;3 2 1 0 4 5 6 7 +05D0 0028 05D1 0029 005B 05D2 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 005D 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0029 005B 05D2 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 0061 005D;0;0;1 1 1 1 0 1 0 0;3 2 1 0 4 5 6 7 +05D0 0028 0029 05D1 005B 05D2 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 005D 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0029 05D1 005B 05D2 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 05D2 0061 005D;0;0;0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0029 05D1 005B 05D2 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 05D2 005D 0061;0;0;0 1 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 05D0 0029 05D1 005B 05D2 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, R, R and ()[] +05D0 0028 05D1 0029 05D2 005B 05D3 005D;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 05D3 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 005D 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 005D 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 005D 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 005D 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 05D2 005D 05D3;0;0;0 1 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 05D0 0029 05D1 005B 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ([]) +0028 005B 005D 0029;0;0;0 0 0 0;0 1 2 3 +0028 005B 005D 0029;1;1;1 1 1 1;3 2 1 0 + +# ON and ([]) +2680 0028 005B 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005B 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005B 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005B 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 2680 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 2680 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 005D 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 005D 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 005D 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 005D 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# L and ([]) +0061 0028 005B 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005B 005D 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 005B 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005B 005D 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 005B 0061 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0061 005D 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 005B 005D 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 005D 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 005B 005D 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 005D 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R and ([]) +05D0 0028 005B 005D 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005B 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005B 005D 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005B 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 05D0 005D 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005B 05D0 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 005D 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 005B 005D 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 005D 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 005B 005D 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON and ([]) +2680 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L and ([]) +2680 0028 0061 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005B 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0061 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 005B 005D 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 005B 005D 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0061 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005B 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0061 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 005B 005D 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 005B 005D 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 2680 0061 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 2680 005D 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 2680 005D 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 005D 2680 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 005D 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 005D 2680 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 005D 0029 2680 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R and ([]) +2680 0028 05D0 005B 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005B 05D0 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 005B 005D 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 005B 005D 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005B 05D0 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 005B 005D 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 005B 005D 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 2680 05D0 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 2680 005D 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 2680 005D 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 005D 2680 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 005D 2680 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 005D 0029 2680 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON and ([]) +0061 2680 0028 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005B 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005B 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 2680 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 2680 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 005D 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 005D 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 005D 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 005D 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005B 005D 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 2680 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 2680 005D 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 005D 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 005D 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 005D 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 005D 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005B 0061 2680 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 2680 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 005D 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 005D 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 005D 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 005D 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 005D 0061 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 005D 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 005D 0061 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 005D 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# L, L and ([]) +0061 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005B 005D 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0062 005D 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 005D 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 005D 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0062 005D 0029;1;1;1 2 2 2 2 1;5 1 2 3 4 0 +0028 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 005D 0062 0029;1;1;1 2 2 2 2 1;5 1 2 3 4 0 +0028 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 005D 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 005D 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 005D 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 005D 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# L, R and ([]) +0061 0028 05D0 005B 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005B 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005B 05D0 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 005B 005D 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 005B 005D 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005B 005D 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005B 05D0 005D 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 005B 005D 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 005B 005D 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0061 05D0 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 0061 005D 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 0061 005D 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 005D 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 005D 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, ON and ([]) +05D0 2680 0028 005B 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 2680 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 005D 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 005D 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 005D 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 2680 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 005D 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 005D 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 005D 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 2680 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 005D 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 005D 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 005D 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 005D 05D0 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 005D 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 005D 05D0 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L and ([]) +05D0 0028 0061 005B 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005B 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 005B 005D 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 005B 005D 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0061 005B 005D 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005B 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 005B 005D 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 005B 005D 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 05D0 005D 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 05D0 005D 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 005D 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 005D 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 005D 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R and ([]) +05D0 0028 05D1 005B 005D 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 005D 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0029;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0029;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 005D 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 005D 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON and ([]) +2680 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L and ([]) +2680 0028 2681 0061 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 005D 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 005D 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 005D 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 005D 2680 0029 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R and ([]) +2680 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 05D0 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 005D 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005B 005D 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 05D0 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 005D 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 2681 005D 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 005D 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 005D 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 05D0 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 005D 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 2681 005D 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 005D 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 005D 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 2681 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 005D 2681 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 005D 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 005D 2680 0029 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON and ([]) +2680 0028 0061 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 2681 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 005D 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 005D 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 2681 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 005D 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 005D 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 2681 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 005D 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 005D 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L and ([]) +2680 0028 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0062 005D 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +2680 0028 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +2680 0028 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 005D 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0062 005D 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 005D 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 005D 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, L, R and ([]) +2680 0028 0061 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 05D0 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 005D 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 0061 005D 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 005D 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 05D0 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 005D 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 0061 005D 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 005D 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 05D0 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 005D 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 0061 005D 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 005D 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 005D 2680 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, ON and ([]) +2680 0028 05D0 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 05D0 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 05D0 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L and ([]) +2680 0028 05D0 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 005D 2680 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R and ([]) +2680 0028 05D0 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 005B 2680 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 005B 005D 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON and ([]) +0061 2680 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 005D 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 005D 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L and ([]) +0061 2680 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 005D 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 0029 2680 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 005D 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0062 005D 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 2680 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 005D 0062 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 2680 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 005D 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 2680 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0062 005D 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 005B 2680 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 005D 0062 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 005B 2680 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 005D 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 2680 0062 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 005B 005D 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 005D 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 2680 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0062 005D 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 005B 0061 2680 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 005D 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 005D 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 005B 005D 0061 2680 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 005D 0061 0029 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R and ([]) +0061 2680 0028 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 05D0 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 005D 0029 2680 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005B 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 05D0 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 005D 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005B 005D 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 05D0 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 005D 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 2680 005D 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 2680 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 005D 2680 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 005D 0029 2680 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 05D0 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 005D 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 2680 005D 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 2680 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 005D 2680 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 005D 0029 2680 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 2680 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 005D 0061 2680 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 0061 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 005D 0061 0029 2680 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON and ([]) +0061 0028 0062 2680 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 0062 2680 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 005D 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 005B 0062 2680 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 005D 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 005B 0062 005D 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 2680 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 0062 005D 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 0029 2680;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 0062 2680 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 0062 0029 2680;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 0062 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, L, L and ([]) +0061 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 0063 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 0029 0063;1;1;1 2 2 2 2 1 2;6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 0062 0029 0063;1;1;1 2 2 2 2 1 2;6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 0062 0029 0063;1;1;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# L, L, R and ([]) +0061 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005B 005D 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 05D0 005D 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 05D0 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 05D0 005D 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 005B 0062 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 05D0 005D 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 05D0 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 0029 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 0062 05D0 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 005D 0062 0029 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 005D 0062 0029 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, ON and ([]) +0061 0028 05D0 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 2680 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 005D 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 005D 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 2680 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 005D 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 005D 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 05D0 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 05D0 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005B 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 2680 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 005D 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 005D 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 2680 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 005D 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 005D 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 05D0 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 05D0 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 2680 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 005D 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 005D 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 05D0 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 05D0 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 05D0 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 05D0 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, L and ([]) +0061 0028 05D0 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005B 005D 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0062 005D 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 005D 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 005D 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0062 005D 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 005D 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005B 005D 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0062 005D 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 005D 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 005D 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0062 005D 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 005D 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 005D 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 005D 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0062 005D 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 005D 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 005D 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, R, R and ([]) +0061 0028 05D0 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 005B 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 005B 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 005B 0061 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 005B 005D 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON and ([]) +05D0 2680 0028 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 05D0 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L and ([]) +05D0 2680 0028 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 005D 0029 2680 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 005D 0029 2680 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 005D 0029 2680 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 05D0 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 05D0 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 005D 05D0 0029 2680 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 05D0 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R and ([]) +05D0 2680 0028 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 0029 2680 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 005D 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 005D 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 05D1 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 005D 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 005B 2680 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 05D1 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 005B 2680 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 2680 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 05D1 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 005B 005D 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 005D 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 005D 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 005D 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005B 05D0 2680 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 2680 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 005D 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 005D 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 005B 005D 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 005D 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 005D 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON and ([]) +05D0 0028 0061 2680 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 2680 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 005D 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 005D 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 2680 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 005D 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 005D 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 005D 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 005D 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 2680 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 005D 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 005D 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 05D0 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 05D0 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L and ([]) +05D0 0028 0061 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0062 005D 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +05D0 0028 0061 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +05D0 0028 0061 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 005D 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0062 005D 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 005D 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 005D 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 005D 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, L, R and ([]) +05D0 0028 0061 05D1 005B 005D 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 005D 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 005D 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 005D 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 005D 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 005D 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 05D1 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 005D 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 0061 005D 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005B 005D 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 005D 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 005D 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 05D1 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 005D 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 0061 005D 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005B 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, ON and ([]) +05D0 0028 05D1 2680 005B 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 005D 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 05D1 005D 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 005D 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 005D 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 005B 05D1 2680 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 2680 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 05D1 005D 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0029 2680;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 05D1 005D 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 2680 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 005D 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0029 2680;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 005D 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 05D1 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 05D1 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L and ([]) +05D0 0028 05D1 0061 005B 005D 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 005D 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0061 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 005D 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 005D 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 05D1 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0061 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0029 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0061 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0029 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0029 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R and ([]) +05D0 0028 05D1 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 05D2 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0029 05D2;0;0;0 1 1 1 1 0 1;0 4 3 2 1 5 6 +0028 05D0 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0029 05D2;0;0;0 1 1 1 1 0 1;0 4 3 2 1 5 6 +0028 05D0 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 1 0 1 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, ON and ([]) +2680 0028 2681 005B 2682 005D 2683 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 005D 2683 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 005D 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 005D 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, ON, L and ([]) +2680 0028 2681 005B 2682 0061 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 005D 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 005D 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 2682 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, ON, R and ([]) +2680 0028 2681 005B 2682 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, ON and ([]) +2680 0028 2681 0061 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 2682 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 2682 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 005D 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 005D 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 2682 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 005D 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 005D 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 2682 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 005D 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 005D 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 2682 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 005D 2682 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 005D 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 0061 2682 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 0061 0029 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, L and ([]) +2680 0028 2681 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 2681 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 2681 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, L, R and ([]) +2680 0028 2681 0061 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 05D0 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, ON and ([]) +2680 0028 2681 05D0 2682 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 2682 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 005D 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 005D 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 2682 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 005D 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 005D 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 2682 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 005D 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 005D 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 2682 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 005D 2682 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 005D 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 05D0 2682 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 05D0 0029 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, L and ([]) +2680 0028 2681 05D0 0061 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0061 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 005D 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 005D 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0061 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 005D 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 005D 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0061 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 005D 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 005D 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0061 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 005D 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 005D 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, R, R and ([]) +2680 0028 2681 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 2681 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 2681 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, ON and ([]) +2680 0028 0061 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 2682 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 005D 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 005D 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 005D 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 005D 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 005D 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 005D 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 2682 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 005D 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 005D 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 005D 2682 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 005D 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 005D 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 005D 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 005D 2682 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 005D 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 2681 0029 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 2681 0029 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, L and ([]) +2680 0028 0061 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0062 005B 005D 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 2681 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 2681 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 0062 005D 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +2680 0028 005B 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 2681 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 2681 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +2680 0028 005B 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0062 005B 005D 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 2681 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 2681 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 0062 005D 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 2680 005B 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 2681 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 2681 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 2680 005B 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 0062 005D 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 005B 2680 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 2681 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 2681 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 2680 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 2681 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 005D 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 2681 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 0029 2681 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, ON, R and ([]) +2680 0028 0061 2681 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L, ON and ([]) +2680 0028 0061 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 2681 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 005D 2681 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 005D 0029 2681;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 0062 2681 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 0062 0029 2681;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 005B 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 0062 2681 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 0062 0029 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 2681 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 005D 2681 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 005D 0029 2681;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 0062 2681 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 0062 0029 2681;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 005B 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 0062 2681 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 0062 0029 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 0062 2681 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 0062 0029 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L, L and ([]) +2680 0028 0061 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +2680 0028 0061 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +2680 0028 005B 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 2680 0061 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 2680 005B 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, L, L, R and ([]) +2680 0028 0061 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 05D0 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 005D 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 005D 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 0062 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 0062 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 005B 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 0062 0029 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 05D0 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 005D 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 005D 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 0062 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 0062 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 005B 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 0062 0029 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 0062 0029 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, R, ON and ([]) +2680 0028 0061 05D0 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, R, L and ([]) +2680 0028 0061 05D0 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0062 005B 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 0062 005D 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0062 005B 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 0062 005D 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 0062 005D 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, R, R and ([]) +2680 0028 0061 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0061 05D0 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0061 05D0 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 005D 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0061 05D0 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0061 05D0 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 005D 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 005D 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, ON and ([]) +2680 0028 05D0 2681 005B 2682 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 005D 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 005D 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 005D 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 005D 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 005D 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 005D 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 2682 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 005D 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 005D 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 005D 2682 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 005D 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 005D 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 005D 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 005D 2682 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 005D 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 2681 0029 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 2681 0029 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, L and ([]) +2680 0028 05D0 2681 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0061 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 005D 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 005D 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0061 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 005D 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 005D 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0061 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 005D 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 005D 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0061 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 005D 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 005D 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0061 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 005D 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 005D 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 2681 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 2681 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 2681 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 2681 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0029 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, ON, R and ([]) +2680 0028 05D0 2681 05D1 005B 005D 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 2681 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 2681 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 05D1 005D 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +2680 0028 005B 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 2681 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 2681 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +2680 0028 005B 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 005B 005D 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 2681 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 2681 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 05D1 005D 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 2680 005B 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 2681 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 2681 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 2680 005B 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 05D1 005D 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 2680 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 2681 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 2681 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 2680 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 2681 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 005D 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 2681 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0029 2681 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, ON and ([]) +2680 0028 05D0 0061 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0061 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0061 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, L and ([]) +2680 0028 05D0 0061 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 05D0 0061 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 05D0 0061 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 05D0 0061 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 05D0 0061 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, R, L, R and ([]) +2680 0028 05D0 0061 05D1 005B 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 05D1 005D 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 005D 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 005B 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 05D1 005D 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 005D 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 05D1 005D 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 005D 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 2680 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, ON and ([]) +2680 0028 05D0 005B 05D1 2681 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 005D 2681 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 005D 0029 2681;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 05D1 2681 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 05D1 0029 2681;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 05D1 2681 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 05D1 0029 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 2681 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 005D 2681 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 005D 0029 2681;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 05D1 2681 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 05D1 0029 2681;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 05D1 2681 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 05D1 0029 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 05D1 2681 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 05D1 0029 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, L and ([]) +2680 0028 05D0 005B 05D1 0061 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 005D 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 005D 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 05D1 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 05D1 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 05D1 0029 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0061 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 005D 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 005D 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 05D1 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 05D1 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 05D1 0029 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 05D1 0029 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, R, R and ([]) +2680 0028 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 005D 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, ON and ([]) +0061 2680 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 2682 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 005D 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 005D 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 005D 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 005D 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 005D 2682 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 005D 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 005D 2682 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 005D 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 2681 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 2681 0029 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, L and ([]) +0061 2680 0028 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0062 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 005D 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 005D 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0062 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 005D 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 005D 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0062 005D 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 005D 0062 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 2681 0062 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 2681 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 2681 0062 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 005B 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 2681 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 0029 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 2681 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 2681 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 0029 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 0029 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, ON, R and ([]) +0061 2680 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 05D0 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 005D 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 005D 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, L, ON and ([]) +0061 2680 0028 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 2681 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 2681 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 2681 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 2681 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0062 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 2681 005B 005D 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 2681 005D 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 005D 2681 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 005D 0029 2681;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 2681 005D 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 005D 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 005D 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 0062 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 0062 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 2681 005D 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 005B 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 005D 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 005D 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 0062 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 0062 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 0062 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 0062 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 005B 0061 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 2681 005D 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 005D 2681 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 005D 0029 2681;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 0062 2681 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 0062 0029 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 0062 2681 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 0062 0029 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 0062 2681 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 005B 005D 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 0062 0029 2681;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, L, L and ([]) +0061 2680 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0063 005D 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 005D 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 005D 0029 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 005D 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 005D 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 2680 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 0062 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 005D 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 005B 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 005D 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 0062 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 005B 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 0062 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 005B 0061 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 005D 0063 0029;1;1;1 1 2 2 2 1 2 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 005D 0029 0063;1;1;1 1 2 2 2 1 1 2;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 0062 0029 0063;1;1;1 1 1 2 2 2 1 2;7 6 3 4 5 2 1 0 + +# L, ON, L, R and ([]) +0061 2680 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 05D0 005B 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 05D0 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 05D0 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 05D0 005B 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 05D0 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 05D0 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 05D0 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 05D0 005B 005D 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 05D0 005D 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 005D 05D0 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 005D 0029 05D0;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 05D0 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 005D 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 005D 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 0062 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 0062 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 05D0 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 005D 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 005D 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 0062 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 0062 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 0062 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 0062 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 005B 0061 2680 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 05D0 005D 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 005D 05D0 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 005D 0029 05D0;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 0062 0029 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 0062 0029 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 0062 05D0 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 005B 005D 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 0062 0029 05D0;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, R, ON and ([]) +0061 2680 0028 05D0 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 2681 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 2681 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 2681 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, R, L and ([]) +0061 2680 0028 05D0 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0062 005B 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0062 005B 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0062 005B 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, R, R and ([]) +0061 2680 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 2680 0028 05D0 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 2680 0028 05D0 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 2680 05D0 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 2680 05D0 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 2680 05D0 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 2680 05D0 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 2680 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON, ON and ([]) +0061 0028 0062 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 2681 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 2680 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 2681 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 2680 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 2680 0029 2681;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 005D 2681 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 0062 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 005D 0029 2681;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 0062 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 2680 0029 2681;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 2680 0029 2681;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 2680 0029 2681;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON, L and ([]) +0061 0028 0062 2680 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0063 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0063 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0063 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0063 005D 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 005B 0062 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 005D 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 005B 0062 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 005D 0029 0063;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 +0028 0061 005B 0062 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 2680 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 005B 0062 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 2680 0029 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 005B 0062 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 0029 2680 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 2680 0063 0029;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 005B 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 2680 0029 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 0029 2680 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 2680 0063 0029;1;1;1 1 2 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 0061 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 2680 0029 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 0029 2680 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, L, ON, R and ([]) +0061 0028 0062 2680 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 05D0 005B 005D 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 05D0 005D 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 05D0 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 05D0 005D 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 05D0 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 2680 05D0 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 2680 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0029 2680 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 2680 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 05D0 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 2680 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 2680 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0029 2680 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 2680 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 0029 2680 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 005B 0062 2680 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 05D0 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 005D 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 0062 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 005D 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 0062 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 2680 05D0 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 0062 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 2680 0029 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 0062 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 0029 2680 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 2680 05D0 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 2680 0029 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 0029 2680 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 2680 05D0 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 2680 0029 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 0029 2680 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, L, ON and ([]) +0061 0028 0062 005B 0063 2680 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 2680 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0063 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0063 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0063 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0063 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 0063 2680 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 0062 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 0063 0029 2680;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 + +# L, L, L, L and ([]) +0061 0028 0062 005B 0063 005D 0064 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 0064 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0063 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0063 0029 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 0063 0029 0064;1;1;1 2 2 2 2 2 1 2;7 6 1 2 3 4 5 0 + +# L, L, L, R and ([]) +0061 0028 0062 005B 0063 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 05D0 005D 0029;1;1;2 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 0063 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 05D0 0029;1;1;2 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0061 0028 0062 005B 0063 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0063 05D0 0029;1;1;2 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0061 0028 0062 005B 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 0063 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0063 05D0 0029;1;1;2 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 0063 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 005B 0062 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 0063 05D0 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 0062 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 0063 0029 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 + +# L, L, R, ON and ([]) +0061 0028 0062 05D0 2680 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 2680 005B 005D 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 2680 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 2680 005D 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 005D 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 005D 2680 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 005D 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 005D 0029 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 2680 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 2680 005D 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 005D 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 005D 2680 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 005D 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 005D 0029 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 005D 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 05D0 2680 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 005D 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 05D0 0029 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 2680 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 2680 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 005D 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 005D 2680 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 005D 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 005D 0029 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 05D0 2680 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 05D0 0029 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 05D0 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 05D0 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 2680 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 2680 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 005D 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 005D 2680 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 005D 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 005D 0029 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 005D 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 05D0 2680 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 0062 005D 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 05D0 0029 2680;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 05D0 2680 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 05D0 0029 2680;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 05D0 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 0062 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 05D0 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, R, L and ([]) +0061 0028 0062 05D0 0063 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0063 005B 005D 0029;1;1;2 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0063 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 0063 005D 0029;1;1;2 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 005D 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 005D 0063 0029;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 005D 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 005D 0029 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0063 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 0063 005D 0029;1;1;2 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 005D 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 005D 0063 0029;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 005D 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 005D 0029 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 005D 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 05D0 0063 0029;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 005D 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 05D0 0029 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0063 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 0063 005D 0029;1;1;2 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 005D 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 005D 0063 0029;1;1;2 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 005D 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 005D 0029 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 05D0 0063 0029;1;1;2 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 05D0 0029 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 05D0 0063 0029;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 05D0 0029 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 0063 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 0063 005D 0029;1;1;1 2 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 005D 0063 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 005D 0063 0029;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 005D 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 005D 0029 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 005D 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 05D0 0063 0029;1;1;1 2 2 2 2 1 2 1;7 6 5 1 2 3 4 0 +0028 0061 005B 0062 005D 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 05D0 0029 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 05D0 0063 0029;1;1;1 2 2 2 2 1 2 1;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 05D0 0029 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 05D0 0063 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 05D0 0063 0029;1;1;1 1 2 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 0062 05D0 0029 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 05D0 0029 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, L, R, R and ([]) +0061 0028 0062 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0062 05D0 005B 05D1 005D 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0062 05D0 005B 005D 05D1 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 005D 0029 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 005D 05D1 0029;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 005D 0029 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 005D 05D0 0029 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 005D 05D1 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 005D 0029 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 005D 05D0 0029 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 0062 05D0 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 005D 05D1 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 005D 0029 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0062 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 005D 05D0 0029 05D1;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 0062 05D0 0029 05D1;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 005B 0061 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 0062 05D0 0029 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, ON and ([]) +0061 0028 05D0 2680 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, L and ([]) +0061 0028 05D0 2680 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0062 005B 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 2680 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0062 005B 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 2680 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 2680 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 2680 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0029 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, ON, R and ([]) +0061 0028 05D0 2680 05D1 005B 005D 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 2680 05D1 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 2680 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 2680 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 005B 2680 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 005B 2680 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 2680 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 005B 005D 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 05D1 005D 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 0028 005B 05D0 2680 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0061 0028 005B 005D 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 005B 005D 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 2680 05D1 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 2680 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 2680 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 005B 2680 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 005B 2680 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 2680 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 005B 005D 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 05D1 005D 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0061 005B 05D0 2680 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0061 005B 005D 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 05D1 005D 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 0061 05D0 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 0061 005D 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 005D 0061 05D0 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, ON and ([]) +0061 0028 05D0 0062 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 2680 005B 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 2680 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 005D 2680 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 005D 0029 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 2680 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 2680 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 005D 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 005D 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 005D 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 005D 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 2680 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 2680 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 005D 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 005D 2680 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 005D 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 005D 0029 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 0062 2680 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 0062 0029 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 2680 005B 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 2680 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 005D 2680 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 005D 0029 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 2680 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 2680 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 005D 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 005D 2680 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 005D 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 005D 0029 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 2680 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 2680 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 005D 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 005D 2680 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 005D 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 005D 0029 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 0062 2680 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 0062 0029 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 2680 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 2680 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 005D 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 005D 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 005D 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 005D 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0062 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0062 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0062 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0062 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, L and ([]) +0061 0028 05D0 0062 005B 0063 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 0063 005D 0029;1;1;2 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0061 0028 05D0 0062 005B 005D 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 005D 0063 0029;1;1;2 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0061 0028 05D0 0062 005B 005D 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 005D 0029 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 005D 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 005D 0063 0029;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 005D 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 005D 0029 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 005D 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 005D 0063 0029;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 005D 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 005D 0029 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 0062 0029 0063;1;1;2 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0063 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 0063 005D 0029;1;1;1 2 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0061 05D0 0062 005B 005D 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 005D 0063 0029;1;1;1 2 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0061 05D0 0062 005B 005D 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 005D 0029 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 005D 0063 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 005D 0063 0029;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 005D 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 005D 0029 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 005D 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 005D 0063 0029;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 005D 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 005D 0029 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 0062 0029 0063;1;1;1 2 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 005D 0063 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 005D 0063 0029;1;1;1 1 2 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 005D 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 005D 0029 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0062 0029 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0062 0029 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# L, R, L, R and ([]) +0061 0028 05D0 0062 05D1 005B 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 05D1 005B 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 05D1 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 005D 05D1 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 005D 0029 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 05D1 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 005D 05D1 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 005D 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 005D 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 05D1 005D 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 05D1 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 005D 05D1 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 005D 0029 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 0062 05D1 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 005D 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 005D 05D0 0062 0029 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 005B 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 05D1 005B 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 05D1 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 005D 05D1 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 005D 0029 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 05D1 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 005D 05D1 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 005D 0029 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 005D 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 05D1 005D 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 05D1 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 005D 05D1 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 005D 0029 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 0062 05D1 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 005D 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 005D 05D0 0062 0029 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 05D1 005D 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 05D1 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 005D 05D1 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 005D 0029 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0062 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 0062 05D1 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 0062 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 0062 0029 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 0062 05D1 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 005D 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 005D 05D0 0062 0029 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0062 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 0061 05D0 0062 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 0061 05D0 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, ON and ([]) +0061 0028 05D0 005B 05D1 2680 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 005B 05D1 2680 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 005D 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 05D1 005D 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 005D 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 05D1 005D 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 05D1 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 005D 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 05D1 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 005D 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 2680 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 005B 05D1 2680 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 005D 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 05D1 005D 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 005D 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 05D1 005D 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 05D1 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 005D 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 05D1 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 005D 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, L and ([]) +0061 0028 05D0 005B 05D1 0062 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 05D1 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 005D 0062 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 05D1 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 005D 0029 0062;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 05D1 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 05D1 0062 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 005D 05D1 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 05D1 0029 0062;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 005D 05D1 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 05D1 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 05D1 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0062 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 05D1 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 005D 0062 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 05D1 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 005D 0029 0062;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 05D1 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 05D1 0062 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 005D 05D1 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 05D1 0029 0062;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 005D 05D1 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 05D1 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 05D1 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, R, R and ([]) +0061 0028 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 005B 05D1 005D 05D2 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 05D1 005D 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 005D 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 005D 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 005B 05D1 005D 05D2 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 05D1 005D 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 005D 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 005D 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 005D 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, ON and ([]) +05D0 2680 0028 2681 005B 2682 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 005D 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 005D 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 2682 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 005D 2682 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 005D 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 2681 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 2681 0029 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, L and ([]) +05D0 2680 0028 2681 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0061 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0061 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0061 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 005D 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 005D 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 2681 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 2681 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 2681 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 2681 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0029 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, ON, R and ([]) +05D0 2680 0028 2681 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 05D1 005D 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 005D 05D1 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 2681 05D1 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 2681 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 2681 05D1 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 005B 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 2681 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0029 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 2681 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 2681 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0029 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, ON and ([]) +05D0 2680 0028 0061 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 2681 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 2681 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0061 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0061 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, L and ([]) +05D0 2680 0028 0061 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 2680 0028 0061 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 2680 0028 0061 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 2680 0061 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 2680 0061 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 2680 0061 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 2680 0061 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, ON, L, R and ([]) +05D0 2680 0028 0061 05D1 005B 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 005B 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 005B 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, ON and ([]) +05D0 2680 0028 05D1 2681 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 2681 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 2681 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 005B 005D 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 2681 005D 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 005D 2681 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 005D 0029 2681;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 2681 005D 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 005D 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 005D 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 05D1 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 05D1 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 2681 005D 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 005B 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 005D 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 005D 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 05D1 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 05D1 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 05D1 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 05D1 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 2681 005D 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 005D 2681 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 005D 0029 2681;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 05D1 2681 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 05D1 0029 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 05D1 2681 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 05D1 0029 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 05D1 2681 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 005D 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 05D1 0029 2681;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 005D 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, L and ([]) +05D0 2680 0028 05D1 0061 005B 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0061 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0061 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 005B 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0061 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0061 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0061 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 005B 005D 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0061 005D 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 005D 0061 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 005D 0029 0061;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0061 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 005D 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 005D 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 05D1 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 05D1 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0061 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 005D 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 005D 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 05D1 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 05D1 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 05D1 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 05D1 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0061 005D 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 005D 0061 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 005D 0029 0061;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 05D1 0029 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 05D1 0029 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 05D1 0061 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 005D 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 05D1 0029 0061;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 005D 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, R, R and ([]) +05D0 2680 0028 05D1 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 05D2 005D 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 005D 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 005D 0029 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 005D 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 005D 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 005D 05D1 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 005D 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 005B 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 005D 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 005D 05D1 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 005B 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 2680 05D1 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 005B 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 005D 05D2 0029;0;0;0 0 1 1 1 0 1 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 005D 0029 05D2;0;0;0 0 1 1 1 0 0 1;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 005D 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 2680 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 2680 05D1 0029 05D2;0;0;0 0 0 1 1 1 0 1;0 1 2 5 4 3 6 7 +0028 005B 005D 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, ON and ([]) +05D0 0028 0061 2680 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, L and ([]) +05D0 0028 0061 2680 0062 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0062 005B 005D 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 2680 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 2680 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 2680 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0062 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 005B 2680 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 005B 2680 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 2680 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 005B 005D 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0062 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 0062 005D 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 0028 005B 0061 2680 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +05D0 0028 005B 005D 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0062 005B 005D 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 2680 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 2680 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 2680 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0062 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 005B 2680 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 005B 2680 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 2680 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 005B 005D 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0062 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 0062 005D 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 05D0 005B 0061 2680 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 05D0 005B 005D 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 0062 005D 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 005B 05D0 0061 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 05D0 005D 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 2680 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 005D 05D0 0061 2680 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 0029 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, ON, R and ([]) +05D0 0028 0061 2680 05D1 005B 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 2680 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 005B 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 2680 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, L, ON and ([]) +05D0 0028 0061 005B 0062 2680 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 2680 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 005B 0062 005D 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 005D 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 005B 0062 005D 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 005D 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 005B 005D 0062 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 0062 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 005B 005D 0062 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 0062 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 005B 0061 005D 0062 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0062 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0062 2680 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 2680 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 005B 0062 005D 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 005D 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 005B 0062 005D 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 005D 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 005B 005D 0062 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 0062 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 005B 005D 0062 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 0062 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 005B 0061 005D 0062 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0062 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, L, L and ([]) +05D0 0028 0061 005B 0062 005D 0063 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 005B 0062 005D 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +05D0 0028 0061 005B 005D 0062 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +05D0 0028 005B 0061 005D 0062 0029 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0062 005D 0063 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 005B 0062 005D 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 05D0 0061 005B 005D 0062 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 05D0 005B 0061 005D 0062 0029 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, L, L, R and ([]) +05D0 0028 0061 005B 0062 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 05D1 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0062 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 005D 05D1 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 005B 0062 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 005D 0029 05D1;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 005B 005D 0062 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 0062 05D1 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 005B 005D 0062 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 0062 0029 05D1;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 005B 0061 005D 0062 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 0062 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0062 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 05D1 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0062 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 005D 05D1 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 005B 0062 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 005D 0029 05D1;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 005B 005D 0062 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 0062 05D1 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 005B 005D 0062 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 0062 0029 05D1;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 005B 0061 005D 0062 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 0062 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0062 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 0062 05D1 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 0062 0029 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, R, ON and ([]) +05D0 0028 0061 05D1 2680 005B 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 2680 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 005D 2680 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 005D 0029 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 2680 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 2680 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 005D 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 005D 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 005D 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 005D 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 2680 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 2680 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 005D 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 005D 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 005D 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 005D 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 05D1 2680 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 05D1 0029 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 005B 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 2680 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 005D 2680 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 005D 0029 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 2680 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 2680 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 005D 2680 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 005D 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 005D 0029 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 005D 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 2680 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 2680 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 005D 2680 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 005D 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 005D 0029 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 005D 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 05D1 2680 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 05D1 0029 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 2680 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 2680 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 005D 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 005D 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 005D 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 005D 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, R, L and ([]) +05D0 0028 0061 05D1 0062 005B 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0062 005B 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0062 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 005D 0062 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 005D 0029 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0062 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 005D 0062 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 005D 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0062 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 0062 005D 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 005D 0062 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 005D 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 05D1 0062 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 05D1 0029 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 005B 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0062 005B 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0062 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 005D 0062 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 005D 0029 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0062 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 005D 0062 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 005D 0029 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 05D1 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0062 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 0062 005D 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 005D 0062 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 005D 0029 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 05D1 0062 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 05D1 0029 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0062 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 0062 005D 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 005D 0062 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 005D 0029 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 05D1 0062 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 05D1 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 05D1 0029 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 05D1 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 05D1 0062 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 05D1 0029 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 05D1 0062 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 05D1 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 05D1 0029 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 05D1 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, R, R and ([]) +05D0 0028 0061 05D1 005B 05D2 005D 0029;0;0;1 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +05D0 0028 0061 05D1 005B 05D2 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 005D 05D2 0029;0;0;1 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +05D0 0028 0061 05D1 005B 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 005D 0029 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 005D 05D2 0029;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 005D 0029 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 005D 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 005D 05D2 0029;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 005D 0029 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 005D 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 005D 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 0061 05D1 0029 05D2;0;0;1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 05D2 005D 0029;0;0;0 1 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 05D0 0061 05D1 005B 05D2 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 005D 05D2 0029;0;0;0 1 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 05D0 0061 05D1 005B 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 005D 0029 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 005D 05D2 0029;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 005D 0029 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 005D 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 005D 05D2 0029;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 005D 0029 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 005D 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 005D 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 0061 05D1 0029 05D2;0;0;0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 005D 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 005D 05D2 0029;0;0;0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 005D 0029 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 005D 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 005D 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 0061 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 005D 05D0 0061 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 005B 005D 05D0 0061 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, ON and ([]) +05D0 0028 05D1 2680 005B 2681 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 2681 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 005D 2681 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 005D 0029 2681;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 2680 0029 2681;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 2680 0029 2681;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 2680 0029 2681;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, L and ([]) +05D0 0028 05D1 2680 0061 005B 005D 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0061 005D 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 0061 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0061 005D 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 2680 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 0061 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 0061 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0029 2680 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0061 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 2680 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 2680 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 005D 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029 2680 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029 2680 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0061 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 2680 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 005D 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 2680 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 005D 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 2680 0061 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 2680 0029 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0029 2680 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 2680 0061 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 2680 0029 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0029 2680 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 2680 0061 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 2680 0029 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0029 2680 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, ON, R and ([]) +05D0 0028 05D1 2680 05D2 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 05D2 005D 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 005B 05D1 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 005D 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 005B 05D1 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 005D 0029 05D2;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 2680 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 005B 05D1 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 2680 0029 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0029 2680 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 005B 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 2680 0029 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0029 2680 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 2680 05D2 0029;0;0;0 0 1 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 05D0 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 2680 0029 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0029 2680 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, ON and ([]) +05D0 0028 05D1 0061 2680 005B 005D 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 2680 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 2680 005D 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 2680 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 005D 2680 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 005D 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 005D 0029 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 005D 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 2680 005D 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 2680 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 005D 2680 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 005D 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 005D 0029 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 005D 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0061 2680 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 005D 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0061 0029 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 005D 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 2680 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 2680 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 005D 2680 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 005D 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 005D 0029 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 005D 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0061 2680 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 005D 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0061 0029 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 005D 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0061 2680 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0061 0029 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 2680 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 0061 2680 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 005D 2680 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 0061 005D 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 005D 0029 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 0061 005D 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0061 2680 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0061 0029 2680;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0061 2680 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0061 0029 2680;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0061 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0061 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, L and ([]) +05D0 0028 05D1 0061 005B 0062 005D 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 05D1 0061 005B 005D 0062 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 05D1 0061 005B 005D 0029 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 005D 0062 0029;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 005D 0029 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0061 0029 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 005D 0062 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 005D 0029 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0061 0029 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0061 0029 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 005D 0062 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 005D 0029 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0061 0029 0062;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0061 0029 0062;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0061 0029 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, R, L, R and ([]) +05D0 0028 05D1 0061 05D2 005B 005D 0029;0;0;1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 05D2 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 05D2 005D 0029;0;0;1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 05D2 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 005D 05D2 0029;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 005D 0029 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 05D2 005D 0029;0;0;1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 05D2 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 005D 05D2 0029;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 005D 0029 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0061 05D2 0029;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 005D 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 0061 0029 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 005D 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 05D2 005D 0029;0;0;1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 05D2 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 005D 05D2 0029;0;0;1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 005D 0029 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0061 05D2 0029;0;0;1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 005D 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 0061 0029 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 005D 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0061 05D2 0029;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 005D 05D1 0061 0029 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 05D2 005D 0029;0;0;0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 0061 05D2 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 005D 05D2 0029;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 0061 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 005D 0029 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 05D1 0061 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0061 05D2 0029;0;0;0 1 1 1 1 0 1 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 0061 0029 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 005B 05D1 005D 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0061 05D2 0029;0;0;0 1 1 1 1 0 1 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 005D 05D1 0061 0029 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 005B 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0061 05D2 0029;0;0;0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 005D 05D1 0061 0029 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, ON and ([]) +05D0 0028 05D1 005B 05D2 2680 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 2680 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 05D2 005D 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 05D2 2680 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 05D2 0029 2680;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, L and ([]) +05D0 0028 05D1 005B 05D2 0061 005D 0029;0;0;1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 05D2 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 0061 0029;0;0;1 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +05D0 0028 05D1 005B 05D2 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 05D2 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 0061 0029;0;0;1 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +05D0 0028 05D1 005B 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 0061 0029;0;0;1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 05D2 0061 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 05D2 0029 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, R, R and ([]) +05D0 0028 05D1 005B 05D2 005D 05D3 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 05D3 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 005D 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 005D 05D2 0029 05D3;0;0;0 1 1 1 1 1 0 1;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ([)] +0028 005B 0029 005D;0;0;0 0 0 0;0 1 2 3 +0028 005B 0029 005D;1;1;1 1 1 1;3 2 1 0 + +# ON and ([)] +2680 0028 005B 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005B 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005B 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005B 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 2680 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 2680 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 0029 2680 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0029 2680 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 0029 005D 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0029 005D 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# L and ([)] +0061 0028 005B 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005B 0029 005D;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 005B 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005B 0029 005D;1;1;1 2 1 1 1;4 3 2 1 0 +0028 005B 0061 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0061 0029 005D;1;1;1 1 2 1 1;4 3 2 1 0 +0028 005B 0029 0061 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0029 0061 005D;1;1;1 1 1 2 1;4 3 2 1 0 +0028 005B 0029 005D 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0029 005D 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R and ([)] +05D0 0028 005B 0029 005D;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005B 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005B 0029 005D;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005B 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 05D0 0029 005D;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005B 05D0 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 0029 05D0 005D;0;0;0 0 0 1 0;0 1 2 3 4 +0028 005B 0029 05D0 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 0029 005D 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 005B 0029 005D 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON and ([)] +2680 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L and ([)] +2680 0028 0061 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005B 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0061 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 005B 0029 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 005B 0029 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0061 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005B 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0061 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 005B 0029 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 005B 0029 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 2680 0061 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 2680 0029 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 2680 0029 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 0029 2680 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0029 2680 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 0029 2680 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 0029 005D 2680 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R and ([)] +2680 0028 05D0 005B 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005B 05D0 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 005B 0029 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 005B 0029 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005B 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005B 05D0 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 005B 0029 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 005B 0029 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 2680 05D0 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 2680 0029 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 2680 0029 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 0029 2680 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 0029 2680 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 0029 2680 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 0029 005D 2680 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON and ([)] +0061 2680 0028 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005B 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005B 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 2680 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 2680 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 0029 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0029 2680 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 0029 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0029 005D 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005B 0029 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 2680 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 2680 0029 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 0029 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0029 2680 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 0029 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0029 005D 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005B 0061 2680 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 2680 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 0029 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 0029 2680 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 0029 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 0029 005D 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0029 0061 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0029 0061 2680 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 0029 0061 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0029 0061 005D 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# L, L and ([)] +0061 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005B 0029 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0062 0029 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0029 0062 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0029 005D 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0062 0029 005D;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0029 0062 005D;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0029 005D 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 0029 0062 005D;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 0029 005D 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0029 0061 005D 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# L, R and ([)] +0061 0028 05D0 005B 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005B 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005B 05D0 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 005B 0029 05D0 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 005B 0029 005D 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005B 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005B 0029 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005B 05D0 0029 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 005B 0029 05D0 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 005B 0029 005D 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005B 0061 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0061 05D0 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 0061 0029 05D0 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 0061 0029 005D 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0029 0061 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 0029 0061 05D0 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 0029 0061 005D 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, ON and ([)] +05D0 2680 0028 005B 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 2680 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 2680 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0029 2680 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0029 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0029 005D 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0029 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005B 0029 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 2680 0029 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 2680 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0029 2680 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0029 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0029 005D 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0029 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 2680 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 2680 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 0029 2680 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0029 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 0029 005D 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0029 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 0029 05D0 2680 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0029 05D0 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 0029 05D0 005D 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0029 05D0 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L and ([)] +05D0 0028 0061 005B 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005B 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0061 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 005B 0029 0061 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 005B 0029 005D 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0061 005B 0029 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005B 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0061 0029 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 005B 0029 0061 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 005B 0029 005D 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 05D0 0061 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 05D0 0029 0061 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 05D0 0029 005D 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 0029 05D0 0061 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0029 05D0 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 0029 05D0 005D 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R and ([)] +05D0 0028 05D1 005B 0029 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0029 005D 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 005D;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 005D;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0029 005D 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 005D;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 0029 005D 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON and ([)] +2680 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L and ([)] +2680 0028 2681 0061 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0029 005D 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0029 005D 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 0029 005D 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0029 2680 005D 2681 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R and ([)] +2680 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 05D0 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0029 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005B 0029 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 05D0 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0029 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 2681 0029 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 2681 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 0029 2681 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 0029 005D 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 05D0 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0029 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 2681 0029 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 2681 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 0029 2681 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 0029 005D 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 2681 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 0029 2681 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 0029 005D 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0029 2680 005D 2681 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON and ([)] +2680 0028 0061 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 2681 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 0029 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 0029 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 2681 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 0029 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 0029 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 2681 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 0029 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 0029 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L and ([)] +2680 0028 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 005B 2680 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 005B 0029 2680 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, L, R and ([)] +2680 0028 0061 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 05D0 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 0029 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 0061 0029 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 0029 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 05D0 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 0029 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 0061 0029 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 0029 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 05D0 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 0029 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 0061 0029 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 0029 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0029 2680 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, ON and ([)] +2680 0028 05D0 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 05D0 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 05D0 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 05D0 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 05D0 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 05D0 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 05D0 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 05D0 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 05D0 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L and ([)] +2680 0028 05D0 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0029 2680 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R and ([)] +2680 0028 05D0 005B 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 005B 2680 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 005B 0029 2680 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON and ([)] +0061 2680 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 2680 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0029 2681 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0029 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 2680 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 2680 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L and ([)] +0061 2680 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 0062 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 0062 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 2680 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 0062 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 2680 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0029 2680 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 2680 0062 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 0029 2680 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 2680 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0029 005D 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 005D 2680 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 0029 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0062 0029 005D;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 2680 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0029 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0029 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 2680 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0062 0029 005D;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 2680 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0029 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0029 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 2680 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 2680 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 0029 005D 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 005D 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 2680 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 005B 0061 2680 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 2680 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 2680 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 0029 005D 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 005D 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 2680 0062 005D;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 005B 0029 0061 2680 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 2680 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 005B 0029 0061 005D 2680 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 005D 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# L, ON, R and ([)] +0061 2680 0028 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 05D0 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 2680 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 0029 2680 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 0029 005D 2680 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005B 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 05D0 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0029 05D0 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005B 0029 005D 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 05D0 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0029 05D0 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 2680 0029 005D 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 2680 05D0 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 0029 2680 005D 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 0029 005D 2680 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 05D0 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0029 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 2680 0029 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 2680 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 0029 2680 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 0029 005D 2680 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 2680 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0029 0061 2680 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 0061 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0029 0061 005D 2680 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON and ([)] +0061 0028 0062 2680 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005B 2680 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 2680 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 005B 0029 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 005D 2680;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0062 2680 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 2680 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0062 0029 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 005D 2680;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 0062 2680 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 0062 005D 2680;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 005B 0062 2680 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 0029 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 2680 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 005D 2680;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 0062 2680 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 0062 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 0062 005D 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 0062 2680 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 0062 005D 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, L, L and ([)] +0061 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 0063 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 0063 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 0063 005D;1;1;1 2 2 2 1 2 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 005D 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 0062 005D 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 005B 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 0062 005D 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# L, L, R and ([)] +0061 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005B 0029 005D;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 05D0 0029 005D;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 05D0 0029 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 0062 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 0029 0062 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 005B 0062 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 05D0 0029 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 05D0 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 005D 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 0062 05D0 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 0029 0062 005D 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 0062 05D0 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 0029 0062 005D 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, ON and ([)] +0061 0028 05D0 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 2680 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0029 2680 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0029 005D 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 2680 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0029 2680 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0029 005D 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 05D0 2680 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 05D0 005D 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005B 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 2680 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0029 2680 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0029 005D 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 2680 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0029 2680 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0029 005D 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 05D0 2680 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 05D0 005D 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 2680 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0029 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0029 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 05D0 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 05D0 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 05D0 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 05D0 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, L and ([)] +0061 0028 05D0 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005B 0029 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0062 0029 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0029 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0029 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0062 0029 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0029 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 05D0 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005B 0029 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0062 0029 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0029 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0029 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0062 0029 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0029 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0029 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 05D0 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0029 05D0 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0062 0029 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 05D0 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 05D0 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0029 0061 05D0 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, R, R and ([)] +0061 0028 05D0 005B 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 005B 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 005B 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 005B 0061 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 005B 0029 0061 05D0 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON and ([)] +05D0 2680 0028 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 05D0 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L and ([)] +05D0 2680 0028 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0029 005D 2680 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 0061 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 005D 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 0061 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 005D 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 0061 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 005D 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0029 005D 2680 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 0029 005D 2680 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 05D0 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 05D0 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0029 05D0 005D 2680 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 05D0 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R and ([)] +05D0 2680 0028 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 2680 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 2680 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 0029 2680 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 005D 2680 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 005D 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 005D;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 005D;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 2680 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 2680 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 0029 2680 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 005D 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 0029 005D 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005B 05D0 2680 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 2680 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 0029 2680 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 0029 005D 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 05D1 005D;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 005B 0029 05D0 2680 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 005B 0029 05D0 2680 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 005D 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 005B 0029 05D0 005D 2680 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON and ([)] +05D0 0028 0061 2680 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 005D 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 2680 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 0029 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 005D 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 0029 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 2680 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0029 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 005D 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0029 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 005D 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 2680 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 0029 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 005D 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 0029 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 2680 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 005D 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 2680 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 0029 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 0029 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 05D0 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 05D0 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L and ([)] +05D0 0028 0061 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0061 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 0062 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 005B 05D0 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 005B 0029 05D0 0061 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0029 05D0 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, L, R and ([)] +05D0 0028 0061 05D1 005B 0029 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 05D1 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 0029 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 0061 0029 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 0029 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 05D1 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 0029 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 0061 0029 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005B 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, ON and ([)] +05D0 0028 05D1 2680 005B 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 2680 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 005B 0029 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 005D 2680;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 005B 0029 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 05D1 2680 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 05D1 0029 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 005D 2680;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 05D1 0029 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 2680 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 0029 05D1 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 005D 2680;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 0029 05D1 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 2680 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0029 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 005D 2680;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0029 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 2680 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 05D1 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 005D 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 05D1 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 2680 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 05D1 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 005D 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 05D1 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L and ([)] +05D0 0028 05D1 0061 005B 0029 005D;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 005D;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 0061 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 005D 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 0061 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 005D 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 0061 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 005D 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R and ([)] +05D0 0028 05D1 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 05D2 005D;0;0;0 1 1 1 0 1 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 005D 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 005D 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 005B 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, ON and ([)] +2680 0028 2681 005B 2682 0029 2683 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 0029 2683 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 0029 005D 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 0029 005D 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, ON, L and ([)] +2680 0028 2681 005B 2682 0061 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 0029 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 0029 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 2682 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 2682 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 2682 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, ON, R and ([)] +2680 0028 2681 005B 2682 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 2682 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, ON and ([)] +2680 0028 2681 0061 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 2682 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 2682 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 0029 2682 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 0029 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 2682 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 0029 2682 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 0029 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 2682 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 0029 2682 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 0029 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 2682 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 0029 2682 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 0029 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 0061 2682 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 0061 005D 2682;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L, L and ([)] +2680 0028 2681 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +2680 0028 2681 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +2680 0028 005B 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 2680 005B 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 2680 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 + +# ON, ON, L, R and ([)] +2680 0028 2681 0061 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 05D0 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 005B 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0061 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0061 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0061 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, ON and ([)] +2680 0028 2681 05D0 2682 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 2682 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 2682 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 2682 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 2682 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 2682 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 2682 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 2682 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 2682 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 05D0 2682 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 05D0 005D 2682;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, R, L and ([)] +2680 0028 2681 05D0 0061 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0061 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0061 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0061 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0061 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, R, R and ([)] +2680 0028 2681 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +2680 0028 2681 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 2681 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 2681 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 005B 2681 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 005B 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 2681 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 2680 005B 2681 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 2680 005B 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 2680 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, ON and ([)] +2680 0028 0061 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 2682 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 0029 2682 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 0029 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 0029 2682 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 0029 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 0029 2682 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 0029 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 2681 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 2681 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 2682 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 0029 2682 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 0029 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 0029 2682 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 0029 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 0029 2682 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 0029 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 2681 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 2681 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 0029 2682 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 0029 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 2681 005D 2682;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 2681 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 2681 005D 2682;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON, L and ([)] +2680 0028 0061 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0062 005B 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 2681 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 2681 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 005D 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +2680 0028 005B 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 2681 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 2681 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 005D 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 2681 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +2680 0028 005B 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 2681 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 005B 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 005D 2681 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0061 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0062 005B 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 2681 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 2681 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 005D 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 2680 005B 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 2681 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 2681 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 005D 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 2681 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 2680 005B 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 2681 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 005B 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 005D 2681 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 2680 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 005B 2680 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 2681 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 2681 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 005D 2681 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 2681 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 2680 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 2681 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 2680 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 005D 2681 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 0029 2680 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 2681 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 0029 2680 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 2681 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 0029 2680 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 005D 2681 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 + +# ON, L, ON, R and ([)] +2680 0028 0061 2681 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 2681 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 2681 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 2681 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 2681 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 2681 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L, ON and ([)] +2680 0028 0061 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 2681 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 0029 2681 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 0029 005D 2681;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 0062 2681 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 0062 005D 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 0062 2681 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 0062 005D 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 2681 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 0029 2681 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 0029 005D 2681;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 0062 2681 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 0062 005D 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 0062 2681 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 0062 005D 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 0062 2681 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 0062 005D 2681;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L, L and ([)] +2680 0028 0061 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 1 2 1;7 6 5 2 3 4 1 0 +2680 0028 0061 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 1 1 2;7 6 5 2 3 4 1 0 +2680 0028 0061 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +2680 0028 005B 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 0062 005D 0063;1;1;1 1 1 2 1 2 2 2;5 6 7 4 3 2 1 0 +0028 2680 0061 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 1 2 1;7 6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 1 1 2;7 6 5 2 3 4 1 0 +0028 2680 0061 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 2680 005B 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 0062 005D 0063;1;1;1 1 1 2 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 2680 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 0062 005D 0063;1;1;1 1 1 2 1 2 2 2;5 6 7 4 3 2 1 0 + +# ON, L, L, R and ([)] +2680 0028 0061 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 05D0 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 0029 05D0 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0062 0029 005D 05D0;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +2680 0028 0061 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 0062 005D 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 0062 05D0 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 0062 005D 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 05D0 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 0029 05D0 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0062 0029 005D 05D0;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 2680 0061 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 0062 005D 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 0062 05D0 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 0062 005D 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 0062 05D0 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 0062 005D 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, R, ON and ([)] +2680 0028 0061 05D0 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, R, L and ([)] +2680 0028 0061 05D0 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0062 005B 0029 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 0062 0029 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 0029 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0062 005B 0029 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 0062 0029 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 0029 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 0062 0029 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 0029 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# ON, L, R, R and ([)] +2680 0028 0061 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +2680 0028 0061 05D0 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 005B 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 0061 005B 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0061 05D0 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 005B 0061 0029 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 005B 0029 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 2680 0061 05D0 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 005B 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 2680 0061 005B 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0061 05D0 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 2680 005B 0061 0029 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 2680 005B 0029 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0061 05D0 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 2680 0061 0029 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 2680 0029 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 0029 2680 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, ON and ([)] +2680 0028 05D0 2681 005B 2682 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 2682 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 2682 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 2682 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 2681 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 2682 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 2682 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 2682 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 2682 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 2681 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 2682 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681 005D 2682;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 2681 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 2681 005D 2682;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON, L and ([)] +2680 0028 05D0 2681 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0061 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0061 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 005D 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 2681 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 2681 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 005D 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0061 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0061 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 005D 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 2681 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 2681 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 005D 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0061 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 005D 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 2681 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 2681 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 005D 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 2681 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 2681 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 005D 2681 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, ON, R and ([)] +2680 0028 05D0 2681 05D1 005B 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 005D 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +2680 0028 005B 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 005D 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 2681 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +2680 0028 005B 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 2681 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 005B 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 005D 2681 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 005B 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 005B 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 005D 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 2680 005B 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 005D 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 2681 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 2680 005B 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 2681 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 005B 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 005D 2681 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 005B 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 2680 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 005D 2681 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 2681 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 2680 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 2681 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 2680 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 005D 2681 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 2680 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 2681 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 0029 2680 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 2681 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 0029 2680 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 005D 2681 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 0029 2680 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, ON and ([)] +2680 0028 05D0 0061 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 0061 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 0061 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 0061 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 0061 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 0061 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 0061 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 0061 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 0061 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 0061 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 0061 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 0061 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 0061 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 0061 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 0061 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L, L and ([)] +2680 0028 05D0 0061 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +2680 0028 05D0 0061 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +2680 0028 005B 0029 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 2680 05D0 0061 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 2680 05D0 0061 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 2680 005B 0029 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 2680 0029 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 0029 2680 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 + +# ON, R, L, R and ([)] +2680 0028 05D0 0061 05D1 005B 0029 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 05D1 0029 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 0029 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 005B 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 005B 0029 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 05D1 0029 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 0029 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 005B 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 05D1 0029 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 0029 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 2680 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 2680 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 2680 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, ON and ([)] +2680 0028 05D0 005B 05D1 2681 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 0029 2681 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 0029 005D 2681;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 05D1 2681 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 05D1 005D 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 05D1 2681 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 05D1 005D 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 2681 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 2681 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 005D 2681;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 05D1 2681 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 05D1 005D 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 05D1 2681 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 05D1 005D 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 05D1 2681 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 05D1 005D 2681;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, R, L and ([)] +2680 0028 05D0 005B 05D1 0061 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 0029 0061 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 0029 005D 0061;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 05D1 005D 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 05D1 0061 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 05D1 005D 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 005B 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0061 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 0061 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 005D 0061;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 05D1 005D 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 05D1 0061 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 05D1 005D 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 005B 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 05D1 0061 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 05D1 005D 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 2680 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, R, R and ([)] +2680 0028 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 0 1 0;0 1 4 3 2 5 6 7 +2680 0028 05D0 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 0 0 1;0 1 4 3 2 5 6 7 +2680 0028 05D0 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 05D0 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 1 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 005B 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 0 1 0;0 1 4 3 2 5 6 7 +0028 2680 05D0 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 0 0 1;0 1 4 3 2 5 6 7 +0028 2680 05D0 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 2680 05D0 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 1 0 1 1 1;0 1 2 3 4 7 6 5 +0028 2680 005B 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 05D1 005D 05D2;0;0;0 0 0 1 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 2680 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, ON and ([)] +0061 2680 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 2682 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0029 2682 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0029 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0029 2682 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0029 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0029 2682 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0029 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0029 2682 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0029 005D 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 2681 005D 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 2681 005D 2682;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON, L and ([)] +0061 2680 0028 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0062 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0062 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0029 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0062 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0029 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0029 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 2681 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0062 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0029 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0029 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 2681 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 2681 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 005D 2681 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0062 0029 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 2681 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 2681 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 005D 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 2681 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 2681 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 005D 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 005D 2681 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 2681 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 2681 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 005D 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 005D 2681 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 005D 2681 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# L, ON, ON, R and ([)] +0061 2680 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 2681 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 2681 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 05D0 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0029 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 2681 0029 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 2681 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 2681 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 2681 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 2681 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, L, ON and ([)] +0061 2680 0028 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 2681 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 2681 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 0029 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 0029 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 2681 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 0029 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 0029 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 0062 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 0062 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 2681 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 2681 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0029 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0029 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 2681 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 0029 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 0029 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 0062 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 0062 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 2681 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 0029 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 0029 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 0062 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 0062 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 0062 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 0062 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 2680 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 2681 005B 0029 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 2681 0029 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0029 2681 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0029 005D 2681;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 2681 0029 005D;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 2680 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 0029 2681 005D;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 2680 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 0029 005D 2681;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 2680 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 0062 2681 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 0062 005D 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 2681 0029 005D;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 0029 2681 005D;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 0029 005D 2681;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 0062 2681 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 0062 005D 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 0062 2681 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 0062 005D 2681;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 2681 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 0029 2681 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 0029 005D 2681;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 0062 2681 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 0062 005D 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 0062 2681 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 0062 005D 2681;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 0062 2681 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 005B 0029 0061 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 0062 005D 2681;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, L, L and ([)] +0061 2680 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0063 0029 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0029 0063 005D;1;1;1 2 2 2 1 1 2 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0029 005D 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 0029 0063 005D;1;1;1 2 2 2 2 1 2 1;7 6 5 1 2 3 4 0 +0028 0061 2680 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 0029 005D 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 2680 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 0062 005D 0063;1;1;1 2 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0061 005B 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 0029 0063 005D;1;1;1 2 2 2 2 1 2 1;7 6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 0029 005D 0063;1;1;1 2 2 2 2 1 1 2;7 6 5 1 2 3 4 0 +0028 0061 005B 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 0062 005D 0063;1;1;1 2 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0061 005B 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 0062 005D 0063;1;1;1 2 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 0061 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 0029 0063 005D;1;1;1 1 2 2 2 1 2 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 0029 005D 0063;1;1;1 1 2 2 2 1 1 2;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 0061 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 0029 0061 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 0062 005D 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# L, ON, L, R and ([)] +0061 2680 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 05D0 005B 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 05D0 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 05D0 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0062 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 0062 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 0062 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0062 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 05D0 005B 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 05D0 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 05D0 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0062 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 0062 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 0062 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 2680 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 05D0 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0062 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 0062 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 0062 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 0062 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 0062 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 2680 0062 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 05D0 005B 0029 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 05D0 0029 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0029 05D0 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 005B 0029 005D 05D0;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 05D0 0029 005D;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 2680 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 0029 05D0 005D;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 2680 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0062 0029 005D 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 2680 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 0062 05D0 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 0062 005D 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 05D0 0029 005D;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 0029 05D0 005D;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0062 0029 005D 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 005B 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 0062 05D0 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 0062 005D 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 0062 05D0 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 0062 005D 05D0;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 05D0 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 0029 05D0 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0062 0029 005D 05D0;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 005B 0061 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 0062 005D 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 0062 005D 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 0062 05D0 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 005B 0029 0061 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 0062 005D 05D0;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 + +# L, ON, R, ON and ([)] +0061 2680 0028 05D0 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 2681 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 2681 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 2681 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, R, L and ([)] +0061 2680 0028 05D0 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0062 005B 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0062 005B 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 2680 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0062 005B 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 05D0 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 0029 05D0 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 05D0 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 0029 05D0 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 05D0 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 2680 05D0 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 2680 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 2680 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, R, R and ([)] +0061 2680 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 2680 0028 05D0 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 005B 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 2680 0028 005B 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 0028 2680 05D0 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 005B 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 2680 005B 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 2680 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 005B 2680 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 005B 0029 2680 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0061 2680 05D0 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 005B 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0061 2680 005B 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 2680 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0061 005B 2680 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0061 005B 0029 2680 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 2680 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 0061 2680 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 0061 0029 2680 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 0029 0061 2680 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON, ON and ([)] +0061 0028 0062 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 2681 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0029 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0029 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0029 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0029 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 2680 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0029 2681 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0029 005D 2681;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 2680 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 2680 005D 2681;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0028 0061 005B 0062 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0029 2681 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0029 005D 2681;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 2680 005D 2681;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 2680 005D 2681;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 2680 005D 2681;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON, L and ([)] +0061 0028 0062 2680 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0063 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0063 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 2680 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 2680 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 005D 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0063 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 2680 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 2680 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 005D 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 2680 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 005B 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 2680 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 005D 2680 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0063 0029 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 005B 0062 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0029 0063 005D;1;1;1 2 2 2 1 1 2 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0029 005D 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 2680 0063 005D;1;1;1 2 2 2 1 1 2 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 2680 005D 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 005D 2680 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 2680 0063 005D;1;1;1 2 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0061 005B 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 2680 005D 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0061 005B 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 005D 2680 0063;1;1;1 2 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 0061 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 2680 0063 005D;1;1;1 1 2 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 0061 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 2680 005D 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 0061 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 005D 2680 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 + +# L, L, ON, R and ([)] +0061 0028 0062 2680 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 05D0 005B 0029 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 05D0 0029 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 2680 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 05D0 0029 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 2680 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 2680 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 2680 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 005D 2680 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 2680 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 05D0 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 2680 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 2680 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 2680 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 005D 2680 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 2680 05D0 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 2680 005D 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 005D 2680 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0028 0061 005B 0062 2680 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 05D0 0029 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0029 05D0 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 2680 0029 005D 05D0;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 2680 05D0 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 2680 005D 05D0;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 005D 2680 05D0;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 2680 05D0 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 2680 005D 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 005D 2680 05D0;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 2680 05D0 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 2680 005D 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 005D 2680 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, L, ON and ([)] +0061 0028 0062 005B 0063 2680 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 2680 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 0029 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 0029 2680 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 0063 0029 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 0029 005D 2680;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 0063 2680 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 0063 005D 2680;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 0063 2680 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 0063 005D 2680;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 005B 0062 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 0063 2680 005D;1;1;1 2 2 2 1 2 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 0063 005D 2680;1;1;1 2 2 2 1 2 1 1;7 6 5 4 1 2 3 0 + +# L, L, L, L and ([)] +0061 0028 0062 005B 0063 0029 0064 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 0029 0064 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 0029 005D 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 0029 005D 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 0063 005D 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 0063 005D 0064;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 0063 005D 0064;1;1;1 2 2 2 1 2 2 2;5 6 7 4 1 2 3 0 + +# L, L, L, R and ([)] +0061 0028 0062 005B 0063 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 05D0 0029 005D;1;1;2 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0061 0028 0062 005B 0063 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 0063 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0063 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 0063 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 0063 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 0063 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 0063 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 005B 0062 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 0063 05D0 005D;1;1;1 2 2 2 1 2 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 0063 005D 05D0;1;1;1 2 2 2 1 2 1 1;7 6 5 4 1 2 3 0 + +# L, L, R, ON and ([)] +0061 0028 0062 05D0 2680 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 2680 005B 0029 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 2680 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 2680 0029 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 0029 2680 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 0029 005D 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 2680 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 2680 0029 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 0029 2680 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 0029 005D 2680;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 0029 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 05D0 2680 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0062 005B 0029 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 05D0 005D 2680;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 05D0 2680 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 2680 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0029 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 0029 2680 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0029 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 0029 005D 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 0029 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 05D0 2680 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 0029 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 05D0 005D 2680;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 05D0 2680 005D;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 05D0 005D 2680;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0028 0061 005B 0062 05D0 2680 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 2680 0029 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 05D0 0029 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 0029 2680 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 05D0 0029 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 0029 005D 2680;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 05D0 2680 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 05D0 005D 2680;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 05D0 2680 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 0062 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 05D0 005D 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 05D0 2680 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 05D0 005D 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, R, L and ([)] +0061 0028 0062 05D0 0063 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0063 005B 0029 005D;1;1;2 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0063 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 0063 0029 005D;1;1;2 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 0063 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 0029 0063 005D;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 0029 005D 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0063 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 0063 0029 005D;1;1;2 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 0063 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 0029 0063 005D;1;1;2 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 0029 005D 0063;1;1;2 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 0029 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 05D0 0063 005D;1;1;2 2 2 2 2 1 2 1;7 6 5 0 1 2 3 4 +0061 0028 0062 005B 0029 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 0029 05D0 005D 0063;1;1;2 2 2 2 2 1 1 2;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 05D0 0063 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 0063 0029 005D;1;1;2 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0029 0063 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 0029 0063 005D;1;1;2 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0029 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 0029 005D 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 0029 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 05D0 0063 005D;1;1;2 2 2 2 2 1 2 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 0029 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 0029 05D0 005D 0063;1;1;2 2 2 2 2 1 1 2;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 05D0 0063 005D;1;1;2 2 2 2 2 1 2 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 0062 05D0 005D 0063;1;1;2 2 2 2 2 1 1 2;7 6 5 0 1 2 3 4 +0028 0061 005B 0062 05D0 0063 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 0063 0029 005D;1;1;1 2 2 2 1 2 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 05D0 0029 0063 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 0029 0063 005D;1;1;1 2 2 2 1 1 2 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 05D0 0029 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 0029 005D 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 05D0 0063 005D;1;1;1 2 2 2 1 1 2 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 0029 05D0 005D 0063;1;1;1 2 2 2 1 1 1 2;7 6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 05D0 0063 005D;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 0062 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 0062 05D0 005D 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 05D0 0063 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 05D0 0063 005D;1;1;1 1 2 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 05D0 005D 0063;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 0062 05D0 005D 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, L, R, R and ([)] +0061 0028 0062 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 0028 0062 05D0 005B 05D1 0029 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 0029 05D1 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 005B 0029 005D 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 0029 05D1 005D;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 005B 05D0 0029 005D 05D1;1;1;2 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0062 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 0062 005B 0029 05D0 005D 05D1;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0062 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 0029 05D1 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0062 05D0 0029 005D 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0062 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 005B 0062 0029 05D0 005D 05D1;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 005B 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 005B 0029 0062 05D0 005D 05D1;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0028 0061 005B 0062 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 0029 05D1 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0062 05D0 0029 005D 05D1;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0061 005B 0062 0029 05D0 005D 05D1;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 005B 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0061 005B 0029 0062 05D0 005D 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 0061 0029 0062 05D0 005D 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, ON and ([)] +0061 0028 05D0 2680 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 2680 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 2680 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 2680 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 2680 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 2680 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 2680 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON, L and ([)] +0061 0028 05D0 2680 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0062 005B 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 2680 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 2680 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 005D 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 2680 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 2680 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 005D 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 005D 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 2680 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 2680 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 2680 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 2680 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 005D 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 005D 2680 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0062 005B 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 2680 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 2680 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 005D 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 2680 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 2680 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 005D 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 005D 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 2680 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 2680 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 2680 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 2680 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 005D 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 005D 2680 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 005D 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 2680 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 2680 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 005D 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 2680 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 2680 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 2680 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 2680 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 005D 2680 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 005D 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, ON, R and ([)] +0061 0028 05D0 2680 05D1 005B 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 2680 05D1 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 2680 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 005B 2680 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 2680 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 0028 005B 05D0 2680 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 2680 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 005D 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0061 0028 005B 0029 05D0 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 2680 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 005B 0029 05D0 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 005D 2680 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 005B 0029 05D0 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 005B 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 2680 05D1 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 2680 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 005B 2680 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 2680 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0061 005B 05D0 2680 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 2680 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 005D 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0061 005B 0029 05D0 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 2680 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 005B 0029 05D0 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 005D 2680 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 005B 0029 05D0 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 0061 05D0 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 005D 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 0061 0029 05D0 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 2680 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 0061 0029 05D0 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 005D 2680 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 0061 0029 05D0 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 0029 0061 05D0 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 2680 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 0029 0061 05D0 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 005D 2680 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 0029 0061 05D0 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, ON and ([)] +0061 0028 05D0 0062 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 2680 005B 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 2680 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 0029 2680 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 0029 005D 2680;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 2680 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 2680 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 0029 2680 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 0029 005D 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 0062 2680 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 0062 005D 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 2680 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 2680 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 0029 2680 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 0029 005D 2680;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 0062 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 0062 2680 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 0062 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 0062 005D 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 0062 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 0062 2680 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 0062 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 0062 005D 2680;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 2680 005B 0029 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 2680 0029 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 0029 2680 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 0029 005D 2680;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 2680 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 2680 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 0029 2680 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 0029 005D 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 0062 2680 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 0062 005D 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 2680 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 2680 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 0029 2680 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 0029 005D 2680;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 0062 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 0062 2680 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 0062 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 0062 005D 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 0062 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 0062 2680 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 0062 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 0062 005D 2680;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 2680 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 2680 0029 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 0029 2680 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 0029 005D 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 0062 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 0062 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 0062 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 0062 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 0062 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 0062 2680 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 0062 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 0062 005D 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, L, L and ([)] +0061 0028 05D0 0062 005B 0063 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 0063 0029 005D;1;1;2 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0061 0028 05D0 0062 005B 0029 0063 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 0029 0063 005D;1;1;2 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 0029 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 0029 005D 0063;1;1;2 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 0063 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 0029 0063 005D;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 0029 005D 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 0062 005D 0063;1;1;2 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 0063 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 0029 0063 005D;1;1;2 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 0029 005D 0063;1;1;2 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 0062 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 0062 005D 0063;1;1;2 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0061 0028 005B 0029 05D0 0062 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 0062 005D 0063;1;1;2 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0061 05D0 0062 005B 0063 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 0063 0029 005D;1;1;1 2 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0061 05D0 0062 005B 0029 0063 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 0029 0063 005D;1;1;1 2 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 0029 005D 0063;1;1;1 2 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 0063 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 0029 0063 005D;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 0029 005D 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 0062 005D 0063;1;1;1 2 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 0063 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 0029 0063 005D;1;1;1 2 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 0029 005D 0063;1;1;1 2 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 0062 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 0062 005D 0063;1;1;1 2 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0061 005B 0029 05D0 0062 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 0062 005D 0063;1;1;1 2 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 0063 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 0029 0063 005D;1;1;1 1 2 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 0029 005D 0063;1;1;1 1 2 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 0062 005D 0063;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 0061 0029 05D0 0062 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 0029 0061 05D0 0062 005D 0063;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 0062 005D 0063;1;1;1 1 1 2 1 2 2 2;5 6 7 4 3 2 1 0 + +# L, R, L, R and ([)] +0061 0028 05D0 0062 05D1 005B 0029 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 05D1 005B 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 05D1 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 0029 05D1 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 005B 0029 005D 05D1;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 05D1 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 0029 05D1 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0062 0029 005D 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 0062 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 0062 05D1 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 0062 005D 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 05D1 0029 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 05D1 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 0029 05D1 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0062 0029 005D 05D1;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 0062 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 0062 05D1 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 0062 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 0062 005D 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 0062 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 0062 05D1 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 0029 05D0 0062 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 005B 0029 05D0 0062 005D 05D1;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 005B 0029 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 05D1 005B 0029 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 05D1 0029 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 0029 05D1 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 005B 0029 005D 05D1;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 05D1 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 0029 05D1 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0062 0029 005D 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 0062 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 0062 05D1 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 0062 005D 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 05D1 0029 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 05D1 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 0029 05D1 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0062 0029 005D 05D1;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 0062 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 0062 05D1 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 0062 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 0062 005D 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 0062 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 0062 05D1 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 0029 05D0 0062 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 005B 0029 05D0 0062 005D 05D1;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 05D1 0029 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 05D1 0029 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 0029 05D1 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0062 0029 005D 05D1;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 0062 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 0062 05D1 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 0062 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 0062 005D 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 0062 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 0062 05D1 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 0029 05D0 0062 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0061 0029 05D0 0062 005D 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 0062 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 0062 05D1 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 0061 05D0 0062 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 0061 05D0 0062 005D 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, ON and ([)] +0061 0028 05D0 005B 05D1 2680 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 005B 05D1 2680 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 0029 2680 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 005B 05D1 0029 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 0029 005D 2680;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 005B 05D1 0029 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 05D1 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 05D1 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 05D1 2680 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 05D1 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 05D1 005D 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 05D1 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 2680 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 005B 05D1 2680 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 2680 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 005B 05D1 0029 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 005D 2680;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 005B 05D1 0029 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 05D1 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 05D1 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 05D1 2680 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 05D1 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 05D1 005D 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 05D1 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 05D1 2680 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 05D1 005D 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, R, L and ([)] +0061 0028 05D0 005B 05D1 0062 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 005B 05D1 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 0029 0062 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 005B 05D1 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 0029 005D 0062;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 005B 05D1 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 05D1 0062 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 05D1 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 05D1 005D 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 005B 0029 05D1 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 05D1 0062 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 05D1 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 05D1 005D 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 005B 05D0 0029 05D1 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0062 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 005B 05D1 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 0062 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 005B 05D1 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 005D 0062;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 005B 05D1 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 05D1 0062 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 05D1 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 05D1 005D 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 005B 0029 05D1 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 05D1 0062 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 05D1 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 05D1 005D 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 005B 05D0 0029 05D1 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 05D1 0062 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 05D1 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 05D1 005D 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0061 05D0 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, R, R and ([)] +0061 0028 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 0 1 0;0 1 4 3 2 5 6 7 +0061 0028 05D0 005B 05D1 0029 05D2 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 0 0 1;0 1 4 3 2 5 6 7 +0061 0028 05D0 005B 05D1 0029 005D 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 05D0 005B 0029 05D1 005D 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 1 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 005B 05D0 0029 05D1 005D 05D2;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 0 1 0;0 1 4 3 2 5 6 7 +0028 0061 05D0 005B 05D1 0029 05D2 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 0 0 1;0 1 4 3 2 5 6 7 +0028 0061 05D0 005B 05D1 0029 005D 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0061 05D0 005B 0029 05D1 005D 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 1 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0061 005B 05D0 0029 05D1 005D 05D2;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 05D1 005D 05D2;0;0;0 0 0 1 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 0061 05D0 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, ON and ([)] +05D0 2680 0028 2681 005B 2682 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 2682 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 2682 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 2682 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 2682 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 005D 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681 005D 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681 005D 2682;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON, L and ([)] +05D0 2680 0028 2681 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0061 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0061 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 005D 2681 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0061 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 005D 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 005D 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 005D 2681 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 005D 2681 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 005D 2681 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, ON, R and ([)] +05D0 2680 0028 2681 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 05D1 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 05D1 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 05D1 0029 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 005D 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 005D 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 005D 2681 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 005D 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 005D 2681 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 005D 2681 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 005B 0029 05D0 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, ON and ([)] +05D0 2680 0028 0061 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 0061 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 0061 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 2681 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 0061 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 0061 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 2681 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 0061 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 0061 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 0061 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 0061 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 0061 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 0061 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 0061 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 0061 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L, L and ([)] +05D0 2680 0028 0061 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 2680 0028 0061 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +05D0 0028 2680 0061 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 0028 2680 0061 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +05D0 0028 005B 0029 2680 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 2680 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 05D0 2680 0061 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 05D0 2680 0061 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 0061 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 0061 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 05D0 005B 0029 2680 0061 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 05D0 0029 2680 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 0029 05D0 2680 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 2680 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 + +# R, ON, L, R and ([)] +05D0 2680 0028 0061 05D1 005B 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 005B 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 2680 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 2680 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 005B 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 0061 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 0061 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 0061 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 0061 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 0061 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 0061 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 2680 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 2680 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, ON and ([)] +05D0 2680 0028 05D1 2681 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 2681 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 2681 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 005B 0029 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 2681 0029 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 2681 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 005D 2681;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 2681 0029 005D;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 2680 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 2681 005D;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 2680 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 005D 2681;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 2680 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 05D1 2681 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 05D1 005D 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 2681 0029 005D;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 2681 005D;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 005D 2681;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 05D1 2681 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 05D1 005D 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 05D1 2681 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 05D1 005D 2681;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 2681 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 2681 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 005D 2681;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 05D1 2681 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 05D1 005D 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 05D1 2681 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 05D1 005D 2681;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 05D1 2681 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 0029 05D0 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 05D1 005D 2681;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 0029 05D0 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, R, L and ([)] +05D0 2680 0028 05D1 0061 005B 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0061 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0061 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 005B 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0061 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0061 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0061 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 2680 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 005B 0029 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0061 0029 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 0061 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 005D 0061;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0061 0029 005D;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 2680 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 0061 005D;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 2680 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 005D 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 2680 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 05D1 0061 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 05D1 005D 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0061 0029 005D;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 2680 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 0061 005D;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 005D 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 05D1 0061 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 05D1 005D 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 05D1 0061 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 05D1 005D 0061;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0061 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 0061 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 005D 0061;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 05D1 005D 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 05D1 005D 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 05D1 0061 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 0029 05D0 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 05D1 005D 0061;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 005B 0029 05D0 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, R, R and ([)] +05D0 2680 0028 05D1 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 05D2 0029 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 05D2 005D;0;0;0 1 1 1 0 0 1 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 005D 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 05D2 005D;0;0;0 1 1 1 1 0 1 0;0 4 3 2 1 5 6 7 +0028 05D0 2680 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 005D 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 2680 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 05D1 005D 05D2;0;0;0 1 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 05D0 2680 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 05D2 005D;0;0;0 1 1 1 1 0 1 0;0 4 3 2 1 5 6 7 +0028 05D0 005B 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 005D 05D2;0;0;0 1 1 1 1 0 0 1;0 4 3 2 1 5 6 7 +0028 05D0 005B 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 05D1 005D 05D2;0;0;0 1 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 05D0 005B 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 2680 05D1 005D 05D2;0;0;0 1 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 05D0 005B 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 05D2 005D;0;0;0 0 1 1 1 0 1 0;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 005D 05D2;0;0;0 0 1 1 1 0 0 1;0 1 4 3 2 5 6 7 +0028 005B 05D0 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 05D0 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 2680 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 05D0 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 2680 05D1 005D 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 005B 0029 05D0 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, ON and ([)] +05D0 0028 0061 2680 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 2680 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 2680 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON, L and ([)] +05D0 0028 0061 2680 0062 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0062 005B 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 2680 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 2680 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0062 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 005B 2680 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 005D 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0062 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 0028 005B 0061 2680 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 2680 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 2680 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 005D 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 005D 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 2680 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +05D0 0028 005B 0029 0061 2680 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 2680 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 005B 0029 0061 005D 2680 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 005D 2680 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0061 2680 0062 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0062 005B 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 2680 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 2680 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0062 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 005B 2680 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 005D 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0062 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 05D0 005B 0061 2680 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 2680 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 2680 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 005D 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 005D 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 2680 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 05D0 005B 0029 0061 2680 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 2680 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 005B 0029 0061 005D 2680 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 005D 2680 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 05D0 0061 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 005B 05D0 0061 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 2680 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 2680 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 005D 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 2680 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 05D0 0029 0061 2680 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 2680 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 05D0 0029 0061 005D 2680 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 005D 2680 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 0029 05D0 0061 2680 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 005B 0029 05D0 0061 2680 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 2680 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 005B 0029 05D0 0061 005D 2680 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 005D 2680 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 + +# R, L, ON, R and ([)] +05D0 0028 0061 2680 05D1 005B 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 005D 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 2680 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 005D 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 2680 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 2680 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 005D 2680 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 005B 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 005D 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 2680 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 005D 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 2680 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 2680 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 005D 2680 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 2680 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 2680 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 2680 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 005D 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, L, ON and ([)] +05D0 0028 0061 005B 0062 2680 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 2680 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 005B 0062 0029 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 0029 2680 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 005B 0062 0029 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 0029 005D 2680;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 005B 0029 0062 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 0062 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 0062 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 0062 2680 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 0062 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 0062 005D 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0062 2680 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 2680 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 0029 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 0029 2680 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 0029 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 0029 005D 2680;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 005B 0029 0062 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 0062 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 0062 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 0062 2680 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 0062 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 0062 005D 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 0062 2680 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 0062 005D 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, L, L and ([)] +05D0 0028 0061 005B 0062 0029 0063 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 1 2 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 005B 0062 0029 005D 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 1 1 2;7 6 5 2 3 4 1 0 +05D0 0028 0061 005B 0029 0062 005D 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +05D0 0028 005B 0061 0029 0062 005D 0063;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 0062 005D 0063;1;1;1 1 1 2 1 2 2 2;5 6 7 4 3 2 1 0 +0028 05D0 0061 005B 0062 0029 0063 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 1 2 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 0029 005D 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 1 1 2;7 6 5 2 3 4 1 0 +0028 05D0 0061 005B 0029 0062 005D 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 05D0 005B 0061 0029 0062 005D 0063;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 0062 005D 0063;1;1;1 1 1 2 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 05D0 0061 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 0062 005D 0063;1;1;1 1 1 2 1 2 2 2;5 6 7 4 3 2 1 0 + +# R, L, L, R and ([)] +05D0 0028 0061 005B 0062 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 05D1 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 005B 0062 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 0029 05D1 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 005B 0062 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0062 0029 005D 05D1;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +05D0 0028 0061 005B 0029 0062 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 0062 05D1 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 0062 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 0062 005D 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 0062 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 0062 05D1 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 0062 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 0062 005D 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0062 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 05D1 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 0029 05D1 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0062 0029 005D 05D1;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 05D0 0061 005B 0029 0062 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 0062 05D1 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 0062 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 0062 005D 05D1;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 0062 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 0062 05D1 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 0062 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 0062 005D 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 0062 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 0062 05D1 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 0062 005D 05D1;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, R, ON and ([)] +05D0 0028 0061 05D1 2680 005B 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 2680 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 2680 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 005D 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 2680 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 2680 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 2680 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 0029 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 005D 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 0029 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 05D1 2680 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 05D1 005D 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 2680 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 2680 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 2680 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 0029 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 005D 2680;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 0029 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 05D1 2680 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 05D1 005D 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 05D1 2680 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 05D1 005D 2680;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 005B 0029 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 2680 0029 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 2680 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 005D 2680;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 2680 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 2680 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 2680 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 0029 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 005D 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 0029 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 05D1 2680 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 05D1 005D 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 2680 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 2680 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 2680 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 0029 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 005D 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 0029 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 05D1 2680 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 05D1 005D 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 05D1 2680 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 05D1 005D 2680;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 2680 0029 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 2680 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 2680 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 0029 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 005D 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 0029 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 05D1 2680 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 05D1 005D 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, R, L and ([)] +05D0 0028 0061 05D1 0062 005B 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0062 005B 0029 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0062 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 0062 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 005D 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0062 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 0062 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 005D 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 05D1 0062 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 05D1 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 05D1 005D 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0062 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 0062 0029 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 0062 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 005D 0062;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 05D1 0062 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 05D1 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 05D1 005D 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 0029 05D1 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 05D1 0062 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 05D1 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 05D1 005D 0062;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0029 0061 05D1 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 005B 0029 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0062 005B 0029 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0062 0029 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 0062 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 005D 0062;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0062 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 0062 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 005D 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 05D1 0062 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 05D1 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 05D1 005D 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0062 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 0062 0029 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 0062 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 005D 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 05D1 0062 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 05D1 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 05D1 005D 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 0029 05D1 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 05D1 0062 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 05D1 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 05D1 005D 0062;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 0061 05D1 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0062 0029 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 0062 0029 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 0062 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 005D 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 05D1 0062 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 05D1 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 05D1 005D 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 0029 05D1 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 05D1 0062 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 05D1 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 05D1 005D 0062;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 0061 05D1 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 05D1 0062 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 05D1 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 05D1 005D 0062;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 005B 0029 05D0 0061 05D1 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# R, L, R, R and ([)] +05D0 0028 0061 05D1 005B 05D2 0029 005D;0;0;1 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +05D0 0028 0061 05D1 005B 05D2 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 05D2 005D;0;0;1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 005D 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 005B 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 05D2 005D;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 005D 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 005B 05D1 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 05D1 005D 05D2;0;0;1 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +05D0 0028 0061 005B 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 05D2 005D;0;0;1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 005D 05D2;0;0;1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 0061 05D1 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 05D1 005D 05D2;0;0;1 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +05D0 0028 005B 0061 0029 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 0061 05D1 005D 05D2;0;0;1 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +05D0 0028 005B 0029 0061 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 05D2 0029 005D;0;0;0 1 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 05D0 0061 05D1 005B 05D2 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 05D2 005D;0;0;0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 005D 05D2;0;0;0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 005B 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 05D2 005D;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 005D 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 005B 05D1 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 05D1 005D 05D2;0;0;0 1 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 05D0 0061 005B 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 05D2 005D;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 005D 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0061 05D1 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 05D1 005D 05D2;0;0;0 1 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 05D0 005B 0061 0029 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 0061 05D1 005D 05D2;0;0;0 1 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 05D0 005B 0029 0061 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 05D2 005D;0;0;0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 005D 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0061 05D1 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 05D0 0061 0029 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 0061 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 05D0 0029 0061 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 0029 05D0 0061 05D1 005D 05D2;0;0;0 0 0 1 0 1 1 1;0 1 2 3 4 7 6 5 +0028 005B 0029 05D0 0061 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, ON and ([)] +05D0 0028 05D1 2680 005B 2681 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 2681 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 005D 2681;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 2680 005D 2681;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 2681 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 005D 2681;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680 005D 2681;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 2680 005D 2681;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 2680 005D 2681;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON, L and ([)] +05D0 0028 05D1 2680 0061 005B 0029 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0061 0029 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 2680 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0061 0029 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 2680 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 005D 2680 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0061 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 2680 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 2680 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 005D 2680 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 2680 0061 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 2680 005D 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 005D 2680 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0061 0029 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 2680 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 0061 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 2680 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 005D 0061;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680 0061 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680 005D 0061;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 005D 2680 0061;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 2680 0061 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 2680 005D 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 005D 2680 0061;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 2680 0061 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 2680 005D 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 005D 2680 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, ON, R and ([)] +05D0 0028 05D1 2680 05D2 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 2680 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 2680 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 2680 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 05D2 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 05D2 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 05D1 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 2680 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 005B 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 05D2 0029 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 005B 05D1 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 05D2 005D;0;0;0 1 1 1 0 0 1 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 005D 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680 05D2 005D;0;0;0 1 1 1 0 0 1 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680 005D 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 005D 2680 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 2680 05D2 005D;0;0;0 1 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 05D0 005B 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 2680 005D 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 005B 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 005D 2680 05D2;0;0;0 1 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 05D0 005B 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 2680 05D2 005D;0;0;0 0 1 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 005B 05D0 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 2680 005D 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 05D0 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 005D 2680 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 005B 05D0 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, ON and ([)] +05D0 0028 05D1 0061 2680 005B 0029 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 2680 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 2680 0029 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 2680 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 0029 2680 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 0029 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 0029 005D 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 0029 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 2680 0029 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 2680 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 2680 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 0029 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 005D 2680;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 0029 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 0061 2680 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 0061 005D 2680;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 2680 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 2680 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 2680 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 0029 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 005D 2680;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 0029 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 0061 2680 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 0061 005D 2680;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 0061 2680 005D;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 0061 005D 2680;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 2680 0029 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0061 2680 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 2680 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0061 0029 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 005D 2680;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0061 0029 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 0061 2680 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 0061 005D 2680;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 0061 2680 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 0061 005D 2680;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 0061 2680 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 0061 005D 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, L, L and ([)] +05D0 0028 05D1 0061 005B 0062 0029 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 0028 05D1 0061 005B 0029 0062 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 0029 005D 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 0062 005D;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 005D 0062;0;0;1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 0061 005D 0062;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 0062 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 005D 0062;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 0061 005D 0062;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +05D0 0028 005B 0029 05D1 0061 005D 0062;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 0062 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 005D 0062;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 0061 005D 0062;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 05D0 005B 0029 05D1 0061 005D 0062;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 005B 05D0 0029 05D1 0061 005D 0062;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 + +# R, R, L, R and ([)] +05D0 0028 05D1 0061 05D2 005B 0029 005D;0;0;1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 05D2 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 05D2 0029 005D;0;0;1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 05D2 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 0029 05D2 005D;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 0029 005D 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 0061 005B 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 05D2 0029 005D;0;0;1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 05D2 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 05D2 005D;0;0;1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 005D 05D2;0;0;1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 05D1 005B 0061 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 0061 05D2 005D;0;0;1 1 1 1 1 0 1 0;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 0061 005D 05D2;0;0;1 1 1 1 1 0 0 1;4 3 2 1 0 5 6 7 +05D0 0028 05D1 005B 0029 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 05D2 0029 005D;0;0;1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 05D2 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 05D2 005D;0;0;1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 005D 05D2;0;0;1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 005B 05D1 0061 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 0061 05D2 005D;0;0;1 1 1 1 1 0 1 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 0061 005D 05D2;0;0;1 1 1 1 1 0 0 1;4 3 2 1 0 5 6 7 +05D0 0028 005B 05D1 0029 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 0061 05D2 005D;0;0;1 1 1 1 1 0 1 0;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 0029 05D1 0061 005D 05D2;0;0;1 1 1 1 1 0 0 1;4 3 2 1 0 5 6 7 +05D0 0028 005B 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 05D2 0029 005D;0;0;0 1 1 1 0 1 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0061 05D2 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 05D2 005D;0;0;0 1 1 1 0 0 1 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0061 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 005D 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0061 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 0061 05D2 005D;0;0;0 1 1 1 0 0 1 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 0061 005D 05D2;0;0;0 1 1 1 0 0 0 1;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 0061 05D2 005D;0;0;0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 0029 05D1 0061 005D 05D2;0;0;0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 005B 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 0061 05D2 005D;0;0;0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 005B 05D0 0029 05D1 0061 005D 05D2;0;0;0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 005B 05D0 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, ON and ([)] +05D0 0028 05D1 005B 05D2 2680 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 05D2 2680 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 2680 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 05D2 0029 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 005D 2680;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 05D2 0029 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2 2680 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2 005D 2680;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2 2680 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2 005D 2680;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 05D2 2680 005D;0;0;0 1 1 1 0 1 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 05D2 005D 2680;0;0;0 1 1 1 0 1 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, R, L and ([)] +05D0 0028 05D1 005B 05D2 0061 0029 005D;0;0;1 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +05D0 0028 05D1 005B 05D2 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 05D2 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 05D2 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 005B 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 005B 05D1 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 05D2 0061 005D;0;0;0 1 1 1 0 1 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 05D2 005D 0061;0;0;0 1 1 1 0 1 0 0;0 3 2 1 4 5 6 7 +0028 05D0 005B 05D1 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, R, R and ([)] +05D0 0028 05D1 005B 05D2 0029 05D3 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 005B 05D2 0029 05D3 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 005D 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 005D 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2 005D 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2 005D 05D3;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 05D2 005D 05D3;0;0;0 1 1 1 0 1 1 1;0 3 2 1 4 7 6 5 +0028 05D0 005B 05D1 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ( +0028;0;0;0;0 +0028;1;1;1;0 + +# ON and ( +2680 0028;0;0;0 0;0 1 +2680 0028;1;1;1 1;1 0 +0028 2680;0;0;0 0;0 1 +0028 2680;1;1;1 1;1 0 + +# L and ( +0061 0028;0;0;0 0;0 1 +0061 0028;1;1;2 1;1 0 +0028 0061;0;0;0 0;0 1 +0028 0061;1;1;1 2;1 0 + +# R and ( +05D0 0028;0;0;1 0;0 1 +05D0 0028;1;1;1 1;1 0 +0028 05D0;0;0;0 1;0 1 +0028 05D0;1;1;1 1;1 0 + +# ON, ON and ( +2680 0028 2681;0;0;0 0 0;0 1 2 +2680 0028 2681;1;1;1 1 1;2 1 0 + +# ON, L and ( +2680 0028 0061;0;0;0 0 0;0 1 2 +2680 0028 0061;1;1;1 1 2;2 1 0 +0028 2680 0061;0;0;0 0 0;0 1 2 +0028 2680 0061;1;1;1 1 2;2 1 0 + +# ON, R and ( +2680 0028 05D0;0;0;0 0 1;0 1 2 +2680 0028 05D0;1;1;1 1 1;2 1 0 +0028 2680 05D0;0;0;0 0 1;0 1 2 +0028 2680 05D0;1;1;1 1 1;2 1 0 + +# L, ON and ( +0061 2680 0028;0;0;0 0 0;0 1 2 +0061 2680 0028;1;1;2 1 1;2 1 0 +0061 0028 2680;0;0;0 0 0;0 1 2 +0061 0028 2680;1;1;2 1 1;2 1 0 + +# L, L and ( +0061 0028 0062;0;0;0 0 0;0 1 2 +0061 0028 0062;1;1;2 2 2;0 1 2 + +# L, R and ( +0061 0028 05D0;0;0;0 0 1;0 1 2 +0061 0028 05D0;1;1;2 1 1;2 1 0 + +# R, ON and ( +05D0 2680 0028;0;0;1 0 0;0 1 2 +05D0 2680 0028;1;1;1 1 1;2 1 0 +05D0 0028 2680;0;0;1 0 0;0 1 2 +05D0 0028 2680;1;1;1 1 1;2 1 0 + +# R, L and ( +05D0 0028 0061;0;0;1 0 0;0 1 2 +05D0 0028 0061;1;1;1 1 2;2 1 0 + +# R, R and ( +05D0 0028 05D1;0;0;1 1 1;2 1 0 +05D0 0028 05D1;1;1;1 1 1;2 1 0 + +# ON, ON, L and ( +2680 0028 2681 0061;0;0;0 0 0 0;0 1 2 3 +2680 0028 2681 0061;1;1;1 1 1 2;3 2 1 0 + +# ON, ON, R and ( +2680 0028 2681 05D0;0;0;0 0 0 1;0 1 2 3 +2680 0028 2681 05D0;1;1;1 1 1 1;3 2 1 0 + +# L, ON, ON and ( +0061 2680 0028 2681;0;0;0 0 0 0;0 1 2 3 +0061 2680 0028 2681;1;1;2 1 1 1;3 2 1 0 + +# L, ON, L and ( +0061 2680 0028 0062;0;0;0 0 0 0;0 1 2 3 +0061 2680 0028 0062;1;1;2 2 2 2;0 1 2 3 +0061 0028 2680 0062;0;0;0 0 0 0;0 1 2 3 +0061 0028 2680 0062;1;1;2 2 2 2;0 1 2 3 + +# L, ON, R and ( +0061 2680 0028 05D0;0;0;0 0 0 1;0 1 2 3 +0061 2680 0028 05D0;1;1;2 1 1 1;3 2 1 0 +0061 0028 2680 05D0;0;0;0 0 0 1;0 1 2 3 +0061 0028 2680 05D0;1;1;2 1 1 1;3 2 1 0 + +# R, ON, ON and ( +05D0 2680 0028 2681;0;0;1 0 0 0;0 1 2 3 +05D0 2680 0028 2681;1;1;1 1 1 1;3 2 1 0 + +# R, ON, L and ( +05D0 2680 0028 0061;0;0;1 0 0 0;0 1 2 3 +05D0 2680 0028 0061;1;1;1 1 1 2;3 2 1 0 +05D0 0028 2680 0061;0;0;1 0 0 0;0 1 2 3 +05D0 0028 2680 0061;1;1;1 1 1 2;3 2 1 0 + +# R, ON, R and ( +05D0 2680 0028 05D1;0;0;1 1 1 1;3 2 1 0 +05D0 2680 0028 05D1;1;1;1 1 1 1;3 2 1 0 +05D0 0028 2680 05D1;0;0;1 1 1 1;3 2 1 0 +05D0 0028 2680 05D1;1;1;1 1 1 1;3 2 1 0 + +# L, ON, ON, L and ( +0061 2680 0028 2681 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 2681 0062;1;1;2 2 2 2 2;0 1 2 3 4 + +# L, ON, ON, R and ( +0061 2680 0028 2681 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 2680 0028 2681 05D0;1;1;2 1 1 1 1;4 3 2 1 0 + +# R, ON, ON, L and ( +05D0 2680 0028 2681 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 2681 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, ON, ON, R and ( +05D0 2680 0028 2681 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 2680 0028 2681 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ) +0029;0;0;0;0 +0029;1;1;1;0 + +# ON and ) +2680 0029;0;0;0 0;0 1 +2680 0029;1;1;1 1;1 0 +0029 2680;0;0;0 0;0 1 +0029 2680;1;1;1 1;1 0 + +# L and ) +0061 0029;0;0;0 0;0 1 +0061 0029;1;1;2 1;1 0 +0029 0061;0;0;0 0;0 1 +0029 0061;1;1;1 2;1 0 + +# R and ) +05D0 0029;0;0;1 0;0 1 +05D0 0029;1;1;1 1;1 0 +0029 05D0;0;0;0 1;0 1 +0029 05D0;1;1;1 1;1 0 + +# ON, ON and ) +2680 0029 2681;0;0;0 0 0;0 1 2 +2680 0029 2681;1;1;1 1 1;2 1 0 + +# ON, L and ) +2680 0029 0061;0;0;0 0 0;0 1 2 +2680 0029 0061;1;1;1 1 2;2 1 0 +0029 2680 0061;0;0;0 0 0;0 1 2 +0029 2680 0061;1;1;1 1 2;2 1 0 + +# ON, R and ) +2680 0029 05D0;0;0;0 0 1;0 1 2 +2680 0029 05D0;1;1;1 1 1;2 1 0 +0029 2680 05D0;0;0;0 0 1;0 1 2 +0029 2680 05D0;1;1;1 1 1;2 1 0 + +# L, ON and ) +0061 2680 0029;0;0;0 0 0;0 1 2 +0061 2680 0029;1;1;2 1 1;2 1 0 +0061 0029 2680;0;0;0 0 0;0 1 2 +0061 0029 2680;1;1;2 1 1;2 1 0 + +# L, L and ) +0061 0029 0062;0;0;0 0 0;0 1 2 +0061 0029 0062;1;1;2 2 2;0 1 2 + +# L, R and ) +0061 0029 05D0;0;0;0 0 1;0 1 2 +0061 0029 05D0;1;1;2 1 1;2 1 0 + +# R, ON and ) +05D0 2680 0029;0;0;1 0 0;0 1 2 +05D0 2680 0029;1;1;1 1 1;2 1 0 +05D0 0029 2680;0;0;1 0 0;0 1 2 +05D0 0029 2680;1;1;1 1 1;2 1 0 + +# R, L and ) +05D0 0029 0061;0;0;1 0 0;0 1 2 +05D0 0029 0061;1;1;1 1 2;2 1 0 + +# R, R and ) +05D0 0029 05D1;0;0;1 1 1;2 1 0 +05D0 0029 05D1;1;1;1 1 1;2 1 0 + +# ON, ON, L and ) +2680 0029 2681 0061;0;0;0 0 0 0;0 1 2 3 +2680 0029 2681 0061;1;1;1 1 1 2;3 2 1 0 + +# ON, ON, R and ) +2680 0029 2681 05D0;0;0;0 0 0 1;0 1 2 3 +2680 0029 2681 05D0;1;1;1 1 1 1;3 2 1 0 + +# L, ON, ON and ) +0061 2680 0029 2681;0;0;0 0 0 0;0 1 2 3 +0061 2680 0029 2681;1;1;2 1 1 1;3 2 1 0 + +# L, ON, L and ) +0061 2680 0029 0062;0;0;0 0 0 0;0 1 2 3 +0061 2680 0029 0062;1;1;2 2 2 2;0 1 2 3 +0061 0029 2680 0062;0;0;0 0 0 0;0 1 2 3 +0061 0029 2680 0062;1;1;2 2 2 2;0 1 2 3 + +# L, ON, R and ) +0061 2680 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0061 2680 0029 05D0;1;1;2 1 1 1;3 2 1 0 +0061 0029 2680 05D0;0;0;0 0 0 1;0 1 2 3 +0061 0029 2680 05D0;1;1;2 1 1 1;3 2 1 0 + +# R, ON, ON and ) +05D0 2680 0029 2681;0;0;1 0 0 0;0 1 2 3 +05D0 2680 0029 2681;1;1;1 1 1 1;3 2 1 0 + +# R, ON, L and ) +05D0 2680 0029 0061;0;0;1 0 0 0;0 1 2 3 +05D0 2680 0029 0061;1;1;1 1 1 2;3 2 1 0 +05D0 0029 2680 0061;0;0;1 0 0 0;0 1 2 3 +05D0 0029 2680 0061;1;1;1 1 1 2;3 2 1 0 + +# R, ON, R and ) +05D0 2680 0029 05D1;0;0;1 1 1 1;3 2 1 0 +05D0 2680 0029 05D1;1;1;1 1 1 1;3 2 1 0 +05D0 0029 2680 05D1;0;0;1 1 1 1;3 2 1 0 +05D0 0029 2680 05D1;1;1;1 1 1 1;3 2 1 0 + +# L, ON, ON, L and ) +0061 2680 0029 2681 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0029 2681 0062;1;1;2 2 2 2 2;0 1 2 3 4 + +# L, ON, ON, R and ) +0061 2680 0029 2681 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 2680 0029 2681 05D0;1;1;2 1 1 1 1;4 3 2 1 0 + +# R, ON, ON, L and ) +05D0 2680 0029 2681 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0029 2681 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, ON, ON, R and ) +05D0 2680 0029 2681 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# (() +0028 0028 0029;0;0;0 0 0;0 1 2 +0028 0028 0029;1;1;1 1 1;2 1 0 + +# ON and (() +2680 0028 0028 0029;0;0;0 0 0 0;0 1 2 3 +2680 0028 0028 0029;1;1;1 1 1 1;3 2 1 0 +0028 2680 0028 0029;0;0;0 0 0 0;0 1 2 3 +0028 2680 0028 0029;1;1;1 1 1 1;3 2 1 0 +0028 0028 2680 0029;0;0;0 0 0 0;0 1 2 3 +0028 0028 2680 0029;1;1;1 1 1 1;3 2 1 0 +0028 0028 0029 2680;0;0;0 0 0 0;0 1 2 3 +0028 0028 0029 2680;1;1;1 1 1 1;3 2 1 0 + +# L and (() +0061 0028 0028 0029;0;0;0 0 0 0;0 1 2 3 +0061 0028 0028 0029;1;1;2 1 1 1;3 2 1 0 +0028 0061 0028 0029;0;0;0 0 0 0;0 1 2 3 +0028 0061 0028 0029;1;1;1 2 1 1;3 2 1 0 +0028 0028 0061 0029;0;0;0 0 0 0;0 1 2 3 +0028 0028 0061 0029;1;1;1 1 2 1;3 2 1 0 +0028 0028 0029 0061;0;0;0 0 0 0;0 1 2 3 +0028 0028 0029 0061;1;1;1 1 1 2;3 2 1 0 + +# R and (() +05D0 0028 0028 0029;0;0;1 0 0 0;0 1 2 3 +05D0 0028 0028 0029;1;1;1 1 1 1;3 2 1 0 +0028 05D0 0028 0029;0;0;0 1 0 0;0 1 2 3 +0028 05D0 0028 0029;1;1;1 1 1 1;3 2 1 0 +0028 0028 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0028 0028 05D0 0029;1;1;1 1 1 1;3 2 1 0 +0028 0028 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0028 0028 0029 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and (() +2680 0028 2681 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and (() +2680 0028 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 2680 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0028 2680 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0028 2680 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0028 0029 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and (() +2680 0028 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 2680 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0028 2680 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0028 2680 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0028 0029 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and (() +0061 2680 0028 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0028 2680 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0028 0029 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0028 2680 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0028 0029 2680;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0028 0061 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0028 0061 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and (() +0061 0028 0062 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 0028 0029;1;1;2 2 2 1 1;4 3 0 1 2 +0061 0028 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0028 0062 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0028 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0028 0061 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0028 0062 0029;1;1;1 2 2 2 2;1 2 3 4 0 +0028 0061 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0028 0029 0062;1;1;1 2 2 2 2;1 2 3 4 0 +0028 0028 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 + +# L, R and (() +0061 0028 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 0028 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 0028 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0061 0028 05D0 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 0028 0029 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0028 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0028 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0028 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0028 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and (() +05D0 2680 0028 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0028 2680 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0028 0029 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0028 2680 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0028 0029 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0028 05D0 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0028 05D0 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and (() +05D0 0028 0061 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 0028 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 0028 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 0061 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0028 0061 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 05D0 0028 0029 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0028 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0028 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0028 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0028 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and (() +05D0 0028 05D1 0028 0029;0;0;1 1 1 0 0;2 1 0 3 4 +05D0 0028 05D1 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0028 05D1 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0028 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0028 05D1 0029;0;0;0 1 1 1 1;0 4 3 2 1 +0028 05D0 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0028 0029 05D1;0;0;0 1 1 1 1;0 4 3 2 1 +0028 05D0 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0028 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +0028 0028 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and (() +2680 0028 2681 0028 2682 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0028 2682 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0028 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and (() +2680 0028 2681 0061 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and (() +2680 0028 2681 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 2681 0028 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 0028 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0028 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0028 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0028 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0028 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0028 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0028 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 2680 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and (() +2680 0028 0061 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0028 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0028 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0028 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0028 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and (() +2680 0028 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +2680 0028 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 2680 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 2680 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# ON, L, R and (() +2680 0028 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 2680 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 2680 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and (() +2680 0028 05D0 2681 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0028 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0028 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0028 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0028 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 2680 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 2680 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and (() +2680 0028 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 2680 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 2680 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and (() +2680 0028 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +2680 0028 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +2680 0028 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +2680 0028 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 2680 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 2680 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 2680 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0028 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and (() +0061 2680 0028 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0028 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0028 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0028 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0028 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 2680 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0028 2681 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0028 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 2680 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and (() +0061 2680 0028 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 2680 0028 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 2680 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0028 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 2680 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0028 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0029 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 0028 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0028 0062 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0028 0029 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0028 0061 0028 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 2680 0062 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 2680 0029 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0029 2680 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0028 0028 0061 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 2680 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 0029 2680 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, ON, R and (() +0061 2680 0028 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 2680 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0028 2680 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0028 2680 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0028 0029 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 2680 0028 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 0028 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0028 2680 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0028 2680 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0028 0029 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 0061 2680 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 0061 2680 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 0061 0029 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and (() +0061 0028 0062 2680 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 0028 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0028 2680 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0028 0062 0028 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0028 0029 2680;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0028 0028 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0062 2680 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0028 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0062 0029 2680;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0028 0061 0028 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0062 2680 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0062 0029 2680;1;1;1 2 2 2 2 1;5 1 2 3 4 0 + +# L, L, L and (() +0061 0028 0062 0028 0063 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0028 0063 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0062 0029 0063;1;1;1 2 2 2 2 2;1 2 3 4 5 0 + +# L, L, R and (() +0061 0028 0062 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 0028 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0062 0028 05D0 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 0028 0029 05D0;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0028 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0028 0062 05D0 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0028 0062 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0028 0061 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0028 0062 05D0 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0028 0062 0029 05D0;1;1;1 2 2 2 2 1;5 1 2 3 4 0 + +# L, R, ON and (() +0061 0028 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0028 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0028 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0028 05D0 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0028 05D0 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0028 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0028 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0028 05D0 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0028 05D0 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0061 05D0 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0061 05D0 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and (() +0061 0028 05D0 0062 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 0028 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0028 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0028 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0028 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0028 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 0028 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0028 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0028 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0028 05D0 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0028 05D0 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and (() +0061 0028 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0061 0028 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0061 0028 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 0028 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0061 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0061 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0061 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0028 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and (() +05D0 2680 0028 2681 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and (() +05D0 2680 0028 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and (() +05D0 2680 0028 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 2680 0028 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 2680 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0028 05D0 2680 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0028 05D0 2680 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0028 05D0 0028 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0028 05D0 0028 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0028 05D0 0028 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 0028 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0028 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0028 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and (() +05D0 0028 0061 2680 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and (() +05D0 0028 0061 0028 0062 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +05D0 0028 0028 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 05D0 0061 0028 0062 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 05D0 0028 0061 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# R, L, R and (() +05D0 0028 0061 05D1 0028 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0061 0028 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 0028 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0061 0028 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 0028 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0028 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0028 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and (() +05D0 0028 05D1 2680 0028 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0028 05D1 2680 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0028 05D1 0028 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0028 05D1 0028 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 0028 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0028 05D0 0028 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 0028 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and (() +05D0 0028 05D1 0061 0028 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0028 05D1 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0028 05D1 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0028 05D1 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and (() +05D0 0028 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0028 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and (() +2680 0028 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and (() +2680 0028 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and (() +2680 0028 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and (() +2680 0028 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 2682 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0028 2682 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0028 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and (() +2680 0028 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, ON, L, R and (() +2680 0028 2681 0061 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 05D0 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0028 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0061 0028 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0028 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and (() +2680 0028 2681 05D0 2682 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 2682 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and (() +2680 0028 2681 05D0 0061 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and (() +2680 0028 2681 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and (() +2680 0028 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and (() +2680 0028 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0028 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0028 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0028 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0028 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0028 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 2680 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 2680 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 2680 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 2680 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 2680 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0028 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, ON, R and (() +2680 0028 0061 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and (() +2680 0028 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0028 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0062 0029 2681;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 2680 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0062 0029 2681;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# ON, L, L, L and (() +2680 0028 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 2680 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# ON, L, L, R and (() +2680 0028 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# ON, L, R, ON and (() +2680 0028 0061 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and (() +2680 0028 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and (() +2680 0028 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and (() +2680 0028 05D0 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and (() +2680 0028 05D0 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and (() +2680 0028 05D0 2681 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0028 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0028 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0028 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0028 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0028 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 2680 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 2680 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 2680 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 2680 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 2680 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0028 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and (() +2680 0028 05D0 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and (() +2680 0028 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, R, L, R and (() +2680 0028 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and (() +2680 0028 05D0 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0028 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 2680 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and (() +2680 0028 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and (() +2680 0028 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0028 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 2680 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and (() +0061 2680 0028 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and (() +0061 2680 0028 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0062 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 2681 0062 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 2681 0029 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 2681 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 2681 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0028 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, ON, R and (() +0061 2680 0028 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and (() +0061 2680 0028 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 2681 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 2681 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 2681 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 2681 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0062 2681 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0062 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0062 2681 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0062 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0028 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and (() +0061 2680 0028 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 0063 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0062 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0062 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0028 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# L, ON, L, R and (() +0061 2680 0028 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 2680 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0062 0028 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0028 0062 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 2680 0062 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0028 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 2680 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and (() +0061 2680 0028 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and (() +0061 2680 0028 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and (() +0061 2680 0028 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 2680 0028 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 2680 0028 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 2680 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 2680 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 0028 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 2680 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 2680 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 0028 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 0061 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and (() +0061 0028 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 2681 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 0029 2681;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 2681;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 + +# L, L, ON, L and (() +0061 0028 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0063 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 0063 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 2680 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 + +# L, L, ON, R and (() +0061 0028 0062 2680 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 05D0 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 05D0 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 0029 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 05D0 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 2680 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 2680 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 05D0 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 2680 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 + +# L, L, L, ON and (() +0061 0028 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, L, L and (() +0061 0028 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and (() +0061 0028 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 05D0 0029;1;1;2 2 2 1 2 1 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, R, ON and (() +0061 0028 0062 05D0 2680 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 2680 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0028 2680 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0028 0029 2680;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 05D0 2680 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 05D0 0029 2680;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 05D0 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 05D0 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 05D0 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 05D0 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, R, L and (() +0061 0028 0062 05D0 0063 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0063 0028 0029;1;1;2 2 2 1 2 1 1;6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0063 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0028 0063 0029;1;1;2 2 2 1 1 2 1;6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0028 0029 0063;1;1;2 2 2 1 1 1 2;6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 05D0 0063 0029;1;1;2 2 2 1 1 2 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 05D0 0029 0063;1;1;2 2 2 1 1 1 2;6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 05D0 0063 0029;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 05D0 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 05D0 0063 0029;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 05D0 0029 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, L, R, R and (() +0061 0028 0062 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0062 05D0 0028 05D1 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0062 05D0 0028 0029 05D1;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0028 05D0 0029 05D1;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0062 05D0 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0062 05D0 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, ON and (() +0061 0028 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and (() +0061 0028 05D0 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and (() +0061 0028 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0028 05D0 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0028 05D0 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0028 05D0 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0028 05D0 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0028 05D0 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 0028 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0061 05D0 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0061 05D0 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0061 05D0 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0061 05D0 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0061 05D0 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 0028 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0028 0061 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and (() +0061 0028 05D0 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 2680 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0028 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0028 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 2680 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0028 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0028 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and (() +0061 0028 05D0 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0028 0063 0029;1;1;2 1 1 2 2 2 2;3 4 5 6 2 1 0 +0061 0028 05D0 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0028 0029 0063;1;1;2 1 1 2 2 2 2;3 4 5 6 2 1 0 +0061 0028 05D0 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0028 0063 0029;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 05D0 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0028 0029 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 05D0 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0062 0029 0063;1;1;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# L, R, L, R and (() +0061 0028 05D0 0062 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 05D1 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0028 05D1 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0028 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 05D1 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0028 05D1 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0028 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and (() +0061 0028 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0028 05D0 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0061 05D0 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and (() +0061 0028 05D0 0028 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 05D1 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 05D1 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and (() +0061 0028 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0028 05D0 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0061 05D0 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and (() +05D0 2680 0028 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and (() +05D0 2680 0028 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and (() +05D0 2680 0028 2681 05D1 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 05D1 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and (() +05D0 2680 0028 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and (() +05D0 2680 0028 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 2680 0028 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 2680 0028 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 2680 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 2680 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 2680 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 2680 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, ON, L, R and (() +05D0 2680 0028 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and (() +05D0 2680 0028 05D1 2681 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0028 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 2681 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0028 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0028 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 2681 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 2681 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 2681 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 2681 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0028 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0028 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and (() +05D0 2680 0028 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0028 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0028 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0028 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 2680 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0028 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0028 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and (() +05D0 2680 0028 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 05D2 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0028 0028 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and (() +05D0 0028 0061 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and (() +05D0 0028 0061 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0028 0061 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0028 0061 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0028 0061 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0028 0061 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0028 0028 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 0028 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 05D0 0061 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 05D0 0061 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 05D0 0061 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 05D0 0061 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 05D0 0028 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 0028 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0028 05D0 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, ON, R and (() +05D0 0028 0061 2680 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0028 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and (() +05D0 0028 0061 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0028 0061 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 05D0 0061 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# R, L, L, L and (() +05D0 0028 0061 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0028 05D0 0061 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# R, L, L, R and (() +05D0 0028 0061 0028 0062 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 0028 0062 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# R, L, R, ON and (() +05D0 0028 0061 05D1 2680 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and (() +05D0 0028 0061 05D1 0062 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0062 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0062 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and (() +05D0 0028 0061 05D1 0028 05D2 0029;0;0;1 0 0 1 1 1 1;0 1 2 6 5 4 3 +05D0 0028 0061 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 05D2;0;0;1 0 0 1 1 1 1;0 1 2 6 5 4 3 +05D0 0028 0061 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 0028 0028 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 05D2 0029;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0061 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0061 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 05D2;0;0;0 0 1 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and (() +05D0 0028 05D1 2680 0028 2681 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 2681;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 2681;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and (() +05D0 0028 05D1 2680 0061 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 2680 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0061 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0061 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0061 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and (() +05D0 0028 05D1 2680 05D2 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and (() +05D0 0028 05D1 0061 2680 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0061 2680 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 2680 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0061 0028 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 2680;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0061 0028 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 2680 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 2680;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and (() +05D0 0028 05D1 0061 0028 0062 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 05D1 0061 0028 0029 0062;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 05D1 0028 0061 0029 0062;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, R, L, R and (() +05D0 0028 05D1 0061 05D2 0028 0029;0;0;1 1 1 0 1 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0061 05D2 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 05D2 0029;0;0;1 1 1 0 0 1 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0061 0028 05D2 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 05D2;0;0;1 1 1 0 0 0 1;2 1 0 3 4 5 6 +05D0 0028 05D1 0061 0028 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 05D2 0029;0;0;1 1 1 0 0 1 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 05D2;0;0;1 1 1 0 0 0 1;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 05D2 0029;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 05D2 0029;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and (() +05D0 0028 05D1 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and (() +05D0 0028 05D1 0028 05D2 0061 0029;0;0;1 1 1 0 1 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and (() +05D0 0028 05D1 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ()( +0028 0029 0028;0;0;0 0 0;0 1 2 +0028 0029 0028;1;1;1 1 1;2 1 0 + +# ON and ()( +2680 0028 0029 0028;0;0;0 0 0 0;0 1 2 3 +2680 0028 0029 0028;1;1;1 1 1 1;3 2 1 0 +0028 2680 0029 0028;0;0;0 0 0 0;0 1 2 3 +0028 2680 0029 0028;1;1;1 1 1 1;3 2 1 0 +0028 0029 2680 0028;0;0;0 0 0 0;0 1 2 3 +0028 0029 2680 0028;1;1;1 1 1 1;3 2 1 0 +0028 0029 0028 2680;0;0;0 0 0 0;0 1 2 3 +0028 0029 0028 2680;1;1;1 1 1 1;3 2 1 0 + +# L and ()( +0061 0028 0029 0028;0;0;0 0 0 0;0 1 2 3 +0061 0028 0029 0028;1;1;2 1 1 1;3 2 1 0 +0028 0061 0029 0028;0;0;0 0 0 0;0 1 2 3 +0028 0061 0029 0028;1;1;1 2 1 1;3 2 1 0 +0028 0029 0061 0028;0;0;0 0 0 0;0 1 2 3 +0028 0029 0061 0028;1;1;1 1 2 1;3 2 1 0 +0028 0029 0028 0061;0;0;0 0 0 0;0 1 2 3 +0028 0029 0028 0061;1;1;1 1 1 2;3 2 1 0 + +# R and ()( +05D0 0028 0029 0028;0;0;1 0 0 0;0 1 2 3 +05D0 0028 0029 0028;1;1;1 1 1 1;3 2 1 0 +0028 05D0 0029 0028;0;0;0 1 0 0;0 1 2 3 +0028 05D0 0029 0028;1;1;1 1 1 1;3 2 1 0 +0028 0029 05D0 0028;0;0;0 0 1 0;0 1 2 3 +0028 0029 05D0 0028;1;1;1 1 1 1;3 2 1 0 +0028 0029 0028 05D0;0;0;0 0 0 1;0 1 2 3 +0028 0029 0028 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and ()( +2680 0028 2681 0029 0028;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 0029 0028;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 2681 0028;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 2681 0028;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 0028 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0028 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 2681 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 2681 0028;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 0028 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0028 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 0028 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0028 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and ()( +2680 0028 0061 0029 0028;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 0029 0028;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 0029 0061 0028;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0061 0028;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 0029 0028 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0028 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 0061 0029 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 0029 0028;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0029 0061 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0061 0028;1;1;1 1 1 2 1;4 3 2 1 0 +0028 2680 0029 0028 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0028 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 2680 0061 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0061 0028;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 2680 0028 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0028 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 0028 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0028 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and ()( +2680 0028 05D0 0029 0028;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 0029 0028;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 05D0 0028;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 0029 05D0 0028;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 0028 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 0029 0028 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 0029 0028;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 0029 0028;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 05D0 0028;0;0;0 0 0 1 0;0 1 2 3 4 +0028 2680 0029 05D0 0028;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 0028 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 0029 0028 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 05D0 0028;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 2680 05D0 0028;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 0028 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 2680 0028 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 0028 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 0028 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and ()( +0061 2680 0028 0029 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 0029 0028;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 0029 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 0029 0028;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 2680 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 2680 0028;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 0028 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0028 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 0029 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 0029 0028;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 2680 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 2680 0028;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 0028 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0028 2680;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 2680 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 2680 0028;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0061 0028 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 0028 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and ()( +0061 0028 0062 0029 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 0029 0028;1;1;2 2 2 2 1;4 0 1 2 3 +0061 0028 0029 0062 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0062 0028;1;1;2 2 2 2 1;4 0 1 2 3 +0061 0028 0029 0028 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0028 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0028 0061 0029 0062 0028;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0062 0028;1;1;1 2 1 2 1;4 3 2 1 0 +0028 0061 0029 0028 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0028 0062;1;1;1 2 1 1 2;4 3 2 1 0 +0028 0029 0061 0028 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 0028 0062;1;1;1 1 2 2 2;2 3 4 1 0 + +# L, R and ()( +0061 0028 05D0 0029 0028;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 0029 0028;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 05D0 0028;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 0029 05D0 0028;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 0028 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 0029 0028 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 0029 0028;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 0029 0028;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 05D0 0028;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0061 0029 05D0 0028;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 0028 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 0029 0028 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 05D0 0028;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 0061 05D0 0028;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0061 0028 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 0061 0028 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and ()( +05D0 2680 0028 0029 0028;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 0029 0028;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 0029 0028;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 0029 0028;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 2680 0028;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 2680 0028;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 0028 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0028 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 0029 0028;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 0029 0028;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 2680 0028;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 2680 0028;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 0028 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0028 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 2680 0028;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 2680 0028;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 0028 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0028 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and ()( +05D0 0028 0061 0029 0028;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 0029 0028;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 0029 0061 0028;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0061 0028;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 0029 0028 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0028 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 0061 0029 0028;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 0029 0028;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0029 0061 0028;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0061 0028;1;1;1 1 1 2 1;4 3 2 1 0 +0028 05D0 0029 0028 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0028 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 05D0 0061 0028;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0061 0028;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 05D0 0028 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0028 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and ()( +05D0 0028 05D1 0029 0028;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 05D1 0029 0028;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 05D1 0028;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 0029 05D1 0028;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 0028 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 0028 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 05D1 0028;0;0;0 1 0 1 0;0 1 2 3 4 +0028 05D0 0029 05D1 0028;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 0028 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 0029 0028 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 0028 05D1;0;0;0 0 1 1 1;0 1 4 3 2 +0028 0029 05D0 0028 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and ()( +2680 0028 2681 0029 2682 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 2682 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0028 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0028 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0028 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and ()( +2680 0028 2681 0061 0029 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 0029 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 2681 0029 0028 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 2681 0028 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 0028 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0028 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 2681 0028 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 0028 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0028 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 0028 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0028 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and ()( +2680 0028 2681 05D0 0029 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 0029 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 2681 0029 05D0 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 0029 0028 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 2681 05D0 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 2681 0028 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0028 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 0028 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 2681 05D0 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 2681 0028 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0028 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 0028 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 0028 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 0028 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and ()( +2680 0028 0061 2681 0029 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 0029 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 2681 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0028 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 2681 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 2681 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 0028 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 0029 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 2681 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0028 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 2681 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 2681 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 0028 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 2681 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 2681 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 0028 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and ()( +2680 0028 0061 0029 0062 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0062 0028;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +2680 0028 0061 0029 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0028 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +2680 0028 0029 0061 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 0028 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 2680 0061 0029 0062 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0062 0028;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 2680 0061 0029 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0028 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 0029 0061 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 0028 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 0029 2680 0061 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 0028 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# ON, L, R and ()( +2680 0028 0061 05D0 0029 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 0029 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0061 0029 05D0 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 0029 0028 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 0061 05D0 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 0061 0028 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 0029 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0061 0029 05D0 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 0029 0028 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 0061 05D0 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 0061 0028 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 2680 0061 05D0 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 0061 0028 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and ()( +2680 0028 05D0 2681 0029 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 0029 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 2681 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 2681 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 0029 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 2681 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 2681 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 2681 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and ()( +2680 0028 05D0 0061 0029 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 0029 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0028 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 05D0 0028 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 0029 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0028 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 05D0 0028 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 2680 05D0 0028 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and ()( +2680 0028 05D0 0029 05D1 0028;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +2680 0028 05D0 0029 05D1 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0028 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 0029 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 0028 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +2680 0028 0029 05D0 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 2680 05D0 0029 05D1 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0028 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 0029 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 0028 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 2680 0029 05D0 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 0028 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0029 2680 05D0 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and ()( +0061 2680 0028 2681 0029 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 0029 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 2681 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 2681 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0028 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 2681 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 2681 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0028 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0028 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 2681 0028;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0028 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0028 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 0028 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0028 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and ()( +0061 2680 0028 0062 0029 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 0029 0028;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 2680 0028 0029 0062 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0062 0028;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 2680 0028 0029 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0028 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 0029 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 0029 0028;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0029 0062 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0062 0028;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0029 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0028 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 2680 0062 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0062 0028;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0029 2680 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0028 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 0028 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0028 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0062 0029 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 0029 0028;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 0029 0062 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0062 0028;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 2680 0029 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0028 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0062 0028;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 2680 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0028 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 0028 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0028 2680 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 2680 0062 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0062 0028;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 0029 0061 2680 0028 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0028 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 0029 0061 0028 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 0028 2680 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 + +# L, ON, R and ()( +0061 2680 0028 05D0 0029 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 0029 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 0029 05D0 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 0029 0028 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 0029 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 2680 0029 05D0 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 0029 0028 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 2680 05D0 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 2680 0028 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 0028 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 0028 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 0029 0028;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 2680 0029 05D0 0028;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 0029 0028 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 2680 05D0 0028;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 2680 0028 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 0028 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 0028 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 0061 2680 05D0 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 2680 0028 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 0028 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 0028 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and ()( +0061 0028 0062 2680 0029 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 0029 0028;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 2680 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 2680 0028;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0062 0029 0028 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0028 2680;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 2680 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 2680 0028;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 0028 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 0028 2680;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0028 0061 0029 0062 2680 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 2680 0028;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0062 0028 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 0028 2680;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, L, L and ()( +0061 0028 0062 0029 0063 0028;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0063 0028;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 0028 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0028 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 0062 0028 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 0028 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 0029 0062 0028 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 0028 0063;1;1;1 2 1 2 2 2;3 4 5 2 1 0 + +# L, L, R and ()( +0061 0028 0062 05D0 0029 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 0029 0028;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0062 0029 05D0 0028;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0062 0029 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 0029 0028 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 0062 05D0 0028;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 0062 0028 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0028 0061 0029 0062 05D0 0028;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 0062 05D0 0028;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0062 0028 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 0062 0028 05D0;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, R, ON and ()( +0061 0028 05D0 2680 0029 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 0029 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 2680 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0028 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 2680 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0028 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 0029 0028;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 2680 0028;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0028 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 2680 0028;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0028 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 2680 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0028 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and ()( +0061 0028 05D0 0062 0029 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 0029 0028;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0062 0028;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0028 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0028 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0062 0028;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 0029 05D0 0028 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0028 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 0029 0028;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0062 0028;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0028 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0028 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0062 0028;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 05D0 0028 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0028 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0062 0028;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 0029 0061 05D0 0028 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0028 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and ()( +0061 0028 05D0 0029 05D1 0028;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0061 0028 05D0 0029 05D1 0028;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0028 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 0029 0028 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 0028 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0061 0028 0029 05D0 0028 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0061 05D0 0029 05D1 0028;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0028 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 0029 0028 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 0028 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0061 0029 05D0 0028 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 0028 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0029 0061 05D0 0028 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and ()( +05D0 2680 0028 2681 0029 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 0029 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 2681 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 2681 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 2681 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0028 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and ()( +05D0 2680 0028 0061 0029 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 0029 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0028 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 0029 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0028 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0028 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 0028 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0028 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 0029 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0028 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 2680 0028 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 0028 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0028 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 05D0 2680 0028 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 0028 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0028 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and ()( +05D0 2680 0028 05D1 0029 0028;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 05D1 0029 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 0029 05D1 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 05D1 0029 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 0029 05D1 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 0029 2680 05D1 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0028 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 0029 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 2680 0029 05D1 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0028 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 2680 0029 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 2680 05D1 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 0028 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 2680 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0028 2680 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 0028 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 0029 05D0 2680 05D1 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 0028 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 2680 0028 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 0028 2680 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 0028 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and ()( +05D0 0028 0061 2680 0029 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 0029 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 2680 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0028 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 2680 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 0028 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 0028 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 0029 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 2680 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0028 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0028;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 2680 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 0028 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 0028 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0028;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 2680 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 0028 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 0028 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and ()( +05D0 0028 0061 0029 0062 0028;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0062 0028;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +05D0 0028 0061 0029 0028 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0028 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 0061 0028 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 0028 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 05D0 0061 0029 0062 0028;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0062 0028;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 05D0 0061 0029 0028 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0028 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 0061 0028 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 0028 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 0029 05D0 0061 0028 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 0028 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# R, L, R and ()( +05D0 0028 0061 05D1 0029 0028;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 0029 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0061 0029 05D1 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 0028 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 0029 0028 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0029 0061 05D1 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 0028 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0029 0061 0028 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 0029 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0061 0029 05D1 0028;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 0028 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 0029 0028 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 0061 05D1 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 0028 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 0061 0028 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0029 05D0 0061 05D1 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 0028 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0029 05D0 0061 0028 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and ()( +05D0 0028 05D1 2680 0029 0028;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 2680 0029 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 2680 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0028 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 2680 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0028 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 2680 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0028 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and ()( +05D0 0028 05D1 0061 0029 0028;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 0029 0028;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0061 0028;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 0061;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0028 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and ()( +05D0 0028 05D1 0029 05D2 0028;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 0029 05D2 0028;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 05D2;0;0;0 1 0 1 1 1;0 1 2 5 4 3 +0028 05D0 0029 05D1 0028 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and ()( +2680 0028 2681 0029 2682 0028 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0028 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and ()( +2680 0028 2681 0029 2682 0061 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0028 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0028 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0028 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0028 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and ()( +2680 0028 2681 0029 2682 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 05D0 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0028 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0028 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 0028 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0028 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 0028 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0028 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 0028 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and ()( +2680 0028 2681 0061 2682 0029 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 2682 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 2682 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 2682 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0028 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 2682 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 2682 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 0028 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 2682 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 2682 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 0028 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 2682 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 2682 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 0028 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and ()( +2680 0028 2681 0061 0029 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +2680 0028 0029 2681 0061 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0029 2681 0061 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, ON, L, R and ()( +2680 0028 2681 0061 05D0 0029 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 05D0 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 05D0 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0028 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 05D0 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 0028 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 05D0 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 0028 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 05D0 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 0028 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and ()( +2680 0028 2681 05D0 2682 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 2682 0029 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 2682 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 2682 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 2682 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 2682 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 2682 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 2682 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 2682 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 2682 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and ()( +2680 0028 2681 05D0 0061 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0061 0029 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0061 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0061 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0061 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0061 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and ()( +2680 0028 2681 05D0 0029 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 2681 0029 05D0 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0029 2681 05D0 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0029 2681 05D0 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and ()( +2680 0028 0061 2681 0029 2682 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 2682 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0028 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0028 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0028 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 2682 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 2682 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0028 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0028 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0028 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0028 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and ()( +2680 0028 0061 2681 0062 0029 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0062 0029 0028;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 2681 0029 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0028 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0062 0028;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 0029 0061 2681 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0028 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 0029 0061 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 0028 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0061 2681 0062 0029 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0062 0029 0028;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 2681 0029 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0028 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0062 0028;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 0029 0061 2681 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0028 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0029 0061 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 0028 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 2681 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0062 0028;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 2680 0061 2681 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0028 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 0028 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# ON, L, ON, R and ()( +2680 0028 0061 2681 05D0 0029 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 05D0 0029 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 05D0 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0028 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 05D0 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0028 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 0028 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 05D0 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0028 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 0028 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0029 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 05D0 0029 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 05D0 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0028 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 05D0 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0028 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 0028 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 05D0 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0028 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 0028 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 05D0 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0028 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 0028 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and ()( +2680 0028 0061 0029 0062 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 2681 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 0028 2681;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 2681 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 0028 2681;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L, L and ()( +2680 0028 0061 0029 0062 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 0028 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0061 0029 0062 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 0028 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# ON, L, L, R and ()( +2680 0028 0061 0029 0062 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 05D0 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 0028 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 05D0 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 0028 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, R, ON and ()( +2680 0028 0061 05D0 2681 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 2681 0029 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 2681 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 2681 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 2681 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 2681 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 2681 0029 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 2681 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 2681 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 2681 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 2681 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 2681 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and ()( +2680 0028 0061 05D0 0062 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0062 0029 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0062 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0062 0029 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0062 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and ()( +2680 0028 0061 05D0 0029 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 05D1 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0061 0029 05D0 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0029 0061 05D0 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 05D1 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0061 0029 05D0 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0029 0061 05D0 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 2680 0061 05D0 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and ()( +2680 0028 05D0 2681 0029 2682 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 2682 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 2682 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 2682 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and ()( +2680 0028 05D0 2681 0061 0029 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0061 0029 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0061 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0061 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0061 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0029 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0061 0029 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0061 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0061 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0061 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0061 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and ()( +2680 0028 05D0 2681 05D1 0029 0028;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 2681 05D1 0029 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0028 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 05D1 0028;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 0029 05D0 2681 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0028 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 2681 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0028 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0029 0028;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 2681 05D1 0029 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0028 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 05D1 0028;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 0029 05D0 2681 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0028 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 2681 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0028 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 05D1 0028;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 2680 05D0 2681 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0028 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 2681 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0028 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and ()( +2680 0028 05D0 0061 2681 0029 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 2681 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 2681 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 2681 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 2681 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 2681 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0029 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 2681 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 2681 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 2681 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 2681 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 2681 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 2681 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and ()( +2680 0028 05D0 0061 0029 0062 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +2680 0028 0029 05D0 0061 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 05D0 0061 0029 0062 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0029 05D0 0061 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 2680 05D0 0061 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, R, L, R and ()( +2680 0028 05D0 0061 05D1 0029 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 05D1 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 05D1 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0029 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 05D1 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 05D1 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and ()( +2680 0028 05D0 0029 05D1 2681 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0028 2681;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 2681 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 2681;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and ()( +2680 0028 05D0 0029 05D1 0061 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0028 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0061 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and ()( +2680 0028 05D0 0029 05D1 0028 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 05D0 0029 05D1 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0028 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 05D0 0029 05D1 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and ()( +0061 2680 0028 2681 0029 2682 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 2682 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0028 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0028 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0028 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0028 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and ()( +0061 2680 0028 2681 0062 0029 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0062 0029 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0062 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0028 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0062 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0029 2681 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0028 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0062 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0029 2681 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0028 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0062 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0062 0028;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0028 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0028 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0028 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0028 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, ON, ON, R and ()( +0061 2680 0028 2681 05D0 0029 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 05D0 0029 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 05D0 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0028 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 05D0 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0028 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 0028 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 05D0 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0028 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 0028 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 0028 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 05D0 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0028 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 0028 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 0028 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0028 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 0028 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and ()( +0061 2680 0028 0062 2681 0029 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 2681 0029 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 2681 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0028 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 2681 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0028 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 2681 0029 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0029 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 2681 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0028 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 2681 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0028 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 2681 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0028 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 2680 0062 2681 0029 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0029 0028;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 2681 0028;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0028 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 2681 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 0028 2681;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 2681 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 0028 2681;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 2681 0028;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 0028 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and ()( +0061 2680 0028 0062 0029 0063 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0063 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0028 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0028 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0063 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0063 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0028 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0028 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0028 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0063 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0063 0028;1;1;1 2 2 2 1 2 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0028 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 0028 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 0029 2680 0062 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 0028 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 0061 2680 0062 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 0028 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, ON, L, R and ()( +0061 2680 0028 0062 05D0 0029 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 05D0 0029 0028;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0062 0029 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 05D0 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0028 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 05D0 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0028 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 05D0 0029 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0029 0028;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0062 0029 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 05D0 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0028 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 05D0 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0028 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 05D0 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0028 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 2680 0062 05D0 0029 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0029 0028;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 05D0 0028;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0028 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 05D0 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 0028 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 05D0 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 0028 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 05D0 0028;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 0028 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and ()( +0061 2680 0028 05D0 2681 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 2681 0029 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 2681 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 2681 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0028 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 2681 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0028 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 2681 0029 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 2681 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 2681 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0028 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 2681 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0028 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 2681 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0028 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 2681 0029 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 2681 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 2681 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0028 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 2681 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0028 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 2681 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0028 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 2681 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 2681 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and ()( +0061 2680 0028 05D0 0062 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0062 0029 0028;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0062 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0062 0029 0028;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0062 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0062 0029 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0062 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0062 0028;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0028 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0062 0028;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0028 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0062 0028;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0028 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0062 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and ()( +0061 2680 0028 05D0 0029 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 05D1 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0028 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 2680 0028 0029 05D0 0028 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 05D1 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0028 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 2680 0029 05D0 0028 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0029 2680 05D0 0028 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 05D1 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0028 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 2680 0029 05D0 0028 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 0029 2680 05D0 0028 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 0061 2680 05D0 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and ()( +0061 0028 0062 2680 0029 2681 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 2681 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0028 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0028 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0028 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 2680 0028 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0028 2681;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, L and ()( +0061 0028 0062 2680 0063 0029 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0063 0029 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0063 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0063 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0028 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0063 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0063 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 0029 2680 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0028 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0063 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0063 0028;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0029 0062 2680 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0028 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0063 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0063 0028;1;1;1 2 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0061 0029 0062 2680 0028 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0028 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 0029 0062 0028 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 2680 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 + +# L, L, ON, R and ()( +0061 0028 0062 2680 05D0 0029 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 05D0 0029 0028;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 2680 0029 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 05D0 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0028 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 05D0 0028;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0028 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 0028 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 0028 2680 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 05D0 0028;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0028 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 0028 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 0028 2680 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 2680 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 05D0 0028;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0028 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 0028 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 0028 2680 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, L, ON and ()( +0061 0028 0062 0029 0063 2680 0028;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 2680 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 0028 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 0028 2680;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 + +# L, L, L, L and ()( +0061 0028 0062 0029 0063 0028 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 0028 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and ()( +0061 0028 0062 0029 0063 05D0 0028;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 05D0 0028;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 0028 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 0028 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 + +# L, L, R, ON and ()( +0061 0028 0062 05D0 2680 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 2680 0029 0028;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 2680 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 2680 0028;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0028 2680;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 2680 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 2680 0028;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0028 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0028 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 2680 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 2680 0028;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0028 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 2680 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 2680 0028;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0028 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0028 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, R, L and ()( +0061 0028 0062 05D0 0063 0029 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0063 0029 0028;1;1;2 1 2 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0063 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0063 0028;1;1;2 1 2 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0028 0063;1;1;2 1 2 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0063 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0063 0028;1;1;2 2 2 2 1 2 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0028 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0028 0063;1;1;2 2 2 2 1 1 2;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0063 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0063 0028;1;1;2 2 2 2 1 2 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0028 0063;1;1;2 2 2 2 1 1 2;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 0063 0028;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0063 0028;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0028 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0028 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, L, R, R and ()( +0061 0028 0062 05D0 0029 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 05D1 0028;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0028 05D1;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0062 0029 05D0 0028 05D1;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0029 0062 05D0 0028 05D1;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 0028 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 0029 0062 05D0 0028 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, ON and ()( +0061 0028 05D0 2680 0029 2681 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 2681 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0028 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0028 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0028 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 2681 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 2681 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0028 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0028 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0028 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and ()( +0061 0028 05D0 2680 0062 0029 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0062 0029 0028;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0062 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0062 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0028 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0062 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0028 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0029 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0062 0029 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0062 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0062 0028;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0028 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0062 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0062 0028;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0028 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0028 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0062 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0062 0028;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0028 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0028 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0062 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0028 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and ()( +0061 0028 05D0 2680 05D1 0029 0028;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 2680 05D1 0029 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 05D1 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0028 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 05D1 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0028 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0028 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0028 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 05D1 0028;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 0029 05D0 2680 05D1 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0028 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 2680 0028 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0028 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 0028 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0029 0028;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 2680 05D1 0029 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 05D1 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0028 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 05D1 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0028 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0028 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0028 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 05D1 0028;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 0029 05D0 2680 05D1 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0028 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 2680 0028 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0028 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 0028 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 05D1 0028;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 0061 05D0 2680 05D1 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0028 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 2680 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0028 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 0028 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and ()( +0061 0028 05D0 0062 2680 0029 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 2680 0029 0028;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 2680 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 2680 0028;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0028 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 2680 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 2680 0028;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 0028 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 2680 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 2680 0028;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 0028 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0029 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 2680 0029 0028;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 2680 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 2680 0028;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0028 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 2680 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 2680 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 0028 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 2680 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 2680 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 0028 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 2680 0028;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 2680 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 0028 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and ()( +0061 0028 05D0 0062 0029 0063 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0063 0028;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0028 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 0028 0063;1;1;2 1 1 1 2 2 2;4 5 6 3 2 1 0 +0061 0028 0029 05D0 0062 0028 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 0028 0063;1;1;2 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 05D0 0062 0029 0063 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0063 0028;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0028 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 0028 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 0029 05D0 0062 0028 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 0028 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 0061 05D0 0062 0028 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 0028 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# L, R, L, R and ()( +0061 0028 05D0 0062 05D1 0029 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 05D1 0029 0028;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 05D1 0028;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0028 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 05D1 0028;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 0028 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 05D1 0028;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 0028 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0029 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 05D1 0029 0028;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 05D1 0028;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0028 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 05D1 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 0028 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 05D1 0028;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 0028 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 05D1 0028;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 05D1 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0028 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 0028 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and ()( +0061 0028 05D0 0029 05D1 2680 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 2680 0028;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0028 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0028 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 2680 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 2680 0028;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0028 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and ()( +0061 0028 05D0 0029 05D1 0062 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0062 0028;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0028 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0028 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0062 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0062 0028;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0028 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and ()( +0061 0028 05D0 0029 05D1 0028 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 05D0 0029 05D1 0028 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0028 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 05D0 0029 05D1 0028 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and ()( +05D0 2680 0028 2681 0029 2682 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 2682 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0028 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and ()( +05D0 2680 0028 2681 0061 0029 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0061 0029 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0061 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0061 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0061 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0061 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0028 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and ()( +05D0 2680 0028 2681 05D1 0029 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 2681 05D1 0029 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 05D1 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 2681 0029 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 05D1 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 0029 2681 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 05D1 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 0029 2681 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 05D1 0028;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 05D1 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0028 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0028 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0028 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0028 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0028 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 0028 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and ()( +05D0 2680 0028 0061 2681 0029 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 2681 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 2681 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 2681 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 2681 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0029 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 2681 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 2681 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 2681 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 2681 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 2681 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0029 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 2681 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 2681 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 2681 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 2681 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 2681 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 2681 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 2681 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 0028 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and ()( +05D0 2680 0028 0061 0029 0062 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 2680 0061 0029 0062 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 0029 2680 0061 0028 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 2680 0061 0029 0062 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0029 2680 0061 0028 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 05D0 2680 0061 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, ON, L, R and ()( +05D0 2680 0028 0061 05D1 0029 0028;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 05D1 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 05D1 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0029 0028;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 05D1 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 05D1 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0029 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 05D1 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 05D1 0028;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 05D1 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0028 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 05D1 0028;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0028 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 05D1 0028;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0028 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 05D1 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 0028 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and ()( +05D0 2680 0028 05D1 2681 0029 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 2681 0029 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 2681 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 2681 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0029 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 2681 0029 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 2681 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 2681 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 2681 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0029 0028;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 2681 0029 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 2681 0028;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 2681 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 2681;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 2681 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 2681;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 2681 0028;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and ()( +05D0 2680 0028 05D1 0061 0029 0028;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 05D1 0061 0029 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0061 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0061 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0029 0028;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 05D1 0061 0029 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0061 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0061 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0061 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0029 0028;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0061 0029 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0061 0028;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0061 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0061 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0061 0028;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and ()( +05D0 2680 0028 05D1 0029 05D2 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 0029 05D2 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 05D2 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 0029 05D2 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 05D2 0028;0;0;0 1 1 1 0 1 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 05D2 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0028 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0028 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 2680 0029 05D1 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0028 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0029 2680 05D1 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0028 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 05D1 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and ()( +05D0 0028 0061 2680 0029 2681 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 2681 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0028 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 2681 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 2681 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0028 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0028 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0028 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0028 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and ()( +05D0 0028 0061 2680 0062 0029 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0062 0029 0028;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 2680 0029 0062 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0062 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0028 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0062 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0062 0028;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 0029 0061 2680 0028 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0028 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 0029 0061 0028 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0028 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0061 2680 0062 0029 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0062 0029 0028;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 2680 0029 0062 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0062 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0028 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0062 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0062 0028;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 0029 0061 2680 0028 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0028 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0029 0061 0028 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0028 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 2680 0062 0028;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0062 0028;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 05D0 0061 2680 0028 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0028 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 0028 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0028 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# R, L, ON, R and ()( +05D0 0028 0061 2680 05D1 0029 0028;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 05D1 0029 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 05D1 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 05D1 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0028 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0028 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 05D1 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 0028 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0028 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0029 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 05D1 0029 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 05D1 0028;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 05D1 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0028 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 05D1 0028;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 05D1 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0028 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0028 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0028 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0028 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 05D1 0028;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 05D1 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0028 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 0028 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0028 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 05D1 0028;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 05D1 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0028 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0028 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 0028 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0028 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and ()( +05D0 0028 0061 0029 0062 2680 0028;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 2680 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 0028 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 0028 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 2680 0028;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 2680 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0028 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 0028 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L, L and ()( +05D0 0028 0061 0029 0062 0028 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 0028 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0061 0029 0062 0028 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 0028 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# R, L, L, R and ()( +05D0 0028 0061 0029 0062 05D1 0028;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 05D1 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 0028 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 0028 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 05D1 0028;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 05D1 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0028 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 0028 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, R, ON and ()( +05D0 0028 0061 05D1 2680 0029 0028;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 2680 0029 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 2680 0028;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 2680 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0028 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 2680 0028;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 2680 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0028 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 2680 0028;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 2680 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0028 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0029 0028;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 2680 0029 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 2680 0028;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 2680 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0028 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 2680 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 2680 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0028 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 2680 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 2680 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0028 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 2680 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 2680 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0028 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and ()( +05D0 0028 0061 05D1 0062 0029 0028;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0062 0029 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0062 0028;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0062 0028;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0062 0028;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0029 0028;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0062 0029 0028;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0062 0028;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0062 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0062 0028;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0028 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0062 0028;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0062 0028;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and ()( +05D0 0028 0061 05D1 0029 05D2 0028;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 05D2 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0028 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0028 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0028 05D2;0;0;1 0 0 0 1 1 1;0 1 2 3 6 5 4 +05D0 0028 0061 0029 05D1 0028 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0028 05D2;0;0;1 0 0 0 1 1 1;0 1 2 3 6 5 4 +05D0 0028 0029 0061 05D1 0028 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 05D2 0028;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 05D2 0028;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0028 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0028 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0028 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0061 0029 05D1 0028 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0028 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0029 0061 05D1 0028 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0028 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 05D0 0061 05D1 0028 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and ()( +05D0 0028 05D1 2680 0029 2681 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 2681 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 2681;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0028 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and ()( +05D0 0028 05D1 2680 0061 0029 0028;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 2680 0061 0029 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0061 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0061 0028;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0028 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0061 0028;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0028 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0061 0028;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0028 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and ()( +05D0 0028 05D1 2680 05D2 0029 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 05D2 0029 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 05D2 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 0029 05D2 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 05D2 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 0029 2680 05D2 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0028 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 05D2 0028;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0029 05D1 2680 05D2 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0028 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 05D2 0028;0;0;0 1 0 1 1 1 0;0 1 2 5 4 3 6 +0028 05D0 0029 05D1 2680 05D2 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0028 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 2680 0028 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0028 2680 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 0028 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and ()( +05D0 0028 05D1 0061 2680 0029 0028;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 2680 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 2680 0028;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 2680 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 2680;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0028 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 2680 0028;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 2680 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 0028 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 2680 0028;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 2680 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 0028 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 2680 0028;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 2680 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 0028 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and ()( +05D0 0028 05D1 0061 0029 0062 0028;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0062 0028;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 0062;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0028 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 0062;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 0062;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 0028 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, R, L, R and ()( +05D0 0028 05D1 0061 05D2 0029 0028;0;0;1 0 1 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 05D2 0029 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 05D2 0028;0;0;1 0 1 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 05D2 0028;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0028 05D2;0;0;1 0 1 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0028 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 05D2 0028;0;0;1 1 1 1 0 1 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 05D2 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0028 05D2;0;0;1 1 1 1 0 0 1;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 0028 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 05D2 0028;0;0;1 1 1 1 0 1 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 05D2 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0028 05D2;0;0;1 1 1 1 0 0 1;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 0028 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 05D2 0028;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 05D2 0028;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0028 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 0028 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and ()( +05D0 0028 05D1 0029 05D2 2680 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 2680 0028;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 2680;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0028 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and ()( +05D0 0028 05D1 0029 05D2 0061 0028;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0061 0028;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0028 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and ()( +05D0 0028 05D1 0029 05D2 0028 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0028 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# [() +005B 0028 0029;0;0;0 0 0;0 1 2 +005B 0028 0029;1;1;1 1 1;2 1 0 + +# ON and [() +2680 005B 0028 0029;0;0;0 0 0 0;0 1 2 3 +2680 005B 0028 0029;1;1;1 1 1 1;3 2 1 0 +005B 2680 0028 0029;0;0;0 0 0 0;0 1 2 3 +005B 2680 0028 0029;1;1;1 1 1 1;3 2 1 0 +005B 0028 2680 0029;0;0;0 0 0 0;0 1 2 3 +005B 0028 2680 0029;1;1;1 1 1 1;3 2 1 0 +005B 0028 0029 2680;0;0;0 0 0 0;0 1 2 3 +005B 0028 0029 2680;1;1;1 1 1 1;3 2 1 0 + +# L and [() +0061 005B 0028 0029;0;0;0 0 0 0;0 1 2 3 +0061 005B 0028 0029;1;1;2 1 1 1;3 2 1 0 +005B 0061 0028 0029;0;0;0 0 0 0;0 1 2 3 +005B 0061 0028 0029;1;1;1 2 1 1;3 2 1 0 +005B 0028 0061 0029;0;0;0 0 0 0;0 1 2 3 +005B 0028 0061 0029;1;1;1 1 2 1;3 2 1 0 +005B 0028 0029 0061;0;0;0 0 0 0;0 1 2 3 +005B 0028 0029 0061;1;1;1 1 1 2;3 2 1 0 + +# R and [() +05D0 005B 0028 0029;0;0;1 0 0 0;0 1 2 3 +05D0 005B 0028 0029;1;1;1 1 1 1;3 2 1 0 +005B 05D0 0028 0029;0;0;0 1 0 0;0 1 2 3 +005B 05D0 0028 0029;1;1;1 1 1 1;3 2 1 0 +005B 0028 05D0 0029;0;0;0 0 1 0;0 1 2 3 +005B 0028 05D0 0029;1;1;1 1 1 1;3 2 1 0 +005B 0028 0029 05D0;0;0;0 0 0 1;0 1 2 3 +005B 0028 0029 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and [() +2680 005B 2681 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005B 2681 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 005B 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005B 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 005B 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005B 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +005B 2680 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005B 2680 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005B 2680 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +005B 2680 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +005B 0028 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0028 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and [() +2680 005B 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005B 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 005B 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005B 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 005B 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005B 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005B 2680 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005B 2680 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +005B 2680 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005B 2680 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +005B 2680 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +005B 2680 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005B 0028 2680 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0028 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +005B 0028 2680 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0028 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005B 0028 0029 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0028 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and [() +2680 005B 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 005B 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 005B 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 005B 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 005B 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 005B 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +005B 2680 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +005B 2680 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005B 2680 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +005B 2680 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005B 2680 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005B 2680 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +005B 0028 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +005B 0028 2680 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005B 0028 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005B 0028 2680 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +005B 0028 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005B 0028 0029 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and [() +0061 2680 005B 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 005B 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005B 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005B 2680 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005B 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005B 0028 2680 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005B 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005B 0028 0029 2680;1;1;2 1 1 1 1;4 3 2 1 0 +005B 0061 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0061 2680 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +005B 0061 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0061 0028 2680 0029;1;1;1 2 1 1 1;4 3 2 1 0 +005B 0061 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0061 0028 0029 2680;1;1;1 2 1 1 1;4 3 2 1 0 +005B 0028 0061 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0028 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +005B 0028 0061 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0028 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and [() +0061 005B 0062 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005B 0062 0028 0029;1;1;2 2 2 1 1;4 3 0 1 2 +0061 005B 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005B 0028 0062 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 005B 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005B 0028 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +005B 0061 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0061 0028 0062 0029;1;1;1 2 2 2 2;1 2 3 4 0 +005B 0061 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0061 0028 0029 0062;1;1;1 2 2 2 2;1 2 3 4 0 +005B 0028 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +005B 0028 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 + +# L, R and [() +0061 005B 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 005B 05D0 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005B 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 005B 0028 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005B 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 005B 0028 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +005B 0061 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +005B 0061 05D0 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +005B 0061 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +005B 0061 0028 05D0 0029;1;1;1 2 1 1 1;4 3 2 1 0 +005B 0061 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005B 0061 0028 0029 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +005B 0028 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +005B 0028 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +005B 0028 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005B 0028 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and [() +05D0 2680 005B 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 005B 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005B 2680 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005B 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005B 0028 2680 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005B 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005B 0028 0029 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005B 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +005B 05D0 2680 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +005B 05D0 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005B 05D0 0028 2680 0029;0;0;0 1 0 0 0;0 1 2 3 4 +005B 05D0 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005B 05D0 0028 0029 2680;0;0;0 1 0 0 0;0 1 2 3 4 +005B 05D0 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +005B 0028 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +005B 0028 05D0 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005B 0028 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +005B 0028 05D0 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and [() +05D0 005B 0061 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005B 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 005B 0028 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005B 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 005B 0028 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005B 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005B 05D0 0061 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +005B 05D0 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +005B 05D0 0028 0061 0029;0;0;0 1 0 0 0;0 1 2 3 4 +005B 05D0 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +005B 05D0 0028 0029 0061;0;0;0 1 0 0 0;0 1 2 3 4 +005B 05D0 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005B 0028 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +005B 0028 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +005B 0028 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +005B 0028 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and [() +05D0 005B 05D1 0028 0029;0;0;1 1 1 0 0;2 1 0 3 4 +05D0 005B 05D1 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005B 0028 05D1 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 005B 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005B 0028 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 005B 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +005B 05D0 0028 05D1 0029;0;0;0 1 1 1 1;0 4 3 2 1 +005B 05D0 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005B 05D0 0028 0029 05D1;0;0;0 1 1 1 1;0 4 3 2 1 +005B 05D0 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +005B 0028 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +005B 0028 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and [() +2680 005B 2681 0028 2682 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 2681 0028 2682 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 2681 0028 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 2681 0028 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and [() +2680 005B 2681 0061 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 2681 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 005B 2681 0028 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 2681 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 005B 2681 0028 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 2681 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 005B 0028 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 005B 0028 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 005B 0028 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 2680 0028 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005B 2680 0028 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 2680 0028 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 0028 2680 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and [() +2680 005B 2681 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005B 2681 05D0 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 2681 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 005B 2681 0028 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 2681 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005B 2681 0028 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 005B 0028 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005B 0028 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005B 0028 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005B 2680 0028 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 2680 0028 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 2680 0028 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 0028 2680 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and [() +2680 005B 0061 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0061 2681 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005B 0061 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0061 0028 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005B 0061 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0061 0028 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005B 0028 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 005B 0028 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 2680 0061 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0061 2681 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 2680 0061 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0061 0028 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 2680 0061 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0061 0028 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 2680 0028 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 2680 0028 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 0028 2680 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0028 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 0028 2680 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0028 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and [() +2680 005B 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +2680 005B 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +2680 005B 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005B 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +005B 2680 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +005B 2680 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +005B 2680 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 2680 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +005B 0028 2680 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0028 2680 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# ON, L, R and [() +2680 005B 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005B 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005B 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 005B 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005B 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005B 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005B 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 005B 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 005B 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005B 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 2680 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 2680 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 2680 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005B 2680 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 2680 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 2680 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 2680 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005B 2680 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 2680 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 2680 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 0028 2680 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005B 0028 2680 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 0028 2680 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 0028 2680 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and [() +2680 005B 05D0 2681 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005B 05D0 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 05D0 0028 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005B 05D0 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 05D0 0028 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005B 05D0 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005B 0028 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005B 0028 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 05D0 2681 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 2680 05D0 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 05D0 0028 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 2680 05D0 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 05D0 0028 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 2680 05D0 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 2680 0028 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 2680 0028 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 0028 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0028 2680 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 0028 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0028 2680 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and [() +2680 005B 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005B 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 005B 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005B 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 005B 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005B 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 005B 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005B 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 005B 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005B 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 2680 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 2680 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 2680 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 2680 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005B 2680 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 2680 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 2680 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 2680 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005B 2680 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 2680 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 0028 2680 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0028 2680 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005B 0028 2680 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0028 2680 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and [() +2680 005B 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +2680 005B 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +2680 005B 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005B 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +2680 005B 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +005B 2680 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +005B 2680 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 2680 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +005B 2680 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 0028 2680 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +005B 0028 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and [() +0061 2680 005B 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005B 2681 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 005B 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005B 0028 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 005B 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005B 0028 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 2680 0028 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 2680 0028 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0028 2680 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +005B 0061 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 2680 0028 2681 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 2680 0028 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 0028 2680 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0028 0061 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0028 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and [() +0061 2680 005B 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005B 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 2680 005B 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005B 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 005B 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005B 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005B 2680 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 2680 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 005B 2680 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 2680 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005B 2680 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 2680 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005B 0028 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0028 2680 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005B 0028 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0028 2680 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005B 0028 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0028 0029 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +005B 0061 2680 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 2680 0062 0028 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +005B 0061 2680 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 2680 0028 0062 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005B 0061 2680 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 2680 0028 0029 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005B 0061 0028 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 0028 2680 0062 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005B 0061 0028 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 0028 2680 0029 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005B 0061 0028 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 0028 0029 2680 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005B 0028 0061 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0028 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +005B 0028 0061 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0028 0061 2680 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +005B 0028 0061 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0028 0061 0029 2680 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, ON, R and [() +0061 2680 005B 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 005B 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 005B 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 005B 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 005B 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 005B 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005B 2680 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 005B 2680 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005B 2680 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 005B 0028 2680 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005B 0028 2680 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005B 0028 0029 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +005B 0061 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0061 2680 05D0 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005B 0061 2680 0028 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 0061 2680 0028 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005B 0061 0028 2680 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 0061 0028 2680 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 0061 0028 0029 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0028 0061 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005B 0028 0061 2680 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 0028 0061 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 0028 0061 2680 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 0028 0061 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 0028 0061 0029 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and [() +0061 005B 0062 2680 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0062 2680 0028 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005B 0062 0028 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0062 0028 2680 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005B 0062 0028 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0062 0028 0029 2680;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005B 0028 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0028 0062 2680 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005B 0028 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0028 0062 0029 2680;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +005B 0061 0028 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 0028 0062 2680 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005B 0061 0028 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 0028 0062 0029 2680;1;1;1 2 2 2 2 1;5 1 2 3 4 0 + +# L, L, L and [() +0061 005B 0062 0028 0063 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0062 0028 0063 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005B 0062 0028 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0062 0028 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005B 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005B 0028 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +005B 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005B 0061 0028 0062 0029 0063;1;1;1 2 2 2 2 2;1 2 3 4 5 0 + +# L, L, R and [() +0061 005B 0062 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005B 0062 05D0 0028 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005B 0062 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 005B 0062 0028 05D0 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005B 0062 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005B 0062 0028 0029 05D0;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005B 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 005B 0028 0062 05D0 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 005B 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005B 0028 0062 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +005B 0061 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005B 0061 0028 0062 05D0 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +005B 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005B 0061 0028 0062 0029 05D0;1;1;1 2 2 2 2 1;5 1 2 3 4 0 + +# L, R, ON and [() +0061 005B 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005B 05D0 2680 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005B 05D0 0028 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005B 05D0 0028 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005B 0028 05D0 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005B 0028 05D0 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +005B 0061 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0061 05D0 2680 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0061 05D0 0028 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0061 05D0 0028 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0061 0028 05D0 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0061 0028 05D0 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0028 0061 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0028 0061 05D0 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 0028 0061 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0028 0061 05D0 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and [() +0061 005B 05D0 0062 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005B 05D0 0062 0028 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 005B 05D0 0028 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005B 05D0 0028 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 005B 05D0 0028 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005B 05D0 0028 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 005B 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005B 0028 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 005B 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005B 0028 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +005B 0061 05D0 0062 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0061 05D0 0062 0028 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +005B 0061 05D0 0028 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0061 05D0 0028 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +005B 0061 05D0 0028 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0061 05D0 0028 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +005B 0061 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0061 0028 05D0 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +005B 0061 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0061 0028 05D0 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +005B 0028 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0028 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +005B 0028 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005B 0028 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and [() +0061 005B 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0061 005B 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0061 005B 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005B 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 005B 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +005B 0061 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +005B 0061 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +005B 0061 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0061 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +005B 0061 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005B 0028 0061 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +005B 0028 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and [() +05D0 2680 005B 2681 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005B 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005B 0028 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005B 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005B 0028 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005B 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 2680 0028 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 2680 0028 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 2680 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 2680 0028 2681 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 2680 0028 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 2680 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 0028 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0028 05D0 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and [() +05D0 2680 005B 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005B 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 005B 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005B 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 005B 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005B 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 005B 2680 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 005B 2680 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 005B 2680 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 005B 0028 2680 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 005B 0028 2680 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 005B 0028 0029 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 05D0 2680 0061 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 05D0 2680 0028 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005B 05D0 2680 0028 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 05D0 0028 2680 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005B 05D0 0028 2680 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 05D0 0028 0029 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 0028 05D0 2680 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0028 05D0 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005B 0028 05D0 2680 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0028 05D0 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 0028 05D0 0029 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0028 05D0 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and [() +05D0 2680 005B 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 2680 005B 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005B 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005B 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 005B 2680 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 2680 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 2680 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 2680 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 0029 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 2680 05D1 0028 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +005B 05D0 2680 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 2680 0028 05D1 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005B 05D0 2680 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 2680 0028 0029 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005B 05D0 2680 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 2680 05D1 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005B 05D0 0028 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 2680 0029 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005B 05D0 0028 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 0029 2680 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005B 05D0 0028 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 0028 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +005B 0028 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 0028 05D0 2680 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +005B 0028 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 0028 05D0 0029 2680 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +005B 0028 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and [() +05D0 005B 0061 2680 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005B 0061 0028 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005B 0061 0028 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 0061 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 005B 0028 0061 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 05D0 0061 2680 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 05D0 0061 0028 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 05D0 0061 0028 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 0061 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 05D0 0028 0061 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 0028 05D0 0061 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0028 05D0 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 0028 05D0 0061 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0028 05D0 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and [() +05D0 005B 0061 0028 0062 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +05D0 005B 0061 0028 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +05D0 005B 0028 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005B 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +005B 05D0 0061 0028 0062 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +005B 05D0 0061 0028 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +005B 05D0 0028 0061 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005B 05D0 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +005B 0028 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005B 0028 05D0 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# R, L, R and [() +05D0 005B 0061 05D1 0028 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 005B 0061 05D1 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005B 0061 0028 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 005B 0061 0028 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005B 0061 0028 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 005B 0061 0028 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 005B 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 005B 0028 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 005B 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 05D0 0061 05D1 0028 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +005B 05D0 0061 05D1 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 05D0 0061 0028 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +005B 05D0 0061 0028 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 05D0 0061 0028 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +005B 05D0 0061 0028 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 0061 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +005B 05D0 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 05D0 0028 0061 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +005B 05D0 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 0028 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +005B 0028 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005B 0028 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +005B 0028 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and [() +05D0 005B 05D1 2680 0028 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005B 05D1 2680 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 05D1 0028 2680 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005B 05D1 0028 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 05D1 0028 0029 2680;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005B 05D1 0028 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 05D1 0029 2680;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 005B 0028 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 05D1 2680 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005B 05D0 0028 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 05D1 0029 2680;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +005B 05D0 0028 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and [() +05D0 005B 05D1 0061 0028 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005B 05D1 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 005B 05D1 0028 0061 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005B 05D1 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 005B 05D1 0028 0029 0061;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005B 05D1 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 005B 0028 05D1 0061 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 005B 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 005B 0028 05D1 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 005B 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005B 05D0 0028 05D1 0061 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +005B 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005B 05D0 0028 05D1 0029 0061;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +005B 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and [() +05D0 005B 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005B 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005B 05D0 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005B 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and [() +2680 005B 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and [() +2680 005B 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and [() +2680 005B 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and [() +2680 005B 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0061 2682 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0061 0028 2682 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0061 0028 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and [() +2680 005B 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 005B 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 005B 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 005B 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 2680 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, ON, L, R and [() +2680 005B 2681 0061 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0061 05D0 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 2681 0061 0028 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 2681 0061 0028 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 2681 0028 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 0028 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 0028 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and [() +2680 005B 2681 05D0 2682 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 05D0 0028 2682 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 05D0 0028 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and [() +2680 005B 2681 05D0 0061 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 05D0 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 2681 05D0 0028 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 2681 05D0 0028 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 2681 0028 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 0028 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 0028 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and [() +2680 005B 2681 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 005B 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 005B 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 005B 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 005B 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005B 2680 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and [() +2680 005B 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and [() +2680 005B 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 2681 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 005B 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005B 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005B 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005B 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005B 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005B 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 005B 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 005B 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 2680 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 2681 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +005B 2680 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 2680 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 2680 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 2680 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 2680 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 2680 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +005B 2680 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 2680 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 0028 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +005B 0028 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 0028 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, ON, R and [() +2680 005B 0061 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0061 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 0061 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 0061 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 0061 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 0061 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 0028 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 0028 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0061 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 2680 0061 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 0061 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 0061 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 0061 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 0028 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 0028 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0028 2680 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0028 2680 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and [() +2680 005B 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005B 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 0062 0029 2681;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +005B 2680 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 2680 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 0062 0029 2681;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# ON, L, L, L and [() +2680 005B 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 2680 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# ON, L, L, R and [() +2680 005B 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +005B 2680 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# ON, L, R, ON and [() +2680 005B 0061 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and [() +2680 005B 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 005B 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 2680 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005B 2680 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +005B 2680 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 0028 2680 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +005B 0028 2680 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 2680 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and [() +2680 005B 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 005B 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 005B 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 005B 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 005B 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +005B 2680 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +005B 2680 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005B 2680 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005B 2680 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005B 0028 2680 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and [() +2680 005B 05D0 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and [() +2680 005B 05D0 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 05D0 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 05D0 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 05D0 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 0028 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005B 0028 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 05D0 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 2680 05D0 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 05D0 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 05D0 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 0028 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 0028 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0028 2680 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0028 2680 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and [() +2680 005B 05D0 2681 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 005B 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005B 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005B 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005B 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005B 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005B 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 005B 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 005B 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 005B 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 2681 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005B 2680 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 2680 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 2680 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 2680 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 2680 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 2680 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +005B 2680 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 2680 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 2680 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +005B 0028 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0028 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0028 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and [() +2680 005B 05D0 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and [() +2680 005B 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 005B 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 005B 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 005B 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005B 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 2680 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +005B 2680 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +005B 2680 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 2680 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 2680 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 0028 2680 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 2680 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, R, L, R and [() +2680 005B 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 005B 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 005B 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005B 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 005B 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005B 2680 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005B 2680 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +005B 2680 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 2680 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 2680 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +005B 0028 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 2680 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0028 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and [() +2680 005B 05D0 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005B 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 005B 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 2680 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +005B 2680 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and [() +2680 005B 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 005B 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005B 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 005B 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 2680 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005B 2680 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +005B 2680 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and [() +2680 005B 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005B 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 2680 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 2680 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and [() +0061 2680 005B 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and [() +0061 2680 005B 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 2681 0062 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 005B 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005B 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005B 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005B 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005B 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +005B 0061 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 2681 0062 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 2681 0029 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 0029 2681 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 0029 2681 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0028 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, ON, R and [() +0061 2680 005B 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005B 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 005B 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005B 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005B 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005B 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 2680 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 2680 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 0028 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 2680 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 2680 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 0028 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0028 0061 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and [() +0061 2680 005B 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0062 2681 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005B 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0062 0028 2681 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005B 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0062 0028 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005B 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005B 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005B 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0062 2681 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005B 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0062 0028 2681 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005B 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0062 0028 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005B 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005B 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +005B 0061 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0062 2681 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005B 0061 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0062 0028 2681 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005B 0061 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0062 0028 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005B 0061 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 0062 2681 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 0062 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005B 0061 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 0062 2681 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 0062 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005B 0028 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +005B 0028 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and [() +0061 2680 005B 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005B 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005B 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +005B 0061 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0062 0028 0063 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0062 0028 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 0062 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 0062 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0028 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# L, ON, L, R and [() +0061 2680 005B 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005B 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 005B 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005B 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005B 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005B 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005B 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005B 2680 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005B 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 2680 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005B 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 2680 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005B 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 2680 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005B 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 0028 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +005B 0061 2680 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0062 05D0 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005B 0061 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 0061 2680 0062 0028 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005B 0061 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 2680 0062 0028 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005B 0061 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 2680 0028 0062 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005B 0061 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 0028 2680 0062 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005B 0028 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +005B 0028 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0028 0061 2680 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and [() +0061 2680 005B 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 0061 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 0061 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and [() +0061 2680 005B 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 005B 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 005B 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005B 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 005B 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005B 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005B 2680 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 2680 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005B 2680 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 2680 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005B 2680 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 2680 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005B 0028 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005B 0028 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0028 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 2680 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 05D0 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 2680 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 05D0 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0061 2680 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 2680 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 2680 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 2680 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 0028 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0061 0028 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 0028 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0028 0061 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005B 0028 0061 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 0061 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and [() +0061 2680 005B 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 2680 005B 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 2680 005B 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005B 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 2680 005B 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 005B 2680 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 005B 2680 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 005B 2680 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 005B 0028 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +005B 0061 2680 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +005B 0061 2680 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005B 0061 2680 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005B 0061 0028 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005B 0028 0061 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and [() +0061 005B 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 2680 0028 2681 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 2680 0028 0029 2681;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 2680 0029 2681;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 2680 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +005B 0061 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 2680 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 + +# L, L, ON, L and [() +0061 005B 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 2680 0063 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 005B 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +005B 0061 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 2680 0063 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 2680 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005B 0061 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 0029 2680 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 + +# L, L, ON, R and [() +0061 005B 0062 2680 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0062 2680 05D0 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 0062 2680 0028 05D0 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 0062 2680 0028 0029 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 2680 05D0 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 0062 0028 2680 0029 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 0062 0028 0029 2680 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 2680 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 0028 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005B 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 0028 0062 0029 2680 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +005B 0061 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 2680 05D0 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 0028 0062 2680 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005B 0061 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 0028 0062 0029 2680 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 + +# L, L, L, ON and [() +0061 005B 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005B 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 0063 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, L, L and [() +0061 005B 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and [() +0061 005B 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 0063 05D0 0029;1;1;2 2 2 1 2 1 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 0062 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, R, ON and [() +0061 005B 0062 05D0 2680 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 05D0 2680 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 05D0 0028 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 05D0 0028 2680 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 05D0 0028 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 05D0 0028 0029 2680;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 05D0 2680 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 05D0 0029 2680;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0028 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 05D0 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 05D0 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 05D0 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 05D0 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, R, L and [() +0061 005B 0062 05D0 0063 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 05D0 0063 0028 0029;1;1;2 2 2 1 2 1 1;6 5 4 3 0 1 2 +0061 005B 0062 05D0 0028 0063 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 05D0 0028 0063 0029;1;1;2 2 2 1 1 2 1;6 5 4 3 0 1 2 +0061 005B 0062 05D0 0028 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0062 05D0 0028 0029 0063;1;1;2 2 2 1 1 1 2;6 5 4 3 0 1 2 +0061 005B 0062 0028 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 05D0 0063 0029;1;1;2 2 2 1 1 2 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0062 0028 05D0 0029 0063;1;1;2 2 2 1 1 1 2;6 5 4 3 0 1 2 +0061 005B 0028 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 05D0 0063 0029;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 005B 0028 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 0028 0062 05D0 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 0061 0028 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 05D0 0063 0029;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +005B 0061 0028 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 0028 0062 05D0 0029 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, L, R, R and [() +0061 005B 0062 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 005B 0062 05D0 0028 05D1 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 005B 0062 05D0 0028 0029 05D1;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 005B 0062 0028 05D0 0029 05D1;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005B 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 005B 0028 0062 05D0 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005B 0061 0028 0062 05D0 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, ON and [() +0061 005B 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and [() +0061 005B 05D0 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 2680 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 2680 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005B 05D0 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 2680 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005B 05D0 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005B 05D0 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005B 0028 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 05D0 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005B 0028 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 05D0 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 2680 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 2680 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0061 05D0 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 2680 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 05D0 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 05D0 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 0028 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 05D0 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 0028 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0028 0061 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 05D0 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005B 0028 0061 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and [() +0061 005B 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 005B 05D0 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005B 05D0 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005B 05D0 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005B 05D0 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005B 05D0 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005B 05D0 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 005B 0028 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 005B 0028 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 005B 0028 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005B 0061 05D0 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 0061 05D0 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 0061 05D0 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 0061 05D0 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 0061 05D0 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 0061 05D0 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +005B 0061 0028 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0061 0028 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0061 0028 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +005B 0028 0061 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0028 0061 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0028 0061 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and [() +0061 005B 05D0 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0062 2680 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0062 0028 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0062 0028 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 05D0 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 05D0 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0062 2680 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0062 0028 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0062 0028 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 05D0 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 05D0 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 05D0 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 05D0 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and [() +0061 005B 05D0 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0062 0028 0063 0029;1;1;2 1 1 2 2 2 2;3 4 5 6 2 1 0 +0061 005B 05D0 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0062 0028 0029 0063;1;1;2 1 1 2 2 2 2;3 4 5 6 2 1 0 +0061 005B 05D0 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0061 005B 0028 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005B 0028 05D0 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 0061 05D0 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0062 0028 0063 0029;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +005B 0061 05D0 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0062 0028 0029 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +005B 0061 05D0 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +005B 0061 0028 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0061 0028 05D0 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +005B 0028 0061 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005B 0028 0061 05D0 0062 0029 0063;1;1;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# L, R, L, R and [() +0061 005B 05D0 0062 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0062 05D1 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0062 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 05D0 0062 0028 05D1 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 05D0 0062 0028 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 005B 05D0 0028 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 005B 0028 05D0 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005B 0028 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 005B 0028 05D0 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0062 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0062 05D1 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0062 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005B 0061 05D0 0062 0028 05D1 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 05D0 0062 0028 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005B 0061 05D0 0028 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +005B 0061 0028 05D0 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0061 0028 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0061 0028 05D0 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +005B 0028 0061 05D0 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 0061 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005B 0028 0061 05D0 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and [() +0061 005B 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005B 05D0 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 005B 05D0 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 0061 05D0 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +005B 0061 05D0 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and [() +0061 005B 05D0 0028 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 005B 05D0 0028 05D1 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005B 05D0 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 005B 05D0 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0061 05D0 0028 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005B 0061 05D0 0028 05D1 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +005B 0061 05D0 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and [() +0061 005B 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005B 05D0 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0061 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005B 0061 05D0 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and [() +05D0 2680 005B 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and [() +05D0 2680 005B 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 005B 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 005B 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 005B 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 2680 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 2680 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 0028 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 2680 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 2680 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0028 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0028 05D0 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and [() +05D0 2680 005B 2681 05D1 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 005B 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 2681 05D1 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 2681 0029 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 0029 2681 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 0029 2681 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005B 0028 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and [() +05D0 2680 005B 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and [() +05D0 2680 005B 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 2680 005B 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 2680 005B 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 005B 2680 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 005B 2680 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 005B 2680 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 005B 0028 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 05D0 2680 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +005B 05D0 2680 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +005B 05D0 2680 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 05D0 0028 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 0028 05D0 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, ON, L, R and [() +05D0 2680 005B 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 005B 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 005B 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 005B 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005B 2680 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 2680 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 2680 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005B 0028 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 0028 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0061 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0061 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005B 05D0 2680 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 2680 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 2680 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005B 05D0 0028 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 0028 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005B 0028 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005B 0028 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and [() +05D0 2680 005B 05D1 2681 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005B 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 05D1 0028 2681 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005B 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 05D1 0028 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005B 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 005B 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 2681 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005B 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 2681 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005B 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005B 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005B 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005B 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 05D1 2681 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005B 05D0 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 05D1 0028 2681 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005B 05D0 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 05D1 0028 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005B 05D0 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 05D1 2681 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 05D1 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005B 05D0 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 05D1 2681 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 05D1 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005B 05D0 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005B 0028 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005B 0028 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and [() +05D0 2680 005B 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005B 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005B 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 005B 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005B 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 005B 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 005B 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005B 2680 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005B 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005B 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005B 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005B 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 2680 05D1 0061 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005B 05D0 2680 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 05D1 0028 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005B 05D0 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 05D0 2680 05D1 0028 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005B 05D0 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 2680 0028 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 05D1 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005B 05D0 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0028 2680 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 05D1 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005B 05D0 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 0028 05D0 2680 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005B 0028 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005B 0028 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and [() +05D0 2680 005B 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005B 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 05D1 0028 05D2 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 05D1 0028 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 2680 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 2680 05D1 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 2680 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +005B 0028 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and [() +05D0 005B 0061 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and [() +05D0 005B 0061 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 005B 0061 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005B 0061 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005B 0061 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005B 0061 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005B 0061 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005B 0028 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 005B 0028 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 005B 0028 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0061 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +005B 05D0 0061 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 05D0 0061 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 05D0 0061 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 05D0 0061 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 05D0 0061 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 05D0 0028 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +005B 05D0 0028 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0028 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 0028 05D0 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +005B 0028 05D0 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 0028 05D0 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, ON, R and [() +05D0 005B 0061 2680 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 2680 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005B 0061 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 0061 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 0061 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 0061 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 0061 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 0028 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 0028 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 2680 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 2680 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005B 05D0 0061 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 0061 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 0061 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 0061 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 0061 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 0028 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 0028 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 0061 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005B 0028 05D0 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005B 0028 05D0 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and [() +05D0 005B 0061 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005B 0061 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +005B 05D0 0061 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 05D0 0061 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# R, L, L, L and [() +05D0 005B 0061 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005B 05D0 0061 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# R, L, L, R and [() +05D0 005B 0061 0028 0062 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005B 0061 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +005B 05D0 0061 0028 0062 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005B 05D0 0061 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# R, L, R, ON and [() +05D0 005B 0061 05D1 2680 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 05D1 0028 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 05D1 0028 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 0061 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 0061 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 05D1 2680 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 05D1 0028 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 05D1 0028 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 0061 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 0061 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 0061 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 0061 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and [() +05D0 005B 0061 05D1 0062 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 05D1 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 05D1 0028 0062 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 05D1 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 0061 05D1 0028 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 0061 0028 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0061 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 0028 0061 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 005B 0028 0061 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0061 05D1 0062 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 05D1 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 05D1 0028 0062 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 05D1 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005B 05D0 0061 05D1 0028 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0061 0028 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0061 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0028 0061 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +005B 05D0 0028 0061 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005B 0028 05D0 0061 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +005B 0028 05D0 0061 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005B 0028 05D0 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and [() +05D0 005B 0061 05D1 0028 05D2 0029;0;0;1 0 0 1 1 1 1;0 1 2 6 5 4 3 +05D0 005B 0061 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 05D1 0028 0029 05D2;0;0;1 0 0 1 1 1 1;0 1 2 6 5 4 3 +05D0 005B 0061 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0061 0028 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 005B 0061 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 0061 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 005B 0028 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 05D1 0028 05D2 0029;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +005B 05D0 0061 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 05D1 0028 0029 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +005B 05D0 0061 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0061 0028 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +005B 05D0 0061 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 0061 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +005B 05D0 0028 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005B 0028 05D0 0061 05D1 0029 05D2;0;0;0 0 1 0 1 0 1;0 1 2 3 4 5 6 +005B 0028 05D0 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and [() +05D0 005B 05D1 2680 0028 2681 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 2680 0028 0029 2681;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 2680 0029 2681;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005B 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 2680 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005B 05D0 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and [() +05D0 005B 05D1 2680 0061 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 2680 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 2680 0028 0061 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 05D1 2680 0028 0029 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 2680 0061 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 2680 0029 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 0029 2680 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005B 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 0029 2680 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 005B 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 2680 0061 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 2680 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005B 05D0 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 0029 2680 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +005B 05D0 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and [() +05D0 005B 05D1 2680 05D2 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 005B 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 2680 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 0029 2680 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005B 05D0 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and [() +05D0 005B 05D1 0061 2680 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0061 2680 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0061 0028 2680 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0061 0028 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0061 0028 0029 2680;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0061 0028 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 0061 2680 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 0061 0029 2680;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 0061 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 0061 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 0061 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 0061 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and [() +05D0 005B 05D1 0061 0028 0062 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 005B 05D1 0061 0028 0029 0062;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 005B 05D1 0028 0061 0029 0062;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 0061 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005B 0028 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 0061 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005B 05D0 0028 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, R, L, R and [() +05D0 005B 05D1 0061 05D2 0028 0029;0;0;1 1 1 0 1 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0061 05D2 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0061 0028 05D2 0029;0;0;1 1 1 0 0 1 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0061 0028 05D2 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0061 0028 0029 05D2;0;0;1 1 1 0 0 0 1;2 1 0 3 4 5 6 +05D0 005B 05D1 0061 0028 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 0061 05D2 0029;0;0;1 1 1 0 0 1 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 0061 0029 05D2;0;0;1 1 1 0 0 0 1;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 0061 05D2 0029;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 005B 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005B 0028 05D1 0061 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 005B 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 0061 05D2 0029;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +005B 05D0 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005B 05D0 0028 05D1 0061 0029 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +005B 05D0 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and [() +05D0 005B 05D1 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005B 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and [() +05D0 005B 05D1 0028 05D2 0061 0029;0;0;1 1 1 0 1 0 0;2 1 0 3 4 5 6 +05D0 005B 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005B 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and [() +05D0 005B 05D1 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005B 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ([) +0028 005B 0029;0;0;0 0 0;0 1 2 +0028 005B 0029;1;1;1 1 1;2 1 0 + +# ON and ([) +2680 0028 005B 0029;0;0;0 0 0 0;0 1 2 3 +2680 0028 005B 0029;1;1;1 1 1 1;3 2 1 0 +0028 2680 005B 0029;0;0;0 0 0 0;0 1 2 3 +0028 2680 005B 0029;1;1;1 1 1 1;3 2 1 0 +0028 005B 2680 0029;0;0;0 0 0 0;0 1 2 3 +0028 005B 2680 0029;1;1;1 1 1 1;3 2 1 0 +0028 005B 0029 2680;0;0;0 0 0 0;0 1 2 3 +0028 005B 0029 2680;1;1;1 1 1 1;3 2 1 0 + +# L and ([) +0061 0028 005B 0029;0;0;0 0 0 0;0 1 2 3 +0061 0028 005B 0029;1;1;2 1 1 1;3 2 1 0 +0028 0061 005B 0029;0;0;0 0 0 0;0 1 2 3 +0028 0061 005B 0029;1;1;1 2 1 1;3 2 1 0 +0028 005B 0061 0029;0;0;0 0 0 0;0 1 2 3 +0028 005B 0061 0029;1;1;1 1 2 1;3 2 1 0 +0028 005B 0029 0061;0;0;0 0 0 0;0 1 2 3 +0028 005B 0029 0061;1;1;1 1 1 2;3 2 1 0 + +# R and ([) +05D0 0028 005B 0029;0;0;1 0 0 0;0 1 2 3 +05D0 0028 005B 0029;1;1;1 1 1 1;3 2 1 0 +0028 05D0 005B 0029;0;0;0 1 0 0;0 1 2 3 +0028 05D0 005B 0029;1;1;1 1 1 1;3 2 1 0 +0028 005B 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0028 005B 05D0 0029;1;1;1 1 1 1;3 2 1 0 +0028 005B 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0028 005B 0029 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and ([) +2680 0028 2681 005B 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 005B 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 005B 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005B 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 005B 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005B 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005B 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005B 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005B 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005B 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and ([) +2680 0028 0061 005B 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 005B 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 005B 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005B 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 005B 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005B 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 0061 005B 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 005B 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 005B 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005B 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 2680 005B 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005B 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 005B 2680 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 005B 2680 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 005B 0029 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and ([) +2680 0028 05D0 005B 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 005B 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 005B 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 005B 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 005B 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 005B 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 005B 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 005B 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005B 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 2680 005B 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005B 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 005B 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 005B 2680 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 005B 2680 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 005B 0029 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and ([) +0061 2680 0028 005B 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 005B 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 005B 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 005B 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 005B 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005B 2680 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 005B 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005B 0029 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 005B 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 005B 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 005B 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005B 2680 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 005B 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005B 0029 2680;1;1;1 2 1 1 1;4 3 2 1 0 +0028 005B 0061 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 005B 0061 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and ([) +0061 0028 0062 005B 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 005B 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 005B 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005B 0062 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 005B 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005B 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0028 0061 005B 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005B 0062 0029;1;1;1 2 2 2 1;4 1 2 3 0 +0028 0061 005B 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005B 0029 0062;1;1;1 2 1 1 2;4 3 2 1 0 +0028 005B 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005B 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 + +# L, R and ([) +0061 0028 05D0 005B 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 005B 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 005B 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 005B 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 005B 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 005B 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 005B 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 005B 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 005B 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0061 005B 05D0 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 005B 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 005B 0029 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0028 005B 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 005B 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 005B 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 005B 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and ([) +05D0 2680 0028 005B 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 005B 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 005B 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 005B 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005B 2680 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005B 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005B 0029 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005B 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 005B 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 005B 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005B 2680 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005B 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005B 0029 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005B 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005B 05D0 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005B 05D0 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and ([) +05D0 0028 0061 005B 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 005B 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 005B 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005B 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 005B 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005B 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 0061 005B 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 005B 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 005B 0061 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005B 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 05D0 005B 0029 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005B 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 005B 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005B 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 005B 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005B 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and ([) +05D0 0028 05D1 005B 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 05D1 005B 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005B 05D1 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005B 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005B 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005B 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005B 05D1 0029;0;0;0 1 1 1 0;0 3 2 1 4 +0028 05D0 005B 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005B 0029 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 005B 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005B 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +0028 005B 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and ([) +2680 0028 2681 005B 2682 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005B 2682 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005B 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and ([) +2680 0028 2681 0061 005B 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 005B 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005B 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 2681 005B 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005B 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 005B 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 005B 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 005B 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 005B 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 2680 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and ([) +2680 0028 2681 05D0 005B 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 005B 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 2681 005B 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 005B 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 005B 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 005B 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 005B 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 005B 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 005B 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 005B 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 005B 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 2680 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and ([) +2680 0028 0061 2681 005B 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 005B 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005B 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005B 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 005B 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005B 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005B 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and ([) +2680 0028 0061 005B 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005B 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +2680 0028 0061 005B 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005B 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +2680 0028 005B 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005B 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 2680 0061 005B 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005B 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 2680 0061 005B 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005B 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 005B 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005B 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 005B 2680 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 2680 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# ON, L, R and ([) +2680 0028 0061 05D0 005B 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 005B 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0061 005B 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 005B 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 005B 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 005B 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 005B 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 005B 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 005B 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0061 005B 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 005B 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 005B 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 005B 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 005B 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 005B 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 2680 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 2680 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 2680 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and ([) +2680 0028 05D0 2681 005B 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 005B 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005B 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005B 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005B 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005B 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 005B 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005B 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005B 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005B 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005B 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 2680 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 2680 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and ([) +2680 0028 05D0 0061 005B 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 005B 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005B 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 05D0 005B 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005B 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005B 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 005B 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005B 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 005B 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005B 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 05D0 005B 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005B 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005B 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 005B 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005B 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 2680 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 2680 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 2680 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and ([) +2680 0028 05D0 005B 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +2680 0028 05D0 005B 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 005B 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 005B 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005B 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +2680 0028 005B 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 2680 05D0 005B 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005B 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 005B 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005B 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 2680 005B 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 2680 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 005B 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and ([) +0061 2680 0028 2681 005B 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 005B 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 005B 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005B 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 005B 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005B 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005B 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005B 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005B 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005B 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 2680 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005B 2681 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005B 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 2680 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and ([) +0061 2680 0028 0062 005B 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 005B 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0028 005B 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005B 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0028 005B 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005B 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 005B 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 005B 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 005B 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005B 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 005B 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005B 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005B 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 2680 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005B 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 2680 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005B 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0029 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0062 005B 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 005B 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 005B 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005B 0062 0029;1;1;1 2 2 2 2 1;5 1 2 3 4 0 +0028 0061 2680 005B 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005B 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 005B 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 2680 0062 0029;1;1;1 2 2 2 2 1;5 1 2 3 4 0 +0028 0061 005B 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 2680 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 005B 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0029 2680 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 005B 0061 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 005B 0061 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 2680 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 005B 0061 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005B 0061 0029 2680 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, ON, R and ([) +0061 2680 0028 05D0 005B 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 005B 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 005B 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 005B 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 005B 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 005B 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 2680 005B 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005B 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 005B 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 005B 2680 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 005B 2680 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 005B 0029 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 005B 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 2680 005B 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005B 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 005B 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 005B 2680 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 005B 2680 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 005B 0029 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005B 0061 2680 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 0061 2680 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005B 0061 0029 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and ([) +0061 0028 0062 2680 005B 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 005B 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 005B 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005B 2680 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 005B 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005B 0029 2680;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 005B 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0062 2680 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005B 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0062 0029 2680;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0028 0061 005B 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0062 2680 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0062 0029 2680;1;1;1 2 2 2 1 1;5 4 1 2 3 0 + +# L, L, L and ([) +0061 0028 0062 005B 0063 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005B 0063 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 005B 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005B 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005B 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005B 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 005B 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005B 0062 0029 0063;1;1;1 2 2 2 1 2;5 4 1 2 3 0 + +# L, L, R and ([) +0061 0028 0062 05D0 005B 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 005B 0029;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0062 005B 05D0 0029;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 005B 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 005B 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 005B 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 005B 0062 05D0 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 005B 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 005B 0062 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0028 0061 005B 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 005B 0062 05D0 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 005B 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 005B 0062 0029 05D0;1;1;1 2 2 2 1 1;5 4 1 2 3 0 + +# L, R, ON and ([) +0061 0028 05D0 2680 005B 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 005B 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005B 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005B 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005B 05D0 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005B 05D0 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 005B 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005B 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005B 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005B 05D0 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005B 05D0 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0061 05D0 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0061 05D0 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and ([) +0061 0028 05D0 0062 005B 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 005B 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005B 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 05D0 005B 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005B 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005B 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 005B 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005B 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 005B 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005B 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 05D0 005B 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005B 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005B 05D0 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 005B 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005B 05D0 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 005B 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005B 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and ([) +0061 0028 05D0 005B 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0061 0028 05D0 005B 05D1 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 005B 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 005B 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005B 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 0028 005B 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 0061 05D0 005B 05D1 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005B 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 005B 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005B 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0061 005B 05D0 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005B 0061 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 005B 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and ([) +05D0 2680 0028 2681 005B 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 005B 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005B 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005B 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005B 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005B 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005B 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005B 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and ([) +05D0 2680 0028 0061 005B 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 005B 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005B 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 005B 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005B 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 005B 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005B 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 2680 005B 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005B 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 005B 2680 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 005B 0029 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 005B 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005B 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 2680 005B 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005B 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 005B 2680 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 005B 0029 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005B 05D0 2680 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005B 05D0 0029 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and ([) +05D0 2680 0028 05D1 005B 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005B 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005B 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 005B 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 2680 005B 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005B 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 2680 005B 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 005B 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 2680 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 005B 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0029 2680 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 005B 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 005B 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 2680 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 005B 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005B 05D0 0029 2680 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 005B 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and ([) +05D0 0028 0061 2680 005B 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 005B 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005B 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005B 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 005B 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005B 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005B 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and ([) +05D0 0028 0061 005B 0062 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005B 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +05D0 0028 0061 005B 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005B 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +05D0 0028 005B 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005B 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 05D0 0061 005B 0062 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005B 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 05D0 0061 005B 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005B 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 005B 0061 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005B 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 005B 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005B 05D0 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# R, L, R and ([) +05D0 0028 0061 05D1 005B 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 005B 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0061 005B 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 005B 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 005B 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 005B 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 005B 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 005B 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 005B 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0061 005B 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 005B 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 005B 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 005B 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 005B 0061 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 005B 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 005B 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005B 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 005B 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and ([) +05D0 0028 05D1 2680 005B 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 005B 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 005B 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005B 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005B 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and ([) +05D0 0028 05D1 0061 005B 0029;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 005B 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 005B 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 005B 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 005B 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 005B 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005B 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 0061;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005B 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and ([) +05D0 0028 05D1 005B 05D2 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 05D2;0;0;0 1 1 1 0 1;0 3 2 1 4 5 +0028 05D0 005B 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and ([) +2680 0028 2681 005B 2682 0029 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 2682 0029 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and ([) +2680 0028 2681 005B 2682 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 2682 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 2682 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and ([) +2680 0028 2681 005B 2682 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 2682 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 2682 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005B 2682 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005B 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and ([) +2680 0028 2681 0061 2682 005B 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 2682 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005B 2682 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005B 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and ([) +2680 0028 2681 0061 005B 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005B 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 2681 0061 005B 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005B 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, ON, L, R and ([) +2680 0028 2681 0061 05D0 005B 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 05D0 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005B 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 005B 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0061 005B 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005B 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and ([) +2680 0028 2681 05D0 2682 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 2682 005B 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 2682 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005B 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005B 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and ([) +2680 0028 2681 05D0 0061 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0061 005B 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005B 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005B 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005B 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and ([) +2680 0028 2681 05D0 005B 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 2681 05D0 005B 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005B 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005B 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005B 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005B 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 005B 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 005B 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and ([) +2680 0028 0061 2681 005B 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005B 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005B 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005B 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005B 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and ([) +2680 0028 0061 2681 0062 005B 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0062 005B 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 2681 005B 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005B 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +2680 0028 0061 2681 005B 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005B 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 2681 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +2680 0028 0061 005B 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 2681 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 005B 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 005B 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0062 005B 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 2681 005B 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005B 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 2681 005B 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005B 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 2681 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 005B 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 2681 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 005B 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 005B 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, ON, R and ([) +2680 0028 0061 2681 05D0 005B 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 05D0 005B 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005B 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 005B 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 2681 005B 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005B 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005B 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 005B 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 05D0 005B 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005B 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005B 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 2681 005B 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005B 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005B 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and ([) +2680 0028 0061 005B 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 005B 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# ON, L, L, L and ([) +2680 0028 0061 005B 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# ON, L, L, R and ([) +2680 0028 0061 005B 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 005B 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005B 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005B 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005B 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# ON, L, R, ON and ([) +2680 0028 0061 05D0 2681 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 2681 005B 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005B 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005B 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 2681 005B 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005B 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005B 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and ([) +2680 0028 0061 05D0 0062 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0062 005B 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005B 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005B 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005B 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005B 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0062 005B 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005B 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005B 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005B 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005B 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 2680 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and ([) +2680 0028 0061 05D0 005B 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 0061 05D0 005B 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005B 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005B 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005B 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005B 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 005B 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 0061 05D0 005B 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005B 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005B 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005B 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005B 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 005B 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 005B 2680 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and ([) +2680 0028 05D0 2681 005B 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005B 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005B 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005B 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005B 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and ([) +2680 0028 05D0 2681 0061 005B 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0061 005B 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005B 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005B 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 005B 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0061 005B 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005B 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005B 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and ([) +2680 0028 05D0 2681 05D1 005B 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 2681 05D1 005B 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 2681 005B 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005B 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005B 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 005B 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 2681 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 005B 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 005B 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 005B 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 2681 05D1 005B 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 2681 005B 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005B 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005B 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 005B 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 2681 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 005B 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 005B 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 005B 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and ([) +2680 0028 05D0 0061 2681 005B 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 2681 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005B 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005B 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 005B 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 2681 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005B 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005B 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and ([) +2680 0028 05D0 0061 005B 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005B 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 05D0 0061 005B 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005B 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005B 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 05D0 0061 005B 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005B 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, R, L, R and ([) +2680 0028 05D0 0061 05D1 005B 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 05D1 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005B 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 005B 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005B 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 005B 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005B 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 005B 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 005B 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 05D1 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005B 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005B 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005B 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 005B 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005B 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 005B 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 2680 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and ([) +2680 0028 05D0 005B 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005B 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005B 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005B 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005B 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and ([) +2680 0028 05D0 005B 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005B 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 005B 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005B 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005B 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005B 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and ([) +2680 0028 05D0 005B 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +2680 0028 05D0 005B 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005B 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0028 2680 05D0 005B 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and ([) +0061 2680 0028 2681 005B 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 2682 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 2681 0029 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and ([) +0061 2680 0028 2681 0062 005B 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0062 005B 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 005B 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 2681 0062 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 2680 005B 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 2681 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0029 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0029 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, ON, R and ([) +0061 2680 0028 2681 05D0 005B 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 05D0 005B 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 005B 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 2681 005B 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005B 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005B 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005B 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005B 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 2681 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005B 2681 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005B 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and ([) +0061 2680 0028 0062 2681 005B 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 2681 005B 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 005B 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 2681 005B 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 005B 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 005B 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 2680 0062 2681 005B 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 005B 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 2681 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0062 2681 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 2680 005B 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0062 0029 2681;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0062 2681 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0062 0029 2681;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 005B 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and ([) +0061 2680 0028 0062 005B 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 0063 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 2680 0062 005B 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 0029 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0062 0029 0063;1;1;1 2 2 2 2 1 2;6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0062 0029 0063;1;1;1 2 2 2 2 1 2;6 5 1 2 3 4 0 +0028 005B 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# L, ON, L, R and ([) +0061 2680 0028 0062 05D0 005B 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 05D0 005B 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0062 005B 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0062 005B 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0062 005B 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 005B 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005B 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 05D0 005B 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 005B 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0062 005B 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0062 005B 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0062 005B 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 005B 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005B 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 2680 0062 05D0 005B 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 005B 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 005B 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0062 005B 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 005B 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 0062 05D0 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 2680 005B 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005B 0062 0029 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 0062 05D0 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005B 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 2680 0062 0029 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 005B 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 005B 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 2680 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and ([) +0061 2680 0028 05D0 2681 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 2681 005B 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005B 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005B 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 2681 005B 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005B 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005B 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 2681 005B 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005B 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005B 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and ([) +0061 2680 0028 05D0 0062 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0062 005B 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005B 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005B 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005B 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0062 005B 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005B 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005B 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005B 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0062 005B 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005B 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005B 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005B 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 0061 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and ([) +0061 2680 0028 05D0 005B 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 2680 0028 05D0 005B 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005B 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005B 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005B 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005B 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 2680 05D0 005B 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005B 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005B 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005B 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005B 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 005B 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 2680 05D0 005B 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005B 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005B 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005B 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005B 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 005B 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 005B 0061 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and ([) +0061 0028 0062 2680 005B 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005B 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 005B 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 + +# L, L, ON, L and ([) +0061 0028 0062 2680 0063 005B 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0063 005B 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 0063 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 005B 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 0029 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 2680 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 + +# L, L, ON, R and ([) +0061 0028 0062 2680 05D0 005B 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 05D0 005B 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 2680 005B 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 05D0 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 2680 005B 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 2680 005B 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005B 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 05D0 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005B 2680 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005B 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005B 0029 2680 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005B 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005B 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 0062 0029 2680 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 005B 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 0062 2680 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 0062 0029 2680 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 + +# L, L, L, ON and ([) +0061 0028 0062 005B 0063 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, L, L and ([) +0061 0028 0062 005B 0063 0029 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 0029 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and ([) +0061 0028 0062 005B 0063 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 05D0 0029;1;1;2 1 2 2 2 1 1;6 5 2 3 4 1 0 +0061 0028 0062 005B 0063 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005B 0063 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, R, ON and ([) +0061 0028 0062 05D0 2680 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 2680 005B 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005B 2680 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005B 0029 2680;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 05D0 2680 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 05D0 0029 2680;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 05D0 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 05D0 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 05D0 2680 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 05D0 0029 2680;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 + +# L, L, R, L and ([) +0061 0028 0062 05D0 0063 005B 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0063 005B 0029;1;1;2 1 2 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0063 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005B 0063 0029;1;1;2 1 2 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005B 0029 0063;1;1;2 1 2 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 05D0 0063 0029;1;1;2 1 2 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005B 05D0 0029 0063;1;1;2 1 2 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 05D0 0063 0029;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005B 0062 05D0 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 05D0 0063 0029;1;1;1 2 2 2 1 2 1;6 5 4 1 2 3 0 +0028 0061 005B 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005B 0062 05D0 0029 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 + +# L, L, R, R and ([) +0061 0028 0062 05D0 005B 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 0062 05D0 005B 05D1 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005B 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005B 0029 05D1;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005B 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005B 05D0 0029 05D1;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 005B 0062 05D0 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 005B 0062 05D0 0029 05D1;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 + +# L, R, ON, ON and ([) +0061 0028 05D0 2680 005B 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005B 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005B 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005B 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005B 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and ([) +0061 0028 05D0 2680 0062 005B 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0062 005B 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005B 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005B 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 005B 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0062 005B 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005B 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005B 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and ([) +0061 0028 05D0 2680 05D1 005B 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 2680 05D1 005B 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 2680 005B 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005B 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005B 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 005B 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 005B 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 005B 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 005B 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 2680 05D1 005B 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 2680 005B 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005B 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005B 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 005B 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 005B 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 005B 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 005B 0061 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and ([) +0061 0028 05D0 0062 2680 005B 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 2680 005B 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005B 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005B 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 005B 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 2680 005B 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005B 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005B 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and ([) +0061 0028 05D0 0062 005B 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005B 0063 0029;1;1;2 1 1 2 2 2 1;6 3 4 5 2 1 0 +0061 0028 05D0 0062 005B 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005B 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005B 0063 0029;1;1;1 2 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0061 05D0 0062 005B 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005B 0029 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0062 0029 0063;1;1;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# L, R, L, R and ([) +0061 0028 05D0 0062 05D1 005B 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 05D1 005B 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005B 05D1 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 005B 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005B 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 005B 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005B 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 005B 05D0 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 005B 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 05D1 005B 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005B 05D1 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005B 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005B 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 005B 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005B 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 005B 05D0 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 0061 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005B 0061 05D0 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and ([) +0061 0028 05D0 005B 05D1 2680 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005B 05D1 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 0029 2680;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005B 05D1 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 2680 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005B 05D1 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 2680;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005B 05D1 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and ([) +0061 0028 05D0 005B 05D1 0062 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005B 05D1 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 005B 05D1 0029 0062;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005B 05D1 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0062 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005B 05D1 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 0062;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005B 05D1 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and ([) +0061 0028 05D0 005B 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0061 0028 05D0 005B 05D1 0029 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005B 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0028 0061 05D0 005B 05D1 0029 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and ([) +05D0 2680 0028 2681 005B 2682 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005B 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005B 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and ([) +05D0 2680 0028 2681 0061 005B 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0061 005B 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005B 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005B 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and ([) +05D0 2680 0028 2681 05D1 005B 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 05D1 005B 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005B 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 05D1 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 005B 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 2681 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 005B 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0029 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0029 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and ([) +05D0 2680 0028 0061 2681 005B 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 2681 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005B 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005B 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 005B 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 2681 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005B 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005B 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 005B 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 2681 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005B 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005B 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and ([) +05D0 2680 0028 0061 005B 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005B 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 2680 0028 0061 005B 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005B 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005B 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 2680 0061 005B 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005B 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005B 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 2680 0061 005B 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005B 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, ON, L, R and ([) +05D0 2680 0028 0061 05D1 005B 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 05D1 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005B 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 005B 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005B 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 005B 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 005B 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 05D1 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005B 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005B 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005B 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 005B 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 005B 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 05D1 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005B 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005B 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005B 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 005B 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and ([) +05D0 2680 0028 05D1 2681 005B 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 2681 005B 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 005B 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 005B 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 005B 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 005B 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 005B 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 005B 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 005B 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 2681 005B 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 2681 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005B 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005B 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 2681 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005B 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 2681;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005B 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 2681 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 2681;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005B 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005B 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and ([) +05D0 2680 0028 05D1 0061 005B 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 05D1 0061 005B 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 05D1 005B 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 005B 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005B 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 005B 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 005B 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 05D1 0061 005B 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 05D1 005B 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 005B 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005B 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 005B 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 005B 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0061 005B 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005B 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005B 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0061 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005B 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005B 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0061 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005B 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005B 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005B 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and ([) +05D0 2680 0028 05D1 005B 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005B 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005B 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005B 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005B 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 05D2 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 05D1 005B 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005B 0029 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005B 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005B 05D1 0029 05D2;0;0;0 1 1 1 1 0 1;0 4 3 2 1 5 6 +0028 05D0 2680 005B 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 2680 05D1 0029 05D2;0;0;0 1 1 1 1 0 1;0 4 3 2 1 5 6 +0028 05D0 005B 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 2680 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0028 005B 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and ([) +05D0 0028 0061 2680 005B 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005B 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005B 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005B 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005B 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and ([) +05D0 0028 0061 2680 0062 005B 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0062 005B 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 2680 005B 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005B 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +05D0 0028 0061 2680 005B 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005B 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 2680 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +05D0 0028 0061 005B 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 005B 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 005B 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0062 005B 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 2680 005B 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005B 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 2680 005B 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005B 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 2680 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 005B 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 005B 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 005B 05D0 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, ON, R and ([) +05D0 0028 0061 2680 05D1 005B 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 05D1 005B 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005B 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 005B 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005B 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005B 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 005B 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 05D1 005B 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005B 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005B 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005B 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005B 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and ([) +05D0 0028 0061 005B 0062 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0062 2680 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 005B 0062 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0062 0029 2680;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0062 2680 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0062 0029 2680;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# R, L, L, L and ([) +05D0 0028 0061 005B 0062 0029 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 0029 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# R, L, L, R and ([) +05D0 0028 0061 005B 0062 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0062 05D1 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 005B 0062 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005B 0062 0029 05D1;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0062 05D1 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005B 0062 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005B 0062 0029 05D1;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# R, L, R, ON and ([) +05D0 0028 0061 05D1 2680 005B 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 2680 005B 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005B 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005B 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 005B 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 2680 005B 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005B 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005B 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and ([) +05D0 0028 0061 05D1 0062 005B 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0062 005B 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0062 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005B 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005B 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005B 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 005B 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0062 005B 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0062 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005B 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005B 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005B 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005B 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005B 05D0 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and ([) +05D0 0028 0061 05D1 005B 05D2 0029;0;0;1 0 0 1 1 1 0;0 1 2 5 4 3 6 +05D0 0028 0061 05D1 005B 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005B 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005B 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005B 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005B 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 0061 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 05D2 0029;0;0;0 1 0 1 1 1 0;0 1 2 5 4 3 6 +0028 05D0 0061 05D1 005B 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005B 0029 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005B 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005B 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005B 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 0061 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0028 05D0 005B 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005B 05D0 0061 05D1 0029 05D2;0;0;0 0 1 0 1 0 1;0 1 2 3 4 5 6 +0028 005B 05D0 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and ([) +05D0 0028 05D1 2680 005B 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 005B 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and ([) +05D0 0028 05D1 2680 0061 005B 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 2680 0061 005B 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0061 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 2680 005B 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 005B 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0061 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 005B 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005B 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005B 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and ([) +05D0 0028 05D1 2680 05D2 005B 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 05D2 005B 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005B 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 005B 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 2680 0029 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0029 2680 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and ([) +05D0 0028 05D1 0061 2680 005B 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 2680 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 2680 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005B 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 0029 2680;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005B 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 2680 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 2680;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 2680 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 2680;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and ([) +05D0 0028 05D1 0061 005B 0062 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005B 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 05D1 0061 005B 0029 0062;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005B 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 0062;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 0062;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, R, L, R and ([) +05D0 0028 05D1 0061 05D2 005B 0029;0;0;1 0 1 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 05D2 005B 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 05D2 0029;0;0;1 0 1 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005B 05D2 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005B 0029 05D2;0;0;1 0 1 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005B 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 05D2 0029;0;0;1 0 1 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 0061 0029 05D2;0;0;1 0 1 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 05D1 005B 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 05D2 0029;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005B 05D1 0061 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005B 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 05D2 0029;0;0;0 1 1 1 0 1 0;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005B 05D1 0061 0029 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 005B 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and ([) +05D0 0028 05D1 005B 05D2 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 05D2 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and ([) +05D0 0028 05D1 005B 05D2 0061 0029;0;0;1 0 1 1 1 0 0;0 1 4 3 2 5 6 +05D0 0028 05D1 005B 05D2 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005B 05D2 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and ([) +05D0 0028 05D1 005B 05D2 0029 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005B 05D2 0029 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ()[ +0028 0029 005B;0;0;0 0 0;0 1 2 +0028 0029 005B;1;1;1 1 1;2 1 0 + +# ON and ()[ +2680 0028 0029 005B;0;0;0 0 0 0;0 1 2 3 +2680 0028 0029 005B;1;1;1 1 1 1;3 2 1 0 +0028 2680 0029 005B;0;0;0 0 0 0;0 1 2 3 +0028 2680 0029 005B;1;1;1 1 1 1;3 2 1 0 +0028 0029 2680 005B;0;0;0 0 0 0;0 1 2 3 +0028 0029 2680 005B;1;1;1 1 1 1;3 2 1 0 +0028 0029 005B 2680;0;0;0 0 0 0;0 1 2 3 +0028 0029 005B 2680;1;1;1 1 1 1;3 2 1 0 + +# L and ()[ +0061 0028 0029 005B;0;0;0 0 0 0;0 1 2 3 +0061 0028 0029 005B;1;1;2 1 1 1;3 2 1 0 +0028 0061 0029 005B;0;0;0 0 0 0;0 1 2 3 +0028 0061 0029 005B;1;1;1 2 1 1;3 2 1 0 +0028 0029 0061 005B;0;0;0 0 0 0;0 1 2 3 +0028 0029 0061 005B;1;1;1 1 2 1;3 2 1 0 +0028 0029 005B 0061;0;0;0 0 0 0;0 1 2 3 +0028 0029 005B 0061;1;1;1 1 1 2;3 2 1 0 + +# R and ()[ +05D0 0028 0029 005B;0;0;1 0 0 0;0 1 2 3 +05D0 0028 0029 005B;1;1;1 1 1 1;3 2 1 0 +0028 05D0 0029 005B;0;0;0 1 0 0;0 1 2 3 +0028 05D0 0029 005B;1;1;1 1 1 1;3 2 1 0 +0028 0029 05D0 005B;0;0;0 0 1 0;0 1 2 3 +0028 0029 05D0 005B;1;1;1 1 1 1;3 2 1 0 +0028 0029 005B 05D0;0;0;0 0 0 1;0 1 2 3 +0028 0029 005B 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and ()[ +2680 0028 2681 0029 005B;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 0029 005B;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 2681 005B;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 2681 005B;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 005B 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 005B 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 2681 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 2681 005B;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 005B 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 005B 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 005B 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 005B 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and ()[ +2680 0028 0061 0029 005B;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 0029 005B;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 0029 0061 005B;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0061 005B;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 0029 005B 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 005B 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 0061 0029 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 0029 005B;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0029 0061 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0061 005B;1;1;1 1 1 2 1;4 3 2 1 0 +0028 2680 0029 005B 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 005B 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 2680 0061 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0061 005B;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 2680 005B 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 005B 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 005B 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 005B 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and ()[ +2680 0028 05D0 0029 005B;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 0029 005B;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 05D0 005B;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 0029 05D0 005B;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 005B 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 0029 005B 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 0029 005B;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 0029 005B;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 05D0 005B;0;0;0 0 0 1 0;0 1 2 3 4 +0028 2680 0029 05D0 005B;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 005B 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 0029 005B 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 05D0 005B;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 2680 05D0 005B;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 005B 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 2680 005B 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 005B 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 005B 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and ()[ +0061 2680 0028 0029 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 0029 005B;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 0029 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 0029 005B;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 2680 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 2680 005B;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 005B 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 005B 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 0029 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 0029 005B;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 2680 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 2680 005B;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 005B 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 005B 2680;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 2680 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 2680 005B;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0061 005B 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 005B 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and ()[ +0061 0028 0062 0029 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 0029 005B;1;1;2 2 2 2 1;4 0 1 2 3 +0061 0028 0029 0062 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0062 005B;1;1;2 2 2 2 1;4 0 1 2 3 +0061 0028 0029 005B 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 005B 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0028 0061 0029 0062 005B;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0062 005B;1;1;1 2 1 2 1;4 3 2 1 0 +0028 0061 0029 005B 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 005B 0062;1;1;1 2 1 1 2;4 3 2 1 0 +0028 0029 0061 005B 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 005B 0062;1;1;1 1 2 2 2;2 3 4 1 0 + +# L, R and ()[ +0061 0028 05D0 0029 005B;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 0029 005B;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 05D0 005B;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 0029 05D0 005B;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 005B 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 0029 005B 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 0029 005B;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 0029 005B;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 05D0 005B;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0061 0029 05D0 005B;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 005B 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 0029 005B 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 05D0 005B;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 0061 05D0 005B;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0061 005B 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 0061 005B 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and ()[ +05D0 2680 0028 0029 005B;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 0029 005B;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 0029 005B;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 0029 005B;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 2680 005B;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 2680 005B;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 005B 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 005B 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 0029 005B;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 0029 005B;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 2680 005B;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 2680 005B;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 005B 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 005B 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 2680 005B;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 2680 005B;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 005B 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 005B 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and ()[ +05D0 0028 0061 0029 005B;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 0029 005B;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 0029 0061 005B;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0061 005B;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 0029 005B 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 005B 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 0061 0029 005B;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 0029 005B;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0029 0061 005B;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0061 005B;1;1;1 1 1 2 1;4 3 2 1 0 +0028 05D0 0029 005B 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 005B 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 05D0 0061 005B;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0061 005B;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 05D0 005B 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 005B 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and ()[ +05D0 0028 05D1 0029 005B;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 05D1 0029 005B;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 05D1 005B;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 0029 05D1 005B;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 005B 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 005B 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 05D1 005B;0;0;0 1 0 1 0;0 1 2 3 4 +0028 05D0 0029 05D1 005B;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 005B 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 0029 005B 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 005B 05D1;0;0;0 0 1 1 1;0 1 4 3 2 +0028 0029 05D0 005B 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and ()[ +2680 0028 2681 0029 2682 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 2682 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 005B 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 005B 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 005B 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and ()[ +2680 0028 2681 0061 0029 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 0029 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 2681 0029 005B 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 2681 005B 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 005B 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 005B 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 2681 005B 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 005B 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 005B 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 005B 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 005B 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and ()[ +2680 0028 2681 05D0 0029 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 0029 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 2681 0029 05D0 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 0029 005B 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 2681 05D0 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 2681 005B 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 005B 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 005B 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 2681 05D0 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 2681 005B 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 005B 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 005B 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 005B 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 005B 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and ()[ +2680 0028 0061 2681 0029 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 0029 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 2681 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 005B 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 2681 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 2681 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 005B 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 0029 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 2681 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 005B 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 2681 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 2681 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 005B 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 2681 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 2681 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 005B 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and ()[ +2680 0028 0061 0029 0062 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0062 005B;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +2680 0028 0061 0029 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 005B 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +2680 0028 0029 0061 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 005B 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 2680 0061 0029 0062 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0062 005B;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 2680 0061 0029 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 005B 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 0029 0061 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 005B 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 0029 2680 0061 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 005B 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# ON, L, R and ()[ +2680 0028 0061 05D0 0029 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 0029 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0061 0029 05D0 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 0029 005B 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 0061 05D0 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 0061 005B 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 0029 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0061 0029 05D0 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 0029 005B 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 0061 05D0 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 0061 005B 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 2680 0061 05D0 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 0061 005B 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and ()[ +2680 0028 05D0 2681 0029 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 0029 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 2681 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 2681 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 0029 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 2681 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 2681 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 2681 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and ()[ +2680 0028 05D0 0061 0029 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 0029 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 05D0 0029 005B 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 05D0 005B 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 0029 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 05D0 0029 005B 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 05D0 005B 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 2680 05D0 005B 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and ()[ +2680 0028 05D0 0029 05D1 005B;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +2680 0028 05D0 0029 05D1 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 005B 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 0029 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 005B 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +2680 0028 0029 05D0 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 2680 05D0 0029 05D1 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 005B 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 0029 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 005B 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 2680 0029 05D0 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 005B 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0029 2680 05D0 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and ()[ +0061 2680 0028 2681 0029 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 0029 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 2681 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 2681 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 005B 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 2681 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 2681 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 005B 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 005B 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 2681 005B;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 005B 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 005B 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 005B 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 005B 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and ()[ +0061 2680 0028 0062 0029 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 0029 005B;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 2680 0028 0029 0062 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0062 005B;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 2680 0028 0029 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 005B 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 0029 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 0029 005B;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0029 0062 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0062 005B;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0029 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 005B 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 2680 0062 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0062 005B;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0029 2680 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 005B 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 005B 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 005B 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0062 0029 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 0029 005B;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 0029 0062 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0062 005B;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 2680 0029 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 005B 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0062 005B;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 2680 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 005B 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 005B 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 005B 2680 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 2680 0062 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0062 005B;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 0029 0061 2680 005B 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 005B 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 0029 0061 005B 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 005B 2680 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 + +# L, ON, R and ()[ +0061 2680 0028 05D0 0029 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 0029 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 0029 05D0 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 0029 005B 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 0029 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 2680 0029 05D0 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 0029 005B 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 2680 05D0 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 2680 005B 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 005B 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 005B 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 0029 005B;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 2680 0029 05D0 005B;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 0029 005B 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 2680 05D0 005B;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 2680 005B 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 005B 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 005B 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 0061 2680 05D0 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 2680 005B 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 005B 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 005B 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and ()[ +0061 0028 0062 2680 0029 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 0029 005B;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 2680 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 2680 005B;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0062 0029 005B 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 005B 2680;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 2680 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 2680 005B;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 005B 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 005B 2680;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0028 0061 0029 0062 2680 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 2680 005B;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0062 005B 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 005B 2680;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, L, L and ()[ +0061 0028 0062 0029 0063 005B;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0063 005B;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 005B 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 005B 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 0062 005B 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 005B 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 0029 0062 005B 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 005B 0063;1;1;1 2 1 2 2 2;3 4 5 2 1 0 + +# L, L, R and ()[ +0061 0028 0062 05D0 0029 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 0029 005B;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 0029 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0062 0029 05D0 005B;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0062 0029 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 0029 005B 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 0062 05D0 005B;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 0062 005B 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0028 0061 0029 0062 05D0 005B;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 0062 05D0 005B;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0062 005B 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 0062 005B 05D0;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, R, ON and ()[ +0061 0028 05D0 2680 0029 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 0029 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 2680 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 005B 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 2680 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 005B 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 0029 005B;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 2680 005B;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 005B 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 2680 005B;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 005B 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 2680 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 005B 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and ()[ +0061 0028 05D0 0062 0029 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 0029 005B;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0062 005B;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 05D0 0029 005B 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 005B 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0062 005B;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 0029 05D0 005B 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 005B 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 0029 005B;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0062 005B;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 05D0 0029 005B 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 005B 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0062 005B;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 05D0 005B 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 005B 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0062 005B;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 0029 0061 05D0 005B 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 005B 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and ()[ +0061 0028 05D0 0029 05D1 005B;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0061 0028 05D0 0029 05D1 005B;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 005B 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 0029 005B 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 005B 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0061 0028 0029 05D0 005B 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0061 05D0 0029 05D1 005B;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 005B 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 0029 005B 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 005B 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0061 0029 05D0 005B 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 005B 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0029 0061 05D0 005B 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and ()[ +05D0 2680 0028 2681 0029 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 0029 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 2681 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 2681 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 2681 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 005B 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and ()[ +05D0 2680 0028 0061 0029 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 0029 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 0029 005B 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 0029 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005B 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005B 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 005B 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 005B 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 0029 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 2680 0029 005B 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 2680 005B 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 005B 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 005B 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 05D0 2680 005B 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 005B 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 005B 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and ()[ +05D0 2680 0028 05D1 0029 005B;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 05D1 0029 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 0029 05D1 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 05D1 0029 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 0029 05D1 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 0029 2680 05D1 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005B 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 0029 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 2680 0029 05D1 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 005B 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 2680 0029 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 2680 05D1 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 005B 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 2680 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 005B 2680 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 005B 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 0029 05D0 2680 05D1 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 005B 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 2680 005B 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 005B 2680 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 005B 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and ()[ +05D0 0028 0061 2680 0029 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 0029 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 2680 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 005B 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 2680 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 005B 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 005B 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 0029 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 2680 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 005B 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005B;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 2680 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 005B 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 005B 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005B;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 2680 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 005B 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 005B 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and ()[ +05D0 0028 0061 0029 0062 005B;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0062 005B;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +05D0 0028 0061 0029 005B 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 005B 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 0061 005B 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 005B 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 05D0 0061 0029 0062 005B;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0062 005B;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 05D0 0061 0029 005B 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 005B 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 0061 005B 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 005B 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 0029 05D0 0061 005B 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 005B 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# R, L, R and ()[ +05D0 0028 0061 05D1 0029 005B;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 0029 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0061 0029 05D1 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 005B 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 0029 005B 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0029 0061 05D1 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 005B 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0029 0061 005B 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 0029 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0061 0029 05D1 005B;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 005B 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 0029 005B 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 0061 05D1 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 005B 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 0061 005B 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0029 05D0 0061 05D1 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 005B 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0029 05D0 0061 005B 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and ()[ +05D0 0028 05D1 2680 0029 005B;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 2680 0029 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 2680 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 005B 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 2680 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 005B 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 2680 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 005B 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and ()[ +05D0 0028 05D1 0061 0029 005B;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 0029 005B;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0061 005B;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 0061;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 005B 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and ()[ +05D0 0028 05D1 0029 05D2 005B;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 0029 05D2 005B;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 05D2;0;0;0 1 0 1 1 1;0 1 2 5 4 3 +0028 05D0 0029 05D1 005B 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and ()[ +2680 0028 2681 0029 2682 005B 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 005B 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and ()[ +2680 0028 2681 0029 2682 0061 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005B 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 005B 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 005B 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 005B 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and ()[ +2680 0028 2681 0029 2682 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 05D0 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 005B 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 005B 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 005B 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 005B 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 005B 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 005B 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 005B 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and ()[ +2680 0028 2681 0061 2682 0029 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 2682 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 2682 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 2682 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 005B 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 2682 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 2682 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 005B 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 2682 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 2682 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 005B 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 2682 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 2682 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 005B 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and ()[ +2680 0028 2681 0061 0029 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +2680 0028 0029 2681 0061 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0029 2681 0061 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, ON, L, R and ()[ +2680 0028 2681 0061 05D0 0029 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 05D0 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 05D0 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 005B 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 05D0 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 005B 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 05D0 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 005B 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 05D0 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 005B 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and ()[ +2680 0028 2681 05D0 2682 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 2682 0029 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 2682 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 2682 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 2682 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 2682 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 2682 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 2682 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 2682 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 2682 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and ()[ +2680 0028 2681 05D0 0061 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0061 0029 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0061 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0061 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0061 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0061 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and ()[ +2680 0028 2681 05D0 0029 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 2681 0029 05D0 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0029 2681 05D0 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0029 2681 05D0 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and ()[ +2680 0028 0061 2681 0029 2682 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 2682 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 005B 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 005B 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 005B 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 2682 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 2682 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 005B 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 005B 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 005B 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 005B 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and ()[ +2680 0028 0061 2681 0062 0029 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0062 0029 005B;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 2681 0029 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 005B 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0062 005B;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 0029 0061 2681 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 005B 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 0029 0061 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 005B 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0061 2681 0062 0029 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0062 0029 005B;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 2681 0029 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 005B 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0062 005B;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 0029 0061 2681 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 005B 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0029 0061 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 005B 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 2681 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0062 005B;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 2680 0061 2681 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 005B 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 005B 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# ON, L, ON, R and ()[ +2680 0028 0061 2681 05D0 0029 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 05D0 0029 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 05D0 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 005B 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 05D0 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 005B 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 005B 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 05D0 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 005B 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 005B 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0029 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 05D0 0029 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 05D0 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 005B 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 05D0 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 005B 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 005B 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 05D0 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 005B 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 005B 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 05D0 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 005B 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 005B 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and ()[ +2680 0028 0061 0029 0062 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 2681 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 005B 2681;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 2681 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 005B 2681;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L, L and ()[ +2680 0028 0061 0029 0062 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 005B 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0061 0029 0062 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 005B 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# ON, L, L, R and ()[ +2680 0028 0061 0029 0062 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 05D0 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 005B 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 05D0 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 005B 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, R, ON and ()[ +2680 0028 0061 05D0 2681 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 2681 0029 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 2681 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 2681 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 2681 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 2681 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 2681 0029 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 2681 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 2681 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 2681 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 2681 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 2681 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and ()[ +2680 0028 0061 05D0 0062 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0062 0029 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0062 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0062 0029 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0062 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and ()[ +2680 0028 0061 05D0 0029 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 05D1 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0061 0029 05D0 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0029 0061 05D0 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 05D1 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0061 0029 05D0 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0029 0061 05D0 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 2680 0061 05D0 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and ()[ +2680 0028 05D0 2681 0029 2682 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 2682 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 2682 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 2682 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and ()[ +2680 0028 05D0 2681 0061 0029 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0061 0029 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0061 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0061 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0061 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0029 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0061 0029 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0061 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0061 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0061 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0061 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and ()[ +2680 0028 05D0 2681 05D1 0029 005B;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 2681 05D1 0029 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005B 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 05D1 005B;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 0029 05D0 2681 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005B 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 2681 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005B 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0029 005B;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 2681 05D1 0029 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005B 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 05D1 005B;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 0029 05D0 2681 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005B 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 2681 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005B 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 05D1 005B;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 2680 05D0 2681 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005B 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 2681 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005B 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and ()[ +2680 0028 05D0 0061 2681 0029 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 2681 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 2681 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 2681 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 2681 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 2681 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0029 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 2681 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 2681 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 2681 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 2681 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 2681 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 2681 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and ()[ +2680 0028 05D0 0061 0029 0062 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +2680 0028 0029 05D0 0061 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 05D0 0061 0029 0062 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0029 05D0 0061 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 2680 05D0 0061 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, R, L, R and ()[ +2680 0028 05D0 0061 05D1 0029 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 05D1 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 05D1 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0029 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 05D1 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 05D1 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and ()[ +2680 0028 05D0 0029 05D1 2681 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005B 2681;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 2681 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 2681;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and ()[ +2680 0028 05D0 0029 05D1 0061 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005B 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0061 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and ()[ +2680 0028 05D0 0029 05D1 005B 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 05D0 0029 05D1 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005B 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 05D0 0029 05D1 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and ()[ +0061 2680 0028 2681 0029 2682 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 2682 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 005B 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 005B 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 005B 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 005B 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and ()[ +0061 2680 0028 2681 0062 0029 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0062 0029 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0062 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 005B 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0062 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0029 2681 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 005B 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0062 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0029 2681 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 005B 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0062 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0062 005B;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 005B 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 005B 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 005B 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 005B 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, ON, ON, R and ()[ +0061 2680 0028 2681 05D0 0029 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 05D0 0029 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 05D0 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 005B 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 05D0 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 005B 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 005B 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 05D0 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 005B 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 005B 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 005B 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 05D0 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 005B 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 005B 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 005B 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 005B 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 005B 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and ()[ +0061 2680 0028 0062 2681 0029 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 2681 0029 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 2681 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 005B 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 2681 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005B 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 2681 0029 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0029 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 2681 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 005B 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 2681 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005B 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 2681 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005B 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 2680 0062 2681 0029 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0029 005B;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 2681 005B;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 005B 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 2681 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 005B 2681;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 2681 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 005B 2681;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 2681 005B;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 005B 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and ()[ +0061 2680 0028 0062 0029 0063 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0063 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 005B 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005B 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0063 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0063 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 005B 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005B 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005B 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0063 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0063 005B;1;1;1 2 2 2 1 2 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 005B 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 005B 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 0029 2680 0062 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 005B 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 0061 2680 0062 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 005B 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, ON, L, R and ()[ +0061 2680 0028 0062 05D0 0029 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 05D0 0029 005B;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0062 0029 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 05D0 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 005B 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 05D0 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005B 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 05D0 0029 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0029 005B;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0062 0029 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 05D0 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 005B 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 05D0 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005B 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 05D0 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005B 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 2680 0062 05D0 0029 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0029 005B;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 05D0 005B;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 005B 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 05D0 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 005B 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 05D0 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 005B 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 05D0 005B;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 005B 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and ()[ +0061 2680 0028 05D0 2681 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 2681 0029 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 2681 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 2681 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 005B 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 2681 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 005B 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 2681 0029 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 2681 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 2681 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 005B 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 2681 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 005B 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 2681 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 005B 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 2681 0029 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 2681 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 2681 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 005B 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 2681 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 005B 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 2681 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 005B 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 2681 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 2681 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and ()[ +0061 2680 0028 05D0 0062 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0062 0029 005B;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0062 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0062 0029 005B;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0062 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0062 0029 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0062 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0062 005B;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 005B 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0062 005B;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 005B 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0062 005B;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 005B 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0062 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and ()[ +0061 2680 0028 05D0 0029 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 05D1 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 005B 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 2680 0028 0029 05D0 005B 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 05D1 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 005B 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 2680 0029 05D0 005B 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0029 2680 05D0 005B 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 05D1 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 005B 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 2680 0029 05D0 005B 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 0029 2680 05D0 005B 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 0061 2680 05D0 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and ()[ +0061 0028 0062 2680 0029 2681 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 2681 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 005B 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 005B 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 005B 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 2680 005B 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 005B 2681;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, L and ()[ +0061 0028 0062 2680 0063 0029 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0063 0029 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0063 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0063 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 005B 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0063 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0063 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 0029 2680 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 005B 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0063 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0063 005B;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0029 0062 2680 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 005B 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0063 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0063 005B;1;1;1 2 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0061 0029 0062 2680 005B 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 005B 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 0029 0062 005B 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 2680 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 + +# L, L, ON, R and ()[ +0061 0028 0062 2680 05D0 0029 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 05D0 0029 005B;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 2680 0029 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 05D0 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 005B 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 05D0 005B;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 005B 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 005B 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 005B 2680 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 05D0 005B;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 005B 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 005B 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 005B 2680 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 2680 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 05D0 005B;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 005B 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 005B 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 005B 2680 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, L, ON and ()[ +0061 0028 0062 0029 0063 2680 005B;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 2680 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 005B 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 005B 2680;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 + +# L, L, L, L and ()[ +0061 0028 0062 0029 0063 005B 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 005B 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and ()[ +0061 0028 0062 0029 0063 05D0 005B;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 05D0 005B;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 005B 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 005B 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 + +# L, L, R, ON and ()[ +0061 0028 0062 05D0 2680 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 2680 0029 005B;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 2680 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 2680 005B;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 005B 2680;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 2680 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 2680 005B;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005B 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 005B 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 2680 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 2680 005B;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 005B 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 2680 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 2680 005B;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005B 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 005B 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, R, L and ()[ +0061 0028 0062 05D0 0063 0029 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0063 0029 005B;1;1;2 1 2 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0063 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0063 005B;1;1;2 1 2 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 005B 0063;1;1;2 1 2 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0063 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0063 005B;1;1;2 2 2 2 1 2 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005B 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 005B 0063;1;1;2 2 2 2 1 1 2;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0063 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0063 005B;1;1;2 2 2 2 1 2 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 005B 0063;1;1;2 2 2 2 1 1 2;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 0063 005B;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0063 005B;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005B 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 005B 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, L, R, R and ()[ +0061 0028 0062 05D0 0029 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 05D1 005B;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 005B 05D1;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0062 0029 05D0 005B 05D1;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0029 0062 05D0 005B 05D1;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 005B 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 0029 0062 05D0 005B 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, ON and ()[ +0061 0028 05D0 2680 0029 2681 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 2681 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 005B 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 005B 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 005B 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 2681 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 2681 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 005B 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 005B 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 005B 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and ()[ +0061 0028 05D0 2680 0062 0029 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0062 0029 005B;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0062 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0062 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005B 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0062 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 005B 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0029 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0062 0029 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0062 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0062 005B;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 005B 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0062 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0062 005B;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 005B 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005B 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0062 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0062 005B;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 005B 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 005B 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0062 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 005B 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and ()[ +0061 0028 05D0 2680 05D1 0029 005B;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 2680 05D1 0029 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 05D1 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 005B 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 05D1 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 005B 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005B 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005B 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 05D1 005B;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 0029 05D0 2680 05D1 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005B 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 2680 005B 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005B 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 005B 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0029 005B;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 2680 05D1 0029 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 05D1 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 005B 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 05D1 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 005B 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005B 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005B 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 05D1 005B;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 0029 05D0 2680 05D1 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005B 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 2680 005B 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005B 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 005B 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 05D1 005B;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 0061 05D0 2680 05D1 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005B 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 2680 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005B 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 005B 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and ()[ +0061 0028 05D0 0062 2680 0029 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 2680 0029 005B;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 2680 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 2680 005B;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 005B 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 2680 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 2680 005B;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 005B 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 2680 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 2680 005B;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 005B 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0029 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 2680 0029 005B;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 2680 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 2680 005B;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 005B 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 2680 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 2680 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 005B 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 2680 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 2680 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 005B 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 2680 005B;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 2680 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 005B 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and ()[ +0061 0028 05D0 0062 0029 0063 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0063 005B;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 005B 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 005B 0063;1;1;2 1 1 1 2 2 2;4 5 6 3 2 1 0 +0061 0028 0029 05D0 0062 005B 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 005B 0063;1;1;2 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 05D0 0062 0029 0063 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0063 005B;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 005B 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 005B 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 0029 05D0 0062 005B 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 005B 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 0061 05D0 0062 005B 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 005B 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# L, R, L, R and ()[ +0061 0028 05D0 0062 05D1 0029 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 05D1 0029 005B;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 05D1 005B;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 005B 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 05D1 005B;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 005B 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 05D1 005B;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 005B 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0029 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 05D1 0029 005B;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 05D1 005B;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 005B 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 05D1 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 005B 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 05D1 005B;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 005B 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 05D1 005B;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 05D1 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005B 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 005B 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and ()[ +0061 0028 05D0 0029 05D1 2680 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 2680 005B;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005B 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 005B 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 2680 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 2680 005B;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 005B 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and ()[ +0061 0028 05D0 0029 05D1 0062 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0062 005B;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005B 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 005B 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0062 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0062 005B;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 005B 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and ()[ +0061 0028 05D0 0029 05D1 005B 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 05D0 0029 05D1 005B 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005B 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 05D0 0029 05D1 005B 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and ()[ +05D0 2680 0028 2681 0029 2682 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 2682 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 005B 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and ()[ +05D0 2680 0028 2681 0061 0029 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0061 0029 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0061 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0061 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0061 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0061 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 005B 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and ()[ +05D0 2680 0028 2681 05D1 0029 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 2681 05D1 0029 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 05D1 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 2681 0029 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 05D1 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 0029 2681 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 05D1 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 0029 2681 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 05D1 005B;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 05D1 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005B 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 005B 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005B 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005B 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005B 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 005B 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and ()[ +05D0 2680 0028 0061 2681 0029 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 2681 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 2681 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 2681 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 2681 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0029 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 2681 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 2681 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 2681 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 2681 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 2681 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0029 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 2681 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 2681 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 2681 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 2681 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 2681 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 2681 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 2681 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 005B 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and ()[ +05D0 2680 0028 0061 0029 0062 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 2680 0061 0029 0062 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 0029 2680 0061 005B 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 2680 0061 0029 0062 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0029 2680 0061 005B 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 05D0 2680 0061 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, ON, L, R and ()[ +05D0 2680 0028 0061 05D1 0029 005B;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 05D1 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 05D1 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0029 005B;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 05D1 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 05D1 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0029 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 05D1 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 05D1 005B;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 05D1 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005B 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 05D1 005B;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005B 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 05D1 005B;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005B 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 05D1 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 005B 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and ()[ +05D0 2680 0028 05D1 2681 0029 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 2681 0029 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 2681 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 2681 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0029 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 2681 0029 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 2681 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 2681 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 2681 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0029 005B;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 2681 0029 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 2681 005B;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 2681 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 2681;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 2681 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 2681;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 2681 005B;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and ()[ +05D0 2680 0028 05D1 0061 0029 005B;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 05D1 0061 0029 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0061 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0061 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0029 005B;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 05D1 0061 0029 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0061 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0061 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0061 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0029 005B;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0061 0029 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0061 005B;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0061 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0061 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0061 005B;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and ()[ +05D0 2680 0028 05D1 0029 05D2 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 0029 05D2 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 05D2 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 0029 05D2 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 05D2 005B;0;0;0 1 1 1 0 1 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 05D2 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005B 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005B 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 2680 0029 05D1 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005B 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0029 2680 05D1 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005B 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 05D1 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and ()[ +05D0 0028 0061 2680 0029 2681 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 2681 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005B 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 2681 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 2681 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 005B 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005B 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005B 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 005B 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and ()[ +05D0 0028 0061 2680 0062 0029 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0062 0029 005B;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 2680 0029 0062 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0062 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005B 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0062 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0062 005B;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 0029 0061 2680 005B 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 005B 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 0029 0061 005B 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005B 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0061 2680 0062 0029 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0062 0029 005B;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 2680 0029 0062 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0062 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005B 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0062 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0062 005B;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 0029 0061 2680 005B 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 005B 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0029 0061 005B 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005B 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 2680 0062 005B;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0062 005B;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 05D0 0061 2680 005B 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 005B 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 005B 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005B 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# R, L, ON, R and ()[ +05D0 0028 0061 2680 05D1 0029 005B;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 05D1 0029 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 05D1 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 05D1 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005B 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005B 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 05D1 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 005B 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005B 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0029 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 05D1 0029 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 05D1 005B;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 05D1 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005B 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 05D1 005B;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 05D1 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005B 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 005B 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005B 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005B 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 05D1 005B;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 05D1 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005B 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 005B 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005B 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 05D1 005B;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 05D1 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005B 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 005B 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 005B 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005B 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and ()[ +05D0 0028 0061 0029 0062 2680 005B;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 2680 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 005B 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 005B 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 2680 005B;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 2680 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005B 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 005B 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L, L and ()[ +05D0 0028 0061 0029 0062 005B 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 005B 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0061 0029 0062 005B 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 005B 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# R, L, L, R and ()[ +05D0 0028 0061 0029 0062 05D1 005B;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 05D1 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 005B 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 005B 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 05D1 005B;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 05D1 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005B 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 005B 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, R, ON and ()[ +05D0 0028 0061 05D1 2680 0029 005B;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 2680 0029 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 2680 005B;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 2680 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 005B 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 2680 005B;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 2680 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 005B 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 2680 005B;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 2680 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 005B 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0029 005B;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 2680 0029 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 2680 005B;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 2680 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 005B 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 2680 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 2680 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 005B 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 2680 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 2680 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 005B 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 2680 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 2680 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 005B 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and ()[ +05D0 0028 0061 05D1 0062 0029 005B;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0062 0029 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0062 005B;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0062 005B;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0062 005B;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0029 005B;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0062 0029 005B;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0062 005B;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0062 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0062 005B;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 005B 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0062 005B;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0062 005B;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and ()[ +05D0 0028 0061 05D1 0029 05D2 005B;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 05D2 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005B 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 005B 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005B 05D2;0;0;1 0 0 0 1 1 1;0 1 2 3 6 5 4 +05D0 0028 0061 0029 05D1 005B 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005B 05D2;0;0;1 0 0 0 1 1 1;0 1 2 3 6 5 4 +05D0 0028 0029 0061 05D1 005B 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 05D2 005B;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 05D2 005B;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005B 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 005B 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005B 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0061 0029 05D1 005B 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005B 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0029 0061 05D1 005B 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005B 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 05D0 0061 05D1 005B 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and ()[ +05D0 0028 05D1 2680 0029 2681 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 2681 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 2681;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 005B 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and ()[ +05D0 0028 05D1 2680 0061 0029 005B;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 2680 0061 0029 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0061 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0061 005B;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 005B 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0061 005B;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 005B 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0061 005B;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 005B 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and ()[ +05D0 0028 05D1 2680 05D2 0029 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 05D2 0029 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 05D2 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 0029 05D2 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 05D2 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 0029 2680 05D2 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005B 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 05D2 005B;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0029 05D1 2680 05D2 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005B 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 05D2 005B;0;0;0 1 0 1 1 1 0;0 1 2 5 4 3 6 +0028 05D0 0029 05D1 2680 05D2 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005B 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 2680 005B 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005B 2680 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 005B 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and ()[ +05D0 0028 05D1 0061 2680 0029 005B;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 2680 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 2680 005B;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 2680 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 2680;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 005B 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 2680 005B;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 2680 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 005B 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 2680 005B;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 2680 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 005B 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 2680 005B;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 2680 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 005B 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and ()[ +05D0 0028 05D1 0061 0029 0062 005B;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0062 005B;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 0062;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 005B 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 0062;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 0062;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 005B 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, R, L, R and ()[ +05D0 0028 05D1 0061 05D2 0029 005B;0;0;1 0 1 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 05D2 0029 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 05D2 005B;0;0;1 0 1 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 05D2 005B;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005B 05D2;0;0;1 0 1 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 005B 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 05D2 005B;0;0;1 1 1 1 0 1 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 05D2 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005B 05D2;0;0;1 1 1 1 0 0 1;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 005B 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 05D2 005B;0;0;1 1 1 1 0 1 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 05D2 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005B 05D2;0;0;1 1 1 1 0 0 1;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 005B 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 05D2 005B;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 05D2 005B;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005B 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 005B 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and ()[ +05D0 0028 05D1 0029 05D2 2680 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 2680 005B;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 2680;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 005B 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and ()[ +05D0 0028 05D1 0029 05D2 0061 005B;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0061 005B;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 005B 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and ()[ +05D0 0028 05D1 0029 05D2 005B 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005B 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# )() +0029 0028 0029;0;0;0 0 0;0 1 2 +0029 0028 0029;1;1;1 1 1;2 1 0 + +# ON and )() +2680 0029 0028 0029;0;0;0 0 0 0;0 1 2 3 +2680 0029 0028 0029;1;1;1 1 1 1;3 2 1 0 +0029 2680 0028 0029;0;0;0 0 0 0;0 1 2 3 +0029 2680 0028 0029;1;1;1 1 1 1;3 2 1 0 +0029 0028 2680 0029;0;0;0 0 0 0;0 1 2 3 +0029 0028 2680 0029;1;1;1 1 1 1;3 2 1 0 +0029 0028 0029 2680;0;0;0 0 0 0;0 1 2 3 +0029 0028 0029 2680;1;1;1 1 1 1;3 2 1 0 + +# L and )() +0061 0029 0028 0029;0;0;0 0 0 0;0 1 2 3 +0061 0029 0028 0029;1;1;2 1 1 1;3 2 1 0 +0029 0061 0028 0029;0;0;0 0 0 0;0 1 2 3 +0029 0061 0028 0029;1;1;1 2 1 1;3 2 1 0 +0029 0028 0061 0029;0;0;0 0 0 0;0 1 2 3 +0029 0028 0061 0029;1;1;1 1 2 1;3 2 1 0 +0029 0028 0029 0061;0;0;0 0 0 0;0 1 2 3 +0029 0028 0029 0061;1;1;1 1 1 2;3 2 1 0 + +# R and )() +05D0 0029 0028 0029;0;0;1 0 0 0;0 1 2 3 +05D0 0029 0028 0029;1;1;1 1 1 1;3 2 1 0 +0029 05D0 0028 0029;0;0;0 1 0 0;0 1 2 3 +0029 05D0 0028 0029;1;1;1 1 1 1;3 2 1 0 +0029 0028 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0029 0028 05D0 0029;1;1;1 1 1 1;3 2 1 0 +0029 0028 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0029 0028 0029 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and )() +2680 0029 2681 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0029 2681 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0029 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0029 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0029 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0029 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0029 2680 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0029 2680 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0029 2680 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0029 2680 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0029 0028 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0028 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and )() +2680 0029 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0029 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0029 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0029 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0029 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0029 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0029 2680 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0029 2680 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0029 2680 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0029 2680 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0029 2680 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0029 2680 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0029 0028 2680 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0028 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0029 0028 2680 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0028 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0029 0028 0029 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0028 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and )() +2680 0029 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0029 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0029 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0029 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0029 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0029 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0029 2680 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0029 2680 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0029 2680 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0029 2680 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0029 2680 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0029 2680 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0029 0028 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0029 0028 2680 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0029 0028 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0029 0028 2680 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0029 0028 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0029 0028 0029 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and )() +0061 2680 0029 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0029 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0029 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0029 2680 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0029 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0029 0028 2680 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0029 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0029 0028 0029 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0029 0061 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0061 2680 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0029 0061 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0061 0028 2680 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0029 0061 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0061 0028 0029 2680;1;1;1 2 1 1 1;4 3 2 1 0 +0029 0028 0061 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0028 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0029 0028 0061 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0028 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and )() +0061 0029 0062 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0029 0062 0028 0029;1;1;2 2 2 1 1;4 3 0 1 2 +0061 0029 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0029 0028 0062 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0029 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0029 0028 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0029 0061 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0061 0028 0062 0029;1;1;1 2 2 2 2;1 2 3 4 0 +0029 0061 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0061 0028 0029 0062;1;1;1 2 2 2 2;1 2 3 4 0 +0029 0028 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0029 0028 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 + +# L, R and )() +0061 0029 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0029 05D0 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0029 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0029 0028 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0029 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0029 0028 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0029 0061 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0029 0061 05D0 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0029 0061 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0029 0061 0028 05D0 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0029 0061 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0029 0061 0028 0029 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0029 0028 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0029 0028 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0029 0028 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0029 0028 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and )() +05D0 2680 0029 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0029 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0029 2680 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0029 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0029 0028 2680 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0029 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0029 0028 0029 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0029 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0029 05D0 2680 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0029 05D0 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0029 05D0 0028 2680 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0029 05D0 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0029 05D0 0028 0029 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0029 05D0 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0029 0028 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0029 0028 05D0 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0029 0028 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0029 0028 05D0 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and )() +05D0 0029 0061 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0029 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0029 0028 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0029 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0029 0028 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0029 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0029 05D0 0061 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0029 05D0 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0029 05D0 0028 0061 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0029 05D0 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0029 05D0 0028 0029 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0029 05D0 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0029 0028 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0029 0028 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0029 0028 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0029 0028 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and )() +05D0 0029 05D1 0028 0029;0;0;1 1 1 0 0;2 1 0 3 4 +05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0029 0028 05D1 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0029 0028 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0029 05D0 0028 05D1 0029;0;0;0 1 1 1 1;0 4 3 2 1 +0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0029 05D0 0028 0029 05D1;0;0;0 1 1 1 1;0 4 3 2 1 +0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0029 0028 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and )() +2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and )() +2680 0029 2681 0061 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 2681 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0029 2681 0028 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0029 2681 0028 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0029 0028 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0029 0028 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0029 0028 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 2680 0028 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0029 2680 0028 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 2680 0028 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 0028 2680 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and )() +2680 0029 2681 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0029 2681 05D0 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0029 2681 0028 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0029 2681 0028 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0029 0028 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0029 0028 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0029 0028 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0029 2680 0028 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 2680 0028 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 2680 0028 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 0028 2680 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and )() +2680 0029 0061 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0061 2681 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0029 0061 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0061 0028 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0029 0061 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0061 0028 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0029 0028 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0029 0028 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 2680 0061 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0061 2681 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 2680 0061 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0061 0028 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 2680 0061 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0061 0028 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 2680 0028 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 2680 0028 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 0028 2680 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0028 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 0028 2680 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0028 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and )() +2680 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +2680 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +2680 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0029 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0029 2680 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0029 2680 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0029 2680 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 2680 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0029 0028 2680 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0028 2680 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# ON, L, R and )() +2680 0029 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0029 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0029 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0029 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0029 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0029 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0029 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0029 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 2680 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 2680 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 2680 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0029 2680 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 2680 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 2680 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 2680 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0029 2680 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 2680 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 2680 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 0028 2680 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0029 0028 2680 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 0028 2680 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 0028 2680 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and )() +2680 0029 05D0 2681 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0029 05D0 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 05D0 0028 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0029 05D0 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 05D0 0028 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0029 05D0 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0029 0028 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0029 0028 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 05D0 2681 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 2680 05D0 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 05D0 0028 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 2680 05D0 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 05D0 0028 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 2680 05D0 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 2680 0028 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 2680 0028 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 0028 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0028 2680 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 0028 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0028 2680 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and )() +2680 0029 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0029 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0029 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0029 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0029 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0029 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0029 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0029 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 2680 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 2680 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 2680 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 2680 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0029 2680 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 2680 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 2680 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 2680 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0029 2680 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 2680 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 0028 2680 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0028 2680 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0029 0028 2680 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0028 2680 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and )() +2680 0029 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +2680 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +2680 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +2680 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0029 2680 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0029 2680 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0029 2680 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0029 0028 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and )() +0061 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0029 2681 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0029 0028 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0029 0028 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 2680 0028 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 2680 0028 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0028 2680 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0029 0061 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 2680 0028 2681 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 2680 0028 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 0028 2680 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0028 0061 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0028 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and )() +0061 2680 0029 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0029 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 2680 0029 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0029 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0029 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0029 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0029 2680 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 2680 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0029 2680 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 2680 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0029 2680 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 2680 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0029 0028 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0028 2680 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0029 0028 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0028 2680 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0029 0028 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0028 0029 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0029 0061 2680 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 2680 0062 0028 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0029 0061 2680 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 2680 0028 0062 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0029 0061 2680 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 2680 0028 0029 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0029 0061 0028 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 0028 2680 0062 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0029 0061 0028 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 0028 2680 0029 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0029 0061 0028 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 0028 0029 2680 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0029 0028 0061 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0028 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0029 0028 0061 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0028 0061 2680 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0029 0028 0061 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0028 0061 0029 2680 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, ON, R and )() +0061 2680 0029 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0029 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0029 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0029 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0029 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0029 2680 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0029 2680 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0029 2680 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0029 0028 2680 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0029 0028 2680 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0029 0028 0029 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0029 0061 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0061 2680 05D0 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0029 0061 2680 0028 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 0061 2680 0028 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0029 0061 0028 2680 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 0061 0028 2680 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 0061 0028 0029 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0028 0061 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0029 0028 0061 2680 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 0028 0061 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 0028 0061 2680 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 0028 0061 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 0028 0061 0029 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and )() +0061 0029 0062 2680 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0062 2680 0028 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0029 0062 0028 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0062 0028 2680 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0029 0062 0028 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0062 0028 0029 2680;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0029 0028 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0028 0062 2680 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0029 0028 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0028 0062 0029 2680;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0029 0061 0028 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 0028 0062 2680 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +0029 0061 0028 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 0028 0062 0029 2680;1;1;1 2 2 2 2 1;5 1 2 3 4 0 + +# L, L, L and )() +0061 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0029 0061 0028 0062 0029 0063;1;1;1 2 2 2 2 2;1 2 3 4 5 0 + +# L, L, R and )() +0061 0029 0062 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0029 0062 05D0 0028 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0029 0062 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0029 0062 0028 05D0 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0029 0062 0028 0029 05D0;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 0029 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0029 0028 0062 05D0 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0029 0061 0028 0062 05D0 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0029 0061 0028 0062 0029 05D0;1;1;1 2 2 2 2 1;5 1 2 3 4 0 + +# L, R, ON and )() +0061 0029 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0029 05D0 2680 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0029 05D0 0028 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0029 05D0 0028 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0029 0028 05D0 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0029 0028 05D0 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0029 0061 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0061 05D0 2680 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0061 05D0 0028 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0061 05D0 0028 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0061 0028 05D0 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0061 0028 05D0 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0028 0061 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0028 0061 05D0 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 0028 0061 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0028 0061 05D0 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and )() +0061 0029 05D0 0062 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0029 05D0 0062 0028 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0029 05D0 0028 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0029 05D0 0028 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0029 05D0 0028 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0029 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0029 0028 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0029 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0029 0061 05D0 0062 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0061 05D0 0062 0028 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0029 0061 05D0 0028 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0061 05D0 0028 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0029 0061 05D0 0028 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0061 05D0 0028 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0029 0061 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0061 0028 05D0 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0029 0061 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0061 0028 05D0 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0029 0028 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0028 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0029 0028 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0029 0028 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and )() +0061 0029 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0061 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0061 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0029 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0029 0061 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0029 0061 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0029 0061 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0029 0061 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0029 0028 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and )() +05D0 2680 0029 2681 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0029 0028 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0029 0028 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 2680 0028 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 2680 0028 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 2680 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 2680 0028 2681 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 2680 0028 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 2680 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 0028 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0028 05D0 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and )() +05D0 2680 0029 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0029 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0029 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0029 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0029 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0029 2680 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0029 2680 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0029 2680 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0029 0028 2680 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0029 0028 2680 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0029 0028 0029 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 05D0 2680 0061 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 05D0 2680 0028 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0029 05D0 2680 0028 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 05D0 0028 2680 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0029 05D0 0028 2680 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 05D0 0028 0029 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 0028 05D0 2680 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0028 05D0 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0029 0028 05D0 2680 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0028 05D0 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 0028 05D0 0029 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0028 05D0 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and )() +05D0 2680 0029 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 2680 0029 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0029 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0029 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0029 2680 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 2680 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 2680 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 2680 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 0029 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 2680 05D1 0028 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0029 05D0 2680 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 2680 0028 05D1 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0029 05D0 2680 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 2680 0028 0029 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0029 05D0 2680 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 2680 05D1 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0029 05D0 0028 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 2680 0029 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0029 05D0 0028 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 0029 2680 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0029 05D0 0028 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 0028 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0029 0028 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 0028 05D0 2680 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0029 0028 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 0028 05D0 0029 2680 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0029 0028 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and )() +05D0 0029 0061 2680 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0029 0061 0028 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0029 0061 0028 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 0061 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0029 0028 0061 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 05D0 0061 2680 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 05D0 0061 0028 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 05D0 0061 0028 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 0061 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 05D0 0028 0061 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 0028 05D0 0061 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0028 05D0 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 0028 05D0 0061 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0028 05D0 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and )() +05D0 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +05D0 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +05D0 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0029 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0029 05D0 0061 0028 0062 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0029 05D0 0061 0028 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0029 05D0 0028 0061 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0029 05D0 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0029 0028 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0029 0028 05D0 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# R, L, R and )() +05D0 0029 0061 05D1 0028 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0029 0061 05D1 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0029 0061 0028 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0029 0061 0028 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0029 0061 0028 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0029 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0029 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 05D0 0061 05D1 0028 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0029 05D0 0061 05D1 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 05D0 0061 0028 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0029 05D0 0061 0028 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 05D0 0061 0028 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0029 05D0 0061 0028 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 0061 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 05D0 0028 0061 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 0028 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0029 0028 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and )() +05D0 0029 05D1 2680 0028 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0029 05D1 2680 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 05D1 0028 2680 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0029 05D1 0028 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 05D1 0028 0029 2680;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0029 05D1 0028 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 05D1 0029 2680;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0029 0028 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 05D1 2680 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0029 05D0 0028 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 05D1 0029 2680;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0029 05D0 0028 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and )() +05D0 0029 05D1 0061 0028 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0029 05D1 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0029 05D1 0028 0061 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0029 05D1 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0029 05D1 0028 0029 0061;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0029 0028 05D1 0061 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0029 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0029 05D0 0028 05D1 0061 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0029 05D0 0028 05D1 0029 0061;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and )() +05D0 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0029 05D0 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and )() +2680 0029 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and )() +2680 0029 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and )() +2680 0029 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and )() +2680 0029 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0061 2682 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0061 0028 2682 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0061 0028 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and )() +2680 0029 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0029 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0029 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 0029 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 2680 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, ON, L, R and )() +2680 0029 2681 0061 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0061 05D0 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 2681 0061 0028 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 2681 0061 0028 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 2681 0028 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 0028 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 0028 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and )() +2680 0029 2681 05D0 2682 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 05D0 0028 2682 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 05D0 0028 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and )() +2680 0029 2681 05D0 0061 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 05D0 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 2681 05D0 0028 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 2681 05D0 0028 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 2681 0028 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 0028 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 0028 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and )() +2680 0029 2681 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0029 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0029 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0029 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0029 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0029 2680 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and )() +2680 0029 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and )() +2680 0029 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 2681 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0029 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0029 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0029 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0029 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0029 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0029 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0029 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0029 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 2680 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 2681 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0029 2680 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 2680 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 2680 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 2680 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 2680 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 2680 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0029 2680 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 2680 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 0028 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0029 0028 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 0028 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, ON, R and )() +2680 0029 0061 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0061 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 0061 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 0061 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 0061 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 0061 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 0028 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 0028 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0061 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 2680 0061 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 0061 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 0061 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 0061 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 0028 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 0028 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0028 2680 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0028 2680 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and )() +2680 0029 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 0029 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 0062 0029 2681;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0029 2680 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 2680 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 0062 0029 2681;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# ON, L, L, L and )() +2680 0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 2680 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# ON, L, L, R and )() +2680 0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0029 2680 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# ON, L, R, ON and )() +2680 0029 0061 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and )() +2680 0029 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0029 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 2680 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0029 2680 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0029 2680 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 0028 2680 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0029 0028 2680 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 2680 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and )() +2680 0029 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0029 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0029 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0029 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0029 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0029 2680 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0029 2680 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0029 2680 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0029 2680 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0029 0028 2680 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and )() +2680 0029 05D0 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and )() +2680 0029 05D0 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 05D0 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 05D0 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 05D0 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 0028 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0029 0028 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 05D0 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 2680 05D0 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 05D0 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 05D0 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 0028 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 0028 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0028 2680 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0028 2680 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and )() +2680 0029 05D0 2681 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0029 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0029 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0029 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0029 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0029 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0029 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0029 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0029 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0029 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 2681 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0029 2680 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 2680 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 2680 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 2680 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 2680 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 2680 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0029 2680 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 2680 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 2680 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0029 0028 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0028 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0028 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and )() +2680 0029 05D0 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and )() +2680 0029 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0029 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0029 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 0029 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0029 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 2680 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0029 2680 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0029 2680 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 2680 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 2680 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 0028 2680 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 2680 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, R, L, R and )() +2680 0029 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0029 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0029 2680 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0029 2680 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0029 2680 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 2680 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 2680 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0029 0028 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 2680 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0028 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and )() +2680 0029 05D0 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0029 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0029 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 2680 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0029 2680 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and )() +2680 0029 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0029 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 2680 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0029 2680 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0029 2680 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and )() +2680 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 2680 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 2680 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and )() +0061 2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and )() +0061 2680 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 2681 0062 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0029 0061 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 2681 0062 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 2681 0029 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 0029 2681 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 0029 2681 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0028 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, ON, R and )() +0061 2680 0029 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0029 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0029 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0029 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0029 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0029 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 2680 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 2680 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 0028 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 2680 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 2680 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 0028 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0028 0061 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and )() +0061 2680 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0062 2681 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0062 0028 2681 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0062 0028 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0029 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0062 2681 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0029 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0062 0028 2681 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0029 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0062 0028 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0029 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0029 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0029 0061 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0062 2681 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0029 0061 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0062 0028 2681 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0029 0061 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0062 0028 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0029 0061 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 0062 2681 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 0062 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0029 0061 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 0062 2681 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 0062 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0029 0028 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0029 0028 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and )() +0061 2680 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0029 0061 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0062 0028 0063 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0062 0028 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 0062 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 0062 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0028 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# L, ON, L, R and )() +0061 2680 0029 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0029 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0029 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0029 2680 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0029 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 2680 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0029 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 2680 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0029 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 2680 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0029 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 0028 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0029 0061 2680 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0062 05D0 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0029 0061 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 0061 2680 0062 0028 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0029 0061 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 2680 0062 0028 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0029 0061 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 2680 0028 0062 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0029 0061 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 0028 2680 0062 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0029 0028 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0029 0028 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0028 0061 2680 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and )() +0061 2680 0029 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 0061 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 0061 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and )() +0061 2680 0029 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0029 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0029 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 0029 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0029 2680 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 2680 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0029 2680 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 2680 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0029 2680 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 2680 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0029 0028 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0029 0028 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0028 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 2680 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 05D0 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 2680 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 05D0 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0061 2680 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 2680 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 2680 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 2680 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 0028 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0061 0028 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 0028 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0028 0061 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0029 0028 0061 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 0061 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and )() +0061 2680 0029 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 2680 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 2680 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 2680 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0029 2680 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0029 2680 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0029 2680 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0029 0028 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0029 0061 2680 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0029 0061 2680 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0029 0061 2680 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0029 0061 0028 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0029 0028 0061 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and )() +0061 0029 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 2680 0028 2681 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 2680 0028 0029 2681;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 2680 0029 2681;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 2680 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0029 0061 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 2680 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 + +# L, L, ON, L and )() +0061 0029 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 2680 0063 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0029 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0029 0061 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 2680 0063 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 2680 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0029 0061 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 0029 2680 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 + +# L, L, ON, R and )() +0061 0029 0062 2680 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0062 2680 05D0 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 0062 2680 0028 05D0 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 0062 2680 0028 0029 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 2680 05D0 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 0062 0028 2680 0029 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 0062 0028 0029 2680 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 2680 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 0028 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0029 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 0028 0062 0029 2680 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0029 0061 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 2680 05D0 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 0028 0062 2680 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0029 0061 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 0028 0062 0029 2680 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 + +# L, L, L, ON and )() +0061 0029 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0029 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 0063 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, L, L and )() +0061 0029 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and )() +0061 0029 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 0063 05D0 0029;1;1;2 2 2 1 2 1 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 0062 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, R, ON and )() +0061 0029 0062 05D0 2680 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 05D0 2680 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 05D0 0028 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 05D0 0028 2680 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 05D0 0028 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 05D0 0028 0029 2680;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 05D0 2680 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 05D0 0029 2680;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0028 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 05D0 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 05D0 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 05D0 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 05D0 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, R, L and )() +0061 0029 0062 05D0 0063 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 05D0 0063 0028 0029;1;1;2 2 2 1 2 1 1;6 5 4 3 0 1 2 +0061 0029 0062 05D0 0028 0063 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 05D0 0028 0063 0029;1;1;2 2 2 1 1 2 1;6 5 4 3 0 1 2 +0061 0029 0062 05D0 0028 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0062 05D0 0028 0029 0063;1;1;2 2 2 1 1 1 2;6 5 4 3 0 1 2 +0061 0029 0062 0028 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 05D0 0063 0029;1;1;2 2 2 1 1 2 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0062 0028 05D0 0029 0063;1;1;2 2 2 1 1 1 2;6 5 4 3 0 1 2 +0061 0029 0028 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 05D0 0063 0029;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 0029 0028 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 0028 0062 05D0 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 0061 0028 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 05D0 0063 0029;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0029 0061 0028 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 0028 0062 05D0 0029 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, L, R, R and )() +0061 0029 0062 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0029 0062 05D0 0028 05D1 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0029 0062 05D0 0028 0029 05D1;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0029 0062 0028 05D0 0029 05D1;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0029 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0029 0028 0062 05D0 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0029 0061 0028 0062 05D0 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, ON and )() +0061 0029 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and )() +0061 0029 05D0 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 2680 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 2680 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0029 05D0 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 2680 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0029 05D0 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0029 05D0 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0029 0028 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 05D0 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0029 0028 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 05D0 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 2680 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 2680 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0061 05D0 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 2680 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 05D0 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 05D0 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 0028 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 05D0 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 0028 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0028 0061 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 05D0 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0029 0028 0061 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and )() +0061 0029 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0029 05D0 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0029 05D0 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0029 05D0 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0029 05D0 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0029 05D0 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0029 05D0 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0029 0028 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0029 0028 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0029 0028 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0029 0061 05D0 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 0061 05D0 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 0061 05D0 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 0061 05D0 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 0061 05D0 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 0061 05D0 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0029 0061 0028 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0061 0028 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0061 0028 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0029 0028 0061 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0028 0061 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0028 0061 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and )() +0061 0029 05D0 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0062 2680 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0062 0028 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0062 0028 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 05D0 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 05D0 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0062 2680 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0062 0028 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0062 0028 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 05D0 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 05D0 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 05D0 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 05D0 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and )() +0061 0029 05D0 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0062 0028 0063 0029;1;1;2 1 1 2 2 2 2;3 4 5 6 2 1 0 +0061 0029 05D0 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0062 0028 0029 0063;1;1;2 1 1 2 2 2 2;3 4 5 6 2 1 0 +0061 0029 05D0 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0061 0029 0028 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0029 0028 05D0 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 0061 05D0 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0062 0028 0063 0029;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0029 0061 05D0 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0062 0028 0029 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0029 0061 05D0 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0029 0061 0028 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0061 0028 05D0 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0029 0028 0061 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0029 0028 0061 05D0 0062 0029 0063;1;1;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# L, R, L, R and )() +0061 0029 05D0 0062 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0062 05D1 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0062 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 05D0 0062 0028 05D1 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 05D0 0062 0028 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0029 05D0 0028 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0029 0028 05D0 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0029 0028 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0029 0028 05D0 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0062 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0062 05D1 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0062 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0029 0061 05D0 0062 0028 05D1 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 05D0 0062 0028 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0029 0061 05D0 0028 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0029 0061 0028 05D0 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0061 0028 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0061 0028 05D0 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0029 0028 0061 05D0 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 0061 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0029 0028 0061 05D0 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and )() +0061 0029 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0029 05D0 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0029 05D0 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 0061 05D0 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0029 0061 05D0 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and )() +0061 0029 05D0 0028 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0029 05D0 0028 05D1 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0029 05D0 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0029 05D0 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0061 05D0 0028 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0029 0061 05D0 0028 05D1 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0029 0061 05D0 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and )() +0061 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 0029 05D0 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0061 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0029 0061 05D0 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and )() +05D0 2680 0029 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and )() +05D0 2680 0029 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0029 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0029 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0029 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 2680 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 2680 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 0028 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 2680 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 2680 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0028 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0028 05D0 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and )() +05D0 2680 0029 2681 05D1 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 2681 05D1 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 2681 0029 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 0029 2681 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 0029 2681 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0029 0028 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and )() +05D0 2680 0029 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and )() +05D0 2680 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 2680 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 2680 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0029 2680 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0029 2680 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0029 2680 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0029 0028 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 05D0 2680 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0029 05D0 2680 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0029 05D0 2680 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 05D0 0028 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 0028 05D0 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, ON, L, R and )() +05D0 2680 0029 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0029 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0029 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0029 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0029 2680 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 2680 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 2680 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0029 0028 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 0028 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0061 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0061 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0029 05D0 2680 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 2680 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 2680 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0029 05D0 0028 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 0028 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0029 0028 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0029 0028 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and )() +05D0 2680 0029 05D1 2681 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 05D1 0028 2681 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 05D1 0028 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 2681 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0029 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 2681 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0029 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0029 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0029 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0029 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 05D1 2681 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0029 05D0 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 05D1 0028 2681 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0029 05D0 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 05D1 0028 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0029 05D0 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 05D1 2681 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 05D1 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0029 05D0 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 05D1 2681 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 05D1 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0029 05D0 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0029 0028 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0029 0028 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and )() +05D0 2680 0029 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0029 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0029 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0029 2680 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0029 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0029 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0029 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0029 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 2680 05D1 0061 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0029 05D0 2680 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 05D1 0028 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0029 05D0 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 05D0 2680 05D1 0028 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0029 05D0 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 2680 0028 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 05D1 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0029 05D0 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0028 2680 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 05D1 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0029 05D0 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 0028 05D0 2680 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0029 0028 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0029 0028 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and )() +05D0 2680 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 05D1 0028 05D2 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 05D1 0028 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 2680 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 2680 05D1 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 2680 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0029 0028 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and )() +05D0 0029 0061 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and )() +05D0 0029 0061 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0029 0061 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0029 0061 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0029 0061 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0029 0061 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0029 0061 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0029 0028 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0029 0028 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0029 0028 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0061 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0029 05D0 0061 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 05D0 0061 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 05D0 0061 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 05D0 0061 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 05D0 0061 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 05D0 0028 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0029 05D0 0028 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0028 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 0028 05D0 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0029 0028 05D0 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 0028 05D0 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, ON, R and )() +05D0 0029 0061 2680 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 2680 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0029 0061 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 0061 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 0061 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 0061 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 0061 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 0028 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 0028 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 2680 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 2680 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0029 05D0 0061 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 0061 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 0061 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 0061 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 0061 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 0028 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 0028 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 0061 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0029 0028 05D0 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0029 0028 05D0 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and )() +05D0 0029 0061 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 0029 0061 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0029 05D0 0061 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 05D0 0061 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# R, L, L, L and )() +05D0 0029 0061 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +0029 05D0 0061 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# R, L, L, R and )() +05D0 0029 0061 0028 0062 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0029 0061 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0029 05D0 0061 0028 0062 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0029 05D0 0061 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# R, L, R, ON and )() +05D0 0029 0061 05D1 2680 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 05D1 0028 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 05D1 0028 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 0061 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 0061 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 05D1 2680 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 05D1 0028 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 05D1 0028 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 0061 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 0061 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 0061 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 0061 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and )() +05D0 0029 0061 05D1 0062 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 05D1 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 05D1 0028 0062 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 05D1 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 0061 05D1 0028 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 0061 0028 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0061 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 0028 0061 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0029 0028 0061 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0061 05D1 0062 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 05D1 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 05D1 0028 0062 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 05D1 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0029 05D0 0061 05D1 0028 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0061 0028 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0061 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0028 0061 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0029 05D0 0028 0061 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0029 0028 05D0 0061 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0029 0028 05D0 0061 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0029 0028 05D0 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and )() +05D0 0029 0061 05D1 0028 05D2 0029;0;0;1 0 0 1 1 1 1;0 1 2 6 5 4 3 +05D0 0029 0061 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 05D1 0028 0029 05D2;0;0;1 0 0 1 1 1 1;0 1 2 6 5 4 3 +05D0 0029 0061 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0061 0028 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 0029 0061 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 0061 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 0029 0028 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 05D1 0028 05D2 0029;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0029 05D0 0061 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 05D1 0028 0029 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0029 05D0 0061 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0061 0028 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0029 05D0 0061 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 0061 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0029 05D0 0028 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0029 0028 05D0 0061 05D1 0029 05D2;0;0;0 0 1 0 1 0 1;0 1 2 3 4 5 6 +0029 0028 05D0 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and )() +05D0 0029 05D1 2680 0028 2681 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 2680 0028 0029 2681;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 2680 0029 2681;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0029 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 2680 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0029 05D0 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and )() +05D0 0029 05D1 2680 0061 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 2680 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 2680 0028 0061 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 05D1 2680 0028 0029 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 2680 0061 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 2680 0029 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 0029 2680 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0029 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 0029 2680 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0029 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 2680 0061 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 2680 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0029 05D0 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 0029 2680 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0029 05D0 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and )() +05D0 0029 05D1 2680 05D2 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0029 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 2680 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 0029 2680 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0029 05D0 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and )() +05D0 0029 05D1 0061 2680 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0061 2680 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0061 0028 2680 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0061 0028 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0061 0028 0029 2680;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0061 0028 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 0061 2680 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 0061 0029 2680;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 0061 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 0061 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 0061 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 0061 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and )() +05D0 0029 05D1 0061 0028 0062 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0029 05D1 0061 0028 0029 0062;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0029 05D1 0028 0061 0029 0062;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 0061 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0029 0028 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 0061 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0029 05D0 0028 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, R, L, R and )() +05D0 0029 05D1 0061 05D2 0028 0029;0;0;1 1 1 0 1 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0061 05D2 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0061 0028 05D2 0029;0;0;1 1 1 0 0 1 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0061 0028 05D2 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0061 0028 0029 05D2;0;0;1 1 1 0 0 0 1;2 1 0 3 4 5 6 +05D0 0029 05D1 0061 0028 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 0061 05D2 0029;0;0;1 1 1 0 0 1 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 0061 0029 05D2;0;0;1 1 1 0 0 0 1;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 0061 05D2 0029;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 0029 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0029 0028 05D1 0061 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0029 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 0061 05D2 0029;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0029 05D0 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0029 05D0 0028 05D1 0061 0029 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0029 05D0 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and )() +05D0 0029 05D1 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0029 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and )() +05D0 0029 05D1 0028 05D2 0061 0029;0;0;1 1 1 0 1 0 0;2 1 0 3 4 5 6 +05D0 0029 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0029 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and )() +05D0 0029 05D1 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0029 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ()) +0028 0029 0029;0;0;0 0 0;0 1 2 +0028 0029 0029;1;1;1 1 1;2 1 0 + +# ON and ()) +2680 0028 0029 0029;0;0;0 0 0 0;0 1 2 3 +2680 0028 0029 0029;1;1;1 1 1 1;3 2 1 0 +0028 2680 0029 0029;0;0;0 0 0 0;0 1 2 3 +0028 2680 0029 0029;1;1;1 1 1 1;3 2 1 0 +0028 0029 2680 0029;0;0;0 0 0 0;0 1 2 3 +0028 0029 2680 0029;1;1;1 1 1 1;3 2 1 0 +0028 0029 0029 2680;0;0;0 0 0 0;0 1 2 3 +0028 0029 0029 2680;1;1;1 1 1 1;3 2 1 0 + +# L and ()) +0061 0028 0029 0029;0;0;0 0 0 0;0 1 2 3 +0061 0028 0029 0029;1;1;2 1 1 1;3 2 1 0 +0028 0061 0029 0029;0;0;0 0 0 0;0 1 2 3 +0028 0061 0029 0029;1;1;1 2 1 1;3 2 1 0 +0028 0029 0061 0029;0;0;0 0 0 0;0 1 2 3 +0028 0029 0061 0029;1;1;1 1 2 1;3 2 1 0 +0028 0029 0029 0061;0;0;0 0 0 0;0 1 2 3 +0028 0029 0029 0061;1;1;1 1 1 2;3 2 1 0 + +# R and ()) +05D0 0028 0029 0029;0;0;1 0 0 0;0 1 2 3 +05D0 0028 0029 0029;1;1;1 1 1 1;3 2 1 0 +0028 05D0 0029 0029;0;0;0 1 0 0;0 1 2 3 +0028 05D0 0029 0029;1;1;1 1 1 1;3 2 1 0 +0028 0029 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0028 0029 05D0 0029;1;1;1 1 1 1;3 2 1 0 +0028 0029 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0028 0029 0029 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and ()) +2680 0028 2681 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and ()) +2680 0028 0061 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 0029 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 0029 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 0029 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 0061 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 0029 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0029 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 2680 0029 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 2680 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 2680 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 0029 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and ()) +2680 0028 05D0 0029 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 0029 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 0029 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 0029 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 2680 0029 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 0029 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 2680 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 2680 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 0029 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and ()) +0061 2680 0028 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 0029 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 0029 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 2680 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0029 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 0029 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 2680 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0029 2680;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0061 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and ()) +0061 0028 0062 0029 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 0029 0029;1;1;2 2 2 2 1;4 0 1 2 3 +0061 0028 0029 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0062 0029;1;1;2 2 2 2 1;4 0 1 2 3 +0061 0028 0029 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0028 0061 0029 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0062 0029;1;1;1 2 1 2 1;4 3 2 1 0 +0028 0061 0029 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0029 0062;1;1;1 2 1 1 2;4 3 2 1 0 +0028 0029 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 0029 0062;1;1;1 1 2 2 2;2 3 4 1 0 + +# L, R and ()) +0061 0028 05D0 0029 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 0029 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 0029 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 0029 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 0029 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 0029 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0061 0029 05D0 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 0029 0029 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and ()) +05D0 2680 0028 0029 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 0029 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 2680 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 0029 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 0029 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 2680 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 0029 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and ()) +05D0 0028 0061 0029 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 0029 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 0029 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 0029 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 0061 0029 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 0029 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0029 0061 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 05D0 0029 0029 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and ()) +05D0 0028 05D1 0029 0029;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 05D1 0029 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 05D1 0029;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 0029 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 05D1 0029;0;0;0 1 0 1 0;0 1 2 3 4 +0028 05D0 0029 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 0029 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 0029 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 0029 05D1;0;0;0 0 1 1 1;0 1 4 3 2 +0028 0029 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and ()) +2680 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and ()) +2680 0028 2681 0061 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 2681 0029 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and ()) +2680 0028 2681 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 2681 0029 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 0029 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and ()) +2680 0028 0061 2681 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and ()) +2680 0028 0061 0029 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +2680 0028 0061 0029 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +2680 0028 0029 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 0029 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 2680 0061 0029 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 2680 0061 0029 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 0029 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 0029 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 0029 2680 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 0029 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# ON, L, R and ()) +2680 0028 0061 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0061 0029 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 0029 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0061 0029 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 0029 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 2680 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and ()) +2680 0028 05D0 2681 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and ()) +2680 0028 05D0 0061 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 2680 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and ()) +2680 0028 05D0 0029 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +2680 0028 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 0029 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +2680 0028 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 2680 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 0029 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 2680 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 0029 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0029 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and ()) +0061 2680 0028 2681 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 2681 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and ()) +0061 2680 0028 0062 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 0029 0029;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 2680 0028 0029 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0062 0029;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 2680 0028 0029 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 0029 0029;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0029 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0062 0029;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0029 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0062 0029;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0029 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0029 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0062 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 0029 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 0029 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 2680 0029 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0029 2680 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 0029 0061 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 0029 0061 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 0029 2680 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 + +# L, ON, R and ()) +0061 2680 0028 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 0029 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 0029 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 2680 0029 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 0029 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 2680 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 2680 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 0029 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 0029 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 2680 0029 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 0029 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 2680 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 2680 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 0029 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 0061 2680 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 2680 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 0029 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and ()) +0061 0028 0062 2680 0029 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 0029 0029;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 2680 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0062 0029 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0029 2680;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 2680 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 0029 2680;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0028 0061 0029 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 2680 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 0029 2680;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, L, L and ()) +0061 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0063 0029;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 0029 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 0029 0063;1;1;1 2 1 2 2 2;3 4 5 2 1 0 + +# L, L, R and ()) +0061 0028 0062 05D0 0029 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 0029 0029;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0062 0029 05D0 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 0029 0029 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 0062 05D0 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 0062 0029 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0028 0061 0029 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 0062 05D0 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 0062 0029 05D0;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, R, ON and ()) +0061 0028 05D0 2680 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 0029 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 0029 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and ()) +0061 0028 05D0 0062 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 0029 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 0029 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 0029 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 0029 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and ()) +0061 0028 05D0 0029 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0061 0028 05D0 0029 05D1 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 0029 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 0029 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0061 0028 0029 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0061 05D0 0029 05D1 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 0029 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 0029 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0061 0029 05D0 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 0029 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0029 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and ()) +05D0 2680 0028 2681 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and ()) +05D0 2680 0028 0061 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 0029 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 2680 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 0029 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 05D0 2680 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 0029 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and ()) +05D0 2680 0028 05D1 0029 0029;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 05D1 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0029;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 0029 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0029;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 05D1 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0029;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 0029 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0029;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 0029 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0029 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 2680 0029 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 2680 0029 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0029 2680 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 0029 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 0029 2680 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and ()) +05D0 0028 0061 2680 0029 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and ()) +05D0 0028 0061 0029 0062 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +05D0 0028 0061 0029 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 0029 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 05D0 0061 0029 0062 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 05D0 0061 0029 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 0061 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 0029 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 0029 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 0029 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# R, L, R and ()) +05D0 0028 0061 05D1 0029 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0061 0029 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 0029 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0029 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0029 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 0029 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0061 0029 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 0029 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0029 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0029 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and ()) +05D0 0028 05D1 2680 0029 0029;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 2680 0029 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0029 2680;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0029 2680;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 0029 2680;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and ()) +05D0 0028 05D1 0061 0029 0029;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 0029 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0029 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0029 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 0029 0061;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and ()) +05D0 0028 05D1 0029 05D2 0029;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 0029 05D2;0;0;0 1 0 1 1 1;0 1 2 5 4 3 +0028 05D0 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and ()) +2680 0028 2681 0029 2682 0029 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0029 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and ()) +2680 0028 2681 0029 2682 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and ()) +2680 0028 2681 0029 2682 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and ()) +2680 0028 2681 0061 2682 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 2682 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 2682 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and ()) +2680 0028 2681 0061 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +2680 0028 0029 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0029 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, ON, L, R and ()) +2680 0028 2681 0061 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 05D0 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and ()) +2680 0028 2681 05D0 2682 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 2682 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 2682 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and ()) +2680 0028 2681 05D0 0061 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and ()) +2680 0028 2681 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 2681 0029 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0029 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0029 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and ()) +2680 0028 0061 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and ()) +2680 0028 0061 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0062 0029 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 0029 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 0029 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 0029 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0061 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0062 0029 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 0029 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0029 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 0029 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 0029 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# ON, L, ON, R and ()) +2680 0028 0061 2681 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 05D0 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 05D0 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and ()) +2680 0028 0061 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 2681 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 0029 2681;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 2681 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 0029 2681;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L, L and ()) +2680 0028 0061 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 0029 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0061 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 0029 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# ON, L, L, R and ()) +2680 0028 0061 0029 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 0029 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 0029 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, R, ON and ()) +2680 0028 0061 05D0 2681 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 2681 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 2681 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and ()) +2680 0028 0061 05D0 0062 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0062 0029 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0062 0029 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and ()) +2680 0028 0061 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0061 0029 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0029 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0061 0029 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0029 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 2680 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and ()) +2680 0028 05D0 2681 0029 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and ()) +2680 0028 05D0 2681 0061 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and ()) +2680 0028 05D0 2681 05D1 0029 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 0029 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0029 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0029 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 0029 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0029 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0029 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and ()) +2680 0028 05D0 0061 2681 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 2681 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 2681 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and ()) +2680 0028 05D0 0061 0029 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +2680 0028 0029 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 05D0 0061 0029 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0029 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 2680 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, R, L, R and ()) +2680 0028 05D0 0061 05D1 0029 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 05D1 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0029 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 05D1 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and ()) +2680 0028 05D0 0029 05D1 2681 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0029 2681;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 2681 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0029 2681;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and ()) +2680 0028 05D0 0029 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 0029 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0029 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and ()) +2680 0028 05D0 0029 05D1 0029 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 05D0 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0029 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 05D0 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and ()) +0061 2680 0028 2681 0029 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 2682 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0029 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and ()) +0061 2680 0028 2681 0062 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0062 0029 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0062 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0062 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0062 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0029 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0029 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0029 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, ON, ON, R and ()) +0061 2680 0028 2681 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 05D0 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and ()) +0061 2680 0028 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 2681 0029 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 2681 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0029 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 2681 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0029 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0029 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 2681 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0029 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 2681 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0029 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 2681 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0029 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 2680 0062 2681 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0029 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 2681 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 2681 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 0029 2681;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 2681 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 0029 2681;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and ()) +0061 2680 0028 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0063 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0063 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0063 0029;1;1;1 2 2 2 1 2 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0029 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 0029 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 0029 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 0029 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, ON, L, R and ()) +0061 2680 0028 0062 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 05D0 0029 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0062 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 05D0 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0029 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 05D0 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 0029 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0029 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0062 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 05D0 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0029 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 05D0 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 0029 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 05D0 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 0029 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 2680 0062 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0029 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 0029 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 0029 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and ()) +0061 2680 0028 05D0 2681 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 2681 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 2681 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 2681 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and ()) +0061 2680 0028 05D0 0062 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0062 0029 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0062 0029 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0062 0029 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and ()) +0061 2680 0028 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 2680 0028 0029 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 2680 0029 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0029 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 2680 0029 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 0029 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 0061 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and ()) +0061 0028 0062 2680 0029 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 2681 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0029 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0029 2681;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, L and ()) +0061 0028 0062 2680 0063 0029 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0063 0029 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0063 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0063 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 0029 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0063 0029;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0029 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0063 0029;1;1;1 2 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0061 0029 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0029 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 0029 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 0029 2680 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 + +# L, L, ON, R and ()) +0061 0028 0062 2680 05D0 0029 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 05D0 0029 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 2680 0029 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 05D0 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0029 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 0029 2680 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 0029 2680 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 05D0 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0029 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 0029 2680 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, L, ON and ()) +0061 0028 0062 0029 0063 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 2680 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 0029 2680;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 + +# L, L, L, L and ()) +0061 0028 0062 0029 0063 0029 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 0029 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and ()) +0061 0028 0062 0029 0063 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 05D0 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 0029 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 + +# L, L, R, ON and ()) +0061 0028 0062 05D0 2680 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 2680 0029 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 2680 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0029 2680;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 2680 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0029 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 2680 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0029 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, R, L and ()) +0061 0028 0062 05D0 0063 0029 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0063 0029 0029;1;1;2 1 2 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0063 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0063 0029;1;1;2 1 2 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0029 0063;1;1;2 1 2 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0063 0029;1;1;2 2 2 2 1 2 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0029 0063;1;1;2 2 2 2 1 1 2;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0063 0029;1;1;2 2 2 2 1 2 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0029 0063;1;1;2 2 2 2 1 1 2;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0063 0029;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0029 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, L, R, R and ()) +0061 0028 0062 05D0 0029 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 05D1 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0029 05D1;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0062 0029 05D0 0029 05D1;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0029 0062 05D0 0029 05D1;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 0029 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 0029 0062 05D0 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, ON and ()) +0061 0028 05D0 2680 0029 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and ()) +0061 0028 05D0 2680 0062 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0062 0029 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0062 0029 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and ()) +0061 0028 05D0 2680 05D1 0029 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 2680 05D1 0029 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 0029 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0029 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0029 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 2680 05D1 0029 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 0029 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0029 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 0061 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0029 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and ()) +0061 0028 05D0 0062 2680 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 2680 0029 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0029 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 2680 0029 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and ()) +0061 0028 05D0 0062 0029 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0063 0029;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 0029 0063;1;1;2 1 1 1 2 2 2;4 5 6 3 2 1 0 +0061 0028 0029 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 0029 0063;1;1;2 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 05D0 0062 0029 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0063 0029;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0029 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 0029 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 0029 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 0029 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 0061 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 0029 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# L, R, L, R and ()) +0061 0028 05D0 0062 05D1 0029 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 05D1 0029 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 05D1 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0029 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 05D1 0029 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 05D1 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and ()) +0061 0028 05D0 0029 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and ()) +0061 0028 05D0 0029 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and ()) +0061 0028 05D0 0029 05D1 0029 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 05D0 0029 05D1 0029 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0029 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 05D0 0029 05D1 0029 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and ()) +05D0 2680 0028 2681 0029 2682 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0029 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and ()) +05D0 2680 0028 2681 0061 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and ()) +05D0 2680 0028 2681 05D1 0029 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 2681 05D1 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 05D1 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 2681 0029 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 05D1 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 05D1 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0029 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0029 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and ()) +05D0 2680 0028 0061 2681 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 2681 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 2681 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 2681 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and ()) +05D0 2680 0028 0061 0029 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 2680 0061 0029 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 0029 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 2680 0061 0029 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0029 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 05D0 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, ON, L, R and ()) +05D0 2680 0028 0061 05D1 0029 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 05D1 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0029 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 05D1 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0029 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 05D1 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and ()) +05D0 2680 0028 05D1 2681 0029 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 2681 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0029 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 2681 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0029 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0029 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 2681 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0029 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 2681 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0029 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 2681 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0029 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0029 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 2681 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 2681 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 2681 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0029 2681;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 2681 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0029 2681;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and ()) +05D0 2680 0028 05D1 0061 0029 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 05D1 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0061 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0029 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0061 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0029 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0029 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 05D1 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0061 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0029 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0061 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0029 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0061 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0029 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0029 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0029 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0029 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and ()) +05D0 2680 0028 05D1 0029 05D2 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 05D2 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 05D2 0029;0;0;0 1 1 1 0 1 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0029 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0029 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 2680 0029 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0029 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0029 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and ()) +05D0 0028 0061 2680 0029 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and ()) +05D0 0028 0061 2680 0062 0029 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0062 0029 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 2680 0029 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 0029 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 0029 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0029 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0061 2680 0062 0029 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0062 0029 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 2680 0029 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 0029 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0029 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0029 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 05D0 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0029 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# R, L, ON, R and ()) +05D0 0028 0061 2680 05D1 0029 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 05D1 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0029 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 05D1 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and ()) +05D0 0028 0061 0029 0062 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L, L and ()) +05D0 0028 0061 0029 0062 0029 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 0029 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0061 0029 0062 0029 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 0029 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# R, L, L, R and ()) +05D0 0028 0061 0029 0062 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, R, ON and ()) +05D0 0028 0061 05D1 2680 0029 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 2680 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0029 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 2680 0029 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and ()) +05D0 0028 0061 05D1 0062 0029 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0062 0029 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0062 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0029 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0062 0029 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0062 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and ()) +05D0 0028 0061 05D1 0029 05D2 0029;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0029 05D2;0;0;1 0 0 0 1 1 1;0 1 2 3 6 5 4 +05D0 0028 0061 0029 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0029 05D2;0;0;1 0 0 0 1 1 1;0 1 2 3 6 5 4 +05D0 0028 0029 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 05D2 0029;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0029 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0029 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0061 0029 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0029 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0029 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0029 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 05D0 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and ()) +05D0 0028 05D1 2680 0029 2681 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0029 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0029 2681;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and ()) +05D0 0028 05D1 2680 0061 0029 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 2680 0061 0029 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0061 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0029 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0029 2680 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0029 2680 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0061 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0029 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0029 2680 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and ()) +05D0 0028 05D1 2680 05D2 0029 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 05D2 0029 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 05D2 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 0029 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 05D2 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 0029 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0029 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 05D2 0029;0;0;0 1 0 1 1 1 0;0 1 2 5 4 3 6 +0028 05D0 0029 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0029 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0029 2680 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and ()) +05D0 0028 05D1 0061 2680 0029 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 2680 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 2680 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0029 2680;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 2680 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0029 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 2680 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0029 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and ()) +05D0 0028 05D1 0061 0029 0062 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0029 0062;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0029 0062;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 0029 05D1 0061 0029 0062;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0029 05D1 0061 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 0029 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, R, L, R and ()) +05D0 0028 05D1 0061 05D2 0029 0029;0;0;1 0 1 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 05D2 0029 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 05D2 0029;0;0;1 0 1 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 05D2 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 0029 05D2;0;0;1 0 1 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 05D2 0029;0;0;1 1 1 1 0 1 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 0029 05D2;0;0;1 1 1 1 0 0 1;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 05D2 0029;0;0;1 1 1 1 0 1 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 0029 05D2;0;0;1 1 1 1 0 0 1;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 05D2 0029;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 0029 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and ()) +05D0 0028 05D1 0029 05D2 2680 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0029 2680;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and ()) +05D0 0028 05D1 0029 05D2 0061 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0029 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and ()) +05D0 0028 05D1 0029 05D2 0029 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 0029 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ]() +005D 0028 0029;0;0;0 0 0;0 1 2 +005D 0028 0029;1;1;1 1 1;2 1 0 + +# ON and ]() +2680 005D 0028 0029;0;0;0 0 0 0;0 1 2 3 +2680 005D 0028 0029;1;1;1 1 1 1;3 2 1 0 +005D 2680 0028 0029;0;0;0 0 0 0;0 1 2 3 +005D 2680 0028 0029;1;1;1 1 1 1;3 2 1 0 +005D 0028 2680 0029;0;0;0 0 0 0;0 1 2 3 +005D 0028 2680 0029;1;1;1 1 1 1;3 2 1 0 +005D 0028 0029 2680;0;0;0 0 0 0;0 1 2 3 +005D 0028 0029 2680;1;1;1 1 1 1;3 2 1 0 + +# L and ]() +0061 005D 0028 0029;0;0;0 0 0 0;0 1 2 3 +0061 005D 0028 0029;1;1;2 1 1 1;3 2 1 0 +005D 0061 0028 0029;0;0;0 0 0 0;0 1 2 3 +005D 0061 0028 0029;1;1;1 2 1 1;3 2 1 0 +005D 0028 0061 0029;0;0;0 0 0 0;0 1 2 3 +005D 0028 0061 0029;1;1;1 1 2 1;3 2 1 0 +005D 0028 0029 0061;0;0;0 0 0 0;0 1 2 3 +005D 0028 0029 0061;1;1;1 1 1 2;3 2 1 0 + +# R and ]() +05D0 005D 0028 0029;0;0;1 0 0 0;0 1 2 3 +05D0 005D 0028 0029;1;1;1 1 1 1;3 2 1 0 +005D 05D0 0028 0029;0;0;0 1 0 0;0 1 2 3 +005D 05D0 0028 0029;1;1;1 1 1 1;3 2 1 0 +005D 0028 05D0 0029;0;0;0 0 1 0;0 1 2 3 +005D 0028 05D0 0029;1;1;1 1 1 1;3 2 1 0 +005D 0028 0029 05D0;0;0;0 0 0 1;0 1 2 3 +005D 0028 0029 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and ]() +2680 005D 2681 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005D 2681 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 005D 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005D 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 005D 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005D 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +005D 2680 0028 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005D 2680 0028 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005D 2680 0028 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +005D 2680 0028 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +005D 0028 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0028 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and ]() +2680 005D 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005D 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 005D 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005D 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 005D 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 005D 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005D 2680 0061 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005D 2680 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +005D 2680 0028 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005D 2680 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +005D 2680 0028 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +005D 2680 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005D 0028 2680 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0028 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +005D 0028 2680 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0028 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005D 0028 0029 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0028 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and ]() +2680 005D 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 005D 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 005D 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 005D 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 005D 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 005D 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +005D 2680 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +005D 2680 05D0 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005D 2680 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +005D 2680 0028 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005D 2680 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005D 2680 0028 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +005D 0028 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +005D 0028 2680 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005D 0028 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005D 0028 2680 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +005D 0028 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005D 0028 0029 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and ]() +0061 2680 005D 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 005D 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005D 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005D 2680 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005D 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005D 0028 2680 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005D 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005D 0028 0029 2680;1;1;2 1 1 1 1;4 3 2 1 0 +005D 0061 2680 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0061 2680 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +005D 0061 0028 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0061 0028 2680 0029;1;1;1 2 1 1 1;4 3 2 1 0 +005D 0061 0028 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0061 0028 0029 2680;1;1;1 2 1 1 1;4 3 2 1 0 +005D 0028 0061 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0028 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +005D 0028 0061 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0028 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and ]() +0061 005D 0062 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005D 0062 0028 0029;1;1;2 2 2 1 1;4 3 0 1 2 +0061 005D 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005D 0028 0062 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 005D 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 005D 0028 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +005D 0061 0028 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0061 0028 0062 0029;1;1;1 2 2 2 2;1 2 3 4 0 +005D 0061 0028 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0061 0028 0029 0062;1;1;1 2 2 2 2;1 2 3 4 0 +005D 0028 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +005D 0028 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 + +# L, R and ]() +0061 005D 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 005D 05D0 0028 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005D 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 005D 0028 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 005D 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 005D 0028 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +005D 0061 05D0 0028 0029;0;0;0 0 1 0 0;0 1 2 3 4 +005D 0061 05D0 0028 0029;1;1;1 2 1 1 1;4 3 2 1 0 +005D 0061 0028 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +005D 0061 0028 05D0 0029;1;1;1 2 1 1 1;4 3 2 1 0 +005D 0061 0028 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005D 0061 0028 0029 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +005D 0028 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +005D 0028 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +005D 0028 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +005D 0028 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and ]() +05D0 2680 005D 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 005D 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005D 2680 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005D 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005D 0028 2680 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005D 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005D 0028 0029 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005D 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +005D 05D0 2680 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +005D 05D0 2680 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005D 05D0 0028 2680 0029;0;0;0 1 0 0 0;0 1 2 3 4 +005D 05D0 0028 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005D 05D0 0028 0029 2680;0;0;0 1 0 0 0;0 1 2 3 4 +005D 05D0 0028 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +005D 0028 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +005D 0028 05D0 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005D 0028 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +005D 0028 05D0 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and ]() +05D0 005D 0061 0028 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005D 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 005D 0028 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005D 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 005D 0028 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 005D 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005D 05D0 0061 0028 0029;0;0;0 1 0 0 0;0 1 2 3 4 +005D 05D0 0061 0028 0029;1;1;1 1 2 1 1;4 3 2 1 0 +005D 05D0 0028 0061 0029;0;0;0 1 0 0 0;0 1 2 3 4 +005D 05D0 0028 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +005D 05D0 0028 0029 0061;0;0;0 1 0 0 0;0 1 2 3 4 +005D 05D0 0028 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +005D 0028 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +005D 0028 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +005D 0028 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +005D 0028 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and ]() +05D0 005D 05D1 0028 0029;0;0;1 1 1 0 0;2 1 0 3 4 +05D0 005D 05D1 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005D 0028 05D1 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 005D 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 005D 0028 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 005D 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +005D 05D0 0028 05D1 0029;0;0;0 1 1 1 1;0 4 3 2 1 +005D 05D0 0028 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +005D 05D0 0028 0029 05D1;0;0;0 1 1 1 1;0 4 3 2 1 +005D 05D0 0028 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +005D 0028 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +005D 0028 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and ]() +2680 005D 2681 0028 2682 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 2681 0028 2682 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 2681 0028 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 2681 0028 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and ]() +2680 005D 2681 0061 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 2681 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 005D 2681 0028 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 2681 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 005D 2681 0028 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 2681 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 005D 0028 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 005D 0028 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 005D 0028 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 2680 0028 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0028 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005D 2680 0028 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 2680 0028 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 0028 2680 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and ]() +2680 005D 2681 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005D 2681 05D0 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 2681 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 005D 2681 0028 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 2681 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005D 2681 0028 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 005D 0028 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005D 0028 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005D 0028 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 0028 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005D 2680 0028 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 2680 0028 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 2680 0028 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 0028 2680 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and ]() +2680 005D 0061 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0061 2681 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005D 0061 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0061 0028 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005D 0061 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0061 0028 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005D 0028 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 005D 0028 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 2680 0061 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0061 2681 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 2680 0061 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0061 0028 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 2680 0061 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0061 0028 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 2680 0028 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0028 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 2680 0028 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0028 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 0028 2680 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0028 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 0028 2680 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0028 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and ]() +2680 005D 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +2680 005D 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +2680 005D 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 005D 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +005D 2680 0061 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +005D 2680 0061 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +005D 2680 0028 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 2680 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +005D 0028 2680 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0028 2680 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# ON, L, R and ]() +2680 005D 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005D 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005D 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 005D 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005D 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005D 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 005D 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 005D 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 005D 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 005D 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 2680 0061 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 2680 0061 05D0 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 2680 0061 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005D 2680 0061 0028 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 2680 0061 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 2680 0061 0028 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 2680 0028 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005D 2680 0028 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 2680 0028 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 2680 0028 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 0028 2680 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005D 0028 2680 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 0028 2680 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 0028 2680 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and ]() +2680 005D 05D0 2681 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005D 05D0 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 05D0 0028 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005D 05D0 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 05D0 0028 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005D 05D0 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005D 0028 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005D 0028 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 05D0 2681 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 2680 05D0 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 05D0 0028 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 2680 05D0 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 05D0 0028 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 2680 05D0 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 0028 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 2680 0028 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 0028 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 2680 0028 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 0028 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0028 2680 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 0028 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0028 2680 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and ]() +2680 005D 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005D 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 005D 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005D 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 005D 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 005D 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 005D 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005D 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 005D 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 005D 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 2680 05D0 0061 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 2680 05D0 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 2680 05D0 0028 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 2680 05D0 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005D 2680 05D0 0028 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 2680 05D0 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 2680 0028 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 2680 0028 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005D 2680 0028 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 2680 0028 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 0028 2680 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0028 2680 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005D 0028 2680 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0028 2680 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and ]() +2680 005D 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +2680 005D 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +2680 005D 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 005D 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +2680 005D 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +005D 2680 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +005D 2680 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 2680 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +005D 2680 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 0028 2680 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +005D 0028 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and ]() +0061 2680 005D 2681 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005D 2681 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 005D 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005D 0028 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 005D 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005D 0028 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 2680 0028 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 2680 0028 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0028 2680 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +005D 0061 2680 0028 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 2680 0028 2681 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 2680 0028 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 2680 0028 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 0028 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 0028 2680 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0028 0061 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0028 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and ]() +0061 2680 005D 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005D 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 2680 005D 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005D 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 005D 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 005D 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005D 2680 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 2680 0062 0028 0029;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 005D 2680 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 2680 0028 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005D 2680 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 2680 0028 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005D 0028 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0028 2680 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005D 0028 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0028 2680 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005D 0028 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0028 0029 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +005D 0061 2680 0062 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 2680 0062 0028 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +005D 0061 2680 0028 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 2680 0028 0062 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005D 0061 2680 0028 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 2680 0028 0029 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005D 0061 0028 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 0028 2680 0062 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005D 0061 0028 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 0028 2680 0029 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005D 0061 0028 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 0028 0029 2680 0062;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005D 0028 0061 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0028 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +005D 0028 0061 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0028 0061 2680 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +005D 0028 0061 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0028 0061 0029 2680 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, ON, R and ]() +0061 2680 005D 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 005D 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 005D 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 005D 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 005D 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 005D 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005D 2680 05D0 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 005D 2680 0028 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005D 2680 0028 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 005D 0028 2680 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005D 0028 2680 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005D 0028 0029 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +005D 0061 2680 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0061 2680 05D0 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 2680 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005D 0061 2680 0028 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 2680 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 0061 2680 0028 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 0028 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005D 0061 0028 2680 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 0028 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 0061 0028 2680 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 0028 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 0061 0028 0029 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0028 0061 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005D 0028 0061 2680 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 0028 0061 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 0028 0061 2680 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 0028 0061 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 0028 0061 0029 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and ]() +0061 005D 0062 2680 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0062 2680 0028 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005D 0062 0028 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0062 0028 2680 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005D 0062 0028 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0062 0028 0029 2680;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005D 0028 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0028 0062 2680 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005D 0028 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0028 0062 0029 2680;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +005D 0061 0028 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 0028 0062 2680 0029;1;1;1 2 2 2 2 2;1 2 3 4 5 0 +005D 0061 0028 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 0028 0062 0029 2680;1;1;1 2 2 2 2 1;5 1 2 3 4 0 + +# L, L, L and ]() +0061 005D 0062 0028 0063 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0062 0028 0063 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005D 0062 0028 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0062 0028 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 005D 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 005D 0028 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +005D 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +005D 0061 0028 0062 0029 0063;1;1;1 2 2 2 2 2;1 2 3 4 5 0 + +# L, L, R and ]() +0061 005D 0062 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005D 0062 05D0 0028 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005D 0062 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 005D 0062 0028 05D0 0029;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005D 0062 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005D 0062 0028 0029 05D0;1;1;2 2 2 1 1 1;5 4 3 0 1 2 +0061 005D 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 005D 0028 0062 05D0 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 005D 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 005D 0028 0062 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +005D 0061 0028 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +005D 0061 0028 0062 05D0 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +005D 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +005D 0061 0028 0062 0029 05D0;1;1;1 2 2 2 2 1;5 1 2 3 4 0 + +# L, R, ON and ]() +0061 005D 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005D 05D0 2680 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005D 05D0 0028 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005D 05D0 0028 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005D 0028 05D0 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005D 0028 05D0 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +005D 0061 05D0 2680 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0061 05D0 2680 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 05D0 0028 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0061 05D0 0028 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 05D0 0028 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0061 05D0 0028 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 0028 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0061 0028 05D0 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 0028 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0061 0028 05D0 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0028 0061 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0028 0061 05D0 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 0028 0061 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0028 0061 05D0 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and ]() +0061 005D 05D0 0062 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005D 05D0 0062 0028 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 005D 05D0 0028 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005D 05D0 0028 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 005D 05D0 0028 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 005D 05D0 0028 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 005D 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005D 0028 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 005D 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 005D 0028 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +005D 0061 05D0 0062 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0061 05D0 0062 0028 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +005D 0061 05D0 0028 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0061 05D0 0028 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +005D 0061 05D0 0028 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0061 05D0 0028 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +005D 0061 0028 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0061 0028 05D0 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +005D 0061 0028 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0061 0028 05D0 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +005D 0028 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0028 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +005D 0028 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +005D 0028 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and ]() +0061 005D 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0061 005D 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0061 005D 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 005D 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 005D 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +005D 0061 05D0 0028 05D1 0029;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +005D 0061 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 05D0 0028 0029 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +005D 0061 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0061 0028 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +005D 0061 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +005D 0028 0061 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +005D 0028 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and ]() +05D0 2680 005D 2681 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005D 2681 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005D 0028 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005D 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005D 0028 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005D 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 2680 0028 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 2680 0028 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 2680 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 2680 0028 2681 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 2680 0028 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 2680 0028 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 2680 0028 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 2680 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0028 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 0028 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0028 05D0 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and ]() +05D0 2680 005D 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005D 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 005D 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005D 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 005D 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 005D 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 005D 2680 0061 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 005D 2680 0028 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 005D 2680 0028 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 005D 0028 2680 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 005D 0028 2680 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 005D 0028 0029 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 05D0 2680 0061 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 2680 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 05D0 2680 0028 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 2680 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005D 05D0 2680 0028 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 2680 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 05D0 0028 2680 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0028 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005D 05D0 0028 2680 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0028 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 05D0 0028 0029 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0028 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 0028 05D0 2680 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0028 05D0 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005D 0028 05D0 2680 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0028 05D0 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 0028 05D0 0029 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0028 05D0 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and ]() +05D0 2680 005D 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 2680 005D 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005D 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 005D 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 0029;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 005D 2680 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 2680 0028 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 2680 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 2680 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 0029 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 2680 05D1 0028 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +005D 05D0 2680 05D1 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 2680 0028 05D1 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005D 05D0 2680 0028 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 2680 0028 0029 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005D 05D0 2680 0028 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 2680 05D1 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005D 05D0 0028 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 2680 0029 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005D 05D0 0028 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 0029 2680 05D1;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005D 05D0 0028 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 0028 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +005D 0028 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 0028 05D0 2680 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +005D 0028 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 0028 05D0 0029 2680 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +005D 0028 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and ]() +05D0 005D 0061 2680 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005D 0061 0028 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005D 0061 0028 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 0061 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 005D 0028 0061 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 05D0 0061 2680 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0061 2680 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 05D0 0061 0028 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0061 0028 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 05D0 0061 0028 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0061 0028 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 0061 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0028 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 05D0 0028 0061 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0028 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 0028 05D0 0061 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0028 05D0 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 0028 05D0 0061 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0028 05D0 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and ]() +05D0 005D 0061 0028 0062 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +05D0 005D 0061 0028 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +05D0 005D 0028 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 005D 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +005D 05D0 0061 0028 0062 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0061 0028 0062 0029;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +005D 05D0 0061 0028 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0061 0028 0029 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +005D 05D0 0028 0061 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +005D 05D0 0028 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +005D 0028 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +005D 0028 05D0 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# R, L, R and ]() +05D0 005D 0061 05D1 0028 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 005D 0061 05D1 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005D 0061 0028 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 005D 0061 0028 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005D 0061 0028 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 005D 0061 0028 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 005D 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 005D 0028 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 005D 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 05D0 0061 05D1 0028 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +005D 05D0 0061 05D1 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 05D0 0061 0028 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +005D 05D0 0061 0028 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 05D0 0061 0028 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +005D 05D0 0061 0028 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 0061 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +005D 05D0 0028 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 05D0 0028 0061 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +005D 05D0 0028 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 0028 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +005D 0028 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +005D 0028 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +005D 0028 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and ]() +05D0 005D 05D1 2680 0028 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005D 05D1 2680 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 05D1 0028 2680 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005D 05D1 0028 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 05D1 0028 0029 2680;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005D 05D1 0028 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 05D1 0029 2680;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 005D 0028 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 05D1 2680 0029;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005D 05D0 0028 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 05D1 0029 2680;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +005D 05D0 0028 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and ]() +05D0 005D 05D1 0061 0028 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005D 05D1 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 005D 05D1 0028 0061 0029;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005D 05D1 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 005D 05D1 0028 0029 0061;0;0;1 1 1 0 0 0;2 1 0 3 4 5 +05D0 005D 05D1 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 005D 0028 05D1 0061 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 005D 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 005D 0028 05D1 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 005D 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +005D 05D0 0028 05D1 0061 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +005D 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +005D 05D0 0028 05D1 0029 0061;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +005D 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and ]() +05D0 005D 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 005D 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +005D 05D0 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1;0 5 4 3 2 1 +005D 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and ]() +2680 005D 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and ]() +2680 005D 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and ]() +2680 005D 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and ]() +2680 005D 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0061 2682 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0061 0028 2682 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0061 0028 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and ]() +2680 005D 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 005D 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 005D 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 005D 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 2680 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, ON, L, R and ]() +2680 005D 2681 0061 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0061 05D0 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 2681 0061 0028 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 2681 0061 0028 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 2681 0028 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 0028 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 0028 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and ]() +2680 005D 2681 05D0 2682 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 05D0 0028 2682 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 05D0 0028 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and ]() +2680 005D 2681 05D0 0061 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 05D0 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 2681 05D0 0028 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 2681 05D0 0028 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 2681 0028 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 0028 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 0028 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and ]() +2680 005D 2681 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 005D 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 005D 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 005D 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 005D 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005D 2680 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and ]() +2680 005D 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and ]() +2680 005D 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 2681 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 005D 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005D 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005D 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005D 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005D 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005D 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 005D 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 005D 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 2680 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 2681 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +005D 2680 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 2680 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 2680 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 2680 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 2680 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 2680 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +005D 2680 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 2680 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 0028 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +005D 0028 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 0028 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, ON, R and ]() +2680 005D 0061 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0061 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 0061 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 0061 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 0061 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 0061 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 0028 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 0028 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0061 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 2680 0061 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 0061 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 0061 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 0061 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 0028 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 0028 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0028 2680 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0028 2680 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and ]() +2680 005D 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +2680 005D 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 0062 0029 2681;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +005D 2680 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 2680 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 0062 0029 2681;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# ON, L, L, L and ]() +2680 005D 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 2680 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# ON, L, L, R and ]() +2680 005D 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +005D 2680 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 0062 05D0 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 0061 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# ON, L, R, ON and ]() +2680 005D 0061 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and ]() +2680 005D 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 005D 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 2680 0061 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 05D0 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0061 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 05D0 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005D 2680 0061 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0061 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 0061 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0061 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 0028 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +005D 2680 0028 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 0028 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 0028 2680 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +005D 0028 2680 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 2680 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and ]() +2680 005D 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 005D 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 005D 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 005D 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 005D 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +005D 2680 0061 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +005D 2680 0061 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005D 2680 0061 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005D 2680 0028 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005D 0028 2680 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and ]() +2680 005D 05D0 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and ]() +2680 005D 05D0 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 05D0 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 05D0 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 05D0 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 0028 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 005D 0028 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 05D0 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 2680 05D0 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 05D0 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 05D0 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 0028 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 0028 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0028 2680 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0028 2680 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and ]() +2680 005D 05D0 2681 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 005D 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005D 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005D 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005D 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005D 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005D 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 005D 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 005D 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 005D 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 2681 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005D 2680 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 2680 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 2680 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 2680 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 2680 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 2680 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +005D 2680 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 2680 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 2680 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +005D 0028 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0028 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0028 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and ]() +2680 005D 05D0 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and ]() +2680 005D 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 005D 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 005D 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 005D 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 005D 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 2680 05D0 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +005D 2680 05D0 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +005D 2680 05D0 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 2680 0028 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 2680 0028 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 0028 2680 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 2680 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, R, L, R and ]() +2680 005D 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 005D 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 005D 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 005D 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 005D 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0061 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0061 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005D 2680 05D0 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 05D0 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005D 2680 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +005D 2680 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 2680 0028 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 2680 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +005D 0028 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 2680 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0028 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and ]() +2680 005D 05D0 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005D 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 005D 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 2680 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +005D 2680 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and ]() +2680 005D 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 005D 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 005D 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 005D 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 2680 05D0 0028 05D1 0061 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005D 2680 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +005D 2680 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and ]() +2680 005D 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +2680 005D 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 2680 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 2680 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and ]() +0061 2680 005D 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and ]() +0061 2680 005D 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 2681 0062 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 005D 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005D 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005D 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005D 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005D 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +005D 0061 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 2681 0062 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 2681 0029 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 0029 2681 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 0029 2681 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0028 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, ON, R and ]() +0061 2680 005D 2681 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005D 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 2681 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 005D 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005D 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005D 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005D 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 2680 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 2680 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 0028 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 2680 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 2680 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 0028 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0028 0061 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and ]() +0061 2680 005D 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0062 2681 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005D 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0062 0028 2681 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005D 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0062 0028 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005D 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005D 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005D 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0062 2681 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005D 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0062 0028 2681 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005D 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0062 0028 0029 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005D 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005D 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +005D 0061 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0062 2681 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005D 0061 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0062 0028 2681 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005D 0061 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0062 0028 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005D 0061 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 0062 2681 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 0062 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005D 0061 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 0062 2681 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 0062 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005D 0028 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +005D 0028 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and ]() +0061 2680 005D 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005D 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 005D 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +005D 0061 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0062 0028 0063 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0062 0028 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 0062 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 0062 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0028 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# L, ON, L, R and ]() +0061 2680 005D 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005D 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 005D 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005D 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005D 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 2680 005D 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 005D 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005D 2680 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0062 05D0 0028 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005D 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 2680 0062 0028 05D0 0029;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005D 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 2680 0062 0028 0029 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 005D 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 2680 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005D 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 0028 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +005D 0061 2680 0062 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0062 05D0 0028 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005D 0061 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 0061 2680 0062 0028 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005D 0061 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 2680 0062 0028 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +005D 0061 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 2680 0028 0062 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005D 0061 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 0062 05D0 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 0028 2680 0062 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005D 0028 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +005D 0028 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0028 0061 2680 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and ]() +0061 2680 005D 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 05D0 2681 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 05D0 0028 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 05D0 0028 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 0061 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 0061 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and ]() +0061 2680 005D 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 005D 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 005D 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 005D 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 005D 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 005D 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005D 2680 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 05D0 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 2680 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 05D0 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005D 2680 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 2680 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005D 2680 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 2680 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005D 0028 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005D 0028 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0028 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 2680 05D0 0062 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 05D0 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 2680 05D0 0028 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 05D0 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0061 2680 05D0 0028 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 2680 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 2680 0028 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 2680 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 0028 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0061 0028 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 0028 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0028 0061 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005D 0028 0061 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 0061 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and ]() +0061 2680 005D 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 2680 005D 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 2680 005D 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 005D 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 2680 005D 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 005D 2680 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 005D 2680 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 005D 2680 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 005D 0028 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +005D 0061 2680 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +005D 0061 2680 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005D 0061 2680 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005D 0061 0028 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005D 0028 0061 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and ]() +0061 005D 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 2680 0028 2681 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 2680 0028 0029 2681;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 2680 0029 2681;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 2680 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +005D 0061 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 2680 0029 2681;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 + +# L, L, ON, L and ]() +0061 005D 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 2680 0063 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 005D 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +005D 0061 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 2680 0063 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 2680 0029 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +005D 0061 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 0029 2680 0063;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 + +# L, L, ON, R and ]() +0061 005D 0062 2680 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0062 2680 05D0 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 0062 2680 0028 05D0 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 0062 2680 0028 0029 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 2680 05D0 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 0062 0028 2680 0029 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 0062 0028 0029 2680 05D0;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 2680 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 0028 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 005D 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 0028 0062 0029 2680 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +005D 0061 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 2680 05D0 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 0028 0062 2680 0029 05D0;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +005D 0061 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 0028 0062 0029 2680 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 + +# L, L, L, ON and ]() +0061 005D 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 005D 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 0063 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, L, L and ]() +0061 005D 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and ]() +0061 005D 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 0063 05D0 0029;1;1;2 2 2 1 2 1 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 0062 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, R, ON and ]() +0061 005D 0062 05D0 2680 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 05D0 2680 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 05D0 0028 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 05D0 0028 2680 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 05D0 0028 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 05D0 0028 0029 2680;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 05D0 2680 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 05D0 0029 2680;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0028 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 05D0 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 05D0 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 05D0 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 05D0 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, R, L and ]() +0061 005D 0062 05D0 0063 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 05D0 0063 0028 0029;1;1;2 2 2 1 2 1 1;6 5 4 3 0 1 2 +0061 005D 0062 05D0 0028 0063 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 05D0 0028 0063 0029;1;1;2 2 2 1 1 2 1;6 5 4 3 0 1 2 +0061 005D 0062 05D0 0028 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0062 05D0 0028 0029 0063;1;1;2 2 2 1 1 1 2;6 5 4 3 0 1 2 +0061 005D 0062 0028 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 05D0 0063 0029;1;1;2 2 2 1 1 2 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0062 0028 05D0 0029 0063;1;1;2 2 2 1 1 1 2;6 5 4 3 0 1 2 +0061 005D 0028 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 05D0 0063 0029;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 005D 0028 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 0028 0062 05D0 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 0061 0028 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 05D0 0063 0029;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +005D 0061 0028 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 0028 0062 05D0 0029 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, L, R, R and ]() +0061 005D 0062 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 005D 0062 05D0 0028 05D1 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 005D 0062 05D0 0028 0029 05D1;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 005D 0062 0028 05D0 0029 05D1;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 005D 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 005D 0028 0062 05D0 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +005D 0061 0028 0062 05D0 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, ON and ]() +0061 005D 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and ]() +0061 005D 05D0 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 2680 0062 0028 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 2680 0028 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005D 05D0 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 2680 0028 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005D 05D0 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005D 05D0 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005D 0028 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 05D0 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 005D 0028 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 05D0 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 2680 0062 0028 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 2680 0028 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0061 05D0 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 2680 0028 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 05D0 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 05D0 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 0028 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 05D0 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 0028 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0028 0061 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 05D0 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005D 0028 0061 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and ]() +0061 005D 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 005D 05D0 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005D 05D0 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005D 05D0 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005D 05D0 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005D 05D0 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005D 05D0 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 005D 0028 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 005D 0028 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 005D 0028 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 2680 05D1 0028 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005D 0061 05D0 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 0061 05D0 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 0061 05D0 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 0061 05D0 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 0061 05D0 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 0061 05D0 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +005D 0061 0028 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0061 0028 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0061 0028 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +005D 0028 0061 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0028 0061 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0028 0061 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and ]() +0061 005D 05D0 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0062 2680 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0062 0028 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0062 0028 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 05D0 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 05D0 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0062 2680 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0062 0028 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0062 0028 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 05D0 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 05D0 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 05D0 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 05D0 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and ]() +0061 005D 05D0 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0062 0028 0063 0029;1;1;2 1 1 2 2 2 2;3 4 5 6 2 1 0 +0061 005D 05D0 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0062 0028 0029 0063;1;1;2 1 1 2 2 2 2;3 4 5 6 2 1 0 +0061 005D 05D0 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0061 005D 0028 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 005D 0028 05D0 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 0061 05D0 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0062 0028 0063 0029;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +005D 0061 05D0 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0062 0028 0029 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +005D 0061 05D0 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +005D 0061 0028 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0061 0028 05D0 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +005D 0028 0061 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +005D 0028 0061 05D0 0062 0029 0063;1;1;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# L, R, L, R and ]() +0061 005D 05D0 0062 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0062 05D1 0028 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0062 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 05D0 0062 0028 05D1 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 05D0 0062 0028 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 005D 05D0 0028 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 005D 0028 05D0 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 005D 0028 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 005D 0028 05D0 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0062 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0062 05D1 0028 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0062 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005D 0061 05D0 0062 0028 05D1 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 05D0 0062 0028 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005D 0061 05D0 0028 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +005D 0061 0028 05D0 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0061 0028 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0061 0028 05D0 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +005D 0028 0061 05D0 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 0061 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +005D 0028 0061 05D0 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and ]() +0061 005D 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005D 05D0 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 005D 05D0 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 0061 05D0 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +005D 0061 05D0 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and ]() +0061 005D 05D0 0028 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 005D 05D0 0028 05D1 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 005D 05D0 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 005D 05D0 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0061 05D0 0028 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005D 0061 05D0 0028 05D1 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +005D 0061 05D0 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and ]() +0061 005D 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0061 005D 05D0 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0061 05D0 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +005D 0061 05D0 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and ]() +05D0 2680 005D 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and ]() +05D0 2680 005D 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 2681 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 2681 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 005D 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 2681 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 005D 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 005D 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 2680 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 2680 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 0028 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 2680 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 2680 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0028 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0028 05D0 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and ]() +05D0 2680 005D 2681 05D1 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 005D 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 2681 05D1 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 2681 0029 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 0029 2681 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 0029 2681 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005D 0028 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and ]() +05D0 2680 005D 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0061 2681 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0061 0028 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0061 0028 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and ]() +05D0 2680 005D 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 2680 005D 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 2680 005D 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 005D 2680 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 005D 2680 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 005D 2680 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 005D 0028 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 05D0 2680 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +005D 05D0 2680 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +005D 05D0 2680 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 05D0 0028 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 0028 05D0 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, ON, L, R and ]() +05D0 2680 005D 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 005D 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 005D 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 005D 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0061 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0061 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005D 2680 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 2680 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 2680 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005D 0028 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 0028 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0061 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0061 05D1 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0061 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005D 05D0 2680 0061 0028 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 2680 0061 0028 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 2680 0028 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005D 05D0 0028 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 0028 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005D 0028 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005D 0028 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and ]() +05D0 2680 005D 05D1 2681 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005D 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 05D1 0028 2681 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005D 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 05D1 0028 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005D 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 005D 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 2681 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005D 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 2681 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005D 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 0029 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005D 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005D 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005D 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 05D1 2681 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005D 05D0 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 05D1 0028 2681 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005D 05D0 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 05D1 0028 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005D 05D0 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 05D1 2681 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 05D1 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005D 05D0 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 05D1 2681 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 05D1 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005D 05D0 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005D 0028 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005D 0028 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and ]() +05D0 2680 005D 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005D 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005D 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 005D 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 2680 005D 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 005D 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 005D 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0061 0028 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005D 2680 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 0061 0029;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005D 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 0029 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 005D 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005D 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005D 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 2680 05D1 0061 0028 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005D 05D0 2680 05D1 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 05D1 0028 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005D 05D0 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 05D0 2680 05D1 0028 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +005D 05D0 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 2680 0028 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 05D1 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005D 05D0 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0028 2680 05D1 0061 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 05D1 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005D 05D0 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 0028 05D0 2680 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005D 0028 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +005D 0028 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and ]() +05D0 2680 005D 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 005D 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 05D1 0028 05D2 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 05D1 0028 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 2680 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 2680 05D1 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 2680 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +005D 0028 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and ]() +05D0 005D 0061 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and ]() +05D0 005D 0061 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 005D 0061 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005D 0061 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005D 0061 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005D 0061 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005D 0061 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005D 0028 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 005D 0028 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 005D 0028 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0061 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 2680 0062 0028 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +005D 05D0 0061 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 05D0 0061 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 05D0 0061 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 05D0 0061 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 05D0 0061 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 05D0 0028 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +005D 05D0 0028 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0028 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 0028 05D0 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +005D 0028 05D0 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 0028 05D0 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, ON, R and ]() +05D0 005D 0061 2680 05D1 0028 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 2680 0028 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005D 0061 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 0061 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 0061 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 0061 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 0061 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 0028 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 0028 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 2680 05D1 0028 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 2680 0028 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005D 05D0 0061 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 0061 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 0061 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 0061 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 0061 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 0028 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 0028 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 0061 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005D 0028 05D0 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +005D 0028 05D0 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and ]() +05D0 005D 0061 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +05D0 005D 0061 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +005D 05D0 0061 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 05D0 0061 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 0062 0029 2680;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# R, L, L, L and ]() +05D0 005D 0061 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 +005D 05D0 0061 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# R, L, L, R and ]() +05D0 005D 0061 0028 0062 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 005D 0061 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +005D 05D0 0061 0028 0062 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +005D 05D0 0061 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 + +# R, L, R, ON and ]() +05D0 005D 0061 05D1 2680 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 05D1 0028 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 05D1 0028 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 0061 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 0061 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 05D1 2680 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 05D1 0028 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 05D1 0028 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 0061 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 0061 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 0061 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 0061 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and ]() +05D0 005D 0061 05D1 0062 0028 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 05D1 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 05D1 0028 0062 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 05D1 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 0061 05D1 0028 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 0061 0028 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0061 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 0028 0061 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 005D 0028 0061 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0061 05D1 0062 0028 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 05D1 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 05D1 0028 0062 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 05D1 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005D 05D0 0061 05D1 0028 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0061 0028 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0061 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0028 0061 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +005D 05D0 0028 0061 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +005D 0028 05D0 0061 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +005D 0028 05D0 0061 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +005D 0028 05D0 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and ]() +05D0 005D 0061 05D1 0028 05D2 0029;0;0;1 0 0 1 1 1 1;0 1 2 6 5 4 3 +05D0 005D 0061 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 05D1 0028 0029 05D2;0;0;1 0 0 1 1 1 1;0 1 2 6 5 4 3 +05D0 005D 0061 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0061 0028 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 005D 0061 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 0061 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 005D 0028 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 05D1 0028 05D2 0029;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +005D 05D0 0061 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 05D1 0028 0029 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +005D 05D0 0061 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0061 0028 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +005D 05D0 0061 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 0061 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +005D 05D0 0028 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +005D 0028 05D0 0061 05D1 0029 05D2;0;0;0 0 1 0 1 0 1;0 1 2 3 4 5 6 +005D 0028 05D0 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and ]() +05D0 005D 05D1 2680 0028 2681 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 2680 0028 0029 2681;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 2680 0029 2681;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005D 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 2680 0029 2681;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005D 05D0 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and ]() +05D0 005D 05D1 2680 0061 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 2680 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 2680 0028 0061 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 05D1 2680 0028 0029 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 2680 0061 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 2680 0029 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 0029 2680 0061;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005D 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 0029 2680 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 005D 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 2680 0061 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 2680 0029 0061;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +005D 05D0 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 0029 2680 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +005D 05D0 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and ]() +05D0 005D 05D1 2680 05D2 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 005D 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 2680 0029 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 0029 2680 05D2;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +005D 05D0 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and ]() +05D0 005D 05D1 0061 2680 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0061 2680 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0061 0028 2680 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0061 0028 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0061 0028 0029 2680;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0061 0028 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 0061 2680 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 0061 0029 2680;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 0061 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 0061 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 0061 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 0061 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and ]() +05D0 005D 05D1 0061 0028 0062 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 005D 05D1 0061 0028 0029 0062;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 005D 05D1 0028 0061 0029 0062;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 0061 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 005D 0028 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 0061 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +005D 05D0 0028 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, R, L, R and ]() +05D0 005D 05D1 0061 05D2 0028 0029;0;0;1 1 1 0 1 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0061 05D2 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0061 0028 05D2 0029;0;0;1 1 1 0 0 1 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0061 0028 05D2 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0061 0028 0029 05D2;0;0;1 1 1 0 0 0 1;2 1 0 3 4 5 6 +05D0 005D 05D1 0061 0028 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 0061 05D2 0029;0;0;1 1 1 0 0 1 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 0061 0029 05D2;0;0;1 1 1 0 0 0 1;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 0061 05D2 0029;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 005D 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 005D 0028 05D1 0061 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 005D 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 0061 05D2 0029;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +005D 05D0 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +005D 05D0 0028 05D1 0061 0029 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +005D 05D0 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and ]() +05D0 005D 05D1 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005D 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and ]() +05D0 005D 05D1 0028 05D2 0061 0029;0;0;1 1 1 0 1 0 0;2 1 0 3 4 5 6 +05D0 005D 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 005D 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and ]() +05D0 005D 05D1 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 005D 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# (]) +0028 005D 0029;0;0;0 0 0;0 1 2 +0028 005D 0029;1;1;1 1 1;2 1 0 + +# ON and (]) +2680 0028 005D 0029;0;0;0 0 0 0;0 1 2 3 +2680 0028 005D 0029;1;1;1 1 1 1;3 2 1 0 +0028 2680 005D 0029;0;0;0 0 0 0;0 1 2 3 +0028 2680 005D 0029;1;1;1 1 1 1;3 2 1 0 +0028 005D 2680 0029;0;0;0 0 0 0;0 1 2 3 +0028 005D 2680 0029;1;1;1 1 1 1;3 2 1 0 +0028 005D 0029 2680;0;0;0 0 0 0;0 1 2 3 +0028 005D 0029 2680;1;1;1 1 1 1;3 2 1 0 + +# L and (]) +0061 0028 005D 0029;0;0;0 0 0 0;0 1 2 3 +0061 0028 005D 0029;1;1;2 1 1 1;3 2 1 0 +0028 0061 005D 0029;0;0;0 0 0 0;0 1 2 3 +0028 0061 005D 0029;1;1;1 2 1 1;3 2 1 0 +0028 005D 0061 0029;0;0;0 0 0 0;0 1 2 3 +0028 005D 0061 0029;1;1;1 1 2 1;3 2 1 0 +0028 005D 0029 0061;0;0;0 0 0 0;0 1 2 3 +0028 005D 0029 0061;1;1;1 1 1 2;3 2 1 0 + +# R and (]) +05D0 0028 005D 0029;0;0;1 0 0 0;0 1 2 3 +05D0 0028 005D 0029;1;1;1 1 1 1;3 2 1 0 +0028 05D0 005D 0029;0;0;0 1 0 0;0 1 2 3 +0028 05D0 005D 0029;1;1;1 1 1 1;3 2 1 0 +0028 005D 05D0 0029;0;0;0 0 1 0;0 1 2 3 +0028 005D 05D0 0029;1;1;1 1 1 1;3 2 1 0 +0028 005D 0029 05D0;0;0;0 0 0 1;0 1 2 3 +0028 005D 0029 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and (]) +2680 0028 2681 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 005D 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005D 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 005D 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005D 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005D 2681 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005D 2681 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005D 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005D 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005D 2680 0029 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005D 2680 0029 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and (]) +2680 0028 0061 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 005D 0029;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 005D 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005D 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 005D 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 005D 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 0061 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 005D 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 005D 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005D 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 2680 005D 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 005D 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 005D 2680 0061 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005D 2680 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 005D 2680 0029 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005D 2680 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 005D 0029 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005D 0029 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and (]) +2680 0028 05D0 005D 0029;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 005D 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 005D 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 005D 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 005D 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 005D 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005D 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 2680 005D 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 005D 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 005D 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005D 2680 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 005D 2680 05D0 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005D 2680 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 005D 2680 0029 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005D 0029 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 005D 0029 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and (]) +0061 2680 0028 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 005D 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 005D 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 005D 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005D 2680 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 005D 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005D 0029 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 005D 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 005D 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005D 2680 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 005D 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005D 0029 2680;1;1;1 2 1 1 1;4 3 2 1 0 +0028 005D 0061 2680 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005D 0061 2680 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 005D 0061 0029 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005D 0061 0029 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and (]) +0061 0028 0062 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 005D 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 005D 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005D 0062 0029;1;1;2 2 2 2 2;0 1 2 3 4 +0061 0028 005D 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 005D 0029 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0028 0061 005D 0062 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005D 0062 0029;1;1;1 2 2 2 1;4 1 2 3 0 +0028 0061 005D 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 005D 0029 0062;1;1;1 2 1 1 2;4 3 2 1 0 +0028 005D 0061 0029 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 005D 0061 0029 0062;1;1;1 1 2 1 2;4 3 2 1 0 + +# L, R and (]) +0061 0028 05D0 005D 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 005D 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 005D 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 005D 05D0 0029;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 005D 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 005D 0029 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 005D 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 005D 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 005D 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0061 005D 05D0 0029;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 005D 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 005D 0029 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0028 005D 0061 05D0 0029;0;0;0 0 0 1 0;0 1 2 3 4 +0028 005D 0061 05D0 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 005D 0061 0029 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 005D 0061 0029 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and (]) +05D0 2680 0028 005D 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 005D 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005D 2680 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005D 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005D 0029 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005D 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 005D 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005D 2680 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005D 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005D 0029 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005D 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005D 05D0 2680 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005D 05D0 2680 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005D 05D0 0029 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005D 05D0 0029 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and (]) +05D0 0028 0061 005D 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 005D 0029;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 005D 0061 0029;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005D 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 005D 0029 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 005D 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 0061 005D 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 005D 0029;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 005D 0061 0029;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005D 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 05D0 005D 0029 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 005D 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 005D 05D0 0061 0029;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005D 05D0 0061 0029;1;1;1 1 1 2 1;4 3 2 1 0 +0028 005D 05D0 0029 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0028 005D 05D0 0029 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and (]) +05D0 0028 05D1 005D 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 05D1 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005D 05D1 0029;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005D 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005D 0029 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 005D 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005D 05D1 0029;0;0;0 1 1 1 0;0 3 2 1 4 +0028 05D0 005D 05D1 0029;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 005D 0029 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 005D 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 005D 05D0 0029 05D1;0;0;0 0 1 0 1;0 1 2 3 4 +0028 005D 05D0 0029 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and (]) +2680 0028 2681 005D 2682 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005D 2682 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 005D 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005D 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005D 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005D 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and (]) +2680 0028 2681 0061 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 005D 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 2681 005D 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 005D 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005D 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 005D 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005D 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 005D 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005D 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 005D 2681 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005D 2681 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 005D 2681 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 005D 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005D 2680 0029 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and (]) +2680 0028 2681 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 2681 005D 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 005D 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005D 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 005D 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005D 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 005D 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005D 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 005D 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005D 2681 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 005D 2681 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 005D 2681 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 005D 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005D 2680 0029 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and (]) +2680 0028 0061 2681 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 005D 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005D 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 005D 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005D 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 005D 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005D 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 005D 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005D 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 005D 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005D 2681 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 005D 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005D 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 005D 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005D 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 005D 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005D 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005D 2680 0061 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005D 2680 0061 2681 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005D 2680 0061 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005D 2680 0061 0029 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and (]) +2680 0028 0061 005D 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005D 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +2680 0028 0061 005D 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 005D 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +2680 0028 005D 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 005D 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 2680 0061 005D 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005D 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 2680 0061 005D 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 005D 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 005D 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 005D 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 005D 2680 0061 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005D 2680 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# ON, L, R and (]) +2680 0028 0061 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0061 005D 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 005D 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 005D 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 005D 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 005D 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 005D 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0061 005D 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 005D 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 005D 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 005D 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 005D 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 005D 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005D 2680 0061 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005D 2680 0061 05D0 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005D 2680 0061 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005D 2680 0061 0029 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and (]) +2680 0028 05D0 2681 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 005D 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005D 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 005D 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005D 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005D 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005D 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005D 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005D 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005D 2681 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005D 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005D 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005D 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005D 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005D 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005D 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005D 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005D 2680 05D0 2681 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005D 2680 05D0 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005D 2680 05D0 0029 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005D 2680 05D0 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and (]) +2680 0028 05D0 0061 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 005D 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 05D0 005D 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 005D 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005D 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 005D 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 005D 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 0061 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 005D 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 05D0 005D 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 005D 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005D 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 005D 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 005D 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005D 2680 05D0 0061 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005D 2680 05D0 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005D 2680 05D0 0029 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005D 2680 05D0 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and (]) +2680 0028 05D0 005D 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +2680 0028 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 005D 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 005D 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +2680 0028 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005D 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 2680 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 005D 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 005D 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 2680 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005D 2680 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 005D 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and (]) +0061 2680 0028 2681 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 005D 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005D 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 005D 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005D 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005D 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005D 2681 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005D 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005D 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005D 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005D 2680 0029 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005D 2681 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005D 2681 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005D 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005D 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005D 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005D 2680 0029 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005D 0061 2680 0029 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005D 0061 2680 0029 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and (]) +0061 2680 0028 0062 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 005D 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0028 005D 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005D 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 2680 0028 005D 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 005D 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 005D 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 005D 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005D 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 005D 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 005D 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005D 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005D 2680 0062 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005D 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005D 2680 0029 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005D 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005D 0029 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0062 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 005D 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 005D 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005D 0062 0029;1;1;1 2 2 2 2 1;5 1 2 3 4 0 +0028 0061 2680 005D 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 005D 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 005D 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005D 2680 0062 0029;1;1;1 2 2 2 2 1;5 1 2 3 4 0 +0028 0061 005D 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005D 2680 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 005D 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005D 0029 2680 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 005D 0061 2680 0062 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005D 0061 2680 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 005D 0061 2680 0029 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005D 0061 2680 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 005D 0061 0029 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 005D 0061 0029 2680 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, ON, R and (]) +0061 2680 0028 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 005D 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 005D 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 2680 005D 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 005D 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005D 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 005D 2680 05D0 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005D 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 005D 2680 0029 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005D 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 005D 0029 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 005D 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 2680 005D 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 005D 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005D 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 005D 2680 05D0 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005D 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 005D 2680 0029 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005D 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 005D 0029 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005D 0061 2680 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 005D 0061 2680 05D0 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005D 0061 2680 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005D 0061 2680 0029 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005D 0061 0029 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 005D 0061 0029 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and (]) +0061 0028 0062 2680 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 005D 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 005D 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005D 2680 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 005D 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005D 0029 2680;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 005D 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005D 0062 2680 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005D 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005D 0062 0029 2680;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0028 0061 005D 0062 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005D 0062 2680 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 005D 0062 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005D 0062 0029 2680;1;1;1 2 2 2 1 1;5 4 1 2 3 0 + +# L, L, L and (]) +0061 0028 0062 005D 0063 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005D 0063 0029;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0062 005D 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 005D 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 005D 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 005D 0062 0029 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 005D 0062 0029 0063;1;1;1 2 2 2 1 2;5 4 1 2 3 0 + +# L, L, R and (]) +0061 0028 0062 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 005D 0029;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0062 005D 05D0 0029;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 005D 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 005D 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 005D 0062 05D0 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 005D 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 005D 0062 0029 05D0;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0028 0061 005D 0062 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 005D 0062 05D0 0029;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 005D 0062 0029 05D0;1;1;1 2 2 2 1 1;5 4 1 2 3 0 + +# L, R, ON and (]) +0061 0028 05D0 2680 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 005D 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005D 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 005D 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005D 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005D 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005D 05D0 2680 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005D 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005D 05D0 0029 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 005D 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005D 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005D 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005D 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005D 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005D 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005D 05D0 2680 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005D 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005D 05D0 0029 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005D 0061 05D0 2680 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005D 0061 05D0 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 005D 0061 05D0 0029 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005D 0061 05D0 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and (]) +0061 0028 05D0 0062 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 005D 0029;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 005D 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005D 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 05D0 005D 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 005D 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 005D 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005D 05D0 0062 0029;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 005D 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 005D 05D0 0029 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 0062 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 005D 0029;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 005D 0062 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005D 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 05D0 005D 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 005D 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 005D 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005D 05D0 0062 0029;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 005D 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 005D 05D0 0029 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 005D 0061 05D0 0062 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005D 0061 05D0 0062 0029;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 005D 0061 05D0 0029 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 005D 0061 05D0 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and (]) +0061 0028 05D0 005D 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0061 0028 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 005D 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 005D 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0061 0028 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005D 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 0061 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 005D 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 005D 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 0061 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 005D 0061 05D0 0029 05D1;0;0;0 0 0 1 0 1;0 1 2 3 4 5 +0028 005D 0061 05D0 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and (]) +05D0 2680 0028 2681 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005D 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005D 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005D 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005D 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005D 2681 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005D 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005D 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005D 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 2680 0029 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005D 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005D 2681 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005D 2681 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005D 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005D 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 2680 0029 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005D 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005D 05D0 2680 0029 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005D 05D0 2680 0029 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and (]) +05D0 2680 0028 0061 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 005D 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 005D 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 0061 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 005D 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 2680 005D 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 005D 2680 0061 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005D 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 005D 2680 0029 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005D 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 005D 0029 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005D 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 0061 005D 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 005D 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 2680 005D 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 005D 2680 0061 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005D 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 005D 2680 0029 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005D 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 005D 0029 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005D 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005D 05D0 2680 0061 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005D 05D0 2680 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 005D 05D0 2680 0029 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005D 05D0 2680 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 005D 05D0 0029 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005D 05D0 0029 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and (]) +05D0 2680 0028 05D1 005D 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005D 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 005D 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005D 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 005D 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 2680 0029 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 0029 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 005D 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005D 05D1 0029;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 2680 005D 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 005D 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 2680 005D 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 2680 05D1 0029;0;0;0 1 1 1 1 0;0 4 3 2 1 5 +0028 05D0 005D 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 2680 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 005D 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 0029 2680 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 005D 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005D 05D0 2680 05D1 0029;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 005D 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005D 05D0 2680 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 005D 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 005D 05D0 0029 2680 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 005D 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and (]) +05D0 0028 0061 2680 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 005D 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005D 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 005D 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005D 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 0061 2680 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005D 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 005D 0061 0029 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005D 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 005D 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 005D 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005D 2680 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 005D 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005D 0029 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 0061 2680 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005D 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 005D 0061 0029 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005D 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005D 05D0 0061 2680 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005D 05D0 0061 2680 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005D 05D0 0061 0029 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005D 05D0 0061 0029 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and (]) +05D0 0028 0061 005D 0062 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005D 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +05D0 0028 0061 005D 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 005D 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +05D0 0028 005D 0061 0029 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 005D 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 05D0 0061 005D 0062 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005D 0062 0029;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 05D0 0061 005D 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 005D 0029 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 005D 0061 0029 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 005D 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 +0028 005D 05D0 0061 0029 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 005D 05D0 0061 0029 0062;1;1;1 1 1 2 1 2;5 4 3 2 1 0 + +# R, L, R and (]) +05D0 0028 0061 05D1 005D 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 005D 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0061 005D 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 005D 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 005D 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 0061 05D1 0029;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 005D 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 005D 0061 0029 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 005D 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 005D 0029;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 005D 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0061 005D 05D1 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 005D 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 005D 0029 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 0061 05D1 0029;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 005D 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 005D 0061 0029 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 005D 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005D 05D0 0061 05D1 0029;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 005D 05D0 0061 05D1 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 005D 05D0 0061 0029 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 005D 05D0 0061 0029 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and (]) +05D0 0028 05D1 2680 005D 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005D 0029 2680;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 005D 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 05D1 0029 2680;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 005D 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 05D1 2680 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005D 05D1 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 05D1 0029 2680;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005D 05D1 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and (]) +05D0 0028 05D1 0061 005D 0029;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005D 0061 0029;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 05D1 005D 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 005D 05D1 0061 0029;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 005D 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 005D 05D1 0029 0061;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 005D 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 005D 05D1 0061 0029;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 005D 05D1 0029 0061;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and (]) +05D0 0028 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 005D 05D1 0029 05D2;0;0;0 1 1 1 0 1;0 3 2 1 4 5 +0028 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and (]) +2680 0028 2681 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and (]) +2680 0028 2681 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 2682 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 2682 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and (]) +2680 0028 2681 005D 2682 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and (]) +2680 0028 2681 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 2682 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005D 2682 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005D 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 0061 2682 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 0061 0029 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and (]) +2680 0028 2681 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005D 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 2681 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 0028 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, ON, L, R and (]) +2680 0028 2681 0061 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 05D0 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 005D 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0061 005D 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005D 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005D 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005D 2681 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and (]) +2680 0028 2681 05D0 2682 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005D 2682 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005D 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 05D0 2682 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 05D0 0029 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and (]) +2680 0028 2681 05D0 0061 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005D 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005D 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 005D 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005D 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005D 2681 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and (]) +2680 0028 2681 05D0 005D 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 2681 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 2681 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and (]) +2680 0028 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005D 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005D 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005D 2682 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005D 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 2681 0029 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and (]) +2680 0028 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0062 005D 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +2680 0028 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 2681 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +2680 0028 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 2681 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0062 005D 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 2681 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 2680 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 2681 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005D 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 2681 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 005D 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 2681 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005D 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 0029 2681 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, ON, R and (]) +2680 0028 0061 2681 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 05D0 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 005D 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 2681 005D 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005D 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 005D 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 05D0 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 005D 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 2681 005D 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005D 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 005D 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 2681 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005D 2680 0061 2681 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005D 2680 0061 0029 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and (]) +2680 0028 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# ON, L, L, L and (]) +2680 0028 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 +0028 2680 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# ON, L, L, R and (]) +2680 0028 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005D 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005D 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# ON, L, R, ON and (]) +2680 0028 0061 05D0 2681 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005D 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005D 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005D 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005D 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005D 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005D 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005D 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005D 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 0061 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 05D0 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 0061 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 05D0 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and (]) +2680 0028 0061 05D0 0062 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0062 005D 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005D 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005D 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005D 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 005D 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 005D 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005D 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 005D 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 005D 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0062 005D 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005D 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005D 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005D 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 005D 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 005D 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005D 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 005D 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 005D 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005D 2680 0061 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 05D0 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005D 2680 0061 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 2680 0061 05D0 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and (]) +2680 0028 0061 05D0 005D 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 0061 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 0061 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +2680 0028 005D 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005D 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 0061 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 0061 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 2680 005D 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 005D 2680 0061 05D0 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and (]) +2680 0028 05D0 2681 005D 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005D 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005D 2682 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005D 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 2681 0029 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and (]) +2680 0028 05D0 2681 0061 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005D 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005D 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005D 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 005D 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005D 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005D 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005D 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 005D 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005D 2680 05D0 2681 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 2681 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005D 2680 05D0 0029 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and (]) +2680 0028 05D0 2681 05D1 005D 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 2681 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +2680 0028 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 2681 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 005D 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 2681 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 2680 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 2681 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 2681 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 005D 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 2681 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005D 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 0029 2681 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005D 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and (]) +2680 0028 05D0 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 2681 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005D 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005D 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005D 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005D 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 2681 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005D 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005D 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005D 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005D 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 0061 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 05D0 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 0061 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 05D0 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and (]) +2680 0028 05D0 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005D 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 05D0 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +2680 0028 005D 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 005D 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005D 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 05D0 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 2680 005D 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 005D 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005D 2680 05D0 0061 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 2680 05D0 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# ON, R, L, R and (]) +2680 0028 05D0 0061 05D1 005D 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 05D1 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 005D 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005D 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0061 005D 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 005D 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 005D 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 05D1 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005D 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005D 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0061 005D 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 005D 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 0061 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005D 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 2680 05D0 0061 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005D 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and (]) +2680 0028 05D0 005D 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and (]) +2680 0028 05D0 005D 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 005D 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 005D 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and (]) +2680 0028 05D0 005D 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +2680 0028 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 005D 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0028 2680 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and (]) +0061 2680 0028 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005D 2682 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005D 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 2681 0029 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and (]) +0061 2680 0028 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0062 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005D 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005D 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 2681 0062 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 2681 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 0029 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 0029 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005D 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 0029 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, ON, R and (]) +0061 2680 0028 2681 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 05D0 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 005D 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 2681 005D 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005D 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 2681 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005D 2681 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005D 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005D 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005D 0061 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and (]) +0061 2680 0028 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 0062 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 005D 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005D 2681 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005D 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 0062 2681 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 0062 0029 2681;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 0062 2681 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 0062 0029 2681;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 005D 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 0062 2681 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 005D 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 0062 0029 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and (]) +0061 2680 0028 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005D 0063 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005D 0029 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 0062 0029 0063;1;1;1 2 2 2 2 1 2;6 5 1 2 3 4 0 +0028 0061 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 0062 0029 0063;1;1;1 2 2 2 2 1 2;6 5 1 2 3 4 0 +0028 005D 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# L, ON, L, R and (]) +0061 2680 0028 0062 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 05D0 005D 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0062 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 005D 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 005D 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 0062 05D0 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005D 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 2680 0062 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 005D 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 005D 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0062 005D 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 0062 05D0 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005D 0062 0029 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 0062 05D0 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005D 2680 0062 0029 05D0;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 005D 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 0062 05D0 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 005D 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 005D 0061 2680 0062 0029 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and (]) +0061 2680 0028 05D0 2681 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005D 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005D 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005D 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005D 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 2681 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005D 2681 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005D 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005D 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005D 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005D 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005D 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 0061 2680 05D0 2681 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 0061 2680 05D0 0029 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and (]) +0061 2680 0028 05D0 0062 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0062 005D 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005D 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005D 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005D 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 0028 005D 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0062 005D 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005D 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005D 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005D 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 005D 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005D 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 05D0 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 005D 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005D 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0062 005D 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005D 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005D 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005D 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005D 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 005D 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 005D 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 005D 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005D 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 05D0 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005D 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005D 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005D 0061 2680 05D0 0062 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 05D0 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005D 0061 2680 05D0 0029 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 0061 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and (]) +0061 2680 0028 05D0 005D 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 2680 0028 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 2680 0028 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005D 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 2680 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 2680 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 005D 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005D 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 2680 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 2680 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 005D 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 005D 0061 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and (]) +0061 0028 0062 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 2681 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 2680 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 2680 0029 2681;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0028 0061 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 2680 0029 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 + +# L, L, ON, L and (]) +0061 0028 0062 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0063 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 2680 0063 0029;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 2680 0029 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 0029 2680 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 + +# L, L, ON, R and (]) +0061 0028 0062 2680 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 05D0 005D 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 2680 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 05D0 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 2680 005D 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005D 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 2680 05D0 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005D 2680 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005D 0029 2680 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 2680 05D0 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005D 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 005D 0062 0029 2680 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 2680 05D0 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005D 0062 2680 0029 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 005D 0062 0029 2680 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 + +# L, L, L, ON and (]) +0061 0028 0062 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 0063 2680 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 0063 0029 2680;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, L, L and (]) +0061 0028 0062 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 0063 0029 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and (]) +0061 0028 0062 005D 0063 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 0063 05D0 0029;1;1;2 1 2 2 2 1 1;6 5 2 3 4 1 0 +0061 0028 0062 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005D 0063 0029 05D0;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 + +# L, L, R, ON and (]) +0061 0028 0062 05D0 2680 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 2680 005D 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005D 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005D 2680 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005D 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005D 0029 2680;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005D 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 05D0 2680 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005D 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 05D0 0029 2680;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 05D0 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 05D0 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 0062 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 05D0 2680 0029;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 005D 0062 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 05D0 0029 2680;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 + +# L, L, R, L and (]) +0061 0028 0062 05D0 0063 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0063 005D 0029;1;1;2 1 2 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005D 0063 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005D 0063 0029;1;1;2 1 2 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005D 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005D 0029 0063;1;1;2 1 2 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0062 005D 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 05D0 0063 0029;1;1;2 1 2 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0062 005D 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 005D 05D0 0029 0063;1;1;2 1 2 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005D 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 05D0 0063 0029;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 0028 005D 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 005D 0062 05D0 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 005D 0062 05D0 0063 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 05D0 0063 0029;1;1;1 2 2 2 1 2 1;6 5 4 1 2 3 0 +0028 0061 005D 0062 05D0 0029 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 005D 0062 05D0 0029 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 + +# L, L, R, R and (]) +0061 0028 0062 05D0 005D 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 0062 05D0 005D 05D1 0029;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 05D0 005D 0029 05D1;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 0062 005D 05D0 0029 05D1;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0061 0028 005D 0062 05D0 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0061 005D 0062 05D0 0029 05D1;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 + +# L, R, ON, ON and (]) +0061 0028 05D0 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005D 2681 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005D 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005D 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005D 2681 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005D 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005D 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 2680 0029 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and (]) +0061 0028 05D0 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0062 005D 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005D 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005D 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005D 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005D 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005D 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005D 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 05D0 2680 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 005D 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0062 005D 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005D 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005D 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005D 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005D 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005D 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005D 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 05D0 2680 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 005D 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005D 0061 05D0 2680 0062 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 05D0 2680 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 2680 0029 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 005D 0061 05D0 0029 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and (]) +0061 0028 05D0 2680 05D1 005D 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 2680 05D1 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 2680 005D 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 2680 005D 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 2680 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0061 0028 05D0 005D 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 005D 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 005D 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 005D 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 005D 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 005D 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 005D 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 2680 05D1 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 2680 005D 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 2680 005D 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 2680 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0061 05D0 005D 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 005D 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 005D 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 005D 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 005D 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 005D 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 2680 05D1 0029;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 005D 0061 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 2680 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005D 0061 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 0029 2680 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005D 0061 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and (]) +0061 0028 05D0 0062 2680 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 2680 005D 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 005D 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005D 2680 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 005D 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005D 0029 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005D 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005D 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 05D0 0062 2680 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 05D0 0062 0029 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 2680 005D 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005D 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005D 2680 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005D 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005D 0029 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005D 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005D 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 05D0 0062 2680 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 05D0 0062 0029 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 0062 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 05D0 0062 2680 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 0062 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 05D0 0062 0029 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and (]) +0061 0028 05D0 0062 005D 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005D 0063 0029;1;1;2 1 1 2 2 2 1;6 3 4 5 2 1 0 +0061 0028 05D0 0062 005D 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005D 0029 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 005D 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0061 0028 005D 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 005D 05D0 0062 0029 0063;1;1;2 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005D 0063 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005D 0063 0029;1;1;1 2 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0061 05D0 0062 005D 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005D 0029 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 005D 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0028 0061 005D 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 005D 05D0 0062 0029 0063;1;1;1 2 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005D 0061 05D0 0062 0029 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 005D 0061 05D0 0062 0029 0063;1;1;1 1 2 1 2 1 2;6 5 4 3 2 1 0 + +# L, R, L, R and (]) +0061 0028 05D0 0062 05D1 005D 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 05D1 005D 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 005D 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005D 05D1 0029;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0062 005D 0029 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 005D 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 005D 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 005D 05D0 0062 05D1 0029;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 005D 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 005D 05D0 0062 0029 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 005D 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 05D1 005D 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005D 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005D 05D1 0029;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0062 005D 0029 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 0062 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 005D 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 005D 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 005D 05D0 0062 05D1 0029;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 005D 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 005D 05D0 0062 0029 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 0062 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 005D 0061 05D0 0062 05D1 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 0061 05D0 0062 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 005D 0061 05D0 0062 0029 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and (]) +0061 0028 05D0 005D 05D1 2680 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005D 05D1 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 05D1 0029 2680;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005D 05D1 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 05D1 2680 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005D 05D1 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 05D1 0029 2680;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005D 05D1 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and (]) +0061 0028 05D0 005D 05D1 0062 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005D 05D1 0062 0029;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 005D 05D1 0029 0062;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 005D 05D1 0029 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 005D 05D1 0062 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005D 05D1 0062 0029;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 05D1 0029 0062;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 005D 05D1 0029 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and (]) +0061 0028 05D0 005D 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0061 0028 05D0 005D 05D1 0029 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 005D 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0028 0061 05D0 005D 05D1 0029 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and (]) +05D0 2680 0028 2681 005D 2682 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005D 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 2681 0029 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and (]) +05D0 2680 0028 2681 0061 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005D 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005D 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 005D 2681 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 2681 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 005D 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005D 05D0 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and (]) +05D0 2680 0028 2681 05D1 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005D 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005D 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 2681 05D1 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 2681 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 0029 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 0029 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005D 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and (]) +05D0 2680 0028 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 2681 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005D 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005D 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 2681 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005D 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005D 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 2681 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005D 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005D 2681 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005D 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005D 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005D 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005D 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 2680 0061 2681 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 2680 0061 0029 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and (]) +05D0 2680 0028 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005D 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 2680 0028 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005D 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 2680 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005D 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005D 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 2680 0061 005D 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 005D 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 005D 05D0 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 2680 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, ON, L, R and (]) +05D0 2680 0028 0061 05D1 005D 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 05D1 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 005D 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005D 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0061 005D 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 005D 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 005D 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 05D1 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005D 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005D 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0061 005D 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 005D 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 0061 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005D 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005D 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 005D 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 05D1 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005D 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005D 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 005D 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0061 005D 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 005D 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 005D 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 0061 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005D 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005D 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 0061 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005D 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005D 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and (]) +05D0 2680 0028 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 005D 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005D 2681 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005D 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 05D1 2681 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 05D1 0029 2681;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 05D1 2681 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 05D1 0029 2681;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 05D1 2681 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005D 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 05D1 0029 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005D 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and (]) +05D0 2680 0028 05D1 0061 005D 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 05D1 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 05D1 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 005D 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 005D 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 05D1 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 0061 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 005D 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005D 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005D 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 005D 05D1 0061 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 05D1 0029 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 2680 05D1 0061 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 05D1 0029 0061;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 005D 05D0 2680 05D1 0061 0029;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005D 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 05D1 0029 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 005D 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and (]) +05D0 2680 0028 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005D 05D2 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 005D 0029 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 005D 05D1 0029 05D2;0;0;0 1 1 1 1 0 1;0 4 3 2 1 5 6 +0028 05D0 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 2680 05D1 0029 05D2;0;0;0 1 1 1 1 0 1;0 4 3 2 1 5 6 +0028 05D0 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 2680 05D1 0029 05D2;0;0;0 0 1 1 1 0 1;0 1 4 3 2 5 6 +0028 005D 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and (]) +05D0 0028 0061 2680 005D 2681 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 005D 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005D 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005D 2681 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005D 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005D 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 2680 0029 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and (]) +05D0 0028 0061 2680 0062 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0062 005D 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 2680 005D 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +05D0 0028 0061 2680 005D 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 005D 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 2680 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +05D0 0028 0061 005D 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 005D 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 005D 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0062 005D 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 2680 005D 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 2680 005D 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 005D 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 2680 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 05D0 0061 005D 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 2680 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 005D 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 0029 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 005D 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005D 05D0 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 2680 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 005D 05D0 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 2680 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005D 05D0 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 0029 2680 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, ON, R and (]) +05D0 0028 0061 2680 05D1 005D 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 005D 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 005D 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005D 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005D 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005D 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 0061 2680 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005D 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005D 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 005D 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005D 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 005D 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005D 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005D 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005D 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 0061 2680 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005D 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 005D 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 0061 2680 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 2680 05D1 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005D 05D0 0061 2680 0029 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 005D 05D0 0061 0029 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and (]) +05D0 0028 0061 005D 0062 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 0062 2680 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 005D 0062 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 0062 0029 2680;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005D 0062 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 0062 2680 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005D 0062 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 0062 0029 2680;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# R, L, L, L and (]) +05D0 0028 0061 005D 0062 0029 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 +0028 05D0 0061 005D 0062 0029 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 0062 0029 0063;1;1;1 1 2 2 2 1 2;6 5 2 3 4 1 0 + +# R, L, L, R and (]) +05D0 0028 0061 005D 0062 05D1 0029;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 0062 05D1 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 005D 0062 0029 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005D 0062 0029 05D1;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005D 0062 05D1 0029;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 0062 05D1 0029;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 005D 0062 0029 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005D 0062 0029 05D1;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# R, L, R, ON and (]) +05D0 0028 0061 05D1 2680 005D 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 2680 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005D 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005D 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005D 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005D 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005D 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005D 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 0061 05D1 2680 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 0061 05D1 0029 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 005D 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 2680 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005D 2680 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005D 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005D 0029 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005D 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005D 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005D 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 0061 05D1 2680 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 0061 05D1 0029 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 0061 05D1 2680 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 05D1 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 0061 05D1 0029 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 05D1 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and (]) +05D0 0028 0061 05D1 0062 005D 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0062 005D 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005D 0062 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005D 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005D 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 005D 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 005D 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 0061 05D1 0062 0029;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005D 0061 05D1 0029 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 005D 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0062 005D 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005D 0062 0029;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005D 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005D 0029 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 005D 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 05D1 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 005D 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 0061 05D1 0062 0029;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005D 0061 05D1 0029 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 005D 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 005D 05D0 0061 05D1 0062 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 05D1 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 005D 05D0 0061 05D1 0029 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 005D 05D0 0061 05D1 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and (]) +05D0 0028 0061 05D1 005D 05D2 0029;0;0;1 0 0 1 1 1 0;0 1 2 5 4 3 6 +05D0 0028 0061 05D1 005D 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 005D 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 005D 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 005D 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 0061 05D1 0029 05D2;0;0;1 0 0 0 1 0 1;0 1 2 3 4 5 6 +05D0 0028 005D 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005D 05D2 0029;0;0;0 1 0 1 1 1 0;0 1 2 5 4 3 6 +0028 05D0 0061 05D1 005D 05D2 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 005D 0029 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 005D 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 005D 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 0061 05D1 0029 05D2;0;0;0 1 0 0 1 0 1;0 1 2 3 4 5 6 +0028 05D0 005D 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 005D 05D0 0061 05D1 0029 05D2;0;0;0 0 1 0 1 0 1;0 1 2 3 4 5 6 +0028 005D 05D0 0061 05D1 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and (]) +05D0 0028 05D1 2680 005D 2681 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 2680 0029 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and (]) +05D0 0028 05D1 2680 0061 005D 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 2680 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 0061 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 2680 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 0061 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005D 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005D 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 0029 2680 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 005D 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 0061 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 0029 2680 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 2680 0061 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 2680 0029 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 0029 2680 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and (]) +05D0 0028 05D1 2680 05D2 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 2680 0029 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 0029 2680 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and (]) +05D0 0028 05D1 0061 2680 005D 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 2680 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005D 2680 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005D 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005D 0029 2680;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005D 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 0061 2680 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005D 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 0061 0029 2680;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005D 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 0061 2680 0029;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 0061 0029 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 0061 2680 0029;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 0061 0029 2680;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and (]) +05D0 0028 05D1 0061 005D 0062 0029;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005D 0062 0029;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 05D1 0061 005D 0029 0062;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 0061 0029 0062;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 0061 0029 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 005D 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 0061 0029 0062;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# R, R, L, R and (]) +05D0 0028 05D1 0061 05D2 005D 0029;0;0;1 0 1 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 05D2 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005D 05D2 0029;0;0;1 0 1 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005D 05D2 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 005D 0029 05D2;0;0;1 0 1 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 005D 0029 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 0061 05D2 0029;0;0;1 0 1 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 05D1 005D 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 0061 0029 05D2;0;0;1 0 1 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 05D1 005D 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 0061 05D2 0029;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 0028 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 005D 05D1 0061 0029 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 0061 05D2 0029;0;0;0 1 1 1 0 1 0;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 005D 05D1 0061 0029 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and (]) +05D0 0028 05D1 005D 05D2 2680 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 05D2 0029 2680;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and (]) +05D0 0028 05D1 005D 05D2 0061 0029;0;0;1 0 1 1 1 0 0;0 1 4 3 2 5 6 +05D0 0028 05D1 005D 05D2 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 05D2 0029 0061;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and (]) +05D0 0028 05D1 005D 05D2 0029 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ()] +0028 0029 005D;0;0;0 0 0;0 1 2 +0028 0029 005D;1;1;1 1 1;2 1 0 + +# ON and ()] +2680 0028 0029 005D;0;0;0 0 0 0;0 1 2 3 +2680 0028 0029 005D;1;1;1 1 1 1;3 2 1 0 +0028 2680 0029 005D;0;0;0 0 0 0;0 1 2 3 +0028 2680 0029 005D;1;1;1 1 1 1;3 2 1 0 +0028 0029 2680 005D;0;0;0 0 0 0;0 1 2 3 +0028 0029 2680 005D;1;1;1 1 1 1;3 2 1 0 +0028 0029 005D 2680;0;0;0 0 0 0;0 1 2 3 +0028 0029 005D 2680;1;1;1 1 1 1;3 2 1 0 + +# L and ()] +0061 0028 0029 005D;0;0;0 0 0 0;0 1 2 3 +0061 0028 0029 005D;1;1;2 1 1 1;3 2 1 0 +0028 0061 0029 005D;0;0;0 0 0 0;0 1 2 3 +0028 0061 0029 005D;1;1;1 2 1 1;3 2 1 0 +0028 0029 0061 005D;0;0;0 0 0 0;0 1 2 3 +0028 0029 0061 005D;1;1;1 1 2 1;3 2 1 0 +0028 0029 005D 0061;0;0;0 0 0 0;0 1 2 3 +0028 0029 005D 0061;1;1;1 1 1 2;3 2 1 0 + +# R and ()] +05D0 0028 0029 005D;0;0;1 0 0 0;0 1 2 3 +05D0 0028 0029 005D;1;1;1 1 1 1;3 2 1 0 +0028 05D0 0029 005D;0;0;0 1 0 0;0 1 2 3 +0028 05D0 0029 005D;1;1;1 1 1 1;3 2 1 0 +0028 0029 05D0 005D;0;0;0 0 1 0;0 1 2 3 +0028 0029 05D0 005D;1;1;1 1 1 1;3 2 1 0 +0028 0029 005D 05D0;0;0;0 0 0 1;0 1 2 3 +0028 0029 005D 05D0;1;1;1 1 1 1;3 2 1 0 + +# ON, ON and ()] +2680 0028 2681 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 2681 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 2681 005D;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 2681 005D;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 005D 2681;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 005D 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 2681 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 2681 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 005D 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 005D 2681;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 005D 2681;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 005D 2681;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, L and ()] +2680 0028 0061 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0061 0029 005D;1;1;1 1 2 1 1;4 3 2 1 0 +2680 0028 0029 0061 005D;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 0061 005D;1;1;1 1 1 2 1;4 3 2 1 0 +2680 0028 0029 005D 0061;0;0;0 0 0 0 0;0 1 2 3 4 +2680 0028 0029 005D 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 2680 0061 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0061 0029 005D;1;1;1 1 2 1 1;4 3 2 1 0 +0028 2680 0029 0061 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 0061 005D;1;1;1 1 1 2 1;4 3 2 1 0 +0028 2680 0029 005D 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 2680 0029 005D 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 2680 0061 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 0061 005D;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 2680 005D 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 2680 005D 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 005D 2680 0061;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 005D 2680 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# ON, R and ()] +2680 0028 05D0 0029 005D;0;0;0 0 1 0 0;0 1 2 3 4 +2680 0028 05D0 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 05D0 005D;0;0;0 0 0 1 0;0 1 2 3 4 +2680 0028 0029 05D0 005D;1;1;1 1 1 1 1;4 3 2 1 0 +2680 0028 0029 005D 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +2680 0028 0029 005D 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 05D0 0029 005D;0;0;0 0 1 0 0;0 1 2 3 4 +0028 2680 05D0 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 05D0 005D;0;0;0 0 0 1 0;0 1 2 3 4 +0028 2680 0029 05D0 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 2680 0029 005D 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 2680 0029 005D 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 05D0 005D;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 2680 05D0 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 2680 005D 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 2680 005D 05D0;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 005D 2680 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 005D 2680 05D0;1;1;1 1 1 1 1;4 3 2 1 0 + +# L, ON and ()] +0061 2680 0028 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0061 2680 0028 0029 005D;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 2680 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 2680 0029 005D;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 2680 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 2680 005D;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 005D 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 005D 2680;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 2680 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 2680 0029 005D;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 2680 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 2680 005D;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 005D 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 005D 2680;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 2680 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 2680 005D;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0061 005D 2680;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 005D 2680;1;1;1 1 2 1 1;4 3 2 1 0 + +# L, L and ()] +0061 0028 0062 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0062 0029 005D;1;1;2 2 2 2 1;4 0 1 2 3 +0061 0028 0029 0062 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 0062 005D;1;1;2 2 2 2 1;4 0 1 2 3 +0061 0028 0029 005D 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0061 0028 0029 005D 0062;1;1;2 2 2 2 2;0 1 2 3 4 +0028 0061 0029 0062 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 0062 005D;1;1;1 2 1 2 1;4 3 2 1 0 +0028 0061 0029 005D 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0061 0029 005D 0062;1;1;1 2 1 1 2;4 3 2 1 0 +0028 0029 0061 005D 0062;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0029 0061 005D 0062;1;1;1 1 2 2 2;2 3 4 1 0 + +# L, R and ()] +0061 0028 05D0 0029 005D;0;0;0 0 1 0 0;0 1 2 3 4 +0061 0028 05D0 0029 005D;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 05D0 005D;0;0;0 0 0 1 0;0 1 2 3 4 +0061 0028 0029 05D0 005D;1;1;2 1 1 1 1;4 3 2 1 0 +0061 0028 0029 005D 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0061 0028 0029 005D 05D0;1;1;2 1 1 1 1;4 3 2 1 0 +0028 0061 05D0 0029 005D;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0061 05D0 0029 005D;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 05D0 005D;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0061 0029 05D0 005D;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0061 0029 005D 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0061 0029 005D 05D0;1;1;1 2 1 1 1;4 3 2 1 0 +0028 0029 0061 05D0 005D;0;0;0 0 0 1 0;0 1 2 3 4 +0028 0029 0061 05D0 005D;1;1;1 1 2 1 1;4 3 2 1 0 +0028 0029 0061 005D 05D0;0;0;0 0 0 0 1;0 1 2 3 4 +0028 0029 0061 005D 05D0;1;1;1 1 2 1 1;4 3 2 1 0 + +# R, ON and ()] +05D0 2680 0028 0029 005D;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 2680 0028 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 2680 0029 005D;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 2680 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 2680 005D;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 2680 005D;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 005D 2680;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 005D 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 2680 0029 005D;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 2680 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 2680 005D;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 2680 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 005D 2680;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 005D 2680;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 2680 005D;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 2680 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 005D 2680;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 005D 2680;1;1;1 1 1 1 1;4 3 2 1 0 + +# R, L and ()] +05D0 0028 0061 0029 005D;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0061 0029 005D;1;1;1 1 2 1 1;4 3 2 1 0 +05D0 0028 0029 0061 005D;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 0061 005D;1;1;1 1 1 2 1;4 3 2 1 0 +05D0 0028 0029 005D 0061;0;0;1 0 0 0 0;0 1 2 3 4 +05D0 0028 0029 005D 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 05D0 0061 0029 005D;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0061 0029 005D;1;1;1 1 2 1 1;4 3 2 1 0 +0028 05D0 0029 0061 005D;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 0061 005D;1;1;1 1 1 2 1;4 3 2 1 0 +0028 05D0 0029 005D 0061;0;0;0 1 0 0 0;0 1 2 3 4 +0028 05D0 0029 005D 0061;1;1;1 1 1 1 2;4 3 2 1 0 +0028 0029 05D0 0061 005D;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 0061 005D;1;1;1 1 1 2 1;4 3 2 1 0 +0028 0029 05D0 005D 0061;0;0;0 0 1 0 0;0 1 2 3 4 +0028 0029 05D0 005D 0061;1;1;1 1 1 1 2;4 3 2 1 0 + +# R, R and ()] +05D0 0028 05D1 0029 005D;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 05D1 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 05D1 005D;0;0;1 1 1 1 0;3 2 1 0 4 +05D0 0028 0029 05D1 005D;1;1;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 005D 05D1;0;0;1 1 1 1 1;4 3 2 1 0 +05D0 0028 0029 005D 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 05D1 005D;0;0;0 1 0 1 0;0 1 2 3 4 +0028 05D0 0029 05D1 005D;1;1;1 1 1 1 1;4 3 2 1 0 +0028 05D0 0029 005D 05D1;0;0;0 1 0 0 1;0 1 2 3 4 +0028 05D0 0029 005D 05D1;1;1;1 1 1 1 1;4 3 2 1 0 +0028 0029 05D0 005D 05D1;0;0;0 0 1 1 1;0 1 4 3 2 +0028 0029 05D0 005D 05D1;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON, ON, ON and ()] +2680 0028 2681 0029 2682 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 2682 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 005D 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 005D 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 005D 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 005D 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, L and ()] +2680 0028 2681 0061 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 2681 0029 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 2681 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 2681 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 2681 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 2681 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 005D 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 005D 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 2681 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 2681 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 005D 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 005D 2681 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, ON, R and ()] +2680 0028 2681 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 2681 05D0 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 2681 0029 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 2681 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 2681 0029 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 2681 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 2681 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 2681 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 005D 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 005D 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 2681 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 2681 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 005D 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 005D 2681 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, L, ON and ()] +2680 0028 0061 2681 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 2681 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 2681 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 005D 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 2681 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 005D 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 2681 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 2681 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 2681 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 005D 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 2681 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 005D 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 2681 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 005D 2681;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, L, L and ()] +2680 0028 0061 0029 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 0062 005D;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +2680 0028 0061 0029 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0061 0029 005D 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +2680 0028 0029 0061 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0029 0061 005D 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 2680 0061 0029 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 0062 005D;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 2680 0061 0029 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0061 0029 005D 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 2680 0029 0061 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0029 0061 005D 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 0029 2680 0061 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 2680 0061 005D 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# ON, L, R and ()] +2680 0028 0061 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0061 05D0 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0061 0029 05D0 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0061 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0061 0029 005D 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +2680 0028 0029 0061 05D0 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 0029 0061 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +2680 0028 0029 0061 005D 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0061 05D0 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0061 0029 05D0 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0061 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0061 0029 005D 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 2680 0029 0061 05D0 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 0029 0061 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 2680 0029 0061 005D 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 2680 0061 05D0 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 2680 0061 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 2680 0061 005D 05D0;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# ON, R, ON and ()] +2680 0028 05D0 2681 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 2681 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 005D 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 005D 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 2681 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 005D 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 005D 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 005D 2681;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, R, L and ()] +2680 0028 05D0 0061 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 05D0 0029 005D 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +2680 0028 05D0 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +2680 0028 0029 05D0 005D 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +2680 0028 0029 05D0 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 05D0 0029 005D 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 2680 05D0 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 2680 0029 05D0 005D 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 2680 0029 05D0 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 2680 05D0 005D 0061;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 2680 05D0 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# ON, R, R and ()] +2680 0028 05D0 0029 05D1 005D;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +2680 0028 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 05D0 0029 005D 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +2680 0028 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +2680 0028 0029 05D0 005D 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +2680 0028 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005D;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 2680 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 05D0 0029 005D 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 2680 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0029 05D0 005D 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 2680 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 2680 05D0 005D 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0029 2680 05D0 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L, ON, ON and ()] +0061 2680 0028 2681 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 2681 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 2681 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 005D 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 2681 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 005D 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 005D 2681;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 2681 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 2681 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 005D 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 005D 2681;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 005D 2681;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 005D 2681;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, ON, L and ()] +0061 2680 0028 0062 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0062 0029 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 2680 0028 0029 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 0062 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 2680 0028 0029 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 2680 0028 0029 005D 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 2680 0062 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0062 0029 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0029 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 0062 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 2680 0029 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 2680 0029 005D 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 2680 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 0062 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0029 2680 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 2680 005D 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 005D 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 005D 2680 0062;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 2680 0062 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0062 0029 005D;1;1;1 2 2 2 1 1;5 4 1 2 3 0 +0028 0061 2680 0029 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 0062 005D;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 2680 0029 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 2680 0029 005D 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 2680 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 0062 005D;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 2680 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 2680 005D 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 005D 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 005D 2680 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 2680 0062 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 0062 005D;1;1;1 1 2 2 2 1;5 2 3 4 1 0 +0028 0029 0061 2680 005D 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 2680 005D 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 +0028 0029 0061 005D 2680 0062;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0029 0061 005D 2680 0062;1;1;1 1 2 2 2 2;2 3 4 5 1 0 + +# L, ON, R and ()] +0061 2680 0028 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 2680 0028 05D0 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 2680 0028 0029 05D0 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 2680 0028 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 2680 0028 0029 005D 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 2680 05D0 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 2680 0029 05D0 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 2680 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 2680 0029 005D 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 2680 05D0 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 2680 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 2680 005D 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 005D 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 005D 2680 05D0;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 2680 05D0 0029 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 2680 0029 05D0 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 2680 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 2680 0029 005D 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 2680 05D0 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 2680 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 2680 005D 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 005D 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 005D 2680 05D0;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0029 0061 2680 05D0 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 2680 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 2680 005D 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 005D 2680 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0029 0061 005D 2680 05D0;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, L, ON and ()] +0061 0028 0062 2680 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 2680 0029 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 2680 005D;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0062 0029 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 005D 2680;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 2680 005D;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 005D 2680;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0028 0061 0029 0062 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 2680 005D;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0062 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 005D 2680;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, L, L and ()] +0061 0028 0062 0029 0063 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 0063 005D;1;1;2 2 2 2 2 1;5 0 1 2 3 4 +0061 0028 0062 0029 005D 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0062 0029 005D 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0061 0028 0029 0062 005D 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0029 0062 005D 0063;1;1;2 2 2 2 2 2;0 1 2 3 4 5 +0028 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0029 0062 005D 0063;1;1;1 2 1 2 2 2;3 4 5 2 1 0 + +# L, L, R and ()] +0061 0028 0062 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0062 05D0 0029 005D;1;1;2 1 2 1 1 1;5 4 3 2 1 0 +0061 0028 0062 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0062 0029 05D0 005D;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0062 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0062 0029 005D 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0061 0028 0029 0062 05D0 005D;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0061 0028 0029 0062 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0061 0028 0029 0062 005D 05D0;1;1;2 2 2 2 1 1;5 4 0 1 2 3 +0028 0061 0029 0062 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0061 0029 0062 05D0 005D;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0061 0029 0062 005D 05D0;1;1;1 2 1 2 1 1;5 4 3 2 1 0 + +# L, R, ON and ()] +0061 0028 05D0 2680 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 2680 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 2680 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 005D 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 005D 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 2680 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 005D 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 005D 2680;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 2680 0029 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 2680 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 005D 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 005D 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 2680 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 005D 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 005D 2680;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 2680 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 005D 2680;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 005D 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# L, R, L and ()] +0061 0028 05D0 0062 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0062 0029 005D;1;1;2 1 1 2 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 0062 005D;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 05D0 0029 005D 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0061 0028 05D0 0029 005D 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 0062 005D;1;1;2 1 1 1 2 1;5 4 3 2 1 0 +0061 0028 0029 05D0 005D 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0061 0028 0029 05D0 005D 0062;1;1;2 1 1 1 1 2;5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0062 0029 005D;1;1;1 2 1 2 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 0062 005D;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 05D0 0029 005D 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0061 05D0 0029 005D 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 0062 005D;1;1;1 2 1 1 2 1;5 4 3 2 1 0 +0028 0061 0029 05D0 005D 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0061 0029 05D0 005D 0062;1;1;1 2 1 1 1 2;5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 0062 005D;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 0029 0061 05D0 005D 0062;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0029 0061 05D0 005D 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 + +# L, R, R and ()] +0061 0028 05D0 0029 05D1 005D;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0061 0028 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 05D0 0029 005D 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0061 0028 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0061 0028 0029 05D0 005D 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0061 0028 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005D;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0061 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 05D0 0029 005D 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0061 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0061 0029 05D0 005D 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0061 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0029 0061 05D0 005D 05D1;0;0;0 0 0 1 1 1;0 1 2 5 4 3 +0028 0029 0061 05D0 005D 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 + +# R, ON, ON and ()] +05D0 2680 0028 2681 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 2681 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 005D 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005D 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005D 2681;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 2681 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 005D 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 005D 2681;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 005D 2681;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 005D 2681;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, ON, L and ()] +05D0 2680 0028 0061 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 2680 0028 0029 005D 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 2680 0028 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005D 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 2680 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005D 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 2680 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 005D 2680 0061;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 005D 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 2680 0029 005D 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 2680 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 2680 005D 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 2680 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 005D 2680 0061;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 005D 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0029 05D0 2680 005D 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 2680 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 0029 05D0 005D 2680 0061;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 005D 2680 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, ON, R and ()] +05D0 2680 0028 05D1 0029 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 05D1 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 2680 0028 0029 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 005D 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 2680 0028 0029 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 05D1 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 2680 0029 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005D 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 2680 0029 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 0029 2680 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005D 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 2680 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005D 2680 05D1;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 005D 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005D;0;0;0 1 1 1 0 0;0 3 2 1 4 5 +0028 05D0 2680 05D1 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005D;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 2680 0029 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 2680 0029 005D 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 2680 0029 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005D;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 2680 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 2680 005D 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 2680 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 005D 2680 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 005D 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005D;0;0;0 0 1 1 1 0;0 1 4 3 2 5 +0028 0029 05D0 2680 05D1 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 2680 005D 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 2680 005D 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0029 05D0 005D 2680 05D1;0;0;0 0 1 1 1 1;0 1 5 4 3 2 +0028 0029 05D0 005D 2680 05D1;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, L, ON and ()] +05D0 0028 0061 2680 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 2680 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 2680 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 005D 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 005D 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 2680 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 005D 2680;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 005D 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 2680 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 2680 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 005D 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 005D 2680;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 2680 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 005D 2680;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 005D 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 2680 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 005D 2680;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 005D 2680;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, L, L and ()] +05D0 0028 0061 0029 0062 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 0062 005D;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +05D0 0028 0061 0029 005D 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0061 0029 005D 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 0061 005D 0062;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0029 0061 005D 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 05D0 0061 0029 0062 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 0062 005D;1;1;1 1 2 1 2 1;5 4 3 2 1 0 +0028 05D0 0061 0029 005D 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0061 0029 005D 0062;1;1;1 1 2 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 0061 005D 0062;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0029 0061 005D 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 +0028 0029 05D0 0061 005D 0062;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0029 05D0 0061 005D 0062;1;1;1 1 1 2 2 2;3 4 5 2 1 0 + +# R, L, R and ()] +05D0 0028 0061 05D1 0029 005D;0;0;1 0 0 1 0 0;0 1 2 3 4 5 +05D0 0028 0061 05D1 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005D;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0061 0029 05D1 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0061 0029 005D 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0061 0029 005D 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005D;0;0;1 0 0 0 1 0;0 1 2 3 4 5 +05D0 0028 0029 0061 05D1 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 0029 0061 005D 05D1;0;0;1 0 0 0 0 1;0 1 2 3 4 5 +05D0 0028 0029 0061 005D 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005D;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0061 05D1 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005D;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0061 0029 05D1 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0061 0029 005D 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0061 0029 005D 05D1;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005D;0;0;0 1 0 0 1 0;0 1 2 3 4 5 +0028 05D0 0029 0061 05D1 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 05D0 0029 0061 005D 05D1;0;0;0 1 0 0 0 1;0 1 2 3 4 5 +0028 05D0 0029 0061 005D 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005D;0;0;0 0 1 0 1 0;0 1 2 3 4 5 +0028 0029 05D0 0061 05D1 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0029 05D0 0061 005D 05D1;0;0;0 0 1 0 0 1;0 1 2 3 4 5 +0028 0029 05D0 0061 005D 05D1;1;1;1 1 1 2 1 1;5 4 3 2 1 0 + +# R, R, ON and ()] +05D0 0028 05D1 2680 0029 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 2680 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005D;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 005D 2680;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005D;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005D 2680;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005D;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 005D 2680;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# R, R, L and ()] +05D0 0028 05D1 0061 0029 005D;0;0;1 0 1 0 0 0;0 1 2 3 4 5 +05D0 0028 05D1 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005D;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 005D 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 05D1 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005D;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005D 0061;0;0;1 1 1 1 0 0;3 2 1 0 4 5 +05D0 0028 0029 05D1 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005D;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 005D 0061;0;0;0 1 0 1 0 0;0 1 2 3 4 5 +0028 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R, R, R and ()] +05D0 0028 05D1 0029 05D2 005D;0;0;1 1 1 1 1 0;4 3 2 1 0 5 +05D0 0028 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1;5 4 3 2 1 0 +05D0 0028 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0029 05D1 005D 05D2;0;0;0 1 0 1 1 1;0 1 2 5 4 3 +0028 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON, ON, ON and ()] +2680 0028 2681 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON, L and ()] +2680 0028 2681 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 005D 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, ON, R and ()] +2680 0028 2681 0029 2682 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, ON and ()] +2680 0028 2681 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 2682 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 2682 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 005D 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 2682 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 005D 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 2682 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 005D 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 2682 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 005D 2682;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, L, L and ()] +2680 0028 2681 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +2680 0028 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, ON, L, R and ()] +2680 0028 2681 0061 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 05D0 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0061 0029 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 0029 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 2681 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 2681 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, ON and ()] +2680 0028 2681 05D0 2682 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 2682 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005D 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 2682 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005D 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 2682 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005D 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 2682 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005D 2682;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, R, L and ()] +2680 0028 2681 05D0 0061 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, ON, R, R and ()] +2680 0028 2681 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 2681 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 2681 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 2681 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, ON and ()] +2680 0028 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 2682 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 005D 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 005D 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 2682 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 005D 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 005D 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 005D 2682;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, ON, L and ()] +2680 0028 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +2680 0028 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 005D 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 0062 005D;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +2680 0028 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +2680 0028 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 005D 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 2680 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 005D 2681 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 0062 005D;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 2680 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 2680 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 005D 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 0062 005D;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 2680 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 2680 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 005D 2681 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# ON, L, ON, R and ()] +2680 0028 0061 2681 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 05D0 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 2681 0029 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 2681 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 0061 005D 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 05D0 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 2681 0029 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 2681 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 0061 005D 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 2681 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 0061 005D 2681 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, L, ON and ()] +2680 0028 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 2681 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 005D 2681;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 2681 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 005D 2681;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, L, L and ()] +2680 0028 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 005D 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 005D 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# ON, L, L, R and ()] +2680 0028 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 05D0 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 0029 0062 005D 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 05D0 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 0029 0062 005D 05D0;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# ON, L, R, ON and ()] +2680 0028 0061 05D0 2681 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, L, R, L and ()] +2680 0028 0061 05D0 0062 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0062 0029 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0029 0061 05D0 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0062 0029 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0029 0061 05D0 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 2680 0061 05D0 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# ON, L, R, R and ()] +2680 0028 0061 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0061 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0061 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 0029 0061 05D0 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0061 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0061 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 0029 0061 05D0 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 0061 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 2680 0061 05D0 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, ON and ()] +2680 0028 05D0 2681 0029 2682 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005D 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005D 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 2682 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005D 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005D 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005D 2682;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, ON, L and ()] +2680 0028 05D0 2681 0061 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005D 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005D 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005D 2681 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, ON, R and ()] +2680 0028 05D0 2681 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +2680 0028 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 2681 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 2681 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 005D 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 05D1 005D;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +2680 0028 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 2681 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 005D 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +2680 0028 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 2680 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 2681 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 2681 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 005D 2681 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 05D1 005D;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 2680 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 2681 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 005D 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 2680 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 05D1 005D;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 2680 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 2681 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 005D 2681 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 2680 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, L, ON and ()] +2680 0028 05D0 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 2681 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 2681 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, L, L and ()] +2680 0028 05D0 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +2680 0028 0029 05D0 0061 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 05D0 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 2680 0029 05D0 0061 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 2680 05D0 0061 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# ON, R, L, R and ()] +2680 0028 05D0 0061 05D1 0029 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 05D1 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0061 0029 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0029 05D0 0061 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +2680 0028 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0029 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 05D1 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0061 0029 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0029 05D0 0061 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 2680 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 2680 05D0 0061 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 2680 05D0 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# ON, R, R, ON and ()] +2680 0028 05D0 0029 05D1 2681 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005D 2681;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 2681 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005D 2681;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, R, R, L and ()] +2680 0028 05D0 0029 05D1 0061 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 05D0 0029 05D1 005D 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 0061 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005D 0061;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R, R, R and ()] +2680 0028 05D0 0029 05D1 005D 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +2680 0028 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0029 05D1 005D 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 2680 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, ON and ()] +0061 2680 0028 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 2682 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 005D 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 005D 2682;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, ON, L and ()] +0061 2680 0028 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0062 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 0062 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 0062 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 0062 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 005D 2681 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 005D 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 005D 2681 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 005D 2681 0062;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, ON, ON, R and ()] +0061 2680 0028 2681 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 05D0 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 2681 0029 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 005D 2681 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 05D0 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 2681 005D 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 005D 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 005D 2681 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 005D 2681 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, L, ON and ()] +0061 2680 0028 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 2681 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 2681 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 005D 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 2681 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005D 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 2681 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 005D 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 2681 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005D 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 2681 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005D 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0029 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 2681 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 005D 2681;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 2681 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 005D 2681;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 2681 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 005D 2681;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 2681 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 005D 2681;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, L, L and ()] +0061 2680 0028 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 0063 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 2680 0028 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 0063 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 0063 005D;1;1;1 2 2 2 1 2 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 005D 0063;1;1;1 2 2 2 1 1 2;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 005D 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 005D 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 0061 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 005D 0063;1;1;1 1 2 2 2 2 2;2 3 4 5 6 1 0 + +# L, ON, L, R and ()] +0061 2680 0028 0062 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 05D0 0029 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0062 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0062 0029 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 2680 0028 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 0029 0062 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0029 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0062 0029 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 0029 0062 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 2680 0062 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0028 0061 2680 0062 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0029 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 05D0 005D;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0062 0029 005D 05D0;1;1;1 2 2 2 1 1 1;6 5 4 1 2 3 0 +0028 0061 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 05D0 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 0029 0062 005D 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 05D0 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 2680 0062 005D 05D0;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 0062 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 05D0 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0029 0061 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 2680 0062 005D 05D0;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 + +# L, ON, R, ON and ()] +0061 2680 0028 05D0 2681 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 2681 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 2681 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 2681 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 2681 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 2681 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 2681 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005D 2681;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON, R, L and ()] +0061 2680 0028 05D0 0062 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0062 0029 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0062 0029 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 2680 05D0 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0062 0029 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0029 05D0 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 2680 05D0 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 0062 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005D 0062;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 0061 2680 05D0 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, ON, R, R and ()] +0061 2680 0028 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 2680 0028 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 2680 0028 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 2680 0028 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 2680 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 2680 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0029 2680 05D0 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 2680 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 2680 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 0029 2680 05D0 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 2680 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 0061 2680 05D0 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, ON and ()] +0061 0028 0062 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 2681 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 005D 2681;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 005D 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 005D 2681;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 005D 2681;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, ON, L and ()] +0061 0028 0062 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0063 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 0063 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 0063 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0062 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0062 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 005D 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 0063 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 005D 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 005D 2680 0063;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 0063 005D;1;1;1 2 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0061 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 005D 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0061 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 005D 2680 0063;1;1;1 2 1 2 2 2 2;3 4 5 6 2 1 0 + +# L, L, ON, R and ()] +0061 0028 0062 2680 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 05D0 0029 005D;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 2680 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 2680 0029 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 05D0 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 2680 005D 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 005D 2680 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 05D0 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 2680 005D 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 0062 005D 2680 05D0;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 05D0 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 2680 005D 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 0062 005D 2680 05D0;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, L, ON and ()] +0061 0028 0062 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 2680 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 005D 2680;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 + +# L, L, L, L and ()] +0061 0028 0062 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 005D 0064;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 + +# L, L, L, R and ()] +0061 0028 0062 0029 0063 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 05D0 005D;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0062 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 0029 0063 005D 05D0;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 + +# L, L, R, ON and ()] +0061 0028 0062 05D0 2680 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 2680 0029 005D;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 2680 005D;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 005D 2680;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 2680 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 005D 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 2680 005D;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 005D 2680;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 2680 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 005D 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, L, R, L and ()] +0061 0028 0062 05D0 0063 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0063 0029 005D;1;1;2 1 2 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 0063 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 0063 005D;1;1;2 1 2 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005D 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 005D 0063;1;1;2 1 2 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 0063 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 0063 005D;1;1;2 2 2 2 1 2 1;6 5 4 0 1 2 3 +0061 0028 0062 0029 05D0 005D 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0029 05D0 005D 0063;1;1;2 2 2 2 1 1 2;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 0063 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 0063 005D;1;1;2 2 2 2 1 2 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005D 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0029 0062 05D0 005D 0063;1;1;2 2 2 2 1 1 2;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 0063 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 0063 005D;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 0062 05D0 005D 0063;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0029 0062 05D0 005D 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 + +# L, L, R, R and ()] +0061 0028 0062 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 05D1 005D;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0062 05D0 0029 005D 05D1;1;1;2 1 2 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0062 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0062 0029 05D0 005D 05D1;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0061 0028 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 0029 0062 05D0 005D 05D1;1;1;2 2 2 2 1 1 1;6 5 4 0 1 2 3 +0028 0061 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 0029 0062 05D0 005D 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, ON and ()] +0061 0028 05D0 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 2681 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 005D 2681;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 2681 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 005D 2681;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005D 2681;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, ON, L and ()] +0061 0028 05D0 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0062 0029 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005D 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 2680 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005D 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 005D 2680 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0062 0029 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005D 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 2680 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005D 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 005D 2680 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 0062 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005D 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 2680 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005D 2680 0062;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 005D 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, ON, R and ()] +0061 0028 05D0 2680 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0061 0028 05D0 2680 05D1 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 2680 0029 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 2680 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 005D 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 05D1 005D;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0061 0028 0029 05D0 2680 05D1 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 2680 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 2680 005D 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 005D 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0061 0028 0029 05D0 005D 2680 05D1;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0061 05D0 2680 05D1 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 05D1 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 2680 0029 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 05D1 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 2680 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 005D 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 05D1 005D;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0061 0029 05D0 2680 05D1 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 2680 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 2680 005D 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 005D 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0061 0029 05D0 005D 2680 05D1;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 05D1 005D;0;0;0 0 0 1 1 1 0;0 1 2 5 4 3 6 +0028 0029 0061 05D0 2680 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 2680 005D 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 2680 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 005D 2680 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0029 0061 05D0 005D 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, L, ON and ()] +0061 0028 05D0 0062 2680 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 2680 0029 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 2680 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 005D 2680;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 2680 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 005D 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 2680 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 005D 2680;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 2680 0029 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 2680 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 005D 2680;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 2680 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 005D 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 2680 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 005D 2680;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 2680 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 005D 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, L, L and ()] +0061 0028 05D0 0062 0029 0063 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 0063 005D;1;1;2 1 1 2 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005D 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 005D 0063;1;1;2 1 1 2 1 1 2;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 005D 0063;1;1;2 1 1 1 2 2 2;4 5 6 3 2 1 0 +0061 0028 0029 05D0 0062 005D 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 005D 0063;1;1;2 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 05D0 0062 0029 0063 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 0063 005D;1;1;1 2 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005D 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 005D 0063;1;1;1 2 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 005D 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0061 0029 05D0 0062 005D 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 005D 0063;1;1;1 2 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 0061 05D0 0062 005D 0063;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 005D 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# L, R, L, R and ()] +0061 0028 05D0 0062 05D1 0029 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 05D1 0029 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 05D1 005D;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0062 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0062 0029 005D 05D1;1;1;2 1 1 2 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 05D1 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 05D0 0029 0062 005D 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 05D1 005D;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0061 0028 0029 05D0 0062 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0061 0028 0029 05D0 0062 005D 05D1;1;1;2 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0029 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 05D1 0029 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 05D1 005D;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0062 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0062 0029 005D 05D1;1;1;1 2 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 05D1 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 05D0 0029 0062 005D 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 05D1 005D;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0061 0029 05D0 0062 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0061 0029 05D0 0062 005D 05D1;1;1;1 2 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 05D1 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 0061 05D0 0062 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0029 0061 05D0 0062 005D 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# L, R, R, ON and ()] +0061 0028 05D0 0029 05D1 2680 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 2680 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005D 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 005D 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 2680 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 2680 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005D 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 005D 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, R, R, L and ()] +0061 0028 05D0 0029 05D1 0062 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 0062 005D;1;1;2 1 1 1 1 2 1;6 5 4 3 2 1 0 +0061 0028 05D0 0029 05D1 005D 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0029 05D1 005D 0062;1;1;2 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 0062 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 0062 005D;1;1;1 2 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005D 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0029 05D1 005D 0062;1;1;1 2 1 1 1 1 2;6 5 4 3 2 1 0 + +# L, R, R, R and ()] +0061 0028 05D0 0029 05D1 005D 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0061 0028 05D0 0029 05D1 005D 05D2;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0029 05D1 005D 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 0061 05D0 0029 05D1 005D 05D2;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, ON and ()] +05D0 2680 0028 2681 0029 2682 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005D 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005D 2682;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, ON, L and ()] +05D0 2680 0028 2681 0061 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 2681 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005D 2681 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 0061 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005D 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005D 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005D 2681 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005D 2681 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 005D 2681 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, ON, R and ()] +05D0 2680 0028 2681 05D1 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 05D1 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005D 2681 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 2681 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 005D 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 005D 2681 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 005D 2681 05D1;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, L, ON and ()] +05D0 2680 0028 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 2681 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 2681 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 2681 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 2681 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 2681 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 2681 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 2681 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 2681 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 2681 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 005D 2681;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, L, L and ()] +05D0 2680 0028 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 2680 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 0029 2680 0061 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 2680 0061 0029 0062 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0029 2680 0061 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 0029 05D0 2680 0061 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, ON, L, R and ()] +05D0 2680 0028 0061 05D1 0029 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 05D1 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0061 0029 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 2680 0028 0029 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0029 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 05D1 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0061 0029 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 2680 0029 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 0061 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 2680 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0029 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 05D1 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0061 0029 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0061 0029 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 0061 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 2680 0029 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 0061 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 2680 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 05D1 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 0061 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 2680 0061 005D 05D1;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON, R, ON and ()] +05D0 2680 0028 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 2681 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005D 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 2681 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005D 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 2681 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005D 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 2681 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005D 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 2681 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005D 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0029 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 2681 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005D 2681;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 2681 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005D 2681;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 2681 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005D 2681;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 2681 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005D 2681;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, ON, R, L and ()] +05D0 2680 0028 05D1 0061 0029 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 05D1 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 2680 0028 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0029 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 05D1 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0029 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 0061 005D;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005D 0061;0;0;0 1 1 1 0 0 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 0061 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005D 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 0061 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005D 0061;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 0061 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005D 0061;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0029 05D0 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, ON, R, R and ()] +05D0 2680 0028 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 2680 0028 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 2680 0028 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 05D2 005D;0;0;0 1 1 1 0 1 0;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0029 005D 05D2;0;0;0 1 1 1 0 0 1;0 3 2 1 4 5 6 +0028 05D0 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0029 05D1 005D 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 2680 05D1 005D 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 2680 05D1 005D 05D2;0;0;0 0 1 1 1 1 1;0 1 6 5 4 3 2 +0028 0029 05D0 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, ON and ()] +05D0 0028 0061 2680 0029 2681 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005D 2681;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 2681 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005D 2681;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005D 2681;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 005D 2681;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, ON, L and ()] +05D0 0028 0061 2680 0062 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +05D0 0028 0061 2680 0029 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005D 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005D 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 0062 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 0062 005D;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +05D0 0028 0029 0061 2680 005D 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +05D0 0028 0029 0061 005D 2680 0062;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005D 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0061 2680 0062 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 05D0 0061 2680 0029 0062 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 0062 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005D 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005D 2680 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 0062 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 0062 005D;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 05D0 0029 0061 2680 005D 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 05D0 0029 0061 005D 2680 0062;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005D 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 2680 0062 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 0062 005D;1;1;1 1 1 2 2 2 1;6 3 4 5 2 1 0 +0028 0029 05D0 0061 2680 005D 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 005D 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0029 05D0 0061 005D 2680 0062;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005D 2680 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 + +# R, L, ON, R and ()] +05D0 0028 0061 2680 05D1 0029 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 2680 0029 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 2680 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 005D 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 2680 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 2680 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 005D 2680 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0029 0061 005D 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0029 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 2680 0029 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 2680 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 005D 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 2680 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 2680 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 005D 2680 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 0061 005D 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 05D1 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 2680 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 2680 005D 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 005D 2680 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0029 05D0 0061 005D 2680 05D1;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, L, ON and ()] +05D0 0028 0061 0029 0062 2680 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 2680 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 005D 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 005D 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 2680 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 2680 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005D 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 005D 2680;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, L, L and ()] +05D0 0028 0061 0029 0062 005D 0063;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 005D 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0061 0029 0062 005D 0063;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 005D 0063;1;1;1 1 2 1 2 2 2;4 5 6 3 2 1 0 + +# R, L, L, R and ()] +05D0 0028 0061 0029 0062 05D1 005D;0;0;1 0 0 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 05D1 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 0062 005D 05D1;0;0;1 0 0 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 0029 0062 005D 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 05D1 005D;0;0;0 1 0 0 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 05D1 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 0062 005D 05D1;0;0;0 1 0 0 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 0029 0062 005D 05D1;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 + +# R, L, R, ON and ()] +05D0 0028 0061 05D1 2680 0029 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 2680 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 2680 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005D 2680;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 2680 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005D 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 2680 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005D 2680;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0029 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 2680 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 2680 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005D 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 2680 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005D 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 2680 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005D 2680;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 2680 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005D 2680;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, L, R, L and ()] +05D0 0028 0061 05D1 0062 0029 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0062 0029 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 0062 005D;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005D 0062;0;0;1 0 0 1 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 0062 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005D 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 0062 005D;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005D 0062;0;0;1 0 0 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 0029 0061 05D1 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0029 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0062 0029 005D;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 0062 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005D 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 0062 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005D 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 0062 005D;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005D 0062;0;0;0 1 0 0 1 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 0061 05D1 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 0062 005D;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005D 0062;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0029 05D0 0061 05D1 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 + +# R, L, R, R and ()] +05D0 0028 0061 05D1 0029 05D2 005D;0;0;1 0 0 1 0 1 0;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 05D2 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0029 005D 05D2;0;0;1 0 0 1 0 0 1;0 1 2 3 4 5 6 +05D0 0028 0061 05D1 0029 005D 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0061 0029 05D1 005D 05D2;0;0;1 0 0 0 1 1 1;0 1 2 3 6 5 4 +05D0 0028 0061 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 0061 05D1 005D 05D2;0;0;1 0 0 0 1 1 1;0 1 2 3 6 5 4 +05D0 0028 0029 0061 05D1 005D 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 05D2 005D;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 05D2 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0029 005D 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0061 05D1 0029 005D 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0061 0029 05D1 005D 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0061 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 0061 05D1 005D 05D2;0;0;0 1 0 0 1 1 1;0 1 2 3 6 5 4 +0028 05D0 0029 0061 05D1 005D 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0029 05D0 0061 05D1 005D 05D2;0;0;0 0 1 0 1 1 1;0 1 2 3 6 5 4 +0028 0029 05D0 0061 05D1 005D 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, ON and ()] +05D0 0028 05D1 2680 0029 2681 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005D 2681;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005D 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005D 2681;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005D 2681;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, ON, L and ()] +05D0 0028 05D1 2680 0061 0029 005D;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 2680 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 2680 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 0061 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005D 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005D 2680 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 0061 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005D 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005D 2680 0061;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 0061 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005D 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005D 2680 0061;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, ON, R and ()] +05D0 0028 05D1 2680 05D2 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 05D2 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 05D2 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 05D1 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005D 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 05D2 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005D 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005D 2680 05D2;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 05D2 005D;0;0;0 1 0 1 1 1 0;0 1 2 5 4 3 6 +0028 05D0 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 2680 005D 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 005D 2680 05D2;0;0;0 1 0 1 1 1 1;0 1 2 6 5 4 3 +0028 05D0 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, L, ON and ()] +05D0 0028 05D1 0061 2680 0029 005D;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 2680 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 2680 005D;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005D 2680;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 2680 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005D 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 2680 005D;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005D 2680;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 2680 005D;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005D 2680;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, L, L and ()] +05D0 0028 05D1 0061 0029 0062 005D;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005D 0062;0;0;1 0 1 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005D 0062;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +05D0 0028 0029 05D1 0061 005D 0062;0;0;1 1 1 1 0 0 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 +0028 05D0 0029 05D1 0061 005D 0062;0;0;0 1 0 1 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# R, R, L, R and ()] +05D0 0028 05D1 0061 05D2 0029 005D;0;0;1 0 1 0 1 0 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 05D2 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 05D2 005D;0;0;1 0 1 0 0 1 0;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 05D2 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0029 005D 05D2;0;0;1 0 1 0 0 0 1;0 1 2 3 4 5 6 +05D0 0028 05D1 0061 0029 005D 05D2;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 05D2 005D;0;0;1 1 1 1 0 1 0;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 05D2 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 0061 005D 05D2;0;0;1 1 1 1 0 0 1;3 2 1 0 4 5 6 +05D0 0028 05D1 0029 0061 005D 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 05D2 005D;0;0;1 1 1 1 0 1 0;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0029 05D1 0061 005D 05D2;0;0;1 1 1 1 0 0 1;3 2 1 0 4 5 6 +05D0 0028 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 05D2 005D;0;0;0 1 0 1 0 1 0;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0029 05D1 0061 005D 05D2;0;0;0 1 0 1 0 0 1;0 1 2 3 4 5 6 +0028 05D0 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, R, R, ON and ()] +05D0 0028 05D1 0029 05D2 2680 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005D 2680;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, R, R, L and ()] +05D0 0028 05D1 0029 05D2 0061 005D;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005D 0061;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 05D1 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R, R, R and ()] +05D0 0028 05D1 0029 05D2 005D 05D3;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 05D1 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# (()() +0028 0028 0029 0028 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 0029 0028 0029;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON and (()() +2680 0028 0028 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 2680 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 2680 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 0028 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0028 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 0028 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0028 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L and (()() +0061 0028 0028 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 0029 0028 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 0029 0028 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 0029 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 0029 0028 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 0029 0061 0028 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0061 0028 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 0029 0028 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0028 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 0029 0028 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R and (()() +05D0 0028 0028 0029 0028 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 0029 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 0029 05D0 0028 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 0029 0028 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 0029 0028 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON and (()() +2680 0028 2681 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L and (()() +2680 0028 0061 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 0028 0029 2680 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R and (()() +2680 0028 05D0 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 05D0 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 0029 0028 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 0029 0028 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 05D0 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 0029 0028 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 0029 0028 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 05D0 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 0029 0028 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 0029 0028 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 05D0 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0029 2680 0028 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 2680 0028 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 2680 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 0028 2680 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 0028 0029 2680 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON and (()() +0061 2680 0028 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 2680 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0028 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0028 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 0029 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 0029 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 2680 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0028 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0028 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 2680 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 0028 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 0028 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# L, L and (()() +0061 0028 0062 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 0028 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 0028 0029;1;1;2 2 2 2 2 1 1;6 5 0 1 2 3 4 +0061 0028 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 0029 0028 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0062 0028 0029;1;1;1 2 2 2 2 1 1;6 5 1 2 3 4 0 +0028 0061 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0028 0062 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0028 0029 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0028 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0062 0028 0029;1;1;1 1 2 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0028 0062 0029;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0028 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 0028 0062 0029;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0028 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 0028 0029 0062;1;1;1 1 1 2 2 2 2;3 4 5 6 2 1 0 +0028 0028 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# L, R and (()() +0061 0028 05D0 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 0029 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 0029 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 05D0 0028 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 0029 0028 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 0029 0028 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 05D0 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0029 0061 0028 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 0061 0028 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0029 0028 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON and (()() +05D0 2680 0028 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 2680 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0028 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0028 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 2680 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0028 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0028 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 2680 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0028 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0028 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 2680 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0028 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0028 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 05D0 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 05D0 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L and (()() +05D0 0028 0061 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 0029 0028 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0061 0028 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R and (()() +05D0 0028 05D1 0028 0029 0028 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0029;0;0;1 1 1 1 1 0 0;4 3 2 1 0 5 6 +05D0 0028 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0029;0;0;0 1 1 1 1 0 0;0 4 3 2 1 5 6 +0028 05D0 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0029 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0029;0;0;0 0 1 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0029;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0028 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 1 1 1 1;0 1 2 6 5 4 3 +0028 0028 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON and (()() +2680 0028 2681 0028 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L and (()() +2680 0028 2681 0061 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, R and (()() +2680 0028 2681 05D0 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0029 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0029 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 2681 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 2681 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 2681 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0029 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 2681 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 2681 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 2681 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 2681 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 2681 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 2681 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 2681 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 2681 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON and (()() +2680 0028 0061 2681 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 2681 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 0028 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 0028 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L and (()() +2680 0028 0061 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 0029 0028 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0062 0028 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +2680 0028 0061 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +2680 0028 0028 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0028 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +2680 0028 0028 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 0029 0028 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0062 0028 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 2680 0061 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 2680 0028 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0028 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 2680 0028 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 2680 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 2680 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 0029 2680 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 0029 2680 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, L, R and (()() +2680 0028 0061 05D0 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 0029 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0061 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 0029 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0061 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 0029 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0061 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0061 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON and (()() +2680 0028 05D0 2681 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L and (()() +2680 0028 05D0 0061 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, R and (()() +2680 0028 05D0 0028 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +2680 0028 05D0 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0028 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +2680 0028 0028 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 2680 05D0 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0028 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 2680 0028 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 2680 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 2680 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 0029 2680 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 0029 2680 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 2680 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON and (()() +0061 2680 0028 2681 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0028 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0028 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, L and (()() +0061 2680 0028 0062 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 0029 0028 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0062 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 0029 0028 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0062 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0062 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 0029 2680 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0028 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0028 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0029 2680 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 0029 0028 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 0029 0028 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0062 0028 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0028 0062 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 2680 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0028 0029 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 0029 0028 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0062 0028 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0028 0062 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0028 0029 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 2680 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0062 0028 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0028 0062 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 2680 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0028 0029 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0028 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 2680 0062 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0028 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 2680 0029 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0028 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 0029 2680 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0028 0061 2680 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 0029 0028 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 2680 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0062 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0062 0028 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0028 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0028 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0028 0029 0061 2680 0028 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0028 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0028 0029 0061 0028 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 2680 0062 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0028 0029 0061 0028 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 2680 0029 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0028 0029 0061 0028 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 0029 2680 0062;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0028 0029 0028 0061 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0028 0029 0028 0061 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, R and (()() +0061 2680 0028 05D0 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0029 2680 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 05D0 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0028 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0029 0028 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 05D0 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0028 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0029 0028 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 05D0 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0028 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 2680 0028 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 2680 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 2680 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 0029 2680 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 2680 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 2680 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 2680 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 0029 2680 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 2680 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 2680 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 2680 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 0029 2680 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 2680 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 2680 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 0029 2680 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON and (()() +0061 0028 0062 2680 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 0029 0028 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 0029 0028 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 2680 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 2680 0028 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0028 2680 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0028 0029 2680;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 2680 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 2680 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0028 2680 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0028 0029 2680;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 2680 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 2680 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 2680 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 0029 2680;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0028 0062 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0062 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0062 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0062 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0029 0028 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 2680 0028 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0028 2680 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0028 0029 2680;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 2680 0028 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 0028 2680 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 0028 0029 2680;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0028 0062 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 0062 2680 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0028 0062 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 0062 0029 2680;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0028 0061 0029 0062 2680 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 2680 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 0028 2680 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 0028 0029 2680;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 0062 2680 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 0062 0029 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 0062 2680 0029;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 +0028 0028 0029 0061 0028 0062 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 0062 0029 2680;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# L, L, L and (()() +0061 0028 0062 0028 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 0029 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0063 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 0028 0029;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 0028 0029;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0028 0063 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0028 0029 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 0028 0063 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 0028 0029 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 0062 0029 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0028 0061 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 0028 0063 0029;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 0061 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 0028 0029 0063;1;1;1 1 2 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 0061 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 0062 0029 0063;1;1;1 1 2 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 0062 0029 0063;1;1;1 1 1 2 2 2 2 2;3 4 5 6 7 2 1 0 + +# L, L, R and (()() +0061 0028 0062 05D0 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 0029 0028 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 0029 0028 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 05D0 0028 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0028 05D0 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0029 0028 0029 05D0;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 0029 0028 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1;7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 0029 0028 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 05D0 0028 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0028 05D0 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0028 0029 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 05D0 0028 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 0028 05D0 0029;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0062 0028 0029 05D0;1;1;1 2 2 2 2 1 1 1;7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 0062 05D0 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 0062 0029 05D0;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0028 0061 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 05D0 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 0028 05D0 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0062 0028 0029 05D0;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 0062 05D0 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 0062 0029 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 0062 0029 05D0;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 + +# L, R, ON and (()() +0061 0028 05D0 2680 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 2680 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0028 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0028 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 2680 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0028 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0028 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 2680 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0028 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0028 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 05D0 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 05D0 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 2680 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0028 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0028 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 2680 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0028 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0028 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 2680 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0028 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0028 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 05D0 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 05D0 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 2680 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0028 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0028 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 05D0 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 05D0 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 2680 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0028 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0028 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 05D0 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 05D0 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 05D0 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 05D0 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, L and (()() +0061 0028 05D0 0062 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 0029 0028 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 0029 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 0029 0028 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0062 0028 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0028 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 0029 0028 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 0029 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 0029 0028 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0062 0028 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0028 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 0029 0028 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0062 0028 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0028 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0028 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 05D0 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, R and (()() +0061 0028 05D0 0028 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 05D1 0029 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0061 0028 05D0 0028 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0028 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0061 0028 0028 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 05D1 0029 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0061 05D0 0028 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0028 0029 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0061 0028 0029 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0029 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 0061 0029 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 0061 0029 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 0029 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 0029 0061 05D0 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 0029 0061 05D0 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0061 0028 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON and (()() +05D0 2680 0028 2681 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L and (()() +05D0 2680 0028 0061 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0029 2680 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0029 2680 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0029 2680 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0029 2680 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0029 2680 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, R and (()() +05D0 2680 0028 05D1 0028 0029 0028 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 2680 0028 05D1 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 2680 0028 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 2680 05D1 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 2680 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 2680 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 2680 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 0029 2680 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0029 2680 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0028 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0028 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0028 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 2680 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 05D1 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0029 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0028 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0028 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 2680 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 05D1 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0029 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0028 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 0029 2680 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 05D1 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0029 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 05D1 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0029 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0029 2680 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0028 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 2680 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0028 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 0029 05D0 2680 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0028 0029 05D0 2680 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0028 0029 05D0 2680 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 05D1 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0028 0029 05D0 0028 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0029 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0028 0029 05D0 0028 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0029 2680 05D1;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0028 0029 05D0 0028 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0028 0029 0028 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON and (()() +05D0 0028 0061 2680 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 2680 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0028 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0028 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 2680 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 0028 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 0028 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 2680 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0028 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0028 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 2680 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 0028 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 0028 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 2680 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0028 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0028 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 2680 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 0028 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 0028 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0028 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 2680 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 0028 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 0028 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, L and (()() +05D0 0028 0061 0028 0062 0029 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 0029 0028 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0062 0028 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +05D0 0028 0028 0061 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +05D0 0028 0028 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 0029 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 0029 0028 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0062 0028 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 05D0 0028 0061 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 05D0 0028 0029 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0062 0028 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0028 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 05D0 0029 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 0028 0062 0029;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 0028 0029 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 0029 05D0 0028 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, L, R and (()() +05D0 0028 0061 05D1 0028 0029 0028 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0028 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0028 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0028 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0028 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0028 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0028 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0028 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0061 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON and (()() +05D0 0028 05D1 2680 0028 0029 0028 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 2680 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 2680 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0029 2680 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 2680 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0028 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0029 2680;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0028 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 05D1 2680 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 05D1 0029 2680 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 2680 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 05D1 0029 0028 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0029 2680;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 05D1 0029 0028 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 0029 05D1 2680 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 2680 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 0029 05D1 0028 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0029 2680;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 0029 05D1 0028 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 0029 0028 05D1 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0028 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 2680 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0028 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 2680 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 2680 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0028 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0029 2680;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0028 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0028 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 2680 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 2680 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0028 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0029 2680;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0028 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 2680 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 05D1 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0029 2680;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 0029 0028 05D1 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 2680 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 2680 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0028 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0029 2680;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0028 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 2680 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 05D1 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0029 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 05D1 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 2680 0029;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0028 0029 05D0 0028 05D1 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0029 2680;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0028 0029 05D0 0028 05D1 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, L and (()() +05D0 0028 05D1 0061 0028 0029 0028 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0061 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0028 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0028 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0061 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0029 0061;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0028 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0028 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0061 0029;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0029 0061;0;0;1 1 1 1 1 0 0 0;4 3 2 1 0 5 6 7 +05D0 0028 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0028 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0028 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0061 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0029 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0028 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0061 0029;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0029 0061;0;0;0 1 1 1 1 0 0 0;0 4 3 2 1 5 6 7 +0028 05D0 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0061 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0029 0061;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0028 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0061 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0029 0061;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0061 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0029 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0029 0061;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0028 0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, R and (()() +05D0 0028 05D1 0028 05D2 0029 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 0028 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 05D1 0028 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0028 0029;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 05D0 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 1 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 05D0 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1;0 1 2 7 6 5 4 3 +0028 0028 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, ON, ON and (()() +2680 0028 2681 0028 2682 0029 2683 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 2683 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0028 2683 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 0028 2683 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0028 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 0028 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0028 2683 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 2682 0028 2683 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0028 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 2682 0028 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0028 2683 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 2682 0028 2683 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0028 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 2682 0028 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0028 2683 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 2682 0028 2683 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0028 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 2682 0028 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, ON, L and (()() +2680 0028 2681 0028 2682 0061 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0061 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0028 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0028 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0061 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 2682 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0028 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 2682 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0028 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 2682 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0061 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 2682 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0028 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 2682 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0028 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 2682 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0061 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 2682 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0028 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 2682 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0028 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 2682 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, ON, ON, R and (()() +2680 0028 2681 0028 2682 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 05D0 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0029 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 2682 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 2682 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 2682 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 2682 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 2682 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 2682 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 2682 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 2682 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 2682 05D0 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 2682 0028 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 2682 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 2682 0028 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, L, ON and (()() +2680 0028 2681 0061 2682 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 2682 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 2682 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 2682 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 0028 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 0028 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 2682 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 2682 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 0028 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 0028 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0061 2682 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0061 0028 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0061 0028 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 2682 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 2682 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 0028 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 0028 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0061 2682 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0061 0028 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0061 0028 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0061 2682 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0061 0028 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0061 0028 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 2682 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 2682 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 0028 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 0028 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0061 2682 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0061 0028 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0061 0028 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0061 2682 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0061 0028 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0061 0028 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0061 2682 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0061 0028 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0061 0028 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, L, L and (()() +2680 0028 2681 0061 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0062 0029 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 2681 0061 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 0062 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 2681 0061 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 0028 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 2681 0061 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 0028 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 2681 0028 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# ON, ON, L, R and (()() +2680 0028 2681 0061 05D0 0028 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 05D0 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 05D0 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0029 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 05D0 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 0029 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0061 05D0 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0061 0028 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0061 0028 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 05D0 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 0029 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0061 05D0 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0061 0028 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0061 0028 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0061 05D0 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0061 0028 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0061 0028 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 05D0 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 0029 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0061 05D0 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0061 0028 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0061 0028 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0061 05D0 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0061 0028 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0061 0028 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0061 05D0 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0061 0028 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0061 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0061 0028 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, ON and (()() +2680 0028 2681 05D0 2682 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 2682 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 2682 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 2682 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0028 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0028 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 2682 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 2682 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0028 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0028 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 2682 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0028 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0028 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 2682 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 2682 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0028 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0028 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 2682 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0028 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0028 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 2682 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0028 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0028 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 2682 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 2682 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0028 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0028 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 2682 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0028 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0028 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 2682 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0028 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0028 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 2682 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 05D0 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0028 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 05D0 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0028 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 05D0 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, L and (()() +2680 0028 2681 05D0 0061 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0061 0028 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0061 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0061 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0028 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0028 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0061 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0061 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0028 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0028 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0061 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 05D0 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0028 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0028 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0061 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0061 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0028 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0028 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0061 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 05D0 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0028 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0028 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0061 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 05D0 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0028 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0028 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0061 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0061 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0028 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0028 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0061 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 05D0 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0028 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0028 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0061 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 05D0 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0028 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0028 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0061 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 05D0 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0028 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 05D0 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0028 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 05D0 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, R and (()() +2680 0028 2681 05D0 0028 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 2681 05D0 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 05D1 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 2681 05D0 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 2681 05D0 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0029 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 2681 05D0 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 2681 0028 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 2681 0028 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 2681 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 2681 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 0029 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 0029 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 2681 0029 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 2681 0029 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0029 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 0029 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 0029 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 0029 2681 05D0 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 0029 2681 05D0 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 2681 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 2681 0028 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 2681 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, ON, ON and (()() +2680 0028 0061 2681 0028 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 2682 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 2682 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 0028 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 0028 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 2682 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 0028 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 0028 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 2682 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 0028 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 0028 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 2681 0028 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 2681 0028 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 2681 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 2681 0028 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 2681 0028 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 2681 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 2682 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 2682 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 0028 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 0028 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 2682 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 0028 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 0028 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 2682 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 0028 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 0028 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 2681 0028 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 2681 0028 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 2681 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 2681 0028 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 2681 0028 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 2681 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 2682 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 0028 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 0028 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 2681 0028 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 2681 0028 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 2681 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 2681 0028 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 2681 0028 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 2681 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 2681 0028 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 2681 0028 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 2681 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, ON, L and (()() +2680 0028 0061 2681 0062 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0062 0028 0029 0028 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +2680 0028 0061 2681 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0062 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 2681 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 2681 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 2681 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0062 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 2681 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0028 0061 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0062 0029 0028 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 2681 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 2681 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 2681 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 2681 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 2681 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 0029 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 2681 0062 0028 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +2680 0028 0028 0029 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 2681 0028 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +2680 0028 0028 0029 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 2681 0028 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +2680 0028 0028 0029 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 2681 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +2680 0028 0028 0029 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 2681 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +2680 0028 0028 0029 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 0029 2681 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +2680 0028 0028 0029 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0062 0028 0029 0028 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 2680 0061 2681 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0062 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 2681 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 2681 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 2681 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0062 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 2681 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 2681 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 2681 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 2681 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 2681 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 0029 2681 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0028 0061 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0062 0029 0028 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 2681 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 2681 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 2681 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 2681 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 2681 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 0029 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 2681 0062 0028 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 2680 0028 0029 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 2681 0028 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 2680 0028 0029 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 2681 0028 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 2680 0028 0029 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 2681 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 2680 0028 0029 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 2681 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 2680 0028 0029 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 0029 2681 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 2680 0028 0029 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0062 0029 0028 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 2681 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 2681 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 2681 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 2681 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 2681 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 0029 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 2681 0062 0028 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 2680 0029 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 2681 0028 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 2680 0029 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 2681 0028 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 2680 0029 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 2681 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 2680 0029 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 2681 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 2680 0029 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 0029 2681 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 2680 0029 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 2681 0062 0028 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 0029 2680 0061 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 2681 0028 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 2680 0061 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 2681 0028 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 2680 0061 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 2681 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 2680 0061 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 2681 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 2680 0061 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 0029 2681 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 2680 0028 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, L, ON, R and (()() +2680 0028 0061 2681 05D0 0028 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 05D0 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 05D0 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0029 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 2681 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 2681 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 2681 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 2681 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 2681 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 2681 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0028 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 05D0 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 05D0 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0029 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 05D0 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0029 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 2681 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 2681 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 2681 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 2681 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 2681 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 2681 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 05D0 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0029 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 2681 05D0 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 2681 0028 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 2681 0028 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 2681 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 2681 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 2681 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 2681 05D0 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 2681 0028 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 2681 0028 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, L, ON and (()() +2680 0028 0061 0028 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 2681 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 2681 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 0028 2681 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 0028 0029 2681;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0062 2681 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0062 0028 2681 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0062 0028 0029 2681;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 0062 0029 2681;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0028 0061 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0062 2681 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0062 0028 2681 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0062 0028 0029 2681;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 0062 2681 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 0062 0029 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 0062 2681 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +2680 0028 0028 0029 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 0062 0029 2681;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 2680 0061 0028 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 2681 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 2681 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 0028 2681 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 0028 0029 2681;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0062 2681 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0062 0028 2681 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0062 0028 0029 2681;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 0062 2681 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 0062 0029 2681;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0028 0061 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0062 2681 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0062 0028 2681 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0062 0028 0029 2681;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 0062 2681 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 0062 0029 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 0062 2681 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 2680 0028 0029 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 0062 0029 2681;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 2680 0061 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0062 2681 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0062 0028 2681 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0062 0028 0029 2681;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 0062 2681 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 0062 0029 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 0062 2681 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 2680 0029 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 0062 0029 2681;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 0029 2680 0061 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 0062 2681 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 2680 0061 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 0062 0029 2681;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 + +# ON, L, L, L and (()() +2680 0028 0061 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 0063 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 0028 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 0028 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0062 0028 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0062 0028 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0028 0061 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0062 0028 0063 0029;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 0061 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0062 0028 0029 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 0062 0029 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 2680 0061 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 0063 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 0028 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 0028 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0062 0028 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0062 0028 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0028 0061 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0062 0028 0063 0029;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 0061 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0062 0028 0029 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 0062 0029 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 2680 0061 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0062 0028 0063 0029;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0062 0028 0029 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 0062 0029 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 2680 0061 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 0062 0029 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 + +# ON, L, L, R and (()() +2680 0028 0061 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 05D0 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 05D0 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 0028 05D0 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 0029 0028 0029 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0062 05D0 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0062 0028 05D0 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0062 0028 0029 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +2680 0028 0061 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 0062 05D0 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0028 0061 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0062 05D0 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0062 0028 05D0 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0062 0028 0029 05D0;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 0062 05D0 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 0062 0029 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 0062 05D0 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 0062 0029 05D0;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 2680 0061 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 05D0 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 05D0 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 0028 05D0 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 0029 0028 0029 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0062 05D0 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0062 0028 05D0 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0062 0028 0029 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 2680 0061 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 0062 05D0 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 0062 0029 05D0;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0028 0061 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0062 05D0 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0062 0028 05D0 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0062 0028 0029 05D0;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 0062 05D0 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 0062 0029 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 0062 05D0 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 0062 0029 05D0;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 2680 0061 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0062 05D0 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0062 0028 05D0 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0062 0028 0029 05D0;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 0062 05D0 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 0062 0029 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 0062 05D0 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 0062 0029 05D0;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 0029 2680 0061 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 0062 05D0 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 0062 0029 05D0;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 + +# ON, L, R, ON and (()() +2680 0028 0061 05D0 2681 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 2681 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 05D0 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 05D0 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 05D0 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 05D0 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 05D0 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 05D0 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 2681 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 05D0 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 05D0 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 05D0 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 05D0 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 05D0 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 05D0 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 05D0 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 05D0 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 05D0 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 05D0 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 05D0 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 05D0 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 05D0 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 05D0 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 05D0 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, R, L and (()() +2680 0028 0061 05D0 0062 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0062 0028 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 05D0 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 05D0 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0062 0029 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 05D0 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 05D0 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 05D0 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 05D0 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 05D0 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 05D0 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0062 0028 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 05D0 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 05D0 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0062 0029 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 05D0 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 05D0 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 05D0 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 05D0 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 05D0 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 05D0 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0062 0029 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 05D0 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 05D0 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 05D0 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 05D0 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 05D0 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 05D0 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 05D0 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 05D0 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 05D0 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, L, R, R and (()() +2680 0028 0061 05D0 0028 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0061 05D0 0028 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 05D1 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0061 05D0 0028 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 0061 05D0 0028 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0029 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 0061 05D0 0028 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0061 0028 0029 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0061 0028 0029 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0029 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 0061 0029 05D0 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 0061 0029 05D0 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 0029 0028 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 0029 0061 05D0 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 0029 0061 05D0 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0061 0028 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0061 05D0 0028 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 05D1 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0061 05D0 0028 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 2680 0061 05D0 0028 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0029 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 2680 0061 05D0 0028 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0061 0028 0029 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0061 0028 0029 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0029 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 0061 0029 05D0 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 0061 0029 05D0 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 0029 0028 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 0029 0061 05D0 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 0029 0061 05D0 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0061 0028 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 0061 0029 05D0 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 0061 0029 05D0 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 0029 0028 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 0029 0061 05D0 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 0029 0061 05D0 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0061 0028 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0029 2680 0061 05D0 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0029 2680 0061 05D0 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0061 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0061 0028 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, ON and (()() +2680 0028 05D0 2681 0028 2682 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 2682 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0028 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0028 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 2682 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0028 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0028 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 2682 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0028 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0028 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0028 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0028 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 2681 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0028 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0028 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 2681 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 2682 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 2682 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0028 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0028 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 2682 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0028 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0028 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 2682 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0028 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0028 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0028 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0028 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 2681 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0028 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0028 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 2681 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 2682 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0028 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0028 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0028 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0028 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 2681 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0028 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0028 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 2681 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0028 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0028 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 2681 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, L and (()() +2680 0028 05D0 2681 0061 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0061 0028 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0061 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0061 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0028 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0028 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0061 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0028 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0028 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 2681 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 2681 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0061 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0028 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0028 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 2681 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 2681 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0061 0028 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0061 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0061 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0028 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0028 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0061 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0061 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0028 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0028 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0061 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0028 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0028 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 2681 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 2681 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0061 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0028 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0028 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 2681 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 2681 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0061 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0061 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0028 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0028 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0061 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0028 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0028 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 2681 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 2681 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0061 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0028 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0028 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 2681 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 2681 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0061 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0028 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0028 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 2681 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 2681 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, R and (()() +2680 0028 05D0 2681 05D1 0028 0029 0028 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +2680 0028 05D0 2681 05D1 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 2681 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 2681 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 2681 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 2681 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 2681 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 2681 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 2681 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0029 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 05D1 0028 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +2680 0028 0028 0029 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +2680 0028 0028 0029 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 2681 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +2680 0028 0028 0029 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 2681 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +2680 0028 0028 0029 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 2681 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +2680 0028 0028 0029 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0029 2681 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +2680 0028 0028 0029 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +2680 0028 0028 0029 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0028 0029 0028 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 2680 05D0 2681 05D1 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 2681 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 2681 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 2681 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 2681 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 2681 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 2681 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 2681 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0029 2681 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 2681 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 2681 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 2681 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0029 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 05D1 0028 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 2680 0028 0029 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 2680 0028 0029 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 2681 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 2680 0028 0029 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 2681 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 2680 0028 0029 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 2681 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 2680 0028 0029 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0029 2681 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 2680 0028 0029 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 2680 0028 0029 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 2681 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 2681 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 2681 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0029 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 05D1 0028 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 2680 0029 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 2680 0029 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 2681 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 2680 0029 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 2681 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 2680 0029 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 2681 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 2680 0029 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0029 2681 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 2680 0029 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 2680 0029 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 05D1 0028 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0029 2680 05D0 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 2680 05D0 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 2681 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 2680 05D0 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 2681 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 2680 05D0 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 2681 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 2680 05D0 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0029 2681 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 2680 05D0 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 0029 2680 0028 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 0029 0028 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, L, ON and (()() +2680 0028 05D0 0061 2681 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 2681 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 2681 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, L, L and (()() +2680 0028 05D0 0061 0028 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0062 0029 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 05D0 0061 0028 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 0062 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 05D0 0061 0028 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 0028 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 05D0 0061 0028 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 0028 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 05D0 0028 0061 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0062 0029 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 05D0 0061 0028 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 0062 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 05D0 0061 0028 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 0028 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 2680 05D0 0061 0028 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 0028 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 2680 05D0 0028 0061 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# ON, R, L, R and (()() +2680 0028 05D0 0061 05D1 0028 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 05D1 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 05D1 0029 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0061 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0061 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 0028 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0028 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 05D1 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 05D1 0029 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0061 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0061 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 0028 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 05D1 0029 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0061 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0061 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 0028 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0061 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 0028 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 0028 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 2680 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, R, ON and (()() +2680 0028 05D0 0028 05D1 2681 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 2681 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0028 2681 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0028 0029 2681;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 2681 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0028 2681 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0028 0029 2681;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 2681 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0028 2681 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0028 0029 2681;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 05D1 2681 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 05D1 0029 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 05D1 2681 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +2680 0028 0028 0029 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 05D1 0029 2681;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 0028 0029 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 2681 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 2681 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0028 2681 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0028 0029 2681;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 2681 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0028 2681 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0028 0029 2681;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 05D1 2681 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 05D1 0029 2681;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 2681 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0028 2681 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0028 0029 2681;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 05D1 2681 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 05D1 0029 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 05D1 2681 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 2680 0028 0029 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 05D1 0029 2681;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 2680 0028 0029 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 2681 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0028 2681 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0028 0029 2681;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 05D1 2681 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 05D1 0029 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 05D1 2681 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 2680 0029 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 05D1 0029 2681;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 2680 0029 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 05D1 2681 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 2680 05D0 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 05D1 0029 2681;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 0029 2680 05D0 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, R, L and (()() +2680 0028 05D0 0028 05D1 0061 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0061 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0028 0061 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0028 0029 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0061 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0028 0061 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0028 0029 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +2680 0028 05D0 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 05D1 0061 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0061 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0028 0061 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0028 0029 0061;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 05D1 0061 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 05D1 0029 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 05D1 0061 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 05D1 0029 0061;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 0028 0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0061 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0061 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0028 0061 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0028 0029 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0061 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0028 0061 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0028 0029 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 2680 05D0 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 05D1 0061 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 05D1 0029 0061;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0061 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0028 0061 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0028 0029 0061;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 05D1 0061 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 05D1 0029 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 05D1 0061 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 05D1 0029 0061;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 2680 0028 0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0061 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0028 0061 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0028 0029 0061;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 05D1 0061 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 05D1 0029 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 05D1 0061 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0029 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 05D1 0029 0061;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 2680 0029 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 05D1 0061 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 2680 05D0 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 05D1 0029 0061;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 0029 2680 05D0 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, R, R, R and (()() +2680 0028 05D0 0028 05D1 0029 05D2 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 0029 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 05D1 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0029 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 05D0 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 05D0 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +2680 0028 0028 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 05D2 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0029 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 05D1 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0029 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 05D0 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 05D0 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 2680 0028 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 05D0 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 05D0 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 2680 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 2680 05D0 0028 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 2680 05D0 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, ON, ON and (()() +0061 2680 0028 2681 0028 2682 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 2682 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 2682 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 0028 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 0028 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 2682 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 0028 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 0028 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 2682 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 0028 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 0028 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0028 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0028 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 2681 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 2682 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 2682 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 0028 2682 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 0028 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 2681 0028 2682 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 2681 0028 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 2681 0028 2682 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 2681 0028 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 2681 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0028 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 2681 0028 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0028 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 2681 0028 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 2681 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 2681 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, ON, L and (()() +0061 2680 0028 2681 0062 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0062 0028 0029 0028 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 2680 0028 2681 0028 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0062 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 0062 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 2681 0028 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0062 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 0062 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0062 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0062 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 0062 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 0028 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 0028 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0062 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0062 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0028 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0028 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 2681 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 2681 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0062 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0062 0029 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 2681 0029 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 0062 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 2681 0029 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 0028 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 2681 0029 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 0028 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 2681 0062 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 2681 0028 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 2681 0028 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 2681 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 2681 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 0029 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 2681 0062 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 2681 0028 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 2681 0028 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 2681 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 2681 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 0029 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 2681 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 2681 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 0029 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 0029 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 2680 0029 2681 0062 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 2681 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0028 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 2681 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0028 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 2681 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 2681 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 2681 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 0029 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 2681 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 2681 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 0029 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 0029 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 2681 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 2680 0028 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 2681 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 2680 0028 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 0029 2681 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 0028 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 0029 2681 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0028 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 0029 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, ON, ON, R and (()() +0061 2680 0028 2681 05D0 0028 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 05D0 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 05D0 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0029 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 05D0 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0028 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 2681 0028 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 05D0 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 05D0 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 0028 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0029 0028 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 2681 05D0 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 2681 0028 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 2681 0028 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 2681 05D0 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 2681 0028 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 2681 0028 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 2681 05D0 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 2681 0028 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 2681 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 2681 0028 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, L, ON and (()() +0061 2680 0028 0062 2681 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 2681 0028 0029 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 2681 0029 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 2681 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 0028 2681 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 0028 0029 2681;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 2681 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 2681 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0028 2681 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0028 0029 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 2681 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 0028 2681 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 0028 0029 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0062 2681 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 2681 0028 0029 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 2681 0029 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 2681 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 0028 2681 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 0028 0029 2681;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 2681 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 2681 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0028 2681 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0028 0029 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 2681 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 0028 2681 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 0028 0029 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 2681 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 2681 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0028 2681 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0028 0029 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 2681 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 0028 2681 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 0028 0029 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 2681 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0029 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 0028 2681 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0029 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 0028 0029 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0029 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 2680 0062 2681 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 2681 0028 0029 0028 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 2681 0029 0028 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 2681 0028 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 0028 2681 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 0028 0029 2681;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 2681 0029 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 2681 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 0028 2681 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 0028 0029 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0062 2681 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0062 0028 2681 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0062 0028 0029 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 0062 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 0062 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 2681 0029 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 2681 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 0028 2681 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 0028 0029 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0062 2681 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0062 0028 2681 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0062 0028 0029 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 0062 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 0062 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0029 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0062 2681 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0062 0028 2681 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0062 0028 0029 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 0062 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 0062 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 0062 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 0062 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 2680 0062 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 2681 0029 0028 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 2681 0028 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 0028 2681 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 0028 0029 2681;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0062 2681 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0062 0028 2681 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0062 0028 0029 2681;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 0062 2681 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 0062 0029 2681;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0062 2681 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0062 0028 2681 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0062 0028 0029 2681;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 0062 2681 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 0062 0029 2681;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 0062 2681 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 0062 0029 2681;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0062 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0062 2681 0028 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0062 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0062 0028 2681 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0062 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0062 0028 0029 2681;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0028 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 0062 2681 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 2680 0028 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 0062 0029 2681;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 0029 0061 0028 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 0062 2681 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 0028 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 0062 0029 2681;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 0029 0028 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 0062 2681 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 0029 0028 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 0062 0029 2681;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 + +# L, ON, L, L and (()() +0061 2680 0028 0062 0028 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0063 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0062 0028 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0063 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0062 0028 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0063 0029 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0062 0028 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 0063 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0062 0028 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0062 0028 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 0063 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0062 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0062 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 0062 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 0063 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0062 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0062 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 0062 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0062 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0062 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 0062 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 0062 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 2680 0062 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 0063 0028 0029;1;1;1 1 2 2 2 1 2 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 0028 0063 0029;1;1;1 1 2 2 2 1 1 2 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 0028 0029 0063;1;1;1 1 2 2 2 1 1 1 2;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0062 0028 0063 0029;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 2680 0029 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0062 0028 0029 0063;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0062 0028 0063 0029;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0062 0028 0029 0063;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0062 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0062 0028 0063 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 2680 0062 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0062 0028 0029 0063;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 2680 0028 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 0062 0029 0063;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 0028 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 0062 0029 0063;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0028 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 0062 0029 0063;1;1;1 1 1 1 2 2 2 1 2;8 7 4 5 6 3 2 1 0 + +# L, ON, L, R and (()() +0061 2680 0028 0062 05D0 0028 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 05D0 0028 0029 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 05D0 0029 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 05D0 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 0028 05D0 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0029 0028 0029 05D0;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 05D0 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 0029 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0062 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 2680 0028 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0062 05D0 0028 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 05D0 0028 0029 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 05D0 0029 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 05D0 0028 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 0028 05D0 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0029 0028 0029 05D0;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 05D0 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 0029 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0062 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 2680 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 05D0 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 0029 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0062 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 2680 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0029 2680 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0029 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0029 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0062 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0029 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 2680 0062 05D0 0028 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 05D0 0028 0029 0028 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 05D0 0029 0028 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 05D0 0028 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 0028 05D0 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0029 0028 0029 05D0;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 05D0 0029 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 05D0 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 0028 05D0 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 0029 0028 0029 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0062 05D0 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0062 0028 05D0 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0062 0028 0029 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 2680 0028 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 0062 05D0 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 0062 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 05D0 0029 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 05D0 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 0028 05D0 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 0029 0028 0029 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0062 05D0 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0062 0028 05D0 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0062 0028 0029 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 2680 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 0062 05D0 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 0062 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0029 2680 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0062 05D0 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0062 0028 05D0 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0062 0028 0029 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0029 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 0062 05D0 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 0062 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 0062 05D0 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 0062 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 2680 0062 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 05D0 0029 0028 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 05D0 0028 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 0028 05D0 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 0029 0028 0029 05D0;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0029 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0062 05D0 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0062 0028 05D0 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0062 0028 0029 05D0;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 0062 05D0 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 0062 0029 05D0;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0062 05D0 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0062 0028 05D0 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0062 0028 0029 05D0;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 0062 05D0 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 0062 0029 05D0;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 0062 05D0 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 0062 0029 05D0;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0062 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0062 05D0 0028 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0062 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0062 0028 05D0 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0062 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0062 0028 0029 05D0;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 0029 0061 2680 0028 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 0062 05D0 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 0062 0029 05D0;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 0029 0061 0028 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 0062 05D0 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 0062 0029 05D0;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 0029 0028 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 0062 05D0 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 0029 0028 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 0062 0029 05D0;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 + +# L, ON, R, ON and (()() +0061 2680 0028 05D0 2681 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 2681 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 2681 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 05D0 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 05D0 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 05D0 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 2681 0028 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 2681 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 2681 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 2681 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 2681 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 05D0 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 05D0 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 05D0 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 2681 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 2681 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 05D0 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 05D0 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 05D0 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 2681 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 05D0 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0028 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 05D0 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0028 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 05D0 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, R, L and (()() +0061 2680 0028 05D0 0062 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0062 0028 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 05D0 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 05D0 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0062 0028 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 05D0 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 05D0 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 05D0 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 05D0 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 05D0 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 05D0 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 05D0 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0062 0028 0029 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0062 0029 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0029 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0029 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0062 0029 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 05D0 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 05D0 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 05D0 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0062 0029 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 05D0 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 05D0 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 05D0 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 05D0 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 05D0 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 05D0 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 05D0 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 05D0 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 05D0 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0062 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 05D0 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 05D0 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 05D0 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 05D0 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 05D0 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0062 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 05D0 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0028 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 05D0 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0028 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 05D0 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, ON, R, R and (()() +0061 2680 0028 05D0 0028 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 2680 0028 05D0 0028 05D1 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 05D1 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 2680 0028 05D0 0028 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 2680 0028 05D0 0028 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0029 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 2680 0028 05D0 0028 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 2680 0028 0028 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 2680 0028 0028 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 2680 05D0 0028 05D1 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 05D1 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 2680 05D0 0028 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 2680 05D0 0028 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0029 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 2680 05D0 0028 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 2680 0028 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 2680 0028 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 2680 0029 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 2680 0029 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0029 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 0029 2680 05D0 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 0029 2680 05D0 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 2680 0028 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 2680 05D0 0028 05D1 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 05D1 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 2680 05D0 0028 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0061 2680 05D0 0028 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0029 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0061 2680 05D0 0028 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 2680 0028 0029 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 2680 0028 0029 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0029 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 2680 0029 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 2680 0029 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0029 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 0029 2680 05D0 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 0029 2680 05D0 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 2680 0028 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 2680 0029 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 2680 0029 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0029 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 0029 2680 05D0 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 0029 2680 05D0 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 2680 0028 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0029 0061 2680 05D0 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0029 0061 2680 05D0 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 2680 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 2680 0028 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 2680 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 2680 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, ON, ON and (()() +0061 0028 0062 2680 0028 2681 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 2681 0029 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 2681 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 0028 2681 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 0028 0029 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 2681 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 0028 2681 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 0028 0029 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0028 2681 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0028 0029 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 2680 0029 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 2681 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 0028 2681 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 0028 0029 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0028 2681 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0028 0029 2681;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 2680 0029 2681;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0028 2681 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0028 0029 2681;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 2680 0029 2681;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 2680 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 0029 2681 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 2681 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 2680 0029 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 0028 2681 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 2680 0029 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 0028 0029 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 2680 0028 2681 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 2680 0028 0029 2681;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 2680 0029 2681;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 2680 0028 2681 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 2680 0028 0029 2681;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 2680 0029 2681;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 2680 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 0029 0062 2680 0028 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 2680 0028 2681 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 2680 0028 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 2680 0028 0029 2681;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 2680 0029 2681;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 2680 0029 2681;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 2680 0029 2681;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 + +# L, L, ON, L and (()() +0061 0028 0062 2680 0063 0028 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0063 0028 0029 0028 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0028 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0063 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 2680 0028 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0063 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 2680 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0029 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0063 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 0029 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0063 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0029 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0028 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0028 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 2680 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 2680 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0029 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0063 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0063 0029 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 2680 0029 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 0063 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 2680 0029 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 2680 0029 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 0029 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 2680 0063 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 0029 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 2680 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 0029 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 2680 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 0029 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 2680 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 0029 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 2680 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 0029 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 0029 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 2680 0063 0028 0029;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0029 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 2680 0028 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 2680 0028 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 2680 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 2680 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 0029 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 2680 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 2680 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 0029 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 0029 0062 2680 0063 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 2680 0063 0028 0029;1;1;1 1 2 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 0061 0029 0062 2680 0028 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 2680 0028 0063 0029;1;1;1 1 2 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0061 0029 0062 2680 0028 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 2680 0028 0029 0063;1;1;1 1 2 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0061 0029 0062 0028 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 2680 0063 0029;1;1;1 1 2 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0061 0029 0062 0028 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 2680 0029 0063;1;1;1 1 2 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0061 0029 0062 0028 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 0029 2680 0063;1;1;1 1 2 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0061 0029 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 2680 0063 0029;1;1;1 1 2 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 2680 0029 0063;1;1;1 1 2 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 0029 2680 0063;1;1;1 1 2 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 2680 0063 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 0028 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 2680 0029 0063;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0028 0029 0061 0028 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 0029 2680 0063;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 + +# L, L, ON, R and (()() +0061 0028 0062 2680 05D0 0028 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 05D0 0028 0029 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 05D0 0029 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 05D0 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 0028 05D0 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0029 0028 0029 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 05D0 0029 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 05D0 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 0028 05D0 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0029 0028 0029 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 2680 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 05D0 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0028 05D0 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 2680 0028 0029 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 2680 05D0 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 2680 0029 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0029 2680 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 05D0 0029 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0029 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 2680 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 2680 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 2680 05D0 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 2680 0029 05D0;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0029 2680 05D0;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 2680 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 05D0 0028 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0028 05D0 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 2680 0028 0029 05D0;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 2680 05D0 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 2680 0029 05D0;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0029 2680 05D0;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 2680 05D0 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 0029 2680 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 05D0 0029 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 2680 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 05D0 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 2680 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 0028 05D0 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 2680 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0029 0028 0029 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 2680 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 2680 05D0 0028 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 2680 0028 05D0 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 2680 0028 0029 05D0;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 2680 05D0 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 2680 0029 05D0;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 0029 2680 05D0;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 2680 05D0 0028 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 2680 0028 05D0 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 2680 0028 0029 05D0;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 2680 05D0 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 2680 0029 05D0;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 0029 2680 05D0;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 2680 05D0 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 2680 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 0029 2680 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0028 0061 0029 0062 2680 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 2680 05D0 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 2680 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 2680 0028 05D0 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 2680 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 2680 0028 0029 05D0;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 2680 05D0 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 2680 0029 05D0;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 0029 2680 05D0;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 2680 05D0 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 2680 0029 05D0;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 0029 2680 05D0;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 2680 05D0 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 2680 0029 05D0;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 0029 0061 0028 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 0029 2680 05D0;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 + +# L, L, L, ON and (()() +0061 0028 0062 0028 0063 2680 0029 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 2680 0029 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 0029 2680 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 2680 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0063 0029 0028 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 0028 2680 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0063 0029 0028 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 0028 0029 2680;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063 2680 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 2680 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063 0028 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 0028 2680 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063 0028 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 0028 0029 2680;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0063 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 2680 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 2680 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 0063 0028 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 0028 2680 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 0063 0028 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 0028 0029 2680;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0063 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0063 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0063 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 2680 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 2680 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0063 0028 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 0028 2680 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0063 0028 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 0028 0029 2680;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 0063 2680 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 0029 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 0063 0029 2680;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 0063 2680 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 0063 0029 2680;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 0029 0062 0028 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 0063 2680 0029;1;1;1 1 2 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0061 0029 0062 0028 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 0063 0029 2680;1;1;1 1 2 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 + +# L, L, L, L and (()() +0061 0028 0062 0028 0063 0029 0064 0028 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 0064 0028 0029;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 0029 0028 0064 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 0028 0064 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 0028 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 0028 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 0028 0064 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 0028 0064 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 0028 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 0028 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 0028 0064 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 0028 0064 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 0028 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 0028 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0063 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 0028 0064 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 0028 0064 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 0029 0063 0028 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 0028 0029 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 0029 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 0063 0029 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0029 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 0063 0029 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 0029 0062 0028 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 0063 0029 0064;1;1;1 1 2 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 + +# L, L, L, R and (()() +0061 0028 0062 0028 0063 05D0 0029 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 05D0 0029 0028 0029;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0063 0029 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0063 0029 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0063 0029 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 0029 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0063 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0063 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0062 0028 0029 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0063 05D0 0029;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 0029 0063 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 05D0 0028 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 0063 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 0028 05D0 0029;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 0063 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0063 0028 0029 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 0029 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0063 05D0 0029;1;1;2 2 2 2 2 1 2 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0029 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0063 05D0 0029;1;1;2 2 2 2 2 1 2 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 0063 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 0028 0062 0029 0063 05D0 0028 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 05D0 0028 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0063 0028 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 0028 05D0 0029;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0063 0028 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0063 0028 0029 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 0029 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 0063 05D0 0029;1;1;1 2 2 2 2 1 2 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 0063 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0029 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 0063 05D0 0029;1;1;1 2 2 2 2 1 2 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 0063 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 0029 0062 0028 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 0063 05D0 0029;1;1;1 1 2 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 0063 0029 05D0;1;1;1 1 2 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 + +# L, L, R, ON and (()() +0061 0028 0062 05D0 2680 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 2680 0028 0029 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 2680 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 2680 0029 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 2680 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0029 2680 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 0028 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0029 0028 2680 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 0028 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0029 0028 0029 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 2680 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 2680 0029 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 2680 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 2680 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0028 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 0028 2680 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0028 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 0028 0029 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 2680 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 05D0 2680 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 0028 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 05D0 0028 2680 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 0028 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 05D0 0028 0029 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 05D0 2680 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 05D0 0029 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 2680 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 2680 0029 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 2680 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 2680 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0028 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 0028 2680 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0028 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 0028 0029 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 2680 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 05D0 2680 0028 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 05D0 0028 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 05D0 0028 2680 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 05D0 0028 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 05D0 0028 0029 2680;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 05D0 2680 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 05D0 0029 2680;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 2680 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 05D0 2680 0028 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 0028 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 05D0 0028 2680 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 0028 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 05D0 0028 0029 2680;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 05D0 2680 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 05D0 0029 2680;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0028 0062 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 05D0 2680 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 0062 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 05D0 0029 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 2680 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 2680 0029 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 2680 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 2680 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0028 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 0028 2680 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0028 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 0028 0029 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0 2680 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 05D0 2680 0028 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 05D0 0028 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 05D0 0028 2680 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 05D0 0028 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 05D0 0028 0029 2680;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 05D0 2680 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 05D0 0029 2680;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 2680 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 05D0 2680 0028 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0028 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 05D0 0028 2680 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0028 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 05D0 0028 0029 2680;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 05D0 2680 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 05D0 0029 2680;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0028 0062 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 05D0 2680 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 0062 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 05D0 0029 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 2680 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 05D0 2680 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0028 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 05D0 0028 2680 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0028 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 05D0 0028 0029 2680;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 05D0 2680 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 05D0 0029 2680;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 05D0 2680 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 05D0 0029 2680;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 05D0 2680 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 05D0 0029 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, R, L and (()() +0061 0028 0062 05D0 0063 0028 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0063 0028 0029 0028 0029;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0063 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0063 0029 0028 0029;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 0063 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0029 0063 0028 0029;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 0028 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0029 0028 0063 0029;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 0028 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0029 0028 0029 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0063 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0063 0029 0028 0029;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0063 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 0063 0028 0029;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0028 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 0028 0063 0029;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0028 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 0028 0029 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 0063 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 05D0 0063 0028 0029;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 0028 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 05D0 0028 0063 0029;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 0028 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 05D0 0028 0029 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 05D0 0063 0029;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 05D0 0029 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 0063 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0063 0029 0028 0029;1;1;2 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0063 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 0063 0028 0029;1;1;2 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0028 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 0028 0063 0029;1;1;2 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0028 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 0028 0029 0063;1;1;2 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 0063 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 05D0 0063 0028 0029;1;1;2 2 2 2 2 1 2 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 05D0 0028 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 05D0 0028 0063 0029;1;1;2 2 2 2 2 1 1 2 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 05D0 0028 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 05D0 0028 0029 0063;1;1;2 2 2 2 2 1 1 1 2;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 05D0 0063 0029;1;1;2 2 2 2 2 1 1 2 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 05D0 0029 0063;1;1;2 2 2 2 2 1 1 1 2;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 0063 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 05D0 0063 0028 0029;1;1;2 2 2 2 2 1 2 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 0028 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 05D0 0028 0063 0029;1;1;2 2 2 2 2 1 1 2 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 0028 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 05D0 0028 0029 0063;1;1;2 2 2 2 2 1 1 1 2;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 05D0 0063 0029;1;1;2 2 2 2 2 1 1 2 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 05D0 0029 0063;1;1;2 2 2 2 2 1 1 1 2;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0028 0062 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 05D0 0063 0029;1;1;2 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 0062 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 05D0 0029 0063;1;1;2 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0063 0029 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0063 0029 0028 0029;1;1;1 2 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0063 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 0063 0028 0029;1;1;1 2 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0028 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 0028 0063 0029;1;1;1 2 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0028 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 0028 0029 0063;1;1;1 2 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0 0063 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 05D0 0063 0028 0029;1;1;1 2 2 2 2 1 2 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 05D0 0028 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 05D0 0028 0063 0029;1;1;1 2 2 2 2 1 1 2 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 05D0 0028 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 05D0 0028 0029 0063;1;1;1 2 2 2 2 1 1 1 2;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 05D0 0063 0029;1;1;1 2 2 2 2 1 1 2 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 05D0 0029 0063;1;1;1 2 2 2 2 1 1 1 2;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0063 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 05D0 0063 0028 0029;1;1;1 2 2 2 2 1 2 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0028 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 05D0 0028 0063 0029;1;1;1 2 2 2 2 1 1 2 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0028 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 05D0 0028 0029 0063;1;1;1 2 2 2 2 1 1 1 2;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 05D0 0063 0029;1;1;1 2 2 2 2 1 1 2 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 05D0 0029 0063;1;1;1 2 2 2 2 1 1 1 2;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0028 0062 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 05D0 0063 0029;1;1;1 2 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 0062 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 05D0 0029 0063;1;1;1 2 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0063 0028 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 05D0 0063 0028 0029;1;1;1 1 2 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0028 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 05D0 0028 0063 0029;1;1;1 1 2 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0028 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 05D0 0028 0029 0063;1;1;1 1 2 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 05D0 0063 0029;1;1;1 1 2 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 05D0 0029 0063;1;1;1 1 2 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 05D0 0063 0029;1;1;1 1 2 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 05D0 0029 0063;1;1;1 1 2 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 05D0 0063 0029;1;1;1 1 1 2 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 05D0 0029 0063;1;1;1 1 1 2 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, L, R, R and (()() +0061 0028 0062 05D0 0028 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0062 05D0 0028 05D1 0029 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 05D1 0028 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0062 05D0 0028 0029 05D1 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 0028 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 0062 05D0 0028 0029 0028 05D1 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0029 0028 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 0062 05D0 0028 0029 0028 0029 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 05D1 0028 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 0028 05D1 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0029 0028 0029 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0062 0028 0029 05D0 0028 05D1 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0062 0028 0029 05D0 0028 0029 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0029 0028 05D0 0029 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 05D1 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 0028 05D1 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0029 0028 0029 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 0062 0029 05D0 0028 05D1 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 0062 0029 05D0 0028 0029 05D1;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0062 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 0029 0028 05D0 0029 05D1;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 0029 0062 05D0 0028 05D1 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 0029 0062 05D0 0028 0029 05D1;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0062 0028 05D0 0029 05D1;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0028 0029 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 0062 05D0 0029 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 05D1 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 0028 05D1 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0029 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0029 0028 0029 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 0029 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 0062 0029 05D0 0028 05D1 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 0062 0029 05D0 0028 0029 05D1;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0062 0029 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 0029 0028 05D0 0029 05D1;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 0029 0062 05D0 0028 05D1 0029;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 0029 0062 05D0 0028 0029 05D1;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0062 0028 05D0 0029 05D1;1;1;1 2 2 2 2 1 1 1 1;8 7 6 5 1 2 3 4 0 +0028 0061 0028 0029 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 0062 05D0 0029 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0028 05D1 0029;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 0029 0062 05D0 0028 05D1 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 05D0 0028 0029 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 0029 0062 05D0 0028 0029 05D1;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0062 0028 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0062 0028 05D0 0029 05D1;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 0062 05D0 0029 05D1;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 0062 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 0062 05D0 0029 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, ON, ON and (()() +0061 0028 05D0 2680 0028 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 2681 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 2681 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 2680 0028 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 2680 0028 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 2680 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 2681 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 2681 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 2680 0028 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 2680 0028 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 2680 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0028 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 2680 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0028 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 2680 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, ON, L and (()() +0061 0028 05D0 2680 0062 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0062 0028 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 2680 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 2680 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 2680 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 2680 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 2680 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 0029 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 2680 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 2680 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 2680 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 2680 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 2680 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 0029 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 2680 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 2680 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 2680 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 2680 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 2680 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 0029 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 2680 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0062 0028 0029 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0062 0029 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0029 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0029 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0062 0029 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0029 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0029 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 2680 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 2680 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 2680 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 2680 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 2680 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 0029 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0062 0029 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 2680 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 2680 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 2680 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 2680 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 2680 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 0029 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 2680 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 2680 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 2680 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 2680 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 2680 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 0029 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 2680 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0062 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 2680 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 2680 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 2680 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 2680 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 2680 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 0029 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 2680 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 2680 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 2680 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 2680 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 2680 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 0029 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 2680 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0062 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 2680 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0028 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 2680 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0028 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 2680 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 2680 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 2680 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 2680 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 2680 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 0029 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, R, ON, R and (()() +0061 0028 05D0 2680 05D1 0028 0029 0028 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0061 0028 05D0 2680 05D1 0028 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 2680 0028 05D1 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 2680 0028 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 2680 0028 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 2680 0028 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 2680 05D1 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 2680 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 2680 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 2680 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 0029 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 2680 05D1 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0029 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 2680 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 2680 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 05D1 0028 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0061 0028 0028 0029 05D0 2680 05D1 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0061 0028 0028 0029 05D0 2680 0028 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 2680 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0061 0028 0028 0029 05D0 2680 0028 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 2680 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0061 0028 0028 0029 05D0 0028 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 2680 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0061 0028 0028 0029 05D0 0028 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0029 2680 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0061 0028 0028 0029 05D0 0028 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0061 0028 0028 0029 0028 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0028 0029 0028 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0061 05D0 2680 05D1 0028 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 2680 0028 05D1 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 2680 0028 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 2680 0028 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 2680 0028 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 05D1 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 2680 05D1 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 2680 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 2680 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0029 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 2680 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 05D1 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 0029 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0028 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 2680 0028 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 2680 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 2680 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0029 2680 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 2680 05D1 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0029 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 2680 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 2680 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 05D1 0028 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0061 0028 0029 05D0 2680 05D1 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0061 0028 0029 05D0 2680 0028 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 2680 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0061 0028 0029 05D0 2680 0028 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 2680 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0061 0028 0029 05D0 0028 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 2680 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0061 0028 0029 05D0 0028 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0029 2680 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0061 0028 0029 05D0 0028 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0061 0028 0029 0028 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 05D1 0029 0028 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 2680 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 2680 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 2680 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 05D1 0028 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0061 0029 05D0 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0061 0029 05D0 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 2680 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0061 0029 05D0 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 2680 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0061 0029 05D0 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 2680 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0061 0029 05D0 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0029 2680 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0061 0029 05D0 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 0061 0029 0028 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 05D1 0028 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0029 0061 05D0 2680 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0028 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 0061 05D0 2680 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 2680 0028 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 0061 05D0 2680 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 2680 05D1 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 0061 05D0 0028 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 2680 0029 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 0061 05D0 0028 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0029 2680 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 0061 05D0 0028 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 0029 0061 0028 05D0 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 0029 0028 0061 05D0 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, L, ON and (()() +0061 0028 05D0 0062 2680 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 2680 0028 0029 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 2680 0029 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 2680 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 0028 2680 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 0028 0029 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 2680 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 2680 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 0028 2680 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 0028 0029 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0062 2680 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0062 0028 2680 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0062 0028 0029 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 0062 2680 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 0062 0029 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 2680 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 2680 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 2680 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 2680 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0028 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 0028 2680 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0028 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 0028 0029 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 2680 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0062 2680 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0028 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0062 0028 2680 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0028 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0062 0028 0029 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0062 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 0062 2680 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0062 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 0062 0029 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 2680 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0062 2680 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0028 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0062 0028 2680 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0028 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0062 0028 0029 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0062 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 0062 2680 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0062 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 0062 0029 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 0062 2680 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 0062 0029 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0028 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 2680 0028 0029 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 2680 0029 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 2680 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 0028 2680 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 0028 0029 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 2680 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 2680 0029 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 2680 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 2680 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0028 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 0028 2680 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0028 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 0028 0029 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0062 2680 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0062 0028 2680 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0062 0028 0029 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 0062 2680 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 0062 0029 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 2680 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 2680 0029 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 2680 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 2680 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0028 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 0028 2680 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0028 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 0028 0029 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 2680 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0062 2680 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0028 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0062 0028 2680 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0028 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0062 0028 0029 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0062 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 0062 2680 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0062 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 0062 0029 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 2680 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0062 2680 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0028 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0062 0028 2680 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0028 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0062 0028 0029 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0062 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 0062 2680 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0062 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 0062 0029 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 0062 2680 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 0062 0029 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 2680 0029 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 2680 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 2680 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 2680 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0028 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 0028 2680 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0028 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 0028 0029 2680;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 2680 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0062 2680 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0028 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0062 0028 2680 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0028 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0062 0028 0029 2680;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0062 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 0062 2680 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0062 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 0062 0029 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 2680 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0062 2680 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0028 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0062 0028 2680 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0028 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0062 0028 0029 2680;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0062 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 0062 2680 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0062 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 0062 0029 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 0062 2680 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 0062 0029 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 2680 0028 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0062 2680 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0028 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0062 0028 2680 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0028 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0062 0028 0029 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0062 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 0062 2680 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0062 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 0062 0029 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 0062 2680 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 0062 0029 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 0062 2680 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 0062 0029 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, L, L and (()() +0061 0028 05D0 0062 0028 0063 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0063 0029 0028 0029;1;1;2 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0061 0028 05D0 0062 0028 0029 0063 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 0063 0028 0029;1;1;2 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0061 0028 05D0 0062 0028 0029 0028 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 0028 0063 0029;1;1;2 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0061 0028 05D0 0062 0028 0029 0028 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 0028 0029 0063;1;1;2 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0061 0028 05D0 0028 0062 0029 0063 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 0063 0028 0029;1;1;2 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0028 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 0028 0063 0029;1;1;2 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0028 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 0028 0029 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0062 0028 0063 0029;1;1;2 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0062 0028 0029 0063;1;1;2 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 0062 0029 0063;1;1;2 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0063 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 0063 0028 0029;1;1;2 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0028 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 0028 0063 0029;1;1;2 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0028 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 0028 0029 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0028 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0062 0028 0063 0029;1;1;2 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0028 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0062 0028 0029 0063;1;1;2 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0062 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 0062 0029 0063;1;1;2 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0028 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0062 0028 0063 0029;1;1;2 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0028 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0062 0028 0029 0063;1;1;2 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0062 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 0062 0029 0063;1;1;2 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 0062 0029 0063;1;1;2 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0063 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0063 0029 0028 0029;1;1;1 2 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0061 05D0 0062 0028 0029 0063 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 0063 0028 0029;1;1;1 2 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0061 05D0 0062 0028 0029 0028 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 0028 0063 0029;1;1;1 2 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0061 05D0 0062 0028 0029 0028 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 0028 0029 0063;1;1;1 2 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0061 05D0 0028 0062 0029 0063 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 0063 0028 0029;1;1;1 2 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0028 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 0028 0063 0029;1;1;1 2 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0028 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 0028 0029 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0062 0028 0063 0029;1;1;1 2 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0062 0028 0029 0063;1;1;1 2 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 0062 0029 0063;1;1;1 2 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0063 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 0063 0028 0029;1;1;1 2 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0028 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 0028 0063 0029;1;1;1 2 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0028 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 0028 0029 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0028 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0062 0028 0063 0029;1;1;1 2 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0028 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0062 0028 0029 0063;1;1;1 2 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0062 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 0062 0029 0063;1;1;1 2 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0028 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0062 0028 0063 0029;1;1;1 2 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0028 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0062 0028 0029 0063;1;1;1 2 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0062 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 0062 0029 0063;1;1;1 2 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 0062 0029 0063;1;1;1 2 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0063 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 0063 0028 0029;1;1;1 1 2 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0028 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 0028 0063 0029;1;1;1 1 2 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0028 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 0028 0029 0063;1;1;1 1 2 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0028 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0062 0028 0063 0029;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0028 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0062 0028 0029 0063;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0062 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0028 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0062 0028 0063 0029;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0028 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0062 0028 0029 0063;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0062 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0028 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0062 0028 0063 0029;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0028 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0062 0028 0029 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0062 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# L, R, L, R and (()() +0061 0028 05D0 0062 05D1 0028 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 05D1 0028 0029 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 05D1 0029 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 05D1 0028 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 0028 05D1 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0029 0028 0029 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 05D1 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 05D1 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 0028 05D1 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 0029 0028 0029 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0062 05D1 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0062 0028 05D1 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0062 0028 0029 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0062 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 0062 05D1 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 0062 0029 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 05D1 0029 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 05D1 0029 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 05D1 0028 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 0028 05D1 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 0029 0028 0029 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0062 05D1 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0062 0028 05D1 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0062 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0062 0028 0029 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0062 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 0062 05D1 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 0062 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 0062 0029 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0062 05D1 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0062 0028 05D1 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0062 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0062 0028 0029 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0062 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 0062 05D1 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 0062 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 0062 0029 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 0062 05D1 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 0028 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 0028 05D0 0062 0029 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0028 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 05D1 0028 0029 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 05D1 0029 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 05D1 0028 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 0028 05D1 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0029 0028 0029 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 05D1 0029 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 05D1 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 0028 05D1 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 0029 0028 0029 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0062 05D1 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0062 0028 05D1 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0062 0028 0029 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0062 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 0062 05D1 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 0062 0029 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 05D1 0029 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 05D1 0029 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 05D1 0028 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 0028 05D1 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 0029 0028 0029 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0062 05D1 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0062 0028 05D1 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0062 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0062 0028 0029 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0062 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 0062 05D1 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 0062 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 0062 0029 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0062 05D1 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0062 0028 05D1 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0062 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0062 0028 0029 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0062 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 0062 05D1 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 0062 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 0062 0029 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 0062 05D1 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 0028 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 0028 05D0 0062 0029 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 05D1 0029 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 05D1 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 05D1 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 0028 05D1 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 0029 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 0029 0028 0029 05D1;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0062 05D1 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0062 0028 05D1 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0062 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0062 0028 0029 05D1;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0062 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 0062 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 0062 0029 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0062 05D1 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0062 0028 05D1 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0062 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0062 0028 0029 05D1;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0062 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 0062 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 0062 0029 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 0028 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 0028 05D0 0062 0029 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 05D1 0028 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0062 05D1 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0028 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0062 0028 05D1 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0062 0028 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0062 0028 0029 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0062 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 0062 05D1 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 0062 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 0062 0029 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 0062 05D1 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 0028 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 0028 05D0 0062 0029 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 0061 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 0061 05D0 0062 0029 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, R, ON and (()() +0061 0028 05D0 0028 05D1 2680 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 05D1 2680 0029 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 2680 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 05D1 0029 2680 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0028 2680 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 05D1 0029 0028 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0028 0029 2680;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 05D1 0029 0028 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 2680 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 0029 05D1 2680 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0028 2680 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 0029 05D1 0028 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0028 0029 2680;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 0029 05D1 0028 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 0029 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 2680 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 05D1 2680 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0028 2680 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 05D1 0028 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0028 0029 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 05D1 0028 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 05D1 2680 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 05D1 0029 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 05D1 2680 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0061 0028 0028 0029 05D0 0028 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 05D1 0029 2680;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 0028 0029 05D0 0028 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 2680 0029 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 05D1 2680 0029 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 2680 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 05D1 0029 2680 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0028 2680 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 05D1 0029 0028 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0028 0029 2680;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 05D1 0029 0028 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 2680 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 0029 05D1 2680 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0028 2680 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 0029 05D1 0028 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0028 0029 2680;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 0029 05D1 0028 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 05D1 2680 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 05D1 0029 2680;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 0029 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 2680 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 05D1 2680 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0028 2680 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 05D1 0028 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0028 0029 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 05D1 0028 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 05D1 2680 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 05D1 0029 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 05D1 2680 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0061 0028 0029 05D0 0028 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 05D1 0029 2680;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0061 0028 0029 05D0 0028 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 2680 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0028 2680 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0028 0029 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 05D1 2680 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 05D1 0029 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 05D1 2680 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0061 0029 05D0 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 05D1 0029 2680;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 0061 0029 05D0 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 05D1 2680 0029;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 0061 05D0 0028 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 05D1 0029 2680;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 0029 0061 05D0 0028 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, R, L and (()() +0061 0028 05D0 0028 05D1 0062 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 05D1 0062 0029 0028 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0062 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 05D1 0029 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0028 0062 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 05D1 0029 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0028 0029 0062;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 05D1 0029 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0062 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 0029 05D1 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0028 0062 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 0029 05D1 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0028 0029 0062;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0061 0028 05D0 0028 0029 05D1 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0029 0028 05D1 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 0029 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0062 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 05D1 0062 0028 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0028 0062 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 05D1 0028 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0028 0029 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 05D1 0028 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 05D1 0062 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 05D1 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 05D1 0029 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0029 05D0 0028 05D1 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 05D1 0029 0062;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 0028 0029 05D0 0028 05D1 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0062 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 05D1 0062 0029 0028 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0062 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 05D1 0029 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0028 0062 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 05D1 0029 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0028 0029 0062;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 05D1 0029 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0062 0028 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 0029 05D1 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0028 0062 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 0029 05D1 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0028 0029 0062;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0061 05D0 0028 0029 05D1 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0029 0028 05D1 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 05D1 0029 0062;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 0029 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0062 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 05D1 0062 0028 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0028 0062 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 05D1 0028 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0028 0029 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 05D1 0028 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 05D1 0062 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 05D1 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 05D1 0029 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0029 05D0 0028 05D1 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 05D1 0029 0062;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0061 0028 0029 05D0 0028 05D1 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0062 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 05D1 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0028 0062 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 05D1 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0028 0029 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 05D1 0062 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 05D1 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 05D1 0029 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 0029 05D0 0028 05D1 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 05D1 0029 0062;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 0061 0029 05D0 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0061 05D0 0028 05D1 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 05D1 0029 0062;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 0029 0061 05D0 0028 05D1 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, R, R, R and (()() +0061 0028 05D0 0028 05D1 0029 05D2 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 05D1 0029 05D2 0028 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 0029 0028 05D2 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 0029 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 0029 0028 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 05D1 0028 05D2 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 05D1 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 05D1 0028 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0029 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 0029 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 05D0 0029 05D1 0028 05D2 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 05D0 0029 05D1 0028 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0029 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0061 0028 0028 0029 05D0 0028 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 05D2 0028 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 05D1 0029 05D2 0028 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 0029 0028 05D2 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0029 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 0029 0028 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0028 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 05D1 0028 05D2 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 05D1 0028 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 05D1 0028 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0029 0028 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 0029 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 05D0 0029 05D1 0028 05D2 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 05D0 0029 05D1 0028 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0029 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0061 0028 0029 05D0 0028 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0028 05D2 0029;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 05D0 0029 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 05D1 0028 0029 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 05D0 0029 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0029 0028 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0029 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 0029 05D0 0028 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0061 0029 05D0 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0061 05D0 0028 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 0029 0061 05D0 0028 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, ON and (()() +05D0 2680 0028 2681 0028 2682 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 2682 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 2682 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0028 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0028 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 2682 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 2682 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 2681 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 2682 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0029 2682 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0028 2682 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0029 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0028 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0029 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0028 2682 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0028 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0028 2682 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0028 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 2681 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0028 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 2681 0028 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0028 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 2681 0028 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 2681 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 2681 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, L and (()() +05D0 2680 0028 2681 0061 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0061 0028 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0061 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0061 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0061 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 2681 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 2681 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0061 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0061 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0028 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0028 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0061 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0028 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0028 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0061 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0028 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0028 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 2681 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 2681 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0029 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0061 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 2681 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0028 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 2681 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0028 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 2681 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 2681 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 2681 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 2681 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 2681 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, R and (()() +05D0 2680 0028 2681 05D1 0028 0029 0028 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 2680 0028 2681 05D1 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 05D1 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 2681 0028 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 05D1 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 2681 0028 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 05D1 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 05D1 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 05D1 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 05D1 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 05D1 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 05D1 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 05D1 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 05D1 0029 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 2681 05D1 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 05D1 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 2681 0029 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0028 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 0029 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0029 0028 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 0029 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 05D1 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0028 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 2681 0028 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 2681 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 2681 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0029 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 05D1 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0028 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 2681 0028 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 2681 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 2681 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0029 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 2681 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 2681 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0029 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0029 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 2681 05D1 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 2681 0028 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 2681 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 2681 0028 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 2681 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 2681 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0029 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 2681 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 2681 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0029 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 2681 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 2680 0028 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 2681 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 2680 0028 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0029 2681 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 2680 0028 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0029 2681 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 0028 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0029 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, L, ON and (()() +05D0 2680 0028 0061 2681 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 2681 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 2681 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0028 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 2681 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 2681 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 2681 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 2681 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 2681 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0061 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0061 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 2681 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 2681 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 2681 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 2681 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0061 2681 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0061 0028 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0061 0028 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, L, L and (()() +05D0 2680 0028 0061 0028 0062 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0062 0029 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 2680 0028 0061 0028 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 0062 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 2680 0028 0061 0028 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 0028 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 2680 0028 0061 0028 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 0028 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 2680 0028 0028 0061 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0062 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0062 0029 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 2680 0061 0028 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 0062 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 2680 0061 0028 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 0028 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 2680 0061 0028 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 0028 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 2680 0028 0061 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0062 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0062 0029 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 2680 0061 0028 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 0062 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 2680 0061 0028 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 0028 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 05D0 2680 0061 0028 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 0028 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 05D0 2680 0028 0061 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0061 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# R, ON, L, R and (()() +05D0 2680 0028 0061 05D1 0028 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 05D1 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0028 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 05D1 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0061 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0028 0029 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 05D1 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 05D1 0029 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 05D1 0029 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0061 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 05D1 0029 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0061 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0061 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0061 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 0061 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0061 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 05D1 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 0029 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0061 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0061 05D1 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0061 0028 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0061 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0061 0028 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, R, ON and (()() +05D0 2680 0028 05D1 2681 0028 0029 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 2681 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 2681 0029 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 2681 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0028 2681 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0028 0029 2681;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 2681 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 2681 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 2681 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 0029 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 2681 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 2681 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 0029 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0028 0029 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 2681 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 2681 0029 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 2681 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 2681 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 0029 2681;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 2681 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 2681 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 2681 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 0029 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 2681 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 2681 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 0029 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 2681 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 2681 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 2681 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 0029 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 2681 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 2681 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 0029 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 2681 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 0029 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 2681 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 0029 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 0029 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 0029 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 0029 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 0029 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0028 0029 0028 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 2681 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 2681 0029 0028 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 2681 0028 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0028 2681 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0028 0029 2681;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 2681 0029 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 2681 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0028 2681 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0028 0029 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 2681 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0028 2681 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0028 0029 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 05D1 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 05D1 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 2681 0029 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 2681 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0028 2681 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0028 0029 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 2681 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0028 2681 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0028 0029 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 05D1 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 05D1 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 2681 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 0029 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0028 2681 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 0029 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0028 0029 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 0029 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 05D1 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 05D1 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 0029 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 05D1 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 05D1 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 0029 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 2681 0029 0028 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 2681 0028 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0028 2681 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0028 0029 2681;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 2681 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0028 2681 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0028 0029 2681;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 05D1 2681 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 05D1 0029 2681;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 2681 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0028 2681 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0028 0029 2681;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 05D1 2681 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 05D1 0029 2681;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 05D1 2681 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 05D1 0029 2681;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 2681 0028 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0029 05D0 2680 05D1 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0028 2681 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0029 05D0 2680 05D1 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0028 0029 2681;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0029 05D0 2680 05D1 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 05D1 2681 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 2680 0028 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 05D1 0029 2681;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0029 05D0 2680 0028 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 05D1 2681 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 0028 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 05D1 0029 2681;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0029 05D0 0028 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 05D1 2681 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0029 0028 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 05D1 0029 2681;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0029 0028 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, R, L and (()() +05D0 2680 0028 05D1 0061 0028 0029 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0061 0028 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0061 0029 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0061 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0028 0061 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0028 0029 0061;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0061 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 2680 0028 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0028 0029 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0061 0028 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0061 0029 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0061 0028 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 0061 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 0029 0061;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0061 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 2680 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0061 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 05D1 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 2680 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 0029 2680 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 0029 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 0029 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 0029 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 0029 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0028 0029 0028 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0061 0028 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0061 0029 0028 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0061 0028 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0028 0061 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0028 0029 0061;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0061 0029 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 05D1 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0061 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0028 0061 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0028 0029 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0061 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0028 0061 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0028 0029 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 2680 0028 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 05D1 0061 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 05D1 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0061 0029 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 05D1 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0061 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0028 0061 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0028 0029 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0061 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0028 0061 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0028 0029 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 2680 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 05D1 0061 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 05D1 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0061 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 0029 2680 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0028 0061 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 0029 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0028 0029 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 0029 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 05D1 0061 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 05D1 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 0029 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 05D1 0061 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 05D1 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 0029 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0061 0029 0028 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0061 0028 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0028 0061 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0028 0029 0061;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0061 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0028 0061 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0028 0029 0061;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 05D1 0061 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 05D1 0029 0061;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0061 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0028 0061 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0028 0029 0061;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 05D1 0061 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 05D1 0029 0061;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 05D1 0061 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 05D1 0029 0061;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0061 0028 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0029 05D0 2680 05D1 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0028 0061 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0029 05D0 2680 05D1 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0028 0029 0061;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0029 05D0 2680 05D1 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 05D1 0061 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 2680 0028 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 05D1 0029 0061;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0029 05D0 2680 0028 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 05D1 0061 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 05D1 0029 0061;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0029 05D0 0028 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 05D1 0061 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0029 0028 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 05D1 0029 0061;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0029 0028 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, ON, R, R and (()() +05D0 2680 0028 05D1 0028 05D2 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 05D1 0028 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 05D1 0028 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 05D2 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 05D1 0028 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 05D1 0028 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 05D2 0029 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 05D1 0028 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 05D2 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 05D1 0028 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0029 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 05D2 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0029 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 05D1 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0029 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 05D2 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0029 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 05D1 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0029 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 05D1 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 2680 0028 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 2680 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 05D2 0028 0029;0;0;0 0 1 1 1 0 1 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0028 05D2 0029;0;0;0 0 1 1 1 0 0 1 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0029 0028 0029 05D2;0;0;0 0 1 1 1 0 0 0 1;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0028 05D2 0029;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 2680 0029 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 05D1 0028 0029 05D2;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 2680 0029 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0029 0028 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0029 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0028 05D2 0029;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 0029 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 05D1 0028 0029 05D2;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 0029 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 2680 0028 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 2680 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0028 05D2 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 2680 05D1 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 05D1 0028 0029 05D2;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 2680 05D1 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 2680 0028 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 2680 0028 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 2680 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 0028 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 2680 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 0 1;0 1 2 3 6 5 4 7 8 +0028 0028 0029 0028 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, ON, ON and (()() +05D0 0028 0061 2680 0028 2681 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 2681 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 2680 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 2680 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0028 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 2680 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0028 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 2680 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 2680 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 2681 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 2681 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 2681 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 2680 0028 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 2680 0028 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 2681 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 2680 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 2680 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0028 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 2680 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0028 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 2680 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 2680 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 2681 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 2681 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 2680 0028 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 2680 0028 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0028 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 2680 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0028 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 2680 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0028 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 2680 0028 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0028 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 2680 0028 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, ON, L and (()() +05D0 0028 0061 2680 0062 0028 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0062 0028 0029 0028 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +05D0 0028 0061 2680 0028 0062 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0062 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 2680 0028 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 2680 0028 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 2680 0028 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 2680 0062 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0062 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 2680 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 2680 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 2680 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 2680 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 0029 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0028 0061 2680 0062 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0062 0029 0028 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 2680 0029 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 2680 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 2680 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 2680 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 2680 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0062 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 2680 0062 0028 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0028 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 2680 0028 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0028 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 2680 0028 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +05D0 0028 0028 0029 0061 0028 2680 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 2680 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +05D0 0028 0028 0029 0061 0028 2680 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 2680 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0029 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 0029 2680 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +05D0 0028 0028 0029 0028 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 0028 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0062 0028 0029 0028 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 05D0 0061 2680 0028 0062 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0062 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 2680 0028 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 2680 0028 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 2680 0028 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 2680 0062 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0062 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 2680 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 2680 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 2680 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 2680 0062 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 0029 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 2680 0028 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 2680 0028 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 2680 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 2680 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 0029 2680 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0028 0061 2680 0062 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0062 0029 0028 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 2680 0029 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 2680 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 2680 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 2680 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 2680 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0062 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 2680 0062 0028 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0028 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 2680 0028 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0028 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 2680 0028 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 05D0 0028 0029 0061 0028 2680 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 2680 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 05D0 0028 0029 0061 0028 2680 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 2680 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0029 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 0029 2680 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 05D0 0028 0029 0028 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0062 0029 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0062 0029 0028 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 2680 0029 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 2680 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 2680 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 2680 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 2680 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0062 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 2680 0062 0028 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0028 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 2680 0028 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0028 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 2680 0028 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 05D0 0029 0061 0028 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 2680 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 05D0 0029 0061 0028 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 2680 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 0029 2680 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 05D0 0029 0028 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0062 0028 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 2680 0062 0028 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0028 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 2680 0028 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0028 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 2680 0028 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 05D0 0061 0028 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 2680 0062 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 05D0 0061 0028 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 2680 0029 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 0029 2680 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 05D0 0028 0061 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, L, ON, R and (()() +05D0 0028 0061 2680 05D1 0028 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 05D1 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 2680 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 2680 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 2680 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 2680 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 2680 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 2680 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 2680 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 2680 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 2680 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 2680 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 2680 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0029 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 2680 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0028 0029 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 05D1 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 05D1 0029 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 05D1 0029 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 05D1 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0029 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 2680 05D1 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 2680 0028 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 2680 0028 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 2680 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 05D1 0029 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 2680 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 2680 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 2680 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 2680 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 2680 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 2680 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 2680 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 2680 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 2680 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 2680 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0029 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 2680 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 05D1 0029 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 05D1 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0029 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0029 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 2680 05D1 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 2680 0028 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 2680 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 2680 0028 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 2680 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 2680 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0029 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 2680 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 2680 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 2680 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 2680 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 2680 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 2680 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0029 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 2680 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 05D1 0028 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 2680 05D1 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0028 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 2680 0028 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 2680 0028 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 2680 0028 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 2680 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 2680 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 2680 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 2680 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 0029 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, L, ON and (()() +05D0 0028 0061 0028 0062 2680 0029 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 2680 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 0062 0029 2680 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 2680 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0062 0029 0028 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 0028 2680 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0062 0029 0028 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 0028 0029 2680;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 2680 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0062 2680 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0028 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0062 0028 2680 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0028 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0062 0028 0029 2680;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 0062 0029 2680;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0028 0061 0029 0062 2680 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0062 2680 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0062 0028 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0062 0028 2680 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0062 0028 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0062 0028 0029 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 0062 2680 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 0062 0029 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0062 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 0062 2680 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0062 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 0062 0029 2680;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 05D0 0061 0028 0062 2680 0029 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 2680 0029 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 0062 0029 2680 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 2680 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0062 0029 0028 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 0028 2680 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0062 0029 0028 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 0028 0029 2680;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 2680 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0062 2680 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0028 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0062 0028 2680 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0028 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0062 0028 0029 2680;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 0062 2680 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 0062 0029 2680;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0028 0061 0029 0062 2680 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0062 2680 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0062 0028 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0062 0028 2680 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0062 0028 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0062 0028 0029 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 0062 2680 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 0062 0029 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0062 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 0062 2680 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0062 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 0062 0029 2680;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 05D0 0061 0029 0062 2680 0028 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0062 2680 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0028 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0062 0028 2680 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0028 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0062 0028 0029 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 0062 2680 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 0062 0029 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0062 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 0062 2680 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0062 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 0062 0029 2680;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0062 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 0062 2680 0029;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0062 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 0062 0029 2680;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 + +# R, L, L, L and (()() +05D0 0028 0061 0028 0062 0029 0063 0028 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 0063 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 0062 0029 0028 0063 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 0028 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0062 0029 0028 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 0028 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 0062 0028 0063 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0062 0028 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 0062 0028 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0062 0028 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0029 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0028 0061 0029 0062 0028 0063 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0062 0028 0063 0029;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 0061 0029 0062 0028 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0062 0028 0029 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0062 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 0062 0029 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 05D0 0061 0028 0062 0029 0063 0028 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 0063 0028 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 0062 0029 0028 0063 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 0028 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0062 0029 0028 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 0028 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 0062 0028 0063 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0062 0028 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 0062 0028 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0062 0028 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0029 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 0062 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0028 0061 0029 0062 0028 0063 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0062 0028 0063 0029;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 0061 0029 0062 0028 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0062 0028 0029 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0062 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 0062 0029 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0028 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0062 0028 0063 0029;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0028 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0062 0028 0029 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0062 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 0062 0029 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0062 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 0062 0029 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 + +# R, L, L, R and (()() +05D0 0028 0061 0028 0062 05D1 0029 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 05D1 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0062 0029 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 05D1 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0062 0029 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 0028 05D1 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0062 0029 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 0029 0028 0029 05D1;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0062 05D1 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0062 0028 05D1 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0062 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0062 0028 0029 05D1;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +05D0 0028 0061 0028 0029 0028 0062 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0028 0061 0029 0062 05D1 0028 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0062 05D1 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0062 0028 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0062 0028 05D1 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0062 0028 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0062 0028 0029 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0062 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 0062 05D1 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 0062 0029 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0062 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 0062 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 0062 0029 05D1;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 05D0 0061 0028 0062 05D1 0029 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 05D1 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 0029 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 05D1 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0062 0029 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 0028 05D1 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0062 0029 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 0029 0028 0029 05D1;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0062 05D1 0028 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0062 0028 05D1 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0062 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0062 0028 0029 05D1;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 05D0 0061 0028 0029 0028 0062 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 0062 0029 05D1;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0028 0061 0029 0062 05D1 0028 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0062 05D1 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0062 0028 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0062 0028 05D1 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0062 0028 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0062 0028 0029 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0062 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 0062 05D1 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 0062 0029 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0062 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 0062 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 0062 0029 05D1;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 05D0 0061 0029 0062 05D1 0028 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0062 05D1 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0028 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0062 0028 05D1 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0062 0028 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0062 0028 0029 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0062 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 0062 05D1 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 0062 0029 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0062 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 0062 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 0062 0029 05D1;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0062 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 0062 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 0062 0029 05D1;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 + +# R, L, R, ON and (()() +05D0 0028 0061 05D1 2680 0028 0029 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 2680 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 2680 0029 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 2680 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0028 2680 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0028 0029 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 2680 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 2680 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0028 2680 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0028 0029 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 2680 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0028 2680 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0028 0029 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 05D1 2680 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 05D1 0029 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 2680 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 2680 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 2680 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 2680 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0028 2680 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 0028 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0028 0029 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 0028 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 2680 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 05D1 2680 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0028 2680 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 05D1 0028 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0028 0029 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 05D1 0028 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 05D1 2680 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 05D1 0029 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 2680 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 05D1 2680 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0028 2680 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 05D1 0028 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0028 0029 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 05D1 0028 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 05D1 2680 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 05D1 0029 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 05D1 2680 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 05D1 0029 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0028 0029 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 2680 0028 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 2680 0029 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 2680 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0028 2680 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0028 0029 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 2680 0029 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 2680 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 2680 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 2680 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0028 2680 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 0028 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0028 0029 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 0028 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 2680 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 05D1 2680 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0028 2680 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 05D1 0028 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0028 0029 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 05D1 0028 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 05D1 2680 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 05D1 0029 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 2680 0029 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 2680 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 2680 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 2680 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0028 2680 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 0028 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0028 0029 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 0028 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 2680 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 05D1 2680 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0028 2680 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 05D1 0028 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0028 0029 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 05D1 0028 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 05D1 2680 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 05D1 0029 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 2680 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 05D1 2680 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0028 2680 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 05D1 0028 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0028 0029 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 05D1 0028 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 05D1 2680 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 05D1 0029 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 05D1 2680 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 05D1 0029 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 2680 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 2680 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 2680 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 2680 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0028 2680 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 0028 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0028 0029 2680;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 0028 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 2680 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 05D1 2680 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0028 2680 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 05D1 0028 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0028 0029 2680;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 05D1 0028 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 05D1 2680 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 05D1 0029 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 2680 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 05D1 2680 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0028 2680 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 05D1 0028 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0028 0029 2680;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 05D1 0028 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 05D1 2680 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 05D1 0029 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 05D1 2680 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 05D1 0029 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 2680 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 05D1 2680 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0028 2680 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 05D1 0028 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0028 0029 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 05D1 0028 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 05D1 2680 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 05D1 0029 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 05D1 2680 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 05D1 0029 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 05D1 2680 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 05D1 0029 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, R, L and (()() +05D0 0028 0061 05D1 0062 0028 0029 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0062 0028 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0062 0029 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0062 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0028 0062 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0028 0029 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0062 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0062 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0028 0062 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0028 0029 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0062 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 05D1 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0028 0062 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 05D1 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0028 0029 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 05D1 0062 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 05D1 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 05D1 0029 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0062 0029 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0062 0029 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0062 0028 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0028 0062 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0028 0029 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0062 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 05D1 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0028 0062 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 05D1 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0028 0029 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 05D1 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 05D1 0062 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 05D1 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 05D1 0029 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 05D1 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0062 0028 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 05D1 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0028 0062 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 05D1 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0028 0029 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 05D1 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 05D1 0062 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 05D1 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 05D1 0029 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 05D1 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 05D1 0062 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 05D1 0029 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0028 0029 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0062 0028 0029 0028 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0062 0029 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0062 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0028 0062 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0028 0029 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0062 0029 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0062 0029 0028 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0062 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0028 0062 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0028 0029 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0062 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 05D1 0062 0028 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0028 0062 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 05D1 0028 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0028 0029 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 05D1 0028 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 05D1 0062 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 05D1 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 05D1 0029 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 05D1 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0062 0029 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0062 0029 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0062 0028 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0028 0062 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0028 0029 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0062 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 05D1 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0028 0062 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 05D1 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0028 0029 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 05D1 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 05D1 0062 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 05D1 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 05D1 0029 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 05D1 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0062 0028 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 05D1 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0028 0062 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 05D1 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0028 0029 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 05D1 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 05D1 0062 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 05D1 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 05D1 0029 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 05D1 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 05D1 0062 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 05D1 0029 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0062 0029 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0062 0029 0028 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0062 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0028 0062 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0028 0029 0062;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0062 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 05D1 0062 0028 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0028 0062 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 05D1 0028 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0028 0029 0062;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 05D1 0028 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 05D1 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 05D1 0029 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 05D1 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0062 0028 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 05D1 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0028 0062 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 05D1 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0028 0029 0062;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 05D1 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 05D1 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 05D1 0029 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 05D1 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 05D1 0029 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0062 0028 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 05D1 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0028 0062 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 05D1 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0028 0029 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 05D1 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 05D1 0062 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 05D1 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 05D1 0029 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 05D1 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 05D1 0062 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 05D1 0029 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 05D1 0029 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, L, R, R and (()() +05D0 0028 0061 05D1 0028 05D2 0029 0028 0029;0;0;1 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +05D0 0028 0061 05D1 0028 05D2 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 05D2 0028 0029;0;0;1 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +05D0 0028 0061 05D1 0028 0029 05D2 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0028 05D2 0029;0;0;1 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +05D0 0028 0061 05D1 0028 0029 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0029 0028 0029 05D2;0;0;1 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +05D0 0028 0061 05D1 0028 0029 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 05D2 0028 0029;0;0;1 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 05D2 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0028 05D2 0029;0;0;1 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0029 0028 0029 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0029 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0028 05D2 0029;0;0;1 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +05D0 0028 0061 0028 0029 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 05D1 0028 0029 05D2;0;0;1 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +05D0 0028 0061 0028 0029 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0029 0028 05D1 0029 05D2;0;0;1 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0029 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 05D2 0028 0029;0;0;1 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 05D2 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0028 05D2 0029;0;0;1 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0029 0028 0029 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0029 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0028 05D2 0029;0;0;1 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +05D0 0028 0028 0061 0029 05D1 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 05D1 0028 0029 05D2;0;0;1 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +05D0 0028 0028 0061 0029 05D1 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 0029 0028 05D1 0029 05D2;0;0;1 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 0029 0028 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0028 05D2 0029;0;0;1 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +05D0 0028 0028 0029 0061 05D1 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 05D1 0028 0029 05D2;0;0;1 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +05D0 0028 0028 0029 0061 05D1 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0061 0028 05D1 0029 05D2;0;0;1 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0061 0028 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 0061 05D1 0029 05D2;0;0;1 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 05D2 0029 0028 0029;0;0;0 1 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 05D0 0061 05D1 0028 05D2 0029 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 05D2 0028 0029;0;0;0 1 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 05D0 0061 05D1 0028 0029 05D2 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0028 05D2 0029;0;0;0 1 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 05D0 0061 05D1 0028 0029 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0029 0028 0029 05D2;0;0;0 1 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 05D0 0061 05D1 0028 0029 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 05D2 0028 0029;0;0;0 1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 05D2 0028 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0028 05D2 0029;0;0;0 1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0029 0028 0029 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0029 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0028 05D2 0029;0;0;0 1 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 05D0 0061 0028 0029 05D1 0028 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 05D1 0028 0029 05D2;0;0;0 1 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 05D0 0061 0028 0029 05D1 0028 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0029 0028 05D1 0029 05D2;0;0;0 1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0029 0028 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 05D2 0028 0029;0;0;0 1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 05D2 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0028 05D2 0029;0;0;0 1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0029 0028 0029 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0029 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0028 05D2 0029;0;0;0 1 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 05D0 0028 0061 0029 05D1 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 05D1 0028 0029 05D2;0;0;0 1 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 05D0 0028 0061 0029 05D1 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 0029 0028 05D1 0029 05D2;0;0;0 1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 0029 0028 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0028 05D2 0029;0;0;0 1 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 05D0 0028 0029 0061 05D1 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 05D1 0028 0029 05D2;0;0;0 1 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 05D0 0028 0029 0061 05D1 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0061 0028 05D1 0029 05D2;0;0;0 1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0061 0028 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 0061 05D1 0029 05D2;0;0;0 1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 05D2 0028 0029;0;0;0 0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 05D2 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0028 05D2 0029;0;0;0 0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0029 0028 0029 05D2;0;0;0 0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0029 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0028 05D2 0029;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 0061 0029 05D1 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 05D1 0028 0029 05D2;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 0061 0029 05D1 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 0029 0028 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 0029 0028 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0028 05D2 0029;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 0029 0061 05D1 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 05D1 0028 0029 05D2;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 0029 0061 05D1 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0061 0028 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0061 0028 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 0061 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0028 05D2 0029;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0029 05D0 0061 05D1 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 05D1 0028 0029 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0029 05D0 0061 05D1 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0061 0028 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0061 0028 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 0061 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 0028 05D0 0061 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 0028 05D0 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, ON, ON and (()() +05D0 0028 05D1 2680 0028 2681 0029 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 2681 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 2681 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0028 2681 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0028 0029 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 2681 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 2681 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 0029 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 2681 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 0029 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 2680 0029 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 2681 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 2681 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 0029 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 2681 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 0029 2681;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 2680 0029 2681;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 2681 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 0029 2681;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 2680 0029 2681;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 0029 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 2681 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 2680 0029 2681 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0028 2681 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 2680 0029 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0028 0029 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 2680 0029 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0028 2681 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0028 0029 2681;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 2680 0029 2681;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0028 2681 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0028 0029 2681;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 2680 0029 2681;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 2680 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 0029 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0028 2681 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 2680 0028 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0028 0029 2681;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 2680 0028 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 2680 0029 2681;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 2680 0029 2681;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 2680 0029 2681;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0029 05D0 0028 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, ON, L and (()() +05D0 0028 05D1 2680 0061 0028 0029 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0061 0028 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0061 0029 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0061 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0028 0061 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0028 0029 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0061 0029 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0061 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 0061 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 0029 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0061 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 2680 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 0061 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 0029 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 2680 0061 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 2680 0029 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0029 2680 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0061 0029 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 2680 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 2680 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0061 0028 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 2680 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 0061 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 0029 0061;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 2680 0061 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 2680 0029 0061;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0029 2680 0061;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0061 0028 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 2680 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 0061 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 0029 0061;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 2680 0061 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 2680 0029 0061;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0029 2680 0061;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 0061 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 0029 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029 2680 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 0029 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0061 0029 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 2680 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0061 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 2680 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0028 0061 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 2680 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0028 0029 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 2680 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0061 0028 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 2680 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0028 0061 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 2680 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0028 0029 0061;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 2680 0061 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 2680 0029 0061;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0029 2680 0061;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0061 0028 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 2680 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0028 0061 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0028 0029 0061;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 2680 0061 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 2680 0029 0061;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0029 2680 0061;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 2680 0061 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 2680 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 0029 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0029 2680 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 0029 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0061 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 2680 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0028 0061 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 2680 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0028 0029 0061;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 2680 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 2680 0061 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 2680 0029 0061;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0029 2680 0061;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 2680 0061 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 2680 0029 0061;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0029 2680 0061;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 2680 0061 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 2680 0029 0061;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0029 05D0 0028 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0029 2680 0061;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0029 05D0 0028 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, R, ON, R and (()() +05D0 0028 05D1 2680 05D2 0028 0029 0028 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 05D1 2680 05D2 0028 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 05D2 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 2680 0028 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 2680 0028 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 05D2 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 2680 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 2680 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 0029 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 05D2 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 2680 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 2680 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 0029 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 05D2 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 0029 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 05D2 0029 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 2680 05D2 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 05D2 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 2680 0029 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 0029 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0029 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 0029 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 05D2 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 0029 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 2680 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 2680 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 2680 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0029 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 05D2 0028 0029;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 0029 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0028 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 2680 0028 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 2680 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 2680 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0029 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 2680 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0029 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 05D2 0028 0029;0;0;0 0 1 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 05D0 0029 05D1 2680 05D2 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0028 05D2 0029;0;0;0 0 1 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 05D0 0029 05D1 2680 0028 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 2680 0028 0029 05D2;0;0;0 0 1 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 05D0 0029 05D1 2680 0028 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 2680 05D2 0029;0;0;0 0 1 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 05D0 0029 05D1 0028 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 2680 0029 05D2;0;0;0 0 1 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 05D0 0029 05D1 0028 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0029 2680 05D2;0;0;0 0 1 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 05D0 0029 05D1 0028 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 2680 05D2 0029;0;0;0 0 1 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 05D0 0029 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 2680 0029 05D2;0;0;0 0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0029 2680 05D2;0;0;0 0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 2680 05D2 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 0028 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 2680 0029 05D2;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 0028 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0029 2680 05D2;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0028 0029 05D0 0028 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, L, ON and (()() +05D0 0028 05D1 0061 2680 0028 0029 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 2680 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 2680 0029 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 2680 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 2680 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 2680 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 0028 2680 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 0028 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 0028 0029 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 0028 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 2680 0029 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 2680 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 2680 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 2680 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0028 2680 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 0028 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0028 0029 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 0028 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 2680 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0061 2680 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0028 2680 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0061 0028 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0028 0029 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0061 0028 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0061 2680 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0061 0029 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 2680 0029 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 2680 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 2680 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 2680 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0028 2680 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 0028 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0028 0029 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 0028 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 2680 0028 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0061 2680 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0028 2680 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0061 0028 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0028 0029 2680;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0061 0028 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0061 2680 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0061 0029 2680;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 2680 0028 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0061 2680 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0028 2680 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0061 0028 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0028 0029 2680;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0061 0028 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0061 2680 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0061 0029 2680;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0061 2680 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 05D1 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0061 0029 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 05D1 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 2680 0029 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 2680 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 2680 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 2680 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0028 2680 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 0028 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0028 0029 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 0028 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 2680 0028 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0061 2680 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0028 2680 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0061 0028 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0028 0029 2680;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0061 0028 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0061 2680 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0061 0029 2680;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 2680 0028 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0061 2680 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0028 2680 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0061 0028 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0028 0029 2680;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0061 0028 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0061 2680 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0061 0029 2680;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0061 2680 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 05D1 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0061 0029 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 05D1 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 2680 0028 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0061 2680 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0028 2680 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0061 0028 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0028 0029 2680;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0061 0028 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0061 2680 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0061 0029 2680;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0061 2680 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0061 0029 2680;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0061 2680 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 05D1 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0061 0029 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 05D1 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, L, L and (()() +05D0 0028 05D1 0061 0028 0062 0029 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0062 0029 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 05D1 0061 0028 0029 0062 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 0062 0028 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 05D1 0061 0028 0029 0028 0062 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 0028 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 05D1 0061 0028 0029 0028 0029 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 0028 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 05D1 0028 0061 0029 0062 0028 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0028 0062 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0028 0029 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0028 0062 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0028 0029 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0061 0029 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0062 0028 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0028 0062 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0028 0029 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0028 0062 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0028 0029 0062;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0061 0029 0062;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0028 0062 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0028 0029 0062;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0061 0029 0062;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0061 0029 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 05D1 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0062 0028 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 0062 0028 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0028 0062 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 0028 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0028 0029 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 0028 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0028 0062 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0028 0029 0062;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0061 0029 0062;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0028 0062 0029;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0028 0029 0062;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0061 0029 0062;0;0;0 1 1 1 1 0 0 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0061 0029 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 05D1 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0028 0062 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0061 0028 0062 0029;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0028 0029 0062;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0061 0028 0029 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0061 0029 0062;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0061 0029 0062;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0061 0029 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 05D1 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# R, R, L, R and (()() +05D0 0028 05D1 0061 05D2 0028 0029 0028 0029;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 05D2 0028 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 05D2 0029 0028 0029;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 05D2 0029 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 05D2 0028 0029;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 05D2 0028 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 0028 05D2 0029;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 0028 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 0029 0028 0029 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0029 0028 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 05D2 0029 0028 0029;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 05D2 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 05D2 0028 0029;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 05D2 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0028 05D2 0029;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 0029 0028 0029 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 0029 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 05D2 0028 0029;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0061 05D2 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0028 05D2 0029;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0061 0028 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0061 0028 0029 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0061 0028 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0061 05D2 0029;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 0061 0029 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 05D2 0029 0028 0029;0;0;1 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 05D2 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 05D2 0028 0029;0;0;1 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 05D2 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0028 05D2 0029;0;0;1 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 0029 0028 0029 05D2;0;0;1 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 0029 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 05D2 0028 0029;0;0;1 1 1 1 1 0 1 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0061 05D2 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0028 05D2 0029;0;0;1 1 1 1 1 0 0 1 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0061 0028 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0061 0028 0029 05D2;0;0;1 1 1 1 1 0 0 0 1;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0061 0028 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0061 05D2 0029;0;0;1 1 1 1 1 0 0 1 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 0061 0029 05D2;0;0;1 1 1 1 1 0 0 0 1;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 05D2 0028 0029;0;0;1 1 1 1 1 0 1 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0061 05D2 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0028 05D2 0029;0;0;1 1 1 1 1 0 0 1 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0061 0028 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0061 0028 0029 05D2;0;0;1 1 1 1 1 0 0 0 1;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0061 0028 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0061 05D2 0029;0;0;1 1 1 1 1 0 0 1 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 0061 0029 05D2;0;0;1 1 1 1 1 0 0 0 1;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0061 05D2 0029;0;0;1 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 0028 05D1 0061 0029 05D2;0;0;1 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0029 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 05D2 0029 0028 0029;0;0;0 1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 05D2 0029 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 05D2 0028 0029;0;0;0 1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 05D2 0028 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0028 05D2 0029;0;0;0 1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 0028 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 0029 0028 0029 05D2;0;0;0 1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 0029 0028 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 05D2 0028 0029;0;0;0 1 1 1 1 0 1 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0061 05D2 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0028 05D2 0029;0;0;0 1 1 1 1 0 0 1 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0061 0028 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0061 0028 0029 05D2;0;0;0 1 1 1 1 0 0 0 1;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0061 0028 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0061 05D2 0029;0;0;0 1 1 1 1 0 0 1 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 0061 0029 05D2;0;0;0 1 1 1 1 0 0 0 1;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 05D2 0028 0029;0;0;0 1 1 1 1 0 1 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0061 05D2 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0028 05D2 0029;0;0;0 1 1 1 1 0 0 1 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0061 0028 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0061 0028 0029 05D2;0;0;0 1 1 1 1 0 0 0 1;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0061 0028 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0061 05D2 0029;0;0;0 1 1 1 1 0 0 1 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 0061 0029 05D2;0;0;0 1 1 1 1 0 0 0 1;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0061 05D2 0029;0;0;0 1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 0028 05D1 0061 0029 05D2;0;0;0 1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0029 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 05D2 0028 0029;0;0;0 0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0061 05D2 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0028 05D2 0029;0;0;0 0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0061 0028 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0061 0028 0029 05D2;0;0;0 0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0061 0028 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0061 05D2 0029;0;0;0 0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 0061 0029 05D2;0;0;0 0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0061 05D2 0029;0;0;0 0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 0028 05D1 0061 0029 05D2;0;0;0 0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0061 05D2 0029;0;0;0 0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 05D1 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0029 05D0 0028 05D1 0061 0029 05D2;0;0;0 0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0029 05D0 0028 05D1 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, R, ON and (()() +05D0 0028 05D1 0028 05D2 2680 0029 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 05D2 2680 0029 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 2680 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 05D2 0029 2680 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0028 2680 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 05D2 0029 0028 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0028 0029 2680;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 05D2 0029 0028 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 2680 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 0029 05D2 2680 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 2680 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 0029 05D2 0028 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 0029 2680;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 0029 05D2 0028 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 0029 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 2680 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 0029 05D2 2680 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 2680 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 0029 05D2 0028 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 0029 2680;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 0029 05D2 0028 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 0029 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 0029 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 2680 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 0029 05D2 2680 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0028 2680 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 0029 05D2 0028 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0028 0029 2680;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 0029 05D2 0028 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 05D2 2680 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 05D2 0029 2680;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 0029 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 05D2 2680 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 05D2 0029 2680;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 0029 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 05D2 2680 0029;0;0;0 0 1 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 05D0 0029 05D1 0028 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 05D2 0029 2680;0;0;0 0 1 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 05D0 0029 05D1 0028 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, R, L and (()() +05D0 0028 05D1 0028 05D2 0061 0029 0028 0029;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 05D2 0061 0029 0028 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 05D2 0029 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 05D2 0029 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 05D2 0029 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 0029 05D2 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 0029 05D2 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 05D1 0028 0029 05D2 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 0061 0029;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0029 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 0029 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0061 0028 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 0029 05D2 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 0061 0029;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 0029 05D2 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 0029 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 0029 05D2 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 0061 0029;0;0;1 1 1 1 1 0 1 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 05D1 0029 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 0029 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 0061 0029;0;0;1 1 1 1 1 0 1 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 0028 0029 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 0029 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0061 0028 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 0029 05D2 0061 0028 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0028 0061 0029;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 0029 05D2 0028 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0028 0029 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 0029 05D2 0028 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 05D2 0061 0029;0;0;0 1 1 1 1 0 1 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 05D1 0029 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 05D2 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 0029 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 05D2 0061 0029;0;0;0 1 1 1 1 0 1 0 0;0 4 3 2 1 5 6 7 8 +0028 05D0 0028 0029 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 05D2 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 0029 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 05D2 0061 0029;0;0;0 0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0029 05D1 0028 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 05D2 0029 0061;0;0;0 0 1 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 05D0 0029 05D1 0028 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, R, R, R and (()() +05D0 0028 05D1 0028 05D2 0029 05D3 0028 0029;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 05D2 0029 05D3 0028 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0028 05D3 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0028 05D3 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0028 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 0029 0028 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 05D3 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 05D3 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 05D2 0028 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0029 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 05D3 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 05D3 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 05D2 0028 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0029 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0029 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0028 05D3 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 05D2 0028 05D3 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 05D2 0028 0029 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 05D2 0028 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0029 0028 05D2 0029 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 0029 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0029 05D1 0028 05D2 0029 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 0029 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0029 05D1 0028 05D2 0029 05D3;0;0;0 0 1 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 05D0 0029 05D1 0028 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# (([]) +0028 0028 005B 005D 0029;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 005B 005D 0029;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON and (([]) +2680 0028 0028 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 2680 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 2680 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 005D 2680 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 005D 2680 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 005D 0029 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 005D 0029 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L and (([]) +0061 0028 0028 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 005B 005D 0029;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 005B 005D 0029;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 005B 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 005B 005D 0029;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 005B 0061 005D 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 0061 005D 0029;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 005B 005D 0061 0029;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 005D 0061 0029;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 005B 005D 0029 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R and (([]) +05D0 0028 0028 005B 005D 0029;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0029;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0029;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 005B 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0029;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 005B 05D0 005D 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0029;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 005B 005D 05D0 0029;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 005B 005D 0029 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON and (([]) +2680 0028 2681 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L and (([]) +2680 0028 0061 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0029 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 005D 0029 2680 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R and (([]) +2680 0028 05D0 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 05D0 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 005D 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 005B 005D 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 05D0 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 005D 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 005B 005D 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 05D0 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 005D 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 005B 005D 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 05D0 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 005D 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 2680 005D 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 2680 05D0 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 005D 2680 0029 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 005D 0029 2680 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON and (([]) +0061 2680 0028 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 2680 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0029 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 005B 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 005B 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 2680 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 005D 2680 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 005D 0029 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 2680 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 005D 2680 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 005D 0029 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 0061 2680 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 0029 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 0061 0029 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# L, L and (([]) +0061 0028 0062 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 005D 0029;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 005B 005D 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 0062 005D 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 005D 0062 0029;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0061 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 005D 0029 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0028 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 0062 005D 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 005D 0062 0029;1;1;1 1 2 2 2 2 1;6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 005D 0029 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 005D 0062 0029;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 005D 0029 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 2 1 2;6 5 4 3 2 1 0 + +# L, R and (([]) +0061 0028 05D0 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 005B 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 005B 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 05D0 005D 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 005D 05D0 0029;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 005B 005D 0029 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 05D0 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 005D 05D0 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 0061 005D 0029 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 0061 05D0 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 005D 0061 0029 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON and (([]) +05D0 2680 0028 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 2680 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 005D 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0029 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 005D 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 2680 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 005D 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0029 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 005D 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 2680 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 005D 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 005D 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 2680 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 005D 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0029 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 005D 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 05D0 2680 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0029 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 05D0 0029 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L and (([]) +05D0 0028 0061 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 0029;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0029 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 005B 005D 0029;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 0061 005D 0029;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 0029;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0029 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 0029;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0029 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R and (([]) +05D0 0028 05D1 0028 005B 005D 0029;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0029;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0029 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0028 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 0;0 1 5 4 3 2 6 +0028 0028 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 1 0 1;0 1 2 3 4 5 6 +0028 0028 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON and (([]) +2680 0028 2681 0028 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L and (([]) +2680 0028 2681 0061 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0061 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0029 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0029 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, R and (([]) +2680 0028 2681 05D0 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 2681 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 2681 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 2681 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 2681 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 2681 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 2681 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 2681 05D0 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 2681 0029 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 0029 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON and (([]) +2680 0028 0061 2681 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 2681 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 005D 2681 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 005D 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 0061 2681 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 0061 0029 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L and (([]) +2680 0028 0061 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +2680 0028 0028 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 2680 0028 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# ON, L, R and (([]) +2680 0028 0061 05D0 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 0061 05D0 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 0061 0029 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON and (([]) +2680 0028 05D0 2681 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 2681 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 2681 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 05D0 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0029 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 05D0 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L and (([]) +2680 0028 05D0 0061 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0061 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 05D0 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0029 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 05D0 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, R and (([]) +2680 0028 05D0 0028 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0028 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +2680 0028 0028 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0028 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 2680 0028 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0028 2680 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0028 2680 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 2680 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON and (([]) +0061 2680 0028 2681 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 2681 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 0029 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 005D 2681 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 005D 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 2680 0029 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 005D 2681 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 005D 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 2680 0029 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0029 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 2680 0029 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, L and (([]) +0061 2680 0028 0062 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 005B 005D 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 005B 005D 0029;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0062 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 0062 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 0029 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0029 2680 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 005B 005D 0029;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 005B 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 0062 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 005D 0062 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 005D 0029 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 005B 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 0062 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 005D 0062 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 005D 0029 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 0062 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 005D 0062 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 005D 0029 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 2680 0062 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 2680 0029 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 0029 2680 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0028 0061 2680 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 005B 005D 0029;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 0062 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 005D 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 2680 0062 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0028 0061 005B 005D 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 2680 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 0029 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0062 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 0062 005D 0029;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 005D 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 2680 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 2680 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 0029 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0062 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 2680 0062 0029;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0028 005B 005D 0061 2680 0029 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 2680 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 0029 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 0029 2680 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, ON, R and (([]) +0061 2680 0028 05D0 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 05D0 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 0029 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0029 2680 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 05D0 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 005D 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 005D 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 05D0 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 005D 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 005D 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 05D0 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 005D 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 005D 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 2680 05D0 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 2680 0029 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 0029 2680 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 2680 05D0 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 2680 0029 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 0029 2680 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 2680 05D0 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 2680 0029 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 0029 2680 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 2680 05D0 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 2680 0029 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 0029 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 0029 2680 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON and (([]) +0061 0028 0062 2680 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 005B 005D 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 005B 005D 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 2680 005D 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 2680 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 0029 2680;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 2680 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 2680 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 2680 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 2680 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0062 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 2680 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 0029 2680;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 005B 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 2680 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 2680 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 005D 2680 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 005D 0029 2680;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 2680 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 2680 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 005D 2680 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 005D 0029 2680;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 005D 0062 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 0062 2680 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 0062 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 0062 0029 2680;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0028 0061 005B 0062 2680 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 2680 005D 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 005D 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 005D 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 0061 005B 0062 005D 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 005D 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 0062 2680 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 0062 0029 2680;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 2680 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 0062 2680 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 0029 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 0062 0029 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, L, L and (([]) +0061 0028 0062 0028 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 005B 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0063 005D 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 005D 0063 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 005D 0029 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 005D 0063 0029;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 005D 0029 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 0062 0029 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0028 0061 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 1 2;7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 0062 0029 0063;1;1;1 1 1 2 1 2 1 2;7 6 5 4 3 2 1 0 + +# L, L, R and (([]) +0061 0028 0062 05D0 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 005B 005D 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 005B 005D 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 05D0 005D 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 05D0 0029;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 0029 05D0;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 005B 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 05D0 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 05D0 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 05D0 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 05D0 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0028 0061 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 005B 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 05D0 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 005D 05D0 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 005D 0029 05D0;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 05D0 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 005D 05D0 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 005D 0029 05D0;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 0062 05D0 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 0062 0029 05D0;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0028 0061 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 05D0 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 005D 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 0061 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 005D 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 0062 05D0 0029;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 0062 0029 05D0;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 0062 05D0 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 0062 0029 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON and (([]) +0061 0028 05D0 2680 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 2680 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 005D 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 005D 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 2680 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 005D 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 005D 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 2680 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 005D 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 005D 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 05D0 2680 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 05D0 0029 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 2680 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 005D 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 005D 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 2680 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 005D 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 005D 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 2680 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 005D 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 005D 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 05D0 2680 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 05D0 0029 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 2680 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 005D 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 005D 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 05D0 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 05D0 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 2680 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 005D 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 005D 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 05D0 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 05D0 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 2680 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 05D0 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0029 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 05D0 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, L and (([]) +0061 0028 05D0 0062 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 005B 005D 0029;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 005B 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 005B 005D 0029;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 0062 005D 0029;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 005D 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 05D0 0062 0029;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 005B 005D 0029;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 005B 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 005B 005D 0029;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 0062 005D 0029;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 005D 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 005D 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 05D0 0062 0029;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 05D0 0029 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 005B 005D 0029;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 0062 005D 0029;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 005D 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 05D0 0062 0029;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 005D 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 0062 005D 0029;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0062 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 005D 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 05D0 0062 0029;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 05D0 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0062 0029;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 05D0 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0029 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 05D0 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, R and (([]) +0061 0028 05D0 0028 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 005B 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0028 05D0 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0061 0028 0028 05D0 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 005B 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 0028 05D0 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0061 0028 05D0 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0028 0061 05D0 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 0;0 1 2 6 5 4 3 7 +0028 0028 0061 05D0 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 005D 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 0061 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON and (([]) +05D0 2680 0028 2681 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 2681 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0029 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 2681 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0029 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 2681 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0029 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0029 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 2680 0029 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L and (([]) +05D0 2680 0028 0061 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0061 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0029 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0029 2680 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0061 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0029 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0029 2680 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0061 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0029 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0029 2680 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0061 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0029 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0029 2680 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0061 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 2680 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0029 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 2680 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0029 2680 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 0029 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, R and (([]) +05D0 2680 0028 05D1 0028 005B 005D 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 2680 0028 05D1 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 0029;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 2680 05D1 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0029 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0029 2680 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 005D 0029;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 05D1 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0029 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 05D1 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0029 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 05D1 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0029 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 05D1 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0029 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0029 2680 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 005D 0029;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0028 05D0 2680 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0028 05D0 2680 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0028 05D0 005B 2680 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0028 05D0 005B 2680 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 05D1 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0028 05D0 005B 005D 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 005D 0029;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 005B 05D0 2680 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0029 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 05D1 0029;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0028 005B 005D 05D0 2680 05D1 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 2680 0029 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0029 2680 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 0029 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON and (([]) +05D0 0028 0061 2680 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 2680 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 005D 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 005D 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 2680 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 005D 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 005D 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 2680 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 0029 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 2680 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 005D 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 005D 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 2680 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 005D 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 005D 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 2680 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 0029 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 2680 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 005D 2680 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 005D 0029 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 2680 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 005D 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 005D 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 2680 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 0029 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 005D 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 2680 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 005D 2680 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 005D 0029 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 2680 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 0029 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 2680 0029;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 0061 2680 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 0029 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 0061 0029 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, L and (([]) +05D0 0028 0061 0028 0062 005B 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +05D0 0028 0028 0061 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 05D0 0028 0061 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0062 0029;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 0029 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 1;7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0062 0029;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 005D 0062 0029;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 005D 0029 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 0029 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 0029 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 0061 0029 0062;1;1;1 1 1 1 1 2 1 2;7 6 5 4 3 2 1 0 + +# R, L, R and (([]) +05D0 0028 0061 05D1 0028 005B 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 005D 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 05D1 0029;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 005D 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 05D1 0029;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 0029 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 005D 0029;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 05D1 0029;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 005D 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 05D1 0029;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 0029 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 05D1 0029;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 0029 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON and (([]) +05D0 0028 05D1 2680 0028 005B 005D 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 2680 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 2680 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 2680 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 2680 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 005D 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0029 2680;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 005D 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 005B 005D 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 05D1 005D 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029 2680;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 005D 05D1 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 2680 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 2680 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0029 2680;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 005B 005D 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 2680 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 2680 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0029 2680;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 05D1 005D 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 2680 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 05D1 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0029 2680;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 005D 05D1 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 005D 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0028 05D0 005B 05D1 2680 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 05D1 005D 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 05D1 005D 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 2680 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 005D 05D1 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0029 2680;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 005D 05D1 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 2680 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 05D1 2680 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0029 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 05D1 0029 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, L and (([]) +05D0 0028 05D1 0061 0028 005B 005D 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0061 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 005D 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 005D 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0061 0029;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0029 0061;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 005D 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0061 0029;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 005D 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0061 0029;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0061 0029;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 005D 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0061 0029;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0029 0061;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 005D 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0061 0029;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0029 0061;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0061 0029;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0029 0061;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 005D 0029;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0061 0029;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0029 0061;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0061 0029;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0029 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, R and (([]) +05D0 0028 05D1 0028 05D2 005B 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 005D 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0028 05D0 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 0 1;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, ON, ON and (([]) +2680 0028 2681 0028 2682 005B 2683 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 2683 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 005D 2683 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 005D 2683 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 005D 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 005D 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 005D 2683 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 005D 2683 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 005D 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 005D 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 005D 2683 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 005D 2683 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 005D 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 005D 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 005D 2683 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 005D 2683 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 005D 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 005D 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 2682 0029 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 2682 0029 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, ON, L and (([]) +2680 0028 2681 0028 2682 0061 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 0061 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 005D 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 005D 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0061 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 005D 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 005D 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0061 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 005D 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 005D 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0061 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 005D 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 005D 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 2682 0061 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 2682 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 2682 0029 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 2682 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0029 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 0029 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, ON, ON, R and (([]) +2680 0028 2681 0028 2682 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 05D0 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 05D0 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 005D 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 005D 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 2682 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 2682 05D0 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 2682 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 2682 0029 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0029 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 0029 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, L, ON and (([]) +2680 0028 2681 0061 2682 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 2682 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 2682 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 2682 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 005D 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 005D 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 2682 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 2682 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 005D 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 005D 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 2682 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 005D 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 005D 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 2682 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 2682 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 005D 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 005D 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 2682 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 005D 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 005D 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 2682 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 005D 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 005D 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 2682 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 2682 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 005D 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 005D 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 2682 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 005D 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 005D 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 2682 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 005D 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 005D 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 2682 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 005D 2682 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 005D 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0061 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 0061 2682 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0061 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 0061 0029 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, L, L and (([]) +2680 0028 2681 0061 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0062 005B 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 2681 0061 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 2681 0061 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 2681 0061 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 005D 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 2681 0028 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +2680 0028 2681 0028 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +2680 0028 2681 0028 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +2680 0028 0028 2681 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +2680 0028 0028 2681 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 2680 0028 2681 0061 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 2680 0028 2681 0061 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0061 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# ON, ON, L, R and (([]) +2680 0028 2681 0061 05D0 0028 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 05D0 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 05D0 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 05D0 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 05D0 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 005D 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 005D 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 05D0 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 05D0 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 005D 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 005D 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 05D0 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 005D 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 005D 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 05D0 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 05D0 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 005D 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 005D 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 05D0 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 005D 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 005D 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 05D0 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 005D 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 005D 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0061 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 0061 05D0 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 0061 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 0061 0029 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, ON and (([]) +2680 0028 2681 05D0 2682 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 2682 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 2682 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 2682 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 005D 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 005D 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 2682 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 2682 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 005D 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 005D 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 2682 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 005D 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 005D 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 2682 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 2682 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 005D 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 005D 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 2682 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 005D 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 005D 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 2682 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 005D 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 005D 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 2682 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 2682 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 005D 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 005D 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 2682 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 005D 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 005D 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 2682 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 005D 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 005D 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 2682 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 005D 2682 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 005D 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 05D0 2682 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 05D0 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 05D0 0029 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 05D0 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, L and (([]) +2680 0028 2681 05D0 0061 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0061 0028 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0061 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 0061 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 005D 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 005D 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0061 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0061 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 005D 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 005D 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0061 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 005D 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 005D 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0061 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0061 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 005D 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 005D 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0061 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 005D 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 005D 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0061 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 005D 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 005D 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0061 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0061 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 005D 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 005D 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0061 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 005D 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 005D 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0061 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 005D 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 005D 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0061 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 005D 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 005D 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 05D0 0061 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 05D0 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 05D0 0029 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 05D0 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, R and (([]) +2680 0028 2681 05D0 0028 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 2681 05D0 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 2681 05D0 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 2681 05D0 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 005D 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 2681 05D0 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 2681 0028 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 2681 0028 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 0028 2681 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 0028 2681 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 2680 0028 2681 05D0 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 2680 0028 2681 05D0 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 005D 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 2681 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 2681 05D0 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, ON, ON and (([]) +2680 0028 0061 2681 0028 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 2682 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 2682 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 005D 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 005D 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 2682 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 005D 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 005D 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 005D 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 005D 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 2682 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 005D 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 005D 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 005D 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 005D 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 2681 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 005D 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 005D 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 2681 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 2682 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 2682 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 005D 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 005D 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 2682 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 005D 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 005D 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 005D 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 005D 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 2682 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 005D 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 005D 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 005D 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 005D 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 2681 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 005D 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 005D 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 2681 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 2682 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 005D 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 005D 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 005D 2682 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 005D 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 2681 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 005D 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 005D 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 2681 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 005D 2682 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 005D 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 2681 0029 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 2681 0029 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, ON, L and (([]) +2680 0028 0061 2681 0062 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0062 0028 005B 005D 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +2680 0028 0061 2681 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 2681 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 2681 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 2681 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 2681 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 2681 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 0029 2681 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0028 0061 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0062 005B 005D 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 0028 0061 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 0028 0061 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 0028 0061 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 0028 0061 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 2681 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 0028 0061 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 2681 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 0029 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 0062 005D 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +2680 0028 0028 005B 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 2681 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 2681 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 0029 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0062 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0062 0028 005B 005D 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 2680 0061 2681 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 2681 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 2681 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 2681 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 2681 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 2681 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 0029 2681 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0028 0061 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0062 005B 005D 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 0028 0061 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 0028 0061 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 0028 0061 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 0028 0061 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 2681 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 0028 0061 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 2681 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 0029 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 0062 005D 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 2680 0028 005B 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 2681 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 2681 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 0029 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0062 005B 005D 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 2680 0061 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 2680 0061 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 2680 0061 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 2680 0061 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 2681 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 2680 0061 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 2681 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 0029 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 0062 005D 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 2680 005B 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 2681 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 2681 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 0029 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 0062 005D 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 005B 2680 0061 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 2681 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 2681 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 0029 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 2681 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 2681 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 0029 2681 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, L, ON, R and (([]) +2680 0028 0061 2681 05D0 0028 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 05D0 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 05D0 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0028 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 05D0 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 05D0 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 05D0 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 05D0 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 05D0 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 005D 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 005D 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 05D0 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 005D 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 005D 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 2681 05D0 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 2681 0029 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 2681 05D0 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 2681 0029 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 0029 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, L, ON and (([]) +2680 0028 0061 0028 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 2681 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 2681 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 005D 2681 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 005D 0029 2681;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 2681 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 005D 2681 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 005D 0029 2681;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 0062 2681 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 0062 0029 2681;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0028 0061 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 2681 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 0028 0061 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 005D 2681 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 005D 0029 2681;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 0062 2681 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 0062 0029 2681;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 005B 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 0062 2681 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 0062 0029 2681;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 2681 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 2681 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 005D 2681 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 005D 0029 2681;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 2681 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 005D 2681 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 005D 0029 2681;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 0062 2681 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 0062 0029 2681;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0028 0061 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 2681 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 0028 0061 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 005D 2681 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 005D 0029 2681;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 0062 2681 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 0062 0029 2681;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 005B 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 0062 2681 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 0062 0029 2681;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 2681 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 2680 0061 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 005D 2681 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 005D 0029 2681;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 0062 2681 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 0062 0029 2681;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 005B 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 0062 2681 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 0062 0029 2681;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 0062 2681 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 0062 0029 2681;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, L, L and (([]) +2680 0028 0061 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 0063 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 005D 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0028 0061 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 005D 0063 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 0028 0061 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 005D 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 0062 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +2680 0028 0028 005B 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 0063 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 005D 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0028 0061 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 005D 0063 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 0028 0061 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 005D 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 0062 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +0028 2680 0028 005B 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 005D 0063 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 2680 0061 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 005D 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 0062 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +0028 0028 2680 005B 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# ON, L, L, R and (([]) +2680 0028 0061 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 05D0 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 05D0 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 005D 05D0 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 005D 0029 05D0;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 05D0 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 005D 05D0 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 005D 0029 05D0;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 0062 05D0 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 0062 0029 05D0;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0028 0061 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 05D0 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 005D 05D0 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 005D 0029 05D0;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 0062 05D0 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 0062 0029 05D0;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 005B 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 0062 05D0 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 0062 0029 05D0;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 05D0 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 05D0 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 005D 05D0 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 005D 0029 05D0;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 05D0 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 005D 05D0 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 005D 0029 05D0;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 0062 05D0 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 0062 0029 05D0;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0028 0061 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 05D0 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 005D 05D0 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 005D 0029 05D0;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 0062 05D0 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 0062 0029 05D0;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 005B 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 0062 05D0 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 0062 0029 05D0;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 05D0 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 005D 05D0 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 005D 0029 05D0;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 0062 05D0 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 0062 0029 05D0;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 005B 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 0062 05D0 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 0062 0029 05D0;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 0062 05D0 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 0062 0029 05D0;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, R, ON and (([]) +2680 0028 0061 05D0 2681 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 2681 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 2681 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 05D0 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 05D0 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, R, L and (([]) +2680 0028 0061 05D0 0062 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0062 0028 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0062 005B 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 0062 005D 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0062 0028 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0062 005B 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 0062 005D 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0062 005B 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 0062 005D 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 0062 005D 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 05D0 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 05D0 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, L, R, R and (([]) +2680 0028 0061 05D0 0028 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 0061 05D0 0028 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 0061 05D0 0028 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 0061 05D0 0028 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 005D 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 0061 05D0 0028 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 0061 0028 05D0 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 0061 0028 05D0 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 0028 0061 05D0 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +2680 0028 0028 0061 05D0 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 005D 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 005D 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 2680 0061 05D0 0028 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 2680 0061 05D0 0028 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 2680 0061 05D0 0028 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 005D 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 2680 0061 05D0 0028 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 2680 0061 0028 05D0 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 2680 0061 0028 05D0 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 2680 0028 0061 05D0 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 2680 0028 0061 05D0 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 005D 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 005D 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 2680 0061 05D0 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 2680 0061 05D0 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 005D 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 005D 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 005D 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 0061 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 0061 05D0 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, ON and (([]) +2680 0028 05D0 2681 0028 2682 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 2682 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 005D 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 005D 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 2682 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 005D 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 005D 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 005D 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 005D 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 2682 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 005D 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 005D 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 005D 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 005D 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 2681 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 005D 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 005D 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 2681 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 2682 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 2682 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 005D 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 005D 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 2682 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 005D 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 005D 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 005D 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 005D 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 2682 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 005D 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 005D 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 005D 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 005D 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 2681 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 005D 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 005D 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 2681 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 2682 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 005D 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 005D 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 005D 2682 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 005D 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 2681 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 005D 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 005D 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 2681 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 005D 2682 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 005D 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 2681 0029 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 2681 0029 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, L and (([]) +2680 0028 05D0 2681 0061 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0061 0028 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0061 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 005D 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 005D 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0061 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0061 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 005D 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 005D 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0061 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 005D 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 005D 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 2681 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 2681 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0061 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 005D 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 005D 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 2681 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 2681 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0061 0028 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0061 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0061 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 005D 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 005D 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0061 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 005D 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 005D 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0061 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0061 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 005D 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 005D 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0061 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 005D 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 005D 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 2681 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 2681 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0061 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 005D 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 005D 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 2681 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 2681 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0061 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0061 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 005D 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 005D 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0061 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 005D 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 005D 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 2681 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 2681 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0061 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 005D 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 005D 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 2681 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 2681 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0061 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 005D 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 005D 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 2681 0061 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 2681 0029 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 2681 0061 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 2681 0029 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0029 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, R and (([]) +2680 0028 05D0 2681 05D1 0028 005B 005D 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +2680 0028 05D0 2681 05D1 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 2681 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 2681 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 2681 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 2681 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 2681 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 2681 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0029 2681 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0028 05D0 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0028 05D0 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0028 05D0 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0028 05D0 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 2681 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0028 05D0 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 2681 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0029 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 05D1 005D 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +2680 0028 0028 005B 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 2681 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 2681 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0029 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +2680 0028 0028 005B 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0028 005B 005D 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 2680 05D0 2681 05D1 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 2681 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 2681 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 2681 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 2681 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 2681 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 2681 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0029 2681 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0028 05D0 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0028 05D0 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0028 05D0 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0028 05D0 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 2681 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0028 05D0 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 2681 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0029 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 05D1 005D 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 2680 0028 005B 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 2681 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 2681 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0029 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 2680 0028 005B 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 2680 05D0 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 2680 05D0 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 2680 05D0 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 2680 05D0 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 2681 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 2680 05D0 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 2681 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0029 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 05D1 005D 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 2680 005B 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 2681 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 2681 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0029 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 2680 005B 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 05D1 005D 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 2680 05D0 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 2681 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 2681 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0029 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 2680 005D 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 2681 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 005D 2680 05D0 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 2681 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0029 2681 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, L, ON and (([]) +2680 0028 05D0 0061 2681 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 2681 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 2681 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0061 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0061 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, L, L and (([]) +2680 0028 05D0 0061 0028 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0062 005B 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 05D0 0061 0028 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 05D0 0061 0028 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 05D0 0061 0028 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 005D 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 05D0 0028 0061 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +2680 0028 05D0 0028 0061 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +2680 0028 05D0 0028 0061 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +2680 0028 0028 05D0 0061 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +2680 0028 0028 05D0 0061 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0062 005B 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 2680 05D0 0061 0028 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 2680 05D0 0061 0028 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 2680 05D0 0061 0028 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 005D 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 2680 05D0 0028 0061 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 2680 05D0 0028 0061 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 2680 05D0 0028 0061 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 2680 0028 05D0 0061 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 2680 0028 05D0 0061 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 2680 05D0 0061 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 2680 05D0 0061 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0061 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# ON, R, L, R and (([]) +2680 0028 05D0 0061 05D1 0028 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 05D1 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 05D1 005B 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 05D1 005D 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 005D 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0028 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 05D1 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 05D1 005B 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 05D1 005D 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 005D 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 05D1 005B 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 05D1 005D 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 005D 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 05D1 005D 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 005D 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 005D 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0061 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 2680 05D0 0061 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 2680 05D0 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, R, ON and (([]) +2680 0028 05D0 0028 05D1 2681 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 2681 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 005D 2681 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 005D 0029 2681;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 2681 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 005D 2681 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 005D 0029 2681;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 05D1 2681 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 05D1 0029 2681;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 2681 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0028 05D0 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 005D 2681 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 005D 0029 2681;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 05D1 2681 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 05D1 0029 2681;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 05D1 2681 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 05D1 0029 2681;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 2681 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 2681 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 005D 2681 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 005D 0029 2681;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 2681 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 005D 2681 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 005D 0029 2681;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 05D1 2681 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 05D1 0029 2681;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 2681 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0028 05D0 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 005D 2681 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 005D 0029 2681;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 05D1 2681 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 05D1 0029 2681;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 05D1 2681 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 05D1 0029 2681;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 2681 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 2680 05D0 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 005D 2681 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 005D 0029 2681;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 05D1 2681 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 05D1 0029 2681;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 05D1 2681 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 05D1 0029 2681;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 05D1 2681 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 05D1 0029 2681;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, R, L and (([]) +2680 0028 05D0 0028 05D1 0061 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 0061 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 005D 0061 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 005D 0029 0061;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0061 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 005D 0061 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 005D 0029 0061;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 05D1 0061 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 05D1 0029 0061;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0061 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 005D 0061 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 005D 0029 0061;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 05D1 0061 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 05D1 0029 0061;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 05D1 0061 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 05D1 0029 0061;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0061 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0061 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 005D 0061 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 005D 0029 0061;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0061 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 005D 0061 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 005D 0029 0061;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 05D1 0061 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 05D1 0029 0061;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0061 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 005D 0061 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 005D 0029 0061;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 05D1 0061 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 05D1 0029 0061;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 05D1 0061 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 05D1 0029 0061;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0061 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 005D 0061 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 005D 0029 0061;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 05D1 0061 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 05D1 0029 0061;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 05D1 0061 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 05D1 0029 0061;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 05D1 0061 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 05D1 0029 0061;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, R, R, R and (([]) +2680 0028 05D0 0028 05D1 005B 05D2 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 005D 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0028 05D0 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 05D2 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 005D 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0028 05D0 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 2680 05D0 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 005D 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, ON, ON and (([]) +0061 2680 0028 2681 0028 2682 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 2682 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 2682 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 005D 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 005D 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 2682 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 005D 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 005D 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 005D 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 005D 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 2682 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 005D 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 005D 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 005D 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 005D 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 005D 2682 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 005D 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 2681 0029 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 2682 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 2682 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 005D 2682 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 005D 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 005D 2682 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 005D 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 2681 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 005D 2682 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 005D 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 2681 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 2681 0029 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 005D 2682 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 005D 2682 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 005D 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 005D 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 2681 0029 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 2681 0029 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 2681 0029 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, ON, L and (([]) +0061 2680 0028 2681 0062 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0062 0028 005B 005D 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 2680 0028 2681 0028 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0062 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 005D 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 005D 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0062 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0062 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 005D 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 005D 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0062 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 005D 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 005D 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0062 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 005D 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 005D 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 2681 0062 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 2681 0029 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0029 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0062 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0062 005B 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 2681 005B 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 0062 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 2681 005B 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 005D 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 2681 005B 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 005D 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 0062 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 005D 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 005D 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 2681 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 2681 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 0029 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 0062 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 005D 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 005D 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 2681 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 2681 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 0029 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 2681 0062 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 2681 0029 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 0029 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 0029 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 2680 005B 2681 0062 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 2680 005B 2681 005D 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 2680 005B 2681 005D 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 2681 0062 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 2680 005B 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 2681 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 0029 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 2681 0062 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 005B 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 2681 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 0029 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 0029 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 2681 0062 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 2681 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 2681 0029 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 2681 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 0029 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 0029 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0029 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 0029 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, ON, ON, R and (([]) +0061 2680 0028 2681 05D0 0028 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 05D0 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 05D0 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 05D0 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 005D 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 005D 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 2681 05D0 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 2681 0029 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0029 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 05D0 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 05D0 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 005D 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 005D 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 05D0 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 005D 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 005D 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 05D0 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 005D 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 005D 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 2681 05D0 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 2681 0029 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 0029 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 05D0 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 005D 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 005D 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 2681 05D0 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 2681 0029 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 0029 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 2681 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 2681 05D0 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 2681 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 2681 0029 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 0029 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0029 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 0029 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, L, ON and (([]) +0061 2680 0028 0062 2681 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 2681 0028 005B 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 2681 005B 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 2681 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 005D 2681 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 005D 0029 2681;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 2681 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 2681 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0062 2681 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 2681 0028 005B 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 2681 005B 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 2681 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 005D 2681 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 005D 0029 2681;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 2681 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 2681 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 2681 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 2681 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 2681 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0062 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0062 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 2680 0062 2681 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 2681 0028 005B 005D 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 2681 005B 005D 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 2681 005D 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 005D 2681 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 005D 0029 2681;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 2681 005B 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 2681 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 005D 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 005D 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 2681 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 005D 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 005D 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 0062 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 0062 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 2681 005B 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 2681 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 005D 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 005D 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 2681 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 005D 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 005D 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 0062 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 0062 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 2681 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 005D 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 005D 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 0062 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 0062 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 0062 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 0062 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 2680 0062 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 2681 005B 005D 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 2681 005D 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 005D 2681 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 005D 0029 2681;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 005B 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 2681 005D 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 2680 005B 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 005D 2681 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 005D 0029 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 0062 2681 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 0062 0029 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 2681 005D 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 005B 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 005D 2681 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 005D 0029 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 0062 2681 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 0062 0029 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 0062 2681 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 0062 0029 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 005B 0061 2680 0062 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 2681 005D 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 005D 2681 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 005D 0029 2681;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 005D 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 0062 2681 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 0062 0029 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 0062 2681 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 0062 0029 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0062 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 0062 2681 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 005B 005D 0061 2680 0062 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 0062 0029 2681;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 + +# L, ON, L, L and (([]) +0061 2680 0028 0062 0028 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0063 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0063 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0062 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0063 005B 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0062 0028 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 0063 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0062 0028 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0062 0028 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 0063 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 0062 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 0063 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 0062 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 0062 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 0062 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 2680 0062 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 0063 005D 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 2680 0062 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 2680 0062 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 005D 0029 0063;1;1;1 1 2 2 2 1 1 1 2;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 005B 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 2680 005B 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 2 1 2;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 2 1 2;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 005B 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 005D 0029 0063;1;1;1 1 2 2 2 2 2 1 2;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 0062 0029 0063;1;1;1 1 2 2 2 2 2 1 2;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 0062 0029 0063;1;1;1 1 2 2 2 2 2 1 2;8 7 2 3 4 5 6 1 0 +0028 0028 005B 0061 2680 0062 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 005D 0063 0029;1;1;1 1 1 2 2 2 1 2 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 005D 0029 0063;1;1;1 1 1 2 2 2 1 1 2;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 005D 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0062 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 0062 0029 0063;1;1;1 1 1 1 2 2 2 1 2;8 7 4 5 6 3 2 1 0 + +# L, ON, L, R and (([]) +0061 2680 0028 0062 05D0 0028 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 05D0 0028 005B 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 05D0 005B 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 05D0 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 005D 05D0 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 005D 0029 05D0;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 05D0 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 05D0 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 05D0 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 05D0 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0062 05D0 0028 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 05D0 0028 005B 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 05D0 005B 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 05D0 005D 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 005D 05D0 0029;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 005D 0029 05D0;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 05D0 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 05D0 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 05D0 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 05D0 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 05D0 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 05D0 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 05D0 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 05D0 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 05D0 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 05D0 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0062 05D0 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 0062 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 2680 0062 05D0 0028 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 05D0 0028 005B 005D 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 05D0 005B 005D 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 05D0 005D 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 005D 05D0 0029;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 005D 0029 05D0;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 05D0 005B 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 05D0 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 005D 05D0 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 05D0 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 005D 05D0 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 0062 05D0 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 0062 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 05D0 005B 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 05D0 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 005D 05D0 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 05D0 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 005D 05D0 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 0062 05D0 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 0062 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 05D0 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 005D 05D0 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 0062 05D0 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 0062 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 0062 05D0 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 0062 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 2680 0062 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 05D0 005B 005D 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 05D0 005D 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 005D 05D0 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 005D 0029 05D0;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 005B 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 05D0 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 005D 05D0 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 005D 0029 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 0062 05D0 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 0062 0029 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 05D0 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 005D 05D0 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 005D 0029 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 0062 05D0 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 0062 0029 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 0062 05D0 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 0062 0029 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 005B 0061 2680 0062 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 05D0 005D 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 005D 05D0 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 005D 0029 05D0;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 005D 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 0062 05D0 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 0062 0029 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 0062 05D0 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 0062 0029 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 0062 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 0062 05D0 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 005B 005D 0061 2680 0062 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 0062 0029 05D0;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 + +# L, ON, R, ON and (([]) +0061 2680 0028 05D0 2681 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 2681 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 2681 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 05D0 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 05D0 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 2681 0028 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 2681 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 2681 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 2681 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 2681 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 05D0 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 05D0 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 2681 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 2681 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 05D0 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 05D0 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 2681 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 005D 2681 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 005D 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 05D0 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 05D0 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 05D0 2681 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 05D0 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 05D0 0029 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 05D0 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, R, L and (([]) +0061 2680 0028 05D0 0062 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0062 0028 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0062 0028 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 05D0 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 05D0 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0062 0028 005B 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0062 005B 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0062 005B 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 05D0 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 05D0 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0062 005B 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 05D0 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 05D0 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 05D0 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 05D0 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 05D0 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 05D0 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0062 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 05D0 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 05D0 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0062 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 005D 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 005D 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 05D0 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 05D0 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 05D0 0062 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 05D0 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 05D0 0029 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 05D0 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, ON, R, R and (([]) +0061 2680 0028 05D0 0028 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 2680 0028 05D0 0028 05D1 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 2680 0028 05D0 0028 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 2680 0028 05D0 0028 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 005D 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 2680 0028 05D0 0028 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 2680 0028 0028 05D0 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 2680 0028 0028 05D0 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 2680 05D0 0028 05D1 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 2680 05D0 0028 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 2680 05D0 0028 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 005D 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 2680 05D0 0028 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 2680 0028 05D0 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 2680 0028 05D0 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 0028 2680 05D0 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 0028 2680 05D0 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 005D 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 2680 05D0 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0061 2680 05D0 0028 05D1 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0061 2680 05D0 0028 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0061 2680 05D0 0028 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 005D 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0061 2680 05D0 0028 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0061 2680 0028 05D0 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0061 2680 0028 05D0 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0061 0028 2680 05D0 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0061 0028 2680 05D0 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 005D 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 2680 05D0 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 0061 2680 05D0 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 0061 2680 05D0 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 005D 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 2680 05D0 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 005D 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 2680 05D0 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 2680 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 2680 05D0 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, ON, ON and (([]) +0061 0028 0062 2680 0028 2681 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 2681 005B 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 2681 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 005D 2681 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 005D 0029 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 2681 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 005D 2681 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 005D 0029 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 005D 2681 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 005D 0029 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 2680 0029 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 2681 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 2680 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 2681 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 2680 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 2680 0029 2681;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 005B 2681 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 2681 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 2680 005B 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 005D 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 2680 005B 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 005D 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 005D 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 005D 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 2680 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 005D 2681 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 005D 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 2680 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 2680 0029 2681;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 005B 0062 2680 005D 2681 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 005D 2681 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 2680 005D 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 005D 0029 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 005D 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 2680 0029 2681;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 2680 0029 2681;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 2680 0029 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 2680 0029 2681;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, ON, L and (([]) +0061 0028 0062 2680 0063 0028 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0063 0028 005B 005D 0029;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0028 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0063 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0063 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 2680 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 2680 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0029 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0063 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 2680 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 2680 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0029 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0063 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 2680 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 2680 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0029 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 2680 0063 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 2680 0029 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 0029 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0063 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0063 005B 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 2680 005B 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 0063 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 2680 005B 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 2680 005B 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 0063 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 2680 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 2680 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 0029 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 0063 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 005D 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 005D 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 2680 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 2680 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 0029 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 2680 0063 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 2680 0029 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 0029 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 005B 0062 2680 0063 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 0063 005D 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 005B 0062 2680 005D 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 005B 0062 2680 005D 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 005D 0029 0063;1;1;1 1 2 2 2 2 2 1 2;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 005D 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 2680 0063 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 005B 0062 005D 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 2680 0029 0063;1;1;1 1 2 2 2 2 1 1 2;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 0062 005D 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 0029 2680 0063;1;1;1 1 2 2 2 2 1 1 2;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 2680 0063 0029;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 0028 0061 005B 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 2680 0029 0063;1;1;1 1 2 2 2 2 1 1 2;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 0029 2680 0063;1;1;1 1 2 2 2 2 1 1 2;8 7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 2680 0063 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 2680 0063 0029;1;1;1 1 1 2 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 2680 0029 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 2680 0029 0063;1;1;1 1 1 2 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 0029 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 0029 2680 0063;1;1;1 1 1 2 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, L, ON, R and (([]) +0061 0028 0062 2680 05D0 0028 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 05D0 0028 005B 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 05D0 005B 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 05D0 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 005D 05D0 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 005D 0029 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 05D0 005B 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 05D0 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 005D 05D0 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 005D 0029 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 05D0 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 005D 05D0 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 005D 0029 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 2680 05D0 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 2680 0029 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0029 2680 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 05D0 005B 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 05D0 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 05D0 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 2680 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 05D0 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 05D0 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 2680 05D0 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 2680 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0029 2680 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 2680 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 05D0 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 05D0 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 2680 05D0 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 2680 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0029 2680 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 2680 05D0 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 2680 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 0029 2680 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0028 0061 0028 0062 2680 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 05D0 005B 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 2680 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 05D0 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 2680 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 005D 05D0 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 2680 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 2680 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 05D0 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 005D 05D0 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 2680 05D0 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 2680 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 0029 2680 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 2680 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 05D0 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 005D 05D0 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 2680 05D0 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 2680 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 0029 2680 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 2680 05D0 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 2680 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 0029 2680 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0028 0061 005B 0062 2680 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 05D0 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 2680 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 005D 05D0 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 2680 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 005D 0029 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 005D 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 2680 05D0 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 0062 005D 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 2680 0029 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 0062 005D 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 0029 2680 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 2680 05D0 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 2680 0029 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 0029 2680 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 2680 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 2680 05D0 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 2680 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 2680 0029 05D0;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 0029 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 0029 2680 05D0;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, L, ON and (([]) +0061 0028 0062 0028 0063 2680 005B 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 2680 005B 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 2680 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 2680 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0063 2680 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 2680 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0063 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0063 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0063 2680 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 2680 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0063 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0063 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0063 2680 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0063 0029 2680;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0063 2680 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 2680 005D 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 0063 005D 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 005D 2680 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 0063 005D 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 005D 0029 2680;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 0063 2680 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 0063 0029 2680;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 0063 2680 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 0063 0029 2680;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 005B 0062 005D 0063 2680 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 0063 2680 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 005D 0063 0029 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 0063 0029 2680;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 + +# L, L, L, L and (([]) +0061 0028 0062 0028 0063 005B 0064 005D 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 0064 005D 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 0064 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 0064 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 0064 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 0064 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0063 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 0064 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 0064 0029;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0063 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0063 0029 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 005D 0064 0029;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 005D 0064 0029;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 0063 005D 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 005D 0029 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 0063 0029 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 0063 0029 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 005B 0062 005D 0063 0029 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 0063 0029 0064;1;1;1 1 2 2 2 2 2 1 2;8 7 2 3 4 5 6 1 0 + +# L, L, L, R and (([]) +0061 0028 0062 0028 0063 05D0 005B 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 05D0 005B 005D 0029;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0063 005B 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 05D0 005D 0029;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0063 005B 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 05D0 0029;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0063 005B 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0063 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 05D0 005D 0029;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0063 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 05D0 0029;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0063 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0063 05D0 0029;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 0063 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0063 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 05D0 005D 0029;1;1;2 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 0063 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 05D0 0029;1;1;2 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0061 0028 0028 0062 005B 0063 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 005D 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0063 05D0 0029;1;1;2 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0061 0028 0028 0062 005B 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 0063 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0063 05D0 0029;1;1;2 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 0063 0029 05D0;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0063 05D0 005D 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 05D0 005D 0029;1;1;1 2 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 0063 005D 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 005D 05D0 0029;1;1;1 2 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0061 0028 0062 005B 0063 005D 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 005D 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 0063 05D0 0029;1;1;1 2 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0061 0028 0062 005B 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 0063 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 0063 05D0 0029;1;1;1 2 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 0063 0029 05D0;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0028 0061 005B 0062 005D 0063 05D0 0029;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 0063 05D0 0029;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 005D 0063 0029 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 0063 0029 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 + +# L, L, R, ON and (([]) +0061 0028 0062 05D0 2680 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 2680 0028 005B 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 2680 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 2680 005B 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 2680 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 2680 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 005D 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 005D 2680 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 005D 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 005D 0029 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 2680 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 2680 005B 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 2680 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 2680 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 005D 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 005D 2680 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 005D 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 005D 0029 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 2680 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 2680 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 005D 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 005D 2680 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 005D 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 005D 0029 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 05D0 2680 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 05D0 0029 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 2680 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 2680 005B 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 2680 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 2680 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 005D 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 005D 2680 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 005D 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 005D 0029 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 2680 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 2680 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 005D 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 005D 2680 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 005D 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 005D 0029 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 005D 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 05D0 2680 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 005D 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 05D0 0029 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 2680 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 2680 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 005D 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 005D 2680 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 005D 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 005D 0029 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 05D0 2680 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 05D0 0029 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0062 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 05D0 2680 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0062 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 05D0 0029 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 2680 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 2680 005B 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 2680 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 2680 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 005D 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 005D 2680 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 005D 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 005D 0029 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 2680 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 2680 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 005D 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 005D 2680 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 005D 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 005D 0029 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 005D 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 05D0 2680 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 005D 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 05D0 0029 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 2680 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 2680 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 005D 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 005D 2680 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 005D 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 005D 0029 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 05D0 2680 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 05D0 0029 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0062 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 05D0 2680 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0062 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 05D0 0029 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 05D0 2680 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 2680 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 05D0 005D 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 005D 2680 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 05D0 005D 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 005D 0029 2680;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 005D 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 05D0 2680 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 0062 005D 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 05D0 0029 2680;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 05D0 2680 0029;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 05D0 0029 2680;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 05D0 2680 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 05D0 2680 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 05D0 0029 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 05D0 0029 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, R, L and (([]) +0061 0028 0062 05D0 0063 0028 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0063 0028 005B 005D 0029;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0063 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0063 005B 005D 0029;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 0063 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 0063 005D 0029;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 005D 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 005D 0063 0029;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 005D 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 005D 0029 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0063 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0063 005B 005D 0029;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0063 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 0063 005D 0029;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 005D 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 005D 0063 0029;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 005D 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 005D 0029 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0063 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 0063 005D 0029;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 005D 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 005D 0063 0029;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 005D 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 005D 0029 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 05D0 0063 0029;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 05D0 0029 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 0063 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0063 005B 005D 0029;1;1;2 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 0063 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 0063 005D 0029;1;1;2 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 005D 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 005D 0063 0029;1;1;2 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 005D 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 005D 0029 0063;1;1;2 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0063 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 0063 005D 0029;1;1;2 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 005D 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 005D 0063 0029;1;1;2 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 005D 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 005D 0029 0063;1;1;2 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 005D 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 05D0 0063 0029;1;1;2 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 005D 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 05D0 0029 0063;1;1;2 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 0063 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 0063 005D 0029;1;1;2 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 005D 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 005D 0063 0029;1;1;2 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 005D 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 005D 0029 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 05D0 0063 0029;1;1;2 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 05D0 0029 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0062 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 05D0 0063 0029;1;1;2 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0062 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 05D0 0029 0063;1;1;2 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 0063 005B 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0063 005B 005D 0029;1;1;1 2 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 0063 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 0063 005D 0029;1;1;1 2 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 005D 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 005D 0063 0029;1;1;1 2 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 005D 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 005D 0029 0063;1;1;1 2 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0063 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 0063 005D 0029;1;1;1 2 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 005D 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 005D 0063 0029;1;1;1 2 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 005D 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 005D 0029 0063;1;1;1 2 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 005D 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 05D0 0063 0029;1;1;1 2 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 005D 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 05D0 0029 0063;1;1;1 2 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 0063 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 0063 005D 0029;1;1;1 2 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 005D 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 005D 0063 0029;1;1;1 2 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 005D 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 005D 0029 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 05D0 0063 0029;1;1;1 2 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 05D0 0029 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0062 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 05D0 0063 0029;1;1;1 2 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0062 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 05D0 0029 0063;1;1;1 2 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 05D0 0063 005D 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 0063 005D 0029;1;1;1 1 2 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 05D0 005D 0063 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 005D 0063 0029;1;1;1 1 2 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 05D0 005D 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 005D 0029 0063;1;1;1 1 2 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 005D 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 05D0 0063 0029;1;1;1 1 2 2 2 2 1 2 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 0062 005D 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 05D0 0029 0063;1;1;1 1 2 2 2 2 1 1 2;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 05D0 0063 0029;1;1;1 1 2 2 2 2 1 2 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 05D0 0029 0063;1;1;1 1 2 2 2 2 1 1 2;8 7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 05D0 0063 0029;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 05D0 0063 0029;1;1;1 1 1 2 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 0062 05D0 0029 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 05D0 0029 0063;1;1;1 1 1 2 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, L, R, R and (([]) +0061 0028 0062 05D0 0028 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 0062 05D0 0028 05D1 005B 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 0062 05D0 0028 005B 05D1 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 0062 05D0 0028 005B 005D 05D1 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 005D 0029 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 0062 05D0 0028 005B 005D 0029 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 0062 0028 05D0 005B 05D1 005D 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 0062 0028 05D0 005B 005D 05D1 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 005D 0029 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 005D 05D1 0029;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 005D 0029 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 005D 05D0 0029 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 0028 0062 05D0 005B 05D1 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0061 0028 0028 0062 05D0 005B 005D 05D1 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 005D 0029 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 005D 05D1 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 005D 0029 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 005D 05D0 0029 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 005D 05D1 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 005D 0029 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 005D 05D0 0029 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 0062 05D0 0029 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 05D1 005D 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0061 0028 0062 05D0 005B 05D1 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 005D 05D1 0029;0;0;0 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0061 0028 0062 05D0 005B 005D 05D1 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 005D 0029 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 005D 05D1 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 005D 0029 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 005D 05D0 0029 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 005D 05D1 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 005D 0029 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 005D 05D0 0029 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 0062 05D0 0029 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 05D0 005D 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 005D 05D1 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 05D0 005D 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 005D 0029 05D1;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0062 005D 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 005D 05D0 0029 05D1;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 0062 05D0 0029 05D1;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 005B 0061 005D 0062 05D0 0029 05D1;0;0;0 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 0062 05D0 0029 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, ON, ON and (([]) +0061 0028 05D0 2680 0028 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 2681 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 2680 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 2681 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 2680 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 005D 2681 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 005D 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 2680 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 2680 0029 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 2681 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 2680 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 2681 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 2680 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 005D 2681 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 005D 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 2680 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 2680 0029 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 005D 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 005D 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 2680 0029 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, ON, L and (([]) +0061 0028 05D0 2680 0062 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0062 0028 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 2680 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 2680 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 0029 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 2680 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 2680 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 0029 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 2680 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 2680 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 0029 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 2680 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 2680 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 0029 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0062 0028 005B 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0062 005B 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0062 005B 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 2680 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 2680 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 0029 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0062 005B 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 2680 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 2680 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 0029 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 2680 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 2680 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 0029 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 2680 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 2680 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 0029 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0062 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 2680 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 2680 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 0029 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 2680 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 2680 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 0029 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 2680 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 2680 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 0029 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0062 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 005D 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 005D 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 2680 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 2680 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 2680 0062 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 2680 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 2680 0029 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 2680 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0029 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 0029 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, R, ON, R and (([]) +0061 0028 05D0 2680 05D1 0028 005B 005D 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0061 0028 05D0 2680 05D1 0028 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 2680 0028 05D1 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 2680 0028 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 2680 0028 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 2680 0028 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 2680 05D1 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 2680 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 2680 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 2680 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 2680 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 2680 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 2680 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 2680 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 005D 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 2680 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 005D 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0029 2680 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 005D 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 2680 05D1 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0028 05D0 2680 005B 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0028 05D0 2680 005B 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0028 05D0 005B 2680 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0028 05D0 005B 2680 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 2680 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0028 05D0 005B 005D 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 05D1 005D 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0061 0028 0028 005B 05D0 2680 05D1 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 005D 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 005D 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 2680 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 2680 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0029 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0061 0028 0028 005B 005D 05D0 2680 05D1 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 2680 0029 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 0029 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0028 005B 005D 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0061 05D0 2680 05D1 0028 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 2680 0028 05D1 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 2680 0028 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 2680 0028 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 2680 0028 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 05D1 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 2680 05D1 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 2680 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 2680 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 2680 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 2680 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 2680 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 005D 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 2680 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 2680 05D1 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 005D 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 2680 0029 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 005D 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0029 2680 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 005D 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 2680 05D1 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 0028 05D0 2680 005B 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 0028 05D0 2680 005B 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 0028 05D0 005B 2680 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 0028 05D0 005B 2680 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 2680 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 0028 05D0 005B 005D 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 05D1 005D 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0061 0028 005B 05D0 2680 05D1 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 005D 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 005D 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 2680 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 2680 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0029 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0061 0028 005B 005D 05D0 2680 05D1 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 2680 0029 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 0029 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 05D1 005B 005D 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 2680 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0061 05D0 2680 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0061 05D0 2680 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 05D1 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0061 05D0 005B 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 005D 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0061 05D0 005B 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 2680 05D1 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0061 05D0 005B 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 05D1 005D 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0061 005B 05D0 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 2680 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 2680 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0029 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 0061 005B 005D 05D0 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 05D1 005D 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 0061 05D0 2680 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 2680 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 2680 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0029 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 0061 005D 05D0 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 2680 05D1 0029;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 005D 0061 05D0 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 2680 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0029 2680 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, L, ON and (([]) +0061 0028 05D0 0062 2680 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 2680 0028 005B 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 2680 005B 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 2680 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 005D 2680 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 005D 0029 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 2680 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 2680 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 005D 2680 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 005D 0029 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 2680 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 2680 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 005D 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 005D 2680 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 005D 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 005D 0029 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 0062 2680 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 0062 0029 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 2680 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 2680 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 2680 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 2680 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 005D 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 005D 2680 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 005D 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 005D 0029 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 2680 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 2680 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 005D 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 005D 2680 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 005D 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 005D 0029 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0062 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 0062 2680 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0062 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 0062 0029 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 2680 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 2680 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 005D 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 005D 2680 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 005D 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 005D 0029 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0062 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 0062 2680 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0062 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 0062 0029 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 0062 2680 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 0062 0029 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0028 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 2680 0028 005B 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 2680 005B 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 2680 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 005D 2680 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 005D 0029 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 2680 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 2680 005B 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 2680 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 2680 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 005D 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 005D 2680 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 005D 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 005D 0029 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 2680 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 2680 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 005D 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 005D 2680 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 005D 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 005D 0029 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 0062 2680 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 0062 0029 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 2680 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 2680 005B 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 2680 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 2680 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 005D 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 005D 2680 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 005D 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 005D 0029 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 2680 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 2680 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 005D 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 005D 2680 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 005D 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 005D 0029 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0062 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 0062 2680 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0062 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 0062 0029 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 2680 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 2680 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 005D 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 005D 2680 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 005D 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 005D 0029 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0062 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 0062 2680 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0062 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 0062 0029 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 0062 2680 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 0062 0029 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 2680 005B 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 2680 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 2680 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 2680 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 005D 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 005D 2680 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 005D 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 005D 0029 2680;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 2680 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 2680 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 005D 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 005D 2680 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 005D 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 005D 0029 2680;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0062 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 0062 2680 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0062 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 0062 0029 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 2680 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 2680 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 005D 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 005D 2680 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 005D 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 005D 0029 2680;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0062 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 0062 2680 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0062 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 0062 0029 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 0062 2680 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 0062 0029 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 2680 005D 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 2680 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 005D 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 005D 2680 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 005D 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 005D 0029 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0062 2680 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 0062 2680 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0062 0029 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 0062 0029 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 0062 2680 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 0062 0029 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0062 2680 0029;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 0062 2680 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0062 0029 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 0062 0029 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, L, L and (([]) +0061 0028 05D0 0062 0028 0063 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0063 005B 005D 0029;1;1;2 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0061 0028 05D0 0062 0028 005B 0063 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 0063 005D 0029;1;1;2 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0061 0028 05D0 0062 0028 005B 005D 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 005D 0063 0029;1;1;2 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0061 0028 05D0 0062 0028 005B 005D 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 005D 0029 0063;1;1;2 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0061 0028 05D0 0028 0062 005B 0063 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 0063 005D 0029;1;1;2 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0061 0028 05D0 0028 0062 005B 005D 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 005D 0063 0029;1;1;2 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0061 0028 05D0 0028 0062 005B 005D 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 005D 0029 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 005D 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 005D 0063 0029;1;1;2 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 005D 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 005D 0029 0063;1;1;2 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 0062 0029 0063;1;1;2 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0063 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 0063 005D 0029;1;1;2 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0061 0028 0028 05D0 0062 005B 005D 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 005D 0063 0029;1;1;2 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0061 0028 0028 05D0 0062 005B 005D 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 005D 0029 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 005D 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 005D 0063 0029;1;1;2 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 005D 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 005D 0029 0063;1;1;2 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0062 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 0062 0029 0063;1;1;2 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 005D 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 005D 0063 0029;1;1;2 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 005D 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 005D 0029 0063;1;1;2 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0062 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 0062 0029 0063;1;1;2 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 0062 0029 0063;1;1;2 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0063 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0063 005B 005D 0029;1;1;1 2 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0061 05D0 0062 0028 005B 0063 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 0063 005D 0029;1;1;1 2 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0061 05D0 0062 0028 005B 005D 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 005D 0063 0029;1;1;1 2 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0061 05D0 0062 0028 005B 005D 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 005D 0029 0063;1;1;1 2 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0061 05D0 0028 0062 005B 0063 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 0063 005D 0029;1;1;1 2 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0061 05D0 0028 0062 005B 005D 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 005D 0063 0029;1;1;1 2 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0061 05D0 0028 0062 005B 005D 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 005D 0029 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 005D 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 005D 0063 0029;1;1;1 2 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 005D 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 005D 0029 0063;1;1;1 2 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 0062 0029 0063;1;1;1 2 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0063 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 0063 005D 0029;1;1;1 2 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0061 0028 05D0 0062 005B 005D 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 005D 0063 0029;1;1;1 2 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0061 0028 05D0 0062 005B 005D 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 005D 0029 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 005D 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 005D 0063 0029;1;1;1 2 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 005D 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 005D 0029 0063;1;1;1 2 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0062 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 0062 0029 0063;1;1;1 2 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 005D 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 005D 0063 0029;1;1;1 2 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 005D 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 005D 0029 0063;1;1;1 2 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0062 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 0062 0029 0063;1;1;1 2 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 0062 0029 0063;1;1;1 2 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0063 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 0063 005D 0029;1;1;1 1 2 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 0061 05D0 0062 005B 005D 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 005D 0063 0029;1;1;1 1 2 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 0061 05D0 0062 005B 005D 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 005D 0029 0063;1;1;1 1 2 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 005D 0063 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 005D 0063 0029;1;1;1 1 2 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 005D 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 005D 0029 0063;1;1;1 1 2 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0062 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 005D 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 005D 0063 0029;1;1;1 1 2 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 005D 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 005D 0029 0063;1;1;1 1 2 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0062 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 0062 0029 0063;1;1;1 1 2 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 005D 0063 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 005D 0063 0029;1;1;1 1 1 2 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 005D 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 005D 0029 0063;1;1;1 1 1 2 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0062 0029 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 0062 0029 0063;1;1;1 1 1 2 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0062 0029 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# L, R, L, R and (([]) +0061 0028 05D0 0062 05D1 0028 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 05D1 0028 005B 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 05D1 005B 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 05D1 005D 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 005D 05D1 0029;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 005D 0029 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 05D1 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 05D1 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 005D 05D1 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 005D 0029 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 05D1 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 005D 05D1 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 005D 0029 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0062 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 0062 05D1 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 0062 0029 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 05D1 005B 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 05D1 005B 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 05D1 005D 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 005D 05D1 0029;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 005D 0029 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 05D1 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 005D 05D1 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 005D 0029 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0062 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 0062 05D1 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 0062 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 005D 0062 0029 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 05D1 005D 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 05D1 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 005D 05D1 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 005D 0029 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0062 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 0062 05D1 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 0062 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 0062 0029 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 0062 05D1 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 005D 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 005D 05D0 0062 0029 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0028 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 05D1 0028 005B 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 05D1 005B 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 05D1 005D 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 005D 05D1 0029;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 005D 0029 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 05D1 005B 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 05D1 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 005D 05D1 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 005D 0029 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 05D1 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 005D 05D1 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 005D 0029 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0062 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 0062 05D1 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 0062 0029 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 05D1 005B 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 05D1 005B 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 05D1 005D 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 005D 05D1 0029;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 005D 0029 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 05D1 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 005D 05D1 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 005D 0029 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0062 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 0062 05D1 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 0062 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 005D 0062 0029 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 05D1 005D 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 05D1 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 005D 05D1 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 005D 0029 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0062 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 0062 05D1 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 0062 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 0062 0029 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 0062 05D1 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 005D 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 005D 05D0 0062 0029 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 05D1 005B 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 05D1 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 05D1 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 005D 05D1 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 005D 0029 05D1;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 05D1 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 005D 05D1 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 005D 0029 05D1;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0062 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 0062 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 005D 0062 0029 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 05D1 005D 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 05D1 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 005D 05D1 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 005D 0029 05D1;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0062 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 0062 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 0062 0029 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 005D 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 005D 05D0 0062 0029 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 05D1 005D 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 05D1 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 005D 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 005D 05D1 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 005D 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 005D 0029 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0062 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 0062 05D1 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 0062 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 0062 0029 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 0062 05D1 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 005D 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 005D 05D0 0062 0029 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0062 05D1 0029;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 0061 05D0 0062 0029 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 0061 05D0 0062 0029 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, R, ON and (([]) +0061 0028 05D0 0028 05D1 2680 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 2680 005B 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 2680 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 005B 2680 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 005D 2680 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 005B 005D 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 005D 0029 2680;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 05D1 005B 005D 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 2680 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 05D1 2680 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 005D 2680 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 05D1 005D 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 005D 0029 2680;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 05D1 005D 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 05D1 2680 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 005D 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 05D1 0029 2680;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 005D 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 2680 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0028 05D0 005B 05D1 2680 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 005D 2680 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 05D1 005D 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 005D 0029 2680;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 05D1 005D 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 05D1 2680 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 005D 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 05D1 0029 2680;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 005D 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 05D1 2680 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 05D1 2680 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 05D1 0029 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 05D1 0029 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 2680 005B 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 2680 005B 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 2680 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 005B 2680 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 005D 2680 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 005B 005D 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 005D 0029 2680;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 05D1 005B 005D 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 2680 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 05D1 2680 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 005D 2680 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 05D1 005D 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 005D 0029 2680;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 05D1 005D 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 05D1 2680 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 005D 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 05D1 0029 2680;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 005D 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 2680 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 0028 05D0 005B 05D1 2680 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 005D 2680 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 05D1 005D 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 005D 0029 2680;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 05D1 005D 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 05D1 2680 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 005D 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 05D1 0029 2680;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 005D 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 05D1 2680 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 05D1 2680 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 05D1 0029 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 05D1 0029 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 2680 005D 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0061 05D0 005B 05D1 2680 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 005D 2680 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 05D1 005D 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 005D 0029 2680;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 05D1 005D 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 05D1 2680 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 05D1 0029 2680;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 05D1 2680 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 05D1 0029 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 05D1 2680 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 05D1 0029 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, R, L and (([]) +0061 0028 05D0 0028 05D1 0062 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 05D1 0062 005B 005D 0029;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 0062 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 05D1 005B 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 005D 0062 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 05D1 005B 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 005D 0029 0062;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 05D1 005B 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0062 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 05D1 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 005D 0062 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 05D1 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 005D 0029 0062;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 05D1 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 005D 05D1 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 05D1 0029 0062;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 005D 05D1 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0062 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 05D1 0062 005D 0029;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 005D 0062 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 05D1 005D 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 005D 0029 0062;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 05D1 005D 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 05D1 0062 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 005D 05D1 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 05D1 0029 0062;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 005D 05D1 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 05D1 0062 0029;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 05D1 0029 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 05D1 0029 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0062 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 05D1 0062 005B 005D 0029;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0062 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 05D1 005B 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 005D 0062 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 05D1 005B 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 005D 0029 0062;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 05D1 005B 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0062 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 05D1 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 005D 0062 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 05D1 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 005D 0029 0062;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 05D1 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 005D 05D1 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 05D1 0029 0062;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 005D 05D1 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0062 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 05D1 0062 005D 0029;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 005D 0062 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 05D1 005D 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 005D 0029 0062;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 05D1 005D 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 05D1 0062 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 005D 05D1 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 05D1 0029 0062;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 005D 05D1 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 05D1 0062 0029;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 05D1 0029 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 05D1 0029 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0062 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 05D1 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 005D 0062 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 05D1 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 005D 0029 0062;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 05D1 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 05D1 0062 0029;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 005D 05D1 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 05D1 0029 0062;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 05D1 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 05D1 0029 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 05D1 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 05D1 0029 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 05D1 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, R, R, R and (([]) +0061 0028 05D0 0028 05D1 005B 05D2 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 005B 05D2 005D 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 005B 005D 05D2 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 005D 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 005B 005D 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 05D1 005D 05D2 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 05D1 005D 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 005D 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0028 05D0 005B 05D1 005D 05D2 0029;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 05D1 005D 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 005D 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 005D 05D1 0029 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 05D2 005D 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 005B 05D2 005D 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 005B 005D 05D2 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 005D 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 005B 005D 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 05D1 005D 05D2 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 05D1 005D 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 005D 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 0028 05D0 005B 05D1 005D 05D2 0029;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 05D1 005D 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 005D 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 005D 05D1 0029 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 005D 05D2 0029;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0028 0061 05D0 005B 05D1 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 005D 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 05D1 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 005D 05D1 0029 05D2;0;0;0 0 0 1 1 1 1 0 1;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 005D 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 005D 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 005D 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, ON and (([]) +05D0 2680 0028 2681 0028 2682 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 2682 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 2682 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 005D 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 005D 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 2682 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 2682 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 2682 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 2681 0029 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 2682 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 2682 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 005D 2682 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 005D 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 005D 2682 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 005D 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 2681 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 005D 2682 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 005D 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 2681 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 2681 0029 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 005D 2682 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 005D 2682 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 005D 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 005D 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 2681 0029 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 2681 0029 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 2681 0029 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, L and (([]) +05D0 2680 0028 2681 0061 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0061 0028 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0061 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0061 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0061 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0061 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0061 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 2681 0061 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 2681 0029 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0029 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0061 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0061 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 005D 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 005D 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0061 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 005D 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 005D 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 2681 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 2681 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0029 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0061 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 005D 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 005D 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 2681 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 2681 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0029 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 2681 0061 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 2681 0029 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0029 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0029 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0061 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 005D 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 005D 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 2681 0061 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 2681 0029 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0029 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 2681 0061 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 2681 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 2681 0029 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 2681 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0029 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0029 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 2680 0029 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, R and (([]) +05D0 2680 0028 2681 05D1 0028 005B 005D 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 2680 0028 2681 05D1 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 05D1 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 05D1 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 2681 05D1 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 2681 0029 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0029 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 05D1 005B 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 05D1 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 05D1 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 005B 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 005D 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 005B 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 005D 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 005B 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 05D1 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 005D 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 005D 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 2681 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 2681 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0029 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 05D1 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 005D 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 005D 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 2681 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 2681 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0029 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 2681 05D1 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 2681 0029 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0029 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0029 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 05D1 005D 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 2680 005B 2681 05D1 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 005D 05D1 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 2680 005B 2681 005D 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 005D 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 2681 05D1 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 2680 005B 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 2681 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0029 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 2681 05D1 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 005B 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 2681 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0029 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0029 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 2681 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 2681 05D1 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 2681 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 2681 0029 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0029 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0029 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0029 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 2680 0029 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, L, ON and (([]) +05D0 2680 0028 0061 2681 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 2681 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 2681 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0061 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0061 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0028 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 2681 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 2681 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 2681 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 2681 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0061 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0061 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 2681 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0061 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0061 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0061 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0061 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0061 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0061 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 2681 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 2681 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 2681 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0061 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0061 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 2681 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 2681 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 005D 2681 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 005D 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0061 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0061 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0061 2681 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 2680 0061 2681 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0061 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 2680 0061 0029 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, L, L and (([]) +05D0 2680 0028 0061 0028 0062 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0062 005B 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 2680 0028 0061 0028 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 2680 0028 0061 0028 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 2680 0028 0061 0028 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 005D 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 2680 0028 0028 0061 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 2680 0028 0028 0061 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 2680 0028 0028 0061 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0062 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0062 005B 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 2680 0061 0028 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 2680 0061 0028 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 2680 0061 0028 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 005D 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 2680 0028 0061 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 0028 2680 0028 0061 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 0028 2680 0028 0061 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 0028 0028 2680 0061 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 0028 0028 2680 0061 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0061 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0062 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0062 005B 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 05D0 2680 0061 0028 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 05D0 2680 0061 0028 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 05D0 2680 0061 0028 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 005D 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 05D0 2680 0028 0061 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 05D0 2680 0028 0061 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 05D0 2680 0028 0061 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0061 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 05D0 0028 2680 0061 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 05D0 0028 2680 0061 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0061 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0061 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0061 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 05D0 2680 0061 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 0028 05D0 2680 0061 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0061 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0061 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0061 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 2680 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# R, ON, L, R and (([]) +05D0 2680 0028 0061 05D1 0028 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 05D1 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0028 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 05D1 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0061 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 0061 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0028 005B 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 05D1 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 05D1 005B 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 05D1 005B 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0061 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 0061 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 05D1 005B 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0061 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 0061 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0061 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 0061 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0061 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 0061 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 05D1 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0061 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 0061 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 05D1 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 005D 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 005D 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0061 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 0061 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0061 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 2680 0061 05D1 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 0061 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 2680 0061 0029 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, R, ON and (([]) +05D0 2680 0028 05D1 2681 0028 005B 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 2681 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 2681 005B 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 2681 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 005D 2681 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 005D 0029 2681;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 2681 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 2681 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0028 005B 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 2681 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 2681 005B 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 2681 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 2681 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 0029 2681;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 2681 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 2681 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 2681 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 2681 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 2681 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0028 005B 005D 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 2681 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 2681 005B 005D 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 2681 005D 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 005D 2681 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 005D 0029 2681;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 2681 005B 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 2681 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 005D 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 005D 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 2681 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 005D 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 005D 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 05D1 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 05D1 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 2681 005B 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 2681 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 005D 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 005D 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 2681 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 005D 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 005D 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 05D1 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 05D1 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 2681 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 005D 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 005D 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 05D1 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 05D1 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 05D1 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 05D1 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 2681 005B 005D 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 2681 005D 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 005D 2681 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 005D 0029 2681;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 2681 005D 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 2680 005B 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 005D 2681 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 005D 0029 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 05D1 2681 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 05D1 0029 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 2681 005D 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 005B 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 005D 2681 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 005D 0029 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 05D1 2681 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 05D1 0029 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 05D1 2681 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 05D1 0029 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 2681 005D 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 005D 2681 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 005D 0029 2681;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 05D1 2681 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 05D1 0029 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 05D1 2681 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 05D1 0029 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 05D1 2681 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 005D 05D0 2680 05D1 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 05D1 0029 2681;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 005D 05D0 2680 05D1 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, R, L and (([]) +05D0 2680 0028 05D1 0061 0028 005B 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0061 0028 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0061 005B 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0061 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 005D 0061 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 005D 0029 0061;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0061 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0061 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 0061 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0061 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 0061 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0028 005B 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0061 0028 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0061 005B 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0061 005D 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 0061 0029;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 0029 0061;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0061 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0061 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 0061 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0061 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 0061 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0061 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 05D1 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0061 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 0061 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0061 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 0061 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0061 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 0061 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 0061 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0028 005B 005D 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0061 0028 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0061 005B 005D 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0061 005D 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 005D 0061 0029;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 005D 0029 0061;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0061 005B 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 05D1 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0061 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 005D 0061 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0061 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 005D 0061 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 05D1 0061 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 05D1 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0061 005B 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 05D1 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0061 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 005D 0061 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0061 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 005D 0061 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 05D1 0061 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 05D1 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0061 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 005D 0061 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 05D1 0061 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 05D1 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 05D1 0061 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 05D1 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0061 005B 005D 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0061 005D 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 005D 0061 0029;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 005D 0029 0061;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0061 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 005D 0061 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 005D 0029 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 05D1 0061 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 05D1 0029 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0061 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 005D 0061 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 005D 0029 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 05D1 0061 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 05D1 0029 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 05D1 0061 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 05D1 0029 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0061 005D 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 005D 0061 0029;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 005D 0029 0061;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 05D1 0061 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 05D1 0029 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 05D1 0061 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 05D1 0029 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 05D1 0061 0029;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 005D 05D0 2680 05D1 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 05D1 0029 0061;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 005D 05D0 2680 05D1 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, ON, R, R and (([]) +05D0 2680 0028 05D1 0028 05D2 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 05D2 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 05D2 005B 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 05D2 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 05D2 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 005D 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 05D2 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 005D 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 005D 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 2680 05D1 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 05D2 005D 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 2680 05D1 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 2680 05D1 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 005D 0029 05D2;0;0;0 0 1 1 1 0 0 0 1;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 2680 005B 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 1 0 1;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 0 1;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 005B 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 005D 0029 05D2;0;0;0 0 1 1 1 1 1 0 1;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 005D 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 0 1;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 2680 05D1 0029 05D2;0;0;0 0 1 1 1 1 1 0 1;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 005D 05D2 0029;0;0;0 0 0 1 1 1 0 1 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 005D 0029 05D2;0;0;0 0 0 1 1 1 0 0 1;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 005D 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 005D 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 2680 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 2680 05D1 0029 05D2;0;0;0 0 0 0 1 1 1 0 1;0 1 2 3 6 5 4 7 8 +0028 0028 005B 005D 05D0 2680 05D1 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, ON, ON and (([]) +05D0 0028 0061 2680 0028 2681 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 2680 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 2681 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 2680 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 005D 2681 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 005D 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 2680 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 2680 0029 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 2681 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 2681 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 2681 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 005D 2681 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 005D 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 2680 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 2680 0029 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 2681 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 2680 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 005D 2681 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 005D 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 2680 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 2680 0029 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 2681 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 2681 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 005D 2681 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 005D 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 2680 0029 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 005D 2681 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 005D 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 2680 0029 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 005D 2681 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 005D 2681 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 005D 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 005D 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 2680 0029 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 2680 0029 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 2680 0029 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 2680 0029 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, ON, L and (([]) +05D0 0028 0061 2680 0062 0028 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0062 0028 005B 005D 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +05D0 0028 0061 2680 0028 0062 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 2680 0028 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 2680 0028 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 2680 0028 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 2680 0062 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 2680 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 2680 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 2680 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 2680 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 2680 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 2680 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 005D 2680 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 2680 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 005D 2680 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 2680 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 005D 0029 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 0029 2680 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0028 0061 2680 0062 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0062 005B 005D 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 2680 005B 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 0028 0061 2680 005B 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 0028 0061 2680 005B 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 0028 0061 005B 2680 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 0028 0061 005B 2680 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 2680 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 2680 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 0028 0061 005B 005D 2680 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 0029 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0062 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 0062 005D 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +05D0 0028 0028 005B 0061 2680 005D 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 005D 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 2680 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 2680 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 2680 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 2680 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0029 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 0029 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 2680 0062 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 2680 0029 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 0029 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0062 0028 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0062 0028 005B 005D 0029;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 05D0 0061 2680 0028 0062 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 2680 0028 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 2680 0028 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 2680 0028 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 2680 0062 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0062 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 2680 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 2680 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 2680 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 2680 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 0062 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 2680 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 005D 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 2680 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 005D 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 005D 2680 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 2680 0062 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 005D 2680 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 2680 0029 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 005D 0029 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 0029 2680 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0028 0061 2680 0062 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0062 005B 005D 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 2680 005B 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 0028 0061 2680 005B 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 0028 0061 2680 005B 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 0028 0061 005B 2680 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 0028 0061 005B 2680 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 2680 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 2680 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 0028 0061 005B 005D 2680 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 0029 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0062 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 0062 005D 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 05D0 0028 005B 0061 2680 005D 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 005D 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 2680 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 2680 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 2680 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 2680 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0029 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 0029 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 2680 0062 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 2680 0029 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 0029 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 0062 005B 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0062 005B 005D 0029;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 2680 005B 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 05D0 0061 2680 005B 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 05D0 0061 2680 005B 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 05D0 0061 005B 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 05D0 0061 005B 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 2680 0062 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 05D0 0061 005B 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 2680 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 0029 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0062 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 0062 005D 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 05D0 005B 0061 2680 005D 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 005D 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 2680 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 2680 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 0029 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 2680 0062 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 2680 0029 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 0029 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0062 005D 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 0062 005D 0029;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 005B 05D0 0061 2680 005D 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 005D 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 2680 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 2680 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 0029 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 2680 0062 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 2680 0029 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 0029 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 2680 0062 0029;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 2680 0062 0029;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 2680 0029 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 2680 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 0029 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 0029 2680 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, L, ON, R and (([]) +05D0 0028 0061 2680 05D1 0028 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 05D1 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 2680 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 2680 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 0029 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 2680 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 2680 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 0029 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 2680 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 2680 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0029 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 2680 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 2680 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 0029 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0028 005B 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 05D1 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 05D1 005B 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 05D1 005B 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 05D1 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 05D1 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 005D 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 005D 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 2680 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 2680 05D1 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 2680 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 2680 0029 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 0029 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 0029 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 05D1 005B 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 2680 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 2680 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 0029 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 2680 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 2680 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0029 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 2680 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 2680 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 0029 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 05D1 005B 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 05D1 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 05D1 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 005D 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 005D 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 2680 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 2680 05D1 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 2680 0029 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 0029 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 2680 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 2680 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0029 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 2680 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 2680 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 0029 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 05D1 005D 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 05D1 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 005D 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 005D 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 005D 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 005D 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 2680 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 2680 05D1 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 2680 0029 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 0029 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 2680 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 2680 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 0029 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 2680 05D1 0029;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 2680 05D1 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 2680 0029 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 2680 0029 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 0029 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 0029 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, L, ON and (([]) +05D0 0028 0061 0028 0062 2680 005B 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 2680 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0062 005B 2680 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 2680 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0062 005B 005D 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 005D 2680 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0062 005B 005D 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 005D 0029 2680;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 0062 2680 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 2680 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 0062 005D 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 005D 2680 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 0062 005D 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 005D 0029 2680;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 005D 0062 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 0062 2680 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 005D 0062 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 0062 0029 2680;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0028 0061 005B 0062 2680 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 2680 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 0028 0061 005B 0062 005D 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 005D 2680 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 0062 005D 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 005D 0029 2680;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 005D 0062 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 0062 2680 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 005D 0062 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 0062 0029 2680;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 005B 0061 005D 0062 2680 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 0062 2680 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0062 0029 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 0062 0029 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 2680 005B 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 2680 005B 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0062 005B 2680 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 2680 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0062 005B 005D 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 005D 2680 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0062 005B 005D 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 005D 0029 2680;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 0062 2680 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 2680 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 0062 005D 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 005D 2680 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 0062 005D 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 005D 0029 2680;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 005D 0062 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 0062 2680 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 005D 0062 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 0062 0029 2680;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0028 0061 005B 0062 2680 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 2680 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 0028 0061 005B 0062 005D 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 005D 2680 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 0062 005D 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 005D 0029 2680;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 005D 0062 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 0062 2680 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 005D 0062 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 0062 0029 2680;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 005B 0061 005D 0062 2680 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 0062 2680 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0062 0029 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 0062 0029 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 2680 005D 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 2680 005D 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 05D0 0061 005B 0062 005D 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 005D 2680 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 0062 005D 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 005D 0029 2680;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 0062 2680 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 0062 0029 2680;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 005B 0061 005D 0062 2680 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 0062 2680 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0062 0029 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 0062 0029 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0062 2680 0029;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 0062 2680 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0062 0029 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 0062 0029 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, L, L and (([]) +05D0 0028 0061 0028 0062 005B 0063 005D 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 0063 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0062 005B 005D 0063 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 0062 005B 005D 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 005D 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 0062 005D 0063 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 0062 005D 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 005D 0062 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0028 0061 005B 0062 005D 0063 0029;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 005D 0063 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 0028 0061 005B 0062 005D 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 005D 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 005D 0062 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 0062 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 005B 0061 005D 0062 0029 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 0063 005D 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 0063 005D 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0062 005B 005D 0063 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 0062 005B 005D 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 005D 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 0062 005D 0063 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 005D 0063 0029;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 0062 005D 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 005D 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 005D 0062 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 0062 0029 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0028 0061 005B 0062 005D 0063 0029;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 005D 0063 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 0028 0061 005B 0062 005D 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 005D 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 005D 0062 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 0062 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 005B 0061 005D 0062 0029 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 005D 0063 0029;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 005D 0063 0029;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0028 05D0 0061 005B 0062 005D 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 005D 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 0062 0029 0063;1;1;1 1 1 2 2 2 2 1 2;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 005B 0061 005D 0062 0029 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0062 0029 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 0062 0029 0063;1;1;1 1 1 1 2 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# R, L, L, R and (([]) +05D0 0028 0061 0028 0062 05D1 005B 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 05D1 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0062 005B 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 05D1 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0062 005B 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 005D 05D1 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0062 005B 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 005D 0029 05D1;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 0062 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 05D1 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0062 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 005D 05D1 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0062 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 005D 0029 05D1;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 005D 0062 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 0062 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 0062 0029 05D1;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0028 0061 005B 0062 05D1 005D 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 05D1 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0062 005D 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 005D 05D1 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 0062 005D 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 005D 0029 05D1;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 005D 0062 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 0062 05D1 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 005D 0062 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 0062 0029 05D1;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 005B 0061 005D 0062 05D1 0029;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 0062 0029 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 0062 0029 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 05D1 005B 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 05D1 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 05D1 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 005D 05D1 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 005D 0029 05D1;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 0062 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 05D1 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0062 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 005D 05D1 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0062 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 005D 0029 05D1;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 005D 0062 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 0062 05D1 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 0062 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 0062 0029 05D1;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0028 0061 005B 0062 05D1 005D 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 05D1 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0062 005D 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 005D 05D1 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 0062 005D 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 005D 0029 05D1;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 005D 0062 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 0062 05D1 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 005D 0062 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 0062 0029 05D1;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 005B 0061 005D 0062 05D1 0029;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 0062 0029 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 0062 0029 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 05D1 005D 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 05D1 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 005D 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 005D 05D1 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 0062 005D 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 005D 0029 05D1;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 005D 0062 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 0062 05D1 0029;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 0062 0029 05D1;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 005B 0061 005D 0062 05D1 0029;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 0062 0029 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 0062 0029 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0062 05D1 0029;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 0062 05D1 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 0062 0029 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 0062 0029 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, R, ON and (([]) +05D0 0028 0061 05D1 2680 0028 005B 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 2680 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 2680 005B 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 2680 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 005D 2680 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 005D 0029 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 2680 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 2680 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 005D 2680 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 005D 0029 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 2680 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 2680 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 005D 2680 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 005D 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 005D 0029 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 005D 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 05D1 2680 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 05D1 0029 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 2680 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 2680 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 2680 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 2680 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 005D 2680 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 005D 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 005D 0029 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 005D 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 2680 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 2680 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 005D 2680 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 005D 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 005D 0029 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 005D 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 05D1 2680 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 05D1 0029 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 2680 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 2680 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 005D 2680 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 005D 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 005D 0029 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 005D 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 05D1 2680 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 05D1 0029 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 05D1 2680 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 05D1 0029 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0028 005B 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 2680 0028 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 2680 005B 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 2680 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 005D 2680 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 005D 0029 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 2680 005B 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 2680 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 2680 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 2680 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 005D 2680 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 005D 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 005D 0029 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 005D 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 2680 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 2680 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 005D 2680 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 005D 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 005D 0029 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 005D 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 05D1 2680 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 05D1 2680 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 05D1 0029 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 05D1 0029 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 2680 005B 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 2680 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 2680 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 2680 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 005D 2680 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 005D 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 005D 0029 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 005D 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 2680 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 2680 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 005D 2680 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 005D 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 005D 0029 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 005D 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 05D1 2680 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 05D1 0029 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 2680 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 2680 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 005D 2680 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 005D 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 005D 0029 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 005D 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 05D1 2680 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 05D1 0029 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 05D1 2680 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 05D1 0029 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 2680 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 2680 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 2680 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 2680 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 005D 2680 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 005D 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 005D 0029 2680;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 005D 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 2680 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 2680 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 005D 2680 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 005D 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 005D 0029 2680;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 005D 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 05D1 2680 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 05D1 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 05D1 0029 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 05D1 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 2680 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 2680 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 005D 2680 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 005D 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 005D 0029 2680;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 005D 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 05D1 2680 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 05D1 0029 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 05D1 2680 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 05D1 0029 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 2680 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 2680 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 005D 2680 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 005D 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 005D 0029 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 005D 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 05D1 2680 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 05D1 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 05D1 0029 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 05D1 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 05D1 2680 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 05D1 0029 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 05D1 2680 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 05D1 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 05D1 0029 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 05D1 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, R, L and (([]) +05D0 0028 0061 05D1 0062 0028 005B 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0062 0028 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0062 005B 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 0062 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 005D 0062 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 005D 0029 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0062 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0062 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 005D 0062 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 005D 0029 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0062 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 005D 0062 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 005D 0029 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 05D1 0062 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 05D1 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 05D1 0029 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0062 005B 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0062 005B 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0062 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 005D 0062 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 005D 0029 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0062 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 005D 0062 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 005D 0029 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 05D1 0062 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 05D1 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 05D1 0029 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 05D1 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0062 005D 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 0062 005D 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 005D 0062 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 005D 0029 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 05D1 0062 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 05D1 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 05D1 0029 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 05D1 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 05D1 0062 0029;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 05D1 0029 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0028 005B 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0062 0028 005B 005D 0029;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0062 005B 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0062 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 005D 0062 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 005D 0029 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0062 005B 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0062 005B 005D 0029;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0062 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 005D 0062 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 005D 0029 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0062 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 0062 005D 0029;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 005D 0062 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 005D 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 005D 0029 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 005D 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 05D1 0062 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 05D1 0062 0029;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 05D1 0029 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 05D1 0029 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0062 005B 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0062 005B 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0062 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 005D 0062 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 005D 0029 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0062 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 005D 0062 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 005D 0029 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 05D1 0062 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 05D1 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 05D1 0029 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 05D1 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0062 005D 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 0062 005D 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 005D 0062 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 005D 0029 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 05D1 0062 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 05D1 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 05D1 0029 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 05D1 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 05D1 0062 0029;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 05D1 0029 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0062 005B 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0062 005B 005D 0029;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0062 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 005D 0062 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 005D 0029 0062;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0062 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 0062 005D 0029;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 005D 0062 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 005D 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 005D 0029 0062;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 005D 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 05D1 0062 0029;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 05D1 0029 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 05D1 0029 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0062 005D 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 0062 005D 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 005D 0062 0029;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 005D 0029 0062;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 05D1 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 05D1 0029 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 05D1 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 05D1 0062 0029;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 05D1 0029 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0062 005D 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 0062 005D 0029;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 005D 0062 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 005D 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 005D 0029 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 05D1 0062 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 05D1 0062 0029;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 05D1 0029 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 05D1 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 05D1 0062 0029;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 05D1 0029 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 05D1 0062 0029;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 05D1 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 05D1 0029 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 05D1 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, L, R, R and (([]) +05D0 0028 0061 05D1 0028 05D2 005B 005D 0029;0;0;1 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +05D0 0028 0061 05D1 0028 05D2 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 05D2 005D 0029;0;0;1 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +05D0 0028 0061 05D1 0028 005B 05D2 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 005D 05D2 0029;0;0;1 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +05D0 0028 0061 05D1 0028 005B 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 005D 0029 05D2;0;0;1 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +05D0 0028 0061 05D1 0028 005B 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 05D2 005D 0029;0;0;1 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +05D0 0028 0061 0028 05D1 005B 05D2 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 005D 05D2 0029;0;0;1 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +05D0 0028 0061 0028 05D1 005B 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 005D 0029 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 005D 05D2 0029;0;0;1 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 005D 0029 05D2;0;0;1 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 005D 05D1 0029 05D2;0;0;1 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 05D2 005D 0029;0;0;1 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +05D0 0028 0028 0061 05D1 005B 05D2 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 005D 05D2 0029;0;0;1 0 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +05D0 0028 0028 0061 05D1 005B 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 005D 0029 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 005D 05D2 0029;0;0;1 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 005D 0029 05D2;0;0;1 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 005D 05D1 0029 05D2;0;0;1 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 005D 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 005D 05D2 0029;0;0;1 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 005D 0029 05D2;0;0;1 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 005D 05D1 0029 05D2;0;0;1 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 005D 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 0061 05D1 0029 05D2;0;0;1 0 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 05D2 005B 005D 0029;0;0;0 1 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 05D0 0061 05D1 0028 05D2 005B 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 05D2 005D 0029;0;0;0 1 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 05D0 0061 05D1 0028 005B 05D2 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 005D 05D2 0029;0;0;0 1 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 05D0 0061 05D1 0028 005B 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 005D 0029 05D2;0;0;0 1 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 05D0 0061 05D1 0028 005B 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 05D2 005D 0029;0;0;0 1 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 05D0 0061 0028 05D1 005B 05D2 005D 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 005D 05D2 0029;0;0;0 1 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 05D0 0061 0028 05D1 005B 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 005D 0029 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 005D 05D2 0029;0;0;0 1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 005D 05D2 0029;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 005D 0029 05D2;0;0;0 1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 005D 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 005D 05D1 0029 05D2;0;0;0 1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 005D 05D1 0029 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 05D2 005D 0029;0;0;0 1 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 05D0 0028 0061 05D1 005B 05D2 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 005D 05D2 0029;0;0;0 1 0 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 05D0 0028 0061 05D1 005B 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 005D 0029 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 005D 05D2 0029;0;0;0 1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 005D 0029 05D2;0;0;0 1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 005D 05D1 0029 05D2;0;0;0 1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 005D 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 005D 05D2 0029;0;0;0 1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 005D 0029 05D2;0;0;0 1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 005D 05D1 0029 05D2;0;0;0 1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 005D 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 0061 05D1 0029 05D2;0;0;0 1 0 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 05D2 005D 0029;0;0;0 0 1 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 05D0 0061 05D1 005B 05D2 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 005D 05D2 0029;0;0;0 0 1 0 1 1 1 1 0;0 1 2 3 7 6 5 4 8 +0028 0028 05D0 0061 05D1 005B 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 005D 0029 05D2;0;0;0 0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 005D 05D2 0029;0;0;0 0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 005D 0029 05D2;0;0;0 0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 005D 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 005D 05D1 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 005D 05D2 0029;0;0;0 0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 005D 0029 05D2;0;0;0 0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 005D 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 005D 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 0061 05D1 0029 05D2;0;0;0 0 1 0 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 005D 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 005D 05D2 0029;0;0;0 0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 005D 0029 05D2;0;0;0 0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 005D 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 005D 05D1 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 0061 05D1 0029 05D2;0;0;0 0 0 1 0 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 005D 05D0 0061 05D1 0029 05D2;0;0;0 0 0 0 1 0 1 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 005D 05D0 0061 05D1 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, ON, ON and (([]) +05D0 0028 05D1 2680 0028 2681 005B 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 2681 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 2681 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 005D 2681 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 005D 0029 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 2681 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 2681 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 0029 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 2681 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 0029 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 2680 0029 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 2681 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 2681 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 0029 2681;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 2681 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 005B 2681 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 005D 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 005B 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 005D 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 2680 005B 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 005D 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 005D 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 2680 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 005D 2681 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 005D 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 2680 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 2680 0029 2681;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 005D 2681 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 2680 005D 2681 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 005D 0029 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 2680 005D 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 2680 0029 2681;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 2680 0029 2681;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 2680 0029 2681;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 2680 0029 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, ON, L and (([]) +05D0 0028 05D1 2680 0061 0028 005B 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0061 0028 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0061 005B 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0061 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 005D 0061 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 005D 0029 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0061 005B 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0061 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 0061 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 0029 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0061 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 0061 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 0029 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 2680 0061 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 2680 0029 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0029 2680 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0061 005B 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 2680 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0061 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 2680 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 0061 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0061 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 2680 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 0061 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 0061 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029 2680 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0061 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 2680 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 0061 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 2680 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 0061 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 005D 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029 2680 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 0061 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029 2680 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0061 005B 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 2680 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0061 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 2680 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 005D 0061 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 2680 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 2680 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0061 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 2680 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 005D 0061 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 2680 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 2680 0061 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 005D 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 2680 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0029 2680 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0061 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 2680 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 005D 0061 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 2680 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 2680 0061 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 005D 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 2680 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0029 2680 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 2680 0061 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 2680 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0029 2680 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0061 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 2680 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 005D 0061 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 2680 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 005D 0029 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 2680 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 2680 0061 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 2680 0029 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0029 2680 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 2680 0061 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 2680 0029 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0029 2680 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 2680 0061 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 2680 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 2680 0029 0061;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 2680 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0029 2680 0061;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 0029 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, R, ON, R and (([]) +05D0 0028 05D1 2680 05D2 0028 005B 005D 0029;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 05D1 2680 05D2 0028 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 05D2 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 05D2 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 05D2 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 05D2 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 05D2 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 0029 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 05D2 005B 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 05D2 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 05D2 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 005B 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 005B 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 005B 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 05D2 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 2680 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 2680 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0029 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 05D2 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 005D 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 005D 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 2680 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 2680 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0029 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 2680 05D2 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 2680 0029 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0029 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 05D2 005D 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 005B 05D1 2680 05D2 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 005D 05D2 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 005B 05D1 2680 005D 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 005D 0029 05D2;0;0;0 0 1 1 1 1 1 0 1;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 2680 005D 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 2680 05D2 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 005B 05D1 005D 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 2680 0029 05D2;0;0;0 0 1 1 1 1 0 0 1;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0029 2680 05D2;0;0;0 0 1 1 1 1 0 0 1;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 2680 05D2 0029;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0028 05D0 005B 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 2680 0029 05D2;0;0;0 0 1 1 1 1 0 0 1;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0029 2680 05D2;0;0;0 0 1 1 1 1 0 0 1;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 2680 05D2 0029;0;0;0 0 0 1 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 05D0 005D 05D1 2680 05D2 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 2680 0029 05D2;0;0;0 0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 2680 0029 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0029 2680 05D2;0;0;0 0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 0029 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, L, ON and (([]) +05D0 0028 05D1 0061 2680 0028 005B 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 2680 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 2680 005B 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 2680 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 2680 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 2680 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 005D 2680 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 005D 2680 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 005D 0029 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 005D 0029 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 2680 005B 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 2680 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 2680 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 2680 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 005D 2680 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 005D 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 005D 0029 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 005D 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 2680 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 2680 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 005D 2680 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 005D 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 005D 0029 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 005D 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0061 2680 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0061 0029 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 2680 005B 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 2680 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 2680 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 2680 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 005D 2680 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 005D 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 005D 0029 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 005D 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 2680 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 2680 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 005D 2680 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 005D 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 005D 0029 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 005D 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0061 2680 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 005D 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0061 0029 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 005D 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 2680 005D 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 2680 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 005D 2680 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 005D 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 005D 0029 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 005D 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0061 2680 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 005D 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0061 0029 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 005D 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0061 2680 0029;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 05D1 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0061 0029 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 05D1 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 2680 005B 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 2680 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 2680 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 2680 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 005D 2680 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 005D 2680 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 005D 0029 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 005D 0029 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 2680 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 2680 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 005D 2680 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 005D 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 005D 0029 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 005D 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0061 2680 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 005D 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0061 0029 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 005D 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 2680 005D 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 2680 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 005D 2680 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 005D 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 005D 0029 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 005D 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0061 2680 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 005D 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0061 0029 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 005D 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0061 2680 0029;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 05D1 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0061 0029 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 05D1 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 2680 005D 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 2680 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 005D 2680 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 005D 2680 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 005D 0029 2680;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 005D 0029 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0061 2680 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0061 0029 2680;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0061 2680 0029;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0061 0029 2680;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0061 2680 0029;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 0061 2680 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0061 0029 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 0061 0029 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, L, L and (([]) +05D0 0028 05D1 0061 0028 0062 005B 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0062 005B 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 05D1 0061 0028 005B 0062 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 0062 005D 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 05D1 0061 0028 005B 005D 0062 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 005D 0062 0029;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 05D1 0061 0028 005B 005D 0029 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 005D 0029 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 05D1 0028 0061 005B 0062 005D 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 005D 0062 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 005D 0029 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 005D 0062 0029;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 005D 0029 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0061 0029 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0062 005D 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 005D 0062 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 005D 0029 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 005D 0062 0029;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 005D 0029 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0061 0029 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 005D 0062 0029;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 005D 0029 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0061 0029 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0061 0029 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 05D1 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0062 005D 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 0062 005D 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 005D 0062 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 005D 0062 0029;1;1;1 1 1 1 2 2 2 2 1;8 4 5 6 7 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 005D 0029 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 005D 0029 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 005D 0062 0029;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 005D 0029 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0061 0029 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 005D 0062 0029;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 005D 0029 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0061 0029 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0061 0029 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 05D1 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 005D 0062 0029;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 005D 0062 0029;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 005D 0029 0062;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 005D 0029 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0061 0029 0062;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0061 0029 0062;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0061 0029 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 0061 0029 0062;1;1;1 1 1 1 1 1 2 1 2;8 7 6 5 4 3 2 1 0 + +# R, R, L, R and (([]) +05D0 0028 05D1 0061 05D2 0028 005B 005D 0029;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 05D2 0028 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 05D2 005B 005D 0029;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 05D2 005B 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 05D2 005D 0029;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 05D2 005D 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 005D 05D2 0029;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 005D 05D2 0029;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 005D 0029 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 005D 0029 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 05D2 005B 005D 0029;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 05D2 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 05D2 005D 0029;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 05D2 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 005D 05D2 0029;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 005D 0029 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 05D2 005D 0029;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 05D2 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 005D 05D2 0029;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 005D 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 005D 0029 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 005D 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0061 05D2 0029;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 0061 0029 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 05D2 005B 005D 0029;0;0;1 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 05D2 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 05D2 005D 0029;0;0;1 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 05D2 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 005D 05D2 0029;0;0;1 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 005D 0029 05D2;0;0;1 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 05D2 005D 0029;0;0;1 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 05D2 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 005D 05D2 0029;0;0;1 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 005D 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 005D 0029 05D2;0;0;1 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 005D 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0061 05D2 0029;0;0;1 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 005D 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 0061 0029 05D2;0;0;1 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 005D 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 05D2 005D 0029;0;0;1 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 05D2 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 005D 05D2 0029;0;0;1 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 005D 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 005D 0029 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 005D 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0061 05D2 0029;0;0;1 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 005D 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 0061 0029 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 005D 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0061 05D2 0029;0;0;1 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 005D 05D1 0061 0029 05D2;0;0;1 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 05D2 005B 005D 0029;0;0;0 1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 05D2 005B 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 05D2 005D 0029;0;0;0 1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 05D2 005D 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 005D 05D2 0029;0;0;0 1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 005D 05D2 0029;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 005D 0029 05D2;0;0;0 1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 005D 0029 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 05D2 005D 0029;0;0;0 1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 05D2 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 005D 05D2 0029;0;0;0 1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 005D 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 005D 0029 05D2;0;0;0 1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 005D 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0061 05D2 0029;0;0;0 1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 005D 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 0061 0029 05D2;0;0;0 1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 005D 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 05D2 005D 0029;0;0;0 1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 05D2 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 005D 05D2 0029;0;0;0 1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 005D 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 005D 0029 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 005D 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0061 05D2 0029;0;0;0 1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 005D 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 0061 0029 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 005D 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0061 05D2 0029;0;0;0 1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 005D 05D1 0061 0029 05D2;0;0;0 1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 05D2 005D 0029;0;0;0 0 1 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 05D2 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 005D 05D2 0029;0;0;0 0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 005D 05D2 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 005D 0029 05D2;0;0;0 0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 005D 0029 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0061 05D2 0029;0;0;0 0 1 1 1 1 0 1 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 0061 0029 05D2;0;0;0 0 1 1 1 1 0 0 1;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 05D1 005D 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0061 05D2 0029;0;0;0 0 1 1 1 1 0 1 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 005D 05D1 0061 0029 05D2;0;0;0 0 1 1 1 1 0 0 1;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0061 05D2 0029;0;0;0 0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 0061 05D2 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 005D 05D1 0061 0029 05D2;0;0;0 0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 005D 05D1 0061 0029 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, R, ON and (([]) +05D0 0028 05D1 0028 05D2 2680 005B 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 2680 005B 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 2680 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 2680 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 05D2 005B 005D 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 2680 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 2680 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 05D2 005D 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 2680 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 2680 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 05D2 005D 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 2680 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 0029 2680;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 2680 005D 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 05D2 2680 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 005D 2680 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 05D2 005D 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 005D 0029 2680;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 05D2 005D 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 05D2 2680 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 05D2 0029 2680;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 05D2 2680 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 05D2 0029 2680;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 05D2 2680 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 005D 05D2 2680 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 05D2 0029 2680;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 005D 05D2 0029 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, R, L and (([]) +05D0 0028 05D1 0028 05D2 0061 005B 005D 0029;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 05D2 0061 005B 005D 0029;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0061 005D 0029;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 05D2 005B 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 0061 0029;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 05D2 005B 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 05D2 005B 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0061 005D 0029;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 05D2 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 0061 0029;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 05D2 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 05D2 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 0061 0029;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0061 005D 0029;0;0;1 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 05D2 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 0061 0029;0;0;1 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +05D0 0028 0028 05D1 005B 05D2 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 05D2 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 0061 0029;0;0;1 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +05D0 0028 0028 05D1 005B 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 0061 0029;0;0;1 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 0029 0061;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0061 005D 0029;0;0;0 1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 05D2 0061 005D 0029;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 005D 0061 0029;0;0;0 1 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 05D0 0028 05D1 005B 05D2 005D 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 005D 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 05D2 005D 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 05D2 0061 0029;0;0;0 1 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 05D0 0028 05D1 005B 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 05D2 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 05D2 0061 0029;0;0;0 1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 05D2 0029 0061;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 05D2 0061 0029;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 005D 05D2 0061 0029;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 05D2 0029 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 005D 05D2 0029 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, R, R, R and (([]) +05D0 0028 05D1 0028 05D2 005B 05D3 005D 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 05D3 005D 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 05D3 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 05D3 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 005D 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 05D3 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 05D3 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 005D 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 05D3 0029;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 05D3 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 005D 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 0029 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 005D 05D3 0029;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 05D2 005D 05D3 0029;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 005D 0029 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 05D2 005D 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 005D 05D2 0029 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 005D 05D2 0029 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 005D 05D2 0029 05D3;0;0;0 0 1 1 1 1 1 0 1;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 005D 05D2 0029 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# (([)] +0028 0028 005B 0029 005D;0;0;0 0 0 0 0;0 1 2 3 4 +0028 0028 005B 0029 005D;1;1;1 1 1 1 1;4 3 2 1 0 + +# ON and (([)] +2680 0028 0028 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +2680 0028 0028 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 2680 0028 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 2680 0028 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 2680 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 2680 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 2680 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 2680 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 0029 2680 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 0029 2680 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 0029 005D 2680;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 0029 005D 2680;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# L and (([)] +0061 0028 0028 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0061 0028 0028 005B 0029 005D;1;1;2 1 1 1 1 1;5 4 3 2 1 0 +0028 0061 0028 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0061 0028 005B 0029 005D;1;1;1 2 1 1 1 1;5 4 3 2 1 0 +0028 0028 0061 005B 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 0061 005B 0029 005D;1;1;1 1 2 1 1 1;5 4 3 2 1 0 +0028 0028 005B 0061 0029 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 0061 0029 005D;1;1;1 1 1 2 1 1;5 4 3 2 1 0 +0028 0028 005B 0029 0061 005D;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 0029 0061 005D;1;1;1 1 1 1 2 1;5 4 3 2 1 0 +0028 0028 005B 0029 005D 0061;0;0;0 0 0 0 0 0;0 1 2 3 4 5 +0028 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 2;5 4 3 2 1 0 + +# R and (([)] +05D0 0028 0028 005B 0029 005D;0;0;1 0 0 0 0 0;0 1 2 3 4 5 +05D0 0028 0028 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 05D0 0028 005B 0029 005D;0;0;0 1 0 0 0 0;0 1 2 3 4 5 +0028 05D0 0028 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 05D0 005B 0029 005D;0;0;0 0 1 0 0 0;0 1 2 3 4 5 +0028 0028 05D0 005B 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 05D0 0029 005D;0;0;0 0 0 1 0 0;0 1 2 3 4 5 +0028 0028 005B 05D0 0029 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 0029 05D0 005D;0;0;0 0 0 0 1 0;0 1 2 3 4 5 +0028 0028 005B 0029 05D0 005D;1;1;1 1 1 1 1 1;5 4 3 2 1 0 +0028 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 1;0 1 2 3 4 5 +0028 0028 005B 0029 005D 05D0;1;1;1 1 1 1 1 1;5 4 3 2 1 0 + +# ON, ON and (([)] +2680 0028 2681 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 2681 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, L and (([)] +2680 0028 0061 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0061 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0061 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 005D 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 0029 005D 2680 0061;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# ON, R and (([)] +2680 0028 05D0 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +2680 0028 05D0 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +2680 0028 0028 05D0 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 05D0 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +2680 0028 0028 005B 0029 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +2680 0028 0028 005B 0029 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 2680 05D0 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 2680 0028 05D0 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 05D0 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 2680 0028 005B 0029 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 2680 0028 005B 0029 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 2680 05D0 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 05D0 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 2680 005B 0029 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 2680 005B 0029 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 05D0 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 2680 0029 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 2680 0029 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 2680 05D0 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 0029 2680 005D 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 0029 005D 2680 05D0;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# L, ON and (([)] +0061 2680 0028 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 2680 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 005D 2680;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 2680 0028 005B 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 2680 005B 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 2680 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 0029 2680 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 0029 005D 2680;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 2680 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 0029 2680 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 0029 005D 2680;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 0061 2680 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 005D 2680;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 0061 005D 2680;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# L, L and (([)] +0061 0028 0062 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0029 005D;1;1;2 2 2 1 1 1 1;6 5 4 3 0 1 2 +0061 0028 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 0062 005D;1;1;2 2 2 2 2 2 1;6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2;0 1 2 3 4 5 6 +0028 0061 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 0062 005B 0029 005D;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 0062 0029 005D;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 0029 0062 005D;1;1;1 2 2 2 2 2 1;6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 0029 005D 0062;1;1;1 2 2 2 2 2 2;1 2 3 4 5 6 0 +0028 0028 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 0062 0029 005D;1;1;1 1 2 2 2 1 1;6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 0029 0062 005D;1;1;1 1 2 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 0029 005D 0062;1;1;1 1 2 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 0029 0062 005D;1;1;1 1 1 2 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 0029 005D 0062;1;1;1 1 1 2 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 2 2 2;4 5 6 3 2 1 0 + +# L, R and (([)] +0061 0028 05D0 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0061 0028 05D0 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0061 0028 0028 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0061 05D0 0028 005B 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0061 0028 05D0 005B 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 05D0 0029 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0061 0028 005B 0029 05D0 005D;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0061 0028 005B 0029 005D 05D0;1;1;1 2 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 0061 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 0061 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 0061 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 05D0 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 0061 0029 05D0 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 0061 0029 005D 05D0;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 0061 05D0 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 0029 0061 005D 05D0;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 + +# R, ON and (([)] +05D0 2680 0028 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 2680 0028 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 2680 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 2680 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 2680 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 0029 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 005D 2680;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 0029 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 2680 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 2680 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 2680 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 0029 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 005D 2680;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 0029 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 2680 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 2680 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 0029 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 0029 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 2680 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 0029 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 005D 2680;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 0029 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 05D0 2680 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 005D 2680;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 05D0 005D 2680;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# R, L and (([)] +05D0 0028 0061 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0061 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0;0 1 2 3 4 5 6 +05D0 0028 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0061 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 005D;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 005D 0061;0;0;0 1 0 0 0 0 0;0 1 2 3 4 5 6 +0028 05D0 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 0061 005B 0029 005D;1;1;1 1 1 2 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 0061 0029 005D;1;1;1 1 1 1 2 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 005D;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 005D 0061;0;0;0 0 0 1 0 0 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 005D;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 2 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 005D 0061;0;0;0 0 0 0 1 0 0;0 1 2 3 4 5 6 +0028 0028 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 2;6 5 4 3 2 1 0 + +# R, R and (([)] +05D0 0028 05D1 0028 005B 0029 005D;0;0;1 1 1 0 0 0 0;2 1 0 3 4 5 6 +05D0 0028 05D1 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 0;5 4 3 2 1 0 6 +05D0 0028 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 005D;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 005D;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 005D;0;0;0 1 1 1 1 1 0;0 5 4 3 2 1 6 +0028 05D0 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 005D 05D1;0;0;0 1 1 1 1 1 1;0 6 5 4 3 2 1 +0028 05D0 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 005D;0;0;0 0 1 1 1 0 0;0 1 4 3 2 5 6 +0028 0028 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 005D;0;0;0 0 1 0 0 1 0;0 1 2 3 4 5 6 +0028 0028 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 1;0 1 2 3 4 5 6 +0028 0028 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 1 0 1 0;0 1 2 3 4 5 6 +0028 0028 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 1 0 0 1;0 1 2 3 4 5 6 +0028 0028 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 1 1 1;0 1 2 3 6 5 4 +0028 0028 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1;6 5 4 3 2 1 0 + +# ON, ON, ON and (([)] +2680 0028 2681 0028 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, L and (([)] +2680 0028 2681 0061 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0061 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 005D 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 005D 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 005D 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 0061 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 005D 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 005D 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 005D 2681 0061;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, ON, R and (([)] +2680 0028 2681 05D0 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 05D0 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 05D0 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 2681 0028 005B 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 05D0 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 2681 005B 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 2681 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 2681 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 2681 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 005D 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 05D0 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 2681 005B 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 2681 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 2681 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 2681 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 005D 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 2681 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 2681 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 2681 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 005D 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 2681 05D0 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 2681 005D 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 005D 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 005D 2681 05D0;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, L, ON and (([)] +2680 0028 0061 2681 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 2681 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 2681 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 2681 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 0029 2681 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 0029 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 0061 2681 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 0061 005D 2681;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, L, L and (([)] +2680 0028 0061 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +2680 0028 0028 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 2680 0028 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 + +# ON, L, R and (([)] +2680 0028 0061 05D0 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 05D0 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0061 0028 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 05D0 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 0061 005B 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0061 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 05D0 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0061 0028 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 05D0 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 0061 005B 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0061 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 05D0 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 0061 005B 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0061 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0061 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 0061 05D0 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 0061 005D 05D0;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# ON, R, ON and (([)] +2680 0028 05D0 2681 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 2681 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 05D0 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 05D0 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 2681 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 05D0 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 05D0 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 05D0 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 05D0 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 2681 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 05D0 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 05D0 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 2681 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 05D0 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 005D 2681;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 05D0 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, R, L and (([)] +2680 0028 05D0 0061 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0061 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 05D0 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0061 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 05D0 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 0061 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 05D0 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 005D 0061;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 2680 05D0 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# ON, R, R and (([)] +2680 0028 05D0 0028 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +2680 0028 05D0 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +2680 0028 0028 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +2680 0028 0028 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +2680 0028 0028 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 2680 05D0 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 2680 0028 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 2680 0028 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 2680 0028 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 2680 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 2680 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0028 2680 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 2680 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0028 005B 2680 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0028 005B 0029 2680 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, ON and (([)] +0061 2680 0028 2681 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0029 2681 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0029 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 2680 005D 2681;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 2681 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 0029 2681 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 0029 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 2680 005D 2681;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 0029 2681 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 0029 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 2680 005D 2681;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 005D 2681;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 2680 005D 2681;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, ON, L and (([)] +0061 2680 0028 0062 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 005B 0029 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0062 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0029 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 005B 0029 005D;1;1;2 2 2 2 1 1 1 1;7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0062 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0029 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0062 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0029 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0062 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0029 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0029 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 2680 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 2680 0062 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 2680 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 2680 005D 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 005D 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 005D 2680 0062;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0062 0028 005B 0029 005D;1;1;1 2 2 2 1 1 1 1;7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 0062 005B 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 0062 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 0029 0062 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 0029 005D 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 0062 005B 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 0062 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 0029 0062 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 0029 005D 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 0062 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 0029 0062 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 0029 005D 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0029 2680 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 2680 0062 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0029 2680 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 2680 005D 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0029 005D 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 005D 2680 0062;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0028 0061 2680 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 0062 005B 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 2680 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 0062 0029 005D;1;1;1 1 2 2 2 2 1 1;7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 2680 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 2680 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 005D 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 005D 2680 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0062 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0029 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 2680 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 2680 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 005D 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 005D 2680 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 0062 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 2680 0062 005D;1;1;1 1 1 1 2 2 2 1;7 4 5 6 3 2 1 0 +0028 0028 005B 0029 0061 2680 005D 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 2680 005D 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 +0028 0028 005B 0029 0061 005D 2680 0062;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 005D 2680 0062;1;1;1 1 1 1 2 2 2 2;4 5 6 7 3 2 1 0 + +# L, ON, R and (([)] +0061 2680 0028 05D0 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 05D0 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 05D0 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 2680 05D0 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 2680 005D 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 005D 2680 05D0;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 05D0 0028 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 05D0 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 05D0 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 0029 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 2680 0028 005B 0029 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 05D0 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 05D0 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 0029 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 2680 005B 0029 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 05D0 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 0029 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 2680 0029 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 2680 05D0 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 2680 005D 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 005D 2680 05D0;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 2680 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 2680 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 2680 05D0 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 2680 005D 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 005D 2680 05D0;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 2680 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 2680 05D0 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 2680 005D 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 005D 2680 05D0;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 2680 05D0 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 2680 005D 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 005D 2680 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 005D 2680 05D0;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, L, ON and (([)] +0061 0028 0062 2680 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 005B 0029 005D;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 005B 0029 005D;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 2680 0029 005D;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0029 2680 005D;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0029 005D 2680;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 2680 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 2680 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0029 2680 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 0062 005B 0029 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0029 005D 2680;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 2680 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 2680 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 0029 2680 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 0029 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 0029 005D 2680;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 0062 2680 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 0062 005D 2680;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 0028 0062 2680 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 2680 005B 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 2680 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 2680 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0029 2680 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 005B 0029 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0029 005D 2680;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 2680 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 2680 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 0029 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 0029 2680 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 0029 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 0029 005D 2680;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 0062 2680 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 0062 005D 2680;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0028 0061 005B 0062 2680 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 2680 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 0029 2680 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 0029 005D 2680;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 0062 2680 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 0062 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 0062 005D 2680;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 2680 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 0062 2680 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 005D 2680;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 0062 005D 2680;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, L, L and (([)] +0061 0028 0062 0028 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 005B 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 0029 0063 005D;1;1;2 2 2 2 2 2 2 1;7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0063 0029 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0029 0063 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0029 005D 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 0029 0063 005D;1;1;1 2 2 2 2 2 2 1;7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 0029 005D 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 0062 005D 0063;1;1;1 2 2 2 2 2 2 2;1 2 3 4 5 6 7 0 +0028 0028 0061 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 1 2 1;7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 1 1 2;7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 0062 005D 0063;1;1;1 1 2 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 0062 005D 0063;1;1;1 1 1 2 1 2 2 2;5 6 7 4 3 2 1 0 + +# L, L, R and (([)] +0061 0028 0062 05D0 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 05D0 0028 005B 0029 005D;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 05D0 005B 0029 005D;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 05D0 0029 005D;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0029 05D0 005D;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0029 005D 05D0;1;1;2 2 2 1 1 1 1 1;7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 05D0 005B 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 05D0 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 05D0 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 0029 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 0029 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 0062 05D0 005D;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 0062 005D 05D0;1;1;2 2 2 2 2 2 1 1;7 6 0 1 2 3 4 5 +0028 0061 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 05D0 005B 0029 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 05D0 0029 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0029 05D0 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 0062 005B 0029 005D 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 05D0 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 0029 05D0 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0062 0029 005D 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 0062 05D0 005D;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 0062 005D 05D0;1;1;1 2 2 2 2 2 1 1;7 6 1 2 3 4 5 0 +0028 0028 0061 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 05D0 0029 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 0029 05D0 005D;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0062 0029 005D 05D0;1;1;1 1 2 2 2 1 1 1;7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 0062 05D0 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 0062 005D 05D0;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 0062 05D0 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 0062 005D 05D0;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 + +# L, R, ON and (([)] +0061 0028 05D0 2680 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 2680 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 2680 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 2680 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 0029 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 0029 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 2680 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 2680 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 0029 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 0029 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 2680 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 0029 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 0029 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 05D0 2680 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 05D0 005D 2680;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 2680 0028 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 2680 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 2680 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 0029 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 0029 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 2680 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 2680 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 0029 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 0029 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 2680 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 0029 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 0029 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 05D0 2680 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 05D0 005D 2680;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 2680 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 0029 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 0029 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 05D0 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 05D0 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 2680 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 0029 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 0029 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 05D0 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 05D0 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 2680 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 05D0 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 005D 2680;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 05D0 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# L, R, L and (([)] +0061 0028 05D0 0062 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0062 0028 005B 0029 005D;1;1;2 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 0062 005B 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 05D0 0028 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 0062 005B 0029 005D;1;1;2 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 0062 0029 005D;1;1;2 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 0029 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 05D0 0062 005D;1;1;2 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0062 0028 005B 0029 005D;1;1;1 2 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 0062 005B 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 05D0 0028 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 0062 005B 0029 005D;1;1;1 2 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 0062 0029 005D;1;1;1 2 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 0029 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 0029 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 05D0 0062 005D;1;1;1 2 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 0029 05D0 005D 0062;1;1;1 2 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 0062 005B 0029 005D;1;1;1 1 2 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 0062 0029 005D;1;1;1 1 2 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 0029 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 05D0 0062 005D;1;1;1 1 2 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 0029 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 0062 0029 005D;1;1;1 1 1 2 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 0062 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 05D0 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 0029 05D0 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 0062 005D;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 05D0 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 005D 0062;0;0;0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 0061 05D0 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 + +# L, R, R and (([)] +0061 0028 05D0 0028 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 0028 05D1 005B 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 0028 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0061 0028 05D0 0028 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0061 0028 0028 05D0 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 05D0 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0061 0028 0028 005B 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0061 0028 0028 005B 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 0028 05D1 005B 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 0028 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 0;0 1 6 5 4 3 2 7 +0028 0061 05D0 0028 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1;0 1 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0061 0028 05D0 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 05D0 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0061 0028 005B 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0061 0028 005B 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 0061 05D0 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 05D0 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 0061 005B 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0028 0061 005B 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0061 05D0 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0028 005B 0061 0029 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0028 005B 0029 0061 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, ON and (([)] +05D0 2680 0028 2681 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 2681 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 2681 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 005D 2681;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 2681 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 005D 2681;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 2681 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 005D 2681;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 005D 2681;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 2680 005D 2681;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, ON, L and (([)] +05D0 2680 0028 0061 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0061 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 2680 0028 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0061 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 2680 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 0061 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 005D 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 005D 2680 0061;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0061 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 2680 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 0061 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 005D 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 005D 2680 0061;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 0061 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 005D 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 005D 2680 0061;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 0061 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 005D 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 005D 2680 0061;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 0061 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 2680 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 005D 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 2680 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 005D 2680 0061;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 005D 2680 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, ON, R and (([)] +05D0 2680 0028 05D1 0028 005B 0029 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 2680 0028 05D1 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 2680 0028 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0029 005D;0;0;1 1 1 1 0 0 0 0;3 2 1 0 4 5 6 7 +05D0 0028 2680 05D1 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 2680 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 2680 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 2680 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 2680 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 2680 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 2680 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 05D1 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 0029 2680 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 005D 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 005D 2680 05D1;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 005D 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0029 005D;0;0;0 1 1 1 0 0 0 0;0 3 2 1 4 5 6 7 +0028 05D0 2680 05D1 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 05D1 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 2680 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 005D 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 2680 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 2680 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 05D1 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 2680 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 005D 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 2680 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 05D1 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 2680 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 005D 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 05D1 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 0029 2680 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 005D 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 0029 2680 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 005D 2680 05D1;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 0029 005D 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 2680 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 2680 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 2680 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0029 005D;0;0;0 0 1 1 1 1 0 0;0 1 5 4 3 2 6 7 +0028 0028 05D0 005B 2680 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 2680 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 2680 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 2680 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 005D 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0029 005D;0;0;0 0 0 1 1 1 0 0;0 1 2 5 4 3 6 7 +0028 0028 005B 05D0 2680 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 2680 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 2680 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 2680 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 005D 2680 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 005D 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 05D1 005D;0;0;0 0 0 0 1 1 1 0;0 1 2 3 6 5 4 7 +0028 0028 005B 0029 05D0 2680 05D1 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 005D 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 005B 0029 05D0 2680 005D 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 005D 2680 05D1;0;0;0 0 0 0 1 1 1 1;0 1 2 3 7 6 5 4 +0028 0028 005B 0029 05D0 005D 2680 05D1;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, L, ON and (([)] +05D0 0028 0061 2680 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 2680 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 2680 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 2680 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 0029 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 0029 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 2680 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 0029 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 0029 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 2680 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 005D 2680;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 2680 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 2680 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 2680 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 0029 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 0029 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 2680 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 0029 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 0029 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 2680 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 005D 2680;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 2680 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 2680 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 0029 2680 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 0029 005D 2680;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 2680 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 0029 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 0029 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 2680 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 005D 2680;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0029 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 2680 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 0029 2680 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 0029 005D 2680;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 2680 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 005D 2680;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 2680 005D;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 0061 2680 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 005D 2680;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 0061 005D 2680;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, L, L and (([)] +05D0 0028 0061 0028 0062 005B 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +05D0 0028 0028 0061 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 1;7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2;2 3 4 5 6 7 1 0 +0028 05D0 0028 0061 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 0062 005D;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 005D 0062;0;0;0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 0062 0029 005D;1;1;1 1 1 2 2 2 1 1;7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 0029 0062 005D;1;1;1 1 1 2 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 0062 005D;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 0029 0062 005D;1;1;1 1 1 1 2 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 0029 005D 0062;1;1;1 1 1 1 2 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 005D 0062;0;0;0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 005D 0062;0;0;0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 0061 005D 0062;1;1;1 1 1 1 1 2 2 2;5 6 7 4 3 2 1 0 + +# R, L, R and (([)] +05D0 0028 0061 05D1 0028 005B 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 05D1 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0061 0028 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 0061 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0029 005D;0;0;1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 05D1 005D;0;0;1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0029 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 05D1 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0061 0028 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 0061 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0029 005D;0;0;0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 05D1 005D;0;0;0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 005D 05D1;0;0;0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0029 005D;0;0;0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 0061 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0029 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 05D1 005D;0;0;0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0029 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0061 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 05D1 005D;0;0;0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 005D 05D1;0;0;0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 05D1 005D;0;0;0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 005D 05D1;0;0;0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 +0028 0028 005B 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 + +# R, R, ON and (([)] +05D0 0028 05D1 2680 0028 005B 0029 005D;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 2680 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0029 005D;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 2680 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0029 005D;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 2680 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 2680 005D;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 0029 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 005D 2680;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 0029 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 2680 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 005B 2680 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 2680 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 05D1 005B 0029 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 005D 2680;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 05D1 005B 0029 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 05D1 2680 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 2680 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 005B 05D1 0029 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 005D 2680;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 005B 05D1 0029 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 2680 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 005B 0029 05D1 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 005D 2680;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 005B 0029 05D1 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 2680 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 005B 2680 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 2680 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 005B 0029 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 005D 2680;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 005B 0029 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 05D1 2680 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 2680 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 005B 05D1 0029 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 005D 2680;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 005B 05D1 0029 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 2680 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 005B 0029 05D1 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 005D 2680;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 005B 0029 05D1 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 005B 05D1 2680 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 2680 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 005B 05D1 0029 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 005D 2680;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 005B 05D1 0029 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 2680 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 05D1 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 005D 2680;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 05D1 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 2680 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 05D1 2680 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 005D 2680;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 05D1 005D 2680;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# R, R, L and (([)] +05D0 0028 05D1 0061 0028 005B 0029 005D;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0061 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 0029 005D;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 0029 005D;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 0061 005D;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 005D 0061;0;0;1 1 1 0 0 0 0 0;2 1 0 3 4 5 6 7 +05D0 0028 05D1 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 0029 005D;0;0;1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 0029 005D;0;0;1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +05D0 0028 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 0061 005D;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 005D 0061;0;0;1 1 1 1 1 1 0 0;5 4 3 2 1 0 6 7 +05D0 0028 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0029 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 1 2 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 0029 005D;0;0;0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 0061 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 005D 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 0029 005D;0;0;0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 +0028 05D0 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 0061 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 005D 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 0061 005D;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 005D 0061;0;0;0 1 1 1 1 1 0 0;0 5 4 3 2 1 6 7 +0028 05D0 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 0029 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 2 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 0061 005D;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 005D 0061;0;0;0 0 1 1 1 0 0 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 0061 005D;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 005D 0061;0;0;0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 05D0 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 0061 005D;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 2 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 005D 0061;0;0;0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 +0028 0028 005B 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 2;7 6 5 4 3 2 1 0 + +# R, R, R and (([)] +05D0 0028 05D1 0028 05D2 005B 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 05D1 0028 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 1 0;6 5 4 3 2 1 0 7 +05D0 0028 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0029 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 05D2 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 05D2 005D;0;0;0 1 1 1 1 1 1 0;0 6 5 4 3 2 1 7 +0028 05D0 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 005D 05D2;0;0;0 1 1 1 1 1 1 1;0 7 6 5 4 3 2 1 +0028 05D0 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 0 1 0;0 1 4 3 2 5 6 7 +0028 0028 05D0 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 0 0 1;0 1 4 3 2 5 6 7 +0028 0028 05D0 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 1 0 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0028 05D0 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 1 0 1 1 1;0 1 2 3 4 7 6 5 +0028 0028 005B 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1;7 6 5 4 3 2 1 0 + +# ON, ON, ON, ON and (([)] +2680 0028 2681 0028 2682 005B 2683 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 2683 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 0029 2683 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 0029 2683 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 0029 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 0029 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0029 2683 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 0029 2683 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0029 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 0029 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0029 2683 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 0029 2683 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0029 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 0029 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0029 2683 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 0029 2683 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0029 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 0029 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 2682 005D 2683;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 2682 005D 2683;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, ON, L and (([)] +2680 0028 2681 0028 2682 0061 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 0061 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 0029 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 0029 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0061 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0029 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0029 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 2682 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0061 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0029 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0029 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 2682 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 2682 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0061 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0029 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0029 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 2682 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 2682 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 2682 0061 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 2682 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 2682 005D 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 2682 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 005D 2682 0061;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 005D 2682 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, ON, ON, R and (([)] +2680 0028 2681 0028 2682 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 05D0 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 2682 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 2682 005B 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 2682 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 2682 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 2682 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 2682 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 05D0 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 0029 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 2682 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 2682 0029 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 2682 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 2682 05D0 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 2682 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 2682 005D 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 005D 2682 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 005D 2682 05D0;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, L, ON and (([)] +2680 0028 2681 0061 2682 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 2682 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 2682 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 2682 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 0029 2682 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 0029 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 2682 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 2682 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 0029 2682 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 0029 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 2682 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 0029 2682 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 0029 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 2682 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 2682 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 0029 2682 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 0029 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 2682 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 0029 2682 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 0029 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 2682 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 0029 2682 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 0029 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 2682 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 2682 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 0029 2682 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 0029 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 2682 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 0029 2682 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 0029 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 2682 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 0029 2682 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 0029 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 2682 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 0029 2682 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 0029 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 0061 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 0061 2682 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 0061 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 0061 005D 2682;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, L, L and (([)] +2680 0028 2681 0061 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 0062 005B 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 2681 0061 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 2681 0061 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 0029 0062 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 2681 0061 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 0029 005D 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 2681 0028 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +2680 0028 2681 0028 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +2680 0028 0028 2681 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 2680 0028 2681 0061 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 0061 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 + +# ON, ON, L, R and (([)] +2680 0028 2681 0061 05D0 0028 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 05D0 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 05D0 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0061 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0061 0028 005B 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 05D0 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 0061 005B 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 05D0 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 0029 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0061 0029 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 05D0 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 0061 005B 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 05D0 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 0029 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0061 0029 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 05D0 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 0029 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0061 0029 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 05D0 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 0061 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 0061 005B 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 05D0 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 0029 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0061 0029 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 05D0 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 0029 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0061 0029 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 05D0 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 0029 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0061 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0061 0029 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 0061 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 0061 05D0 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 0061 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 0061 005D 05D0;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, ON and (([)] +2680 0028 2681 05D0 2682 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 2682 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 2682 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 2682 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 0029 2682 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 0029 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 2682 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 2682 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0029 2682 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0029 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 2682 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0029 2682 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0029 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 2682 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 2682 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0029 2682 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0029 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 2682 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0029 2682 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0029 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 2682 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0029 2682 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0029 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 2682 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 2682 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0029 2682 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0029 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 2682 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0029 2682 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0029 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 2682 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0029 2682 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0029 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 2682 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0029 2682 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0029 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 05D0 2682 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 05D0 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 05D0 005D 2682;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 05D0 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, L and (([)] +2680 0028 2681 05D0 0061 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0061 0028 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 0061 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 0061 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 0029 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 0029 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 05D0 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 0061 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0061 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0029 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0029 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0061 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0029 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0029 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 0061 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0061 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0029 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0029 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0061 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0029 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0029 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0061 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0029 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0029 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 0061 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0061 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0029 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0029 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0061 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0029 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0029 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0061 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0029 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0029 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0061 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0029 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0029 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 0029 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 05D0 0061 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 05D0 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 05D0 005D 0061;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 2681 05D0 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, ON, R, R and (([)] +2680 0028 2681 05D0 0028 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 2681 05D0 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 2681 05D0 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 0029 05D1 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 2681 05D0 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 05D0 0028 005B 0029 005D 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 2681 05D0 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +2680 0028 2681 0028 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 2681 0028 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 2681 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 2681 0028 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +2680 0028 0028 2681 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 2681 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 2681 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0028 2681 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 2681 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 2681 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0028 005B 2681 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0028 005B 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 2680 0028 2681 05D0 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 05D0 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 2681 005B 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 2681 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0028 2681 005B 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 2681 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 2681 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0028 005B 2681 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0028 005B 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 2681 05D0 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 2681 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 2680 005B 2681 0029 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 2680 005B 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 2681 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 2680 0029 2681 05D0 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, ON, ON and (([)] +2680 0028 0061 2681 0028 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 2682 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 2682 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 0029 2682 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 0029 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 2682 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 0029 2682 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 0029 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 0029 2682 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 0029 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 2682 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 0029 2682 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 0029 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 0029 2682 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 0029 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 2681 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 0029 2682 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 0029 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 2681 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 2681 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 2682 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 2682 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 0029 2682 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 0029 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 2682 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 0029 2682 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 0029 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 0029 2682 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 0029 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 2682 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 0029 2682 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 0029 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 0029 2682 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 0029 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 2681 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 0029 2682 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 0029 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 2681 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 2681 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 2682 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 0029 2682 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 0029 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 0029 2682 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 0029 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 2681 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 0029 2682 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 0029 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 2681 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 2681 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 0029 2682 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 0029 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 2681 005D 2682;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 2681 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 2681 005D 2682;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, ON, L and (([)] +2680 0028 0061 2681 0062 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0062 0028 005B 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +2680 0028 0061 2681 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 2681 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 2681 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 2681 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 2681 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 2681 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 005D 2681 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0028 0061 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 0062 005B 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +2680 0028 0028 0061 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 2681 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 2681 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 005D 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +2680 0028 0028 005B 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 2681 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 2681 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 005D 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 2681 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 2681 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 005D 2681 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0061 2681 0062 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0062 0028 005B 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 2680 0061 2681 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 2681 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 2681 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 2681 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 2681 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 2681 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 005D 2681 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0028 0061 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 0062 005B 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 2680 0028 0061 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 2681 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 2681 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 005D 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 2680 0028 005B 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 2681 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 2681 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 005D 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 2681 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 2681 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 005D 2681 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 0061 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 0062 005B 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 2680 0061 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 2681 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 2681 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 005D 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 2680 005B 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 2681 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 2681 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 005D 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 2681 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 2681 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 005D 2681 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 005B 2680 0061 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 2681 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 2681 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 005D 2681 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 2681 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 2681 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 005D 2681 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 2681 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 2681 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 005D 2681 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 + +# ON, L, ON, R and (([)] +2680 0028 0061 2681 05D0 0028 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 05D0 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 2681 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 2681 0028 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 2681 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 2681 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 05D0 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 2681 005B 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 2681 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 2681 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 2681 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 2681 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 005D 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 05D0 0028 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 05D0 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 2681 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 2681 0028 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 05D0 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 2681 005B 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 2681 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 05D0 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 2681 005B 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 2681 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 2681 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 2681 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 2681 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 005D 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 05D0 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 2681 005B 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 05D0 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 0029 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 2681 0029 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 2681 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 2681 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 2681 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 005D 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 05D0 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 0029 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 2681 0029 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 2681 05D0 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 2681 005D 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 2681 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 2681 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 005D 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 2681 05D0 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 2681 005D 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 005D 2681 05D0;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, L, ON and (([)] +2680 0028 0061 0028 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 2681 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 2681 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 0029 2681 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 0029 005D 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 2681 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 0029 2681 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 0029 005D 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 0062 2681 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 0062 005D 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0028 0061 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 2681 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 0029 2681 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 0029 005D 2681;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 0062 2681 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 0062 005D 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 0062 2681 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 0062 005D 2681;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 2681 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 2681 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 0029 2681 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 0029 005D 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 2681 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 0029 2681 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 0029 005D 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 0062 2681 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 0062 005D 2681;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0028 0061 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 2681 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 0029 2681 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 0029 005D 2681;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 0062 2681 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 0062 005D 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 0062 2681 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 0062 005D 2681;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 2681 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 0029 2681 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 0029 005D 2681;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 0062 2681 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 0062 005D 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 0062 2681 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 0062 005D 2681;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 0062 2681 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 0062 005D 2681;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, L, L and (([)] +2680 0028 0061 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 0063 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 0029 0063 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 0029 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +2680 0028 0061 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0061 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 0062 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +2680 0028 0028 0061 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 0029 0063 005D;1;1;1 1 1 2 2 2 1 2 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 0029 005D 0063;1;1;1 1 1 2 2 2 1 1 2;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 0063 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 0029 0063 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 0029 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 2680 0061 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0061 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 0062 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 2680 0028 0061 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 0029 0063 005D;1;1;1 1 1 2 2 2 1 2 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 0029 005D 0063;1;1;1 1 1 2 2 2 1 1 2;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 0029 0063 005D;1;1;1 1 1 2 2 2 1 2 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 0029 005D 0063;1;1;1 1 1 2 2 2 1 1 2;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 + +# ON, L, L, R and (([)] +2680 0028 0061 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 05D0 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 05D0 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 0029 05D0 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 0062 005B 0029 005D 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 05D0 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 0029 05D0 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0062 0029 005D 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 0062 05D0 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0061 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 0062 005D 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +2680 0028 0028 0061 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 05D0 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 0029 05D0 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0062 0029 005D 05D0;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +2680 0028 0028 0061 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 0062 05D0 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 0062 005D 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 0062 05D0 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 0062 005D 05D0;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 05D0 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 05D0 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 0029 05D0 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 0062 005B 0029 005D 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 05D0 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 0029 05D0 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0062 0029 005D 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 0062 05D0 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0061 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 0062 005D 05D0;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 2680 0028 0061 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 05D0 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 0029 05D0 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0062 0029 005D 05D0;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 2680 0028 0061 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 0062 05D0 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 0062 005D 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 0062 05D0 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 0062 005D 05D0;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 05D0 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 0029 05D0 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0062 0029 005D 05D0;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 2680 0061 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 0062 05D0 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 0062 005D 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 0062 05D0 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 0062 005D 05D0;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 0062 05D0 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 0062 005D 05D0;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, R, ON and (([)] +2680 0028 0061 05D0 2681 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 2681 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 05D0 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 05D0 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 2681 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 2681 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 05D0 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 05D0 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 05D0 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 05D0 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 05D0 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 05D0 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 05D0 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 05D0 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, L, R, L and (([)] +2680 0028 0061 05D0 0062 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0062 0028 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 05D0 0028 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 05D0 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 0062 005B 0029 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 05D0 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 0029 05D0 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 0062 0029 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 05D0 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 0029 05D0 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 05D0 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 0061 05D0 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0062 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0062 0028 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 05D0 0028 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 05D0 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 0062 005B 0029 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 05D0 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 0029 05D0 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 0062 0029 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 05D0 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 0029 05D0 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 05D0 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 0061 05D0 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 0062 005B 0029 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 05D0 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 0029 05D0 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 0062 0029 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 05D0 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 0029 05D0 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 05D0 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 0061 05D0 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 0062 0029 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 05D0 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 0029 05D0 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 05D0 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 0061 05D0 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 05D0 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 0061 05D0 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, L, R, R and (([)] +2680 0028 0061 05D0 0028 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0061 05D0 0028 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0061 05D0 0028 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 0029 05D1 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +2680 0028 0061 05D0 0028 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 05D0 0028 005B 0029 005D 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +2680 0028 0061 05D0 0028 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +2680 0028 0061 0028 05D0 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 05D0 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0061 0028 005B 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0061 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0061 0028 005B 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +2680 0028 0028 0061 05D0 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 05D0 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 0061 005B 05D0 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 0061 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0028 0061 005B 0029 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0061 05D0 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0028 005B 0061 0029 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0028 005B 0029 0061 05D0 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0061 05D0 0028 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0061 05D0 0028 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0029 05D1 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 2680 0061 05D0 0028 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 05D0 0028 005B 0029 005D 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 2680 0061 05D0 0028 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 2680 0061 0028 05D0 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 05D0 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0061 0028 005B 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0061 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0061 0028 005B 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 2680 0028 0061 05D0 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 05D0 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 0061 005B 05D0 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 0061 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0028 0061 005B 0029 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0061 05D0 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0028 005B 0061 0029 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0028 005B 0029 0061 05D0 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 2680 0061 05D0 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 05D0 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 0061 005B 05D0 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 0061 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 2680 0061 005B 0029 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0061 05D0 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 2680 005B 0061 0029 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 2680 005B 0029 0061 05D0 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0061 05D0 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0061 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 2680 0061 0029 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 0061 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 2680 0029 0061 05D0 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 0061 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 0029 2680 0061 05D0 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, ON and (([)] +2680 0028 05D0 2681 0028 2682 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 2682 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 0029 2682 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 0029 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 2682 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0029 2682 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0029 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0029 2682 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0029 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 2682 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0029 2682 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0029 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0029 2682 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0029 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 2681 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0029 2682 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0029 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 2681 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 2681 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 2682 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 2682 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0029 2682 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0029 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 2682 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0029 2682 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0029 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0029 2682 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0029 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 2682 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0029 2682 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0029 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0029 2682 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0029 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 2681 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0029 2682 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0029 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 2681 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 2681 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 2682 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0029 2682 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0029 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0029 2682 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0029 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 2681 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0029 2682 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0029 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 2681 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 2681 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0029 2682 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0029 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 2681 005D 2682;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 2681 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 2681 005D 2682;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, L and (([)] +2680 0028 05D0 2681 0061 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0061 0028 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 2681 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0061 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0029 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0029 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 0061 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0061 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0029 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0029 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0061 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0029 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0029 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 2681 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 2681 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 005D 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0061 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0029 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0029 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 2681 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 2681 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 005D 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 2681 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 2681 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 005D 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0061 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0061 0028 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 2681 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 0061 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0061 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0029 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0029 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0061 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0029 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0029 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 0061 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0061 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0029 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0029 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0061 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0029 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0029 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 2681 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 2681 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 005D 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0061 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0029 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0029 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 2681 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 2681 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 005D 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 2681 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 2681 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 005D 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 0061 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0061 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0029 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0029 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0061 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0029 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0029 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 2681 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 2681 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 005D 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0061 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0029 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0029 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 2681 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 2681 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 005D 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 2681 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 2681 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 005D 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0061 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0029 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0029 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 2681 0061 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 2681 005D 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 005D 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 2681 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 2681 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 005D 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 2681 0061 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 2681 005D 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 005D 2681 0061;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, R, ON, R and (([)] +2680 0028 05D0 2681 05D1 0028 005B 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +2680 0028 05D0 2681 05D1 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 2681 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 2681 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 2681 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 2681 0028 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 2681 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 2681 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 2681 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 2681 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 2681 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 005D 2681 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 2681 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +2680 0028 0028 05D0 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 2681 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 2681 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 2681 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 005D 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +2680 0028 0028 005B 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 2681 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 2681 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 2681 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 005D 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 2681 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +2680 0028 0028 005B 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 2681 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 005B 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 005D 2681 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +2680 0028 0028 005B 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 05D1 0028 005B 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 2680 05D0 2681 05D1 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 2681 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 2681 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 2681 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 2681 0028 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 2681 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 2681 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 2681 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 2681 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 2681 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 005D 2681 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 2681 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 2680 0028 05D0 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 2681 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 2681 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 2681 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 005D 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 2680 0028 005B 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 2681 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 2681 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 2681 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 005D 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 2681 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 2680 0028 005B 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 2681 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 005B 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 005D 2681 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 2680 0028 005B 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 2681 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 2680 05D0 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 2681 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 2681 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 2681 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 005D 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 2680 005B 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 2681 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 2681 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 2681 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 005D 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 2681 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 2680 005B 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 2681 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 005B 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 005D 2681 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 2680 005B 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 2680 05D0 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 2681 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 2681 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 2681 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 005D 2681 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 2681 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 2680 0029 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 2681 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 2680 0029 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 005D 2681 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 2680 0029 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 2681 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 0029 2680 05D0 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 2681 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 0029 2680 05D0 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 005D 2681 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 0029 2680 05D0 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, L, ON and (([)] +2680 0028 05D0 0061 2681 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 2681 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 0061 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 0061 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 0061 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 0061 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 0061 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 0061 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 2681 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 2681 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 0061 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 0061 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 0061 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 0061 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 0061 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 0061 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 0061 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 0061 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 0061 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 0061 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 0061 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 0061 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 0061 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 0061 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 0061 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 0061 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 0061 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 0061 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, L, L and (([)] +2680 0028 05D0 0061 0028 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 0062 005B 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 05D0 0061 0028 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 05D0 0061 0028 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 0029 0062 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +2680 0028 05D0 0061 0028 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 0029 005D 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +2680 0028 05D0 0028 0061 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +2680 0028 05D0 0028 0061 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 0061 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 0061 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 0061 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 0062 005B 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 05D0 0061 0028 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 05D0 0061 0028 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 0029 0062 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 2680 05D0 0061 0028 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 0029 005D 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 2680 05D0 0028 0061 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 2680 05D0 0028 0061 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 0061 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 0061 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 0061 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 0061 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 0061 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 0061 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 0061 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 0061 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 0061 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 + +# ON, R, L, R and (([)] +2680 0028 05D0 0061 05D1 0028 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 05D1 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0061 0028 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0061 0028 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 0061 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 0061 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 05D1 005B 0029 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 0061 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0061 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 0061 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 0061 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 05D1 0029 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0061 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 0061 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 0061 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 0061 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 0029 05D0 0061 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 05D1 0028 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 05D1 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0061 0028 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0061 0028 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 0061 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 0061 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 05D1 005B 0029 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 0061 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0061 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 0061 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 0061 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 05D1 0029 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0061 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 0061 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 0061 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 0061 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 0029 05D0 0061 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 05D1 005B 0029 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 0061 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0061 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 0061 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 0061 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 05D1 0029 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0061 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 0061 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 0061 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 0061 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 0029 05D0 0061 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 05D1 0029 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0061 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 0061 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 0061 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 0061 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 0029 05D0 0061 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 0029 05D0 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 0061 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 2680 05D0 0061 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 2680 05D0 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, R, ON and (([)] +2680 0028 05D0 0028 05D1 2681 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 2681 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 0029 2681 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 0029 005D 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 2681 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0029 2681 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0029 005D 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 05D1 2681 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 05D1 005D 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 2681 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0029 2681 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0029 005D 2681;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 05D1 2681 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 05D1 005D 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 05D1 2681 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 05D1 005D 2681;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 2681 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 2681 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0029 2681 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0029 005D 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 2681 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0029 2681 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0029 005D 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 05D1 2681 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 05D1 005D 2681;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 2681 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0029 2681 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0029 005D 2681;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 05D1 2681 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 05D1 005D 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 05D1 2681 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 05D1 005D 2681;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 2681 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0029 2681 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0029 005D 2681;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 05D1 2681 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 05D1 005D 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 05D1 2681 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 05D1 005D 2681;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 05D1 2681 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 05D1 005D 2681;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# ON, R, R, L and (([)] +2680 0028 05D0 0028 05D1 0061 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 0061 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 0029 0061 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 0029 005D 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0061 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 05D0 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0029 0061 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0029 005D 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 05D1 0061 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 05D1 005D 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +2680 0028 05D0 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0061 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0029 0061 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0029 005D 0061;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 05D1 0061 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 05D1 005D 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 05D0 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 05D1 0061 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 05D1 005D 0061;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +2680 0028 0028 005B 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 0061 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0061 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0029 0061 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0029 005D 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0061 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 05D0 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0029 0061 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0029 005D 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 05D1 0061 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 05D1 005D 0061;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 2680 05D0 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0061 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0029 0061 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0029 005D 0061;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 05D1 0061 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 05D1 005D 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 05D0 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 05D1 0061 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 05D1 005D 0061;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 2680 0028 005B 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0061 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0029 0061 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0029 005D 0061;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 05D1 0061 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 05D1 005D 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 05D0 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 05D1 0061 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 05D1 005D 0061;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 2680 005B 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 05D1 0061 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 05D1 005D 0061;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 2680 05D0 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# ON, R, R, R and (([)] +2680 0028 05D0 0028 05D1 005B 05D2 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 0029 05D2 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 05D1 005B 0029 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +2680 0028 05D0 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 05D0 0028 005B 0029 05D1 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +2680 0028 05D0 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 0 1 1 1 0 1 0;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 0 1 1 1 0 0 1;0 1 2 5 4 3 6 7 8 +2680 0028 0028 05D0 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0028 05D0 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +2680 0028 0028 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +2680 0028 0028 005B 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 05D2 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0029 05D2 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 05D1 005B 0029 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 2680 05D0 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 05D0 0028 005B 0029 05D1 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 2680 05D0 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 0 1 1 1 0 1 0;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 0 1 1 1 0 0 1;0 1 2 5 4 3 6 7 8 +0028 2680 0028 05D0 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0028 05D0 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 2680 0028 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 2680 0028 005B 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 0 1 1 1 0 1 0;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 0 1 1 1 0 0 1;0 1 2 5 4 3 6 7 8 +0028 0028 2680 05D0 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 2680 05D0 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 2680 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 2680 005B 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 2680 05D0 0029 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 2680 05D0 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, ON, ON and (([)] +0061 2680 0028 2681 0028 2682 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 2682 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 2682 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0029 2682 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0029 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 2682 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0029 2682 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0029 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0029 2682 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0029 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 2682 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0029 2682 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0029 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0029 2682 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0029 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0029 2682 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0029 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 2681 005D 2682;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 2682 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 2682 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 0029 2682 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 0029 005D 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 0029 2682 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 0029 005D 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 2681 005D 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 0029 2682 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 0029 005D 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 2681 005D 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 2681 005D 2682;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 0029 2682 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 0029 2682 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 0029 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 0029 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 2681 005D 2682;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 2681 005D 2682;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 2681 005D 2682;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, ON, L and (([)] +0061 2680 0028 2681 0062 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0062 0028 005B 0029 005D;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 2680 0028 2681 0028 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 0062 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0062 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0029 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 2681 0028 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 0062 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0062 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0029 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0062 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0029 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0029 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 2681 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 0062 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0062 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0029 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0029 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0062 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0029 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0029 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 2681 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0062 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0029 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0029 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 2681 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 2681 0062 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 2681 005D 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 005D 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 005D 2681 0062;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0062 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 0062 005B 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 2681 005B 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 0062 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 2681 005B 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 0029 0062 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 2681 005B 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 0029 005D 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 0062 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 0029 0062 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 0029 005D 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 2681 0062 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 2681 005D 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 005D 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 0062 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 0029 0062 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 0029 005D 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 2681 0062 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 2681 005D 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 005D 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 2681 0062 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 2681 005D 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 005D 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 005D 2681 0062;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 2680 005B 2681 0062 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 0062 0029 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 005B 2681 0029 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 0029 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 2681 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 2681 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 005D 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 2681 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 2681 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 005D 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 005D 2681 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 2681 0062 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 2681 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 2681 005D 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 2681 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 005D 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 005D 2681 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 005D 2681 0062;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 005D 2681 0062;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 + +# L, ON, ON, R and (([)] +0061 2680 0028 2681 05D0 0028 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 05D0 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 2681 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 2681 0028 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 2681 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 2681 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 05D0 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 2681 005B 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 2681 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 05D0 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0029 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 2681 0029 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 2681 05D0 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 2681 005D 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 005D 2681 05D0;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 05D0 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 05D0 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 0029 05D0 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 2681 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 2681 005B 0029 005D 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 05D0 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 0029 05D0 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 2681 0029 005D 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 2681 05D0 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 2681 005D 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 05D0 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 0029 05D0 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 2681 0029 005D 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 2681 05D0 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 2681 005D 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 2681 05D0 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 2681 005D 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 005D 2681 05D0;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 05D0 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 0029 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 2681 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 2681 0029 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 2681 05D0 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 2681 005D 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 005D 2681 05D0;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 2681 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 2681 05D0 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 2681 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 2681 005D 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 005D 2681 05D0;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 005D 2681 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 005D 2681 05D0;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, L, ON and (([)] +0061 2680 0028 0062 2681 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 2681 0028 005B 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 2681 005B 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 2681 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0029 2681 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0029 005D 2681;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 2681 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 2681 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 2681 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 0062 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 0062 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0062 2681 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 2681 0028 005B 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 2681 005B 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 2681 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0029 2681 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0029 005D 2681;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 2681 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 2681 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 2681 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 0062 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 0062 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 2681 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 2681 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 2681 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 0062 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 0062 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 2681 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 0062 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 0062 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 0062 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 0062 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0028 0061 2680 0062 2681 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 2681 0028 005B 0029 005D;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 2681 005B 0029 005D;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 2681 0029 005D;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 0029 2681 005D;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 0029 005D 2681;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 2681 005B 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 2681 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 0029 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 0029 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 2681 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 0029 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 0029 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 0062 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 0062 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 2681 005B 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 2681 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 0029 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 0029 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 2681 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 0029 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 0029 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 0062 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 0062 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 2681 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 0029 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 0029 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 0062 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 0062 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 0062 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 0062 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0028 0061 2680 0062 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 2681 005B 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 2681 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 0029 2681 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 0029 005D 2681;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 005B 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 2681 0029 005D;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 0029 2681 005D;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 0029 005D 2681;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 0062 2681 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 0062 005D 2681;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 2681 0029 005D;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 0029 2681 005D;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 0029 005D 2681;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 0062 2681 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 0062 005D 2681;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 0062 2681 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 0062 005D 2681;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0062 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 2681 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 0029 2681 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 0029 005D 2681;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0029 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 0062 2681 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 0062 005D 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 0062 2681 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 0062 005D 2681;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 0062 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 0062 2681 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 005B 0029 0061 2680 0062 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 0062 005D 2681;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 + +# L, ON, L, L and (([)] +0061 2680 0028 0062 0028 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 0063 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0062 0028 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 2680 0028 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 0063 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0062 0028 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 2680 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 2680 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 0062 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 0062 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 0063 005B 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0062 0028 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 0063 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0062 0028 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0062 0028 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 0063 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 2680 0028 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 2680 0028 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 0062 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 0063 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 2680 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 2680 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 0062 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 0062 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 0062 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 2680 0062 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 0063 0029 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 2680 0062 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 0029 0063 005D;1;1;1 1 2 2 2 1 1 2 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 0029 005D 0063;1;1;1 1 2 2 2 1 1 1 2;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 005B 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 2 1 2 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 2 1 1 2;8 7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 0062 005D 0063;1;1;1 1 2 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 0029 0063 005D;1;1;1 1 2 2 2 2 1 2 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 0029 005D 0063;1;1;1 1 2 2 2 2 1 1 2;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 0062 005D 0063;1;1;1 1 2 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 0062 005D 0063;1;1;1 1 2 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0062 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 0029 0063 005D;1;1;1 1 1 2 2 2 1 2 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 0029 005D 0063;1;1;1 1 1 2 2 2 1 1 2;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0029 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 0062 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 0062 005D 0063;1;1;1 1 1 1 2 2 2 2 2;4 5 6 7 8 3 2 1 0 + +# L, ON, L, R and (([)] +0061 2680 0028 0062 05D0 0028 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 05D0 0028 005B 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 05D0 005B 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 05D0 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0029 05D0 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0062 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0062 0028 005B 0029 005D 05D0;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 2680 0028 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 05D0 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 05D0 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 0062 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 05D0 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0062 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 0062 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 2680 0028 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0062 05D0 0028 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 05D0 0028 005B 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 05D0 005B 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 05D0 0029 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0029 05D0 005D;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0062 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0062 0028 005B 0029 005D 05D0;1;1;2 2 2 2 1 1 1 1 1;8 7 6 5 4 0 1 2 3 +0061 0028 2680 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 05D0 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 05D0 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 0062 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 05D0 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0062 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 0062 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 2680 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 05D0 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 05D0 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 0062 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 05D0 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0062 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 0062 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 2680 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 05D0 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0062 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 0062 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 0062 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 0062 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0028 0061 2680 0062 05D0 0028 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 05D0 0028 005B 0029 005D;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 05D0 005B 0029 005D;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 05D0 0029 005D;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 0029 05D0 005D;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0062 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0062 0028 005B 0029 005D 05D0;1;1;1 2 2 2 1 1 1 1 1;8 7 6 5 4 1 2 3 0 +0028 0061 2680 0028 0062 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 05D0 005B 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 05D0 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 0062 005B 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 05D0 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0062 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 0062 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 2680 0028 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 0062 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 05D0 005B 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 05D0 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 0062 005B 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 05D0 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0062 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 0062 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 2680 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 0062 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 05D0 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0062 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 0062 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 0062 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 0062 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 0062 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0028 0061 2680 0062 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 05D0 005B 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 05D0 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 0029 05D0 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 0062 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 0062 005B 0029 005D 05D0;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 2680 005B 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 05D0 0029 005D;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 0029 05D0 005D;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0062 0029 005D 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 2680 005B 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 0062 05D0 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 0062 005D 05D0;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 05D0 0029 005D;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 0029 05D0 005D;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0062 0029 005D 05D0;1;1;1 1 2 2 2 2 1 1 1;8 7 6 2 3 4 5 1 0 +0028 0028 0061 005B 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 0062 05D0 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 0062 005D 05D0;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 0062 05D0 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 0062 005D 05D0;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0062 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 05D0 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 0029 05D0 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0062 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0062 0029 005D 05D0;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 005B 0061 2680 0029 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 0062 05D0 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 0062 005D 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 0062 05D0 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 0062 005D 05D0;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 0062 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 0062 05D0 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 005B 0029 0061 2680 0062 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 0062 005D 05D0;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 + +# L, ON, R, ON and (([)] +0061 2680 0028 05D0 2681 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 2681 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 2681 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 2681 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 05D0 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 05D0 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 2681 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 2681 0028 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 2681 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 2681 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 2681 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 2681 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 05D0 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 05D0 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 2681 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 2681 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 05D0 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 05D0 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 2681 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0029 2681 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0029 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 05D0 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 05D0 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 05D0 2681 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 05D0 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 05D0 005D 2681;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 05D0 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, ON, R, L and (([)] +0061 2680 0028 05D0 0062 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0062 0028 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 05D0 0028 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 05D0 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0062 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0062 0028 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 05D0 0028 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 05D0 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 05D0 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 05D0 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 0029 05D0 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 05D0 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 2680 05D0 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0062 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0062 0028 005B 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 0062 005B 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 05D0 0028 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 0062 005B 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 05D0 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 0029 05D0 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 0062 005B 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 05D0 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 0029 05D0 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 05D0 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 0029 05D0 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 05D0 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 2680 05D0 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 0062 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 05D0 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 05D0 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 0029 05D0 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 05D0 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 2680 05D0 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0062 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0029 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0029 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 05D0 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 0029 05D0 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 05D0 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 2680 05D0 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 05D0 0062 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 05D0 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 05D0 005D 0062;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 2680 05D0 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, ON, R, R and (([)] +0061 2680 0028 05D0 0028 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 2680 0028 05D0 0028 05D1 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 2680 0028 05D0 0028 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 0029 05D1 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 2680 0028 05D0 0028 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 05D0 0028 005B 0029 005D 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 2680 0028 05D0 0028 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0061 2680 0028 0028 05D0 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 05D0 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 2680 0028 0028 005B 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 2680 0028 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 2680 0028 0028 005B 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 2680 05D0 0028 05D1 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 2680 05D0 0028 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0029 05D1 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 2680 05D0 0028 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 05D0 0028 005B 0029 005D 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 2680 05D0 0028 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0061 0028 2680 0028 05D0 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 05D0 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 2680 0028 005B 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 2680 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 2680 0028 005B 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0061 0028 0028 2680 05D0 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 05D0 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 2680 005B 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 2680 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0028 2680 005B 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 2680 05D0 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0028 005B 2680 0029 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0028 005B 0029 2680 05D0 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 2680 05D0 0028 05D1 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 2680 05D0 0028 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0029 05D1 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 0061 2680 05D0 0028 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 05D0 0028 005B 0029 005D 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 0061 2680 05D0 0028 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0061 2680 0028 05D0 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 05D0 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 2680 0028 005B 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 2680 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 2680 0028 005B 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0061 0028 2680 05D0 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 05D0 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 2680 005B 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 2680 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 0028 2680 005B 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 2680 05D0 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 0028 005B 2680 0029 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 0028 005B 0029 2680 05D0 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0061 2680 05D0 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 05D0 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 2680 005B 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 2680 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 0061 2680 005B 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 2680 05D0 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 0061 005B 2680 0029 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 0061 005B 0029 2680 05D0 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 2680 05D0 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 2680 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 0061 2680 0029 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 2680 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 0061 0029 2680 05D0 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 2680 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 0029 0061 2680 05D0 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, ON, ON and (([)] +0061 0028 0062 2680 0028 2681 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 2681 005B 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 2681 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0029 2681 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0029 005D 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 2681 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0029 2681 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0029 005D 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0029 2681 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0029 005D 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 2680 005D 2681;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 2681 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 2680 005D 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0029 2681 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0029 005D 2681;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 2680 005D 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 2680 005D 2681;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0028 0061 0028 0062 2680 005B 2681 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 2681 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 2680 005B 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 0029 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 2680 005B 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 0029 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 0029 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 0029 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 2680 005D 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 0029 2681 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 0029 005D 2681;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 2680 005D 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 2680 005D 2681;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0028 0061 005B 0062 2680 0029 2681 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 0029 2681 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 2680 0029 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 0029 005D 2681;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 2680 005D 2681;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 2680 005D 2681;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 2680 005D 2681;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 2680 005D 2681;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, ON, L and (([)] +0061 0028 0062 2680 0063 0028 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0063 0028 005B 0029 005D;1;1;2 2 2 2 2 1 1 1 1;8 7 6 5 0 1 2 3 4 +0061 0028 0062 2680 0028 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 0063 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 2680 0028 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 0063 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 2680 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 2680 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 2680 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 005D 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 0063 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 2680 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 2680 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 2680 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 005D 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0063 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0029 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0029 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 2680 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0062 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 2680 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 005D 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 2680 0063 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 005B 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 2680 005D 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 005D 2680 0063;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0063 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 0063 005B 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 2680 005B 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 0063 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 2680 005B 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 2680 005B 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 0063 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 2680 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 2680 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 005D 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 0063 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 0029 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 0029 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 2680 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0062 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 2680 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 005D 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 2680 0063 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 005B 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 2680 005D 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 005D 2680 0063;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 005B 0062 2680 0063 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 0063 0029 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 0028 0061 005B 0062 2680 0029 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 0029 0063 005D;1;1;1 1 2 2 2 1 1 2 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 2680 0029 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 0029 005D 0063;1;1;1 1 2 2 2 1 1 1 2;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 2680 0063 005D;1;1;1 1 2 2 2 1 1 2 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 2680 005D 0063;1;1;1 1 2 2 2 1 1 1 2;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 005D 2680 0063;1;1;1 1 2 2 2 1 1 1 2;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 2680 0063 005D;1;1;1 1 2 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 0061 005B 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 2680 005D 0063;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 0061 005B 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 005D 2680 0063;1;1;1 1 2 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 2680 0063 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 2680 0063 005D;1;1;1 1 1 2 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 2680 005D 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 2680 005D 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 005D 2680 0063;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 005D 2680 0063;1;1;1 1 1 2 1 2 2 2 2;5 6 7 8 4 3 2 1 0 + +# L, L, ON, R and (([)] +0061 0028 0062 2680 05D0 0028 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 05D0 0028 005B 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 05D0 005B 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 05D0 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0029 05D0 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 2680 0028 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 2680 0028 005B 0029 005D 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 05D0 005B 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 05D0 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0029 05D0 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 2680 005B 0029 005D 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 05D0 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0029 05D0 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 2680 0029 005D 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 2680 05D0 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 2680 005D 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 005D 2680 05D0;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 2680 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 05D0 005B 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 05D0 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 2680 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 2680 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 05D0 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 2680 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 2680 05D0 005D;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 2680 005D 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 005D 2680 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 2680 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 05D0 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 2680 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 2680 05D0 005D;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 2680 005D 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 005D 2680 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 2680 05D0 005D;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 2680 005D 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 005D 2680 05D0;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0028 0061 0028 0062 2680 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 05D0 005B 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 2680 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 05D0 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 2680 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 2680 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 2680 005B 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 2680 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 05D0 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 2680 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 2680 05D0 005D;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 005B 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 2680 005D 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 005B 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 005D 2680 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 2680 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 05D0 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 2680 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 2680 05D0 005D;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 2680 005D 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 005D 2680 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 2680 05D0 005D;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 2680 005D 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 005D 2680 05D0;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0028 0061 005B 0062 2680 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 05D0 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 2680 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 0029 05D0 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 2680 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 2680 0029 005D 05D0;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 2680 05D0 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 2680 005D 05D0;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 005D 2680 05D0;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 2680 05D0 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 2680 005D 05D0;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 005D 2680 05D0;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 2680 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 2680 05D0 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 2680 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 2680 005D 05D0;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 005D 2680 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 005D 2680 05D0;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, L, ON and (([)] +0061 0028 0062 0028 0063 2680 005B 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 2680 005B 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 005B 2680 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 2680 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 005B 0029 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 0029 2680 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 005B 0029 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 0029 005D 2680;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0063 2680 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 2680 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0063 0029 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 0029 2680 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0063 0029 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 0029 005D 2680;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 0063 2680 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 0063 005D 2680;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0063 2680 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 2680 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0063 0029 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 0029 2680 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0063 0029 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 0029 005D 2680;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 0063 2680 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 0063 005D 2680;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 0063 2680 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 0063 005D 2680;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0028 0061 0028 0062 005B 0063 2680 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 2680 0029 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 0063 0029 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 0029 2680 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0063 0029 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 0029 005D 2680;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 0063 2680 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 0063 005D 2680;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 0063 2680 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 0063 005D 2680;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0028 0061 005B 0062 0029 0063 2680 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 0063 2680 005D;1;1;1 1 2 2 2 1 2 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 0063 005D 2680;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 0063 005D 2680;1;1;1 1 2 2 2 1 2 1 1;8 7 6 5 2 3 4 1 0 + +# L, L, L, L and (([)] +0061 0028 0062 0028 0063 005B 0064 0029 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 0064 0029 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 005B 0029 0064 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 0029 0064 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 0063 005B 0029 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 0029 005D 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 0029 0064 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 0029 0064 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0062 0028 005B 0063 0029 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 0029 005D 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 0063 005D 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 0029 0064 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 0029 0064 005D;1;1;2 2 2 2 2 2 2 2 1;8 0 1 2 3 4 5 6 7 +0061 0028 0028 0062 005B 0063 0029 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 0029 005D 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 0063 005D 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 0063 005D 0064;1;1;2 2 2 2 2 2 2 2 2;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 0029 0064 005D;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 0029 0064 005D;1;1;1 2 2 2 2 2 2 2 1;8 1 2 3 4 5 6 7 0 +0028 0061 0028 0062 005B 0063 0029 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 0029 005D 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 0062 005B 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 0063 005D 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0061 0028 005B 0062 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 0063 005D 0064;1;1;1 2 2 2 2 2 2 2 2;1 2 3 4 5 6 7 8 0 +0028 0028 0061 005B 0062 0029 0063 005D 0064;0;0;0 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 0063 005D 0064;1;1;1 1 2 2 2 1 2 2 2;6 7 8 5 2 3 4 1 0 + +# L, L, L, R and (([)] +0061 0028 0062 0028 0063 05D0 005B 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 05D0 005B 0029 005D;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0063 005B 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 05D0 0029 005D;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 0063 005B 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 0063 005B 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 0063 005B 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0063 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 05D0 0029 005D;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0063 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0063 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0063 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 0063 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0062 0028 005B 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 0063 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0063 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 05D0 0029 005D;1;1;2 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0061 0028 0028 0062 005B 0063 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 0029 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0063 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0063 0029 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 0063 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 0062 005B 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 0063 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 0063 05D0 005D;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0061 0028 0028 005B 0062 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 0063 005D 05D0;1;1;2 2 2 2 2 2 2 1 1;8 7 0 1 2 3 4 5 6 +0028 0061 0028 0062 005B 0063 05D0 0029 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 05D0 0029 005D;1;1;1 2 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0061 0028 0062 005B 0063 0029 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 0029 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0063 0029 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0063 0029 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 0063 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 0062 005B 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 0063 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 0063 05D0 005D;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0061 0028 005B 0062 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 0063 005D 05D0;1;1;1 2 2 2 2 2 2 1 1;8 7 1 2 3 4 5 6 0 +0028 0028 0061 005B 0062 0029 0063 05D0 005D;0;0;0 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 0063 05D0 005D;1;1;1 1 2 2 2 1 2 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 0063 005D 05D0;0;0;0 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 0063 005D 05D0;1;1;1 1 2 2 2 1 2 1 1;8 7 6 5 2 3 4 1 0 + +# L, L, R, ON and (([)] +0061 0028 0062 05D0 2680 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 2680 0028 005B 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 2680 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 2680 005B 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 2680 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 2680 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 0029 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 0029 2680 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 0029 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 0029 005D 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 2680 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 2680 005B 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 2680 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 2680 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0029 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 0029 2680 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0029 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 0029 005D 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 2680 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 2680 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0029 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 0029 2680 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0029 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 0029 005D 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 05D0 2680 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 05D0 005D 2680;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 2680 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 2680 005B 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 2680 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 2680 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 0029 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 0029 2680 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 0029 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 0029 005D 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 2680 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 2680 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0029 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 0029 2680 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0029 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 0029 005D 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 0029 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 05D0 2680 005D;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 005B 0029 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 05D0 005D 2680;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 05D0 2680 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 2680 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 0029 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 0029 2680 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 0029 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 0029 005D 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 0029 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 05D0 2680 005D;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 0029 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 05D0 005D 2680;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 05D0 2680 005D;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 05D0 005D 2680;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0028 0061 0028 0062 05D0 2680 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 2680 005B 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 2680 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 2680 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 0029 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 0029 2680 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 0029 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 0029 005D 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 2680 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 2680 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0029 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 0029 2680 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0029 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 0029 005D 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 0029 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 05D0 2680 005D;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 005B 0029 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 05D0 005D 2680;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 05D0 2680 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 2680 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 0029 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 0029 2680 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 0029 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 0029 005D 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 0029 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 05D0 2680 005D;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 0029 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 05D0 005D 2680;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 05D0 2680 005D;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 05D0 005D 2680;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0028 0061 005B 0062 05D0 2680 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 2680 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 05D0 0029 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 0029 2680 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 05D0 0029 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 0029 005D 2680;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 05D0 2680 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 05D0 005D 2680;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 05D0 2680 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 0062 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 05D0 005D 2680;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 05D0 2680 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 05D0 2680 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 05D0 005D 2680;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 05D0 005D 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, L, R, L and (([)] +0061 0028 0062 05D0 0063 0028 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0063 0028 005B 0029 005D;1;1;2 2 2 1 2 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 0063 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 0063 005B 0029 005D;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 0063 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 0063 0029 005D;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 0029 0063 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 0029 0063 005D;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 0029 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 05D0 0028 005B 0029 005D 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 0063 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 0063 005B 0029 005D;1;1;2 2 2 1 1 2 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0063 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 0063 0029 005D;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0029 0063 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 0029 0063 005D;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0029 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 0029 005D 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0063 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 0063 0029 005D;1;1;2 2 2 1 1 1 2 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0029 0063 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 0029 0063 005D;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0029 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 0029 005D 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 05D0 0063 005D;1;1;2 2 2 1 1 1 1 2 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 0029 05D0 005D 0063;1;1;2 2 2 1 1 1 1 1 2;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 0063 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 0063 005B 0029 005D;1;1;2 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 0063 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 0063 0029 005D;1;1;2 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 0029 0063 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 0029 0063 005D;1;1;2 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 0029 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 0029 005D 0063;1;1;2 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0063 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 0063 0029 005D;1;1;2 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0029 0063 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 0029 0063 005D;1;1;2 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0029 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 0029 005D 0063;1;1;2 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 0029 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 05D0 0063 005D;1;1;2 2 2 2 2 2 1 2 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 0062 005B 0029 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 0029 05D0 005D 0063;1;1;2 2 2 2 2 2 1 1 2;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 05D0 0063 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 0063 0029 005D;1;1;2 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 0029 0063 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 0029 0063 005D;1;1;2 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 0029 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 0029 005D 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 0029 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 05D0 0063 005D;1;1;2 2 2 2 2 2 1 2 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 0029 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 0029 05D0 005D 0063;1;1;2 2 2 2 2 2 1 1 2;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 05D0 0063 005D;1;1;2 2 2 2 2 2 1 2 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 0062 05D0 005D 0063;1;1;2 2 2 2 2 2 1 1 2;8 7 6 0 1 2 3 4 5 +0028 0061 0028 0062 05D0 0063 005B 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 0063 005B 0029 005D;1;1;1 2 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 0063 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 0063 0029 005D;1;1;1 2 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 0029 0063 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 0029 0063 005D;1;1;1 2 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 0029 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 0029 005D 0063;1;1;1 2 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0063 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 0063 0029 005D;1;1;1 2 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0029 0063 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 0029 0063 005D;1;1;1 2 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0029 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 0029 005D 0063;1;1;1 2 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 0029 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 05D0 0063 005D;1;1;1 2 2 2 2 2 1 2 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 0062 005B 0029 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 0029 05D0 005D 0063;1;1;1 2 2 2 2 2 1 1 2;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 05D0 0063 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 0063 0029 005D;1;1;1 2 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 0029 0063 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 0029 0063 005D;1;1;1 2 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 0029 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 0029 005D 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 0029 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 05D0 0063 005D;1;1;1 2 2 2 2 2 1 2 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 0029 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 0029 05D0 005D 0063;1;1;1 2 2 2 2 2 1 1 2;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 05D0 0063 005D;1;1;1 2 2 2 2 2 1 2 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 0062 05D0 005D 0063;1;1;1 2 2 2 2 2 1 1 2;8 7 6 1 2 3 4 5 0 +0028 0028 0061 005B 0062 05D0 0063 0029 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 0063 0029 005D;1;1;1 1 2 2 2 1 2 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 05D0 0029 0063 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 0029 0063 005D;1;1;1 1 2 2 2 1 1 2 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 05D0 0029 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 0029 005D 0063;1;1;1 1 2 2 2 1 1 1 2;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 05D0 0063 005D;1;1;1 1 2 2 2 1 1 2 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 0029 05D0 005D 0063;1;1;1 1 2 2 2 1 1 1 2;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 05D0 0063 005D;1;1;1 1 2 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 0062 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 0062 05D0 005D 0063;1;1;1 1 2 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 05D0 0063 005D;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 05D0 0063 005D;1;1;1 1 1 2 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 05D0 005D 0063;0;0;0 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 0062 05D0 005D 0063;1;1;1 1 1 2 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, L, R, R and (([)] +0061 0028 0062 05D0 0028 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0062 05D0 0028 05D1 005B 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0062 05D0 0028 005B 05D1 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 0029 05D1 005D;0;0;0 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0061 0028 0062 05D0 0028 005B 0029 05D1 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 05D0 0028 005B 0029 005D 05D1;0;0;0 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0061 0028 0062 05D0 0028 005B 0029 005D 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0061 0028 0062 0028 05D0 005B 05D1 0029 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 0029 05D1 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 05D0 005B 0029 005D 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 0029 05D1 005D;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0062 0028 005B 05D0 0029 005D 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0062 0028 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0062 0028 005B 0029 05D0 005D 05D1;1;1;2 2 2 1 1 1 1 1 1;8 7 6 5 4 3 0 1 2 +0061 0028 0028 0062 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0061 0028 0028 0062 05D0 005B 05D1 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 0029 05D1 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 05D0 005B 0029 005D 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 0029 05D1 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 0062 005B 05D0 0029 005D 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 0062 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0028 0062 005B 0029 05D0 005D 05D1;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0062 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 0029 05D1 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0062 05D0 0029 005D 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0062 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0028 005B 0062 0029 05D0 005D 05D1;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0061 0028 0028 005B 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0028 005B 0029 0062 05D0 005D 05D1;1;1;2 2 2 2 2 2 1 1 1;8 7 6 0 1 2 3 4 5 +0028 0061 0028 0062 05D0 005B 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0061 0028 0062 05D0 005B 05D1 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 0029 05D1 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 05D0 005B 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 05D0 005B 0029 005D 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 0029 05D1 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 0062 005B 05D0 0029 005D 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 0062 005B 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 0028 0062 005B 0029 05D0 005D 05D1;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0062 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 0029 05D1 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0062 05D0 0029 005D 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0062 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 0028 005B 0062 0029 05D0 005D 05D1;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0061 0028 005B 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 0028 005B 0029 0062 05D0 005D 05D1;1;1;1 2 2 2 2 2 1 1 1;8 7 6 1 2 3 4 5 0 +0028 0028 0061 005B 0062 05D0 0029 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 0029 05D1 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 05D0 0029 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0062 05D0 0029 005D 05D1;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0062 0029 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 0061 005B 0062 0029 05D0 005D 05D1;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 0028 0061 005B 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 0061 005B 0029 0062 05D0 005D 05D1;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 0062 05D0 005D 05D1;0;0;0 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 0061 0029 0062 05D0 005D 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, ON, ON and (([)] +0061 0028 05D0 2680 0028 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 2681 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 2680 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 2681 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 2680 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 2680 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 0029 2681 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 0029 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 2680 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 2680 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 2680 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 2680 005D 2681;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 2681 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 2680 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 2681 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 2680 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 2680 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 0029 2681 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 0029 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 2680 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 2680 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 2680 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 2680 005D 2681;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 2680 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 2680 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 2680 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 2680 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0029 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0029 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 2680 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 2680 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 2680 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 2680 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 2680 005D 2681;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 2680 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, ON, L and (([)] +0061 0028 05D0 2680 0062 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0062 0028 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 2680 0028 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 2680 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 2680 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 2680 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 2680 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 005D 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 2680 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 2680 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 2680 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 2680 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 005D 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 005D 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 2680 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 2680 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 2680 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 2680 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 005D 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 005D 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 2680 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 2680 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 2680 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 2680 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 005D 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 005D 2680 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0062 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0062 0028 005B 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 0062 005B 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 2680 0028 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 0062 005B 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 2680 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 2680 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 2680 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 2680 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 005D 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 0062 005B 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 2680 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 2680 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 2680 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 2680 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 005D 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 005D 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 2680 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 2680 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 2680 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 2680 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 005D 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 005D 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 2680 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 2680 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 2680 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 2680 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 005D 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 005D 2680 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 0062 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 2680 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 2680 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 2680 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 2680 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 005D 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 005D 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 2680 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 2680 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 2680 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 2680 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 005D 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 005D 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 2680 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 2680 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 2680 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 2680 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 005D 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 005D 2680 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0062 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0029 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0029 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 2680 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 2680 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 2680 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 2680 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 005D 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 005D 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 2680 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 2680 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 2680 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 2680 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 005D 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 005D 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 2680 0062 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 2680 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 2680 005D 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 2680 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 005D 2680 0062;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 005D 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, R, ON, R and (([)] +0061 0028 05D0 2680 05D1 0028 005B 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0061 0028 05D0 2680 05D1 0028 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 2680 0028 05D1 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 2680 0028 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 2680 0028 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 2680 0028 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 2680 0028 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 2680 05D1 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 2680 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 2680 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 2680 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 2680 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 2680 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 2680 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 2680 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 2680 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 2680 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 0029 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 2680 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 0029 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 005D 2680 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 0029 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 2680 05D1 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 2680 005B 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 2680 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 2680 005B 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0061 0028 0028 05D0 005B 2680 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 2680 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 2680 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 2680 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 2680 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 005D 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0061 0028 0028 005B 05D0 2680 05D1 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 0029 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 2680 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 2680 0029 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 2680 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 2680 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 005D 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 2680 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0061 0028 0028 005B 0029 05D0 2680 05D1 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 2680 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 005B 0029 05D0 2680 005D 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 005D 2680 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0061 0028 0028 005B 0029 05D0 005D 2680 05D1;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 05D1 0028 005B 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0061 05D0 2680 05D1 0028 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 2680 0028 05D1 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 2680 0028 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 2680 0028 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 2680 0028 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 2680 0028 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 05D1 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 2680 05D1 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 2680 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 2680 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 2680 005B 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 2680 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 05D1 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 2680 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0029 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 2680 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 2680 0029 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 2680 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 2680 05D1 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 0029 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 2680 005D 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 0029 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 005D 2680 05D1;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 0029 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 2680 05D1 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 2680 005B 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 2680 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 2680 005B 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0061 0028 05D0 005B 2680 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 2680 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 2680 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 2680 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 2680 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 005D 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0061 0028 005B 05D0 2680 05D1 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 0029 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 2680 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 2680 0029 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 2680 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 2680 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 005D 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 2680 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0061 0028 005B 0029 05D0 2680 05D1 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 2680 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 005B 0029 05D0 2680 005D 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 005D 2680 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0061 0028 005B 0029 05D0 005D 2680 05D1;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 05D1 005B 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 2680 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 2680 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 2680 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 2680 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 05D1 0029 005D;0;0;0 0 0 1 1 1 1 0 0;0 1 2 6 5 4 3 7 8 +0028 0028 0061 05D0 005B 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 2680 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 2680 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 2680 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 005D 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 0061 005B 05D0 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 2680 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 2680 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 2680 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 005D 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 2680 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 0061 005B 0029 05D0 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 2680 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 005B 0029 05D0 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 005D 2680 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 0061 005B 0029 05D0 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 05D1 0029 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 0061 05D0 2680 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 2680 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 2680 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 2680 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 2680 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 005D 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 2680 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 0061 0029 05D0 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 2680 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 0061 0029 05D0 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 005D 2680 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 0061 0029 05D0 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 2680 05D1 005D;0;0;0 0 0 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 0029 0061 05D0 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 2680 005D 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 0029 0061 05D0 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 005D 2680 05D1;0;0;0 0 0 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 0029 0061 05D0 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, L, ON and (([)] +0061 0028 05D0 0062 2680 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 2680 0028 005B 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 2680 005B 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 2680 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 0029 2680 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 0029 005D 2680;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 2680 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 2680 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 0029 2680 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 0029 005D 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 2680 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 2680 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 0029 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 0029 2680 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 0029 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 0029 005D 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 0062 2680 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 0062 005D 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 2680 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 2680 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 2680 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 2680 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0029 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 0029 2680 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0029 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 0029 005D 2680;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 2680 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 2680 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 0029 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 0029 2680 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 0029 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 0029 005D 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 0062 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 0062 2680 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 0062 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 0062 005D 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 2680 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 2680 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 0029 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 0029 2680 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 0029 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 0029 005D 2680;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 0062 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 0062 2680 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 0062 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 0062 005D 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 0062 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 0062 2680 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 0062 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 0062 005D 2680;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 2680 0028 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 2680 0028 005B 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 2680 005B 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 2680 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 0029 2680 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 0029 005D 2680;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 2680 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 2680 005B 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 2680 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 2680 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 0029 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 0029 2680 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 0029 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 0029 005D 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 2680 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 2680 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 0029 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 0029 2680 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 0029 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 0029 005D 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 0062 2680 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 0062 005D 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 2680 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 2680 005B 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 2680 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 2680 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0029 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 0029 2680 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0029 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 0029 005D 2680;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 2680 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 2680 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 0029 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 0029 2680 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 0029 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 0029 005D 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 0062 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 0062 2680 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 0062 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 0062 005D 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 2680 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 2680 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 0029 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 0029 2680 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 0029 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 0029 005D 2680;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 0062 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 0062 2680 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 0062 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 0062 005D 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 0062 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 0062 2680 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 0062 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 0062 005D 2680;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 2680 005B 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 2680 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 2680 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 2680 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0029 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 0029 2680 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0029 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 0029 005D 2680;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 2680 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 2680 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 0029 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 0029 2680 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 0029 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 0029 005D 2680;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 0062 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 0062 2680 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 0062 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 0062 005D 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 2680 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 2680 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 0029 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 0029 2680 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 0029 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 0029 005D 2680;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 0062 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 0062 2680 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 0062 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 0062 005D 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 0062 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 0062 2680 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 0062 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 0062 005D 2680;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 2680 0029 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 2680 0029 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 0029 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 0029 2680 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 0029 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 0029 005D 2680;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 0062 2680 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 0062 2680 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 0062 005D 2680;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 0062 005D 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 0062 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 0062 2680 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 0062 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 0062 005D 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 0062 2680 005D;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 0062 2680 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 0062 005D 2680;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 0062 005D 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, L, L and (([)] +0061 0028 05D0 0062 0028 0063 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 0063 005B 0029 005D;1;1;2 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0061 0028 05D0 0062 0028 005B 0063 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 0063 0029 005D;1;1;2 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0061 0028 05D0 0062 0028 005B 0029 0063 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 0029 0063 005D;1;1;2 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0061 0028 05D0 0062 0028 005B 0029 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 0029 005D 0063;1;1;2 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0061 0028 05D0 0028 0062 005B 0063 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 0063 0029 005D;1;1;2 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0061 0028 05D0 0028 0062 005B 0029 0063 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 0029 0063 005D;1;1;2 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 0029 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 0029 005D 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 0029 0063 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 0029 0063 005D;1;1;2 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 0029 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 0029 005D 0063;1;1;2 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 0062 005D 0063;1;1;2 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0063 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 0063 0029 005D;1;1;2 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0029 0063 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 0029 0063 005D;1;1;2 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0029 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 0029 005D 0063;1;1;2 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 0029 0063 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 0029 0063 005D;1;1;2 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 0029 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 0029 005D 0063;1;1;2 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 0062 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 0062 005D 0063;1;1;2 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 0029 0063 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 0029 0063 005D;1;1;2 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 0029 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 0029 005D 0063;1;1;2 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 0062 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 0062 005D 0063;1;1;2 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 0062 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 0062 005D 0063;1;1;2 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 0063 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 0063 005B 0029 005D;1;1;1 2 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0061 05D0 0062 0028 005B 0063 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 0063 0029 005D;1;1;1 2 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0061 05D0 0062 0028 005B 0029 0063 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 0029 0063 005D;1;1;1 2 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 0061 05D0 0062 0028 005B 0029 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 0029 005D 0063;1;1;1 2 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 0061 05D0 0028 0062 005B 0063 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 0063 0029 005D;1;1;1 2 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0061 05D0 0028 0062 005B 0029 0063 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 0029 0063 005D;1;1;1 2 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 0029 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 0029 005D 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 0029 0063 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 0029 0063 005D;1;1;1 2 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 0029 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 0029 005D 0063;1;1;1 2 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 0062 005D 0063;1;1;1 2 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0063 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 0063 0029 005D;1;1;1 2 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0029 0063 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 0029 0063 005D;1;1;1 2 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0029 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 0029 005D 0063;1;1;1 2 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 0029 0063 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 0029 0063 005D;1;1;1 2 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 0029 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 0029 005D 0063;1;1;1 2 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 0062 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 0062 005D 0063;1;1;1 2 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 0029 0063 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 0029 0063 005D;1;1;1 2 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 0029 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 0029 005D 0063;1;1;1 2 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 0062 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 0062 005D 0063;1;1;1 2 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 0062 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 0062 005D 0063;1;1;1 2 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0063 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 0063 0029 005D;1;1;1 1 2 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0029 0063 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 0029 0063 005D;1;1;1 1 2 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0029 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 0029 005D 0063;1;1;1 1 2 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 0029 0063 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 0029 0063 005D;1;1;1 1 2 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 0029 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 0029 005D 0063;1;1;1 1 2 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 0062 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 0062 005D 0063;1;1;1 1 2 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 0029 0063 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 0029 0063 005D;1;1;1 1 2 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 0029 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 0029 005D 0063;1;1;1 1 2 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 0062 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 0062 005D 0063;1;1;1 1 2 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 0062 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 0062 005D 0063;1;1;1 1 2 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 0029 0063 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 0029 0063 005D;1;1;1 1 1 2 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 0029 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 0029 005D 0063;1;1;1 1 1 2 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 0062 005D 0063;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 0062 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 0062 005D 0063;0;0;0 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 + +# L, R, L, R and (([)] +0061 0028 05D0 0062 05D1 0028 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 05D1 0028 005B 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 05D1 005B 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 05D1 0029 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 0029 05D1 005D;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0062 0028 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0062 0028 005B 0029 005D 05D1;1;1;2 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 05D1 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 05D1 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 0029 05D1 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 0062 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 0062 005B 0029 005D 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 05D1 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 0029 05D1 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0062 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0062 0029 005D 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 0062 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 0062 05D1 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 0029 0062 005D 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 05D1 005B 0029 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 05D1 005B 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 05D1 0029 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 0029 05D1 005D;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 0062 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 0062 005B 0029 005D 05D1;1;1;2 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 05D1 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 0029 05D1 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0062 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0062 0029 005D 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 0062 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 0062 05D1 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 0062 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 0062 005D 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 05D1 0029 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 05D1 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 0029 05D1 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0062 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0062 0029 005D 05D1;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 0062 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 0062 05D1 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 0062 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 0062 005D 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 0062 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 0062 05D1 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 0029 05D0 0062 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 0029 05D0 0062 005D 05D1;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 05D1 0028 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 05D1 0028 005B 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 05D1 005B 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 05D1 0029 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 0029 05D1 005D;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0062 0028 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0062 0028 005B 0029 005D 05D1;1;1;1 2 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 05D1 005B 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 05D1 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 0029 05D1 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 0062 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 0062 005B 0029 005D 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 05D1 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 0029 05D1 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0062 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0062 0029 005D 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 0062 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 0062 05D1 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 0029 0062 005D 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 05D1 005B 0029 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 05D1 005B 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 05D1 0029 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 0029 05D1 005D;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 0062 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 0062 005B 0029 005D 05D1;1;1;1 2 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 05D1 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 0029 05D1 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0062 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0062 0029 005D 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 0062 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 0062 05D1 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 0062 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 0062 005D 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 05D1 0029 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 05D1 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 0029 05D1 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0062 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0062 0029 005D 05D1;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 0062 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 0062 05D1 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 0062 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 0062 005D 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 0062 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 0062 05D1 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 0029 05D0 0062 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 0029 05D0 0062 005D 05D1;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 05D1 005B 0029 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 05D1 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 05D1 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 0029 05D1 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 0062 005B 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 0062 005B 0029 005D 05D1;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 05D1 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 0029 05D1 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0062 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0062 0029 005D 05D1;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 0062 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 0062 05D1 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 0062 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 0062 005D 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 05D1 0029 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 05D1 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 0029 05D1 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0062 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0062 0029 005D 05D1;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 0062 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 0062 05D1 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 0062 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 0062 005D 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 0062 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 0062 05D1 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 0029 05D0 0062 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 0029 05D0 0062 005D 05D1;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 05D1 0029 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 05D1 0029 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 0029 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 0029 05D1 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0062 0029 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0062 0029 005D 05D1;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 0062 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 0062 05D1 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 0062 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 0062 005D 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 0062 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 0062 05D1 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 0029 05D0 0062 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 0029 05D0 0062 005D 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 0062 05D1 005D;0;0;0 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 0062 05D1 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 0061 05D0 0062 005D 05D1;0;0;0 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 0061 05D0 0062 005D 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, R, ON and (([)] +0061 0028 05D0 0028 05D1 2680 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 05D1 2680 005B 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 2680 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 05D1 005B 2680 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 0029 2680 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 05D1 005B 0029 2680 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 0029 005D 2680;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 05D1 005B 0029 005D 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 2680 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 05D1 2680 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0029 2680 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 005B 05D1 0029 2680 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0029 005D 2680;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 005B 05D1 0029 005D 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 05D1 2680 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 005B 0029 05D1 2680 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 05D1 005D 2680;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 005B 0029 05D1 005D 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 2680 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 005B 05D1 2680 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0029 2680 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 005B 05D1 0029 2680 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0029 005D 2680;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 005B 05D1 0029 005D 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 05D1 2680 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 05D1 2680 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 05D1 005D 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 05D1 005D 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 05D1 2680 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 05D1 2680 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 05D1 005D 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 05D1 005D 2680;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 2680 005B 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 05D1 2680 005B 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 2680 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 05D1 005B 2680 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0029 2680 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 05D1 005B 0029 2680 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0029 005D 2680;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 05D1 005B 0029 005D 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 2680 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 05D1 2680 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0029 2680 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 005B 05D1 0029 2680 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0029 005D 2680;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 005B 05D1 0029 005D 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 05D1 2680 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 005B 0029 05D1 2680 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 05D1 005D 2680;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 005B 0029 05D1 005D 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 2680 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 005B 05D1 2680 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0029 2680 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 005B 05D1 0029 2680 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0029 005D 2680;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 005B 05D1 0029 005D 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 05D1 2680 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 05D1 2680 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 05D1 005D 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 05D1 005D 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 05D1 2680 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 05D1 2680 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 05D1 005D 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 05D1 005D 2680;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 2680 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 005B 05D1 2680 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0029 2680 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 005B 05D1 0029 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0029 005D 2680;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 005B 05D1 0029 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 05D1 2680 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 05D1 005D 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 05D1 2680 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 05D1 005D 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 05D1 2680 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 05D1 005D 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# L, R, R, L and (([)] +0061 0028 05D0 0028 05D1 0062 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 05D1 0062 005B 0029 005D;1;1;2 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 0062 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 05D1 005B 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 0029 0062 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 05D1 005B 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 0029 005D 0062;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 05D1 005B 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0062 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 05D0 0028 005B 05D1 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0029 0062 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 005B 05D1 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0029 005D 0062;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 005B 05D1 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 05D1 0062 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 005B 0029 05D1 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 05D1 005D 0062;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0061 0028 05D0 0028 005B 0029 05D1 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0062 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 005B 05D1 0062 0029 005D;1;1;2 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0029 0062 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 005B 05D1 0029 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0029 005D 0062;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 005B 05D1 0029 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 05D1 0062 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 05D1 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 05D1 005D 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 05D0 005B 0029 05D1 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 05D1 0062 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 05D1 0062 005D;1;1;2 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 05D1 005D 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0061 0028 0028 005B 05D0 0029 05D1 005D 0062;1;1;2 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 0062 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 05D1 0062 005B 0029 005D;1;1;1 2 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0062 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 05D1 005B 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0029 0062 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 05D1 005B 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0029 005D 0062;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 05D1 005B 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0062 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 05D0 0028 005B 05D1 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0029 0062 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 005B 05D1 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0029 005D 0062;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 005B 05D1 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 05D1 0062 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 005B 0029 05D1 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 05D1 005D 0062;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0061 05D0 0028 005B 0029 05D1 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0062 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 005B 05D1 0062 0029 005D;1;1;1 2 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0029 0062 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 005B 05D1 0029 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0029 005D 0062;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 005B 05D1 0029 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 05D1 0062 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 05D1 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 05D1 005D 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 05D0 005B 0029 05D1 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 05D1 0062 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 05D1 0062 005D;1;1;1 2 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 05D1 005D 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0061 0028 005B 05D0 0029 05D1 005D 0062;1;1;1 2 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0062 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 005B 05D1 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0029 0062 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 005B 05D1 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0029 005D 0062;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 005B 05D1 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 05D1 0062 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 05D1 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 05D1 005D 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 05D0 005B 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 05D1 0062 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 05D1 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 05D1 005D 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 0061 005B 05D0 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 05D1 0062 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 05D1 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 05D1 005D 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0061 05D0 0029 05D1 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# L, R, R, R and (([)] +0061 0028 05D0 0028 05D1 005B 05D2 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 05D1 005B 05D2 0029 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 0029 05D2 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 05D1 005B 0029 05D2 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 05D1 005B 0029 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 05D1 005B 0029 005D 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0061 0028 05D0 0028 005B 05D1 0029 05D2 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 05D1 0029 005D 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 05D0 0028 005B 0029 05D1 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0061 0028 05D0 0028 005B 0029 05D1 005D 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 0 1 1 1 0 1 0;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 005B 05D1 0029 05D2 005D;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 0 1 1 1 0 0 1;0 1 2 5 4 3 6 7 8 +0061 0028 0028 05D0 005B 05D1 0029 005D 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0028 05D0 005B 0029 05D1 005D 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0061 0028 0028 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +0061 0028 0028 005B 05D0 0029 05D1 005D 05D2;1;1;2 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 05D2 0029 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 05D1 005B 05D2 0029 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0029 05D2 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 05D1 005B 0029 05D2 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 05D1 005B 0029 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 05D1 005B 0029 005D 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 1 1 1 0;0 1 7 6 5 4 3 2 8 +0028 0061 05D0 0028 005B 05D1 0029 05D2 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 05D1 0029 005D 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 05D0 0028 005B 0029 05D1 005D 05D2;0;0;0 0 1 1 1 1 1 1 1;0 1 8 7 6 5 4 3 2 +0028 0061 05D0 0028 005B 0029 05D1 005D 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 0 1 1 1 0 1 0;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 005B 05D1 0029 05D2 005D;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 0 1 1 1 0 0 1;0 1 2 5 4 3 6 7 8 +0028 0061 0028 05D0 005B 05D1 0029 005D 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 0028 05D0 005B 0029 05D1 005D 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0061 0028 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0061 0028 005B 05D0 0029 05D1 005D 05D2;1;1;1 2 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0029 05D2 005D;0;0;0 0 0 1 1 1 0 1 0;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 005B 05D1 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 05D1 0029 005D 05D2;0;0;0 0 0 1 1 1 0 0 1;0 1 2 5 4 3 6 7 8 +0028 0028 0061 05D0 005B 05D1 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 05D0 005B 0029 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 0061 05D0 005B 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 0061 005B 05D0 0029 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 0061 005B 05D0 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0061 05D0 0029 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 0061 05D0 0029 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, ON and (([)] +05D0 2680 0028 2681 0028 2682 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 2682 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 2682 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0029 2682 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0029 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 2682 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0029 2682 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0029 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0029 2682 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0029 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 2682 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0029 2682 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0029 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0029 2682 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0029 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0029 2682 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0029 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 2681 005D 2682;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 2682 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 2682 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0029 2682 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0029 005D 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0029 2682 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0029 005D 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 2681 005D 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0029 2682 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0029 005D 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 2681 005D 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 2681 005D 2682;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0029 2682 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 0029 2682 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0029 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 0029 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 2681 005D 2682;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 2681 005D 2682;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 2681 005D 2682;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, L and (([)] +05D0 2680 0028 2681 0061 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0061 0028 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 2681 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0061 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0029 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0029 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 0061 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0061 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0029 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0029 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0061 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0029 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0029 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0061 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0029 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0029 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 2681 0061 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 2681 005D 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 005D 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 005D 2681 0061;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 0061 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0061 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0029 0061 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0029 005D 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 2681 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0061 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0029 0061 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0029 005D 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 2681 0061 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 2681 005D 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 005D 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0061 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0029 0061 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0029 005D 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 2681 0061 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 2681 005D 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 005D 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 2681 0061 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 2681 005D 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 005D 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 005D 2681 0061;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0061 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0029 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0029 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 2681 0061 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 2681 005D 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 005D 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 005D 2681 0061;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 2681 0061 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 2681 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 2681 005D 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 2681 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 005D 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 005D 2681 0061;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 005D 2681 0061;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 2680 005D 2681 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, ON, ON, R and (([)] +05D0 2680 0028 2681 05D1 0028 005B 0029 005D;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 2680 0028 2681 05D1 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 2681 0028 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 2681 0028 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 2681 0028 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 2681 0028 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 05D1 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0029 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 05D1 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 05D1 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0029 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 05D1 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0029 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 05D1 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0029 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0029 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 2681 05D1 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 2681 005D 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 005D 2681 05D1;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 05D1 005B 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 2681 05D1 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 05D1 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 2681 005B 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0029 05D1 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 2681 005B 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 2681 005B 0029 005D 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 2681 005B 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 05D1 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0029 05D1 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 2681 0029 005D 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 2681 05D1 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 2681 005D 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 005D 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 05D1 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0029 05D1 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 2681 0029 005D 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 2681 05D1 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 2681 005D 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 005D 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 2681 05D1 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 2681 005D 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 005D 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 005D 2681 05D1;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 05D1 0029 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 005B 2681 05D1 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 0029 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 2681 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 2681 0029 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 2681 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 2681 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 005D 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 2681 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 2681 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 005D 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 005D 2681 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 2681 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 2681 05D1 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 2681 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 2681 005D 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 005D 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 005D 2681 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 005D 2681 05D1;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 005B 0029 05D0 2680 005D 2681 05D1;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, L, ON and (([)] +05D0 2680 0028 0061 2681 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 2681 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 2681 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 2681 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 0061 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 0061 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 0061 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 2680 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 0061 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 2680 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 2681 0028 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 2681 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 2681 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 2681 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 2681 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 0061 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 0061 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 2681 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 0061 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 0061 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 0061 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 0061 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 0061 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 2680 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 0061 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 2680 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 2681 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 2681 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 2681 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 0061 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 0061 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 0061 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 0061 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 2681 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 2681 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 0029 2681 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 0029 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 0061 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 0061 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 0061 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 0061 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 0061 2681 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 2680 0061 2681 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 0061 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 2680 0061 005D 2681;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, L, L and (([)] +05D0 2680 0028 0061 0028 0062 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 0062 005B 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 2680 0028 0061 0028 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 2680 0028 0061 0028 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 0029 0062 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 2680 0028 0061 0028 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 0029 005D 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 2680 0028 0028 0061 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +05D0 2680 0028 0028 0061 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 0062 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 0062 005B 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 2680 0061 0028 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 2680 0061 0028 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 0029 0062 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 2680 0061 0028 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 0029 005D 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 2680 0028 0061 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +05D0 0028 2680 0028 0061 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 0061 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 0061 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 2680 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 0062 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 0062 005B 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 2680 0061 0028 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 2680 0061 0028 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 0029 0062 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +0028 05D0 2680 0061 0028 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 0029 005D 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +0028 05D0 2680 0028 0061 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 05D0 2680 0028 0061 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 0061 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 0061 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 0061 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 0061 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 2680 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 0061 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 0061 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 0061 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 0061 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 0061 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 2680 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 + +# R, ON, L, R and (([)] +05D0 2680 0028 0061 05D1 0028 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 05D1 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0061 0028 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0061 0028 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 0061 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 0061 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 05D1 0028 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 05D1 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0061 0028 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0061 0028 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 0061 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 0061 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 0061 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 0061 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0061 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 0061 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 0061 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 0061 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 2680 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 0061 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 2680 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 05D1 0028 005B 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 05D1 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 05D1 005B 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0061 0028 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0061 0028 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 05D1 005B 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 0061 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0061 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 0061 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 0061 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 05D1 005B 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 0061 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0061 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 0061 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 0061 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0061 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 0061 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 0061 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 0061 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 2680 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 0061 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 2680 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 05D1 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 0061 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 0061 005B 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 0061 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0061 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 0061 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 0061 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 0061 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 0061 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 05D1 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 0029 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0061 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0061 0029 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 0061 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 0061 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 0061 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 0061 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 0061 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 2680 0061 05D1 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 0061 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 2680 0061 005D 05D1;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, R, ON and (([)] +05D0 2680 0028 05D1 2681 0028 005B 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 2681 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 2681 005B 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 2681 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0029 2681 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0029 005D 2681;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 2681 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 2681 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 05D1 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 2681 0028 005B 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 2681 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 2681 005B 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 2681 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0029 2681 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0029 005D 2681;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 2681 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 2681 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 05D1 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 2681 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 2681 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 05D1 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 2681 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 05D1 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 05D1 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 05D1 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 2681 0028 005B 0029 005D;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 2681 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 2681 005B 0029 005D;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 2681 0029 005D;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0029 2681 005D;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0029 005D 2681;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 2681 005B 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 2681 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0029 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0029 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 2681 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0029 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0029 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 05D1 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 05D1 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 2681 005B 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 2681 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0029 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0029 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 2681 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0029 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0029 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 05D1 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 05D1 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 2681 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0029 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0029 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 05D1 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 05D1 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 05D1 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 05D1 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 2681 005B 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 2681 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0029 2681 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0029 005D 2681;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 2681 0029 005D;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 2680 005B 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0029 2681 005D;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 2680 005B 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0029 005D 2681;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 2680 005B 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 05D1 2681 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 05D1 005D 2681;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 2681 0029 005D;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0029 2681 005D;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0029 005D 2681;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 05D1 2681 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 05D1 005D 2681;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 05D1 2681 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 05D1 005D 2681;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 2681 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0029 2681 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0029 005D 2681;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 05D1 2681 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 05D1 005D 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 05D1 2681 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 05D1 005D 2681;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 05D1 2681 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 0029 05D0 2680 05D1 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 05D1 005D 2681;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 0029 05D0 2680 05D1 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, ON, R, L and (([)] +05D0 2680 0028 05D1 0061 0028 005B 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0061 0028 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 0061 005B 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0061 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0029 0061 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0029 005D 0061;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 2680 0028 05D1 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 0061 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0061 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0061 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 2680 0028 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 05D1 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 2680 0028 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0061 0028 005B 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0061 0028 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 0061 005B 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0061 0029 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0029 0061 005D;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0029 005D 0061;0;0;1 1 1 1 0 0 0 0 0;3 2 1 0 4 5 6 7 8 +05D0 0028 2680 05D1 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 0061 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0061 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0061 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 2680 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 05D1 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 2680 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 0061 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 05D1 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0061 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0061 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 2680 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 05D1 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 2680 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0061 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 2680 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 05D1 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 05D1 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 05D1 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0061 0028 005B 0029 005D;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0061 0028 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 0061 005B 0029 005D;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0061 0029 005D;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0029 0061 005D;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0029 005D 0061;0;0;0 1 1 1 0 0 0 0 0;0 3 2 1 4 5 6 7 8 +0028 05D0 2680 05D1 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 0061 005B 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 05D1 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0061 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0061 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 2680 0028 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 05D1 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 05D1 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 2680 0028 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 0061 005B 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 05D1 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0061 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0061 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 2680 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 05D1 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 05D1 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 2680 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0061 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 2680 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 05D1 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 05D1 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 05D1 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 05D1 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 0061 005B 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0061 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0029 0061 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0029 005D 0061;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0061 0029 005D;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 2680 005B 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0029 0061 005D;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 2680 005B 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0029 005D 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 2680 005B 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 05D1 0061 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 05D1 005D 0061;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 2680 005B 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0061 0029 005D;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 2680 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0029 0061 005D;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0029 005D 0061;0;0;0 0 1 1 1 1 0 0 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 05D1 0061 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 05D1 005D 0061;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 05D1 0061 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 05D1 005D 0061;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0061 0029 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0029 0061 005D;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0029 005D 0061;0;0;0 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 05D1 0061 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 05D1 005D 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 2680 0029 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 05D1 0061 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 05D1 005D 0061;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 05D1 0061 005D;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 0029 05D0 2680 05D1 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 05D1 005D 0061;0;0;0 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 005B 0029 05D0 2680 05D1 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, ON, R, R and (([)] +05D0 2680 0028 05D1 0028 05D2 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 05D1 0028 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 05D1 0028 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 05D1 0028 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 05D1 0028 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 2680 0028 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 2680 0028 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 05D2 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 05D1 0028 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 05D1 0028 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 05D1 0028 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 05D1 0028 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 2680 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 2680 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 2680 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 2680 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 05D1 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 05D2 005B 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 05D1 0028 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 05D2 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 05D1 0028 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 05D1 0028 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 05D1 0028 005B 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 05D1 0028 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 05D2 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 05D1 005B 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 2680 0028 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 05D1 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 2680 0028 005B 0029 05D1 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 2680 0028 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 05D2 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 05D1 005B 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 2680 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 05D1 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 2680 005B 0029 05D1 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 2680 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 05D1 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 2680 0029 05D1 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 2680 05D1 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 05D2 0029 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 2680 05D1 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0029 05D2 005D;0;0;0 0 1 1 1 0 0 1 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 05D1 005B 0029 005D 05D2;0;0;0 0 1 1 1 0 0 0 1;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 2680 05D1 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0029 05D2 005D;0;0;0 0 1 1 1 1 0 1 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 2680 005B 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 05D1 0029 005D 05D2;0;0;0 0 1 1 1 1 0 0 1;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 2680 005B 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 2680 005B 0029 05D1 005D 05D2;0;0;0 0 1 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 05D0 2680 005B 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0029 05D2 005D;0;0;0 0 1 1 1 1 0 1 0;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 05D1 0029 005D 05D2;0;0;0 0 1 1 1 1 0 0 1;0 1 5 4 3 2 6 7 8 +0028 0028 05D0 005B 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 2680 0029 05D1 005D 05D2;0;0;0 0 1 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 05D0 005B 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 2680 05D1 005D 05D2;0;0;0 0 1 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 05D0 005B 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0029 05D2 005D;0;0;0 0 0 1 1 1 0 1 0;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 05D1 0029 005D 05D2;0;0;0 0 0 1 1 1 0 0 1;0 1 2 5 4 3 6 7 8 +0028 0028 005B 05D0 2680 05D1 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 2680 0029 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 05D0 2680 0029 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 2680 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 05D0 0029 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 2680 05D1 005D 05D2;0;0;0 0 0 0 1 1 1 1 1;0 1 2 3 8 7 6 5 4 +0028 0028 005B 0029 05D0 2680 05D1 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, ON, ON and (([)] +05D0 0028 0061 2680 0028 2681 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 2680 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 2681 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 2680 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 2680 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0029 2681 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0029 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 2680 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 2680 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 2680 005D 2681;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 2680 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 2681 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 2681 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 2681 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 0029 2681 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 0029 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 2680 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 2680 005D 2681;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 2681 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 2680 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 2680 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0029 2681 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0029 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 2680 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 2680 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 2680 005D 2681;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 2680 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 2681 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 2681 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 0029 2681 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 0029 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 2680 005D 2681;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0029 2681 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0029 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 2680 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 2680 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 2680 005D 2681;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 2680 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0029 2681 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 0029 2681 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0029 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 0029 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 2680 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 2680 005D 2681;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 2680 005D 2681;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 2680 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 2680 005D 2681;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 2680 005D 2681;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, ON, L and (([)] +05D0 0028 0061 2680 0062 0028 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0062 0028 005B 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +05D0 0028 0061 2680 0028 0062 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 2680 0028 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 2680 0028 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 2680 0028 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 2680 0062 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 2680 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 2680 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 2680 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 2680 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 2680 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 2680 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 0029 2680 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 2680 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 0029 2680 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 2680 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 0029 005D 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 005D 2680 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0028 0061 2680 0062 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 0062 005B 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 2680 005B 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 2680 005B 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +05D0 0028 0028 0061 005B 2680 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 2680 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 2680 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 2680 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 2680 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 005D 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 005D 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0062 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0029 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0029 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 2680 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 2680 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 2680 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 2680 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 005D 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 005D 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 2680 0062 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 2680 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 2680 005D 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 2680 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 005D 2680 0062;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 005D 2680 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0061 2680 0062 0028 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0062 0028 005B 0029 005D;1;1;1 1 2 2 2 1 1 1 1;8 7 6 5 2 3 4 1 0 +0028 05D0 0061 2680 0028 0062 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 2680 0028 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 2680 0028 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 2680 0028 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 2680 0062 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 0062 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 2680 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 2680 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 2680 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 2680 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 0062 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 2680 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 0029 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 2680 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 0029 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 0029 2680 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 2680 0062 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 0029 2680 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 2680 005D 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 0029 005D 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 005D 2680 0062;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0028 0061 2680 0062 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 0062 005B 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 2680 005B 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 2680 005B 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 05D0 0028 0061 005B 2680 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 2680 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 2680 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 2680 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 2680 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 005D 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 005D 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0062 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0029 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0029 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 2680 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 2680 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 2680 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 2680 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 005D 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 005D 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 2680 0062 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 2680 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 2680 005D 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 2680 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 005D 2680 0062;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 005D 2680 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 0061 2680 0062 005B 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 0062 005B 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 2680 005B 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 2680 005B 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 0062 0029 005D;1;1;1 1 1 2 2 2 2 1 1;8 7 3 4 5 6 2 1 0 +0028 0028 05D0 0061 005B 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 2680 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 2680 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 005D 2680 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0062 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0029 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0029 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 2680 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 2680 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 2680 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 2680 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 005D 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 005D 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 2680 0062 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 2680 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 2680 005D 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 2680 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 005D 2680 0062;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 005D 2680 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0062 0029 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0029 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0029 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 2680 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 2680 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 2680 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 2680 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 005D 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 005D 2680 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 2680 0062 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 2680 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 2680 005D 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 2680 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 005D 2680 0062;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 005D 2680 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 2680 0062 005D;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 2680 0062 005D;1;1;1 1 1 1 1 2 2 2 1;8 5 6 7 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 2680 005D 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 2680 005D 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 005D 2680 0062;0;0;0 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 005D 2680 0062;1;1;1 1 1 1 1 2 2 2 2;5 6 7 8 4 3 2 1 0 + +# R, L, ON, R and (([)] +05D0 0028 0061 2680 05D1 0028 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 05D1 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 2680 0028 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 2680 0028 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 2680 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 2680 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 2680 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 2680 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 2680 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 005D 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 2680 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 2680 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 2680 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 2680 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 2680 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 2680 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 005D 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 2680 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 2680 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 2680 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 2680 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 005D 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 2680 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 2680 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 2680 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 2680 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 005D 2680 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 005D 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 05D1 0028 005B 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 05D1 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 05D1 005B 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 2680 0028 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 2680 0028 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 05D1 005B 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 05D1 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 2680 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 2680 005B 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 05D1 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 0029 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 2680 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 2680 0029 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 2680 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 2680 05D1 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 2680 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 2680 005D 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 005D 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 005D 2680 05D1;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 05D1 005B 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 2680 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 2680 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 2680 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 2680 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 2680 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 2680 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 005D 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 2680 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 2680 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 2680 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 2680 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 005D 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 2680 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 2680 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 2680 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 2680 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 005D 2680 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 005D 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 05D1 005B 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 05D1 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 2680 005B 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 2680 005B 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 05D1 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 0029 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 2680 0029 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 2680 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 2680 05D1 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 2680 005D 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 005D 2680 05D1;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 2680 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 2680 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 2680 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 2680 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 005D 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 2680 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 2680 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 2680 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 2680 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 005D 2680 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 005D 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 05D1 0029 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 05D1 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0029 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 0029 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 2680 0029 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 2680 0029 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 2680 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 2680 05D1 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 2680 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 2680 005D 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 005D 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 005D 2680 05D1;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 2680 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 2680 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 2680 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 2680 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 005D 2680 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 005D 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 2680 05D1 005D;0;0;0 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 2680 05D1 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 2680 005D 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 2680 005D 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 005D 2680 05D1;0;0;0 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 005D 2680 05D1;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, L, ON and (([)] +05D0 0028 0061 0028 0062 2680 005B 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 2680 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 0062 005B 2680 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 2680 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 0062 005B 0029 2680 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 0029 2680 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 0062 005B 0029 005D 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 0029 005D 2680;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0062 2680 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 2680 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 0062 0029 2680 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 0029 2680 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0062 0029 005D 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 0029 005D 2680;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0029 0062 2680 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 0062 2680 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0029 0062 005D 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 0062 005D 2680;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0028 0061 005B 0062 2680 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 2680 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0062 0029 2680 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 0029 2680 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0062 0029 005D 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 0029 005D 2680;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0029 0062 2680 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 0062 2680 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 0062 005D 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 0062 005D 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 0062 2680 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 0062 2680 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 0062 005D 2680;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 0062 005D 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 2680 005B 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 2680 005B 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 0062 005B 2680 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 2680 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 0062 005B 0029 2680 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 0029 2680 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 0062 005B 0029 005D 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 0029 005D 2680;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0062 2680 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 2680 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 0062 0029 2680 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 0029 2680 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0062 0029 005D 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 0029 005D 2680;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0029 0062 2680 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 0062 2680 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0029 0062 005D 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 0062 005D 2680;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0028 0061 005B 0062 2680 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 2680 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0062 0029 2680 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 0029 2680 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0062 0029 005D 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 0029 005D 2680;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0029 0062 2680 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 0062 2680 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 0062 005D 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 0062 005D 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 0062 2680 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 0062 2680 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 0062 005D 2680;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 0062 005D 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 2680 0029 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 2680 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0062 0029 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 0029 2680 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0062 0029 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 0029 005D 2680;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 0062 2680 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 0062 005D 2680;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 0062 2680 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 0062 2680 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 0062 005D 2680;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 0062 005D 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 0062 2680 005D;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 0062 2680 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 0062 005D 2680;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 0062 005D 2680;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, L, L and (([)] +05D0 0028 0061 0028 0062 005B 0063 0029 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 0063 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 0062 005B 0029 0063 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 0029 0063 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 0062 005B 0029 005D 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 0029 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 0062 0029 0063 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +05D0 0028 0061 0028 005B 0062 0029 005D 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0061 0028 005B 0029 0062 005D 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 0062 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +05D0 0028 0028 0061 005B 0062 0029 0063 005D;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 0029 0063 005D;1;1;1 1 1 2 2 2 1 2 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0062 0029 005D 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 0029 005D 0063;1;1;1 1 1 2 2 2 1 1 2;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0029 0062 005D 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 0062 005D 0063;0;0;1 0 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 0063 0029 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 0063 0029 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 0062 005B 0029 0063 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 0029 0063 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 0062 005B 0029 005D 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 0029 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 0062 0029 0063 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 0029 0063 005D;1;1;1 1 2 2 2 2 2 2 1;8 2 3 4 5 6 7 1 0 +0028 05D0 0061 0028 005B 0062 0029 005D 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 0029 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0061 0028 005B 0029 0062 005D 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 0062 005D 0063;1;1;1 1 2 2 2 2 2 2 2;2 3 4 5 6 7 8 1 0 +0028 05D0 0028 0061 005B 0062 0029 0063 005D;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 0029 0063 005D;1;1;1 1 1 2 2 2 1 2 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0062 0029 005D 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 0029 005D 0063;1;1;1 1 1 2 2 2 1 1 2;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0029 0062 005D 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 0062 005D 0063;0;0;0 1 0 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 0029 0063 005D;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 0029 0063 005D;1;1;1 1 1 2 2 2 1 2 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0062 0029 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 0029 005D 0063;1;1;1 1 1 2 2 2 1 1 2;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 0062 005D 0063;1;1;1 1 1 2 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 0062 005D 0063;0;0;0 0 1 0 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 0062 005D 0063;0;0;0 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 0062 005D 0063;1;1;1 1 1 1 2 1 2 2 2;6 7 8 5 4 3 2 1 0 + +# R, L, L, R and (([)] +05D0 0028 0061 0028 0062 05D1 005B 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 05D1 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0062 005B 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 05D1 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 0062 005B 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 0029 05D1 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 0062 005B 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 0062 005B 0029 005D 05D1;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0062 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 05D1 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0062 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 0029 05D1 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0062 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0062 0029 005D 05D1;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0029 0062 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 0062 05D1 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0061 0028 005B 0029 0062 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 0062 005D 05D1;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +05D0 0028 0028 0061 005B 0062 05D1 0029 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 05D1 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0062 0029 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 0029 05D1 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0062 0029 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0062 0029 005D 05D1;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +05D0 0028 0028 0061 005B 0029 0062 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 0062 05D1 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 0062 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 0062 005D 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 0062 05D1 005D;0;0;1 0 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 0062 05D1 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 0062 005D 05D1;0;0;1 0 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 0062 005D 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 05D1 005B 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 05D1 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 05D1 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 0062 005B 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 0029 05D1 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 0062 005B 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 0062 005B 0029 005D 05D1;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0062 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 05D1 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0062 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 0029 05D1 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0062 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0062 0029 005D 05D1;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0029 0062 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 0062 05D1 005D;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0061 0028 005B 0029 0062 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 0062 005D 05D1;1;1;1 1 2 2 2 2 2 1 1;8 7 2 3 4 5 6 1 0 +0028 05D0 0028 0061 005B 0062 05D1 0029 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 05D1 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0062 0029 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 0029 05D1 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0062 0029 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0062 0029 005D 05D1;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 05D0 0028 0061 005B 0029 0062 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 0062 05D1 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 0062 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 0062 005D 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 0062 05D1 005D;0;0;0 1 0 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 0062 05D1 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 0062 005D 05D1;0;0;0 1 0 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 0062 005D 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0062 05D1 0029 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 05D1 0029 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0062 0029 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 0029 05D1 005D;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0062 0029 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0062 0029 005D 05D1;1;1;1 1 1 2 2 2 1 1 1;8 7 6 3 4 5 2 1 0 +0028 0028 05D0 0061 005B 0029 0062 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 0062 05D1 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 0062 005D 05D1;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 0062 05D1 005D;0;0;0 0 1 0 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 0062 05D1 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 0062 005D 05D1;0;0;0 0 1 0 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 0062 005D 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 0062 05D1 005D;0;0;0 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 0062 05D1 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 0062 005D 05D1;0;0;0 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 0062 005D 05D1;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, R, ON and (([)] +05D0 0028 0061 05D1 2680 0028 005B 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 2680 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 2680 005B 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 2680 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 0029 2680 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 0029 005D 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 2680 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 2680 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0029 2680 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0029 005D 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 2680 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 2680 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0029 2680 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 0029 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0029 005D 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 0029 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 05D1 2680 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 05D1 005D 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 2680 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 2680 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 2680 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 2680 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0029 2680 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 0029 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0029 005D 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 0029 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 2680 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 2680 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0029 2680 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 0029 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0029 005D 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 0029 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 05D1 2680 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 05D1 005D 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 2680 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 2680 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0029 2680 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 0029 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0029 005D 2680;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 0029 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 05D1 2680 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 05D1 005D 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 05D1 2680 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 05D1 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 05D1 005D 2680;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 05D1 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 2680 0028 005B 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 2680 0028 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 2680 005B 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 2680 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0029 2680 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0029 005D 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 2680 005B 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 2680 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 2680 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 2680 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0029 2680 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 0029 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0029 005D 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 0029 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 2680 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 2680 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0029 2680 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 0029 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0029 005D 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 0029 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 05D1 2680 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 05D1 2680 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 05D1 005D 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 05D1 005D 2680;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 2680 005B 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 2680 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 2680 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 2680 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0029 2680 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 0029 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0029 005D 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 0029 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 2680 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 2680 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0029 2680 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 0029 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0029 005D 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 0029 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 05D1 2680 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 05D1 005D 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 2680 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 2680 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0029 2680 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 0029 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0029 005D 2680;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 0029 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 05D1 2680 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 05D1 005D 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 05D1 2680 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 05D1 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 05D1 005D 2680;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 05D1 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 2680 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 2680 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 2680 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 2680 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0029 2680 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 0029 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0029 005D 2680;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 0029 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 2680 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 2680 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0029 2680 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 0029 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0029 005D 2680;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 0029 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 05D1 2680 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 05D1 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 05D1 005D 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 05D1 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 2680 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 2680 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0029 2680 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 0029 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0029 005D 2680;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 0029 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 05D1 2680 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 05D1 005D 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 05D1 2680 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 05D1 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 05D1 005D 2680;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 05D1 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 2680 0029 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 2680 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0029 2680 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 0029 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0029 005D 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 0029 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 05D1 2680 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 05D1 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 05D1 005D 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 05D1 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 05D1 2680 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 05D1 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 05D1 005D 2680;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 05D1 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 05D1 2680 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 05D1 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 05D1 005D 2680;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 05D1 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, L, R, L and (([)] +05D0 0028 0061 05D1 0062 0028 005B 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0062 0028 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 0062 005B 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 0062 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 0029 0062 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 0029 005D 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 05D1 0028 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 0062 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0062 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0029 0062 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0029 005D 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0062 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0029 0062 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0029 005D 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 05D1 0062 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 05D1 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 05D1 005D 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 0062 005B 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 0062 005B 0029 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0062 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0029 0062 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0029 005D 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0062 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0029 0062 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0029 005D 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 05D1 0062 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 05D1 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 05D1 005D 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 0029 05D1 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0062 0029 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 0062 0029 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0029 0062 005D;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0029 005D 0062;0;0;1 0 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 05D1 0062 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 05D1 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 05D1 005D 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 0029 05D1 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 05D1 0062 005D;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 05D1 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 05D1 005D 0062;0;0;1 0 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0029 0061 05D1 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0062 0028 005B 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0062 0028 005B 0029 005D;1;1;1 1 2 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 0062 005B 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0062 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0029 0062 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0029 005D 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 05D1 0028 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 0062 005B 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 0062 005B 0029 005D;1;1;1 1 2 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0062 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0029 0062 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0029 005D 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0062 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 0062 0029 005D;1;1;1 1 2 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0029 0062 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 0029 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0029 005D 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 0029 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 05D1 0062 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 05D1 0062 005D;1;1;1 1 2 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 05D1 005D 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 0029 05D1 005D 0062;1;1;1 1 2 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 0062 005B 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 0062 005B 0029 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0062 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0029 0062 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0029 005D 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0062 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0029 0062 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0029 005D 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 05D1 0062 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 05D1 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 05D1 005D 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 0029 05D1 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0062 0029 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 0062 0029 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0029 0062 005D;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0029 005D 0062;0;0;0 1 0 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 05D1 0062 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 05D1 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 05D1 005D 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 0029 05D1 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 05D1 0062 005D;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 05D1 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 05D1 005D 0062;0;0;0 1 0 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0029 0061 05D1 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 0062 005B 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 0062 005B 0029 005D;1;1;1 1 1 2 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0062 0029 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0029 0062 005D;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0029 005D 0062;0;0;0 0 1 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0062 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 0062 0029 005D;1;1;1 1 1 2 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0029 0062 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 0029 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0029 005D 0062;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 0029 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 05D1 0062 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 05D1 0062 005D;1;1;1 1 1 2 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 05D1 005D 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 0029 05D1 005D 0062;1;1;1 1 1 2 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0062 0029 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 0062 0029 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0029 0062 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0029 005D 0062;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 05D1 0062 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 05D1 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 05D1 005D 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 0029 05D1 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 05D1 0062 005D;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 05D1 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 05D1 005D 0062;0;0;0 0 1 0 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 0061 05D1 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0062 0029 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 0062 0029 005D;1;1;1 1 1 1 2 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0029 0062 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0029 005D 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 05D1 0062 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 05D1 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 05D1 005D 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 0029 05D1 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 05D1 0062 005D;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 05D1 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 05D1 005D 0062;0;0;0 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 0061 05D1 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 05D1 0062 005D;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 05D1 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 05D1 005D 0062;0;0;0 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 0029 05D0 0061 05D1 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, L, R, R and (([)] +05D0 0028 0061 05D1 0028 05D2 005B 0029 005D;0;0;1 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +05D0 0028 0061 05D1 0028 05D2 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 05D2 0029 005D;0;0;1 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +05D0 0028 0061 05D1 0028 005B 05D2 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 0029 05D2 005D;0;0;1 0 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +05D0 0028 0061 05D1 0028 005B 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 05D1 0028 005B 0029 005D 05D2;0;0;1 0 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +05D0 0028 0061 05D1 0028 005B 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 05D2 0029 005D;0;0;1 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +05D0 0028 0061 0028 05D1 005B 05D2 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0029 05D2 005D;0;0;1 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 05D1 005B 0029 005D 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 05D1 005B 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0029 05D2 005D;0;0;1 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 05D1 0029 005D 05D2;0;0;1 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0061 0028 005B 05D1 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0061 0028 005B 0029 05D1 005D 05D2;0;0;1 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +05D0 0028 0061 0028 005B 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 05D2 0029 005D;0;0;1 0 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +05D0 0028 0028 0061 05D1 005B 05D2 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0029 05D2 005D;0;0;1 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 05D1 005B 0029 005D 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 05D1 005B 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0029 05D2 005D;0;0;1 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 05D1 0029 005D 05D2;0;0;1 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 0061 005B 05D1 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 0061 005B 0029 05D1 005D 05D2;0;0;1 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +05D0 0028 0028 0061 005B 0029 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0029 05D2 005D;0;0;1 0 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 05D1 0029 005D 05D2;0;0;1 0 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 0061 05D1 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0061 0029 05D1 005D 05D2;0;0;1 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +05D0 0028 0028 005B 0061 0029 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 0061 05D1 005D 05D2;0;0;1 0 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +05D0 0028 0028 005B 0029 0061 05D1 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 05D2 005B 0029 005D;0;0;0 1 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 05D0 0061 05D1 0028 05D2 005B 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 05D2 0029 005D;0;0;0 1 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 05D0 0061 05D1 0028 005B 05D2 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0029 05D2 005D;0;0;0 1 0 1 1 1 1 1 0;0 1 2 7 6 5 4 3 8 +0028 05D0 0061 05D1 0028 005B 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 05D1 0028 005B 0029 005D 05D2;0;0;0 1 0 1 1 1 1 1 1;0 1 2 8 7 6 5 4 3 +0028 05D0 0061 05D1 0028 005B 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 05D2 0029 005D;0;0;0 1 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 05D0 0061 0028 05D1 005B 05D2 0029 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0029 05D2 005D;0;0;0 1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 05D1 005B 0029 005D 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 05D1 005B 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0029 05D2 005D;0;0;0 1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 0029 05D2 005D;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 05D1 0029 005D 05D2;0;0;0 1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0061 0028 005B 05D1 0029 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0061 0028 005B 0029 05D1 005D 05D2;0;0;0 1 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 05D0 0061 0028 005B 0029 05D1 005D 05D2;1;1;1 1 2 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 05D2 0029 005D;0;0;0 1 0 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 05D0 0028 0061 05D1 005B 05D2 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0029 05D2 005D;0;0;0 1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 05D1 005B 0029 005D 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 05D1 005B 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0029 05D2 005D;0;0;0 1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 05D1 0029 005D 05D2;0;0;0 1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 0061 005B 05D1 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 0061 005B 0029 05D1 005D 05D2;0;0;0 1 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 05D0 0028 0061 005B 0029 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0029 05D2 005D;0;0;0 1 0 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 05D1 0029 005D 05D2;0;0;0 1 0 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 0061 05D1 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0061 0029 05D1 005D 05D2;0;0;0 1 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 05D0 0028 005B 0061 0029 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 0061 05D1 005D 05D2;0;0;0 1 0 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 05D0 0028 005B 0029 0061 05D1 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 05D2 0029 005D;0;0;0 0 1 0 1 1 1 0 0;0 1 2 3 6 5 4 7 8 +0028 0028 05D0 0061 05D1 005B 05D2 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0029 05D2 005D;0;0;0 0 1 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 05D1 005B 0029 005D 05D2;0;0;0 0 1 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 05D1 005B 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0029 05D2 005D;0;0;0 0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 05D1 0029 005D 05D2;0;0;0 0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 0061 005B 05D1 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 0061 005B 0029 05D1 005D 05D2;0;0;0 0 1 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 05D0 0061 005B 0029 05D1 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0029 05D2 005D;0;0;0 0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 05D1 0029 005D 05D2;0;0;0 0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0061 05D1 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0061 0029 05D1 005D 05D2;0;0;0 0 1 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 05D0 005B 0061 0029 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 0061 05D1 005D 05D2;0;0;0 0 1 0 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 05D0 005B 0029 0061 05D1 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0029 05D2 005D;0;0;0 0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 05D1 0029 005D 05D2;0;0;0 0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0061 05D1 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0061 0029 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 05D0 0061 0029 05D1 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 0061 05D1 005D 05D2;0;0;0 0 0 1 0 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 05D0 0029 0061 05D1 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 0029 05D0 0061 05D1 005D 05D2;0;0;0 0 0 0 1 0 1 1 1;0 1 2 3 4 5 8 7 6 +0028 0028 005B 0029 05D0 0061 05D1 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, ON, ON and (([)] +05D0 0028 05D1 2680 0028 2681 005B 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 2681 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 2681 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0029 2681 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0029 005D 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 2681 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0029 2681 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0029 005D 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0029 2681 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0029 005D 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 2680 005D 2681;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 2681 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 2680 005D 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0029 2681 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0029 005D 2681;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 2680 005D 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 2680 005D 2681;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 2681 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 2680 005B 2681 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0029 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 2680 005B 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0029 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 2680 005B 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0029 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0029 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 2680 005D 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0029 2681 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0029 005D 2681;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 2680 005D 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 2680 005D 2681;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0029 2681 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 2680 0029 2681 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0029 005D 2681;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 2680 0029 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 2680 005D 2681;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 2680 005D 2681;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 2680 005D 2681;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 2680 005D 2681;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, ON, L and (([)] +05D0 0028 05D1 2680 0061 0028 005B 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0061 0028 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 0061 005B 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0061 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0029 0061 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0029 005D 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 2680 0028 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 0061 005B 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0061 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0029 0061 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0029 005D 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0061 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0029 0061 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0029 005D 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 2680 0061 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 2680 005D 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 005D 2680 0061;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 0061 005B 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 2680 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0061 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 2680 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0061 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 2680 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 2680 0061 005D;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 2680 005D 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 005D 2680 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0061 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 2680 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 2680 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 2680 0061 005D;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 2680 005D 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 005D 2680 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 2680 0061 005D;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 2680 005D 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 005D 2680 0061;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 0061 005B 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 2680 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0061 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 2680 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 2680 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 2680 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0061 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 2680 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 2680 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 2680 0061 005D;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 2680 005D 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 005D 2680 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0061 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 2680 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 2680 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 2680 0061 005D;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 2680 005D 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 005D 2680 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 2680 0061 005D;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 2680 005D 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 005D 2680 0061;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0061 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 2680 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0029 0061 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 2680 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0029 005D 0061;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 2680 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 2680 0061 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 2680 005D 0061;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 005D 2680 0061;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 2680 0061 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 2680 005D 0061;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 005D 2680 0061;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 2680 0061 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 2680 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 2680 005D 0061;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 2680 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 005D 2680 0061;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 005D 2680 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, R, ON, R and (([)] +05D0 0028 05D1 2680 05D2 0028 005B 0029 005D;0;0;1 1 1 1 1 0 0 0 0;4 3 2 1 0 5 6 7 8 +05D0 0028 05D1 2680 05D2 0028 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 05D2 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 2680 0028 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 2680 0028 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 2680 0028 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 2680 0028 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 05D2 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 2680 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 2680 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 2680 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 2680 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 2680 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 05D2 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 2680 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 2680 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 2680 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 2680 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 2680 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 05D2 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0029 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0029 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 2680 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 05D1 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 2680 05D2 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 005B 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 2680 005D 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 005D 2680 05D2;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 05D2 005B 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 2680 05D2 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 05D2 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 2680 005B 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 2680 005B 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 2680 005B 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 2680 005B 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 05D2 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 2680 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 2680 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 2680 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 005D 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 05D2 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0029 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 2680 0029 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 2680 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 05D1 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 2680 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 005D 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 2680 05D2 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 005B 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 2680 005D 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 005D 2680 05D2;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 05D2 0029 005D;0;0;0 0 1 1 1 1 1 0 0;0 1 6 5 4 3 2 7 8 +0028 0028 05D0 005B 05D1 2680 05D2 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0029 05D2 005D;0;0;0 0 1 1 1 0 0 1 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 2680 0029 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 2680 0029 005D 05D2;0;0;0 0 1 1 1 0 0 0 1;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 2680 0029 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 2680 05D2 005D;0;0;0 0 1 1 1 0 0 1 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 2680 005D 05D2;0;0;0 0 1 1 1 0 0 0 1;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 005D 2680 05D2;0;0;0 0 1 1 1 0 0 0 1;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 2680 05D2 005D;0;0;0 0 1 0 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 05D0 005B 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 2680 005D 05D2;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 005B 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 005D 2680 05D2;0;0;0 0 1 0 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 05D0 005B 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 2680 05D2 005D;0;0;0 0 0 1 0 1 1 1 0;0 1 2 3 4 7 6 5 8 +0028 0028 005B 05D0 0029 05D1 2680 05D2 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 2680 005D 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 05D0 0029 05D1 2680 005D 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 005D 2680 05D2;0;0;0 0 0 1 0 1 1 1 1;0 1 2 3 4 8 7 6 5 +0028 0028 005B 05D0 0029 05D1 005D 2680 05D2;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, L, ON and (([)] +05D0 0028 05D1 0061 2680 0028 005B 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 2680 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 2680 005B 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 2680 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 2680 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 2680 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 0029 2680 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 0029 2680 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 0029 005D 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 0029 005D 2680;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 2680 005B 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 2680 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 2680 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 2680 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 0029 2680 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 0029 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 0029 005D 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 0029 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 2680 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 2680 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 0029 2680 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 0029 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 0029 005D 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 0029 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 0061 2680 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 0061 005D 2680;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 2680 005B 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 2680 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 2680 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 2680 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0029 2680 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 0029 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0029 005D 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 0029 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 2680 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 2680 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 0029 2680 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 0029 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 0029 005D 2680;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 0029 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 0061 2680 005D;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 0061 005D 2680;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 2680 0029 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 2680 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 0029 2680 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 0029 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 0029 005D 2680;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 0029 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 0061 2680 005D;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 0061 005D 2680;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 0061 2680 005D;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 0061 005D 2680;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 2680 005B 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 2680 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 2680 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 2680 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0029 2680 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 0029 2680 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0029 005D 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 0029 005D 2680;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 2680 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 2680 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 0029 2680 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 0029 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 0029 005D 2680;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 0029 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 0061 2680 005D;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 0061 005D 2680;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 2680 0029 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 2680 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 0029 2680 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 0029 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 0029 005D 2680;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 0029 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 0061 2680 005D;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 0061 005D 2680;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 0061 2680 005D;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 0061 005D 2680;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 2680 0029 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 2680 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 0029 2680 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 0029 2680 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 0029 005D 2680;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 0029 005D 2680;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 0061 2680 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 0061 005D 2680;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 0061 2680 005D;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 0061 005D 2680;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 0061 2680 005D;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 0061 2680 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 0061 005D 2680;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 0061 005D 2680;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, L, L and (([)] +05D0 0028 05D1 0061 0028 0062 005B 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 0062 005B 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 05D1 0061 0028 005B 0062 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 0062 0029 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 05D1 0061 0028 005B 0029 0062 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 0029 0062 005D;1;1;1 1 1 2 2 2 2 2 1;8 3 4 5 6 7 2 1 0 +05D0 0028 05D1 0061 0028 005B 0029 005D 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 0029 005D 0062;1;1;1 1 1 2 2 2 2 2 2;3 4 5 6 7 8 2 1 0 +05D0 0028 05D1 0028 0061 005B 0062 0029 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 0029 0062 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 0029 005D 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 0029 0062 005D;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 0029 005D 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 0061 005D 0062;0;0;1 1 1 0 0 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0062 0029 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0029 0062 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0029 005D 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 0029 0062 005D;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 0029 005D 0062;0;0;1 0 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 0061 005D 0062;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 0029 0062 005D;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 0029 005D 0062;0;0;1 0 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 0061 005D 0062;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 0061 005D 0062;0;0;1 1 1 1 1 1 0 0 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0062 0029 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 0062 0029 005D;1;1;1 1 1 1 2 2 2 1 1;8 7 4 5 6 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0029 0062 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 0029 0062 005D;1;1;1 1 1 1 2 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0029 005D 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 0029 005D 0062;1;1;1 1 1 1 2 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 0029 0062 005D;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 0029 005D 0062;0;0;0 1 0 1 0 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 0061 005D 0062;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 0029 0062 005D;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 0029 005D 0062;0;0;0 1 0 0 1 0 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 0061 005D 0062;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 0061 005D 0062;0;0;0 1 1 1 1 1 0 0 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 0029 0062 005D;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 0029 0062 005D;1;1;1 1 1 1 1 2 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 0029 005D 0062;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 0029 005D 0062;1;1;1 1 1 1 1 2 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 0061 005D 0062;0;0;0 0 1 1 1 0 0 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 0061 005D 0062;0;0;0 0 1 0 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 0061 005D 0062;0;0;0 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 0061 005D 0062;1;1;1 1 1 1 1 1 2 2 2;6 7 8 5 4 3 2 1 0 + +# R, R, L, R and (([)] +05D0 0028 05D1 0061 05D2 0028 005B 0029 005D;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 05D2 0028 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 05D2 005B 0029 005D;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 05D2 005B 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 05D2 0029 005D;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 05D2 0029 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 0029 05D2 005D;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 0029 05D2 005D;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0061 0028 005B 0029 005D 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0061 0028 005B 0029 005D 05D2;1;1;1 1 1 2 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 05D2 005B 0029 005D;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 05D2 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 05D2 0029 005D;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 05D2 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 0029 05D2 005D;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 0061 005B 0029 005D 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 0061 005B 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 05D2 0029 005D;0;0;1 1 1 0 0 0 1 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 05D2 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 0029 05D2 005D;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 0029 05D2 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0061 0029 005D 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0061 0029 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 0061 05D2 005D;0;0;1 1 1 0 0 0 0 1 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 0061 005D 05D2;0;0;1 1 1 0 0 0 0 0 1;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 0029 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 05D2 005B 0029 005D;0;0;1 0 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 05D2 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 05D2 0029 005D;0;0;1 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 05D2 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0029 05D2 005D;0;0;1 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 0061 005B 0029 005D 05D2;0;0;1 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 0061 005B 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 05D2 0029 005D;0;0;1 0 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 05D2 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 0029 05D2 005D;0;0;1 0 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 0029 05D2 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0061 0029 005D 05D2;0;0;1 0 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 05D1 005B 0061 0029 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 0061 05D2 005D;0;0;1 1 1 1 1 1 0 1 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 0061 005D 05D2;0;0;1 1 1 1 1 1 0 0 1;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 05D1 005B 0029 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 05D2 0029 005D;0;0;1 0 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 05D2 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 0029 05D2 005D;0;0;1 0 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 0029 05D2 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0061 0029 005D 05D2;0;0;1 0 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +05D0 0028 0028 005B 05D1 0061 0029 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 0061 05D2 005D;0;0;1 1 1 1 1 1 0 1 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 0061 005D 05D2;0;0;1 1 1 1 1 1 0 0 1;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 05D1 0029 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 0061 05D2 005D;0;0;1 1 1 1 1 1 0 1 0;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 0029 05D1 0061 005D 05D2;0;0;1 1 1 1 1 1 0 0 1;5 4 3 2 1 0 6 7 8 +05D0 0028 0028 005B 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 05D2 005B 0029 005D;0;0;0 1 0 1 0 1 0 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 05D2 005B 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 05D2 0029 005D;0;0;0 1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 05D2 0029 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0029 05D2 005D;0;0;0 1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 0029 05D2 005D;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 0061 005B 0029 005D 05D2;0;0;0 1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 0061 005B 0029 005D 05D2;1;1;1 1 1 1 2 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 05D2 0029 005D;0;0;0 1 0 1 0 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 05D2 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 0029 05D2 005D;0;0;0 1 0 1 0 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 0029 05D2 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0061 0029 005D 05D2;0;0;0 1 0 1 0 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 05D1 005B 0061 0029 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 0061 05D2 005D;0;0;0 1 1 1 1 1 0 1 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 0061 005D 05D2;0;0;0 1 1 1 1 1 0 0 1;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 05D1 005B 0029 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 05D2 0029 005D;0;0;0 1 0 0 1 0 1 0 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 05D2 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 0029 05D2 005D;0;0;0 1 0 0 1 0 0 1 0;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 0029 05D2 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0061 0029 005D 05D2;0;0;0 1 0 0 1 0 0 0 1;0 1 2 3 4 5 6 7 8 +0028 05D0 0028 005B 05D1 0061 0029 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 0061 05D2 005D;0;0;0 1 1 1 1 1 0 1 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 0061 005D 05D2;0;0;0 1 1 1 1 1 0 0 1;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 05D1 0029 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 0061 05D2 005D;0;0;0 1 1 1 1 1 0 1 0;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 0029 05D1 0061 005D 05D2;0;0;0 1 1 1 1 1 0 0 1;0 5 4 3 2 1 6 7 8 +0028 05D0 0028 005B 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 05D2 0029 005D;0;0;0 0 1 1 1 0 1 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 05D2 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 0029 05D2 005D;0;0;0 0 1 1 1 0 0 1 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 0029 05D2 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0061 0029 005D 05D2;0;0;0 0 1 1 1 0 0 0 1;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0061 0029 005D 05D2;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 0061 05D2 005D;0;0;0 0 1 1 1 0 0 1 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 0061 005D 05D2;0;0;0 0 1 1 1 0 0 0 1;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 0061 05D2 005D;0;0;0 0 1 0 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 0029 05D1 0061 005D 05D2;0;0;0 0 1 0 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 05D0 005B 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 0061 05D2 005D;0;0;0 0 0 1 0 1 0 1 0;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 0061 05D2 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 005B 05D0 0029 05D1 0061 005D 05D2;0;0;0 0 0 1 0 1 0 0 1;0 1 2 3 4 5 6 7 8 +0028 0028 005B 05D0 0029 05D1 0061 005D 05D2;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, R, ON and (([)] +05D0 0028 05D1 0028 05D2 2680 005B 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 05D2 2680 005B 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 2680 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 05D2 005B 2680 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0029 2680 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 05D2 005B 0029 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0029 005D 2680;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 05D2 005B 0029 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 2680 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 05D2 2680 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0029 2680 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 005B 05D2 0029 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0029 005D 2680;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 005B 05D2 0029 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 05D2 2680 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 005B 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 05D2 005D 2680;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 005B 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 2680 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 05D2 2680 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0029 2680 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 05D2 0029 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0029 005D 2680;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 05D2 0029 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 05D2 2680 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 05D2 005D 2680;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 05D2 2680 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 05D2 005D 2680;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 2680 0029 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 05D2 2680 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0029 2680 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 05D2 0029 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0029 005D 2680;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 05D2 0029 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 05D2 2680 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 05D2 005D 2680;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 05D2 2680 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 05D2 005D 2680;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 05D2 2680 005D;0;0;0 0 1 1 1 0 1 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 05D2 2680 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 05D2 005D 2680;0;0;0 0 1 1 1 0 1 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 05D2 005D 2680;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# R, R, R, L and (([)] +05D0 0028 05D1 0028 05D2 0061 005B 0029 005D;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 05D2 0061 005B 0029 005D;1;1;1 1 1 1 1 2 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0061 0029 005D;0;0;1 1 1 0 1 0 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 05D2 005B 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 05D2 005B 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 05D2 005B 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0061 0029 005D;0;0;1 1 1 0 0 1 0 0 0;2 1 0 3 4 5 6 7 8 +05D0 0028 05D1 0028 005B 05D2 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 005B 05D2 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 005B 05D2 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 05D2 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 005B 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 05D2 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 05D1 0028 005B 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0061 0029 005D;0;0;1 0 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +05D0 0028 0028 05D1 005B 05D2 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0029 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 05D2 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0029 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 05D2 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 05D2 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 05D2 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 05D1 005B 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 05D2 0061 005D;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 05D2 005D 0061;0;0;1 1 1 1 1 1 1 0 0;6 5 4 3 2 1 0 7 8 +05D0 0028 0028 005B 05D1 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0061 0029 005D;0;0;0 1 0 1 1 1 0 0 0;0 1 2 5 4 3 6 7 8 +0028 05D0 0028 05D1 005B 05D2 0061 0029 005D;1;1;1 1 1 1 1 1 2 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0029 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 05D2 0029 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0029 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 05D2 0029 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 05D2 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 05D2 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 05D1 005B 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 05D2 0061 005D;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 05D2 005D 0061;0;0;0 1 1 1 1 1 1 0 0;0 6 5 4 3 2 1 7 8 +0028 05D0 0028 005B 05D1 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 05D2 0061 005D;0;0;0 0 1 1 1 0 1 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 05D2 0061 005D;1;1;1 1 1 1 1 1 1 2 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 05D2 005D 0061;0;0;0 0 1 1 1 0 1 0 0;0 1 4 3 2 5 6 7 8 +0028 0028 05D0 005B 05D1 0029 05D2 005D 0061;1;1;1 1 1 1 1 1 1 1 2;8 7 6 5 4 3 2 1 0 + +# R, R, R, R and (([)] +05D0 0028 05D1 0028 05D2 005B 05D3 0029 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 05D2 005B 05D3 0029 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0029 05D3 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 05D2 005B 0029 05D3 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0029 005D 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 05D2 005B 0029 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0029 05D3 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 05D1 0028 005B 05D2 0029 05D3 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0029 005D 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 05D2 0029 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 05D2 005D 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 05D1 0028 005B 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0029 05D3 005D;0;0;1 1 1 1 1 1 1 1 0;7 6 5 4 3 2 1 0 8 +05D0 0028 0028 05D1 005B 05D2 0029 05D3 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0029 005D 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 05D2 0029 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 05D2 005D 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 05D1 005B 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 05D2 005D 05D3;0;0;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +05D0 0028 0028 005B 05D1 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0029 05D3 005D;0;0;0 1 1 1 1 1 1 1 0;0 7 6 5 4 3 2 1 8 +0028 05D0 0028 05D1 005B 05D2 0029 05D3 005D;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 05D2 0029 005D 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 05D2 0029 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 05D1 005B 0029 05D2 005D 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 05D1 005B 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 05D0 0028 005B 05D1 0029 05D2 005D 05D3;0;0;0 1 1 1 1 1 1 1 1;0 8 7 6 5 4 3 2 1 +0028 05D0 0028 005B 05D1 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 +0028 0028 05D0 005B 05D1 0029 05D2 005D 05D3;0;0;0 0 1 1 1 0 1 1 1;0 1 4 3 2 5 8 7 6 +0028 0028 05D0 005B 05D1 0029 05D2 005D 05D3;1;1;1 1 1 1 1 1 1 1 1;8 7 6 5 4 3 2 1 0 + +# EOF diff --git a/test/ChangeLog b/test/ChangeLog index 4e47f95b066..7d23b3efe1c 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,6 +1,277 @@ +2014-12-19 Artur Malabarba + + * automated/let-alist.el: require `cl-lib' + New tests for accessing alists inside alists. + +2014-12-18 Artur Malabarba + + * automated/let-alist.el: New file. + +2014-12-16 Nicolas Petton + + * automated/seq-tests.el: New file. + +2014-12-16 Glenn Morris + + * automated/data/flymake/Makefile (check-syntax): + Prevent colorized gcc output from confusing flymake. + + * automated/flymake-tests.el (flymake-tests-data-directory): + Change from flymake/warnpred to more standard data/flymake. + * automated/flymake/warnpred/: Rename to automated/data/flymake/. + +2014-12-11 Michael Albinus + + * automated/vc-tests.el (vc-test--revision-granularity-function): + New defun. + (vc-test--create-repo-function): Rename from + `vc-test--create-repo-if-not-supported'. Adapt all callees. + (vc-test--create-repo): Check also for revision-granularity. + (vc-test--unregister-function): Additional argument FILE. Adapt + all callees. + (vc-test--working-revision): New defun. + (vc-test-*-working-revision): New tests. + +2014-12-10 Michael Albinus + + * automated/vc-tests.el (vc-test--register): Check, that the file + still exists after register and unregister operations. + +2014-12-06 Michael Albinus + + * automated/vc-tests.el: New file. + +2014-12-03 Michael Albinus + + * automated/tramp-tests.el (tramp-test29-vc-registered): + Fallback for changed `vc-register' argument list. + +2014-12-03 Glenn Morris + + * automated/tramp-tests.el (tramp-test29-vc-registered): + Update for recent incompatible change in vc-register. + +2014-11-29 Fabián Ezequiel Gallina + + * automated/python-tests.el + (python-shell-calculate-process-environment-4) + (python-shell-calculate-process-environment-5): New tests. + (python-shell-make-comint-3): Use file-equal-p. + (python-shell-get-or-create-process-1) + (python-shell-get-or-create-process-2) + (python-shell-get-or-create-process-3): Fix interpreter for + Windows (Bug#18595). + +2014-11-21 Ulf Jasper + + * automated/libxml-tests.el + (libxml-tests--data-comments-preserved): Renamed from + 'libxml-tests--data'. + (libxml-tests--data-comments-discarded): New. + (libxml-tests): Check whether 'libxml-parse-xml-region' is + discarding comments correctly. + +2014-11-17 Michal Nazarewicz + + * automated/tildify-tests.el (tildify-test-html, tildify-test-xml): + HTML and XML now use no-break space as hard space. Update tests. + (tildify-test-foreach-ignore-environments) + (tildify-test-foreach-ignore-environments-early-return, + (tildify-test-foreach-region) + (tildify-test-foreach-region-early-return) + (tildify-test-foreach-region-limit-region): New tests of + `tildify-foreach-ignore-environments' and + `tildify--foreach-region' functions. + (with-test-foreach): New helper macro for the above tests. + +2014-11-17 Glenn Morris + + * automated/occur-tests.el (occur-test-case, occur-test-create): + In case of failure, show the actual string, rather than just nil. + (occur-tests): Update for apparent change in output re control-chars. + +2014-11-17 Ulf Jasper + + * automated/icalendar-tests.el (icalendar-tests--test-export): New + optional parameter `alarms'. + (icalendar-export-alarms): New test for exporting icalendar + alarms. + (icalendar-tests--test-cycle): Let `icalendar-export-alarms' be nil. + +2014-11-17 Ulf Jasper + + * automated/icalendar-tests.el (icalendar-tests--test-import): + Mention timezone in doc string. Clean up. + (icalendar-real-world): Add another test case for no-dst + timezones. + +2014-11-16 Ulf Jasper + + * automated/icalendar-tests.el (icalendar--parse-vtimezone): Add + testcase where offsets of standard time and daylight saving time + are equal. + (icalendar-real-world): Fix error in test case. Expected result + was wrong when offsets of standard time and daylight saving time + were equal. + +2014-11-16 Fabián Ezequiel Gallina + + * automated/python-tests.el + (python-shell-calculate-process-environment-2): Fix test. + (python-shell-calculate-process-environment-1) + (python-shell-calculate-process-environment-3): Cleanup. + +2014-11-16 Fabián Ezequiel Gallina + + * automated/python-tests.el (python-indent-dedenters-8): New test + for Bug#18432. + +2014-11-16 Fabián Ezequiel Gallina + + * automated/python-tests.el (python-indent-region-1) + (python-indent-region-2, python-indent-region-3) + (python-indent-region-4, python-indent-region-5): New tests. + +2014-11-08 Stefan Monnier + + * automated/bytecomp-tests.el (bytecomp-tests--warnings): New tests. + * automated/cl-lib-tests.el: Rename from cl-lib.el. + +2014-10-28 Ulf Jasper + + * automated/libxml-tests.el: New file. + +2014-10-22 Noam Postavsky + + * test/automated/process-tests.el (process-test-quoted-batfile): + New test. + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + +2014-10-20 Stefan Monnier + + * indent/scss-mode.scss: New file. + * indent/css-mode.css: Add a few uneventful examples. + +2014-10-15 Eli Zaretskii + + * BidiCharacterTest.txt: New file, from Unicode. + + * biditest.el: New file. + +2014-10-08 Leo Liu + + * automated/print-tests.el: New file. + (terpri): Tests for terpri. (Bug#18652) + +2014-10-06 Glenn Morris + + * automated/icalendar-tests.el (icalendar--calendar-style): + Remove test, no longer relevant. + +2014-10-04 Glenn Morris + + * automated/package-x-test.el: Remove file... + * automated/package-test.el: ... merge package-x-test.el. (Bug#18574) + +2014-10-02 Glenn Morris + + * automated/package-test.el (with-package-test, package-test-signed): + Also set HOME to a temp value, in case the real one is absent (e.g. + hydra) or read-only. (Bug#18575) + (package-test-signed): Use skip-unless rather than expected-result. + +2014-09-26 Leo Liu + + * automated/cl-lib.el (cl-digit-char-p, cl-parse-integer): + New tests. (Bug#18557) + +2014-09-24 Ulf Jasper + + * automated/newsticker-tests.el + (newsticker--group-find-parent-group), + (newsticker--group-do-rename-group): New tests. + +2014-09-09 Eli Zaretskii + + * automated/fns-tests.el (fns-tests-collate-sort): + Bind w32-collate-ignore-punctuation to t when sorting according to + UTS#10 rules. + +2014-09-07 Michael Albinus + + * automated/fns-tests.el (fns-tests--collate-enabled-p): New function. + (fns-tests-collate-strings, fns-tests-collate-sort): Use it. + +2014-09-05 Michael Albinus + + * automated/fns-tests.el (fns-tests-compare-strings): In case + `compare-strings' shall return t, check for this. + (fns-tests-collate-strings, fns-tests-collate-sort): New tests. + +2014-09-03 Fabián Ezequiel Gallina + + * automated/python-tests.el (python-indent-electric-colon-1): + New test. (Bug#18228) + +2014-08-29 Dmitry Antipov + + * automated/fns-tests.el (fns-tests-sort): New test. + +2014-08-28 Glenn Morris + + * automated/python-tests.el (python-shell-calculate-exec-path-2): + Update test for today's python.el changes. + +2014-08-13 Jan Nieuwenhuizen + + * automated/compile-tests.el (compile--test-error-line): Grok FILE + being nil. Allows for Guile tests to pass. + (compile-tests--test-regexps-data): Add Guile tests. + +2014-08-11 Glenn Morris + + * automated/data/files-bug18141.el.gz: New file. + * automated/files.el (files-test-bug-18141-file): + New variable and test. (Bug#18141) + +2014-08-10 Ulf Jasper + + Enumerate evaluated sexp diary entries (Bug#7911). + * automated/icalendar-tests.el (icalendar--convert-anniversary-to-ical) + (icalendar--convert-cyclic-to-ical, icalendar--convert-block-to-ical) + (icalendar--convert-yearly-to-ical, icalendar--convert-weekly-to-ical) + (icalendar--convert-ordinary-to-ical): Returns cons cell now. + (icalendar--convert-to-ical, icalendar--convert-sexp-to-ical): + New tests. + +2014-08-07 Glenn Morris + + * automated/Makefile.in (check-tar): Remove, hydra recipe does it now. + +2014-08-06 Ulf Jasper + + * automated/icalendar-tests.el (icalendar--convert-ordinary-to-ical) + (icalendar--diarytime-to-isotime): More testcases (Bug#13750). + +2014-08-03 Glenn Morris + + * automated/Makefile.in (check-tar): New rule. + +2014-08-02 Glenn Morris + + * automated/fns-tests.el (fns-tests-compare-strings): + Update test. (Bug#17903) + + * automated/icalendar-tests.el (icalendar--decode-isodatetime): + Use more precise TZ specification, as per 2013-08-04. + 2014-07-30 Ulf Jasper - * automated/icalendar-tests.el (icalendar--decode-isodatetime): New test. + * automated/icalendar-tests.el (icalendar--decode-isodatetime): + New test. 2014-07-28 Dmitry Antipov @@ -205,7 +476,7 @@ 2014-06-05 Michal Nazarewicz - * automated/tildify-tests.el (tildify-test--test): Optimise the test + * automated/tildify-tests.el (tildify-test--test): Optimize the test slightly by reusing the same temporary buffer across multiple test cases. @@ -441,8 +712,8 @@ * automated/subword-tests.el (subword-tests2): More subword tests. - * automated/cl-lib.el (cl-lib-keyword-names-versus-values): New - test: correct parsing of keyword arguments. + * automated/cl-lib.el (cl-lib-keyword-names-versus-values): + New test: correct parsing of keyword arguments. 2014-03-22 Dmitry Gutov @@ -537,8 +808,8 @@ 2014-02-17 Michael Albinus - * automated/tramp-tests.el (tramp-test28-shell-command): Perform - an initial `sit-for' prior the while loop. + * automated/tramp-tests.el (tramp-test28-shell-command): + Perform an initial `sit-for' prior the while loop. 2014-02-16 Michael Albinus @@ -560,8 +831,8 @@ * automated/tramp-tests.el (tramp-test26-process-file): Improve test. (tramp-test27-start-file-process): Use "_p" as argument of lambda. - (tramp-test28-shell-command): Improve `shell-command' test. Add - `async-shell-command' tests. + (tramp-test28-shell-command): Improve `shell-command' test. + Add `async-shell-command' tests. 2014-02-04 Michael Albinus @@ -617,8 +888,8 @@ 2014-01-13 Michael Albinus - * automated/ert-tests.el (ert-test-record-backtrace): Reenable - test case with adapted test string. (Bug#13064) + * automated/ert-tests.el (ert-test-record-backtrace): + Reenable test case with adapted test string. (Bug#13064) 2013-12-28 Glenn Morris diff --git a/test/automated/bytecomp-tests.el b/test/automated/bytecomp-tests.el index 1d96f1cdfce..2bdc3c5bf12 100644 --- a/test/automated/bytecomp-tests.el +++ b/test/automated/bytecomp-tests.el @@ -316,12 +316,12 @@ Subtests signal errors if something goes wrong." (with-temp-buffer (dolist (form forms) (print form (current-buffer))) - (write-region (point-min) (point-max) elfile)) + (write-region (point-min) (point-max) elfile nil 'silent)) (if compile (let ((byte-compile-dest-file-function (lambda (e) elcfile))) (byte-compile-file elfile t)) - (load elfile))) + (load elfile nil 'nomessage))) (when elfile (delete-file elfile)) (when elcfile (delete-file elcfile))))) (put 'test-byte-comp-compile-and-load 'lisp-indent-function 1) @@ -360,6 +360,28 @@ Subtests signal errors if something goes wrong." (defun def () (m)))) (should (equal (funcall 'def) 4))) +(ert-deftest bytecomp-tests--warnings () + (with-current-buffer (get-buffer-create "*Compile-Log*") + (let ((inhibit-read-only t)) (erase-buffer))) + (test-byte-comp-compile-and-load t + '(progn + (defun my-test0 () + (my--test11 3) + (my--test12 3) + (my--test2 5)) + (defmacro my--test11 (arg) (+ arg 1)) + (eval-and-compile + (defmacro my--test12 (arg) (+ arg 1)) + (defun my--test2 (arg) (+ arg 1))))) + (with-current-buffer (get-buffer-create "*Compile-Log*") + (goto-char (point-min)) + ;; Should warn that mt--test1[12] are first used as functions. + (should (re-search-forward "my--test11:\n.*macro" nil t)) + (should (re-search-forward "my--test12:\n.*macro" nil t)) + (goto-char (point-min)) + ;; Should not warn that mt--test2 is not known to be defined. + (should-not (re-search-forward "my--test2" nil t)))) + (ert-deftest test-eager-load-macro-expansion () (test-byte-comp-compile-and-load nil '(progn (defmacro abc (arg) 1) (defun def () (abc 2)))) diff --git a/test/automated/cl-lib.el b/test/automated/cl-lib-tests.el similarity index 91% rename from test/automated/cl-lib.el rename to test/automated/cl-lib-tests.el index 6bbd9a5e81d..e4c6e914ee2 100644 --- a/test/automated/cl-lib.el +++ b/test/automated/cl-lib-tests.el @@ -223,6 +223,25 @@ (should (= (cl-the integer (cl-incf side-effect)) 1)) (should (= side-effect 1)))) +(ert-deftest cl-digit-char-p () + (should (cl-digit-char-p ?3)) + (should (cl-digit-char-p ?a 11)) + (should-not (cl-digit-char-p ?a)) + (should (cl-digit-char-p ?w 36)) + (should-error (cl-digit-char-p ?a 37)) + (should-error (cl-digit-char-p ?a 1))) + +(ert-deftest cl-parse-integer () + (should-error (cl-parse-integer "abc")) + (should (null (cl-parse-integer "abc" :junk-allowed t))) + (should (null (cl-parse-integer "" :junk-allowed t))) + (should (= 342391 (cl-parse-integer "0123456789" :radix 8 :junk-allowed t))) + (should-error (cl-parse-integer "0123456789" :radix 8)) + (should (= -239 (cl-parse-integer "-efz" :radix 16 :junk-allowed t))) + (should-error (cl-parse-integer "efz" :radix 16)) + (should (= 239 (cl-parse-integer "zzef" :radix 16 :start 2))) + (should (= -123 (cl-parse-integer " -123 ")))) + (ert-deftest cl-loop-destructuring-with () (should (equal (cl-loop with (a b c) = '(1 2 3) return (+ a b c)) 6))) diff --git a/test/automated/compile-tests.el b/test/automated/compile-tests.el index 6c169eeab64..e231331c5a0 100644 --- a/test/automated/compile-tests.el +++ b/test/automated/compile-tests.el @@ -190,6 +190,10 @@ 1 nil 54 "G:/cygwin/dev/build-myproj.xml") ("{standard input}:27041: Warning: end of file not at end of a line; newline inserted" 1 nil 27041 "{standard input}") + ;; Guile + ("In foo.scm:\n" 1 nil nil "foo.scm") + (" 63:4 [call-with-prompt prompt0 ...]" 1 4 63 nil) + ("1038: 1 [main (\"gud-break.scm\")]" 1 1 1038 nil) ;; lcc ("E, file.cc(35,52) Illegal operation on pointers" 1 52 35 "file.cc") ("W, file.cc(36,52) blah blah" 1 52 36 "file.cc") @@ -338,7 +342,8 @@ END-LINE, if that matched.") (setq end-line (cdr line) line (car line))) (and (equal (compilation--loc->col loc) col) (equal (compilation--loc->line loc) line) - (equal (caar (compilation--loc->file-struct loc)) file) + (or (not file) + (equal (caar (compilation--loc->file-struct loc)) file)) (or (null end-col) (equal (car (cadr (nth 2 (compilation--loc->file-struct loc)))) end-col)) diff --git a/test/automated/data/files-bug18141.el.gz b/test/automated/data/files-bug18141.el.gz new file mode 100644 index 00000000000..53d463e85b5 Binary files /dev/null and b/test/automated/data/files-bug18141.el.gz differ diff --git a/test/automated/data/flymake/Makefile b/test/automated/data/flymake/Makefile new file mode 100644 index 00000000000..0f3f39791c8 --- /dev/null +++ b/test/automated/data/flymake/Makefile @@ -0,0 +1,13 @@ +# Makefile for flymake tests + +CC_OPTS = -Wall + +## Recent gcc (e.g. 4.8.2 on RHEL7) can automatically colorize their output, +## which can confuse flymake. Set GCC_COLORS to disable that. +## This only seems to be an issue in batch mode, where you would not +## normally use flymake, so it seems like just avoiding the issue +## in this test is fine. Set flymake-log-level to 3 to investigate. +check-syntax: + GCC_COLORS= $(CC) $(CC_OPTS) ${CHK_SOURCES} + +# eof diff --git a/test/automated/flymake/warnpred/test.c b/test/automated/data/flymake/test.c similarity index 100% rename from test/automated/flymake/warnpred/test.c rename to test/automated/data/flymake/test.c diff --git a/test/automated/flymake/warnpred/test.pl b/test/automated/data/flymake/test.pl similarity index 100% rename from test/automated/flymake/warnpred/test.pl rename to test/automated/data/flymake/test.pl diff --git a/test/automated/files.el b/test/automated/files.el index 44816bc33f5..8db06f7dfe3 100644 --- a/test/automated/files.el +++ b/test/automated/files.el @@ -148,6 +148,24 @@ form.") (should (file-test--do-local-variables-test str subtest)))))) (ad-disable-advice 'hack-local-variables-confirm 'around 'files-test))) +(defvar files-test-bug-18141-file + (expand-file-name "data/files-bug18141.el.gz" (getenv "EMACS_TEST_DIRECTORY")) + "Test file for bug#18141.") + +(ert-deftest files-test-bug-18141 () + "Test for http://debbugs.gnu.org/18141 ." + (skip-unless (executable-find "gzip")) + (let ((tempfile (make-temp-file "files-test-bug-18141" nil ".gz"))) + (unwind-protect + (progn + (copy-file files-test-bug-18141-file tempfile t) + (with-current-buffer (find-file-noselect tempfile) + (set-buffer-modified-p t) + (save-buffer) + (should (eq buffer-file-coding-system 'iso-2022-7bit-unix)))) + (delete-file tempfile)))) + + ;; Stop the above "Local Var..." confusing Emacs. diff --git a/test/automated/flymake-tests.el b/test/automated/flymake-tests.el index e5f444e262b..2a18a5e30fb 100644 --- a/test/automated/flymake-tests.el +++ b/test/automated/flymake-tests.el @@ -26,7 +26,7 @@ (require 'flymake) (defvar flymake-tests-data-directory - (expand-file-name "flymake/warnpred" (getenv "EMACS_TEST_DIRECTORY")) + (expand-file-name "data/flymake" (getenv "EMACS_TEST_DIRECTORY")) "Directory containing flymake test data.") diff --git a/test/automated/flymake/warnpred/Makefile b/test/automated/flymake/warnpred/Makefile deleted file mode 100644 index 33af51c3337..00000000000 --- a/test/automated/flymake/warnpred/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# Makefile for flymake tests - -CC_OPTS = -Wall - -check-syntax: - $(CC) $(CC_OPTS) ${CHK_SOURCES} - -# eof diff --git a/test/automated/fns-tests.el b/test/automated/fns-tests.el index 461995b602e..56d7ecee49e 100644 --- a/test/automated/fns-tests.el +++ b/test/automated/fns-tests.el @@ -73,18 +73,18 @@ (ert-deftest fns-tests-compare-strings () (should-error (compare-strings)) (should-error (compare-strings "xyzzy" "xyzzy")) - (should-error (compare-strings "xyzzy" 0 10 "zyxxy" 0 5)) + (should (= (compare-strings "xyzzy" 0 10 "zyxxy" 0 5) -1)) (should-error (compare-strings "xyzzy" 0 5 "zyxxy" -1 2)) (should-error (compare-strings "xyzzy" 'foo nil "zyxxy" 0 1)) (should-error (compare-strings "xyzzy" 0 'foo "zyxxy" 2 3)) (should-error (compare-strings "xyzzy" 0 2 "zyxxy" 'foo 3)) (should-error (compare-strings "xyzzy" nil 3 "zyxxy" 4 'foo)) - (should (compare-strings "" nil nil "" nil nil)) - (should (compare-strings "" 0 0 "" 0 0)) - (should (compare-strings "test" nil nil "test" nil nil)) - (should (compare-strings "test" nil nil "test" nil nil t)) - (should (compare-strings "test" nil nil "test" nil nil nil)) - (should (compare-strings "Test" nil nil "test" nil nil t)) + (should (eq (compare-strings "" nil nil "" nil nil) t)) + (should (eq (compare-strings "" 0 0 "" 0 0) t)) + (should (eq (compare-strings "test" nil nil "test" nil nil) t)) + (should (eq (compare-strings "test" nil nil "test" nil nil t) t)) + (should (eq (compare-strings "test" nil nil "test" nil nil nil) t)) + (should (eq (compare-strings "Test" nil nil "test" nil nil t) t)) (should (= (compare-strings "Test" nil nil "test" nil nil) -1)) (should (= (compare-strings "Test" nil nil "test" nil nil) -1)) (should (= (compare-strings "test" nil nil "Test" nil nil) 1)) @@ -92,11 +92,100 @@ (should (= (compare-strings "barbaz" nil nil "foobar" nil nil) -1)) (should (= (compare-strings "foobaz" nil nil "farbaz" nil nil) 2)) (should (= (compare-strings "farbaz" nil nil "foobar" nil nil) -2)) - (should (compare-strings "abcxyz" 0 2 "abcprq" 0 2)) - (should (compare-strings "abcxyz" 0 -3 "abcprq" 0 -3)) + (should (eq (compare-strings "abcxyz" 0 2 "abcprq" 0 2) t)) + (should (eq (compare-strings "abcxyz" 0 -3 "abcprq" 0 -3) t)) (should (= (compare-strings "abcxyz" 0 6 "abcprq" 0 6) 4)) (should (= (compare-strings "abcprq" 0 6 "abcxyz" 0 6) -4)) - (should (compare-strings "xyzzy" -3 4 "azza" -3 3)) - (should (compare-strings "こんにちはコンニチハ" nil nil "こんにちはコンニチハ" nil nil)) + (should (eq (compare-strings "xyzzy" -3 4 "azza" -3 3) t)) + (should (eq (compare-strings "こんにちはコンニチハ" nil nil "こんにちはコンニチハ" nil nil) t)) (should (= (compare-strings "んにちはコンニチハこ" nil nil "こんにちはコンニチハ" nil nil) 1)) (should (= (compare-strings "こんにちはコンニチハ" nil nil "んにちはコンニチハこ" nil nil) -1))) + +(defun fns-tests--collate-enabled-p () + "Check whether collation functions are enabled." + (and + ;; When there is no collation library, collation functions fall back + ;; to their lexicographic counterparts. We don't need to test then. + (not (ignore-errors (string-collate-equalp "" "" t))) + ;; We use a locale, which might not be installed. Check it. + (ignore-errors + (string-collate-equalp + "" "" (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8"))))) + +(ert-deftest fns-tests-collate-strings () + (skip-unless (fns-tests--collate-enabled-p)) + + (should (string-collate-equalp "xyzzy" "xyzzy")) + (should-not (string-collate-equalp "xyzzy" "XYZZY")) + + ;; In POSIX or C locales, collation order is lexicographic. + (should (string-collate-lessp "XYZZY" "xyzzy" "POSIX")) + ;; In a language specific locale, collation order is different. + (should (string-collate-lessp + "xyzzy" "XYZZY" + (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8"))) + + ;; Ignore case. + (should (string-collate-equalp "xyzzy" "XYZZY" nil t)) + + ;; Locale must be valid. + (should-error (string-collate-equalp "xyzzy" "xyzzy" "en_DE.UTF-8"))) + +;; There must be a check for valid codepoints. (Check not implemented yet) +; (should-error +; (string-collate-equalp (string ?\x00110000) (string ?\x00110000))) +;; Invalid UTF-8 sequences shall be indicated. How to create such strings? + +(ert-deftest fns-tests-sort () + (should (equal (sort '(9 5 2 -1 5 3 8 7 4) (lambda (x y) (< x y))) + '(-1 2 3 4 5 5 7 8 9))) + (should (equal (sort '(9 5 2 -1 5 3 8 7 4) (lambda (x y) (> x y))) + '(9 8 7 5 5 4 3 2 -1))) + (should (equal (sort '[9 5 2 -1 5 3 8 7 4] (lambda (x y) (< x y))) + [-1 2 3 4 5 5 7 8 9])) + (should (equal (sort '[9 5 2 -1 5 3 8 7 4] (lambda (x y) (> x y))) + [9 8 7 5 5 4 3 2 -1])) + (should (equal + (sort + (vector + '(8 . "xxx") '(9 . "aaa") '(8 . "bbb") '(9 . "zzz") + '(9 . "ppp") '(8 . "ttt") '(8 . "eee") '(9 . "fff")) + (lambda (x y) (< (car x) (car y)))) + [(8 . "xxx") (8 . "bbb") (8 . "ttt") (8 . "eee") + (9 . "aaa") (9 . "zzz") (9 . "ppp") (9 . "fff")]))) + +(ert-deftest fns-tests-collate-sort () + (skip-unless (fns-tests--collate-enabled-p)) + + ;; Punctuation and whitespace characters are relevant for POSIX. + (should + (equal + (sort '("11" "12" "1 1" "1 2" "1.1" "1.2") + (lambda (a b) (string-collate-lessp a b "POSIX"))) + '("1 1" "1 2" "1.1" "1.2" "11" "12"))) + ;; Punctuation and whitespace characters are not taken into account + ;; for collation in other locales. + (should + (equal + (sort '("11" "12" "1 1" "1 2" "1.1" "1.2") + (lambda (a b) + (let ((w32-collate-ignore-punctuation t)) + (string-collate-lessp + a b (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8"))))) + '("11" "1 1" "1.1" "12" "1 2" "1.2"))) + + ;; Diacritics are different letters for POSIX, they sort lexicographical. + (should + (equal + (sort '("Ævar" "Agustín" "Adrian" "Eli") + (lambda (a b) (string-collate-lessp a b "POSIX"))) + '("Adrian" "Agustín" "Eli" "Ævar"))) + ;; Diacritics are sorted between similar letters for other locales. + (should + (equal + (sort '("Ævar" "Agustín" "Adrian" "Eli") + (lambda (a b) + (let ((w32-collate-ignore-punctuation t)) + (string-collate-lessp + a b (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8"))))) + '("Adrian" "Ævar" "Agustín" "Eli")))) diff --git a/test/automated/icalendar-tests.el b/test/automated/icalendar-tests.el index 2ffa3911ee3..54546722c8c 100644 --- a/test/automated/icalendar-tests.el +++ b/test/automated/icalendar-tests.el @@ -80,31 +80,19 @@ (should (string= (concat "yyyDTSTARTyyy") (icalendar--create-uid entry-full contents))))) -(ert-deftest icalendar--calendar-style () - "Test for `icalendar--date-style'." - (dolist (calendar-date-style '(iso american european)) - (should (eq (icalendar--date-style) calendar-date-style))) - (let ((cds calendar-date-style) - (european-calendar-style t)) - (makunbound 'calendar-date-style) - (should (eq (icalendar--date-style) 'european)) - (with-no-warnings (setq european-calendar-style nil)) ;still get warning!?! FIXME - (should (eq (icalendar--date-style) 'american)) - (setq calendar-date-style cds))) - (ert-deftest icalendar-convert-anniversary-to-ical () "Test method for `icalendar--convert-anniversary-to-ical'." (let* ((calendar-date-style 'iso) result) (setq result (icalendar--convert-anniversary-to-ical "" "%%(diary-anniversary 1964 6 30) g")) - (should (= 2 (length result))) + (should (consp result)) (should (string= (concat "\nDTSTART;VALUE=DATE:19640630" "\nDTEND;VALUE=DATE:19640701" "\nRRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=06;BYMONTHDAY=30") (car result))) - (should (string= "g" (cadr result))))) + (should (string= "g" (cdr result))))) (ert-deftest icalendar--convert-cyclic-to-ical () "Test method for `icalendar--convert-cyclic-to-ical'." @@ -112,12 +100,12 @@ result) (setq result (icalendar--convert-block-to-ical "" "%%(diary-block 2004 7 19 2004 8 27) Sommerferien")) - (should (= 2 (length result))) + (should (consp result)) (should (string= (concat "\nDTSTART;VALUE=DATE:20040719" "\nDTEND;VALUE=DATE:20040828") (car result))) - (should (string= "Sommerferien" (cadr result))))) + (should (string= "Sommerferien" (cdr result))))) (ert-deftest icalendar--convert-block-to-ical () "Test method for `icalendar--convert-block-to-ical'." @@ -125,12 +113,12 @@ result) (setq result (icalendar--convert-block-to-ical "" "%%(diary-block 2004 7 19 2004 8 27) Sommerferien")) - (should (= 2 (length result))) + (should (consp result)) (should (string= (concat "\nDTSTART;VALUE=DATE:20040719" "\nDTEND;VALUE=DATE:20040828") (car result))) - (should (string= "Sommerferien" (cadr result))))) + (should (string= "Sommerferien" (cdr result))))) (ert-deftest icalendar--convert-yearly-to-ical () "Test method for `icalendar--convert-yearly-to-ical'." @@ -140,13 +128,13 @@ ["January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December"])) (setq result (icalendar--convert-yearly-to-ical "" "May 1 Tag der Arbeit")) - (should (= 2 (length result))) + (should (consp result)) (should (string= (concat "\nDTSTART;VALUE=DATE:19000501" "\nDTEND;VALUE=DATE:19000502" "\nRRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYMONTHDAY=1") (car result))) - (should (string= "Tag der Arbeit" (cadr result))))) + (should (string= "Tag der Arbeit" (cdr result))))) (ert-deftest icalendar--convert-weekly-to-ical () "Test method for `icalendar--convert-weekly-to-ical'." @@ -156,12 +144,49 @@ ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"])) (setq result (icalendar--convert-weekly-to-ical "" "Monday 8:30 subject")) - (should (= 2 (length result))) + (should (consp result)) (should (string= (concat "\nDTSTART;VALUE=DATE-TIME:20050103T083000" "\nDTEND;VALUE=DATE-TIME:20050103T093000" "\nRRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO") (car result))) - (should (string= "subject" (cadr result))))) + (should (string= "subject" (cdr result))))) + +(ert-deftest icalendar--convert-sexp-to-ical () + "Test method for `icalendar--convert-sexp-to-ical'." + (let* (result + (icalendar-export-sexp-enumeration-days 3)) + ;; test case %%(diary-hebrew-date) + (setq result (icalendar--convert-sexp-to-ical "" "%%(diary-hebrew-date)")) + (should (consp result)) + (should (eq icalendar-export-sexp-enumeration-days (length result))) + (mapc (lambda (i) + (should (consp i)) + (should (string-match "Hebrew date (until sunset): .*" (cdr i)))) + result))) + +(ert-deftest icalendar--convert-to-ical () + "Test method for `icalendar--convert-to-ical'." + (let* (result + (icalendar-export-sexp-enumerate-all t) + (icalendar-export-sexp-enumeration-days 3) + (calendar-date-style 'iso)) + ;; test case: %%(diary-anniversary 1642 12 25) Newton + ;; forced enumeration not matching the actual day --> empty + (setq result (icalendar--convert-sexp-to-ical + "" "%%(diary-anniversary 1642 12 25) Newton's birthday" + (encode-time 1 1 1 6 12 2014))) + (should (null result)) + ;; test case: %%(diary-anniversary 1642 12 25) Newton + ;; enumeration does match the actual day --> + (setq result (icalendar--convert-sexp-to-ical + "" "%%(diary-anniversary 1642 12 25) Newton's birthday" + (encode-time 1 1 1 24 12 2014))) + (should (= 1 (length result))) + (should (consp (car result))) + (should (string-match + "\nDTSTART;VALUE=DATE:20141225\nDTEND;VALUE=DATE:20141226" + (car (car result)))) + (should (string-match "Newton's birthday" (cdr (car result)))))) (ert-deftest icalendar--parse-vtimezone () "Test method for `icalendar--parse-vtimezone'." @@ -207,6 +232,27 @@ END:VTIMEZONE (should (string= "anothername, with a comma" (car result))) (message (cdr result)) (should (string= "STD-02:00DST-03:00,M3.2.1/03:00:00,M10.2.1/04:00:00" + (cdr result))) + ;; offsetfrom = offsetto + (setq vtimezone (icalendar-tests--get-ical-event "BEGIN:VTIMEZONE +TZID:Kolkata\, Chennai\, Mumbai\, New Delhi +X-MICROSOFT-CDO-TZID:23 +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:DAYLIGHT +END:VTIMEZONE +")) + (setq result (icalendar--parse-vtimezone vtimezone)) + (should (string= "Kolkata, Chennai, Mumbai, New Delhi" (car result))) + (message (cdr result)) + (should (string= "STD-05:30DST-05:30,M1.1.1/00:00:00,M1.1.1/00:00:00" (cdr result))))) (ert-deftest icalendar--convert-ordinary-to-ical () @@ -215,28 +261,37 @@ END:VTIMEZONE result) ;; without time (setq result (icalendar--convert-ordinary-to-ical "&?" "2010 2 15 subject")) - (should (= 2 (length result))) + (should (consp result)) (should (string= "\nDTSTART;VALUE=DATE:20100215\nDTEND;VALUE=DATE:20100216" (car result))) - (should (string= "subject" (cadr result))) + (should (string= "subject" (cdr result))) + + ;; with start time + (setq result (icalendar--convert-ordinary-to-ical + "&?" "&2010 2 15 12:34 s")) + (should (consp result)) + (should (string= (concat "\nDTSTART;VALUE=DATE-TIME:20100215T123400" + "\nDTEND;VALUE=DATE-TIME:20100215T133400") + (car result))) + (should (string= "s" (cdr result))) ;; with time (setq result (icalendar--convert-ordinary-to-ical "&?" "&2010 2 15 12:34-23:45 s")) - (should (= 2 (length result))) + (should (consp result)) (should (string= (concat "\nDTSTART;VALUE=DATE-TIME:20100215T123400" "\nDTEND;VALUE=DATE-TIME:20100215T234500") (car result))) - (should (string= "s" (cadr result))) + (should (string= "s" (cdr result))) ;; with time, again -- test bug#5549 (setq result (icalendar--convert-ordinary-to-ical "x?" "x2010 2 15 0:34-1:45 s")) - (should (= 2 (length result))) + (should (consp result)) (should (string= (concat "\nDTSTART;VALUE=DATE-TIME:20100215T003400" "\nDTEND;VALUE=DATE-TIME:20100215T014500") (car result))) - (should (string= "s" (cadr result))))) + (should (string= "s" (cdr result))))) (ert-deftest icalendar--diarytime-to-isotime () "Test method for `icalendar--diarytime-to-isotime'." @@ -267,7 +322,9 @@ END:VTIMEZONE (should (string= "T120100" (icalendar--diarytime-to-isotime "1201" "pm"))) (should (string= "T125900" - (icalendar--diarytime-to-isotime "1259" "pm")))) + (icalendar--diarytime-to-isotime "1259" "pm"))) + (should (string= "T150000" + (icalendar--diarytime-to-isotime "3" "pm")))) (ert-deftest icalendar--datetime-to-diary-date () "Test method for `icalendar--datetime-to-diary-date'." @@ -420,8 +477,8 @@ END:VEVENT result) (unwind-protect (progn - ;; Use Eastern European Time (UTC+1, UTC+2 daylight saving) - (setenv "TZ" "EET") + ;; Use Eastern European Time (UTC+2, UTC+3 daylight saving) + (setenv "TZ" "EET-2EEST,M3.5.0/3,M10.5.0/4") (message "%s" (current-time-zone (encode-time 0 0 10 1 1 2013 0))) (message "%s" (current-time-zone (encode-time 0 0 10 1 8 2013 0))) @@ -451,18 +508,20 @@ END:VEVENT ;; ====================================================================== (defun icalendar-tests--test-export (input-iso input-european input-american - expected-output) + expected-output &optional alarms) "Perform an export test. Argument INPUT-ISO iso style diary string. Argument INPUT-EUROPEAN european style diary string. Argument INPUT-AMERICAN american style diary string. Argument EXPECTED-OUTPUT expected iCalendar result string. +Optional argument ALARMS the value of `icalendar-export-alarms' for this test. European style input data must use german month names. American and ISO style input data must use english month names." (let ((tz (getenv "TZ")) (calendar-date-style 'iso) - (icalendar-recurring-start-year 2000)) + (icalendar-recurring-start-year 2000) + (icalendar-export-alarms alarms)) (unwind-protect (progn ;;; (message "Current time zone: %s" (current-time-zone)) @@ -696,6 +755,97 @@ RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20010706 SUMMARY:block no end time ")) +(ert-deftest icalendar-export-alarms () + "Perform export test with different settings for exporting alarms." + ;; no alarm + (icalendar-tests--test-export + "2014 Nov 17 19:30 no alarm" + "17 Nov 2014 19:30 no alarm" + "Nov 17 2014 19:30 no alarm" + "DTSTART;VALUE=DATE-TIME:20141117T193000 +DTEND;VALUE=DATE-TIME:20141117T203000 +SUMMARY:no alarm +" + nil) + + ;; 10 minutes in advance, audio + (icalendar-tests--test-export + "2014 Nov 17 19:30 audio alarm" + "17 Nov 2014 19:30 audio alarm" + "Nov 17 2014 19:30 audio alarm" + "DTSTART;VALUE=DATE-TIME:20141117T193000 +DTEND;VALUE=DATE-TIME:20141117T203000 +SUMMARY:audio alarm +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT10M +END:VALARM +" + '(10 ((audio)))) + + ;; 20 minutes in advance, display + (icalendar-tests--test-export + "2014 Nov 17 19:30 display alarm" + "17 Nov 2014 19:30 display alarm" + "Nov 17 2014 19:30 display alarm" + "DTSTART;VALUE=DATE-TIME:20141117T193000 +DTEND;VALUE=DATE-TIME:20141117T203000 +SUMMARY:display alarm +BEGIN:VALARM +ACTION:DISPLAY +TRIGGER:-PT20M +DESCRIPTION:display alarm +END:VALARM +" + '(20 ((display)))) + + ;; 66 minutes in advance, email + (icalendar-tests--test-export + "2014 Nov 17 19:30 email alarm" + "17 Nov 2014 19:30 email alarm" + "Nov 17 2014 19:30 email alarm" + "DTSTART;VALUE=DATE-TIME:20141117T193000 +DTEND;VALUE=DATE-TIME:20141117T203000 +SUMMARY:email alarm +BEGIN:VALARM +ACTION:EMAIL +TRIGGER:-PT66M +DESCRIPTION:email alarm +SUMMARY:email alarm +ATTENDEE:MAILTO:att.one@email.com +ATTENDEE:MAILTO:att.two@email.com +END:VALARM +" + '(66 ((email ("att.one@email.com" "att.two@email.com"))))) + + ;; 2 minutes in advance, all alarms + (icalendar-tests--test-export + "2014 Nov 17 19:30 all alarms" + "17 Nov 2014 19:30 all alarms" + "Nov 17 2014 19:30 all alarms" + "DTSTART;VALUE=DATE-TIME:20141117T193000 +DTEND;VALUE=DATE-TIME:20141117T203000 +SUMMARY:all alarms +BEGIN:VALARM +ACTION:EMAIL +TRIGGER:-PT2M +DESCRIPTION:all alarms +SUMMARY:all alarms +ATTENDEE:MAILTO:att.one@email.com +ATTENDEE:MAILTO:att.two@email.com +END:VALARM +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT2M +END:VALARM +BEGIN:VALARM +ACTION:DISPLAY +TRIGGER:-PT2M +DESCRIPTION:all alarms +END:VALARM +" + '(2 ((email ("att.one@email.com" "att.two@email.com")) (audio) (display))))) + ;; ====================================================================== ;; Import tests ;; ====================================================================== @@ -706,15 +856,14 @@ SUMMARY:block no end time Argument INPUT icalendar event string. Argument EXPECTED-ISO expected iso style diary string. Argument EXPECTED-EUROPEAN expected european style diary string. -Argument EXPECTED-AMERICAN expected american style diary string." +Argument EXPECTED-AMERICAN expected american style diary string. +During import test the timezone is set to Central European Time." (let ((timezone (getenv "TZ"))) (unwind-protect (progn -;;; (message "Current time zone: %s" (current-time-zone)) ;; Use this form so as not to rely on system tz database. ;; Eg hydra.nixos.org. (setenv "TZ" "CET-1CEST,M3.5.0/2,M10.5.0/3") -;;; (message "Current time zone: %s" (current-time-zone)) (with-temp-buffer (if (string-match "^BEGIN:VCALENDAR" input) (insert input) @@ -1229,7 +1378,8 @@ Argument INPUT icalendar event string." (icalendar-import-format-status "\n Status: %s") (icalendar-import-format-url "\n URL: %s") (icalendar-import-format-class "\n Class: %s") - (icalendar-import-format-class "\n UID: %s")) + (icalendar-import-format-class "\n UID: %s") + (icalendar-export-alarms nil)) (dolist (calendar-date-style '(iso european american)) (icalendar-tests--do-test-cycle))))) @@ -1353,14 +1503,14 @@ END:VALARM END:VEVENT END:VCALENDAR" nil - "&9/5/2003 10:30-15:30 On-Site Interview + "&9/5/2003 07:00-12:00 On-Site Interview Desc: 10:30am - Blah Location: Cccc Organizer: MAILTO:aaaaaaa@aaaaaaa.com Status: CONFIRMED UID: 040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000010000000DB823520692542408ED02D7023F9DFF9 " - "&5/9/2003 10:30-15:30 On-Site Interview + "&5/9/2003 07:00-12:00 On-Site Interview Desc: 10:30am - Blah Location: Cccc Organizer: MAILTO:aaaaaaa@aaaaaaa.com @@ -1368,6 +1518,47 @@ END:VCALENDAR" UID: 040000008200E00074C5B7101A82E0080000000080B6DE661216C301000000000000000010000000DB823520692542408ED02D7023F9DFF9 ") + ;; created with http://apps.marudot.com/ical/ + (icalendar-tests--test-import + "BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//www.marudot.com//iCal Event Maker +X-WR-CALNAME:Test +CALSCALE:GREGORIAN +BEGIN:VTIMEZONE +TZID:Asia/Tehran +TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Tehran +X-LIC-LOCATION:Asia/Tehran +BEGIN:STANDARD +TZOFFSETFROM:+0330 +TZOFFSETTO:+0330 +TZNAME:IRST +DTSTART:19700101T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +DTSTAMP:20141116T171439Z +UID:20141116T171439Z-678877132@marudot.com +DTSTART;TZID=\"Asia/Tehran\":20141116T070000 +DTEND;TZID=\"Asia/Tehran\":20141116T080000 +SUMMARY:NoDST +DESCRIPTION:Test event from timezone without DST +LOCATION:Everywhere +END:VEVENT +END:VCALENDAR" + nil + "&16/11/2014 04:30-05:30 NoDST + Desc: Test event from timezone without DST + Location: Everywhere + UID: 20141116T171439Z-678877132@marudot.com +" + "&11/16/2014 04:30-05:30 NoDST + Desc: Test event from timezone without DST + Location: Everywhere + UID: 20141116T171439Z-678877132@marudot.com +") + + ;; 2003-06-18 a (icalendar-tests--test-import "DTSTAMP:20030618T195512Z diff --git a/test/automated/let-alist.el b/test/automated/let-alist.el new file mode 100644 index 00000000000..c43e6a07ddc --- /dev/null +++ b/test/automated/let-alist.el @@ -0,0 +1,77 @@ +;;; let-alist.el --- tests for file handling. -*- lexical-binding: t; -*- + +;; Copyright (C) 2012-2014 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Code: + +(require 'ert) +(require 'cl-lib) + +(ert-deftest let-alist-surface-test () + "Tests basic macro expansion for `let-alist'." + (should + (equal '(let ((symbol data)) + (let ((.test-one (cdr (assq 'test-one symbol))) + (.test-two (cdr (assq 'test-two symbol)))) + (list .test-one .test-two + .test-two .test-two))) + (cl-letf (((symbol-function #'make-symbol) (lambda (x) 'symbol))) + (macroexpand + '(let-alist data (list .test-one .test-two + .test-two .test-two)))))) + (should + (equal + (let ((.external "ext") + (.external.too "et")) + (let-alist '((test-two . 0) + (test-three . 1) + (sublist . ((foo . 2) + (bar . 3)))) + (list .test-one .test-two .test-three + .sublist.foo .sublist.bar + ..external ..external.too))) + (list nil 0 1 2 3 "ext" "et")))) + +(defvar let-alist--test-counter 0 + "Used to count number of times a function is called.") + +(ert-deftest let-alist-evaluate-once () + "Check that the alist argument is only evaluated once." + (let ((let-alist--test-counter 0)) + (should + (equal + (let-alist (list + (cons 'test-two (cl-incf let-alist--test-counter)) + (cons 'test-three (cl-incf let-alist--test-counter))) + (list .test-one .test-two .test-two .test-three .cl-incf)) + '(nil 1 1 2 nil))))) + +(ert-deftest let-alist-remove-dot () + "Remove firt dot from symbol." + (should (equal (let-alist--remove-dot 'hi) 'hi)) + (should (equal (let-alist--remove-dot '.hi) 'hi)) + (should (equal (let-alist--remove-dot '..hi) '.hi))) + +(ert-deftest let-alist-list-to-sexp () + "Check that multiple dots are handled correctly." + (should (= 1 (eval (let-alist--list-to-sexp '(a b c d) ''((d (c (b (a . 1))))))))) + (should (equal (let-alist--access-sexp '.foo.bar.baz 'var) + '(cdr (assq 'baz (cdr (assq 'bar (cdr (assq 'foo var)))))))) + (should (equal (let-alist--access-sexp '..foo.bar.baz 'var) '.foo.bar.baz))) + +;;; let-alist.el ends here diff --git a/test/automated/libxml-tests.el b/test/automated/libxml-tests.el new file mode 100644 index 00000000000..6b6d0170562 --- /dev/null +++ b/test/automated/libxml-tests.el @@ -0,0 +1,74 @@ +;;; libxml-parse-tests.el --- Test suite for libxml parsing. + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Ulf Jasper +;; Keywords: internal +;; Human-Keywords: internal + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'ert) + +(defvar libxml-tests--data-comments-preserved + `(;; simple case + ("bar" + . (foo ((baz . "true")) "bar")) + ;; toplevel comments -- first document child must not get lost + (,(concat "bar" + "") + . (top nil (foo nil "bar") (comment nil "comment-1") + (comment nil "comment-2"))) + (,(concat "" + "blub") + . (top nil (comment nil "comment-a") (foo ((a . "b")) (bar nil "blub")) + (comment nil "comment-b") (comment nil "comment-c")))) + "Alist of XML strings and their expected parse trees for preserved comments.") + +(defvar libxml-tests--data-comments-discarded + `(;; simple case + ("bar" + . (foo ((baz . "true")) "bar")) + ;; toplevel comments -- first document child must not get lost + (,(concat "bar" + "") + . (foo nil "bar")) + (,(concat "" + "blub") + . (foo ((a . "b")) (bar nil "blub")))) + "Alist of XML strings and their expected parse trees for discarded comments.") + + +(ert-deftest libxml-tests () + "Test libxml." + (when (fboundp 'libxml-parse-xml-region) + (with-temp-buffer + (dolist (test libxml-tests--data-comments-preserved) + (erase-buffer) + (insert (car test)) + (should (equal (cdr test) + (libxml-parse-xml-region (point-min) (point-max))))) + (dolist (test libxml-tests--data-comments-discarded) + (erase-buffer) + (insert (car test)) + (should (equal (cdr test) + (libxml-parse-xml-region (point-min) (point-max) nil t))))))) + +;;; libxml-tests.el ends here diff --git a/test/automated/newsticker-tests.el b/test/automated/newsticker-tests.el index 2dbb850c407..5f9ec049246 100644 --- a/test/automated/newsticker-tests.el +++ b/test/automated/newsticker-tests.el @@ -143,6 +143,26 @@ Signals an error if something goes wrong." (should (equal '("Feeds" "feed3" "feed2" "feed1") newsticker-groups)))) +(ert-deftest newsticker--group-find-parent-group () + "Test `newsticker--group-find-parent-group'." + (let ((newsticker-groups '("g1" "f1a" ("g2" "f2" ("g3" "f3a" "f3b")) "f1b"))) + ;; feeds + (should (equal "g1" (car (newsticker--group-find-parent-group "f1a")))) + (should (equal "g1" (car (newsticker--group-find-parent-group "f1b")))) + (should (equal "g2" (car (newsticker--group-find-parent-group "f2")))) + (should (equal "g3" (car (newsticker--group-find-parent-group "f3b")))) + ;; groups + (should (equal "g1" (car (newsticker--group-find-parent-group "g2")))) + (should (equal "g2" (car (newsticker--group-find-parent-group "g3")))))) + +(ert-deftest newsticker--group-do-rename-group () + "Test `newsticker--group-do-rename-group'." + (let ((newsticker-groups '("g1" "f1a" ("g2" "f2" ("g3" "f3a" "f3b")) "f1b"))) + (should (equal '("g1" "f1a" ("h2" "f2" ("g3" "f3a" "f3b")) "f1b") + (newsticker--group-do-rename-group "g2" "h2"))) + )) + + (provide 'newsticker-tests) ;;; newsticker-tests.el ends here diff --git a/test/automated/occur-tests.el b/test/automated/occur-tests.el index b15e3dc9933..5b90dab494c 100644 --- a/test/automated/occur-tests.el +++ b/test/automated/occur-tests.el @@ -52,7 +52,7 @@ a a a " "\ -2 matches for \"a^Ja\" in buffer: *test-occur* +2 matches for \"a\na\" in buffer: *test-occur* 1:a :a 3:a @@ -68,7 +68,7 @@ c a b " "\ -2 matches for \"a^Jb\" in buffer: *test-occur* +2 matches for \"a\nb\" in buffer: *test-occur* 1:a :b 4:a @@ -82,7 +82,7 @@ c a " "\ -2 matches for \"a^J\" in buffer: *test-occur* +2 matches for \"a\n\" in buffer: *test-occur* 1:a : 4:a @@ -97,7 +97,7 @@ d ex fx " "\ -2 matches for \"x^J.x^J\" in buffer: *test-occur* +2 matches for \"x\n.x\n\" in buffer: *test-occur* 1:ax :bx :c @@ -232,7 +232,7 @@ i jx kx " "\ -3 matches for \"x^J.x\" in buffer: *test-occur* +3 matches for \"x\n.x\" in buffer: *test-occur* 1:ax :bx :c @@ -256,7 +256,7 @@ f gx hx " "\ -2 matches for \"x^J.x\" in buffer: *test-occur* +2 matches for \"x\n.x\" in buffer: *test-occur* 1:ax :bx :c @@ -321,7 +321,6 @@ Each element has the format: (let ((regexp (nth 0 test)) (nlines (nth 1 test)) (input-buffer-string (nth 2 test)) - (output-buffer-string (nth 3 test)) (temp-buffer (get-buffer-create " *test-occur*"))) (unwind-protect (save-window-excursion @@ -329,9 +328,8 @@ Each element has the format: (erase-buffer) (insert input-buffer-string) (occur regexp nlines) - (equal output-buffer-string - (with-current-buffer "*Occur*" - (buffer-string))))) + (with-current-buffer "*Occur*" + (buffer-substring-no-properties (point-min) (point-max))))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) @@ -343,7 +341,8 @@ Each element has the format: `(ert-deftest ,testname () ,testdoc (let (occur-hook) - (should (occur-test-case (nth ,n occur-tests)))))))) + (should (equal (occur-test-case (nth ,n occur-tests)) + (nth 3 (nth ,n occur-tests))))))))) (dotimes (i (length occur-tests)) (occur-test-create i)) diff --git a/test/automated/package-test.el b/test/automated/package-test.el index b970cd7c9f8..6e7994a5a81 100644 --- a/test/automated/package-test.el +++ b/test/automated/package-test.el @@ -89,6 +89,8 @@ "Set up temporary locations and variables for testing." (declare (indent 1)) `(let* ((package-test-user-dir (make-temp-file "pkg-test-user-dir-" t)) + (process-environment (cons (format "HOME=%s" package-test-user-dir) + process-environment)) (package-user-dir package-test-user-dir) (package-archives `(("gnu" . ,package-test-data-dir))) (old-yes-no-defn (symbol-function 'yes-or-no-p)) @@ -361,11 +363,15 @@ Must called from within a `tar-mode' buffer." (ert-deftest package-test-signed () "Test verifying package signature." - :expected-result (condition-case nil - (progn + (skip-unless (ignore-errors + (let ((homedir (make-temp-file "package-test" t))) + (unwind-protect + (let ((process-environment + (cons (format "HOME=%s" homedir) + process-environment))) (epg-check-configuration (epg-configuration)) - :passed) - (error :failed)) + t) + (delete-directory homedir t))))) (let* ((keyring (expand-file-name "key.pub" package-test-data-dir)) (package-test-data-dir (expand-file-name "data/package/signed" package-test-file-dir))) @@ -390,6 +396,73 @@ Must called from within a `tar-mode' buffer." (expand-file-name "signed-good-1.0" package-user-dir)) nil t)))))) + + +;;; Tests for package-x features. + +(require 'package-x) + +(defvar package-x-test--single-archive-entry-1-3 + (cons 'simple-single + (package-make-ac-desc '(1 3) nil + "A single-file package with no dependencies" + 'single + '((:url . "http://doodles.au")))) + "Expected contents of the archive entry from the \"simple-single\" package.") + +(defvar package-x-test--single-archive-entry-1-4 + (cons 'simple-single + (package-make-ac-desc '(1 4) nil + "A single-file package with no dependencies" + 'single + nil)) + "Expected contents of the archive entry from the updated \"simple-single\" package.") + +(ert-deftest package-x-test-upload-buffer () + "Test creating an \"archive-contents\" file" + (with-package-test (:basedir "data/package" + :file "simple-single-1.3.el" + :upload-base t) + (package-upload-buffer) + (should (file-exists-p (expand-file-name "archive-contents" + package-archive-upload-base))) + (should (file-exists-p (expand-file-name "simple-single-1.3.el" + package-archive-upload-base))) + (should (file-exists-p (expand-file-name "simple-single-readme.txt" + package-archive-upload-base))) + + (let (archive-contents) + (with-temp-buffer + (insert-file-contents + (expand-file-name "archive-contents" + package-archive-upload-base)) + (setq archive-contents + (package-read-from-string + (buffer-substring (point-min) (point-max))))) + (should (equal archive-contents + (list 1 package-x-test--single-archive-entry-1-3)))))) + +(ert-deftest package-x-test-upload-new-version () + "Test uploading a new version of a package" + (with-package-test (:basedir "data/package" + :file "simple-single-1.3.el" + :upload-base t) + (package-upload-buffer) + (with-temp-buffer + (insert-file-contents "newer-versions/simple-single-1.4.el") + (package-upload-buffer)) + + (let (archive-contents) + (with-temp-buffer + (insert-file-contents + (expand-file-name "archive-contents" + package-archive-upload-base)) + (setq archive-contents + (package-read-from-string + (buffer-substring (point-min) (point-max))))) + (should (equal archive-contents + (list 1 package-x-test--single-archive-entry-1-4)))))) + (provide 'package-test) ;;; package-test.el ends here diff --git a/test/automated/package-x-test.el b/test/automated/package-x-test.el deleted file mode 100644 index d58915e7c7b..00000000000 --- a/test/automated/package-x-test.el +++ /dev/null @@ -1,95 +0,0 @@ -;;; package-test.el --- Tests for the Emacs package system - -;; Copyright (C) 2013-2014 Free Software Foundation, Inc. - -;; Author: Daniel Hackney -;; Version: 1.0 - -;; This file is part of GNU Emacs. - -;; GNU Emacs 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 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs 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 GNU Emacs. If not, see . - -;;; Commentary: - -;;; Code: - -(require 'package-x) -(require 'ert) -(require 'cl-lib) -(require 'package-test) - -(defvar package-x-test--single-archive-entry-1-3 - (cons 'simple-single - (package-make-ac-desc '(1 3) nil - "A single-file package with no dependencies" - 'single - '((:url . "http://doodles.au")))) - "Expected contents of the archive entry from the \"simple-single\" package.") - -(defvar package-x-test--single-archive-entry-1-4 - (cons 'simple-single - (package-make-ac-desc '(1 4) nil - "A single-file package with no dependencies" - 'single - nil)) - "Expected contents of the archive entry from the updated \"simple-single\" package.") - -(ert-deftest package-x-test-upload-buffer () - "Test creating an \"archive-contents\" file" - (with-package-test (:basedir "data/package" - :file "simple-single-1.3.el" - :upload-base t) - (package-upload-buffer) - (should (file-exists-p (expand-file-name "archive-contents" - package-archive-upload-base))) - (should (file-exists-p (expand-file-name "simple-single-1.3.el" - package-archive-upload-base))) - (should (file-exists-p (expand-file-name "simple-single-readme.txt" - package-archive-upload-base))) - - (let (archive-contents) - (with-temp-buffer - (insert-file-contents - (expand-file-name "archive-contents" - package-archive-upload-base)) - (setq archive-contents - (package-read-from-string - (buffer-substring (point-min) (point-max))))) - (should (equal archive-contents - (list 1 package-x-test--single-archive-entry-1-3)))))) - -(ert-deftest package-x-test-upload-new-version () - "Test uploading a new version of a package" - (with-package-test (:basedir "data/package" - :file "simple-single-1.3.el" - :upload-base t) - (package-upload-buffer) - (with-temp-buffer - (insert-file-contents "newer-versions/simple-single-1.4.el") - (package-upload-buffer)) - - (let (archive-contents) - (with-temp-buffer - (insert-file-contents - (expand-file-name "archive-contents" - package-archive-upload-base)) - (setq archive-contents - (package-read-from-string - (buffer-substring (point-min) (point-max))))) - (should (equal archive-contents - (list 1 package-x-test--single-archive-entry-1-4)))))) - -(provide 'package-x-test) - -;;; package-x-test.el ends here diff --git a/test/automated/pcase-tests.el b/test/automated/pcase-tests.el new file mode 100644 index 00000000000..f5ecadf72a2 --- /dev/null +++ b/test/automated/pcase-tests.el @@ -0,0 +1,74 @@ +;;; pcase-tests.el --- Test suite for pcase macro. + +;; Copyright (C) 2012-2014 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'ert) +(require 'cl-lib) + +(ert-deftest pcase-tests-base () + "Test pcase code." + (should (equal (pcase '(1 . 2) ((app car '2) 6) ((app car '1) 5)) 5))) + +(ert-deftest pcase-tests-bugs () + (should (equal (pcase '(2 . 3) ;bug#18554 + (`(,hd . ,(and (pred atom) tl)) (list hd tl)) + ((pred consp) nil)) + '(2 3)))) + +(pcase-defmacro pcase-tests-plus (pat n) + `(app (lambda (v) (- v ,n)) ,pat)) + +(ert-deftest pcase-tests-macro () + (should (equal (pcase 5 ((pcase-tests-plus x 3) x)) 2))) + +(defun pcase-tests-grep (fname exp) + (when (consp exp) + (or (eq fname (car exp)) + (cl-some (lambda (exp) (pcase-tests-grep fname exp)) (cdr exp))))) + +(ert-deftest pcase-tests-tests () + (should (pcase-tests-grep 'memq '(or (+ 2 3) (memq x y)))) + (should-not (pcase-tests-grep 'memq '(or (+ 2 3) (- x y))))) + +(ert-deftest pcase-tests-member () + (should (pcase-tests-grep + 'memq (macroexpand-all '(pcase x ((or 1 2 3) body))))) + (should (pcase-tests-grep + 'member (macroexpand-all '(pcase x ((or '"a" '2 '3) body))))) + (should-not (pcase-tests-grep + 'memq (macroexpand-all '(pcase x ((or "a" 2 3) body))))) + (let ((exp (macroexpand-all + '(pcase x + ("a" body1) + (2 body2) + ((or "a" 2 3) body))))) + (should-not (pcase-tests-grep 'memq exp)) + (should-not (pcase-tests-grep 'member exp)))) + +(ert-deftest pcase-tests-vectors () + (should (equal (pcase [1 2] (`[,x] 1) (`[,x ,y] (+ x y))) 3))) + +;; Local Variables: +;; no-byte-compile: t +;; End: + +;;; pcase-tests.el ends here. diff --git a/test/automated/print-tests.el b/test/automated/print-tests.el new file mode 100644 index 00000000000..1974cc452a6 --- /dev/null +++ b/test/automated/print-tests.el @@ -0,0 +1,56 @@ +;;; print-tests.el --- tests for src/print.c -*- lexical-binding: t; -*- + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; 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 3 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, see . + +;;; Code: + +(require 'ert) + +(ert-deftest terpri () + (should (string= (with-output-to-string + (princ 'abc) + (should (terpri nil t))) + "abc\n")) + (should (string= (with-output-to-string + (should-not (terpri nil t)) + (princ 'xyz)) + "xyz")) + (message nil) + (if noninteractive + (progn (should (terpri nil t)) + (should-not (terpri nil t)) + (princ 'abc) + (should (terpri nil t)) + (should-not (terpri nil t))) + (should (string= (progn (should-not (terpri nil t)) + (princ 'abc) + (should (terpri nil t)) + (current-message)) + "abc\n"))) + (let ((standard-output + (with-current-buffer (get-buffer-create "*terpri-test*") + (insert "--------") + (point-max-marker)))) + (should (terpri nil t)) + (should-not (terpri nil t)) + (should (string= (with-current-buffer (marker-buffer standard-output) + (buffer-string)) + "--------\n")))) + +(provide 'print-tests) +;;; print-tests.el ends here diff --git a/test/automated/process-tests.el b/test/automated/process-tests.el index cd209bacaa6..6783a61d595 100644 --- a/test/automated/process-tests.el +++ b/test/automated/process-tests.el @@ -50,4 +50,26 @@ (should (process-test-sentinel-wait-function-working-p (lambda () (sit-for 0.01 t))))) +(when (eq system-type 'windows-nt) + (ert-deftest process-test-quoted-batfile () + "Check that Emacs hides CreateProcess deficiency (bug#18745)." + (let (batfile) + (unwind-protect + (progn + ;; CreateProcess will fail when both the bat file and 1st + ;; argument are quoted, so include spaces in both of those + ;; to force quoting. + (setq batfile (make-temp-file "echo args" nil ".bat")) + (with-temp-file batfile + (insert "@echo arg1 = %1, arg2 = %2\n")) + (with-temp-buffer + (call-process batfile nil '(t t) t "x &y") + (should (string= (buffer-string) "arg1 = \"x &y\", arg2 = \n"))) + (with-temp-buffer + (call-process-shell-command + (mapconcat #'shell-quote-argument (list batfile "x &y") " ") + nil '(t t) t) + (should (string= (buffer-string) "arg1 = \"x &y\", arg2 = \n")))) + (when batfile (delete-file batfile)))))) + (provide 'process-tests) diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el index e1eaeea2c38..de20a80ea52 100644 --- a/test/automated/python-tests.el +++ b/test/automated/python-tests.el @@ -711,6 +711,139 @@ if a: (should (= (python-indent-calculate-indentation) 0)) (should (equal (python-indent-calculate-levels) '(0))))) +(ert-deftest python-indent-dedenters-8 () + "Test indentation for Bug#18432." + (python-tests-with-temp-buffer + " +if (a == 1 or + a == 2): + pass +elif (a == 3 or +a == 4): +" + (python-tests-look-at "a == 4):\n") + (should (eq (car (python-indent-context)) 'inside-paren)) + (should (= (python-indent-calculate-indentation) 6)) + (should (equal (python-indent-calculate-levels) '(0 4 6))))) + +(ert-deftest python-indent-electric-colon-1 () + "Test indentation case from Bug#18228." + (python-tests-with-temp-buffer + " +def a(): + pass + +def b() +" + (python-tests-look-at "def b()") + (goto-char (line-end-position)) + (python-tests-self-insert ":") + (should (= (current-indentation) 0)))) + +(ert-deftest python-indent-region-1 () + "Test indentation case from Bug#18843." + (let ((contents " +def foo (): + try: + pass + except: + pass +")) + (python-tests-with-temp-buffer + contents + (python-indent-region (point-min) (point-max)) + (should (string= (buffer-substring-no-properties (point-min) (point-max)) + contents))))) + +(ert-deftest python-indent-region-2 () + "Test region indentation on comments." + (let ((contents " +def f(): + if True: + pass + +# This is +# some multiline +# comment +")) + (python-tests-with-temp-buffer + contents + (python-indent-region (point-min) (point-max)) + (should (string= (buffer-substring-no-properties (point-min) (point-max)) + contents))))) + +(ert-deftest python-indent-region-3 () + "Test region indentation on comments." + (let ((contents " +def f(): + if True: + pass +# This is +# some multiline +# comment +") + (expected " +def f(): + if True: + pass + # This is + # some multiline + # comment +")) + (python-tests-with-temp-buffer + contents + (python-indent-region (point-min) (point-max)) + (should (string= (buffer-substring-no-properties (point-min) (point-max)) + expected))))) + +(ert-deftest python-indent-region-4 () + "Test region indentation block starts, dedenters and enders." + (let ((contents " +def f(): + if True: +a = 5 + else: + a = 10 + return a +") + (expected " +def f(): + if True: + a = 5 + else: + a = 10 + return a +")) + (python-tests-with-temp-buffer + contents + (python-indent-region (point-min) (point-max)) + (should (string= (buffer-substring-no-properties (point-min) (point-max)) + expected))))) + +(ert-deftest python-indent-region-5 () + "Test region indentation leaves strings untouched (start delimiter)." + (let ((contents " +def f(): +''' +this is +a multiline +string +''' +") + (expected " +def f(): + ''' +this is +a multiline +string +''' +")) + (python-tests-with-temp-buffer + contents + (python-indent-region (point-min) (point-max)) + (should (string= (buffer-substring-no-properties (point-min) (point-max)) + expected))))) + ;;; Navigation @@ -1703,8 +1836,7 @@ Using `python-shell-interpreter' and (ert-deftest python-shell-calculate-process-environment-1 () "Test `python-shell-process-environment' modification." - (let* ((original-process-environment process-environment) - (python-shell-process-environment + (let* ((python-shell-process-environment '("TESTVAR1=value1" "TESTVAR2=value2")) (process-environment (python-shell-calculate-process-environment))) @@ -1713,8 +1845,8 @@ Using `python-shell-interpreter' and (ert-deftest python-shell-calculate-process-environment-2 () "Test `python-shell-extra-pythonpaths' modification." - (let* ((original-process-environment process-environment) - (original-pythonpath (getenv "PYTHONPATH")) + (let* ((process-environment process-environment) + (original-pythonpath (setenv "PYTHONPATH" "path3")) (paths '("path1" "path2")) (python-shell-extra-pythonpaths paths) (process-environment @@ -1726,8 +1858,7 @@ Using `python-shell-interpreter' and (ert-deftest python-shell-calculate-process-environment-3 () "Test `python-shell-virtualenv-path' modification." - (let* ((original-process-environment process-environment) - (original-path (or (getenv "PATH") "")) + (let* ((original-path (or (getenv "PATH") "")) (python-shell-virtualenv-path (directory-file-name user-emacs-directory)) (process-environment @@ -1739,6 +1870,23 @@ Using `python-shell-interpreter' and python-shell-virtualenv-path path-separator original-path))))) +(ert-deftest python-shell-calculate-process-environment-4 () + "Test `python-shell-unbuffered' modification." + (setenv "PYTHONUNBUFFERED") + (let* ((process-environment + (python-shell-calculate-process-environment))) + ;; Defaults to t + (should python-shell-unbuffered) + (should (string= (getenv "PYTHONUNBUFFERED") "1")))) + +(ert-deftest python-shell-calculate-process-environment-5 () + (setenv "PYTHONUNBUFFERED") + "Test `python-shell-unbuffered' modification." + (let* ((python-shell-unbuffered nil) + (process-environment + (python-shell-calculate-process-environment))) + (should (not (getenv "PYTHONUNBUFFERED"))))) + (ert-deftest python-shell-calculate-exec-path-1 () "Test `python-shell-exec-path' modification." (let* ((original-exec-path exec-path) @@ -1753,7 +1901,7 @@ Using `python-shell-interpreter' and "Test `python-shell-exec-path' modification." (let* ((original-exec-path exec-path) (python-shell-virtualenv-path - (directory-file-name user-emacs-directory)) + (directory-file-name (expand-file-name user-emacs-directory))) (exec-path (python-shell-calculate-exec-path))) (should (equal exec-path @@ -1828,8 +1976,9 @@ and `python-shell-interpreter-args' in the new shell buffer." (should (process-live-p process)) (with-current-buffer shell-buffer (should (eq major-mode 'inferior-python-mode)) - (should (string= python-shell-interpreter - (executable-find python-tests-shell-interpreter))) + (should (file-equal-p + python-shell-interpreter + (executable-find python-tests-shell-interpreter))) (should (string= python-shell-interpreter-args "-i")))) (kill-buffer shell-buffer)))) @@ -1917,12 +2066,11 @@ and `python-shell-interpreter-args' in the new shell buffer." (skip-unless (executable-find python-tests-shell-interpreter)) (python-tests-with-temp-file "" - (let* ((python-shell-interpreter - (executable-find python-tests-shell-interpreter)) + (let* ((cmd + (concat (executable-find python-tests-shell-interpreter) " -i")) (use-dialog-box) (dedicated-process-name (python-shell-get-process-name t)) - (dedicated-process - (python-shell-get-or-create-process python-shell-interpreter t)) + (dedicated-process (python-shell-get-or-create-process cmd t)) (dedicated-shell-buffer (process-buffer dedicated-process))) (unwind-protect (progn @@ -1940,12 +2088,11 @@ and `python-shell-interpreter-args' in the new shell buffer." (skip-unless (executable-find python-tests-shell-interpreter)) (python-tests-with-temp-file "" - (let* ((python-shell-interpreter - (executable-find python-tests-shell-interpreter)) + (let* ((cmd + (concat (executable-find python-tests-shell-interpreter) " -i")) (use-dialog-box) (process-name (python-shell-get-process-name nil)) - (process - (python-shell-get-or-create-process python-shell-interpreter)) + (process (python-shell-get-or-create-process cmd)) (shell-buffer (process-buffer process))) (unwind-protect (progn @@ -1955,43 +2102,42 @@ and `python-shell-interpreter-args' in the new shell buffer." (kill-buffer shell-buffer) ;; Check there are no processes for current buffer. (should (not (python-shell-get-process)))) - (ignore-errors (kill-buffer dedicated-shell-buffer)))))) + (ignore-errors (kill-buffer shell-buffer)))))) (ert-deftest python-shell-get-or-create-process-3 () "Check shell dedicated/global process preference." (skip-unless (executable-find python-tests-shell-interpreter)) (python-tests-with-temp-file "" - (let* ((python-shell-interpreter - (executable-find python-tests-shell-interpreter)) + (let* ((cmd + (concat (executable-find python-tests-shell-interpreter) " -i")) + (python-shell-interpreter python-tests-shell-interpreter) (use-dialog-box) (dedicated-process-name (python-shell-get-process-name t)) (global-process) (dedicated-process)) - (unwind-protect - (progn - ;; Create global process - (run-python python-shell-interpreter nil) - (setq global-process (get-buffer-process "*Python*")) - (should global-process) - (set-process-query-on-exit-flag global-process nil) - ;; Create dedicated process - (run-python python-shell-interpreter t) - (setq dedicated-process (get-process dedicated-process-name)) - (should dedicated-process) - (set-process-query-on-exit-flag dedicated-process nil) - ;; Prefer dedicated. - (should (equal (python-shell-get-or-create-process) - dedicated-process)) - ;; Kill the dedicated so the global takes over. - (kill-buffer (process-buffer dedicated-process)) - ;; Detect global. - (should (equal (python-shell-get-or-create-process) global-process)) - ;; Kill the global. - (kill-buffer (process-buffer global-process)) - ;; Check there are no processes for current buffer. - (should (not (python-shell-get-process)))) - (ignore-errors (kill-buffer dedicated-shell-buffer)))))) + (progn + ;; Create global process + (run-python cmd nil) + (setq global-process (get-buffer-process "*Python*")) + (should global-process) + (set-process-query-on-exit-flag global-process nil) + ;; Create dedicated process + (run-python cmd t) + (setq dedicated-process (get-process dedicated-process-name)) + (should dedicated-process) + (set-process-query-on-exit-flag dedicated-process nil) + ;; Prefer dedicated. + (should (equal (python-shell-get-or-create-process) + dedicated-process)) + ;; Kill the dedicated so the global takes over. + (kill-buffer (process-buffer dedicated-process)) + ;; Detect global. + (should (equal (python-shell-get-or-create-process) global-process)) + ;; Kill the global. + (kill-buffer (process-buffer global-process)) + ;; Check there are no processes for current buffer. + (should (not (python-shell-get-process))))))) (ert-deftest python-shell-internal-get-or-create-process-1 () "Check internal shell process creation fallback." diff --git a/test/automated/seq-tests.el b/test/automated/seq-tests.el new file mode 100644 index 00000000000..a46438e53eb --- /dev/null +++ b/test/automated/seq-tests.el @@ -0,0 +1,196 @@ +;;; seq-tests.el --- Tests for sequences.el + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Nicolas Petton +;; Maintainer: emacs-devel@gnu.org + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; Tests for sequences.el + +;;; Code: + +(require 'ert) +(require 'seq) + +(defmacro with-test-sequences (spec &rest body) + "Successively bind VAR to a list, vector, and string built from SEQ. +Evaluate BODY for each created sequence. + +\(fn (var seq) body)" + (declare (indent 1) (debug ((symbolp form) body))) + (let ((initial-seq (make-symbol "initial-seq"))) + `(let ((,initial-seq ,(cadr spec))) + ,@(mapcar (lambda (s) + `(let ((,(car spec) (apply (function ,s) ,initial-seq))) + ,@body)) + '(list vector string))))) + +(defun same-contents-p (seq1 seq2) + "Return t if SEQ1 and SEQ2 have the same contents, nil otherwise." + (equal (append seq1 '()) (append seq2 '()))) + +(defun test-sequences-evenp (integer) + "Return t if INTEGER is even." + (eq (logand integer 1) 0)) + +(defun test-sequences-oddp (integer) + "Return t if INTEGER is odd." + (not (test-sequences-evenp integer))) + +(ert-deftest test-seq-drop () + (with-test-sequences (seq '(1 2 3 4)) + (should (equal (seq-drop seq 0) seq)) + (should (equal (seq-drop seq 1) (seq-subseq seq 1))) + (should (equal (seq-drop seq 2) (seq-subseq seq 2))) + (should (seq-empty-p (seq-drop seq 4))) + (should (seq-empty-p (seq-drop seq 10)))) + (with-test-sequences (seq '()) + (should (seq-empty-p (seq-drop seq 0))) + (should (seq-empty-p (seq-drop seq 1))))) + +(ert-deftest test-seq-take () + (with-test-sequences (seq '(2 3 4 5)) + (should (seq-empty-p (seq-take seq 0))) + (should (= (seq-length (seq-take seq 1)) 1)) + (should (= (seq-elt (seq-take seq 1) 0) 2)) + (should (same-contents-p (seq-take seq 3) '(2 3 4))) + (should (equal (seq-take seq 10) seq)))) + +(ert-deftest test-seq-drop-while () + (with-test-sequences (seq '(1 3 2 4)) + (should (equal (seq-drop-while #'test-sequences-oddp seq) + (seq-drop seq 2))) + (should (equal (seq-drop-while #'test-sequences-evenp seq) + seq)) + (should (seq-empty-p (seq-drop-while #'numberp seq)))) + (with-test-sequences (seq '()) + (should (seq-empty-p (seq-drop-while #'test-sequences-oddp seq))))) + +(ert-deftest test-seq-take-while () + (with-test-sequences (seq '(1 3 2 4)) + (should (equal (seq-take-while #'test-sequences-oddp seq) + (seq-take seq 2))) + (should (seq-empty-p (seq-take-while #'test-sequences-evenp seq))) + (should (equal (seq-take-while #'numberp seq) seq))) + (with-test-sequences (seq '()) + (should (seq-empty-p (seq-take-while #'test-sequences-oddp seq))))) + +(ert-deftest test-seq-filter () + (with-test-sequences (seq '(6 7 8 9 10)) + (should (equal (seq-filter #'test-sequences-evenp seq) '(6 8 10))) + (should (equal (seq-filter #'test-sequences-oddp seq) '(7 9))) + (should (equal (seq-filter (lambda (elt) nil) seq) '()))) + (with-test-sequences (seq '()) + (should (equal (seq-filter #'test-sequences-evenp seq) '())))) + +(ert-deftest test-seq-remove () + (with-test-sequences (seq '(6 7 8 9 10)) + (should (equal (seq-remove #'test-sequences-evenp seq) '(7 9))) + (should (equal (seq-remove #'test-sequences-oddp seq) '(6 8 10))) + (should (same-contents-p (seq-remove (lambda (elt) nil) seq) seq))) + (with-test-sequences (seq '()) + (should (equal (seq-remove #'test-sequences-evenp seq) '())))) + +(ert-deftest test-seq-count () + (with-test-sequences (seq '(6 7 8 9 10)) + (should (equal (seq-count #'test-sequences-evenp seq) 3)) + (should (equal (seq-count #'test-sequences-oddp seq) 2)) + (should (equal (seq-count (lambda (elt) nil) seq) 0))) + (with-test-sequences (seq '()) + (should (equal (seq-count #'test-sequences-evenp seq) 0)))) + +(ert-deftest test-seq-reduce () + (with-test-sequences (seq '(1 2 3 4)) + (should (= (seq-reduce #'+ seq 0) 10)) + (should (= (seq-reduce #'+ seq 5) 15))) + (with-test-sequences (seq '()) + (should (eq (seq-reduce #'+ seq 0) 0)) + (should (eq (seq-reduce #'+ seq 7) 7)))) + +(ert-deftest test-seq-some-p () + (with-test-sequences (seq '(4 3 2 1)) + (should (= (seq-some-p #'test-sequences-evenp seq) 4)) + (should (= (seq-some-p #'test-sequences-oddp seq) 3)) + (should-not (seq-some-p (lambda (elt) (> elt 10)) seq))) + (with-test-sequences (seq '()) + (should-not (seq-some-p #'test-sequences-oddp seq)))) + +(ert-deftest test-seq-contains-p () + (with-test-sequences (seq '(3 4 5 6)) + (should (seq-contains-p seq 3)) + (should-not (seq-contains-p seq 7))) + (with-test-sequences (seq '()) + (should-not (seq-contains-p seq 3)) + (should-not (seq-contains-p seq nil)))) + +(ert-deftest test-seq-every-p () + (with-test-sequences (seq '(43 54 22 1)) + (should (seq-every-p (lambda (elt) t) seq)) + (should-not (seq-every-p #'test-sequences-oddp seq)) + (should-not (seq-every-p #'test-sequences-evenp seq))) + (with-test-sequences (seq '(42 54 22 2)) + (should (seq-every-p #'test-sequences-evenp seq)) + (should-not (seq-every-p #'test-sequences-oddp seq))) + (with-test-sequences (seq '()) + (should (seq-every-p #'identity seq)) + (should (seq-every-p #'test-sequences-evenp seq)))) + +(ert-deftest test-seq-empty-p () + (with-test-sequences (seq '(0)) + (should-not (seq-empty-p seq))) + (with-test-sequences (seq '(0 1 2)) + (should-not (seq-empty-p seq))) + (with-test-sequences (seq '()) + (should (seq-empty-p seq)))) + +(ert-deftest test-seq-sort () + (should (equal (seq-sort #'< "cbaf") "abcf")) + (should (equal (seq-sort #'< '(2 1 9 4)) '(1 2 4 9))) + (should (equal (seq-sort #'< [2 1 9 4]) [1 2 4 9])) + (should (equal (seq-sort #'< "") ""))) + +(ert-deftest test-seq-uniq () + (with-test-sequences (seq '(2 4 6 8 6 4 3)) + (should (equal (seq-uniq seq) '(2 4 6 8 3)))) + (with-test-sequences (seq '(3 3 3 3 3)) + (should (equal (seq-uniq seq) '(3)))) + (with-test-sequences (seq '()) + (should (equal (seq-uniq seq) '())))) + +(ert-deftest test-seq-subseq () + (with-test-sequences (seq '(2 3 4 5)) + (should (equal (seq-subseq seq 0 4) seq)) + (should (same-contents-p (seq-subseq seq 2 4) '(4 5))) + (should (same-contents-p (seq-subseq seq 1 3) '(3 4))) + (should (same-contents-p (seq-subseq seq 1 -1) '(3 4)))) + (should (vectorp (seq-subseq [2 3 4 5] 2))) + (should (stringp (seq-subseq "foo" 2 3))) + (should (listp (seq-subseq '(2 3 4 4) 2 3)))) + +(ert-deftest test-seq-concatenate () + (with-test-sequences (seq '(2 4 6)) + (should (equal (seq-concatenate 'string seq [8]) (string 2 4 6 8))) + (should (equal (seq-concatenate 'list seq '(8 10)) '(2 4 6 8 10))) + (should (equal (seq-concatenate 'vector seq '(8 10)) [2 4 6 8 10])) + (should (equal (seq-concatenate 'vector nil '(8 10)) [8 10])) + (should (equal (seq-concatenate 'vector seq nil) [2 4 6])))) + +(provide 'seq-tests) +;;; seq-tests.el ends here diff --git a/test/automated/subr-x-tests.el b/test/automated/subr-x-tests.el index df8412699a4..03541f173f0 100644 --- a/test/automated/subr-x-tests.el +++ b/test/automated/subr-x-tests.el @@ -165,7 +165,7 @@ (list 1 2 3)))) (ert-deftest subr-x-test-if-let-false () - "Test `if-let' with falsey bindings." + "Test `if-let' with falsie bindings." (should (equal (if-let (a nil) (list a b c) @@ -205,8 +205,8 @@ "no") (list 1 2 3)))) -(ert-deftest subr-x-test-if-let-and-lazyness-is-preserved () - "Test `if-let' respects `and' lazyness." +(ert-deftest subr-x-test-if-let-and-laziness-is-preserved () + "Test `if-let' respects `and' laziness." (let (a-called b-called c-called) (should (equal (if-let ((a nil) @@ -360,7 +360,7 @@ (list 1 2 3)))) (ert-deftest subr-x-test-when-let-false () - "Test `when-let' with falsey bindings." + "Test `when-let' with falsie bindings." (should (equal (when-let (a nil) (list a b c) @@ -399,8 +399,8 @@ (list a b c)) (list 1 2 3)))) -(ert-deftest subr-x-test-when-let-and-lazyness-is-preserved () - "Test `when-let' respects `and' lazyness." +(ert-deftest subr-x-test-when-let-and-laziness-is-preserved () + "Test `when-let' respects `and' laziness." (let (a-called b-called c-called) (should (equal (progn diff --git a/test/automated/thingatpt.el b/test/automated/thingatpt.el index fe82fca4ff7..74240f80b87 100644 --- a/test/automated/thingatpt.el +++ b/test/automated/thingatpt.el @@ -26,7 +26,6 @@ ("http://2.gnu.org" 6 url "http://2.gnu.org") ("http://3.gnu.org" 19 url "http://3.gnu.org") ("https://4.gnu.org" 1 url "https://4.gnu.org") - ("bzr://savannah.gnu.org" 1 url "bzr://savannah.gnu.org") ("A geo URI (geo:3.14159,-2.71828)." 12 url "geo:3.14159,-2.71828") ("Visit http://5.gnu.org now." 5 url nil) ("Visit http://6.gnu.org now." 7 url "http://6.gnu.org") diff --git a/test/automated/tildify-tests.el b/test/automated/tildify-tests.el index 86c83d7ac5b..55d2d576721 100644 --- a/test/automated/tildify-tests.el +++ b/test/automated/tildify-tests.el @@ -1,4 +1,4 @@ -;;; tildify-test.el --- ERT tests for teldify.el +;;; tildify-test.el --- ERT tests for tildify.el -*- lexical-binding: t -*- ;; Copyright (C) 2014 Free Software Foundation, Inc. @@ -73,7 +73,7 @@ after `tildify-buffer' is run." (ert-deftest tildify-test-html () "Tests tildification in an HTML document" (let* ((sentence (tildify-test--example-sentence " ")) - (with-nbsp (tildify-test--example-sentence " "))) + (with-nbsp (tildify-test--example-sentence " "))) (tildify-test--test '(html-mode sgml-mode) (tildify-test--example-html sentence sentence) (tildify-test--example-html sentence with-nbsp)))) @@ -81,7 +81,7 @@ after `tildify-buffer' is run." (ert-deftest tildify-test-xml () "Tests tildification in an XML document" (let* ((sentence (tildify-test--example-sentence " ")) - (with-nbsp (tildify-test--example-sentence " "))) + (with-nbsp (tildify-test--example-sentence " "))) (tildify-test--test '(nxml-mode) (tildify-test--example-html sentence sentence t) (tildify-test--example-html sentence with-nbsp t)))) @@ -117,8 +117,8 @@ latter is missing, SENTENCE will be used in all placeholder positions." (insert "foo whatever end-foo") (goto-char (point-min)) (should (string-equal "end-foo" - (tildify-find-env "foo\\|bar" - '(("foo\\|bar" . ("end-" 0)))))))) + (tildify--find-env "foo\\|bar" + '(("foo\\|bar" . ("end-" 0)))))))) (ert-deftest tildify-test-find-env-group-index-bug () @@ -129,7 +129,60 @@ latter is missing, SENTENCE will be used in all placeholder positions." (beg-re "start-\\(foo\\|bar\\)\\|open-\\(foo\\|bar\\)")) (insert "open-foo whatever close-foo") (goto-char (point-min)) - (should (string-equal "close-foo" (tildify-find-env beg-re pairs)))))) + (should (string-equal "close-foo" (tildify--find-env beg-re pairs)))))) + + +(defmacro with-test-foreach (expected &rest body) + "Helper macro for testing foreach functions. +BODY has access to pairs variable and called lambda." + (declare (indent 1)) + (let ((got (make-symbol "got"))) + `(with-temp-buffer + (insert "1 /- 2 -/ 3 V~ 4 ~ 5 /- 6 -/ 7") + (let* ((pairs '(("/-" . "-/") ("V\\(.\\)" . (1)))) + (,got "") + (called (lambda (s e) + (setq ,got (concat ,got (buffer-substring s e)))))) + (setq-local tildify-foreach-region-function + (apply-partially 'tildify-foreach-ignore-environments + pairs)) + ,@body + (should (string-equal ,expected ,got)))))) + +(ert-deftest tildify-test-foreach-ignore-environments () + "Basic test of `tildify-foreach-ignore-environments'" + (with-test-foreach "1 3 5 7" + (tildify-foreach-ignore-environments pairs called (point-min) (point-max)))) + + +(ert-deftest tildify-test-foreach-ignore-environments-early-return () + "Test whether `tildify-foreach-ignore-environments' returns early +The function must terminate as soon as callback returns nil." + (with-test-foreach "1 " + (tildify-foreach-ignore-environments + pairs (lambda (start end) (funcall called start end) nil) + (point-min) (point-max)))) + +(ert-deftest tildify-test-foreach-region () + "Basic test of `tildify--foreach-region'" + (with-test-foreach "1 3 5 7" + (tildify--foreach-region called (point-min) (point-max)))) + +(ert-deftest tildify-test-foreach-region-early-return () + "Test whether `tildify--foreach-ignore' returns early +The function must terminate as soon as callback returns nil." + (with-test-foreach "1 " + (tildify--foreach-region (lambda (start end) (funcall called start end) nil) + (point-min) (point-max)))) + +(ert-deftest tildify-test-foreach-region-limit-region () + "Test whether `tildify--foreach-ignore' limits callback to given region" + (with-test-foreach "3 " + (tildify--foreach-region called + (+ (point-min) 10) (+ (point-min) 16))) ; start at "3" end past "4" + (with-test-foreach "3 5" + (tildify--foreach-region called + (+ (point-min) 10) (+ (point-min) 20)))) ; start at "3" end past "5" (provide 'tildify-tests) diff --git a/test/automated/tramp-tests.el b/test/automated/tramp-tests.el index 864a43d638f..c03b7464b4f 100644 --- a/test/automated/tramp-tests.el +++ b/test/automated/tramp-tests.el @@ -1469,9 +1469,15 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'." (vc-create-repo (car vc-handled-backends)) ;; The structure of VC-FILESET is not documented. Let's ;; hope it won't change. - (vc-register - nil (list (car vc-handled-backends) - (list (file-name-nondirectory tmp-name2))))) + (condition-case nil + (vc-register + (list (car vc-handled-backends) + (list (file-name-nondirectory tmp-name2)))) + ;; `vc-register' has changed its arguments in Emacs 25.1. + (error + (vc-register + nil (list (car vc-handled-backends) + (list (file-name-nondirectory tmp-name2))))))) (should (vc-registered tmp-name2))) (ignore-errors (delete-directory tmp-name1 'recursive))))) diff --git a/test/automated/vc-tests.el b/test/automated/vc-tests.el new file mode 100644 index 00000000000..32cf0ddd8be --- /dev/null +++ b/test/automated/vc-tests.el @@ -0,0 +1,455 @@ +;;; vc-tests.el --- Tests of different backends of vc.el + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; Author: Michael Albinus + +;; 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 3 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, see `http://www.gnu.org/licenses/'. + +;;; Commentary: + +;; For every supported VC on the machine, different test cases are +;; generated automatically. + +;; Functions to be tested (see Commentary of vc.el). Mandatory +;; functions are marked with `*', optional functions are marked with `-': + +;; BACKEND PROPERTIES +;; +;; * revision-granularity + +;; STATE-QUERYING FUNCTIONS +;; +;; * registered (file) +;; * state (file) +;; - dir-status (dir update-function) +;; - dir-status-files (dir files default-state update-function) +;; - dir-extra-headers (dir) +;; - dir-printer (fileinfo) +;; - status-fileinfo-extra (file) +;; * working-revision (file) +;; - latest-on-branch-p (file) +;; * checkout-model (files) +;; - mode-line-string (file) + +;; STATE-CHANGING FUNCTIONS +;; +;; * create-repo (backend) +;; * register (files &optional comment) +;; - responsible-p (file) +;; - receive-file (file rev) +;; - unregister (file) +;; * checkin (files comment) +;; * find-revision (file rev buffer) +;; * checkout (file &optional rev) +;; * revert (file &optional contents-done) +;; - rollback (files) +;; - merge-file (file rev1 rev2) +;; - merge-branch () +;; - merge-news (file) +;; - pull (prompt) +;; - steal-lock (file &optional revision) +;; - modify-change-comment (files rev comment) +;; - mark-resolved (files) +;; - find-admin-dir (file) + +;; HISTORY FUNCTIONS +;; +;; * print-log (files buffer &optional shortlog start-revision limit) +;; * log-outgoing (backend remote-location) +;; * log-incoming (backend remote-location) +;; - log-view-mode () +;; - show-log-entry (revision) +;; - comment-history (file) +;; - update-changelog (files) +;; * diff (files &optional async rev1 rev2 buffer) +;; - revision-completion-table (files) +;; - annotate-command (file buf &optional rev) +;; - annotate-time () +;; - annotate-current-time () +;; - annotate-extract-revision-at-line () +;; - region-history (FILE BUFFER LFROM LTO) +;; - region-history-mode () + +;; TAG SYSTEM +;; +;; - create-tag (dir name branchp) +;; - retrieve-tag (dir name update) + +;; MISCELLANEOUS +;; +;; - make-version-backups-p (file) +;; - root (file) +;; - ignore (file &optional directory) +;; - ignore-completion-table +;; - previous-revision (file rev) +;; - next-revision (file rev) +;; - log-edit-mode () +;; - check-headers () +;; - delete-file (file) +;; - rename-file (old new) +;; - find-file-hook () +;; - extra-menu () +;; - extra-dir-menu () +;; - conflicted-files (dir) + +;;; Code: + +(require 'ert) +(require 'vc) + +;; The working horses. + +(defvar vc-test--cleanup-hook nil + "Functions for cleanup at the end of an ert test. +Don't set it globally, the functions shall be let-bound.") + +(defun vc-test--revision-granularity-function (backend) + "Run the `vc-revision-granularity' backend function." + (funcall (intern (downcase (format "vc-%s-revision-granularity" backend))))) + +(defun vc-test--create-repo-function (backend) + "Run the `vc-create-repo' backend function. +For backends which dont support it, it is emulated." + + (cond + ((eq backend 'CVS) + (let ((tmp-dir + (expand-file-name + (make-temp-name "vc-test") temporary-file-directory))) + (make-directory (expand-file-name "module" tmp-dir) 'parents) + (make-directory (expand-file-name "CVSROOT" tmp-dir) 'parents) + (shell-command-to-string (format "cvs -Q -d:local:%s co module" tmp-dir)) + (rename-file "module/CVS" default-directory) + (delete-directory "module" 'recursive) + ;; We must cleanup the "remote" CVS repo as well. + (add-hook 'vc-test--cleanup-hook + `(lambda () (delete-directory ,tmp-dir 'recursive))))) + + ((eq backend 'Arch) + (let ((archive-name (format "%s--%s" user-mail-address (random)))) + (when (string-match + "no arch user id set" (shell-command-to-string "tla my-id")) + (shell-command-to-string + (format "tla my-id \"<%s>\"" user-mail-address))) + (shell-command-to-string + (format "tla make-archive %s %s" archive-name default-directory)) + (shell-command-to-string + (format "tla my-default-archive %s" archive-name)))) + + ((eq backend 'Mtn) + (let ((archive-name "foo.mtn")) + (shell-command-to-string + (format + "mtn db init --db=%s" + (expand-file-name archive-name default-directory))) + (shell-command-to-string + (format "mtn --db=%s --branch=foo setup ." archive-name)))) + + (t (vc-create-repo backend)))) + +(defun vc-test--create-repo (backend) + "Create a test repository in `default-directory', a temporary directory." + + (let ((vc-handled-backends `(,backend)) + (default-directory + (file-name-as-directory + (expand-file-name + (make-temp-name "vc-test") temporary-file-directory))) + vc-test--cleanup-hook) + + (unwind-protect + (progn + ;; Cleanup. + (add-hook + 'vc-test--cleanup-hook + `(lambda () (delete-directory ,default-directory 'recursive))) + + ;; Check the revision granularity. + (should (memq (vc-test--revision-granularity-function backend) + '(file repository))) + + ;; Create empty repository. + (make-directory default-directory) + (should (file-directory-p default-directory)) + (vc-test--create-repo-function backend)) + + ;; Save exit. + (ignore-errors (run-hooks 'vc-test--cleanup-hook))))) + +;; Why isn't there `vc-unregister'? +(defun vc-test--unregister-function (backend file) + "Run the `vc-unregister' backend function. +For backends which dont support it, `vc-not-supported' is signalled." + + (let ((symbol (intern (downcase (format "vc-%s-unregister" backend))))) + (if (functionp symbol) + (funcall symbol file) + ;; CVS, SVN, SCCS, SRC and Mtn are not supported. + (signal 'vc-not-supported (list 'unregister backend))))) + +(defun vc-test--register (backend) + "Register and unregister a file." + + (let ((vc-handled-backends `(,backend)) + (default-directory + (file-name-as-directory + (expand-file-name + (make-temp-name "vc-test") temporary-file-directory))) + vc-test--cleanup-hook) + + (unwind-protect + (progn + ;; Cleanup. + (add-hook + 'vc-test--cleanup-hook + `(lambda () (delete-directory ,default-directory 'recursive))) + + ;; Create empty repository. + (make-directory default-directory) + (vc-test--create-repo-function backend) + + (let ((tmp-name1 (expand-file-name "foo" default-directory)) + (tmp-name2 "bla")) + ;; Register files. Check for it. + (write-region "foo" nil tmp-name1 nil 'nomessage) + (should (file-exists-p tmp-name1)) + (should-not (vc-registered tmp-name1)) + (write-region "bla" nil tmp-name2 nil 'nomessage) + (should (file-exists-p tmp-name2)) + (should-not (vc-registered tmp-name2)) + (vc-register + (list backend (list tmp-name1 tmp-name2))) + (should (file-exists-p tmp-name1)) + (should (vc-registered tmp-name1)) + (should (file-exists-p tmp-name2)) + (should (vc-registered tmp-name2)) + + ;; Unregister the files. + (condition-case err + (progn + (vc-test--unregister-function backend tmp-name1) + (should-not (vc-registered tmp-name1)) + (vc-test--unregister-function backend tmp-name2) + (should-not (vc-registered tmp-name2))) + ;; CVS, SVN, SCCS, SRC and Mtn are not supported. + (vc-not-supported (message "%s" (error-message-string err)))) + (should (file-exists-p tmp-name1)) + (should (file-exists-p tmp-name2)))) + + ;; Save exit. + (ignore-errors (run-hooks 'vc-test--cleanup-hook))))) + +;; `vc-state' returns different results for different backends. So we +;; don't check with `should', but print the results for analysis. +(defun vc-test--state (backend) + "Check the different states of a file." + + (let ((vc-handled-backends `(,backend)) + (default-directory + (file-name-as-directory + (expand-file-name + (make-temp-name "vc-test") temporary-file-directory))) + vc-test--cleanup-hook errors) + + (unwind-protect + (progn + ;; Cleanup. + (add-hook + 'vc-test--cleanup-hook + `(lambda () (delete-directory ,default-directory 'recursive))) + + ;; Create empty repository. + (make-directory default-directory) + (vc-test--create-repo-function backend) + + (message "%s" (vc-state default-directory backend)) + ;(should (eq (vc-state default-directory backend) 'up-to-date)) + + (let ((tmp-name (expand-file-name "foo" default-directory))) + ;; Check for initial state. + (message "%s" (vc-state tmp-name backend)) + ;(should (eq (vc-state tmp-name backend) 'unregistered)) + + ;; Write a new file. Check for state. + (write-region "foo" nil tmp-name nil 'nomessage) + (message "%s" (vc-state tmp-name backend)) + ;(should (eq (vc-state tmp-name backend) 'unregistered)) + + ;; Register a file. Check for state. + (vc-register + (list backend (list (file-name-nondirectory tmp-name)))) + (message "%s" (vc-state tmp-name backend)) + ;(should (eq (vc-state tmp-name backend) 'added)) + + ;; Unregister the file. Check for state. + (condition-case nil + (progn + (vc-test--unregister-function backend tmp-name) + (message "%s" (vc-state tmp-name backend)) + );(should (eq (vc-state tmp-name backend) 'unregistered))) + (vc-not-supported (message "%s" 'unsupported))))) + + ;; Save exit. + (ignore-errors (run-hooks 'vc-test--cleanup-hook))))) + +(defun vc-test--working-revision (backend) + "Check the working revision of a repository." + + (let ((vc-handled-backends `(,backend)) + (default-directory + (file-name-as-directory + (expand-file-name + (make-temp-name "vc-test") temporary-file-directory))) + vc-test--cleanup-hook errors) + + (unwind-protect + (progn + ;; Cleanup. + (add-hook + 'vc-test--cleanup-hook + `(lambda () (delete-directory ,default-directory 'recursive))) + + ;; Create empty repository. + (make-directory default-directory) + (vc-test--create-repo-function backend) + + (should + (member + (vc-working-revision default-directory backend) '("0" "master"))) + + (let ((tmp-name (expand-file-name "foo" default-directory))) + ;; Check for initial state. + (should + (member (vc-working-revision tmp-name backend) '("0" "master"))) + + ;; Write a new file. Check for state. + (write-region "foo" nil tmp-name nil 'nomessage) + (should + (member (vc-working-revision tmp-name backend) '("0" "master"))) + + ;; Register a file. Check for state. + (vc-register + (list backend (list (file-name-nondirectory tmp-name)))) + (should + (member (vc-working-revision tmp-name backend) '("0" "master"))) + + ;; Unregister the file. Check for working-revision. + (condition-case nil + (progn + (vc-test--unregister-function backend tmp-name) + (should + (member + (vc-working-revision tmp-name backend) '("0" "master")))) + (vc-not-supported (message "%s" 'unsupported))))) + + ;; Save exit. + (ignore-errors (run-hooks 'vc-test--cleanup-hook))))) + +;; Create the test cases. + +(defun vc-test--rcs-enabled () + (executable-find "rcs")) + +(defun vc-test--cvs-enabled () + (executable-find "cvs")) + +(defvar vc-svn-program) +(defun vc-test--svn-enabled () + (executable-find vc-svn-program)) + +(defun vc-test--sccs-enabled () + (executable-find "sccs")) + +(defvar vc-src-program) +(defun vc-test--src-enabled () + (executable-find vc-src-program)) + +(defvar vc-bzr-program) +(defun vc-test--bzr-enabled () + (executable-find vc-bzr-program)) + +(defvar vc-git-program) +(defun vc-test--git-enabled () + (executable-find vc-git-program)) + +(defvar vc-hg-program) +(defun vc-test--hg-enabled () + (executable-find vc-hg-program)) + +(defvar vc-mtn-program) +(defun vc-test--mtn-enabled () + (executable-find vc-mtn-program)) + +(defvar vc-arch-program) +(defun vc-test--arch-enabled () + (executable-find vc-arch-program)) + + +;; There are too many failed test cases yet. We suppress them on hydra. +(if (getenv "NIX_STORE") + (ert-deftest vc-test () + "Dummy test case for hydra." + (ert-pass)) + + ;; Create the test cases. + (dolist (backend vc-handled-backends) + (let ((backend-string (downcase (symbol-name backend)))) + (require (intern (format "vc-%s" backend-string))) + (eval + ;; Check, whether the backend is supported. + `(when (funcall ',(intern (format "vc-test--%s-enabled" backend-string))) + + (ert-deftest + ,(intern (format "vc-test-%s00-create-repo" backend-string)) () + ,(format "Check `vc-create-repo' for the %s backend." backend-string) + (vc-test--create-repo ',backend)) + + (ert-deftest + ,(intern (format "vc-test-%s01-register" backend-string)) () + ,(format + "Check `vc-register' and `vc-registered' for the %s backend." + backend-string) + (skip-unless + (ert-test-passed-p + (ert-test-most-recent-result + (ert-get-test + ',(intern + (format "vc-test-%s00-create-repo" backend-string)))))) + (vc-test--register ',backend)) + + (ert-deftest + ,(intern (format "vc-test-%s02-state" backend-string)) () + ,(format "Check `vc-state' for the %s backend." backend-string) + (skip-unless + (ert-test-passed-p + (ert-test-most-recent-result + (ert-get-test + ',(intern + (format "vc-test-%s01-register" backend-string)))))) + (vc-test--state ',backend)) + + (ert-deftest + ,(intern (format "vc-test-%s03-working-revision" backend-string)) () + ,(format "Check `vc-working-revision' for the %s backend." backend-string) + (skip-unless + (ert-test-passed-p + (ert-test-most-recent-result + (ert-get-test + ',(intern + (format "vc-test-%s01-register" backend-string)))))) + (vc-test--working-revision ',backend))))))) + +(provide 'vc-tests) +;;; vc-tests.el ends here diff --git a/test/biditest.el b/test/biditest.el new file mode 100644 index 00000000000..53820bb008f --- /dev/null +++ b/test/biditest.el @@ -0,0 +1,121 @@ +;;; biditest.el --- test bidi reordering in GNU Emacs display engine. + +;; Copyright (C) 2013-2014 Free Software Foundation, Inc. + +;; Author: Eli Zaretskii +;; Maintainer: emacs-devel@gnu.org +;; Package: emacs + +;; 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 3 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; Produce a specially-formatted text file from BidiCharacterTest.txt +;; file that is part of the Unicode Standard's UCD package. The file +;; shows the expected results of reordering according to the UBA. The +;; file is supposed to be visited in Emacs, and the resulting display +;; compared with the expected one. + +;;; Code: + +(defun biditest-generate-testfile (input-file output-file) + "Generate a bidi test file OUTPUT-FILE from data in INPUT-FILE. + +INPUT-FILE should be in the format of the BidiCharacterTest.txt file +available from the Unicode site, as part of the UCD database, see +http://www.unicode.org/Public/UCD/latest/ucd/BidiCharacterTest.txt. + +The resulting file should be viewed with `inhibit-bidi-mirroring' set to t." + (let ((output-buf (get-buffer-create "*biditest-output*")) + (lnum 1) + tbuf) + (with-temp-buffer + (message "Generating output in %s ..." output-file) + (setq tbuf (current-buffer)) + (insert-file-contents input-file) + (goto-char (point-min)) + (while (not (eobp)) + (when (looking-at "^\\([0-9A-F ]+\\);\\([012]\\);\\([01]\\);\\([0-9 ]+\\);\\([0-9 ]+\\)$") + (let ((codes (match-string 1)) + (default-paragraph (match-string 2)) + (resolved-paragraph (match-string 3)) + ;; FIXME: Should compare LEVELS with what the display + ;; engine actually produced. + (levels (match-string 4)) + (indices (match-string 5))) + (setq codes (split-string codes " ") + indices (split-string indices " ")) + (switch-to-buffer output-buf) + (insert (format "Test on line %d:\n\n" lnum)) + ;; Force paragraph direction to what the UCD test + ;; specifies. + (insert (cond + ((string= default-paragraph "0") ;L2R + #x200e) + ((string= default-paragraph "1") ;R2L + #x200f) + (t ""))) ; dynamic + ;; Insert the characters + (mapc (lambda (code) + (insert (string-to-number code 16))) + codes) + (insert "\n\n") + ;; Insert the expected results + (insert "Expected result:\n\n") + ;; We want the expected results displayed exactly as + ;; specified in the test file, without any reordering, so + ;; we override the directional properties of all of the + ;; characters in the expected result by prepending + ;; LRO/RLO. + (cond ((string= resolved-paragraph "0") + (insert #x200e #x202d)) + ((string= resolved-paragraph "1") + (insert #x200f #x202e) + ;; We need to reverse the list of indices for R2L + ;; paragraphs, so that their logical order on + ;; display matches user expectations. + (setq indices (nreverse indices)))) + (mapc (lambda (index) + (insert (string-to-number + (nth (string-to-number index 10) codes) + 16))) + indices) + (insert #x202c) ; end the embedding + (insert "\n\n")) + (switch-to-buffer tbuf)) + (forward-line 1) + (setq lnum (1+ lnum))) + (switch-to-buffer output-buf) + (let ((coding-system-for-write 'utf-8-unix)) + (write-file output-file)) + (message "Generating output in %s ... done" output-file)))) + +(defun biditest-create-test () + "Create a test file for testing the Emacs bidirectional display. + +The resulting file should be viewed with `inhibit-bidi-mirroring' set to t." + (biditest-generate-testfile (pop command-line-args-left) + (or (pop command-line-args-left) + "biditest.txt"))) + +;; A handy function for displaying the resolved bidi levels. +(defun bidi-levels () + "Display the resolved bidirectional levels of characters on current line. + +The results can be compared with the levels stated in the +BidiCharacterTest.txt file." + (interactive) + (message "%s" (bidi-resolved-levels))) + +(define-key global-map [f8] 'bidi-levels) diff --git a/test/indent/css-mode.css b/test/indent/css-mode.css index 4dbab06975c..564ac16f954 100644 --- a/test/indent/css-mode.css +++ b/test/indent/css-mode.css @@ -1,7 +1,17 @@ +/* asdfasdf */ + .xxx { } +article[role="main"] { + width: 60%; +} + +/* asdfasdf */ +@foo x2 { + bla:toto; +} .x2 { foo: bar; diff --git a/test/indent/js.js b/test/indent/js.js index d623a0dc5bc..1924094e9d8 100644 --- a/test/indent/js.js +++ b/test/indent/js.js @@ -47,3 +47,11 @@ var p = { var evens = [e for each (e in range(0, 21)) if (ed % 2 == 0)]; + +!b + !=b + !==b + +a++ +b += + c diff --git a/test/indent/octave.m b/test/indent/octave.m index 8aab5ec03ed..a7041462f7f 100644 --- a/test/indent/octave.m +++ b/test/indent/octave.m @@ -1982,7 +1982,7 @@ function write_index (desc, dir, index_file, global_install) endif h1 = postpad (h1, max_name_length + 1, " "); - h2 = postpad (h2, max_version_length, " ");; + h2 = postpad (h2, max_version_length, " "); ## Print a header. header = sprintf("%s | %s | %s\n", h1, h2, h3); diff --git a/test/indent/perl.perl b/test/indent/perl.perl index 6b05a5f1d07..00ef312f735 100755 --- a/test/indent/perl.perl +++ b/test/indent/perl.perl @@ -1,6 +1,10 @@ #!/usr/bin/perl # -*- eval: (bug-reference-mode 1) -*- +sub add_funds($) { + return 0; +} + use v5.14; my $str= <